Microsoft Dynamics 365 JDBC 6.0.0
- Last Updated: May 8, 2026
- 10 minute read
- OpenAccess SDK
- Documentation
README
Progress(R) DataDirect(R)
Progress(R) DataDirect(R) for JDBC(TM) for
Microsoft Dynamics 365(TM) Driver
Release 6.0.0
February 2026
***********************************************************************
Copyright (C) 2026 Progress Software Corporation and/or its
subsidiaries or affiliates. All Rights Reserved.
***********************************************************************
CONTENTS
Post-GA Product Announcements
Requirements
Installation Directory
Data Source and Platform Support
Changes Since 6.0.0 GA
Release 6.0.0 Features
DataDirect JDBC Driver Configuration Manager
Notes, Known Problems, and Restrictions
Documentation
Installed Files
Post-GA Product Announcements
The readme files will no longer be updated with product announcements and new
features after the General Availability (GA) of the product. For the latest
updates and enhancements, please refer to the release notes
(https://www.progress.com/datadirect-connectors/whats-new).
Requirements
* A supported Java Virtual Machine (JVM) must be defined on your system path.
* The installer program requires a JVM that is Java SE 11 or higher, including
Oracle JDK, OpenJDK, and IBM SDK (Java) distributions.
* The driver requires a JVM that is Java SE 8 or higher, including Oracle JDK,
OpenJDK, and IBM SDK (Java) distributions.
Installation Directory
The default installation directory for the driver is:
* Windows:
C:\Program Files\Progress\DataDirect\JDBC
* UNIX/Linux:
/opt/Progress/DataDirect/JDBC
Note: For UNIX/Linux, if you do not have access to "/opt", your user's home
directory will take the place of this directory.
Data Source and Platform Support
For the latest data source and platform support information, refer to the
Product Compatibility Guide:
https://docs.progress.com/bundle/datadirect-product-compatibility/resource/
datadirect-product-compatibility.pdf
Changes Since 6.0.0 GA
CVE-2022-41853 - Use of Externally-Controlled Input to Select Classes or Code
('Unsafe Reflection')
-----------------------------------------------------------------------------
Several Progress DataDirect JDBC drivers utilized a version of HyperSQL
Database that was vulnerable to remote code execution described in
CVE-2022-41853. All impacted drivers have been patched to fix this
vulnerability. For details on impacted drivers and fixed versions, refer to
the following KB article:
https://community.progress.com/s/article/DataDirect-JDBC-Critical-Security-
Bulletin-November-2022-CVE-2022-41853
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.
* The driver has been enhanced to support fetching data from all the
companies to which the user has access. Earlier, it supported fetching
data only from the default company of the user. You can configure
this functionality using the new CrossCompany connection property.
Feature details
- Available: Driver version 6.0.0.002159 (C5372.F001979.U001055)
* The driver has been enhanced to allow you to configure whether requests
to web services timeout when the service is unresponsive. You can configure
this functionality using the new WSTimeout connection property.
* 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 following connection properties have been removed from the driver:
ConnectionRetryCount, ConnectionRetryDelay, LoginTimeout, and QueryTimeout.
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. See SpyAttributes for details.
* 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:
https://docs.progress.com/bundle/datadirect-product-compatibility/resource/
datadirect-product-compatibility.pdf
Release 6.0.0 Features
The Progress DataDirect for JDBC for Microsoft Dynamics 365 driver supports SQL
read-write access for JDBC applications to Microsoft Dynamics 365 apps. To
support SQL access to Dynamics 365 apps, the driver creates a relational map of
the Dynamics 365 data model and translates SQL statements to Dynamics 365
requests. In addition, the driver employs a SQL engine component that provides
support to SQL constructs unavailable in Microsoft Dynamics 365. This
functionality offers a number of advantages, including support for reporting
data and metadata in a form that JDBC applications are ready to use.
* Supports SQL read-write access to the following Microsoft Dynamics 365
CRM and ERP apps.
- CRM apps
- Customer Service
- Field Service
- Marketing
- Project Service Automation
- Sales
- ERP apps
- Finance
- Retail
- Supply Chain Management
- Talent
* Supports all JDBC core functions.
* Supports the core SQL-92 grammar.
* Supports Dynamics 365 data types through data type inference.
* Supports OAuth 2.0 and NTLM authentication.
* Supports the handling of large result sets with paging and the
FetchSize connection property.
* Supports optimizing insert, update, and delete operations with the
BatchUpdateChunkSize connection property.
* Includes the DataDirect JDBC Driver Configuration Manager for quick
configuration and testing of your driver. This tool allows you to:
- Generate and edit connection URLs
- Test connect connection URLs
- Execute SQL commands for testing
- Fetch OAuth tokens without using your application
- Access connection property descriptions and the full product
documentation
DataDirect JDBC Driver Configuration Manager
The driver includes a browser-based configuration tool, the DataDirect JDBC
Driver Configuration Manager, that allows you to generate and test connection
URLs that you can use with your application. You can launch the Configuration
Manager by double-clicking on the driver jar file. Or, from the command line,
you can navigate to the directory containing the driver jar file; then, execute
the following command:
java -jar dynamics365.jar
The Configuration Manager will open in your default web browser. For more
information, refer to the user's guide for your driver.
Notes, Known Problems, and Restrictions
The following are notes, known problems, and restrictions with the 6.0.0 release
of the driver.
Connection delay
----------------
An initial connection may take a few minutes, depending on network speeds and
the amount of metadata the driver must retrieve from the service. Similar delays
may occur in the following scenarios.
* When the CreateMap connection property is set to OnChange (default) and
changes have been made to the schema on the Dynamics 365 backend
* When starting a new session with CreateMap set to Session
* When CreateMap is set to NotExist and the internal schema files specified by
SchemaMap do not exist
* When CreateMap is set to ForceNew
Using Tableau and other third-party tools
-----------------------------------------
When using third-party tools such as Tableau, network speeds and the amount of
metadata retrieved from the service can cause timeout and out-of-memory errors.
You can work around these issues in the following ways.
1. Increase timeout settings in your third-party tool. For example, Tableau
offers the following guidance for timeout errors caused by large results.
https://kb.tableau.com/articles/issue/error-extract-timeout
You may also need to increase the Java heap size allotted for your
third-party tool. This will allow the tool to manage large metadata results
sent by the service. This workaround not only avoids timeout and
out-of-memory errors on initial connection, but may also avoid these errors
on subsequent connections.
2. Establish your initial connection using the DataDirect JDBC Driver
Configuration Manager as described in "Testing connections and queries" in
the user's guide. In addition to specifying required properties, set the
SchemaMap connection property. SchemaMap specifies the location and name of
the configuration file where the map of the Dynamics 365 schema is written.
Once connected, you can use the connection string generated by the
Configuration Manager to connect via your third-party tool. However, it
should be noted that timeout and out-of-memory errors may occur on subsequent
connections, depending on the CreateMap setting. See the user's guide for
more information.
Data type metadata for COLUMN_SIZE
----------------------------------
When executing getColumns for numeric types and the boolean type, the driver
returns 0 (zero) for COLUMN_SIZE. The driver should instead return the precision
for each data type, as returned with getTypeInfo results.
ERP limitations
---------------
The Dynamics 365 ERP service does not return extensive metadata for some
objects. Therefore, you may encounter the following behaviors when using
the driver to access ERP apps such as Finance, Retail, Supply Chain Management,
and Talent.
* In some cases, the metadata of an object may erroneously indicate that a
column is nullable. Under these circumstances, when you attempt to update or
insert null data into a non-nullable column, the driver returns the error
"Object reference not set to an instance of an object."
* For some columns, the ERP service does not return the maximum length of string
values. In these circumstances, the driver uses a default of 2000 characters.
When attempting to insert or update strings that are larger than the allowable
maximum length on the backend, or strings larger than the driver default, the
string will be truncated.
* For some columns, the ERP service does not return the precision or scale of
decimal types. In these circumstances, the driver defaults to a precision of
22 and a scale of 10. When attempting to update or insert decimal values
larger than the defaults, the driver truncates the decimal value.
* We have set the status of a number of decimal columns to non-filterable
because they generate errors when used in subqueries against the ERP service.
However, a custom decimal column could be introduced that also may not be used
in subqueries. If such a decimal column is used in a subquery, the driver
returns "Cannot select a record in SubQuery. The SQL database has issued an
error."
General error message
---------------------
In some scenarios, when a connection fails, the driver returns the message
"general error" instead of passing the actual error message generated by the
service.
JTA support
-----------
JDBC distributed transactions through JTA are not supported.
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.
* The DataDirect for JDBC drivers allow 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.
* 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 DataDirect for JDBC drivers support 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.
Documentation
PROGRESS DATADIRECT FOR JDBC FOR MICROSOFT DYNAMICS 365 DOCUMENTATION SET
-------------------------------------------------------------------------
The driver documentation set is available from the Progress Information Hub:
https://docs.progress.com/category/datadirect-microsoft-dynamics-365
You can access the online help system directly in either of the following ways.
* Via the HTML redirect in the installation Help directory
* By selecting Help from the menu in the Configuration Manager
Installed Files
When you extract the contents of the installation download package to your
installer directory, you will notice the following files that are required to
install the driver:
* Windows:
- PROGRESS_DATADIRECT_JDBC_INSTALL.exe
- DriverModules
- PROGRESS_DATADIRECT_JDBC_DYNAMICS365_6.0.0_INSTALL.iam.zip
- PROGRESS_DATADIRECT_JDBC_COMMON_6.0.0_INSTALL.iam.zip
* Non-Windows:
- PROGRESS_DATADIRECT_JDBC_INSTALL.jar
- DriverModules
- PROGRESS_DATADIRECT_JDBC_DYNAMICS365_6.0.0_INSTALL.iam.zip
- PROGRESS_DATADIRECT_JDBC_COMMON_6.0.0_INSTALL.iam.zip
When you install the driver, the installer creates the following directories and
files in the product installation directory in the default installation
directory or in an installation directory you specify, represented by
INSTALL_DIR.
INSTALL_DIR/:
-------------
LicenseTool.jar Product license file manager
ddprocinfo.exe Windows executable to start the Processor Information
Utility
ddprocinfo UNIX/Linux script to start the Processor Information
Utility
fixes.txt Information on resolved issues for Progress
DataDirect for JDBC drivers
INSTALL_DIR/Examples/Bulk/:
---------------------------
Load From File/bulkLoadFileDemo.java
Java source example for bulk loading from a CSV file
Load From File/load.txt Sample data for the example
Streaming/bulkLoadStreamingDemo.java
Java source example for bulk loading from a result
set
Threaded Streaming/bulkLoadThreadedStreamingDemo.java
Java source example for multi-threaded bulk loading
from a result set
Threaded Streaming/README.txt
Instructions on how to use the thread.properties file
Threaded Streaming/thread.properties
Properties file for the example
INSTALL_DIR/Examples/JNDI/:
---------------------------
JNDI_FILESYSTEM_Example.java
Example Java(TM) source file
JNDI_LDAP_Example.java Example Java source file
INSTALL_DIR/help/:
------------------
*.html HTML redirects to driver help systems
INSTALL_DIR/install/:
---------------------
.psc_dd_inst_reg.xml Support file for the installation logs
logs/*.* Log file generated upon installation
INSTALL_DIR/jdbcisql/:
----------------------
jdbcisql.bat Batch file to start JDBC iSQL
jdbcisql.ini Configuration file for JDBC iSQL
jdbcisql.jar Java program to start JDBC iSQL
jdbcisql.sh Shell script to start JDBC iSQL
INSTALL_DIR/lib/:
-----------------
JDBCDriverLogin.conf Kerberos configuration file used to specify the JAAS
login module
INSTALL_DIR/lib/60/:
-------------------
dynamics365.jar Dynamics 365 Driver and DataSource classes
INSTALL_DIR/NOTICES/:
---------------------
JDBC for Microsoft Dynamics 365 v6.0 notices.txt
Third party agreement information
INSTALL_DIR/pool manager/:
--------------------------
pool.jar All DataDirect Connection Pool Manager classes
INSTALL_DIR/READMES/:
---------------------
JDBC for Microsoft Dynamics 365 v6.0 readme.txt
This file
INSTALL_DIR/testforjdbc/:
-------------------------
Config.txt Configuration file for DataDirect Test
ddlogging.properties Logging properties file
testforjdbc.bat Batch file to start DataDirect Test
testforjdbc.sh Shell script to start DataDirect Test
lib/testforjdbc.jar DataDirect Test classes
INSTALL_DIR/uninstall/:
-----------------------
.com.zerog.registry.xml Support file for the uninstaller
.psc_dd_uninst_reg.xml Support file for the uninstaller
InstallScript.iap_xml Support file for the uninstaller
installvariables.properties
Support file for the Windows uninstaller
Uninstall_JDBC.exe Windows uninstaller
Uninstall_JDBC.lax Support file for the Windows uninstaller
uninstaller.jar Java uninstaller
dynamics365/*.* Support files for the uninstaller
resource/*.* Resource files for the Windows uninstaller
February 2026
End of README