Progress DataDirect Connect for JDBC for Microsoft SQL Server

    An asterisk (*) indicates support that was added in a hotfix or software patch subsequent to a release.

    Refer to the following resources for additional information:

    • Product Compatibility Guide: Provides the latest data source and platform support information. 
    • Fixes: Describes the issues resolved since general availability.  

    Version 6.0.0

      ENHANCEMENTS
      • The driver now provides read-write access to the Synapse Data Warehouse endpoints of Microsoft Fabric. For more information, including limitations, refer to Support for Microsoft Fabric.
        Available: 6.0.0.001857 (F002896.U001904)|05/22/2025
      • The driver has been enhanced to comply with FIPS standards for data encryption. As part of this enhancement, the driver was tested with FIPS 140-3 enabled using a Red Hat OpenJDK 21 on a Red Hat Universal Base Image 9 instance. Refer to FIPS (Federal Information Processing Standard) for details.*
        Available: 1/31/2025 | 6.0.0.001765
      • The driver has been enhanced to support managed identity authentication for Microsoft Entra ID (Azure Active Directory) resources. You can configure this authentication using the updated AuthenticationMethod and User connection properties. For details, refer to Microsoft Entra ID authentication.*
      • The driver has been enhanced to support the TLSv1.3 cryptographic protocol using SQL Server 2022. To enable TLSv1.3 encryption, set the EncryptionMethod property to the new value Strict. For details, refer to EncryptionMethod and CryptoProtocolVersion.
      • The driver has been enhanced to support inserts into IDENTITY columns for data replication. You can enable inserts into IDENTITY columns defined as NOT FOR REPLICATION using the new EnableReplicationUser connection property. For details, refer to Inserts into IDENTITY columns for data replication and EnableReplicationUser.*
      • The driver has been enhanced to support Microsoft Entra ID (Azure Active Directory) authentication using Service principal users. You can configure this feature using the refreshed AuthenticationMethod property, and the new ActiveDirectoryPrincipalID and ActiveDirectoryPrincipalSecret properties. For details, refer to Microsoft Entra ID authentication.*
      • The driver has been enhanced to use sp_describe_undeclared_parameters, a SQL Server system stored procedure, to fetch parameter metadata. Using this stored procedure, the driver can return more accurate parameter metadata for both simple and complex queries.*
      • The driver has been enhanced to support authentication using an access token. For details, refer to Access token authentication.*
      • The driver has been enhanced to support Windows Defender Credential Guard when using Kerberos authentication. For details, refer to Kerberos authentication.*
      • The driver has been enhanced to include timestamp in the Spy and JDBC packet logs by default. If required, you can disable the timestamp logging by specifying the following at connection: For Spy logs, set spyAttributes=(log=(file)Spy.log;timestamp=no) and for JDBC packet logs,
        set ddtdbg.ProtocolTraceShowTime=false.*
      • Interactive SQL for JDBC (JDBCISQL) is now installed with the product. JDBCISQL is a command-line interface that supports connecting your driver to a data source, executing SQL statements and retrieving results in a terminal. This tool provides a method to quickly test your drivers in an environment that does not support GUIs.*
      • The driver has been enhanced to support encrypted parameters in stored procedures when using the Always Encrypted feature. For details, refer to Always Encrypted.*
      • The driver has been enhanced to support the Always Encrypted feature. Beginning with SQL Server 2016, Azure SQL and SQL Server databases support Always Encrypted, which allows sensitive data to be stored on the server in an encrypted state such that the data can only be decrypted by an authorized application. The following are highlights of this enhancement:*
        • The driver detects all supported native data types stored in encrypted columns and transparently encrypts values bound to SQL parameters or decrypts values returned in results.
        • The driver supports configurable caching of column encryption keys for improved performance.
        • The driver supports using Java KeyStore and Azure Key Vault as keystore providers.

        You can enable support for Always Encrypted using the following new options: ColumnEncryption, AEKeyCacheTTL, AEKeystoreClientSecret, AEKeystoreLocation, AEKeystorePrincipalId, and AEKeystoreSecret. For details, refer to Always Encrypted.

      • The driver has been enhanced to transparently connect to Microsoft Azure SQL Data Warehouse and Microsoft Analytics Platform System data sources.
      • The driver has been enhanced to support Always On Availability Groups. Introduced in SQL Server 2012, Always On Availability Groups is a replica database environment that provides a high-level of data availability, protection, and recovery. For details, refer to Always On Availability Groups.
      • The driver has been enhanced to support Microsoft Entra ID authentication (Azure AD authentication). Microsoft Entra ID authentication is an alternative to SQL Server authentication that allows administrators to centrally manage user permissions to Azure SQL Database data stores. For details, refer to Microsoft Entra ID authentication.
      • The driver has been enhanced to support Kerberos Constrained Delegation. Sometimes referred to as impersonation, Constrained Delegation allows the driver to establish a connection with credentials passed via a GSSCredential object. For details, refer to Constrained delegation.
      CHANGED BEHAVIOR
      • The connection property SpyAttributes has been updated to exclude the attribute load=classname, which was previously used to load the driver specified by the given class name. If a log file name does not include the .log extension, the driver automatically appends it.*
        Available: 10/22/2025 | 6.0.0.001957
      • The driver has been updated to remove all sensitive values from the string returned by calling getURL(). You might be impacted if your applications or tests expect these values when calling the function.
      • HostProcess is no longer supported as an alias for the ProgramID connection property.
      • ProgramName is no longer supported as an alias for the ApplicationName connection property.
      • The installer program now requires you to install a JRE that is Java SE 11 or higher before running the installer. In earlier versions, the JRE used by the installer program was included in the product. However, to avoid potential security vulnerabilities, the installer program no longer includes a JRE. Instead, the installer program uses the JRE in your environment to allow for the most secure version of a JRE to be used.*
        Note: This change does not affect the JVM requirements for the driver. For the latest driver requirements, refer to the Product Compatibility Guide.
        Available: 7/3/2024
      • Support for DLL-based NTLM authentication has been deprecated. As a result, the AuthenticationMethod property has been updated to no longer support the ntlm value. If the value is specified, the driver throws an error when attempting to connect.
      • For Kerberos authentication environments, the following changes have been implemented.
        • The driver no longer sets the java.security.auth.login.config system property to force the use of the installed JDBCDriverLogin.conf file as the JAAS login configuration file. By default, the driver now uses the default JAAS login configuration file for Java, unless you specify a different location and file using the java.security.auth.login.config system property.
        • The driver no longer sets the java.security.krb5.conf system property to force the use of the krb5.conf file installed with the driver jar files in the /lib directory of the product installation directory.
        For details, refer to Kerberos authentication.
      NOTES, KNOWN ISSUES, AND LIMITATIONS
      • sp_describe_undeclared_parameters Support: The driver uses sp_describe_undeclared_parameters, a SQL Server system stored procedure, to fetch parameter metadata. However, it cannot determine if a parameter allows NULL values; hence, it returns SQL_NULLABLE_UNKNOWN for the nullable fields. You can get the mode information of the parameter with the following:
        • The value 1 indicates that the mode of the parameter is in
        • The value 2 indicates that the mode of the parameter is out
      • Always Encrypted Limitations: The following limitations apply to the current implementation of Always Encrypted support:
        • No support for encrypted values in updateable result sets
        • No support for Windows certificate store or custom keystore providers
        • No support for enabling Always Encrypted on individual statements. Support for encrypted columns can only be set at the connection level.
      • Using Bulk Load: For optimal performance, minimal logging and table locking must be enabled. Refer to the following Web sites for more information about enabling minimal logging:
        • http://msdn.microsoft.com/en-us/library/ms190422.aspx
        • http://msdn.microsoft.com/en-us/library/ms190203.aspx
        Table locking, a bulk load option, is enabled by default. Table locking prevents other transactions from accessing the table you are loading to during the bulk load. See "Bulk load properties" in the user's guide for information about configuring the driver for bulk load operations.
      • System.exit() method and Process Termination: The System.exit() method ensures that all registered shutdown hooks are run. Applications terminate faster when System.exit(0) is used. When applications omit the System.exit() call, the termination process may linger for about 10 seconds before exiting.
      • Executing DataDirect Shell Script: For UNIX/Linux users: If you receive an error message when executing any DataDirect for JDBC shell script, make sure that the file has EXECUTE permission. To do this, use the chmod command. For example, to grant EXECUTE permission to the testforjdbc.sh file, change to the directory containing testforjdbc.sh and enter:
        chmod +x testforjdbc.sh
      • JDBC Methods: The following notes on JDBC methods apply generally to Progress DataDirect for JDBC drivers.
        • The driver allows PreparedStatement.setXXX methods and ResultSet.getXXX methods on Blob/Clob data types, in addition to the functionality described in the JDBC specification. The supported conversions typically are the same as those for LONGVARBINARY/LONGVARCHAR, except where limited by database support.
        • Calling CallableStatement.registerOutputParameter(parameterIndex, sqlType) with sqlType Types.NUMERIC or Types.DECIMAL sets the scale of the output parameter to zero (0). According to the JDBC specification, calling CallableStatement.registerOutputParameter(parameterIndex, sqlType, scale) is the recommended method for registering NUMERIC or DECIMAL output parameters.
        • When attempting to create an updatable, scroll-sensitive result set for a query that contains an expression as one of the columns, the driver cannot satisfy the scroll-sensitive request. The driver downgrades the type of the result returned to scroll-insensitive.
        • The driver supports retrieval of output parameters from a stored procedure before all result sets and/or update counts have been completely processed. When CallableStatement.getXXX is called, result sets and update counts that have not yet been processed by the application are discarded to make the output parameter data available. Warnings are generated when results are discarded.
        • The preferred method for executing a stored procedure that generates result sets and update counts is using CallableStatement.execute(). If multiple results are generated using executeUpdate, the first update count is returned. Any result sets prior to the first update count are discarded. If multiple results are generated using executeQuery, the first result set is returned. Any update counts prior to the first result set are discarded. Warnings are generated when result sets or update counts are discarded.
        • The ResultSet methods getTimestamp(), getDate(), and getTime() return references to mutable objects. If the object reference returned from any of these methods is modified, re-fetching the column using the same method returns the modified value. The value is only modified in memory; the database value is not modified.

      Version 5.1.4

      ENHANCEMENTS
      • Support for NTLMv2 has been added to the driver. You can use the AuthenticationMethod connection property to specify that the driver use NTLMv2 authentication when establishing a connection.
      • The CryptoProtocolVersion connection property has been added to the driver. This property can be used to avoid vulnerabilities associated with SSLv3 and SSLv2, including the POODLE vulnerability.
      • Support for result set holdability has been added to the driver.
      CHANGED BEHAVIOR
      • Added the RegisterStatementPoolMonitorMBean connection property. Note that the driver no longer registers the Statement Pool Monitor as a JMX MBean by default. You must set RegisterStatementPoolMonitorMBean to true to register the Statement Pool Monitor and manage statement pooling with standard JMX API calls.*

      Version 5.1.3

       No new features 

        Version 5.1.1

        ENHANCEMENTS
        • Added ApplicationIntent connection property, which enables you to request read-only routing and connect to read-only database replicas.
        • Enhanced drivers so that transaction isolation level may only be changed before the transaction is started.
        • Enhanced to throw warning when EnableBulkLoad fails.

        Version 5.1.0

        No new features 

        Connect any application to any data source anywhere

        Explore all DataDirect Connectors

        A product specialist will be glad to get in touch with you

        Contact Us