Support
Note - Autonomous Database Shared Subscribers
If you are running a customer-managed ORDS for your Autonomous Transaction Processing, Autonomous Data Warehouse, or Autonomous JSON Database, you must upgrade your customer-managed ORDS to the version used in your Autonomous Database Shared environment. Failure to do so could lead to service disruptions.
To determine the version of ORDS in your Autonomous Database Shared database run this query:
select ords.installed_version from dual;
Documentation
General
- Documentation for this release is provided on the oracle.com web site. Click
here
to view the documentation and related information.
- Documentation on using SODA for REST is provided on the oracle.com web site. Click
here, navigate to the documentation section and access the book titled 'SODA for REST'.
Getting Started
- A tutorial on getting started with developing RESTful Services is included in the
ORDS
product documentation, in the book titled 'Oracle® REST Data Services Quick Start Guide'.
Feedback
- At Oracle REST Data Services on oracle.com you will find links to forums and social media channels where you can discuss topics with the ORDS community around the world and leave feedback for the development team.
- In the forums, be sure to use clear subject lines to initiate a thread. Provide a complete and clear description of the issue, including
steps to reproduce the issue.
- Try to avoid using old, unrelated threads for a new issue.
Important Concepts to Keep In Mind
Migration of Oracle APEX Restful Service Modules
Oracle APEX 22.1 and onwards no longer natively supports the serving of APEX
Based Restful Service Modules. Existing APEX Based Restful Service Modules must
be migrated to ORDS Resource Modules in order to avoid loss of service.
As migration will replace any previously migrated (and possibly further developed)
APEX Based Restful Service Modules from an APEX Workspace, it is the responsibility
of the customer to manually initiate the migration. To help with this, Oracle has
provided a number of SQL scripts that can be found in the "migrate" folder in the
top-level "scripts" folder of the ORDS distribution ZIP file. These scripts must be
run as either a DBA or an ORDS "Installation" user.
- ords_migrate_report.sql - Reports on the migration status of all APEX
Workspaces that have one or more APEX Based Restful Service Modules
(excluding oracle.example.hr). e.g.
@ords_migrate_report.sql
APEX SCHEMA APEX VERSION APEX STATUS
------------------------------------------------ --------------- ---------------
APEX_210200 21.2.0 VALID
WORKSPACE NAME MIGRATED MODULES
--------------------------------------------------------------- -------- -------
APEX_WS_2 NO 6
APEX_WS_1 YES 1
- ords_manual_migrate_workspace.sql - Manually migrates a single APEX Workspace e.g.
@ords_manual_migrate_workspace.sql ~/logs/ APEX_WS_2
- ords_manual_migrate.sql - Manually migrates all APEX Workspaces e.g.
@ords_manual_migrate.sql ~/logs/
Removal of PDF Generation Support
As previously advised in the ORDS 18.4.0 Release Notes, the Apache FOP based functionality to produce PDF Reports from Oracle Application Express has been removed in this release.
This feature has also been removed from Oracle Application Express 19.2. Customers using older versions of Oracle Application Express are recommended to upgrade to newest version.
SQL Developer Web
SQL Developer Web is an ORDS hosted web application giving Oracle Database users an interface for executing queries and scripts, creating and altering database objects, building data models, accessing Performance Hub, and viewing database activity. Please consult the ORDS documentation library for instructions on how to enable this feature, which is disabled by default. Please access the SQL Developer Web documentation library for an overview of features and capabilities.
For consistent representation of date values in SQL Developer Web, ORDS should be run in the UTC timezone. This can be done as follows
java -Duser.timezone=UTC -jar ords.war standalone
The SDW user interface now uses a number of services from the ORDS Database API. Therefore the Database API must be enabled when using SQL Developer Web.
The SDW Scheduling feature requires database version 12.2 or higher.
Performance of REST APIs
Performance of ORDS based REST APIs was significantly improved in ORDS 19.3.0 by changing how ORDS handles proxied database connections. In ORDS 19.2.0
and earlier, for each HTTP request ORDS proxies from ORDS_PUBLIC_USER to the relevant ORDS enabled schema, performs the relevant database calls and then closes the proxy session.
We term this behavior 'disposing' a connection.
In ORDS 19.3.0 and later ORDS changes its default behavior to keep proxied connections in the pool, ameliorating away the cost of opening and closing the proxy sessions. This
gives a very substantial performance improvement. We term this behavior 'recycling' a connection.
Disabled REST schemas
Once a request is received for a REST enabled schema the mapping of the schema alias portion of the REST request path is cached to improve overall performance. Similarly the proxied database connection for that schema is cached to be reused for subsequent requests. When a previously enabled schema is subsequently disabled and connection pool recycling is in place then a limited number of requests will be processed for that disabled schema. The limit is dictated by the jdbc.MaxConnectionReuseCount setting. More specifically, the number of times a request will be processed for a disabled schema will be whatever reuse counts remain. This will always be less than the jdbc.MaxConnectionReuseCount value. In the event that there is a requirement to immediately stop processing requests for a disabled schema then revert to the old behavior of 'disposing' connections.
Reverting to Previous behavior
ORDS Administrators may revert to the old behavior of 'disposing' connections by performing the following command:
java -jar ords.war set-property jdbc.cleanup.mode dispose
To switch to recycling connections use:
java -jar ords.war set-property jdbc.cleanup.mode recycle
Managing Connection Re-use
To mitigate against database code that is leaking resources, ORDS has a configuration setting: jdbc.MaxConnectionReuseCount which controls how many times ORDS will use
a database session before terminating it (and releasing the leaked resources) and replacing it with a new database session. The default value for this setting is 1000. If you are experiencing database resource exhaustion you should:
- Determine the database code that is leaking resources, and fix the database code not to leak.
- If that is not feasible then reduce the value of
jdbc.MaxConnectionReuseCount in increments until a point is found where the database is no longer experiencing resource exhaustion.
Installer Behavior Using the install or setup Command
In ORDS 19.3.0, the installer does not automatically update the ORDS parameter file
(default ords parameter file or user-specified ords parameter file) when you use the following commands:
install command
java -jar ords.war
java -jar ords.war install <OPTIONS> simple
java -jar ords.war install <OPTIONS> advanced
setup command
java -jar ords.war setup <OPTIONS>
If you want the same behavior to update the ords parameter file, you will need to use the --saveParameters option.
Example:
java -jar ords.war install --parameterFile <PATH TO PARAMS>/ords_params.properties --saveParameters simple
java -jar ords.war install --parameterFile <PATH TO PARAMS>/ords_params.properties --saveParameters advanced
java -jar ords.war setup --parameterFile <PATH TO PARAMS>/ords_params.properties --saveParameters
Upgrading ORDS in the database
If you have previously executed script, ords_installer_privileges.sql, to grant your administrator user privileges to perform the install or upgrade,
then you must execute the script again on that same user that you provided because additional grants have been added to this script.
Note: This script does not apply to the SYS user account.
Supported Java Version
Oracle REST Data Services requires Java 8 or later. Java 7 is no longer supported. Please consult the documentation for the
minimum supported Application Server versions for ORDS.
In a future release the minimum required Java version will be Java 11. At that point, earlier versions will not be supported.
Changes in 21.4.3
The following changes have been made since 21.4.2:
Issues Fixed in 21.4.3
- Bug:34020594 - ORDS: Uptake Jackson 2.13.2 and Jackson Databind 2.13.2.2
- Bug:33837693 - ORDS: A second call to the same rest enabled procedure with date in parameter fails with unable to marshall date
Changes in 21.4.2
The following changes have been made since 21.4.1:
Issues Fixed in 21.4.2
- Bug:33502385 - ORDS: PL/SQL Gateway not accepting parameter names with special characters
New Features in 21.4.2
- Bug:33839193 - ORDS: Uptake SODA 1.1.10
- Bug:33871448 - ORDS: Uptake Rappid 3.4.1
- Bug:33915916 - ORDS: Jersey repackaged with Jackson 2.13.1
- Bug:32386554 - ORDS: Provide new scripts to report on non-migrated workspaces and to individually migrate them
- Bug:33488849 - ORDS: Check that ORDS can dispatch both /ords/r/... and /ords/{schema}/r/...
Changes in 21.4.1
The following changes have been made since 21.4.0:
Issues Fixed in 21.4.1
- Bug:33684760 - ORDS: OAuth token empty response in Database Actions
- Bug:33727577 - ORDS: PDB mapping not working. 404 + SQLException: ORA-01005
- Bug:33739947 - ORDS: Error trying to export a module with a handler's source bigger than 32kb
- Bug:33583853 - ORDS: Error using Windows path to TNS folder
Changes in 21.4.0
The following changes have been made since 21.3.2:
Issues Fixed in 21.4.0
- BUG:33138576 - Database Actions: Table properties dialog window cannot scrolldown
- BUG:33599211 - ORDS: Plugin examples not working in Getting Started guide
New Features in 21.4.0
- BUG:33535164 - ORDS: Uptake Jackson 2.13.0
- BUG:33535164 - ORDS: Uptake Jetty 9.4.44.v20210927
- BUG:33535164 - ORDS: Uptake Guava 31.0.1-jre
- BUG:33580638 - ORDS: Uptake AutoAV 20.1.3.41
- BUG:33132127 - ORDS: Schema level configuration
- BUG:33146922 - Database Actions: User Interface to job scheduler
- BUG:33271364 - Database Actions: APEX workspace management
- BUG:33651611 - ADP: Data Analysis in data tools
Changes in 21.3.2
The following changes have been made since 21.3.1:
Issues Fixed in 21.3.2
- BUG:33489973 - Database Actions: Public properties - Empty DIVS to DOM when response is empty
- BUG:33574935 - Database Actions: REST Workshop: REST called is failed when the module is accessed
- BUG:33406824 - Database Actions: Chart Tour/ Dashboard Tour is left even after the tour is over
- BUG:33498260 - ORDS: Update jdbc/ucp cumulative patch jars
Changes in 21.3.1
The following changes have been made since 21.3.0:
Issues Fixed in 21.3.1
- BUG:33278709 - Database Actions: The output of query results is with commas if the column type is number
New Features in 21.3.1
- BUG:33323698 - Database Actions: Add auto refresh to report component
- BUG:33408583 - Database Actions: Add customisable banner to all Sign In, OAuth and Database Actions pages
- BUG:33449736 - ADP: Update AutoAVGen to 20.3.1.39
Changes in 21.3.0
The following changes have been made since 21.2.4:
Issues Fixed in 21.3.0
- BUG:33103628 - Database Actions: Vertical scroll missing in chart definition in Firefox
- BUG:32917191 - ORDS: Instance API OpenAPI V3 document specifies incorrect path
- BUG:31892227 - ORDS: Swagger V2 representation of metadata catalog returns HTTP 200 for modules without a handler
New Features in 21.3.0
- BUG:33166641 - ADP: Use cards based statistics histogram
- BUG:33094472 - Database Actions: Data visualizations dashboard
- BUG:33136055 - ORDS: Database API Data Pump support for Oracle Cloud Object Storage
- BUG:32028571 - ORDS: Database API Data Pump available to non administrator database users
- BUG:32372554 - ORDS: Uptake UCP DRIVER (21.0.0.0-p32464841-p32376643-p33041374-p33199445)
- BUG:32372554 - ORDS: Uptake JDBC DRIVER (21.0.0.0-p32205381-p33094923)
- BUG:33297723 - ORDS: Uptake jakarta.json JSON-P 2.0.1 and Eclipse Parsson 1.0.0
- BUG:33307363 - ORDS: Upgrade to SODA 1.1.8
Changes in 21.2.4
The following changes have been made since 21.2.3:
Issues Fixed in 21.2.4
- BUG:33238570 - ORDS: Uptake Jetty 9.4.43.V20210629
- BUG:32983106 - Database Actions: Data load from cloud store folder with subfolders counts folders as loadable items
Changes in 21.2.3
The following changes have been made since 21.2.2:
Issues Fixed in 21.2.3
- BUG:33008285 - ORDS: SQL Export endpoint response Content-Type: application/json regardless of the format of response body
- BUG:33046417 - ORDS: Before showing the main result of script output button, two elapsed boxes are there
Changes in 21.2.2
The following changes have been made since 21.2.1:
Issues Fixed in 21.2.2
- BUG:32860938 - ADP: Performance improvement for designer content in Business Model landing page
- BUG:32860950 - ADP: Performance improvement for deployment state content in Business Model landing page
- BUG:32997903 - ADP: Performance improvement for Data Insights page
- BUG:33016115 - ADP: Live feed cloud store schema name is not required
- BUG:33093313 - ORDS: Colons in simplified JSON syntax is incorrectly interpreted as bind variables
- BUG:33101999 - ORDS: SQL Developer REST DATA SERVICES Administration view encountered 500 Internal Server Error on connection
- BUG:32981951 - ORDS: Uptake UCP DRIVER (21.0.0.0-p32464841-p32376643-p33041374)
Changes in 21.2.1
The following changes have been made since 21.2.0:
Issues Fixed in 21.2.1
- BUG:32988409 - Database Actions: Use correct username reference syntax for certain Database Actions/ADP services
Changes in 21.2.0
The following changes have been made since 21.1.3:
Issues Fixed in 21.2.0
- BUG:32817733 - ORDS: Too many parse errors database alert logs for PLSQL_GATEWAY_CONFIG query
- BUG:32703803 - Database Actions: Data loading to a different schema fails to create error logging table
- BUG:31843537 - Database Actions: SODA syntax errors
New Features in 21.2.0
- BUG:32935129 - ORDS: Metadata caching
- BUG:32826282 - ORDS: Uptake UCP DRIVER (21.0.0.0-P32464841-P32376643)
- BUG:33003755 - ORDS: Uptake Jetty 9.4.42.V20210604
- BUG:32216752 - ORDS: Improve REST Enabled SQL performance
- BUG:32924934 - Database Actions: Third Party Library updates - uptake Swagger UI 3.45.1
- BUG:32861901 - Database Actions: Data Visualizations - Charts
Changes in 21.1.3
The following changes have been made since 21.1.2:
Issues Fixed in 21.1.3
- BUG:32935381 - ORDS: Fix performance regression when checking patching status of APEX
Changes in 21.1.2
The following changes have been made since 21.1.1:
Issues Fixed in 21.1.2
- BUG:32884510 - ORDS: Fix automatic layout resizing in worksheet
Changes in 21.1.1
The following changes have been made since 21.1.0:
Issues Fixed in 21.1.1
- BUG:32631694 - ORDS: Unable to pass OBJECT TYPE variable when calling custom wrapper
- BUG:32704322 - APD: In Database Actions "Data Tools" cards are not visible
New Features in 21.1.1
- BUG:32794672 - ORDS: Uptake Jetty 9.4.40
Changes in 21.1.0
The following changes have been made since 20.4.3:
Issues Fixed in 21.1.0
- BUG:32498488 - ORDS: Only return one x-frame-options header for APEX static resources
- BUG:32471387 - ORDS: APEX workspace URL mapping cached even if schema subsequently REST-Enabled
- BUG:32228741 - ORDS: Improve performance of named bind statement parsing
- BUG:31614372 - ORDS: Open API JSON has uppercase response object property names
- BUG:30376686 - ORDS: Error response should be JSON when client sends Accept: appplcation/json header
- BUG:32112867 - SDW: Result Set out parameter missing from REST Workshop
New Features in 21.1.0
- BUG:32459808 - ORDS: Add DVSYS and PYQSYS schema packages to the default PL/SQL Gateway exclusion list
- BUG:32537360 - ORDS: Reject requests with Origin: null header
- BUG:32474210 - ORDS: Uptake 21.1 UCP patch 32464841
- BUG:32241814 - ORDS: Support Zip Archive (db.wallet.zip) which has only cwallet.sso
- BUG:32222145 - ORDS: Support pluggable database service name suffix when Oracle Connect Descriptor is used
- BUG:30560527 - ORDS: Support ICAP SSL/TLS connection
- BUG:32430092 - SDW: Third Party Library updates - uptake Dexie 3.0.3
- BUG:32430092 - SDW: Third Party Library updates - uptake AVSC 5.5.3
- BUG:32430092 - SDW: Third Party Library updates - uptake Monaco 0.22.1
- BUG:32483801 - SDW: Add autocomplete functionality to JSON QBE editor and document editor
- BUG:31902012 - SDW: Support Monaco colorizer in code viewer component
- BUG:31536036 - SDW: Allow User Management to work without access to ORDS metadata
Earlier versions
For information on Issues Fixed and New Features introduced for earlier versions please refer to the release notes for those versions.
Known Issues
Oracle Database may report 'ORA-01031: insufficient privileges' for queries that involve CURSOR expressions
In a number of cases, ORDS executes queries which include a CURSOR expression. An issue has been found executing these queries for
some schemas in Oracle 18c and Oracle 19c databases. Depending on the roles and privileges involved, the issue does not occur for all
schemas, which can give the impression that the issue is intermittent. Refer to RDBMS bug 29049673 for more information. The issue
is manifest as follows in the exception returned:
ORA-00604: error occurred at recursive SQL level 1
ORA-01031: insufficient privileges
This is a problem with view-merging of nested cursors introduced in Oracle 18.1 database. Please use the following as a workaround:
alter system set "_fix_control"='20648883:OFF';
Oracle Database DATE and TIMESTAMP values
ORDS interprets Oracle Database DATE and TIMESTAMP values (which do not possess a time zone) into the time zone of ORDS.
These values are then represented in the RFC3339 UTC format.
In a future release Oracle Database DATE and TIMESTAMP values will not by default be interpreted into any time zone.
These values will be represented in the ISO 8601 "yyyy-mm-ddThh:mm:ss[.sss]" format.
Oracle Database TIMESTAMP WITH TIME ZONE and TIMESTAMP WITH LOCAL TIME ZONE values will remain represented in the RFC3339 UTC format.
SQL Developer Web
- DATE, TIMESTAMP, TIMESTAMP WITH TIMEZONE values downloaded from the Worksheet Query Result in the JSON format are not presented in the Internet Datetime format.
- The Instance Viewer in SQL Developer Web does not render properly in IE 11. Please use Edge or another browser as a workaround.
SODA
JDK Support
- ORDS will run and is supported on JDK 9 however the only supported way to use ORDS on JDK 9 is by running it in standalone
mode, as currently neither Oracle
WebLogic
or
Glassfish
are certified for use with JDK 9, and ORDS has not yet been certified on Apache Tomcat on JDK 9.
-
From ORDS 18.1.0 and later you can launch ORDS on JDK 9 by just typing:
java -jar ords.war <command-name>
- The requirement in 17.4 to use the
--add-modules
java.xml.bind command line argument has been eliminated
-
From JDK 11 Nashorn is deprecated and a warning will be displayed. To disable this warning use the following JVM property
-Dnashorn.args=--no-deprecation-warning
TNS Connections
When using a TNS connection type the JDBC driver needs to know the location of the folder containing tnsnames.ora.
To configure this when running ORDS in standalone mode do:
java -Doracle.net.tns_admin=$ORACLE_HOME/network/admin -jar ords.war
(where $ORACLE_HOME points to the folder where Oracle Database/Oracle Instant Client is installed)
If using Tomcat or WebLogic, then the startup script used to start the app
server would need to be modified to pass the
-Doracle.net.tns_admin=$ORACLE_HOME/network/admin argument to the java
command that starts Tomcat/WebLogic
JDBC Array values
ORDS passes array values to the Oracle Database in a number of cases, for example arrays are used to pass the request headers and form fields during PL/SQL Gateway calls.
Oracle JDBC Driver 18.3 and later supports an improved mechanism for passing array values, however this feature is only supported on Oracle Database 12c and later. Thus
ORDS uses existing deprecated and less efficient APIs for passing array values when connecting to 11G databases, and the improved mechanism when connected to 12c and later. Customers
experiencing problems with passing large array sets (for example OutOfMemory exceptions) are encouraged to upgrade from 11G to a newer database version to mitigate
these issues.
Autogenerated REST Endpoints
- AutoRest resources support the OAuth 2.0 Client Credentials flow only.
RESTful Services
- Application Express workspaces do not support first party authentication, and therefore do not support the
/sign-in/ interactive sign in form. Accessing
/sign-in/ in APEX workspaces will produce a 404 status.
Support For mod_plsql logmeoff
- The mod_plsql logmeoff mechanism is not supported reliably by modern browsers and it is not provided by ORDS.
The only way to end a HTTP Basic Authentication session is to close the Browser.
Starting Standalone Mode when connected to CDB
The typical manner to start ORDS in standalone mode, once ORDS has been configured is:
java -jar ords.war
ORDS will detect that it is fully configured and proceed to launching standalone mode. Since 18.2
the ORDS_METADATA schema is not installed in the CDB, which means that when the default pool
is connected to a CDB there is no way for ORDS to automatically verify the version of the ORDS schema installed in the database,
thus ORDS prompts for the SYS AS SYSDBA password so it can connect to each PDB and verify the ORDS version
installed in each PDB. This means that when connected to a CDB the above command is not sufficient to start standalone
mode automatically. To work around this issue, use the following command to start ORDS (only after the ORDS instance has been configured) in standalone mode automatically:
java -jar ords.war standalone
Support for apex.docTable
- apex.docTable (now depreciated) and owa.docTable should not be used for APEX 4.x and above as APEX provides its own document table.