Release-May 22, 2017

Progress DataDirect Cloud™

Progress DataDirect Cloud enables simple, fast connections to cloud and on-premise data regardless of source—SaaS apps, big data stores, or social networks—using a single standards-based ODBC or JDBC driver-, or OData-enabled application. For example, an organization might want to use a reporting application to predict travel budgets by analyzing travel data stored in the cloud. DataDirect Cloud can provide connectivity with simple configuration instead of extensive coding. In addition, when you install the DataDirect Cloud On-Premises Connector on a machine behind your firewall, you can connect to on-premise data sources using DataDirect Cloud, without opening ports or otherwise configuring the fire wall. The On-Premises Connector establishes a secure connection back to DataDirect Cloud when needed to provide access to the on-premise data.

Security

OpenSSL

The default OpenSSL library has been updated to 1.0.2k, which fixes the following security vulnerabilities.

  • Truncated packet could crash via OOB read (CVE-2017-3731)
  • BN_mod_exp may produce incorrect results on x86_64 (CVE-2017-3732)
  • Montgomery multiplication may produce incorrect results (CVE-2016-7055)

OpenSSL 1.0.2k addresses vulnerabilities resolved by earlier versions of the library. For more information on OpenSSL vulnerabilities resolved by this upgrade, refer to OpenSSL announcements.

Resolved Issues

ODBC Driver
  • Resolved a persistence failure error for result sets containing columns larger than 500 kB.
DB2
  • Resolved an issue where the error "Numeric value out of range" occurs when calling SQLStatistics in DB2 with the ODBC driver.

Known Issues

Even with exhaustive testing, not all issues can be immediately resolved. The following issues have been noted:

On-Premises Connector
  • Uninstalling and re-installing the On-Premises Connector causes the Connector Id of the On-Premises Connector to change. Any DataDirect Cloud data sources using the old Connector Id must be updated to use the new Connector ID. Installing to a new directory allows both the old and new On-Premises Connector to exist side-by-side. However, you must update the Connector ID option in previously-defined DataDirect Cloud data sources to point to the new On-Premises Connector.

    In addition, you must update Connector Id wherever it was used, such as the definitions of Group Connectors and Authorized Users.
  • Changing the name used to register an On-Premises Connector using an older On-Premises Connector Configuration Tool may cause the Connector to fail to register itself with DataDirect Cloud and cause 504 Gateway timeout errors to be returned. Install the latest On-Premises Connector to resolve this issue.
OData
  • $expand only supports one level deep. Take for example the following entity hierarchy:
    Customers
    |- Orders
    |   |-- OrderItems
    |- Contacts

    The following queries are supported:
    Customers?$expand=Orders
    Customers?$expand=Contacts
    Customers?$expand=Orders,Contacts

    However, this query is not supported:
    Customers?$expand=Orders,OrderItems

    OrderItems is a second level entity with respect to Customers, To query Orders and OrderItems, the query must be rooted at Orders. For example:
    Orders?$expand=OrderItems
    Orders(id)?$expand=OrderItems

  • DataDirect Cloud OData model asynch API incorrectly returns zero instead of the actual percent complete when querying the status of a model that is being generated.
  • When manually editing the ODataSchemaMap value, the table names and column names specified in the value are case-sensitive. The case of the table and column names must match the case of the tables and column names reported by the data source.

    Note: It is highly recommended that you use the OData Schema Editor to generate the value for the ODataSchemaMap data source option. The Schema Editor takes care of table and column name casing and other syntactic details.
  • The $expand clause is not supported with OpenEdge data sources.
  • The day scalar function is not working when specified in a $filter clause when querying a DB2 data source.
All Data Stores
  • It is recommended that Login Timeout not be disabled (set to 0) for a Data Source.
  • Using setByte to set parameter values fails when the data source does not support the TINYINT SQL type. Use setShort or setInt to set the parameter value instead of setByte.
Google Analytics
  • Validation message is not showing when a user enters a Start Date value less than the End Date value in Create/Update Google Analytics page.
  • Once a Google Analytics OAuth profile is created for a specific Google account, changing the Google Account associated with the profile results in "the configuration options used to open the database do not match the options used to create the database" error being returned for any existing data sources.
HubSpot
  • HubSpot introduced a new limit on their API in July, limiting API calls to 10 per second. However, you can try the request again after waiting 1 second.

    We are investigating adding a connection option to automatically throttle API calls to deal with this HubSpot change. For more information, see the HubSpot forum post at http://integrate.hubspot.com/t/error-you-have-reached-your-secondly-limit/300.

Microsoft Dynamics CRM
  • Executing certain queries against MS Dynamics CRM with the JDBC driver may result in a “Communication failure. Protocol error."
  • Testing has shown the following two errors from Microsoft Dynamics CRM Online when executing queries against the ImportData and TeamTemplate tables:
    • Attribute errortype on Entity ImportData is of type picklist but has Child Attributes Count 0
    • Attribute issystem on Entity TeamTemplate is of type bit but has Child Attributes Count 0

      Note: We have filed a case with Microsoft and are waiting to hear back about the cause of the issue.
  • The initial on-premise connection when the relational map is created can take some time. It is even possible to receive an error "504: Gateway Timeout". When this happens, DataDirect Cloud continues to build the map in the background such that subsequent connection attempts are successful and have full access to the relational map.
OpenEdge 10.2b
  • Setting the MaxPooledStatements data source option in an OpenEdge data store to a value other than zero can cause statement not prepared errors to be returned in some situations.
Oracle Marketing Cloud
  • Data store issues
    • There are known issues with Batch Operations.
    • The Update/Delete implementation can update only one record at a time. Because of this, the number of APIs executed depends on the number of records that get updated or deleted by the query plus the number of API calls required to fetch the IDs for those records.
    • Lengths of certain text fields are reported as higher than the actual lengths supported in Oracle Marketing Cloud.
  • We are currently working with Oracle to resolve the following issues with the Oracle Marketing Cloud REST API.
    • AND operators that involve different columns are optimized. In other cases, the queries are only partially optimized.
    • OR operators on the same column are optimized. In other cases, the queries are completely post-processed.
    • The data store is not able to insert or update the NULL value to any field explicitly.The data store is unable to update few fields. They are always reported as NULL after update.
    • Oracle Marketing Cloud uses a double colon (::) as an internal delimiter for multivalued Select fields. Hence when a value with the semi-colon character (;) is inserted or updated into a multivalued Select field, the semicolon character gets converted into the double colon character.
    • Query SELECT count (*) from template returns incorrect results.
    • Oracle Marketing Cloud APIs do not populate the correct values in CreatedBy and UpdatedBy fields. Instead of user names, they contain a Timestamp value.
    • Only equality filters on id fields are optimized. All other filter conditions are not working correctly with Oracle Marketing Cloud APIs and the data store is doing post-processing for such filters.
    • Filters on Non-ID Integer fields and Boolean fields are not working correctly. Hence the driver needs to post-process all these queries.
    • The data store does not distinguish between NULL and empty string. Therefore, null fields are often reported back as empty strings.
    • Values with special characters such as curly braces ({,}), back slash (\), colon (:), slash star (/*) and star slash (*/) are not supported in where clause filter value.

Oracle Service Cloud
  • When you create a custom object, your Oracle Service Cloud administrator must enable all four columns of the Object Fields tab of the Object Designer, or you cannot query against the custom objects.
  • The initial connection when the relational map is created can take some time. It is even possible to receive an error "504: Gateway Timeout". When this happens, DataDirect Cloud continues to build the map in the background such that subsequent connection attempts are successful and have full access to the relational map.
SugarCRM
  • Data sources that are using the deprecated enableExportMode option will still see a problem until they are migrated to the new data source configuration.
  • Data sources that are using the deprecated enableExportMode option will still see a problem until they are migrated to the new data source configuration. Data source connections by default now use Export Mode to communicate with the Sugar CRM server, providing increased performance when querying large sets of data. Bulk export mode causes NULL values for currency columns to be returned as the value 0. Because of this, there is no way to differentiate between a NULL value and 0, when operating in export mode. This can be a problem when using currency columns in the SQL statements, because DataDirect Cloud must satisfy some filter conditions on queries, such as with operations like =, <>, >, >=, <, <=, IS NULL and IS NOT NULL. For example, suppose a currency column in a table in SugarCRM has 3 null values and 5 values that are 0. When a query is executed to return all NULL values (SELECT * FROM <table> WHERE <>currency column> IS NULL), then 3 rows are returned. However, if a query is executed to return all rows where the column performs an arithmetic operation (SELECT * FROM <table> WHERE <currency column> + 1 = 1), then all 8 records are returned because the 3 NULL values are seen as 0.
JDBC Driver
  • Executing certain queries against MS Dynamics CRM may result in a "Communication failure. Protocol error."
  • Using JNDI data sources, encryptionMethod must be configured through setExtendedOptions.
  • See the d2cjdbcreadme.txt file installed with the JDBC driver for more information.
ODBC Driver
  • When calling SQLStatistics in DB2 with the ODBC driver, the error "Numeric value out of range” occurs.
  • See the d2codbcreadme.txt file installed with the ODBC driver for more information.

Third Party Acknowledgments

Third party acknowledgments are listed on the following Web page.



patch-whats-new

Read Next

What's new