Skip to content

Commit 69695f0

Browse files
committed
Final cleanup
1 parent bd46bd3 commit 69695f0

3 files changed

Lines changed: 10 additions & 10 deletions

File tree

docs/connect/jdbc/release-notes-for-the-jdbc-driver.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -327,7 +327,7 @@ For the driver in a tar.gz file: [Chinese (Simplified)](https://go.microsoft.com
327327
| 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. |
328328
| 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. |
329329
| 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`.|
331331
| 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. |
332332
| Updated supportsLikeEscapeClause() to check for Azure Data Warehouse | Addresses an issue where `supportsLikeEscapeClause` was returning true for AzureDW despite it explicitly not being supported. |
333333
| 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
626626
| :---------- | :----------- |
627627
| Default encrypt to true | **BREAKING CHANGE** TLS encryption is enabled by default. |
628628
| 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. |
631631
| SQL_Variant support | Added support for SQL_Variant datatype when retrieving DateTimeOffset. |
632632
| Nonblocking random in Linux | Updated to use a nonblocking random call when generating a GUID for enclave packages. |
633633
| 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
686686
| 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. |
687687
| Replication connection support | Replication connections are now supported. See [Setting the connection properties](setting-the-connection-properties.md). |
688688
| 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. |
690690

691691
### Changes in 9.4
692692

@@ -896,7 +896,7 @@ Microsoft JDBC Driver 8.2 for SQL Server is now compatible with Java Development
896896
| Temporal Datatypes change | Details |
897897
| :---------- | :------ |
898898
| 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). |
900900

901901
<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.
902902

@@ -905,7 +905,7 @@ Microsoft JDBC Driver 8.2 for SQL Server is now compatible with Java Development
905905
| sqljdbc_auth.dll change | Details |
906906
| :------------------- | :------ |
907907
| 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. | &nbsp; |
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). |
909909

910910
### 8.2 Known issues
911911

@@ -975,7 +975,7 @@ Microsoft JDBC Driver 7.4 for SQL Server is now compatible with Java Development
975975
| Known issues | Details |
976976
| :----------- | :------ |
977977
| 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). |
979979

980980
## <a id="72"> 7.2.2
981981

docs/connect/jdbc/setting-the-connection-properties.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ The following table lists all the currently available connection string properti
8080
| 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). |
8181
| 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). |
8282
| lastUpdateCount<br/><br/>boolean<br/>["true" &#124; "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. |
8484
| 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). |
8585
| 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`).|
8686
| 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
111111
| 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. |
112112
| trustServerCertificate<br/><br/>boolean<br/>["true" &#124; "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. |
113113
| 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". |
115115
| 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. |
116116
| useBulkCopyFor...<br/>BatchInsert<br/><br/>boolean<br/>["true" &#124; "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)|
117117
| useDefaultGSSCredential<br/><br/>boolean<br/>["true" &#124; "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. |

docs/connect/jdbc/using-a-stored-procedure-with-output-parameters.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ public static void executeStoredProcedure(Connection con) throws SQLException {
7676
> [!NOTE]
7777
> 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.
7878
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).
8080

8181
## See also
8282

0 commit comments

Comments
 (0)