Powered by Zoomin Software. For more details please contactZoomin

DataDirect JDBC ReadMe

Product
Format
Current publication
HomeDataDirect JDBC ReadMeMicrosoft Dynamics 365 JDBC 6.0.0Current page
Table of Contents

Microsoft Dynamics 365 JDBC 6.0.0

  • Last Updated:March 24, 2025
  • 9 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
    January 24, 2025


***********************************************************************
Copyright (C) 2025 Progress Software Corporation and/or its 
subsidiaries or affiliates. All Rights Reserved.


***********************************************************************


CONTENTS

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


     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 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



January 24, 2025
==============
End of README

TitleResults for “How to create a CRG?”Also Available inAlert