Progress DataDirect Connect XE for JDBC for Salesforce

     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 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.002957
    • The InValuesLimit connection property has been added to the driver. It determines the maximum number of values in an IN clause subquery to be materialized. If this value is exceeded, the driver processes the subquery as a JOIN clause. You can use this property if your query exceeds the maximum SOQL length set by Salesforce. Refer to InValuesLimit for details.*
    • The driver has been enhanced to support the JSON web token (JWT) grant in OAuth 2.0 authentication. The connection properties JWTCertAlias, JWTCertStore, JWTCertPassword, ClaimsIssuer, and ClaimsSubject have been added to the driver.* Feature details:
      • Available: Driver version 6.0.0.002316 (C5325.F001946.U001044)
      • Proposed by the following DataDirect Idea: https://progresssoftware.aha.io/features/DDIDEAS-2764
      Refer to Configuring the driver to use OAuth 2.0 with JWT grant for details.
    • The driver has been enhanced to use proxy server settings defined in the JVM system properties by default. If no proxy settings are defined in the connection string or data source, the driver will attempt to use the values of the http.proxyHost and http.proxyPort JVM system properties to connect to the database.*
    • The driver has been enhanced to support the Salesforce Bulk API V2 for bulk load operations. This functionality can be enabled and configured using the new BulkLoadVersion and BulkLoadJobSize connection properties. Refer to BulkLoadVersion and BulkLoadJobSize for details.*
    • The ApplyToLabel connection property has been added to the driver. It determines whether the driver applies the toLabel() function to the picklist fields when executing queries. Refer to ApplyToLabel for details.*
    • 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.*
    • yes, no, on and off have been added as valid values for the connection properties that accept boolean values.*
    • The driver has been enhanced to support OAuth 2.0, which is an open protocol for token-based authentication. OAuth 2.0 allows you to authenticate without specifying a user ID or password, eliminating the risk of exposing them to unauthorized access. Refer to Configuring OAuth 2.0 authentication for details.*
    • The driver has been enhanced to support the Salesforce Bulk API, including PK chunking, for bulk fetch operations. This functionality can be enabled and configured with the EnableBulkFetch, BulkFetchThreshold, EnablePKChunking, and PKChunkSize connection properties. Refer to Connection Property Descriptions for details.
    • The driver has been enhanced to support multiple simultaneous sessions. The number of active sessions should not exceed the number permitted by your Salesforce account and can be limited by the setting of the WSPoolSize connection property. Refer to WSPoolSize for details.
    • The new WSPoolSize connection property allows you to specify the maximum number of sessions the driver uses. This allows the driver to have multiple Web service requests active simultaneously when multiple JDBC connections are open, thereby improving throughput and performance. Refer to WSPoolSize for details.
    • The Refresh Map SQL extension has been added to the driver. REFRESH MAP discovers native objects that have been added to the native data store since connection or since the last refresh and maps the objects into your relational view of native data. It also incorporates any configuration changes made to your relational view by reloading the schema map and associated files. Refer to Refresh Map (EXT) for details.
    CHANGED BEHAVIOR
    • 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
    • The driver has been enhanced to make SOAP API calls using only internal components. In earlier versions, the driver used an external library, the CXF library, to make these calls. Note that the product package no longer includes the CXF library as a result.*
    • The ConfigOptions connection option has been deprecated. As a result, the driver has been enhanced to support setting each of the configuration options supported by ConfigOptions as a standalone connection option. Although the driver will continue to support ConfigOptions until the next major release of the driver, in anticipation of this change, we recommend updating your data sources and connection URL strings to set configuration options as standalone connection options.*
    • The driver has been updated to require a Java Virtual Machine (JVM) that is Java SE 8 or higher, including Oracle JDK, OpenJDK, and IBM SDK (Java) distributions. Refer to Requirements for details.*
    • The precision for the Integer data type has been changed from 10 to 9. Refer to getTypeInfo for details.*
    • The NUM_PREC_RADIX value for the Double data type has been changed from 10 to 2. Refer to getTypeInfo for details.*
    • The data source class com.ddtek.jdbcx.sforce.SForceDataSource40 has been deprecated. The data source class com.ddtek.jdbcx.sforce.SForceDataSource should be used for data source connections. The data source class com.ddtek.jdbcx.sforce.SForceDataSource now supports all JDBC specifications. Refer to Data Source and Driver Classes for details.
    • In addition to the information listed here, refer to this compatibility FAQ for guidance on upgrading from the Progress DataDirect for JDBC for Salesforce 5.1 driver to the 6.0 driver.
    • The driver’s SQL engine was upgraded for this release. Consequently, there are differences in how the driver handles some SQL queries. Refer to this SQL engine upgrade document for details.
    • The 6.0 driver pushes queries to Salesforce whenever possible. Queries that cannot be pushed to Salesforce with the 6.0 driver may be slower than comparable queries made with previous versions of the driver because data may be paged to disk while completing an operation. If you experience slow performance, please contact Technical Support
    • Bulk load operations are no longer restricted to 10,000 rows for evaluation installations of the driver.
    • The native CURRENCY and PERCENTAGE data types now map to the DECIMAL JDBC data type. In earlier releases, these data types mapped to the DOUBLE data type. 
    • The DatabaseName property has been deprecated. The SchemaMap property should now be used to specify the fully qualified path of the configuration file where the map of the Salesforce data model is written. Refer to SchemaMap for details.
    • The CreateDB and RefreshSchema properties have been deprecated. The CreateMap property should now be used to specify whether the driver creates a new schema map when establishing the connection. Refer to CreateMap for details.
    • The RefreshDirtyCache property has been deprecated. Now, for every fetch operation, the driver refreshes the cached object to pick up changes made to tables and rows.
    • The following connection properties and configuration options now have new default settings.
      • The default value of the EnableBulkLoad connection property has been updated to true. By default, the bulk load protocol can be used for inserts, updates, and deletes based on the BulkLoadThreshold property.
      • The default value for the StmtCallLimit connection property has been updated to 100. By default, the driver can make a maximum of 100 Web service calls when executing any single SQL statement or metadata query. 
      • The default value for the AuditColumns configuration option has been updated to all (AuditColumns=all). By default, the driver includes all audit columns and the master record id column in its table definitions. 
      • The default value for the CustomSuffix configuration option has been updated to include (CustomSuffix=include). By default, the driver includes the "__c" suffix table and column names when mapping the Salesforce data model.
      • The default value for the MapSystemColumnName configuration option has been updated to 0 (MapSystemColumnNames=0). By default, the driver does not change the names of the Salesforce system columns when mapping the Salesforce data model. 
    NOTES, KNOWN ISSUES, AND LIMITATIONS
    • Using the INSERT INTO SELECT Statement with Bulk API V2: When Salesforce Bulk API version is set to V2, the driver does not support INSERT INTO SELECT statements and an exception is thrown. For example:
      Insert into TestTable(COL_1,COL_2,COL_3) select COL_1,COL_2,COL_3 
      from TempTable
    • API Consumption with Correlated Subqueries: For executing correlated subqueries, the current version of the driver requires more API calls than those that were required by the previous version.
      • If the total number of API calls required to complete the execution of a correlated subquery is more than the StmtCallLimit set for the connection, the driver returns the following error:
        "Query Aborted! This query involves correlated subquery. Its execution might
        take more than <number> API calls, which is higher than stmtcalllimit for this 
        connection. Please set the stmtcallLimit to more than <number> to execute this
        query."
      • This will prevent you from exhausting the Salesforce daily API call limit. If you are comfortable with the query taking large number of API calls and want the execution of the correlated subquery to complete, you can increase the StmtCallLimit value and retry.
    • Compatibility Guidance: In addition to the information in this readme, refer to the following compatibility FAQ for guidance on upgrading from the Progress DataDirect for JDBC for Salesforce 5.1 driver to 6.0 driver:
      https://documentation.progress.com/output/DataDirect/collateral/jdbc_salesforce_faq.pdf
    • SQL Engine Upgrade: The driver's SQL engine has been upgraded. Consequently, there are some differences in how the 6.0 driver handles SQL queries compared to previous versions of the driver. For details, see the following resources:
      • "Supported SQL Statements and Extensions" in the user's guide
      • https://documentation.progress.com/output/DataDirect/collateral/jdbc_sqlengine_salesforce.pdf
    • Executing SQL Queries: The 6.0 driver pushes SQL queries to Salesforce whenever possible. Queries that cannot be pushed down may be slower than comparable queries made with previous versions of the driver because data may be paged to disk while completing an operation. If you experience slow performance, please contact Technical Support: https://www.progress.com/support-and-services. Our team will quickly address any performance issues you encounter.
    • Foreign key columns: In the 6.0 version of the driver, foreign key columns are not shown as indexes. However, in previous versions of the driver, foreign key columns are shown as non-unique indexes.
    • Using the SELECT...INTO Statement: The SELECT...INTO statement is supported for local tables only. The source and destination tables must both be local tables. Creating remote tables in Salesforce or loading from remote Salesforce tables using SELECT...INTO is not supported. Additionally, the option to create the destination table as a temporary table does not currently work.
    • Stored Procedures Not Supported for Database.com: The driver incorrectly reports that it supports stored procedures for Database.com (for example, using DatabaseMetadata.supportsStoredProcedures()). Stored procedures for Database.com are not supported.
    • JTA Support: JDBC distributed transactions through JTA are not supported.
    • oplog.rs system table: The driver hides the oplog.rs system table.
    • 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. Additional information on driver support for the JDBC API can be found in the "JDBC Support" section of the product user's guide.
      • 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 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.
    • Uninstalling on Windows: When you connect with the Salesforce driver, the driver creates multiple local Salesforce files in the <install_dir>\testforjdbc subdirectory, where <install_dir> is your product installation directory. If you connect using the default Salesforce driver URL jdbc:datadirect:sforce://login.salesforce.com, the names of these files are associated with your user name. For example, if your user name is test01@xyz.com, the local Salesforce files that are created would be:
      • <install_dir>\testforjdbc\ddsforce.log
      • <install_dir>\testforjdbc\test01.app.log
      • <install_dir>\testforjdbc\test01.config
      • <install_dir>\testforjdbc\test01.log
      • <install_dir>\testforjdbc\test01.properties
      • <install_dir>\testforjdbc\test01.SFORCE.map
      • <install_dir>\testforjdbc\test01.SFORCE.native
      When you run the Windows uninstaller, these files are not removed. You can explicitly delete them.

    Version 5.1.4

    ENHANCEMENTS
    • 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.2

      No new features 

        Version 5.1.1

        ENHANCEMENTS
        • Enhanced to throw warning when EnableBulkLoad fails

        Version 5.1.0

          ENHANCEMENTS
          • The new KeywordConflictSuffix keyword=value pair for the ConfigOptions property allows you to specify a string that the driver appends to any object or field name that conflicts with a SQL engine keyword. For example, if you specify KeywordConflictSuffix=TAB, the driver maps the Case object in Salesforce to CASETAB.
          • The new RefreshSchema connection property specifies whether the driver automatically refreshes the remote object mapping and other information contained in a remote schema the first time a user connects to an embedded database.

           

           

           

           

           

           

           

           

           

           

           

           

           

           

           

           

        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