JSQLConnect™ Support

Release Notes

Current Version
  • 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
  • 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.
  • FIX: Issue with truncation data for types VARCHAR(MAX), NVARCHAR(MAX).
  • 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.
  • 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.
  • 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.
  • 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
  • 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()
  • 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
  • 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
  • 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
  • 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
  • Prepared the driver for the new features (PDW, etc.) in SQL Server 2008 R2
  • 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
  • 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
  • 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.
  • 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
  • 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”
  • 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
  • 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”
  • 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
  • FIX: PreparedStatement setShort now correctly sets SMALLINT MSSQL Parameter instead of INT
  • FIX: getTablePrivileges with SQL2005 no longer throws exception
  • FIX: getColumnCount with SQL2005 no longer provides incorrect result
  • CHANGE: JSQLPoolingEngine now uses a round robin routine for getConnection requests
  • Fix incorrect handle parsing for MSSQL prepared statement handles greather than 65535
  • Corrected IF TRAN syntax error on complex batch transaction checks
  • 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
  • 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.
  • Correction of data truncation issues when binding LOB data to columns that were previously bound with non LOB (e.g. string data)
  • 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.
  • Allow literal procedure call syntax ‘{call..’ in statement syntax that is not a procedure call operation.
  • Detection of a SQL Server 2005 connection.
  • JSQLNTAuthentication.dll issues a unique authentication proxy listening port for the driver in each JVM instance.
  • 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.
  • 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)
  • Product is now J2EE 1.4 Certified.
  • 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
  • Fixed CASE in DatabaseMetaData.getCatalogs().Now returns original case.
  • Fixed a bug in SET statements.
  • Fixed a bug in executeBatch.
  • New property “iterativeBatching” added to support JSQLConnect 3.0 and 2.0 compatibility.
  • 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()