README
     Progress(R) DataDirect(R) 
     Progress(R) DataDirect(R) for JDBC(TM) for Oracle Service Cloud(TM) Driver
     Release 5.1.4
     September 2016


***********************************************************************
Copyright (c) 1994-2016 Progress Software Corporation and/or its 
subsidiaries or affiliates. All Rights Reserved.

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


CONTENTS

Requirements
Installation Directory
Changes since Service Pack 4
Changes for Service Pack 4
Features
Notes, Known Problems, and Restrictions
Documentation
Installed Files
Third Party Acknowledgements


     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_51

* UNIX/Linux:
  /opt/Progress/DataDirect/JDBC_51
  Note: For UNIX/Linux, if you do not have access to "/opt", your user's
  directory should be used in place of this directory.


     Changes since Service Pack 4

Certifications
--------------
* Certified with Oracle RightNow CX API 1.2 against Oracle Service Cloud May 2016
  Driver version 5.1.4.000233 (C0211.F000280.U000123)

* Certified with Oracle RightNow CX API 1.2 against Oracle Service Cloud May 2015

NamedIDBehavior Configuration Option
------------------------------------
The new NamedIDBehavior configuration option allows you to determine whether the
Name attribute of NamedID fields is exposed in the relational map. This  option
can be used to avoid "Poor performing query" errors by reducing the size of
result sets. For details, see "'Poor performing query' Error  Message" and
"NamedIDBehavior Configuration Option" in "Notes, Known Problems, and
Restictions."

Statement Pooling
-----------------
The driver no longer registers the Statement Pool Monitor as a JMX MBean by
default. To register the Statement Pool Monitor and manage statement pooling with
standard JMX API calls, the new RegisterStatementPoolMonitorMBean connection
property must be set to true. See "Notes, Known Problems, and Restrictions" for
details.


     Changes for Service Pack 4

Result Set Holdability
----------------------
Support for result set holdability has been added to the driver.


     Features

The driver supports standard SQL query language to provide read-only access to
data managed by Oracle Service Cloud. The driver maps the Oracle Service
Cloud data model to a set of relational tables and uses a client-side data cache
for improved performance.

* The driver supports the Oracle RightNow CX API version 1.2 against sites
  using Oracle Service Cloud February 2014 or later.

* The driver supports all JDBC Core functions.

* The driver supports the core SQL-92 grammar.

* The driver supports SSL encryption and User ID/Password authentication.

* The driver supports statement pooling.

* The driver supports connecting through a proxy server.

* The driver supports the following data types:
  - BASE_64_BINARY    maps to LONGVARBINARY
  - BOOLEAN           maps to BOOLEAN
  - DATE              maps to DATE
  - DATETIME          maps to TIMESTAMP
  - DECIMAL           maps to DOUBLE
  - ID                maps to BIGINT
  - INTEGER           maps to INTEGER
  - LONG              maps to BIGINT
  - LONGTEXT          maps to LONGVARCHAR
  - STRING            maps to VARCHAR

* The driver package includes the following components:
  - DataDirect Test for JDBC
  - DataDirect Spy for JDBC
  - DataDirect Statement Pool Monitor


     Notes, Known Problems, and Restrictions

The following are notes, known problems, and restrictions with the Oracle
Service Cloud driver.

"Poor performing query" Error Message
-------------------------------------
Oracle Service Cloud returns a "Poor performing query" error when executing 
certain queries with the driver. This typically occurs when executing a query 
that requires the Oracle Service Cloud service to perform join operations on 
tables containing a large number of rows. We are currently working on a 
permanent solution to this problem; however, in the interim, you can work 
around this issue by doing the following:

1. Configure the following connection properties to the values provided:

   ConfigOptions
   -------------   
   Value: (NamedIDBehavior=2)
   Note: In addition to specifying the recommended value, include any other
   key value pairs that you currently specify for ConfigOptions. These key value
   pairs should be specified in parentheses in a comma-separated list. For
   details, see "ConfigOptions" in the User's Guide.
   
   CreateDB
   --------
   Value: forceNew
   Note: Set CreateDB to forceNew for your initial connection. With this setting
   for the initial connection, NamedIDBehavior=2 takes effect and local map files
   are rebuilt to avoid "Poor performing query" errors. After the local map files
   have been rebuilt, CreateDB should be set to your preferred setting. We
   recommend setting CreateDB to notExist.
   
   EnablePagingWithOrderByID
   -------------------------
   Value: true
   Note: This default value allows the driver to inject the Order By clause in
   the Select query.
   
2. Connect to your Oracle Service Cloud instance. At connection, the driver
   deletes the current local map files and creates new files using the updated
   configuration option settings.
   
3. Change the value of CreateDB to your preferred setting before your next 
   connection. We recommend specifying a value of notExist.

4. Test your settings by executing a query that previously returned the error.
   Based on the results, choose one of the following:
   - If you receive the "Poor performing query" error, proceed to the 
     next step.
   - If your query is successfully returned, skip to the "Results" section.  
   
5. Tune the driver's fetching behavior. Using the WSFetchSize property, decrease
   the number of rows the driver attempts to fetch until the "Poor performing
   query" error is no longer returned. For optimal performance, configure
   WSFetchSize so that the driver returns the maximum number of rows possible
   without returning the error. For example, if you receive the error fetching
   500 rows, but not 499 rows, set WSFetchSize=499 for maximum throughput. Be
   aware that decreasing the fetch size can increase the number of web service
   calls the driver makes to the Oracle Service Cloud service. If your query
   exceeds the statement call limit, increase the number of rows fetched using
   WSFetchSize or increase the statement call limit using the StatementCallLimit
   property to work around this issue.
   
   Notes: 
   * You must disconnect and reconnect for changes to connection property values
     to take effect.
   * In the default setting, WSFetchSize=0, the driver uses the maximum page 
     size allowed by the database to determine the number of rows it attempts 
     to fetch for Oracle Service Cloud versions August 2014 or later. For 
     versions earlier than August 2014, the driver attempts to fetch a maximum
     of 10,000 rows.
	 
Results: 
This configuration allows you to avoid the "Poor performing query" error in
subsequent connections. If you begin receiving the error again, tune the 
WSFetchSize connection property according to the guidelines provided in step 4.

NamedIDBehavior Configuration Option 
------------------------------------
Determines whether the Name attribute of NamedID fields is exposed in the
relational map. 

Valid Values:
1 | 2 

The value for this option is specified as a key value pair via the ConfigOptions
property. For details, see "ConfigOptions" in the User's Guide.

Behavior:
If set to 1, the driver exposes the Name attribute of the NamedID fields in 
the relational model. Specify this setting if your application needs to 
access the Name strings associated with NamedID columns.

If set to 2, the driver does not expose the Name attribute of the NamedID 
fields in the relational model. This setting can be used to avoid "Poor 
performing query" errors received when executing SELECT * queries against
tables containing a large number of rows.

Default:
1

Notes:
If you are receiving "Poor performing query" errors, you can work around this
issue by setting NamedIDBehavior=2. This reduces the size of the result set,
allowing the Oracle Service Cloud service to successfully return the query. For
this change to have effect, you will need recreate the local mapping files by
setting CreateDB=forceNew; then, connecting to your Oracle Service Cloud
instance. After creating your new local mapping files, you should reconfigure
CreateDB to your preferred setting. We recommend a setting of CreateDB=notExist.

RegisterStatementPoolMonitorMBean Connection Property
-----------------------------------------------------
The RegisterStatementPoolMonitorMBean connection property registers the
Statement Pool Monitor as a JMX MBean when statement pooling has been enabled
with MaxPooledStatements. This allows you to manage statement pooling with
standard JMX API calls and to use JMX-compliant tools, such as JConsole.
- Valid values are true | false
- If set to true, the driver registers an MBean for the statement pool monitor
  for each statement pool. This gives applications access to the Statement
  Pool Monitor through JMX when statement pooling is enabled.
- If set to false, the driver does not register an MBean for the Statement Pool
  Monitor for any statement pool.
- Registering the MBean exports a reference to the Statement Pool Monitor. The
  exported reference can prevent garbage collection on connections if the
  connections are not properly closed. When garbage collection does not take
  place on these connections, out of memory errors can occur.
- The default is false.
- The data type is boolean.

CreatedTime and UpdatedTime Fields
----------------------------------
Although the CreatedTime and UpdatedTime fields on custom objects map to the
relational view, you cannot query against them unless you enable the fields
within the Object Designer in the Oracle Service Cloud admin tool.

ExtStatementPoolMBean Method
----------------------------
When calling the ExtStatementPoolMonitorMBean.getName() method, the driver
should return a concatenation of the driver's name, the loginHost URL to which
the Statement Pool Monitor is connected, and the MBean ID of the connection. The
driver returns null in place of the loginHost URL.

Invalid Schema Error
--------------------
The driver returns an invalid schema error when creating a view using a two-part
name in the view definition.

DROP CACHE Statement
--------------------
In some situations, executing a DROP CACHE statement will complete successfully
without dropping the cache.

Queries Against File Attachments
--------------------------------
Queries against File attachments for sub-objects fail to retrieve the attachment
data.

Executing DataDirect Shell Script
---------------------------------
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

Performance Tuning Wizard
-------------------------
The Performance Tuning Wizard is not available with the Oracle Service Cloud
driver. For information on tuning the driver for performance, see "Performance
Considerations" in the USER'S GUIDE.

Help System Issue
-----------------
Internet Explorer with the Google Toolbar installed sometimes displays the
following error when the browser is closed: "An error has occurred in the
script on this page." This is a known issue with the Google Toolbar and has
been reported to Google. When closing the driver's help system, this error may
display.


     Documentation	 	 

PROGRESS DATADIRECT FOR JDBC FOR ORACLE SERVICE CLOUD DRIVER USER'S GUIDE
-------------------------------------------------------------------------
The USER'S GUIDE is provided in PDF and HTML versions.

* The PDF version is available on the Progress DataDirect Web site. You can view
  this version using Adobe Reader. (To download Adobe Reader, visit the Adobe
  Web site at http://www.adobe.com.)

* The HTML version of the guide is installed in the OSCHelp subdirectory of your
  product installation directory. This help system is also available on the
  Progress DataDirect Web site.


     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_OSC_5.1.4_INSTALL.iam.zip
   - PROGRESS_DATADIRECT_JDBC_COMMON_5.1.4_INSTALL.iam.zip
   - PROGRESS_DATADIRECT_JDBC_DOCUMENTATION_5.1.4_INSTALL.iam.zip

*  Non-Windows:
   - PROGRESS_DATADIRECT_JDBC_INSTALL.jar
   - PROGRESS_DATADIRECT_JDBC_OSC_5.1.4_INSTALL.iam.zip
   - PROGRESS_DATADIRECT_JDBC_COMMON_5.1.4_INSTALL.iam.zip
   - PROGRESS_DATADIRECT_JDBC_DOCUMENTATION_5.1.4_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/Connector/:
--------------------------------
ConnectorSample.ear        J2EE Application Enterprise Archive file containing
                           the ConnectorSample application 

connectorsample.htm        USING DATADIRECT CONNECT FOR JDBC RESOURCE ADAPTERS
                           document

graphics/*.*               Images referenced by the USING DATADIRECT CONNECT FOR
                           JDBC RESOURCE ADAPTERS document

src/ConnectorSample.jsp    Source for the JavaServer Page used to access the
                           ConnectorSample application

src/connectorsample/ConnectorSample.java     
                           Java source file defining the remote interface for
                           the ConnectorSample EJB

src/connectorsample/ConnectorSampleBean.java  
                           Java source file defining the home interface for the
                           ConnectorSample EJB

src/connectorsample/ConnectorSampleHome.java  
                           Java source file containing the implementation for
                           the ConnectorSample EJB


INSTALL_DIR/Examples/JNDI/:
---------------------------
JNDI_FILESYSTEM_Example.java
                           Example Java(TM) source file

JNDI_LDAP_Example.java     Example Java source file


INSTALL_DIR/Examples/SforceSamples/:
------------------------------------
buildsamples.bat           Batch file to build the Salesforce example

buildsamples.sh            Shell script to build the Salesforce example
 
ddlogging.properties       Logging properties file

runsalesforceconnectsample.bat
                           Batch file to run the Salesforce example

runsalesforceconnectsample.sh
                           Shell script to run the Salesforce example

bin/com/ddtek/jdbc/samples/SalesforceConnectSample.class
                           Java example class

bin/com/ddtek/jdbc/samples/SampleException.class
                           Java example class

src/com/ddtek/jdbc/samples/SalesforceConnectSample.java
                           Java source example


INSTALL_DIR/Help/: 
------------------
OSCHelp/index.html         Driver HTML help system entry file

OSCHelp/*                  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 Progress DataDirect drivers


INSTALL_DIR/lib/:
-----------------
rightnow.jar               Oracle Service Cloud Driver and DataSource classes


INSTALL_DIR/NOTICES/:
---------------------
JDBC for Oracle Service Cloud v5.1.4 notices.txt
                           Third party agreement information


INSTALL_DIR/pool manager/:
--------------------------
pool.jar                   All DataDirect Connection Pool Manager classes


INSTALL_DIR/READMES/:
---------------------
JDBC for Oracle Service Cloud v5.1.4 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_Progress_DataDirect_for_JDBC_5.1_SP4.exe
                           Windows uninstaller

uninstall_Progress_DataDirect_for_JDBC_5.1_SP4.lax
                           Support file for the Windows uninstaller

uninstaller.jar            Java uninstaller

resource/*.*               Resource files for the Windows uninstaller


     Third Party Acknowledgements

One or more products in the Progress DataDirect for JDBC for Oracle Service
Cloud v5.1.4 release includes 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 Oracle Service Cloud v5.1.4 incorporates
HyperSQL database v1.8.0.10 from The HSQL Development Group. Such technology is
subject to the following terms and conditions: Copyright (c) 2001-2005, The 
HSQL Development Group All rights reserved. Redistribution and use in source 
and binary forms, with or without modification, are permitted provided that 
the following conditions are met: Redistributions of source code must retain 
the above copyright notice, this list of conditions and the following 
disclaimer.  Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the 
documentation and/or other materials provided with the distribution. Neither 
the name of the HSQL Development Group nor the names of its contributors may be
used to endorse or promote products derived from this software without 
specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, 
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY 
AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL HSQL
DEVELOPMENT GROUP, HSQLDB.ORG, OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.	
	
Progress DataDirect for JDBC for Oracle Service Cloud v5.1.4 incorporates Stax2
API v3.1.1.  Such technology is subject to the following terms and conditions:
Copyright (c) 2004-2010, Woodstox Project (http://woodstox.codehaus.org/) All
rights reserved.	
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this 
   list of conditions and the following disclaimer.	
2. Redistributions in binary form must reproduce the above copyright notice, 
   this list of conditions and the following disclaimer in the documentation
   and/or other materials provided with the distribution.   
3. Neither the name of the Woodstox XML Processor nor the names of its 
   contributors may be used to endorse or promote products derived from this
   software without specific prior written permission.   
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


19 September 2016
=================
End of README