JDBC Driver 12.6 for SQL Server Released

This post has been republished via RSS; it originally appeared at: New blog articles in Microsoft Community Hub.

Version 12.6 of the Microsoft JDBC Driver for SQL Server has been released. Version 12.6.0 brings several added features, changes, and fixed issues over the previous production release.



  • Added connection property, useDefaultJaasConfig, to allow Kerberos authentication without any additional external configuration #2147
  • Allow calling of stored procedures directly in CallableStatements, simplifying the procedure and improving performance #2154
  • Added connection property, useDefaultGSSCredential, to allow the driver to create GSSCredential on behalf of a user using Native GSS-API for Kerberos authentication #2177
  • Added Java 21 support #2229
  • Added connection property, calcBigDecimalPrecision, to allow the driver to calculate scale and precision from Big Decimal inputs #2248
  • Added a new named logger for connection open retries and idle connection resiliency reconnects #2250


  • Adjusted PreparedStatement cache, so it's cleared before every execute #2272
  • Updated azure-identity, azure-security-keyvault-keys, bouncycastle, and msal library versions #2279
  • Changed socketTimeout to ensure it's always less than or equal to loginTimeout #2280
  • Change BulkCopy behavior from serializing and deserializing Timestamp objects, to using the objects directly #2291
  • Changed how IBM JDK is checked for to prevent issues with OSGi environments #2150
  • Updated azure-security-keyvault-keys, bouncycastle, and h2 library versions #2162 #2182 #2249
  • Changes to bulkcopy to allow for performance improvements when loading a large number of timestamps #2194
  • Added additional errors that should translate to RMFAIL #2201
  • Properly synchronize all calls to MSAL, preventing the driver from making extra calls and providing unneccessary dialogues #2218
  • Changed driver retry behavior to retry the correct number of times based on connectRetryCount #2247

Fixed issues

  • Fixed the way ActivityID was defined and used to be more in line with the behavior of other Microsoft drivers #2254
  • Fixed missing getters and setters for useBulkCopyForBatchInsert #2277
  • Fixed an issue where, when using the TOP qualifier in a query, the driver returns an error concerning ParameterMetadata #2287
  • Fixed an issue where insert statements with missing whitespace worked correctly in regular cases, but not when using batch inserts #2290
  • Fixed time zone not being properly applied to Timestamps when inserted using batch insert with bulkcopy #2291
  • Fixed locks in IOBuffer to prevent deadlock issues that could arise #2295
  • Fixed an issue where, when an exception has no cause, the exception itself is passed along instead, preventing it from being lost #2300
  • Fix to ignore irrelevant computed columns during bulk insert #1562
  • Fixed an issue where signature was not properly verfied when using Java Key Store, as well as adding a new API to sign column master key metadata (and return generated signature) for use with Java Key Store and Azure Key Vault #2160
  • Fixed an issue where a null SQLState was returned when trying to convert a date to a long #2185
  • Fixed an issue where schemaPattern was not properly being escaped in SQLServerDatabaseMetadata #2195
  • Fixes getObject()'s erroneous conversion of DateTimeOffset to LocalDateTime #2204
  • Fixed an issue with ParameterMetadata not properly checking for an invalid index 0 #2217
  • Fixed bulkcopy metadata query to make use of cached data, if it's available #2231
  • Fixed an issue when writing TVP row values, where input values were not properly filtered for BigDecimal scale #2239


Known Issue

  • Localized error strings are not present for languages other than English. This will be addressed in a hotfix.


Getting the latest release

The latest bits are available to download from Microsoft, from the GitHub repository, and via Maven Central.

Add the JDBC 12.6 RTW driver to your Maven project by adding the following code to your POM file to include it as a dependency in your project (choose .jre8 for Java 8/1.8 or .jre11 for Java 11 and up).



<dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>mssql-jdbc</artifactId> <version>12.6.0.jre11</version> </dependency>



Help us improve the JDBC Driver by taking our survey, filing issues on GitHub or contributing to the project.

Please also check out our tutorials to get started with developing apps in your programming language of choice and SQL Server.

David Engel

Leave a Reply

Your email address will not be published. Required fields are marked *


This site uses Akismet to reduce spam. Learn how your comment data is processed.