README
     Progress(R) DataDirect(R)
     Progress(R) DataDirect(R) for JDBC(TM) for Oracle(TM) Driver
     Release 6.0.0 
     March 21, 2019


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


CONTENTS

Requirements
Installation Directory
Progress DataDirect for JDBC for Oracle 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 Oracle Driver

The driver supports the JDBC API for SQL read-write access to Oracle Database,
Oracle Autonomous Data Warehouse Cloud, Oracle Database Exadata Cloud Service,
and Oracle Database Cloud Service.

* The driver supports all JDBC Core functions.

* The driver supports the core SQL-92 grammar.


     Changes since 6.0.0    

Certifications
--------------
* Certified with Oracle JDK 11
  Driver version 6.0.0.000006 (F000174.U000090) 

* Certified with OpenJDK 11
  Driver version 6.0.0.000006 (F000174.U000090) 

* Certified with OpenJDK 8 on Windows and Linux
  Driver version 6.0.0.000006 (F000174.U000090)


    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/oracle-jdbc

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

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

Enhancements 
------------ 
* The BatchMechanism connection property has been added to the driver.
  It determines the mechanism that is used for executing batch operations.

  It's a flexible replacement for BatchPerformanceWorkaround property. 
  Therefore, if you use BatchPerformanceWorkaround for specifying the
  batch mechanism instead of BatchMechanism, the driver will allow it.
  If you use both BatchMechanism and BatchPerformanceWorkaround 
  simultaneously, BatchMechanism will take precedence over 
  BatchPerformanceWorkaround.

* The driver has been enhanced to support Kerberos constrained delegation.
  Constrained delegation is a Kerberos mechanism that allows a client 
  application to delegate authentication to a second service.

* The GSSCredential connection property has been added to the driver. 
  It specifies the GSS credential object used to instantiate Kerberos
  constrained delegation.

* The driver has been enhanced to support returning implicit result sets
  from stored procedures.

* The driver has been enhanced to use Oracle Internet Directory as
  a means to store authentication information.

* The driver has been enhanced to support Oracle Wallet SSL 
  authentication introduced in Oracle 11.1.0.6. The AuthenticationMethod 
  connection property should be set to either SSL or SSLUIDPassword to allow
  SSL authentication when connecting with the driver.

* The driver has been enhanced to support the following new data 
  integrity algorithms for Oracle 12c and higher:
  - SHA256
  - SHA384
  - SHA512

* The maximum supported length of identifiers has been increased to 128 
  bytes when connecting to Oracle 12c R2 (12.2) databases. This change 
  has been implemented to reflect the new maximum length supported by 
  the server.

* The driver has been enhanced to support the extended data types. 
  When the Oracle server is configured with MAX_STRING_SIZE=EXTENDED,
  the driver supports the following maximum string sizes:
  - NVARCHAR2: 32766 bytes
  - RAW: 32767 bytes
  - VARCHAR2: 32767 bytes

* The driver has been enhanced to support Oracle Database Exadata Cloud 
  Service.

* The LOBPrefetchSize connection property has been added to the driver and is 
  supported for Oracle database versions 12.1.0.1 and higher. This connection 
  property allows you to specify the size of prefetch data the driver returns 
  for BLOBs and CLOBs. With LOB prefetch enabled, the driver can return LOB 
  meta-data and the beginning of LOB data along with the LOB locator during a 
  fetch operation. This can have significant performance impact, especially for 
  small LOBs which can potentially be entirely prefetched, because the data is 
  available without having to go through the LOB protocol.

* The RegisterStatementPoolMonitorMBean connection property has been added to 
  the driver. 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.

* The default value for the SDUSize property has been updated to 16384.

* The default value for the DataIntegrityLevel property has been updated to 
  accepted.

* The default value for the EncryptionLevel property has been updated to 
  accepted.

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

* The WireProtocolMode connection property has been deprecated.


     Notes, Known Problems, and Restrictions
	 
The following are notes, known problems, and restrictions with the 6.0.0
release of the driver.

Oracle 12c Server Issues
------------------------
The following issues were discovered during certification with Oracle 12c.

* When using the DataIntegrity (checksums) Oracle Advanced Security feature 
  with Oracle 12c, the server may unexpectedly drop the connection with the 
  driver. This server issue has been reported to Oracle: SR 3-7971196511.

* The newPassword connection property is only supported when connecting to an
  Oracle server earlier than Oracle 12c. If the newPassword connection property
  is specified when attempting to connect to an Oracle 12c server, the driver
  throws a “No Matching Authentication Protocol” exception.

Using Bulk Load
---------------
For the best performance when using the bulk load protocol against Oracle, an
application can specify "enableBulkLoad=true" and perform its batches of
parameterized inserts within a manual transaction. Using the bulk load protocol
can impact the behavior of the driver. The application should do nothing else
within the transaction. If another operation is performed BEFORE the inserts,
the driver is unable to use the bulk load protocol and will choose a different 
approach. If some other "execute" is performed AFTER the inserts, the driver
throws the following exception:

   An execute operation is not allowed at this time, due to unfinished 
   bulk loads. Please perform a "commit" or "rollback".

Executing Scripts (for UNIX 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.

newPassword Connection Property
-------------------------------
For database versions prior to Oracle 12c, the newPassword connection property
is supported only when connecting to servers for which the
ALLOWED_LOGON_VERSION parameter is either not specified or is specified with a
value of 8. If the newPassword connection property is specified when
attempting to connect to an Oracle server for which the ALLOWED_LOGON_VERSION
parameter is specified with a value greater than 8, the driver throws a
“No Matching Authentication Protocol” exception. The newPassword connection
property is not supported for Oracle 12c.

Connecting to Oracle in Restricted Mode Using tnsnames.ora File
---------------------------------------------------------------
When connecting to Oracle instances running in restricted mode using a
tnsnames.ora file, you must connect using a service name instead of a SID.

Select Failover and Result Sets with LOBs
------------------------------------------
If using Select failover and a result set contains LOBs, the driver cannot
recover work in progress for the last Select statement for that result set.
You must explicitly restart the Select statement if a failover occurs. The
driver will successfully recover work in progress for any result sets that
do not contain LOBs.

Using JDBC Distributed Transactions Through JTA
------------------------------------------------
If you install the Oracle driver and want to take advantage of JDBC
distributed transactions through JTA, you must install Oracle8i R3 (8.1.7)
or higher.

REF CURSOR Output Parameters
----------------------------
Because JDBC does not support a cursor data type, the Oracle driver returns
REF CURSOR output parameters to the application as result sets. For details
about using REF CURSOR output parameters with the driver, refer to the
user's guide.

ResultSet.getTimestamp() Method
-------------------------------
By default, values for TIMESTAMP WITH TIME ZONE columns cannot be retrieved
using the ResultSet.getTimestamp() method because the time zone information is
lost. The Oracle driver returns NULL when the getTimestamp() method is called
on a TIMESTAMP WITH TIME ZONE column and generates an exception. For details
about using the TIMESTAMP WITH TIME ZONE data type with the driver, refer to
the user's guide.


     Documentation	 	 

PROGRESS DATADIRECT FOR JDBC FOR ORACLE 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 OracleHelp 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_ORACLE_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_ORACLE_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/: 
------------------
OracleHelp/index.html      Driver HTML help system entry file

OracleHelp/*               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/:
-----------------
oracle.jar                 Oracle Driver and DataSource classes

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


INSTALL_DIR/NOTICES/:
---------------------
JDBC for Oracle 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 Oracle 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_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

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


March 21, 2019
=============
End of README