JSQLConnect™ Support
Release Notes
Current Version
8.5
- Added support for cached ResultSet. If maxResultSetMemorySize and resultSetFileDir are set, then the ResultSet exceeding the limit will be stored in TEMP system folder on the hard drive.
- Added new version of JSQLConnect.jar for JDBC 4.0 with Zulu OpenJDK 6.
- Added named parameters for calling stored procedures.
- Added setting named parameters to a CallableStatement in a random order.
- FIX: Bug with rounding nanoseconds for DATETIME2.
- FIX: Bug in PreparedStatement.getParameterMetaData().
- FIX: Bug with stored procedure output params.
- FIX: The "connect" method returns "null" if the driver realizes it is the wrong kind of driver to connect to the given URL.
- FIX: Now it is possible to pass some parameters as Unicode. If the type is set explicitly, it overrides asciiStringParameters for this parameter only.
Previous Versions
8.4
- Added support for connecting to Azure SQL Database using Azure Active Directory principal name and password.
- Added support for handling the XML data type in the interfaces PreparedStatement, CallableStatement, and ResultSet.
- Added new connection property ‘enablePrepareOnFirstPreparedStatementCall’ to manage prepared statements calls.
- Compatibility with Java 12.
- Compatibility with Zulu OpenJDK.
- Improved class JSQLDatabaseMetaData.
8.3.1
- FIX: Issue with truncation data for types VARCHAR(MAX), NVARCHAR(MAX).
8.3
- Added support for JDBC 4.3.
- Compatibility with Java 9, Java 10 and Java 11.
- Compatibility with OpenJDK.
- Compatibility with AdoptOpenJDK.
- Added support for Connection.beginRequest/Connection.endRequest methods from JDBC 4.3.
- Added new connection property maxSizePreparedStatementsPool to manage opened handles for prepared statements.
- FIX: Issue with closing a ResultSet object when a Statement or Connection object that produced the ResultSet is closed.
8.2
- Compatibility with SQL Server 2017
- Added support for Always Encrypted SQL Server feature.
- Added feature for loading data from a CSV file. See JSQLBulkLoad class.
- Added support for DATETIMEOFFSET type.
- Added support for JAVA 8 datetime API types.
- Added support the Java logging API.
- Added collation support.
- Added new connection property ‘useDateTime2’ for sending parameter values as DATETIME or DATETIME2 type.
- Improved performance with reading, writing and updating LOBs data.
- FIX: Returns incorrect SQLSTATE codes.
- FIX: Issue with clustered index.
- FIX: Exception in CachedRowSet class.
- FIX: Issue with manifest file.
- FIX: Issue with buffer size over 2Gb.
8.1
- Added support for JDBC 4.2
- Compatibility with SQL Server 2016
- Implemented connection to the host with multiple IPs
- Implemented conversion data types for bulk loading
- Added support for NTLMv2 authentication (see ‘useNTLMv2’ connection property)
- Added new connection property for Time conversion to DateTime (see ‘useTimeAsSQLDateTime’)
- Changed behaviour with Date and Time. Now PreparedStatement.setDate, ResultSet.getDate truncates time value and PreparedStatement.setTime, ResultSet.getTime truncates date value.
- FIX: bug with Transaction descriptor
- FIX: bug with SQL Server routing
- FIX: issue in DatabaseMetaData.getSchemas()
- FIX: error in DatabaseMetaData for SQL Server 2000
- FIX: bug with datetime2 in PreparedStatement
- FIX: error in DatabaseMetaData.getColumns
- FIX: issue with bulk loading when using temporary table
- FIX: callable statement with long data
- FIX: geometry type with long data
- FIX: issue with time values
- FIX: bug with throwing SQLException
- FIX: bug while processing column metadata
- FIX: bug in getPropertyInfo
- FIX: bug in PreparedStatement.execute()
- FIX: bug in Statement.executeBatch() for DATETIME and SMALLDATETIME
- FIX: issue with Decimal and Numeric types in bulk loading
- FIX: bug in PreparedStatement.setBlob
- FIX: bug for VARCHAR, NVARCHAR and VARBINARY in bulk loading
- FIX: connection pool issue
- FIX: Packet Size cannot be bigger then 8000
- FIX: BulkLoad is not working with not writable columns
- FIX: Failed connection to named instance if enable failover.
- FIX: Methods in ResultSetMetaData returns not correct values.
8.0
- Implemented image type support for Bulk Loading
- Implemented NTLM authentication with SSL enabled
- Kerberos authentication support
- Full SQLXML type support
- Support of hierarchyid/geography/geometry type
- TDS 7.4 features – Sparse column set, Trace activity logging
- FIX: javax.* classes were removed from jar
- FIX: setTransactionIsolation() changes the isolation level starting with the next transaction henceforth
- FIX: escape syntax for nativeSQL()
- FIX: from now on JSQLStatemenet.getRowsetField() returns byte[] for image
- NOTE: JSQLNTAuthentication.dll is not required anymore
7.3
- Implemented datetime2, sql_variant types support.
- Implemented bulkMaxSize URL parameter.
- Implemented date, time, datetime2, text, ntext types support for Bulk Loading.
- FIX: Bug with comments in prepared statements.
- FIX: Bulk load doesn’t support square brackets in column names.
- FIX: It’s impossible to disable some debugging messages in logs, e.g. “—– PKT_INSTANCE_INFO —–“.
- NOTE: Internal performance improvement. Improved switch in JSQLStatement.sendRowData()
7.2
- Implemented Bulk Loading Feature
- Implemented ResultSet.getDate() and ResultSet.getTime() support
- FIX: A bug with sequent IN and OUT parameter with different types
- FIX: Incomatibility with JDBC 4.1: DatabaseMetaData.getColumns()
- NOTE: Internal structure changes to decrease trafic
7.1
- Implemented JSQLConnect support for JDBC 4.1
- Improved conection process to achieve SQL Azure compatibility
- FIX: Fixed “Timeout error [OleDB Status:80004005]” during Windows Authentication with concurent multi-processes
- FIX: Now JSQLConnect throws exception in case of wrong URL params values
- FIX: Fixed several incompatibilities with JDBC 4.0
7.0
- Implemented ReadOnly Intent support (SQL Server 2012 feature, TDS 7.4)
- Implemented Routing support (SQL Server 2012 feature, TDS 7.4)
- Returned ability to disable/enable connection verification table.
- FIX: connection.getMetaData().getURL() returns null URL when connection is created with help of DataSource
- FIX: call of stored procedure may crash if procedure has BIGINT OUTPUT parameter
6.04
- Added TRANSACTION ISOLATION LEVEL SNAPSHOT support into JDBC 4.0 version of the driver
- FIX: PreparedStatement.SetSQLXML() method throws exception “Not Supported Yet”
- FIX: JDBC 3.0 driver throws exception when JSQLXADataSource.getXAConnection() method is called
6.00
- Prepared the driver for the new features (PDW, etc.) in SQL Server 2008 R2
5.99
- Plenty of performance optimization
- Improved Windows Authentication Trace logging
- All kinds of Timeout performace optimization
- Plenty of performance optimizations
- Cleaned code
- FIX: Random object setting(SetObject) can cause changing the object data
- FIX: Big data in column (more than 8000 symbols) can be random truncated when inserting data
- FIX: Added workaround for “SP_PREPARE Crashes when attempting to use Fulltext Indexes on SQL 2008”
- FIX: not null lockTimeout can hug the driver
- FIX: driver thrown an exception when packetsize param in connection string was equal 0
- FIX: Windows Authentication can crash on Windws Vista system when Windows Authentication Trace logging is on
- FIX: Windows Authentication can hang up on Windws Vista system
- FIX: The driver ignores named parameters in CallableStatement
- FIX: Driver ignored “PreparedStatement.RETURN_GENERATED_KEYS” option when Statement called execute() method
5.80
- Requires Java5 (1.5) or higher
- Removed JDBC2.0 files and support
- Improved Windows Authentication Trace logging
- New IPv6 address support
- Initial Support for SQL 2008
- New packetSize Connection Option with default 8000
- Removed redundant variables in PreparedStatement
- NOTE:Driver will cast BigDecimal values with toPlainString in buffer before sending allowing BigDecimal(“String”) to be used with scientific notation without requiring toPlainString in the application
- NOTE: setObject, updateObject, setBigDecimal, updateBigDecimal with value BigDecimal.toString using string exponent “E+/-” may cause SQL Message “Error converting data type nvarchar to numeric”, use BigDecimal.toPlainString
- NOTE: setObject, updateObject with bigDecimal.toString using “E+/-” notation against numeric columns will cause SQL Message “Error converting data type nvarchar to numeric”, use BigDecimal.toPlainString
- FIX: Cursor fetch for SQL2005 returning only 1 Row
- FIX: intermittent Timeout error [OleDB Status:80004005] with Windows Authentication
- FIX: DataTypes.java description for VARCHAR
- FIX: maxDecimalPrecision for Types.Decimal when building Parameter Definitions
- FIX: PacketSize higher then 4096 can cause DBComms Exception on Streaming Methods
5.70
- NOTE: setBinaryInputStream Size Problem is due to TDS Limit in SQL Server. No workaround at this time.
- NOTE: Several internal structure change to align methods and classes more closely with future enhancments.
- FIX: Setter and Getter methods for Date/Time/Timestamp causing incorrect values in 5.60.
5.60
- NOTE: JSQLConnect for JDBC 2.0 is Deprecated.
- FIX: ResultSet insert/update was passing nulls for non-String data values
- CHANGE: Added a local thread in JSQLPoolingDataSource to handle the PoolingEngine definitions
- CHANGE: java.sql.Timestamp Deprecated methods replaced.
- FIX/CHANGE: New PreparedStatment logic to correct parameter length and value length conflicts
- BUG: Network Packet Sizes beyond 4096 can cause DBComms Exception for streaming methods
- BUG: setBinaryInputStream throws DBComms Exception for streams larger then 260MB
- BUG: ssl=auto for non-SSL SQL2005 instance causes socket exception.
- FIX: DST GMT crossover timestamp fix, removed change from 3.2714
5.56
- FIX: LONGVARCHAR with CallableStatment can cause Exception “Procedure or Function ‘StoredProc’ expects parameter ‘@Param’ , which was not supplied.”
- FIX: SSL Connections can cause “java.io.IOException: SSL input stream bad TDS packet type: 18”
5.551
- FIX: codepage property was not working since 5.5 (5.50)
- NOTE: TSR473 — Not Bug, TDS RPC Limit is 2100 parameters per single prepared statement
5.55
- CHANGE: selectMethod=cursor now creates Server Side Cursor for PreparedStatements that do not specify thier own Result Type and Concurrency and contains a SELECT only
- FIX: incorrect binding of Null CLOBs
- FIX: Invalid column name ‘rowstat’ from Server Side Cursors and ResultSetMetaData
- FIX: Statement.wasNull() fails for INT output parameter.
- FIX: MultiThreading Single Connection causes No Data Exception with AutoCommit False
- NOTE: OutOfMemory causes Temp File of ResultSet Memory on Win32 Sun JVM
- BUG: TSR473 — 2100 or more parameters in single PreparedStatement cause Exception “This statement did not return a result set”
5.54
- FIX: TrustedAuthentication Library fix for handling of CoInitialize errors.
- CHANGE: TrustedAuthentication Library is now synchronized completely. Only a single Thread, Process, or VM can access the library at a time.
- FIX: getDriverName DatabaseMetaData contained incorrect JSQLConnect Version numbers
5.532
- FIX: PreparedStatement setShort now correctly sets SMALLINT MSSQL Parameter instead of INT
5.531
- FIX: getTablePrivileges with SQL2005 no longer throws exception
5.53
- FIX: getColumnCount with SQL2005 no longer provides incorrect result
- CHANGE: JSQLPoolingEngine now uses a round robin routine for getConnection requests
5.52
- Fix incorrect handle parsing for MSSQL prepared statement handles greather than 65535
5.51
- Corrected IF TRAN syntax error on complex batch transaction checks
5.50
- Versions of JSQLConnect to support JDBC 4.0 (draft), JDBC 3.0 and JDBC 2.0
- Support for the new XML JDBC data type in JDBC 4.0. DOM, SAX, Stax bindings etc.(JDBC 4.0)
- Direct instantiation of BLOB/CLOB objects from a JDBC connection (JDBC 4.0)
- Java Standard Edition Service Provider mechanism (JDBC 4.0)
- Statement Pooling controls (JDBC 4.0)
- Corrected issue relating to inability to execute batch statements when a connection pool is full
5.02
- The Websphere data helper now does not set the database default isolation. IBM recommends that users should now set the default isolation level for a Websphere datasource via the Websphere console.
5.01
- Correction of data truncation issues when binding LOB data to columns that were previously bound with non LOB (e.g. string data)
5.0
- Connectivity to SQL Server 2005.
- NTLM authentication option.
- SSL authenticated/encrypted connections option.
- Customized Webshpere 5.0/6.0 datasource adapter. Specify com.jnetdirect.jsql.WebsphereDataStoreHelper in WAS console admininstrator.
4.55
- Allow literal procedure call syntax ‘{call..’ in statement syntax that is not a procedure call operation.
4.54
- Detection of a SQL Server 2005 connection.
4.53
- JSQLNTAuthentication.dll issues a unique authentication proxy listening port for the driver in each JVM instance.
4.52
- Changed parameter names when calling sp_special_columns, sp_table_privileges using SQL Server 2005 for database meta data
- The JSQLNTAuthentication.dll issues a unique authentication proxy listening port for the driver in each JVM instance. This is required since there is no inter-JVM synchronization.
4.51
- Provide ability to return prepared statement meta data prior to the execution of the statement
- Driver must use max precision of 38 for all decimals for SQL 2000, previously was set at precision of 28
- prepStmt.setObject(type) added additional code to convert data to target type before sending to db
- A db datetime returned as a JDBC time now has the date component zeroed
- A callable statement param used for IN and OUT may have a different type registered for output versus the input data type supplied by a setXXX().
- DATETIME output params from a stored proc must be converted to the user’s registered out type Prep statements sp_prepare datatype
- NTEXT must be modified to TEXT when using ascii string parameters property
- IOBuffer.bufferAppendRPCStringAscii caused an IndexArrayOutOfBounds exception periodically with batched callable statements
- For logging of RPC data convert the binary data to hex representation
- Added case for error code to state mapping. Error 2627 maps to SQL 92 state “23000” (Violation of primary key constraint)
4.50
- Product is now J2EE 1.4 Certified.
4.04
- Code changed in AuthenticationProcessor run() method and the JDBC3.0 driver will use the methods available in JDK 1.4 and up for reusing the ServerSockets that were closed recently.
- Reusing recently closed sockets by the authentication proxy avoids depletion of the socket pool.
- Added case for error code to state mapping. Error 2627 maps to SQL 92 state “23000” (Violation of primary key constraint)
- RetryConnectionCount > 0 caused >1 connection to be created in error. Now when a connection is made successfully the retry loop exits.
- A connection thread is now guaranteed to not start a new trusted connection proxy listener before Reusing recently closed sockets by the authentication proxy avoids depletion of the socket pool the proxy instance thread of a previous connection exits
- New property trustedAuthenticationPort was added to enable the trusted authentication proxy to listen on a unique port for every JVM instance on a single machine. Otherwise the proxy listener is not multi process safe on >1 JVM on a single machine dsadas
4.0300
- Fixed CASE in DatabaseMetaData.getCatalogs().Now returns original case.
4.0200
- Fixed a bug in SET statements.
- Fixed a bug in executeBatch.
4.0100
- New property “iterativeBatching” added to support JSQLConnect 3.0 and 2.0 compatibility.
4.0000
- New property “preExecuteMetaData” added to support the availability of meta data prior to statement execution.
- New property “selectMethod” added to support cursors.
- Full Blob and Clob Support.
- Complete 64-bit support. Includes DLL’s for NT Authentication and Distributed Transactions.
- Improved Performance of Batch Updates
- Fixed a bug in MetaData.getUserName()