Node-oracledb 6.10 introduces Advanced Queuing (AQ) support in Thin mode and much more
Building Node.js applications with Oracle Database got a whole lot easier with AQ support now available in Thin mode and extended JSON support with SODA in this new release.
Release announcement: A new release of node-oracledb, the Node.js and TypeScript module for accessing Oracle Database, is available from npm.
In the afterglow of the exciting Oracle AI Database 26ai announcement, the node-oracledb brings to you its latest 6.10 release stacked with new exciting features that support
- Oracle Database Advanced Queuing (AQ) in Thin Mode
- proxy user-based external authentication with connection pools in Thin Mode
- the ‘config_time_to_live’ parameter for configurations retrieved from Centralized Configuration Providers
- extended JSON data types in SODA
The new features in this node-oracledb release provide more power, scalability and flexibility for the Oracle Database application developer and facilitates rapid application deployment for the end application user.
Advanced Queuing (AQ) support in Thin Mode
Advanced Queuing is a highly configurable and scalable messaging feature of Oracle Database allowing data-driven and event-driven applications to stream events and communicate with each other.
This node-oracledb release introduces Thin mode support of Advanced Queuing (AQ) “classic” queues for RAW and named object payloads. This has been a highly requested feature, so that users no longer have to enable Thick mode (i.e. use Oracle Client libraries) to use AQ classic queues.
So, one more major feature of Oracle Database is now instantly accessible and deployable via JavaScript and TypeScript applications.
See the user documentation Using Oracle Transactional Event Queues and Advanced Queuing.
Proxy user-based external authentication with connection pools in Thin Mode
Connection pools can now use proxy user-based external authentication to connect and work with Oracle Database in node-oracledb’s Thin mode. This enables applications to have an extra layer of security, while connecting to Oracle Database.
Since the Thin mode supports only homogenous connection pools currently, we can now pass the proxy user as part of the configuration object parameter in the oracledb.createPool() method.
In Thick mode, the proxy user will continue to be passed to the getConnection() method, as it supports both heterogenous and homogenous connection pools.
Here is a code snippet for using proxy user with external authentication in Thin mode:
const poolConfig = {
user: `[proxyuser]`
connectString: `connectionString`,
externalAuth: true,
walletPassword: `walletpwd`,
walletLocation: `walletlocation`
};
const pool = await oracledb.createPool(poolConfig);Support for the ‘config_time_to_live’ parameter with Centralized Configuration Providers
This release brings more flexibility and control over the configuration caching features with Oracle Call Infrastructure (OCI), Microsoft Azure and File-based Centralized Configuration Providers.
You can define the number of seconds that node-oracledb should keep the configuration information cached by using the config_time_to_live key in a Centralized Configuration Provider. After the config_time_to_live duration expires, the cached configuration information becomes invalid. So, node-oracledb refreshes the cache the next time the configuration information from the configuration provider is required.
See our Configuration Caching Information section for Centralized Configuration Providers on the config_time_to_live parameter support.
Support for internal use of JSON in SODA
The added support for internal use of JSON in SODA allows for the seamless transfer of extended JSON data types, when using node-oracledb in Thick mode for SODA operations.
Other Features and Updates
We have added the deliveryMode settable property to deqOptions object that allows flexibility for the dequeued Advanced Queuing (AQ) messages to be fetched in PERSISTENT or BUFFERED delivery modes.
We have also added a new extended metadata information attribute dbColumnName for a fetched column which provides the actual database column name as opposed to the unique column name provided by the name information attribute.
The sodaDocument.getContent() method now returns non-JSON content as a JavaScript Buffer.
Last, but not by any means least, we have fixed multiple internal and external issues raised by our GitHub users.
See the latest Release Notes for all the changes.
Installing or Upgrading node-oracledb
You can install or upgrade node-oracledb by updating your package.json requirements:
"dependencies": {
"oracledb": "^6.10"
},Resources
- Node-oracledb installation instructions are here.
- Node-oracledb documentation is here.
- Node-oracledb change log is here.
- Issues and questions about node-oracledb can be posted on GitHub or Slack (link to join Slack).
- Follow us on Twitter or Facebook.
Finally, contributions to node-oracledb are more than welcome, see CONTRIBUTING.

