-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Closed
Labels
Description
Driver mode: thin
- What versions are you using?
>=oracledb-6.5.0 - problem exists with establishing connection
<=oracledb-6.4.0 - connection is established
process.platform: win32 and linux
process.version: v20.18.0
process.arch: x64
require('oracledb').versionString: 6.6.0
require('oracledb').oracleClientVersionString: undefined
-
Is it an error or a hang or a crash?
Error when trying to establish connection to Oracle OPCI ADB 23ai with mTLS wallet connection. -
What error(s) or behavior you are seeing?
Error on Linux:
Error: NJS-500: connection to the Oracle Database was broken
NJS-521: connection to host 138.1.3.227 port 1522 received end-of-file on communication channel. (CONNECTION_ID=oZD/yfgrKj5yUjTpiIh3KA==)
at NTTCP.checkErr (/home/node/node_modules/.pnpm/[email protected]/node_modules/oracledb/lib/thin/sqlnet/ntTcp.js:327:29)
at NTTCP.receive (/home/node/node_modules/.pnpm/[email protected]/node_modules/oracledb/lib/thin/sqlnet/ntTcp.js:463:12)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async NetworkSession._recvPacket (/home/node/node_modules/.pnpm/[email protected]/node_modules/oracledb/lib/thin/sqlnet/networkSession.js:390:22)
at async NetworkSession.recvPacket (/home/node/node_modules/.pnpm/[email protected]/node_modules/oracledb/lib/thin/sqlnet/networkSession.js:455:12)
at async ReadPacket.waitForPackets (/home/node/node_modules/.pnpm/[email protected]/node_modules/oracledb/lib/thin/protocol/packet.js:324:18)
at async Protocol._decodeMessage (/home/node/node_modules/.pnpm/[email protected]/node_modules/oracledb/lib/thin/protocol/protocol.js:70:5)
at async Protocol._processMessage (/home/node/node_modules/.pnpm/[email protected]/node_modules/oracledb/lib/thin/protocol/protocol.js:153:9)
at async ThinConnectionImpl.connect (/home/node/node_modules/.pnpm/[email protected]/node_modules/oracledb/lib/thin/connection.js:696:9)
at async ThinPoolImpl.bgThreadFunc (/home/node/node_modules/.pnpm/[email protected]/node_modules/oracledb/lib/thin/pool.js:437:11) {
code: 'NJS-500'
}
Error on Windows:
Error: NJS-500: connection to the Oracle Database was broken
NJS-521: connection to host 138.1.3.227 port 1522 received end-of-file on communication channel. (CONNECTION_ID=zvjqbkKtow3Zi2v0rcaOSw==)
at NTTCP.checkErr (C:\Users\Andrzej\source\repos\ChaosEngine\serverless-scaleway-apollo-typescript\node_modules\.pnpm\[email protected]\node_modules
\oracledb\lib\thin\sqlnet\ntTcp.js:327:29)
at NTTCP.receive (C:\Users\Andrzej\source\repos\ChaosEngine\serverless-scaleway-apollo-typescript\node_modules\.pnpm\[email protected]\node_modules\
oracledb\lib\thin\sqlnet\ntTcp.js:463:12)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async NetworkSession._recvPacket (C:\Users\Andrzej\source\repos\ChaosEngine\serverless-scaleway-apollo-typescript\node_modules\.pnpm\oracledb@
6.5.0\node_modules\oracledb\lib\thin\sqlnet\networkSession.js:390:22)
at async NetworkSession.recvPacket (C:\Users\Andrzej\source\repos\ChaosEngine\serverless-scaleway-apollo-typescript\node_modules\.pnpm\oracledb@6
.5.0\node_modules\oracledb\lib\thin\sqlnet\networkSession.js:455:12)
at async ReadPacket.waitForPackets (C:\Users\Andrzej\source\repos\ChaosEngine\serverless-scaleway-apollo-typescript\node_modules\.pnpm\oracledb@6
.5.0\node_modules\oracledb\lib\thin\protocol\packet.js:324:18)
at async Protocol._decodeMessage (C:\Users\Andrzej\source\repos\ChaosEngine\serverless-scaleway-apollo-typescript\node_modules\.pnpm\[email protected]
.0\node_modules\oracledb\lib\thin\protocol\protocol.js:70:5)
at async Protocol._processMessage (C:\Users\Andrzej\source\repos\ChaosEngine\serverless-scaleway-apollo-typescript\node_modules\.pnpm\oracledb@6.
5.0\node_modules\oracledb\lib\thin\protocol\protocol.js:153:9)
at async ThinConnectionImpl.connect (C:\Users\Andrzej\source\repos\ChaosEngine\serverless-scaleway-apollo-typescript\node_modules\.pnpm\oracledb@
6.5.0\node_modules\oracledb\lib\thin\connection.js:696:9)
at async ThinPoolImpl.bgThreadFunc (C:\Users\Andrzej\source\repos\ChaosEngine\serverless-scaleway-apollo-typescript\node_modules\.pnpm\oracledb@6
.5.0\node_modules\oracledb\lib\thin\pool.js:437:11) {
code: 'NJS-500'
}
- Include a runnable Node.js script that shows the problem.
Repro using https://github.com/ChaosEngine/serverless-scaleway-apollo-typescript.git project on oracle branch
and ADB with mTLS wallet with some password:
git clone --branch=oracle https://github.com/ChaosEngine/serverless-scaleway-apollo-typescript.git
cd serverless-scaleway-apollo-typescript/
mkdir -p credentials/wallet
#execute content of db.sql on ADB database, user adb_test_user is created with some password and schema
cat << EOF > credentials/oracle-creds.env
NODE_ORACLEDB_USER=adb_test_user
NODE_ORACLEDB_PASSWORD=adb_Password443^2
NODE_ORACLEDB_CONNECTIONSTRING=dataplayground2_medium
NODE_ORACLEDB_WALLET_PASSWORD=123456WalPAs!s
EOF
#obtain wallet.zip with password (if needed) and unzip it under credentials/wallet/
unzip -d credentials/wallet/ wallet.zip
docker build -t oracledb-test .
docker run -it --rm -p 8081:8081 --env-file credentials/oracle-creds.env oracledb-test
Verification - open browser to http://localhost:8081/ and execute following graphql
query ExampleQuery {
dogs {
id
name
}
owners {
firstname
lastname
}
}
This should work returning some results
Now breaking it by updating to newest oracldb-6.6.0 (or >oracldb-6.4.0) version
sed -i 's/"oracledb": "6.4.0"/"oracledb": "6.6.0"/' package.json
#building and running the same
docker build -t oracledb-test .
docker run -it --rm -p 8081:8081 --env-file credentials/oracle-creds.env oracledb-test
Now it does not work giving Error: NJS-500: connection to the Oracle Database was broken
Solution:
As suggested here patching solves the issue with oracledb-6.6.0