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-Premise 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-Premise Connector establishes a secure connection back to DataDirect Cloud when needed to provide access to the on-premise data stores.
DataDirect Cloud– March 26, 2016
Using the OData API
More efficient text searches using the new ddsearch parameter
Querying to find particular values can be expensive when the search must span many columns and many records. To enable you to improve performance by restricting searches to particular text-based columns, DataDirect Cloud provides a new proprietary query parameter, ddsearch. Using ddsearch instead of OData $filter can improve the results of queries. You can also use the OData Schema Editor to exclude specific columns from a table in the OData model.
To use ddsearch, you configure your schema map to specify which columns to include in the search, and whether to search anywhere or only in the first words. To use the optimized search for Salesforce external objects, you must also configure Salesforce to accept ddsearch as a custom search parameter.
For data sources that support indices for text-based fields, the ddsearch parameter allows you to take advantage of full text searches using an index. Indices allow the underlying database to complete a search more efficiently and reduce the overall load that queries create. Full text search using indices is available for the following data source types:
- DB2 on Linux, UNIX, and Windows — Each column to be searched must have a separate full text index, the full text services must be running, and the database must be enabled for full text. See the DB2 documentation for more information.
- Oracle — Each column to be searched must have a separate full text index, the full text services must be running, and the database must be enabled for full text. See the Oracle documentation for more information.
- Microsoft SQL Server — Each column to be searched must have a separate full text index and the full text index engine must be running. See the Microsoft documentation for more information.
See the online help for more information.
Setting to optimize service behavior for requests using the $top parameter
Some client applications limit the number of entities in a response with the $top OData parameter, but seldom request the remaining entities from the result set. Other clients frequently use $top and $skip to page through results. The DataDirect Cloud service can optimize response times if you indicate how clients will be using the $top parameter.
You can specify the Top Mode in the Data Source definition on the OData tab. You can also use the ddcloud-top-mode header in a request to inform the DataDirect Cloud OData service of how the client typically uses the $top parameter in queries. The header parameter overrides the Data Source definition value for that request. See the online help for information on using the header and setting OData options.
Full support for OData write operations
DataDirect Cloud now has full support for write operations, allowing you to create, update and delete entities using OData. Please note the following:
- The OData Read Only option on the OData tab of a Data Source definition controls write access.
- By default, write operations are enabled (the OData Read Only option is not selected) when you create a new Data Source definition.
- For Data Source definitions created before write operations were available, the OData Read Only option will be selected by default. To enable write operations for an existing OData-enabled Data Source, clear the OData Read Only option and use the Configure Schema editor to regenerate the OData model. Write operations will not work if you fail to regenerate the model. See the online help for related information about enabling OData access for a data source.
Changes to the JSON schema format
To support efficient searches by excluding unwanted columns, the JSON schema format has changed. Data Source OData schemas created before the March release will continue to work, but to take advantage of the new ddsearch parameter for efficient searches, the schema must define which text-based columns should be exposed to the search and which type of search to use.
The OData Schema Map Editor, located on the OData tab of the data source setup, converts pre-existing JSON schema map strings to the new format.
See the online help for more information.
- All DataDirect Cloud customers are strongly encouraged to update their current DataDirect Cloud On-Premise Connector. The new version reduces on-premise network resources required when making an on-premise connection. It also reduces the chances of a connection error during times of heavy loads on the host machine.
You can download the new DataDirect Cloud On-Premise Connector from the DataDirect Cloud website. Select the Downloads link and then select the Windows x86 or Windows x64 DataDirect Cloud On-Premise Connector Installer. After downloading the new installer, update your existing installation of the DataDirect Cloud On-Premise Connector.
- Selecting the method to connect to the notification server is easier. You can tune performance by selecting one or more check boxes:
- UDP provides a lightweight, fast connection, and requires less resources on-premise.
- TCP provides a required persistent connection, and is slower than UDP. Data processing is handled by the on-premise system.
- TCP with TLS uses a persistent connection. This method is slower and creates more network traffic, but might be required by a proxy server. Note that no secure information is sent over this connection.
DataDirect Cloud Management API
- The DataSource API has been enhanced with the Schema Map API. Applications can consume the results of this API to build up the OData schema map option:
- Get the schemas for a data source.
- Get the names of tables in the schema
- Get all information about a table, or retrieve only the column information or primary key information for a table
- With the new OAuth API, you can manage your OAuth Tokens for DataSources using OAuth Authentication, which currently only Google Analytics DataSources support. As an OEM, you can register your application/product by supplying your ClientId and ClientSecret, allowing to brand your OAuth connection/permission.
- The ODBC Driver has been updated to use version 1.0.2f of the Open SSL library.
- Provides stronger cryptographic assurance against the "Logjam" vulnerability (CVE-2015-4000)
- Fixes the "DH small subgroups" vulnerability (CVE-2016-0701)
- Fixes the "SSLv2 doesn't block disabled ciphers" vulnerability (CVE-2015-3197)
- Fixes the "BN_mod_exp may produce incorrect results on x86_64" vulnerability (CVE-2015-3193)
- Fixes the "Certificate verify crash with missing PSS parameter" vulnerability (CVE-2015-3194)
- Fixes the "X509_ATTRIBUTE memory leak" vulnerability (CVE-2015-3195)
- Clarified configuration of the driver by renaming Database to DD Cloud Data Source.
The new Min Long Varchar Size and Varchar Size options allow you to fetch columns that are larger or smaller than the size restrictions set by some third-party applications, such as SQL Server Linked Server.
- Clarified configuration of the driver by renaming Database to DDCloudDataSource.
Creating a Google Analytics OAuth profile with the Data Source Management API is now supported, through the OAuthApplication and OAuthProfiles APIs.
- Bug 33606. The Alternate ID field has been to the Advanced tab of the configuration dialog.
- Bug 31093.Resolved a "persistence failure" error when executing a long running query.
- The OData service now assumes that the charset is UTF-8 when the charset is not specified for incoming JSON payloads.
Management API: OEM User API
- An appropriate error message is now returned when the password does not meet the password policy.
- Resolved conflict when installing DataDirect Cloud On-Premise Connector when installing on a system that already has a Tomcat-based application installed.
- The JDBC 32-bit silent installation now works correctly on Windows 10.
Even with exhaustive testing, not all issues can be immediately resolved. The following issues have been noted:
All Data Sources
- 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.
- Uninstalling and re-installing the On-Premise Connector causes the Connector Id of the On-Premise 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-Premise 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-Premise 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-Premise Connector using an older On-Premise Connector Configuration Tool may cause the Connector to fail to register itself with DataDirect Cloud and cause 504 Gateway timeout errors to be returned. Installing the latest On-Premise Connector may resolve this issue.
- 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.
- Validation message is not displayed when a user enters a Start Date value less than the End Date value in Create/Update Google Analytics page.
- When configuring OData Search options in the OData Schema Map Editor, the Search index type menu is empty. This issue applies to DB2 and Microsoft SQL Server data stores
- $expand only supports one level deep.
For example, with the entity hierarchy:
| |-- OrderItems
The following queries are supported:
However, this query is not supported:
OrderItems is a second level entity with respect to
Customers. To query
OrderItems, the query must be rooted at Orders. For example:
- 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.
- When using the substring function on properties that map to a CHAR column in the data source, it is data source dependent as to whether the substring function treats the trailing spaces as significant. When going against Oracle, the trailing spaces are preserved. When going against other data sources, the trailing spaces are discarded.
- 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.
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.
Microsoft Dynamics CRM
- Testing has shown the following two errors from Microsoft Dynamics CRM Online when executing queries against the ImportData and TeamTemplate tables:
Note: We have filed a case with Microsoft and are waiting to hear back about the cause of the issue.
- 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
- 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.
- 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.
- 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.
DataDirect Cloud JDBC Drivers
- See the file d2cjdbcreadme.txt for the latest notes when accessing DataDirect Cloud through the DataDirect Cloud JDBC drivers. These files are located in the installation directory for the JDBC drivers.
DataDirect Cloud ODBC Drivers
- See the file d2codbcreadme.txt for the latest notes when accessing DataDirect Cloud through the DataDirect Cloud ODBC drivers. These files are located in the installation directory for the ODBC drivers.
Third Party Acknowledgments
Third party acknowledgments are listed on the following Web page.