A number of bugs have been squashed in this release.
We now treat Oracle Database 'Success With Info' warnings as success.
Thanks to Francisco Trevino for his pull request. After investigating and discussing, we decided for 1.5 to pick up the straightforward fix proposed. In a future release we will revisit allowing these warnings to be caught and handled.
Extended rollback-on-connection-release with 11g Oracle Clients to occur for all non-query executions.
The natural behavior of OCI is to commit when a connection is released. This is the opposite of node-oracledb, which therefore has to determine whether to rollback or not.
When node-oracledb is linked with 11g client a heuristic is used to guess whether to rollback when a connection is released. This heuristic needed to be changed to cover more cases. The result is that there will be sometimes be some unnecessary rollbacks issued.
The bug didn't occur node-oracledb was linked with 12c client libraries due to this code that uses a new API available in 12c to indicate whether a connection has a transaction open.
Bottom line: use Oracle 12c client libraries if possible to get optimal behavior.
Updated OS X install instructions to work on El Capitan.
The instructions now use symbolic links in
/usr/local/lib for the Oracle client libraries. This removes the need to set
DYLD_LIBRARY_PATH, which has some restrictions on it introduced in El Capitan.
Display an error and prevent connection release while database calls are in progress.
This was a bigger transaction, that 'fixed' a number of seemingly random crashes which were occurring when applications released connections that were in fact still in use. Node-oracledb will now print an error and not release the connection, thus preventing a crash. Note that since the release fails, connection pools can max out in this scenario. If you experience the errors NJS-030, NJS-031 or NJS-032 you should fix your app so the connection release occurs after all database operations have concluded.
The new messages are:
"NJS-030: Connection cannot be released because Lob operations are in progress"
"NJS-031: Connection cannot be released because ResultSet operations are in progress"
"NJS-032: Connection cannot be released because a database call is in progress"
Fixed an intermittent crash while selecting data from CLOB column.
We had an incorrect buffer expansion ratio in use. This has been fixed.
Fixed crash when trying to set invalid values for connection properties.
Work for node-oracledb 1.6 will begin. We are trying to reproduce and understand some reported LOB issues and memory growth reports. We're also looking forward to evaluating a big pull request from Dieter Oberkofler that adds PL/SQL bind support.
Issues and questions about node-oracledb can be posted on GitHub. We value your input to help prioritize work on the add-on. Drop us a line!
node-oracledb installation instructions are here.
Node-oracledb documentation is here.