You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/connect/jdbc/release-notes-for-the-jdbc-driver.md
+7-7Lines changed: 7 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -327,7 +327,7 @@ For the driver in a tar.gz file: [Chinese (Simplified)](https://go.microsoft.com
327
327
| Allow failover partner to be tried if there's a socket timeout | Allows a reconnection attempt with a supplied failover partner following a socket timeout. |
328
328
| Improved performance when building parameter type definitions | By precomputing sizes of arrays and string builders used in `buildParamTypeDefinitions`, and by removing unneeded string allocations, improve performance where this method is used. |
329
329
| Changed serverName sent in `LOGIN` packet to include instanceName |`serverName` is now appended to the end of `instanceName` in `LOGIN` packets. |
330
-
| Updated supportTransaction method to reflect whether server supports transactions | Addresses an issue where `connection.rollback` didn't work for Azure Synapse database, as the syntax used in `supportTransaction` wasn't supported by Azure Synapse.|
330
+
| Updated supportTransaction method to reflect whether server supports transactions | Addresses an issue where `connection.rollback` didn't work for Azure Synapse database, as Azure Synapse doesn't support the syntax used in `supportTransaction`.|
331
331
| Update sp_cursor calls so that table names are passed in instead of an empty string | Addresses an issue where inconsistent updates of ResultSet rows were received when updating one-to-many tables. |
332
332
| Updated supportsLikeEscapeClause() to check for Azure Data Warehouse | Addresses an issue where `supportsLikeEscapeClause` was returning true for AzureDW despite it explicitly not being supported. |
333
333
| Upgraded to latest OSGi JDBC specification | Upgrade from `osgi.compendium` 5.0.0 to `osgi.service.jdbc` 1.1.0 to maintain compliance with OSGi JDBC specification 8.1.0. |
@@ -626,8 +626,8 @@ For the driver in a tar.gz file: [Chinese (Simplified)](https://go.microsoft.com
626
626
| :---------- | :----------- |
627
627
| Default encrypt to true |**BREAKING CHANGE** TLS encryption is enabled by default. |
628
628
| Certificate validation when encrypt = false | **BREAKING CHANGE** When encrypt = false but the server requires encryption, the certificate is validated based on the trustServerCertificate connection setting.
629
-
| aadSecurePrincipalId and aadSecurePrincipalSecret deprecated | The aadSecurePrincipalId and aadSecurePrincipalSecret connection properties have been deprecated. Use username and password instead. |
630
-
| getAADSecretPrincipalId API removed |**BREAKING CHANGE** The getAADSecretPrincipalId API has been removed for security reasons. |
629
+
| aadSecurePrincipalId and aadSecurePrincipalSecret deprecated | The aadSecurePrincipalId and aadSecurePrincipalSecret connection properties are deprecated. Use username and password instead. |
630
+
| getAADSecretPrincipalId API removed |**BREAKING CHANGE** The getAADSecretPrincipalId API is removed for security reasons. |
631
631
| SQL_Variant support | Added support for SQL_Variant datatype when retrieving DateTimeOffset. |
632
632
| Nonblocking random in Linux | Updated to use a nonblocking random call when generating a GUID for enclave packages. |
633
633
| CNAME resolution for realm | Added CNAME resolution when realm is specified. |
@@ -686,7 +686,7 @@ For the driver in a tar.gz file: [Chinese (Simplified)](https://go.microsoft.com
686
686
| Java 16 support | The driver is now compatible with Java Development Kit (JDK) version 16.0 in addition to JDK 11.0 and 1.8. |
687
687
| Replication connection support | Replication connections are now supported. See [Setting the connection properties](setting-the-connection-properties.md). |
688
688
| Custom Kerberos authentication realm | The driver now supports specifying a custom authentication realm when using Kerberos authentication. See [Setting the connection properties](setting-the-connection-properties.md). |
689
-
| Open Connection Retry | The `connectRetryCount` and `connectRetryInterval` connection properties have been added to configure automatic retries when opening connections. See [Setting the connection properties](setting-the-connection-properties.md) for details on these new properties. |
689
+
| Open Connection Retry | The `connectRetryCount` and `connectRetryInterval` connection properties are added to configure automatic retries when opening connections. See [Setting the connection properties](setting-the-connection-properties.md) for details on these new properties. |
690
690
691
691
### Changes in 9.4
692
692
@@ -896,7 +896,7 @@ Microsoft JDBC Driver 8.2 for SQL Server is now compatible with Java Development
896
896
| Temporal Datatypes change | Details |
897
897
| :---------- | :------ |
898
898
| Microsoft JDBC Driver 8.2 for SQL Server has improved performance when retrieving temporal datatypes from SQL Server. | This change eliminates unnecessary temporal datatype conversions by eliminating the use of java.util.Calendar wherever possible. |
899
-
|The following list of temporal data types are affected by this performance improvement; in the format "SQL Server datatype" (Java mapping). | date (java.sql.Date), datetime (java.sql.Timestamp), datetime2 (java.sql.Timestamp), smalldatetime (java.sql.Timestamp), and time (java.sql.Time). |
899
+
|This performance improvement affect the following list of temporal data types; in the format "SQL Server datatype" (Java mapping). | date (java.sql.Date), datetime (java.sql.Timestamp), datetime2 (java.sql.Timestamp), smalldatetime (java.sql.Timestamp), and time (java.sql.Time). |
900
900
901
901
<sup>1</sup> Due to the differences in how time zones are handled between java.util.Calendar and java.time.LocalDateTime API, temporal datatypes with a user provided java.util.Calendar object associated with it or microsoft.sql.DateTimeOffset datatypes don't benefit from this improvement.
902
902
@@ -905,7 +905,7 @@ Microsoft JDBC Driver 8.2 for SQL Server is now compatible with Java Development
905
905
| sqljdbc_auth.dll change | Details |
906
906
| :------------------- | :------ |
907
907
| Starting with Microsoft JDBC Driver 8.2 for SQL Server, the driver relies on mssql-jdbc_auth-\<version>-\<arch>.dll instead of sqljdbc_auth.dll to use Azure Active Directory Authentication feature. | |
908
-
| The DLL has also been uploaded to Maven repository for easier access. | See [this page](https://search.maven.org/artifact/com.microsoft.sqlserver/mssql-jdbc_auth). |
908
+
| The DLL is uploaded to Maven repository for easier access. | See [this page](https://search.maven.org/artifact/com.microsoft.sqlserver/mssql-jdbc_auth). |
909
909
910
910
### 8.2 Known issues
911
911
@@ -975,7 +975,7 @@ Microsoft JDBC Driver 7.4 for SQL Server is now compatible with Java Development
975
975
| Known issues | Details |
976
976
| :----------- | :------ |
977
977
| When using NTLM Authentication. | Enabling Extended Protection and encrypted connections at the same time is currently not supported. |
978
-
| When using useFmtOnly. |There are some issues with the feature, which are caused by deficiencies in SQL parsing logic. For more information and workaround suggestions, see [Using useFmtOnly](using-usefmtonly.md). |
978
+
| When using useFmtOnly. |Deficiencies in SQL parsing logic can cause some issues with the feature. For more information and workaround suggestions, see [Using useFmtOnly](using-usefmtonly.md). |
Copy file name to clipboardExpand all lines: docs/connect/jdbc/setting-the-connection-properties.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -80,7 +80,7 @@ The following table lists all the currently available connection string properti
80
80
| keyStorePrincipalId<br/><br/>String<br/><br/>null | (Version 8.4+) When **keyStoreAuthentication=KeyVaultManagedIdentity**, the **keyStorePrincipalId** property specifies a valid Microsoft Entra application client ID. <br/><br/>For more information about Always Encrypted, see [Using Always Encrypted with the JDBC driver](using-always-encrypted-with-the-jdbc-driver.md). |
81
81
| keyStoreSecret<br/><br/>String<br/><br/>null | (Version 6.0+) When **keyStoreAuthentication=JavaKeyStorePassword**, the **keyStoreSecret** property identifies the password to use for the keystore and the key. When one is using the Java Key Store, the keystore and the key password must be the same.<br/><br/>For more information about Always Encrypted, see [Using Always Encrypted with the JDBC driver](using-always-encrypted-with-the-jdbc-driver.md). |
82
82
| lastUpdateCount<br/><br/>boolean<br/>["true" | "false"]<br/><br/>true | A "true" value only returns the last update count from an SQL statement that is passed to the server. As well, it's used on only single SELECT, INSERT, or DELETE statements to ignore other update counts that are server triggers can cause. Setting this property to "false" causes all update counts to be returned, including this update counts returned by server triggers.<br/><br/> **Note:** This property only applies when it's used with the [executeUpdate](reference/executeupdate-method-sqlserverstatement.md) methods. All other execute methods return all results and update counts. This property only affects update counts returned by server triggers. It doesn't affect result sets or errors that result as part of trigger execution. |
83
-
| lockTimeout<br/><br/>int<br/><br/>-1 | The number of milliseconds to wait before the database reports a lock time-out. The default behavior is to wait indefinitely. If a value for this property has been specified by the user, this value is the default for all statements on the connection.<br/><br/>Alternatively, **Statement.setQueryTimeout()** can be used to set the query time-out for specific statements. The value can be 0, which specifies no wait. |
83
+
| lockTimeout<br/><br/>int<br/><br/>-1 | The number of milliseconds to wait before the database reports a lock time-out. The default behavior is to wait indefinitely. If the user has not specified a value for this property, this value is the default for all statements on the connection.<br/><br/>Alternatively, **Statement.setQueryTimeout()** can be used to set the query time-out for specific statements. The value can be 0, which specifies no wait. |
84
84
| loginTimeout<br/><br/>int<br/>[0..65535]<br/><br/>30 (version 11.2 and up)<br/>15 (version 10.2 and below) | The number of seconds the driver should wait before timing out a failed connection. A zero value indicates that the timeout is the default system timeout. This value is either 30 seconds (the default in version 11.2 and above) or 15 seconds (the default in version 10.2 and below). A nonzero value is the number of seconds the driver should wait before timing out a failed connection.<br/><br/> If you specify a Virtual Network Name in the **Server** connection property, you should specify a timeout value of three minutes or more to allow sufficient time for a failover connection to succeed. For more information about disaster recovery, see [JDBC driver support for High Availability, disaster recovery](jdbc-driver-support-for-high-availability-disaster-recovery.md). |
85
85
| maxResultBuffer<br/><br/>String<br/><br/>null | (Version 9.2+) **maxResultBuffer** can be used to set the maximum bytes to read when reading a result set. If not specified, then the entire result set is read. Size can be specified in two styles:<br>1. as size of bytes (for example, `100`, `150M`, `300K`, `400G`)<br>2. as a percent of maximum heap memory (for example, `10p`, `15pct`, `20percent`).|
86
86
| msiClientId<br/><br/>String<br/><br/>null | (Deprecated) (Version 7.2+) The Client ID of the Managed Identity (MSI) used to acquire an **accessToken** to establish a connection with the **ActiveDirectoryManagedIdentity** or **ActiveDirectoryMSI** authentication mode.|
@@ -111,7 +111,7 @@ The following table lists all the currently available connection string properti
111
111
| trustManager...<br/>ConstructorArg<br/><br/>String<br/><br/>null | (Version 6.4+) An optional argument to pass to the constructor of the TrustManager. If the `trustManagerClass` property is specified and an encrypted connection is requested, the custom TrustManager is used instead of the default system JVM keystore-based TrustManager. |
112
112
| trustServerCertificate<br/><br/>boolean<br/>["true" | "false"]<br/><br/>false | Set to "true" to specify that the driver doesn't validate the server TLS/SSL certificate.<br/><br/> If "true", the server TLS/SSL certificate is automatically trusted when the communication layer is encrypted using TLS.<br/><br/> If "false", the driver validates the server TLS/SSL certificate. If the server certificate validation fails, the driver raises an error and closes the connection. The default value is "false". Make sure the value passed to **serverName** exactly matches the Common Name (CN) or DNS name in the Subject Alternate Name in the server certificate for a TLS/SSL connection to succeed. For more information about encryption support, see [Understanding encryption support](understanding-ssl-support.md).<br/><br/> **Note:** This property is used in combination with the **encrypt**/**authentication** properties. This property only affects server TLS/SSL certificate validation if the connection uses TLS encryption. |
113
113
| trustStore<br/><br/>String<br/><br/>null | The path (including filename) to the certificate trustStore file. The trustStore file contains the list of certificates that the client trusts.<br/><br/> When this property is unspecified or set to null, the driver relies on the trust manager factory's lookup rules to determine which certificate store to use.<br/><br/> **The default SunX509 TrustManagerFactory tries to locate the trusted material in the following search order:**<br/><br/> A file specified by the "javax.net.ssl.trustStore" JVM system property.<br/><br/> `<java-home>/lib/security/jssecacerts` file.<br/><br/> `<java-home>/lib/security/cacerts` file.<br/><br/> <br/><br/> For more information about the SUNX509 TrustManager Interface, see the SUNX509 TrustManager Interface documentation on the Sun Microsystems Web site.<br/><br/> **Note:** This property only affects the certificate trustStore lookup, if the connection uses TLS encryption and the **trustServerCertificate** property is set to "false". |
114
-
| trustStorePassword<br/><br/>String<br/><br/>null | The password used to check the integrity of the trustStore data.<br/><br/> If the trustStore property is set but the trustStorePassword property isn't set, the integrity of the trustStore isn't checked.<br/><br/> When both trustStore and trustStorePassword properties are unspecified, the driver uses the JVM system properties, "javax.net.ssl.trustStore" and "javax.net.ssl.trustStorePassword". If the "javax.net.ssl.trustStorePassword" system property isn't specified, the integrity of the trustStore isn't checked.<br/><br/> If the user has not set the trustStore property but they have set the trustStorePassword property, the JDBC driver uses the file that is specified in the "javax.net.ssl.trustStore" as a trust store. Furthermore, the driver checks the integrity of the trust store by using the specified trustStorePassword. This setting is needed when the client application doesn't want to store the password in the JVM system property.<br/><br/> **Note:** The trustStorePassword property only affects the certificate trustStore lookup, if the connection uses TLS connection and the **trustServerCertificate** property is set to "false". |
114
+
| trustStorePassword<br/><br/>String<br/><br/>null | The password used to check the integrity of the trustStore data.<br/><br/> If the trustStore property is set but the trustStorePassword property isn't set, the integrity of the trustStore isn't checked.<br/><br/> When both trustStore and trustStorePassword properties are unspecified, the driver uses the JVM system properties, "javax.net.ssl.trustStore" and "javax.net.ssl.trustStorePassword". If the "javax.net.ssl.trustStorePassword" system property isn't specified, the integrity of the trustStore isn't checked.<br/><br/> If the user does not set the trustStore property but they do set the trustStorePassword property, the JDBC driver uses the file that the "javax.net.ssl.trustStore" specifies as a trust store. Furthermore, the driver checks the integrity of the trust store by using the specified trustStorePassword. This setting is needed when the client application doesn't want to store the password in the JVM system property.<br/><br/> **Note:** The trustStorePassword property only affects the certificate trustStore lookup, if the connection uses TLS connection and the **trustServerCertificate** property is set to "false". |
115
115
| trustStoreType<br/><br/>String<br/><br/>JKS | Set this property to specify trust store type to be used for FIPS mode. <br/><br/>Possible values are either **PKCS12** or type defined by FIPS provider. |
116
116
| useBulkCopyFor...<br/>BatchInsert<br/><br/>boolean<br/>["true" | "false"]<br/><br/>false | (Version 9.2+) This connection property can be enabled to transparently use the Bulk Copy API when doing batch insert operations using `java.sql.PreparedStatement`. This feature potentially provides higher performance when enabled. <br/><br/>This feature is disabled by default. Set this property to "true" to enable this feature. <br/></br> **Important Note:** This feature only supports fully parameterized INSERT queries. If the INSERT queries are combined with other SQL queries, or contain data in values, execution falls back to the basic batch insert operation. <br/><br/> For more information about how to use this property, see [Using bulk copy API for batch insert operation](use-bulk-copy-api-batch-insert-operation.md)|
117
117
| useDefaultGSSCredential<br/><br/>boolean<br/>["true" | "false"]<br/><br/>false | (Version 12.6+) Flag to indicate whether the driver should create the GSSCredential on behalf of the user for using Native GSS-API for Kerberos authentication. |
> These examples use the execute method of the SQLServerCallableStatement class to run the stored procedure. This is used because the stored procedure did not also return a result set. If it did, the [executeQuery](../../connect/jdbc/reference/executequery-method-sqlserverstatement.md) method would be used.
78
78
79
-
Stored procedures can return update counts and multiple result sets. The [!INCLUDE[jdbcNoVersion](../../includes/jdbcnoversion_md.md)] follows the JDBC 3.0 specification, which states that multiple result sets and update counts should be retrieved before the OUT parameters are retrieved. That is, the application should retrieve all of the ResultSet objects and update counts before retrieving the OUT parameters by using the CallableStatement.getter methods. Otherwise, the ResultSet objects and update counts that the driver hasn't yet retrieved are lost when the OUT parameters are retrieved. For more information about update counts and multiple result sets, see [Using a stored procedure with an update count](../../connect/jdbc/using-a-stored-procedure-with-an-update-count.md) and [Using Multiple Result Sets](../../connect/jdbc/using-multiple-result-sets.md).
79
+
Stored procedures can return update counts and multiple result sets. The [!INCLUDE[jdbcNoVersion](../../includes/jdbcnoversion_md.md)] follows the JDBC 3.0 specification, which states that multiple result sets and update counts should be retrieved before the OUT parameters are retrieved. That is, the application should retrieve all of the ResultSet objects and update counts before retrieving the OUT parameters by using the CallableStatement.getter methods. Otherwise, the ResultSet objects and update counts that the driver hasn't retrieved are lost when the OUT parameters are retrieved. For more information about update counts and multiple result sets, see [Using a stored procedure with an update count](../../connect/jdbc/using-a-stored-procedure-with-an-update-count.md) and [Using Multiple Result Sets](../../connect/jdbc/using-multiple-result-sets.md).
0 commit comments