Skip to content

Commit 02fb187

Browse files
committed
Added registration id to the CQN subscription callback function's message object parameter (Issue #1692)
1 parent 0bccb2a commit 02fb187

File tree

3 files changed

+14
-3
lines changed

3 files changed

+14
-3
lines changed

doc/src/release_notes.rst

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,10 @@ Thick Mode changes
4242
#) Fixed bug which throws ``ORA-22288`` error in certain scenarios when
4343
querying ``BFILENAME()`` with outbinds.
4444

45+
#) Added registration id to the CQN subscription callback function's message
46+
object parameter.
47+
See `Issue #1692 <https://github.com/oracle/node-oracledb/issues/1692>`__.
48+
4549
node-oracledb `v6.6.0 <https://github.com/oracle/node-oracledb/compare/v6.5.1...v6.6.0>`__ (25 Jul 2024)
4650
---------------------------------------------------------------------------------------------------------
4751

examples/cqn1.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ function myCallback(message) {
7979
}
8080
console.log("Message database name:", message.dbName);
8181
console.log("Message transaction id:", message.txId);
82+
console.log("Registration id:", Number(message.regId));
8283
console.log("Message queries:");
8384
for (let i = 0; i < message.queries.length; i++) {
8485
const query = message.queries[i];

src/njsSubscription.c

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ static NJS_NAPI_FINALIZE(njsSubscription_finalize);
3737

3838
// other methods
3939
static bool njsSubscription_createMessage(napi_env env,
40-
dpiSubscrMessage *message, napi_value *messageObj);
40+
njsSubscription *subscr, napi_value *messageObj);
4141
static bool njsSubscription_createMessageQuery(napi_env env,
4242
dpiSubscrMessageQuery *query, napi_value *queryObj);
4343
static bool njsSubscription_createMessageRow(napi_env env,
@@ -58,10 +58,11 @@ static void njsSubscription_waitOnBarrier(njsSubscription *subscr);
5858
// Create message that will be passed to the callback.
5959
//-----------------------------------------------------------------------------
6060
static bool njsSubscription_createMessage(napi_env env,
61-
dpiSubscrMessage *message, napi_value *messageObj)
61+
njsSubscription *subscr, napi_value *messageObj)
6262
{
6363
napi_value temp, array;
6464
uint32_t i;
65+
dpiSubscrMessage *message = subscr->message;
6566

6667
// create message object
6768
NJS_CHECK_NAPI(env, napi_create_object(env, messageObj))
@@ -92,6 +93,11 @@ static bool njsSubscription_createMessage(napi_env env,
9293
NJS_CHECK_NAPI(env, napi_set_named_property(env, *messageObj, "registered",
9394
temp))
9495

96+
// set registration id
97+
NJS_CHECK_NAPI(env, napi_create_bigint_uint64(env, subscr->regId, &temp))
98+
NJS_CHECK_NAPI(env, napi_set_named_property(env, *messageObj, "regId",
99+
temp))
100+
95101
// set queue name
96102
if (message->queueNameLength > 0) {
97103
NJS_CHECK_NAPI(env, napi_create_string_utf8(env, message->queueName,
@@ -390,7 +396,7 @@ static bool njsSubscription_processNotificationHelper(napi_env env,
390396
NJS_CHECK_NAPI(env, napi_get_global(env, &global))
391397
NJS_CHECK_NAPI(env, napi_get_reference_value(env, subscr->jsCallback,
392398
&callback))
393-
if (!njsSubscription_createMessage(env, subscr->message, &message))
399+
if (!njsSubscription_createMessage(env, subscr, &message))
394400
return false;
395401

396402
// perform callback and clear any exception that occurs

0 commit comments

Comments
 (0)