Closed nicholas-ochoa closed 1 year ago
Thanks for the report. We'll look into it.
Both examples show deqOne() call, is there another script calling enqOne()? Thanks
@pvenkatraman the enqueue is done in SQL, if I read the files correctly
@cjbj, yes noticed enqueue () in db/create-proc.sql, but there is also a dequeue() in the same file, so whatever queued, will be processed there itself.
I apologize for the confusion - I created this from a portion of a much larger / complex application.
The workflow in the actual application looks like this:
ATTACHMENT
with correlation UPLOAD
ATTACHMENT
with correlation UPLOAD
containing a payload, which also includes the client SESSIONID
, in this example let's say that is 87654321
.ATTACHMENT
with correlation 87654321
(the client SESSIONID
).I have updated my example repo to remove step 5, which is the dequeue()
call you were seeing in the create-proc.sql
script. In this example it would not be needed and was never getting used; I had already removed the enqOne()
call (step 4) from the JavaScript portion of the example.
@pvenkatraman I read it wrong !
Were you able to reproduce the issue with the repo / notes I provided? If not, I can try and further clarify - or try and further simplify the example repo. Unfortunately, this issue is blocking us from updating to the newer releases of the driver.
Yes, we can reproduce it. It isn't specific to AQ at all, either! We'll get back to you on a solution once we have it!
@nicholas-ochoa This has been fixed. And here is the patch:
index 5cc9091c..93d41809 100644
--- a/lib/connection.js
+++ b/lib/connection.js
@@ -146,6 +146,7 @@ class Connection extends EventEmitter {
cls = this._buildDbObjectClass(objType);
cls._connection = this;
cls._objType = objType;
+ objType._connection = this._impl;
this._dbObjectClasses.set(objType, cls);
}
return (cls);
The fix will be available as part of the 6.0.2 release
I tested the patch in my example reproduction and it fixes the issue. Thank you!
This is now available as part of node-oracledb 6.0.2. See the release announcement
When attempting to retrieve data from a BLOB on a queue message payload, an exception is encountered in the node-oracledb driver that prevents the data from loading. This worked on 5.5.0 without any issues. I'm using the thick client in this case, because the 6.x.x thin client does not yet support Oracle Advanced Queues.
Version details:
I've created a repo containing a reproduction of the issue, along with SQL scripts to recreate the database schema, objects and procedures: https://github.com/nicholas-ochoa/node-oracledb-blob-issue