README
     Progress(R) DataDirect(R)
     Progress(R) DataDirect(R) for JDBC(TM) for SQL Server(TM) Driver
     Release 6.0.0 
     February 11, 2019


***********************************************************************
Copyright (C) 1994-2019 Progress and/or its 
subsidiaries or affiliates. All Rights Reserved.
***********************************************************************


CONTENTS

Requirements
Installation Directory
Progress DataDirect for JDBC for SQL Server Driver
Changes since 6.0.0
Release 6.0.0 Features
Notes, Known Problems, and Restrictions
Documentation
Installed Files
Third Party Acknowledgments


     Requirements

Java SE 6 or higher must be installed and the JVM must be defined on your system
path.


     Installation Directory

The default installation directory for the driver is:

* Windows:
  C:\Program Files\Progress\DataDirect\JDBC_60

* UNIX/Linux:
  /opt/Progress/DataDirect/JDBC_60
  Note: For UNIX/Linux, if you do not have access to "/opt", your user's home
  directory will take the place of this directory.
  
  
    Progress DataDirect for JDBC for SQL Server Driver

The driver supports the JDBC API for SQL read-write access to Microsoft SQL
Server and Microsoft Azure, including Azure SQL Data Warehouse and Microsoft
Analytics Platform System.

* The driver supports all JDBC Core functions.

* The driver supports the core SQL-92 grammar.


    Changes since 6.0.0

Certifications
--------------
* The driver has been certified with Oracle JDK 11
  Driver version 6.0.0.000062 (F000147.U000072)

* The driver has been certified with OpenJDK 11.
  Driver version 6.0.0.000062 (F000147.U000072)

* The driver has been certified with OpenJDK 8 on Windows and Linux.
  Driver version 6.0.0.000062 (F000147.U000072)

 Enhancements 
------------
* The version of Bouncy Castle that ships with the driver has been upgraded to 
  1.60, which fixes the following security vulnerabilities:
  - CVE-2018-1000613
  - CVE-2018-1000180
  - CVE-2017-13098
  This upgrade is available starting in build 5.1.4.000120 of the driver. For 
  more information on the vulnerabilities resolved by this upgrade, refer 
  to https://nvd.nist.gov/.  
  

    Release 6.0.0 Features

Support and certifications
--------------------------
Visit the following web pages for the latest support and certification
information.

* Release Notes
  https://www.progress.com/jdbc/release-history/microsoft-sql-server-jdbc

* Supported Configurations
  https://www.progress.com/supported-configurations/datadirect?ds=microsoft-sql-server

* DataDirect support matrices
  https://www.progress.com/matrices/datadirect

Enhancements 
------------ 
* The driver has been enhanced to 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.

* The driver has been enhanced to support Azure Active Directory authentication
  (Azure AD authentication). Azure AD authentication is an alternative to SQL
  Server Authentication that allows administrators to centrally manage user
  permissions to Azure SQL Database data stores.

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

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

* Support for result set holdability has been added to the driver.

Changed Behavior
----------------
* 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. 


     Notes, Known Problems, and Restrictions
	 
The following are notes, known problems, and restrictions with the 6.0.0
release of the driver.
	 	 
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.


     Documentation	 	 

PROGRESS DATADIRECT FOR JDBC FOR SQL SERVER DRIVER USER'S GUIDE
---------------------------------------------------------------
The USER'S GUIDE is available as an HTML help system and as a PDF.

* The HTML help system is installed in the SQLServerHelp subdirectory of your
  product installation directory.

* The HTML help system and the PDF are available on the Progress DataDirect Web
  site:
  https://www.progress.com/resources/documentation/datadirect-documentation


     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
   - PROGRESS_DATADIRECT_JDBC_SQLSERVER_6.0.0_INSTALL.iam.zip
   - PROGRESS_DATADIRECT_JDBC_COMMON_6.0.0_INSTALL.iam.zip
   - PROGRESS_DATADIRECT_JDBC_DOCUMENTATION_6.0.0_INSTALL.iam.zip

*  Non-Windows:
   - PROGRESS_DATADIRECT_JDBC_INSTALL.jar
   - PROGRESS_DATADIRECT_JDBC_SQLSERVER_6.0.0_INSTALL.iam.zip
   - PROGRESS_DATADIRECT_JDBC_COMMON_6.0.0_INSTALL.iam.zip
   - PROGRESS_DATADIRECT_JDBC_DOCUMENTATION_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


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/: 
------------------
SQLServerHelp/index.html   Driver HTML help system entry file

SQLServerHelp/*            Support files and folders for the driver help system


INSTALL_DIR/install/: 
---------------------
.psc_dd_inst_reg.xml       Support file for the installation logs

logs/*.*                   Log file generated upon installing or uninstalling


INSTALL_DIR/jre/:
-----------------
*.*                        Files associated with the driver. Installed only when
                           installing on Windows with the Windows executable
                           file.


INSTALL_DIR/lib/:
-----------------
sqlserver.jar              SQL Server Driver and DataSource classes

JDBCDriverLogin.conf       The JAAS login configuration file installed with the
                           driver


INSTALL_DIR/NOTICES/:
---------------------
JDBC for SQL Server 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 SQL Server v6.0 readme.txt
                           This file
						   
						   
INSTALL_DIR/SQLServer JTA/32-bit:
---------------------------------
instjdbc.sql               File for installing JTA stored procedures

sqljdbc.dll                File for use with JTA stored procedures
                           (32-bit version)


INSTALL_DIR/SQLServer JTA/64-bit:
---------------------------------
instjdbc.sql               File for installing JTA stored procedures

sqljdbc.dll                File for use with JTA stored procedures 
                           (Itanium 64-bit version)


INSTALL_DIR/SQLServer JTA/x64-bit:
----------------------------------
instjdbc.sql               File for installing JTA stored procedures

sqljdbc.dll                File for use with JTA stored Procedures 
                           (AMD64 and Intel EM64T 64-bit version)


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_60.exe      Windows uninstaller

Uninstall_JDBC_60.lax      Support file for the Windows uninstaller

uninstaller.jar            Java uninstaller

resource/*.*               Resource files for the Windows uninstaller

sqlserver/*.*              Driver specific support files for the uninstaller



     Third Party Acknowledgments

One or more products in the Progress DataDirect for JDBC for SQL Server v6.0 
releases include third-party components covered by licenses that require that 
the following documentation notices be provided.  If changes in third-party 
components occurred for the current release of the Product, the following 
Third-Party Acknowledgements may contain notice updates to any earlier versions 
provided in documentation or README file. 

Progress DataDirect for JDBC for SQL Server v6.0 incorporates Microsoft Azure 
Active Directory Authentication Library (ADAL) for Java v1.3.0. Such technology 
is subject to the following terms and conditions:
Copyright (c) Microsoft Corporation. All rights reserved. 
This code is licensed under the MIT License. 
Permission is hereby granted, free of charge, to any person obtaining a copy of 
this software and associated documentation files (the "Software"), to deal in 
the Software without restriction, including without limitation the rights to 
use, copy, modify, merge, publish, distribute, sublicense, and / or sell copies 
of the Software, and to permit persons to whom the Software is furnished to do 
so, subject to the following conditions: 
The above copyright notice and this permission notice shall be included in all 
copies or substantial portions of the Software. 
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE 
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 
SOFTWARE.

Progress DataDirect for JDBC for SQL Server v6.0 incorporates SLFJ4J API 
v1.7.5. Such technology is subject to the following terms and conditions:
Copyright (c) 2004-2013 QOS.ch All rights reserved.
Permission is hereby granted, free of charge, to any person obtaining a copy of 
this software and associated documentation files (the "Software"), to deal in 
the Software without restriction, including without limitation the rights to 
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies 
of the Software, and to permit persons to whom the Software is furnished to do 
so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all 
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
FITNESS FOR A ARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 
SOFTWARE.


February 11, 2019
=============
End of README