Release date: September 7, 2026 Version: V2.4.19
Overview
JDBC V2.4.19 introduces a caching mechanism for metadata under the PS protocol, which avoids repeated retrieval and processing of the same metadata. It also extends support for UDT (User Defined Type) as a table column and supports output parameters for complex type elements in PL anonymous arrays.
New features
- Added client-side caching for metadata (such as column names and types) under the PreparedStatement protocol, reducing network round-trip overhead with OBServer, lowering server load, and improving application-layer performance in retrieving result set metadata.
- JDBC adaptation for OBServer custom type columns, enhancing the JDBC driver's ability to recognize and handle User Defined Types (UDT) as table column types in OBServer.
- Supports PL output parameters as anonymous arrays containing complex types.
Compatibility changes
The compatibility changes in this version are mainly reflected in the new behavior of the following URL parameters.
URL parameter changes
Modify the following URL parameters:
Name |
Changes |
Description |
|---|---|---|
| obCachePsMetaData | New | Indicates whether to cache meta information under the PS protocol. This parameter takes effect only when it is enabled by setting the server parameter enable_ps_meta_response_optimize. |
| obGetDateStringWithMillis | New | Specifies whether to include milliseconds when retrieving a date value using getString in an Oracle-compatible tenant. (This parameter does not affect the result when compatible with OJDBC6.) |
Bug fixes
The main issues fixed in this iteration are as follows.
- Fixed a NullPointerException when using CallableStatement to call a stored procedure in JDBC.
- Fixed a serialization error in the internal Rowid implementation class of JDBC.
- Fixed precision loss when using the getString method to retrieve Date type data with compatibleOjdbcVersion=8.
- Fixed an error of -4001 for DECIMAL type parameters when calling PKG stored procedures.
- Fixed the issue where maximum open cursors exceeded occurred after enabling cachePrepStmts.
- Fixed an issue where a null pointer was triggered in the inCallableStatementCache due to the Connection being closed prematurely in case of a JDBC exception.
- Fixed issues related to requestId validation and race conditions during concurrent reads when using useBatchMultiSend under the 2.0 protocol.
- Fixed an exception thrown when calling isLast() on a TYPE_SCROLL_INSENSITIVE ResultSet in Oracle-compatible mode.
- Optimized the issue where the error message was not user-friendly when a streaming result set was not specified with extendOracleResultSetClass in Oracle-compatible mode.
- Fixed an issue where the metadata lookup path was unclear when using ALL_ARGUMENTS to view PL parameters.
