-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Closed
Labels
Description
- What versions are you using?
I am using Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production.
process.platform: darwin
process.version: v16.20.0
process.arch: x64
require('oracledb').versionString: 6.0.3
require('oracledb').oracleClientVersionString: NJS-089: getting the Oracle Client version is not supported by node-oracledb in Thin mode
- Is it an error or a hang or a crash?
It's an error.
- What error(s) or behavior you are seeing?
$ node oracle_error.js
/Users/myname/code/appname/node_modules/oracledb/lib/errors.js:592
throw (getErr(...arguments));
^
Error: NJS-103: unexpected message type 0 received at position 450 of packet 12
at Object.throwErr (/Users/myname/code/appname/node_modules/oracledb/lib/errors.js:592:10)
at AuthMessage.processMessage (/Users/myname/code/appname/node_modules/oracledb/lib/thin/protocol/messages/base.js:222:14)
at AuthMessage.process (/Users/myname/code/appname/node_modules/oracledb/lib/thin/protocol/messages/base.js:200:12)
at AuthMessage.decode (/Users/myname/code/appname/node_modules/oracledb/lib/thin/protocol/messages/base.js:190:10)
at Protocol._decodeMessage (/Users/myname/code/appname/node_modules/oracledb/lib/thin/protocol/protocol.js:80:17)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async Protocol._processMessage (/Users/myname/code/appname/node_modules/oracledb/lib/thin/protocol/protocol.js:155:9)
at async ThinConnectionImpl.connect (/Users/myname/code/appname/node_modules/oracledb/lib/thin/connection.js:546:7)
at async Object.getConnection (/Users/myname/code/appname/node_modules/oracledb/lib/oracledb.js:628:3)
at async runApp (/Users/myname/code/appname/oracle_error.js:11:5) {
code: 'NJS-103'
}
- Include a runnable Node.js script that shows the problem.
oracle_error.js:
const oracledb = require('oracledb');
async function runApp() {
let dbConfig = {
user: '<redacted>',
password: '<redacted>',
connectString: '<redacted>:44901/<redacted>',
};
// Get a standalone Oracle Database connection
await oracledb.getConnection(dbConfig);
console.log('Connection was successful!');
}
runApp();
I did a little bit of debugging by adding console.log statements to node-oracledb locally, with the following results:
message.decode(this.readBuf); // pkt: 8, pos: 10
message.decode(this.readBuf); // pkt: 10, pos: 10
base.js decode, pos: 10, packet 10
base.js process, pos: 10, packet 10
hasMoreData? bytes left: 0, flushOutBinds: false
message.decode(this.readBuf); // pkt: 12, pos: 10
base.js decode, pos: 10, packet 12
base.js process, pos: 10, packet 12
Message type 8, pos: 11, packet 12
hasMoreData? bytes left: 180, flushOutBinds: false
Message type 23, pos: 304, packet 12
hasMoreData? bytes left: 34, flushOutBinds: false
Message type 0, pos: 450, packet 12
I have a packet trace and can provide details if needed, but won't share the whole thing here in case I inadvertently reveal something sensitive. Here's a screenshot though that shows Wireshark's interpretation of the packet in question, decoded as TNS:
