### Oracle REST Data Services on oracle.com

## Support

- You are supported by Oracle Support under your current Oracle Database Support license for Oracle REST Data Services production releases .

- Log Oracle REST Data Services bugs and issues using My Oracle Support.

  - For problems specific to SODA for REST, file a service request using "Oracle XML Developers Kit" as the product.
  - For all other problems, use "Oracle REST Data Services" as the product.

### 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

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

## Changes in 20.4.5

The following changes have been made since 20.4.4:

### Issues Fixed in 20.4.5

- BUG:32625348 - ADB-D: ORDS Landing page fails to load

### New Features in 20.4.5

- BUG:32508470 - ORDS: Uptake guava 30.1
- BUG:32508470 - ORDS: Uptake jackson 2.12.1
- BUG:32675228 - ORDS: Uptake jetty 9.4.38

## Changes in 20.4.4

The following changes have been made since 20.4.3:

### Issues Fixed in 20.4.4

- BUG:32539296 - ADP: Create live feed fails on public bucket
- BUB:32550007 - ADP: Missing scrollbar on the explore navigator

### New Features in 20.4.4

- ENH:32499052 - SDW: Create and edit database user and storage

## Changes in 20.4.3

The following changes have been made since 20.4.2:

### Issues Fixed in 20.4.3

- BUG:32440646 - ORDS: Too high CPU resources consumed by ORDS tabular resources metadata query
- BUG 31405764 - ORDS: Support FIPS wallet
- BUG:32433178 - SDW: Aggressive formatting disrupts editing in JSON editor
- BUG:32284779 - ADP: Error message changed from ORA-00972 to ORA-00942 when trying to use col name longer than max length
- BUG:32103129 - ADP: Incomplete error message when a field is mapped to more than one column
- BUG:32316309 - ADP: Validation prevents user from existing settings panel when toggling between create and insert options
- BUG:32283409 - ADP: Add support for refreshing cloud storage objects

### New Features in 20.4.3

- BUG:32434776 - ORDS: Uptake AnalysisJDBC 20.3.1.6
- BUG:32203068 - ORDS: Uptake oraclepki 21.0.0.0_322030686

## Changes in 20.4.2

The following changes have been made since 20.4.1:

### New Features in 20.4.2

- BUG:32386404 - ADP: Implemented Data Access support for CloudStore

## Changes in 20.4.1

The following changes have been made since 20.3.1:

### Issues Fixed in 20.4.1

- BUG:32047436 - ORDS: Installer default tablespace for ORDS_PUBLIC_USER changed from USERS to SYSAUX
- BUG:31420573 - ORDS: Open proxy connection session for dedicated PL/SQL Gateway database account
- BUG:30594550 - ORDS: ServiceConfigurationError reported in Oracle WebLogic Server for coherence
- BUG:29909257 - ORDS: Support parameter names with hyphens

### New Features in 20.4.1

- BUG:32145266 - ORDS: Uptake 21.1 JDBC jars
- BUG:32298189 - ORDS: Support 21.1 database JSON data type
- BUG:32299236 - ORDS: Uptake AnalysisJDBC 20.3.1.5
- BUG:32124540 - ORDS: Uptake Guava 30.0-jre
- BUG:32124540 - ORDS: Uptake Jackson 2.11.3
- BUG:32124540 - ORDS: Uptake Jetty 9.4.35
- BUG:32061299 - ORDS: Upgrade to SODA 1.1.6
- BUG:32136483 - ORDS: Support Oracle WebLogic Server 14c
- BUG:31984526 - ORDS: Support JSON error responses
- BUG:31883509 - ORDS: Support trusted origins for PL/SQL Gateway calls
- BUG:31423488 - ORDS: Check for duplicate resource definitions in plugins
- BUG:32100885 - SDW: Extending cookie sessions for active users
- BUG:32200996 - SDW: Quick navigation from query by example page to SQL Worksheet
- BUG:32132341 - SDW: Third Party Library updates - uptake Dexie 3.0.2
- BUG:32132341 - SDW: Third Party Library updates - uptake CodeMirror 5.58.2
- BUG:32132341 - SDW: Third Party Library updates - uptake AVSC 5.5.2
- BUG:32132341 - SDW: Third Party Library updates - uptake babel-polyfill 7.12.1
- BUG:32132341 - SDW: Third Party Library updates - uptake regenerator-runtime 0.13.7
- BUG:32132341 - SDW: Third Party Library updates - uptake js-xlsx 0.16.8
- BUG:31879078 - SDW: REST Workshop - integration with cURL
- BUG:32065000 - SDW: REST Workshop - AutoREST support

## Changes in 20.3.1

The following changes have been made since 20.3.0:

### Issues Fixed in 20.3.1

- BUG:32143021 - SDW: Explain plan not working on multiple lines

## Changes in 20.3.0

The following changes have been made since 20.2.3:

### Issues Fixed in 20.3.0

- BUG:31725735 - SDW: Active SQL is not loading in sessions page
- BUG:31716468 - SDW: Untranslated strings on Database Actions page
- BUG:31680705 - DB-API: Pluggable Database Lifecycle Management parameter validation and syntax errors
- BUG:31630534 - SDW: Unicode characters corrupted in CSV import
- BUG:31517077 - SDW: Explain plan not shown correctly for 11.2.0.4.0 versions of database
- BUG:31513457 - SDW: Import failure for binary float and binary double types
- BUG:27252532 - PL/SQL Gateway: ArithmeticException during upload of files greater than 1 Gb
- BUG:31872141 - ORDS Logging not leveraging JDK logging

### New Features in 20.3.0

- BUG:31860976 - SDW: JSON Collection
- BUG:31680101 - DB-API: Open Service Broker implementation for Pluggable Database create and clone operations
- BUG:31408188 - SDW: REST Workshop
- BUG:31888902 - Upgrade SODA jars in ORDS to 1.1.5, and add support for debug.printDebugToScreen in SODA
- ENH:31677304 - Upgrade ORDS to JET version 8.3.2

## Changes in 20.2.3

The following changes have been made since 20.2.2:

### New Features in 20.2.3

- BUG:31818989 - Batch Load errorsMax setting is now a set through ORDS configuration db.batchload.errorsMax. Defaults to 100. To permit no errors at all, set db.batchload.errorsMax=0. To indicate unlimited errorsMax, set db.batchload.errorsMax=-1.
- BUG:31811804 - Limit the size of PL/SQL Gateway procedure cache.

## Changes in 20.2.2

The following changes have been made since 20.2.0:

### Issues Fixed in 20.2.2

- BUG:31774867 - Unable to validate ORDS in Application Container root after upgrade
- BUG:31783282 - ORDS.EXECUTE_SCHEMA causes an issue for using Application Container common user in Application Container PDB

## Changes in 20.2.0

The following changes and enhancements have been made since 20.1.0:

### Issues Fixed in 20.2.0

- BUG:31510845 - Uptake JDBC Patch 31223382 - NullPointerException from javanet while closing proxy
- BUG:31510845 - Uptake JDBC Patch 31035916 - Label callback to set schema not replayed
- BUG:31510845 - Uptake UCP Patch 31214119 - UCP throws IllegalArgumentException: Non existent or Unknown service name after switchover
- BUG:31510845 - Uptake UCP Patch 29470059 - OutOfMemoryError occurs when using UCP with DRCP
- BUG:31513427 - Uptake long javascript library 4.0.1
- BUG:31345898 - Uptake babel-polyfill 7.8.7
- BUG:31282991 - Uptake jQuery 3.5.0
- BUG:31245974 - Uptake Guava 29.0
- BUG:31245974 - Uptake Jackson Annotations, Core, Databind, Dataformat-XML and JacksonJr 2.10.3
- BUG:31245974 - Uptake Javassist 3.27
- BUG:31492479 - Installer: Cannot revoke EXECUTE on SYS.DBMS_LOB from ORDS_PUBLIC_USER error executing upg_ords_object_grants.sql
- BUG:31222429 - PL/SQL Gateway should trim leading and trailing whitespace in header values
- BUG:31380524 - PL/SQL Gateway may duplicate some HTTP headers
- BUG:31139876 - PL/SQL Gateway order of parameters in flexibale parameter passing is incorrect
- BUG:30954351 - SDW Pivot columns not rendered in correct order on grid
- BUG:30907038 - POST on autorest table with composite key returns HTTP 404 response
- BUG:30563861 - Database alert log shows failed queries on apex_release view when APEX not installed

### New Features in 20.2.0

- BUG:31288207 - SDW new landing page
- BUG:31206975 - REST Enabled SQL returns Database Product and Version information on GET request
- BUG:31038993 - Install/Upgrade ORDS in Database Application Container
- BUG:31014036 - SDW Worksheet provides an option to change Oracle Cloud services consumer group

## Changes in 20.1.0

The following changes and enhancements have been made since 19.4.5:

### Issues Fixed in 20.1.0

- BUG:30780668 - Uptake Jetty 9.4.26
- BUG:30738801 - Uptake Guava 28.2
- BUG:30738787 - Uptake Jackson Annotations and Jackson Databind 2.10.2
- BUG:30956765 - Uptake SODA 1.1.3
- BUG:30453563 - Install does not abort on Insufficient Privileges error
- BUG:30563957 - Autorest generated Swagger V2 metadata inconsistencies in property name case
- BUG:30680803 - SDW Data load should initiate statistics gathering
- BUG:30783704 - SDW Navigator only shows the first 500 schemas in the database
- BUG:30896527 - SDW Tour panels overlap on top of dialgs

### New Features in 20.1.0

- BUG:30870100 - SDW: Instance Viewer
- BUG:30833461 - SDW: DB-API Migration - Activity > Storage
- BUG:30833461 - SDW: DB-API Migration - Activity > Top SQL
- BUG:30793935 - SDW: Data load support for XML
- BUG:30793932 - SDW: Data load support for AVRO/JSON
- BUG:30771163 - DB-API: Open Service Broker implementation
- BUG:30466625 - DB-API: APEX Administration REST services
- BUG:30868781 - DB-API: RESTful data services derived from SQL Developer Reports

## Changes in 19.4.6

The following changes and enhancements have been made since 19.4.0:

### Issues Fixed in 19.4.6

- BUG 31222530 - Head Request Failing
- BUG:30739384 - Fix 500 Internal Server Error: No Provider Found Error
- BUG 30977063 - OutOfMemoryError For APEX static resources
- BUG 30787873 - ORDS More Resilient to APEX repository issues
- BUG 31078569 - Better error message required when ORDS does not have access to ORDS_METADATA objects
- BUG 30739384 - Content Clone uses JAXP Clone with the same source document - Exception in threads
- BUG 31381258 - PL/SQL Gateway requests can leak Connections

### New Features in 19.4.6

- BUG 30661389 - Report errors in user defined resources as status 555
- BUG 30957867 - Implement feature to support alternative runtime user (ORDS_PUBLIC_USER)

## Changes in 19.4.0

The following changes and enhancements have been made since 19.3.0:

### Issues Fixed in 19.4.0

- BUG:30656342 - Remove Apache FOP Support
- BUG:30589833 - Uptake Javassist 3.26.0-GA
- BUG:30589826 - Uptake Jetty 9.4.24
- BUG:30589815 - Uptake Guava 28.1
- BUG:30589806 - Uptake Apache XML Graphics Commons 2.4
- BUG:30589782 - Uptake Jackson Annotations and Jackson Databind 2.10.1
- BUG:30574360 - StackOverflowError possible when db.invalidpooltimeout property is less than zero
- BUG:30516590 - ORDS Standalone parameter to have Jetty bind to specific addresses
- BUG:30514855 - SDW does not have a help page for Create Synonym dialog
- BUG:30443935 - SDW 'move up' and 'move down' buttons have no effect in create table panel
- BUG:30430085 - Starting ORDS Standalone prompts for APEX static images location even after saying 'NO' to APEX during install
- BUG:30376626 - SDW Worksheet does not display execution time
- BUG:30691478 - UniversalConnectionPoolException is not recovered from
- BUG:28487031 - ORDS metadata catalog does not generate valid Swagger V2 API document
- BUG:26326540 - SDW Worksheet does not prompt for a variable value when one is defined in a script
- BUG:22472978 - Filter query does not support IN for comparison of an attribute with a list of values

### New Features in 19.4.0

- BUG:30265178 - SDW: Data load to a new table
- BUG:30419710 - SDW: Activity now includes a logins section
- BUG:30429500 - SDW: Create and REST Enable users

## Changes in 19.3.0

The following changes and enhancements have been made since 19.2.0

### Issues Fixed in 19.3.0

- BUG:30494480 - CDB-PDB migration reports ORA-00600 error when upgrading the common ORDS_METADATA schema
- BUG:30505126 - CDB-PDB migration reports ORA-20148 error when upgrading releases earlier than 3.0.6
- BUG:30294697 - Make static HTTP resources in ords.war cacheable
- BUG:30288094 - Uptake JDBC Patch 30269428: Add Oracle binary JSON format support to SODA
- BUG:30287115 - Uptake UCP Patch 30076604: Labelling Callback being passed invalid connection
- BUG:30287001 - Uptake JDBC Patch 29010517 - Parameter missing when too many parameters are submitted
- BUG:30238917 - Improve performance of dispatching requests
- BUG:30215276 - Include timestamp and ECID in error page
- BUG:30193380 - Uptake Javassist 3.25.0-GA
- BUG:30193375 - Uptake Jetty 9.4.20
- BUG:30193361 - Uptake Guava 28.0
- BUG:30193344 - Uptake Batik 1.11
- BUG:30193331 - Uptake PDFBox 2.0.16
- BUG:30193314 - Uptake Jackson Databind 2.9.9.3
- BUG:30095934 - Provide `/ords/sql-developer` landing page
- BUG:29844552 - Provide option to keep connection proxied when returned to pool
- BUG:29772200 - Address issue with upgrading ORDS configurations that use TNS connection
- BUG:29693492 - Provide installer option to use TNS connection
- BUG:26809645 - Handle overflow of offset and limit query parameter
- BUG:30072487 - Do not assume non Oracle Database when using db.customURL
- BUG:30062366 - Pools defined with a Custom URL cause 404 response

### New Features in 19.3.0

- BUG:30282368 - Incorporate SQL Developer Web into Oracle REST Data Services

## Changes in 19.2.0

The following changes and enhancements have been made since 19.1.0:

### Issues Fixed in 19.2.0

- BUG:29884541 - Force newline characters in `Error-Reason` headers to be replaced by space characters to avoid error on WebLogic
- BUG:29942773 - Force use of `APEX_PUBLIC_USER` when dispatching APEX Static Resources service
- BUG:24941023 - Handle pound character in URL path values
- BUG:28871609 - Improve Open-API documentation for date time fields
- BUG:29028746 - Dispatch APEX static resources using built in ORDS service
- BUG:29422705 - Enumerate exact set of OWA packages that access is restricted to
- BUG:29536670 - Uptake Oracle JDBC Driver PSE 29010517 to address loss of data in PL/SQL Gateway calls
- BUG:29550323 - The root cause for this issue was addressed by uptaking 19.3.0 Oracle JDBC Drivers, see BUG:29803162
- BUG:29642673 - Fix problem with output being truncated for multi-byte characters in PL/SQL Gateway responses
- BUG:29693752 - Fix problem with detection of SQL Administrator role on 12+ non container database
- BUG:29809280 - Make installer more resilient to error conditions in customer database
- BUG:29843652 - Improve performance of built in Java based REST endpoints
- BUG:29719737 - Fix problem with detection of APEX when APEX is installed in a CDB using Application Containers
- BUG:29711406 - Fix problem with ICAP integration in some environments
- BUG:29803162 - Uptake Oracle JDBC Drivers 19.3.0
- BUG:29617151 - Uptake Eclipse Jetty 9.4.18
- BUG:29778333 - Uptake PDFBox 2.0.15
- BUG:29872040 - Uptake Jackson 2.9.9
- BUG:29615441 - Uptake Guava 27.1
- BUG:29191117 - Uptake Javassist 3.24.1-GA

### New Features in 19.2.0

- BUG:29778399 - Provide script to provision a database user to be able to install ORDS database schema
- BUG:29629522 - Propagate authenticated user to database as `SYS_CONTEXT('USER_ENV','CLIENT_IDENTIFIER')`

## Changes in 19.1.0

The following changes and enhancements have been made since 18.4.0:

### Issues Fixed in 19.1.0

- BUG:29544918 - Fix problem with Standalone Mode producing WARN level messages during startup
- BUG:29532796 - Fix problem with WebLogic raising 'Cannot contain CRLF Charcters' (sic) error
- BUG:29524572 - Remove Apache Avalon third party dependency
- BUG:29193867 - Fix problem with invocation of ORDS_ADMIN.DEFINE_SERVICE and ORDS_ADMIN.DEFINE_HANDLER APIs
- BUG:29290410 - Add DOC_SIZE, DAD_CHARSET and CONTENT_TYPE to file upload in document table
- BUG:29303722 - Improve how string arrays are transferred from ORDS to the database on 12C and later
- BUG:29210421 - ORDS corrupting timestamps of ords.war contents when running configdir command
- BUG:29197220 - Dispatch PL/SQL Gateway calls via ORDS_PUBLIC_USER to minimize number of pools required
- BUG:29191117 - Uptake Javassist 3.24.1-GA
- BUG:29191097 - Uptake Eclipse Jetty 9.4.14
- BUG:29191084 - Uptake Google Guava 27.0.1
- BUG:29190987 - Uptake Jackson 2.9.8
- BUG:29190934 - Uptake Apache Commons File Upload 1.4
- BUG:29190890 - Uptake Apache PDFBox 2.0.13
- BUG:29128000 - Connect to database using Wallet Zip archive as found Oracle Database Cloud ATP/ADW environments
- BUG:28570782 - Improve integration with McAfee ICAP Server
- BUG:27639517 - Provide mechanism to enable Plugin servlets function as an administrative database user

### New Features in 19.1.0

- ENH:29303772 - Enable ORDS to install in a PDB without requiring SYS user or SYSDBA role

## Changes in 18.4.0

The following changes and enhancements have been made since 18.3.0:

### Issues Fixed in 18.4.0

- BUG:29053557 - Determine administrative database users based on granted database role
- BUG:29049176 - Show 403 Forbidden status when REST Service fails due to database user lacking privilege to access objects referenced in the SQL statement
- BUG:28520359 - Show Oracle Logo in UI
- BUG:29011184 - Suppress unsupported and undocumented `X-DB-Content-Length` response header produced by OWA
- BUG:28877175 - Fix resolution of `url-mapping.xml` based mapping that uses `--workspace-id`
- BUG:28997641 - Gracefully cope with database password rotation
- BUG:28964132 - ORDS installer won't accept passwords more than 28 bytes long
- BUG:28808094 - Uptake Apache Commons Logging 1.2
- BUG:28787846 - Uptake Apache PDFBox 2.0.12
- BUG:28719460 - Uptake Javassist 3.23.1-GA
- BUG:28719440 - Uptake Jetty 9.4.12
- BUG:28719424 - Uptake Jackson 2.9.7
- BUG:28561298 - Address problem with upgrading from ORDS 17.4.1
- BUG:28518849 - Fix problem with OAuth token lifetimes not being calculated correctly
- BUG:28466581 - Fix 500 Error status on open-api-catalog resources
- BUG:27992525 - Fix access to metadata-catalog when no authorization required
- BUG:27933884 - Fix parsing of Resource Handler content to recognize parameters more precisely
- BUG:27808357 - Enhance performance of AutoREST tables/views

### New Features in 18.4.0

- ENH:23666046 - Make `security.requestValidationFunction` setting configurable per database pool
- ENH:28028432 - Echo p_comments value into generated Swagger documentation

## 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

- None

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