Overview

This article will get you started with installing and configuring ORDS 3.0.0 and later. It should take less than 5 minutes to complete.

Download Oracle REST Data Services

You can download the Oracle REST Data Services (ORDS) distribution from Oracle Technology Network (OTN) by clicking this link.

Unzip the distribution

Unzip the file you just downloaded to a folder of your choosing. The name of the file will change depending on what the latest released version of ORDS is. It will start with ords, followed by a version number and end with .zip.

mkdir ~/ords
unzip ords.3.0.1.176.03.18.zip -d ~/ords

Run the installer

Change to the folder where you unzipped the distribution and launch ORDS. It will automatically run the installer if necessary.

cd ~/ords
java -jar ords.war

The following output should be displayed:

This Oracle REST Data Services instance has not yet been configured.
Please complete the following prompts

Complete all the prompts to connect to your database, and you are done!

Frequently asked questions

What’s the ORDS_PUBLIC_USER for?

ORDS_PUBLIC_USER is the database user that ORDS uses to communicate with the database. The ORDS_PUBLIC_USER user is created during the first run of the installer.

Do I want to use the PL/SQL Gateway?

The PL/SQL Gateway provides a means for stored PL/SQL procedures to be invoked via HTTP.

  • If you use Oracle Application Express (APEX), then the answer is yes, the PL/SQL Gateway manages the communication between APEX and HTTP.
  • If you use Oracle Web Agent (OWA) stored procedures, or if you are migrating from mod_plsql, then the answer is yes.
  • If you don’t use either of the above and you just want to expose data in your Oracle database via REST, then the answer is no.

What’s APEX_PUBLIC_USER for?

  • If you use the PL/SQL Gateway, then APEX_PUBLIC_USER is the database user that ORDS uses to communicate with the database.
  • Note that ORDS does not create the APEX_PUBLIC_USER user, this user is created as part of the Application Express install process.

What’s APEX_LISTENER and APEX_REST_PUBLIC_USER for?

  • If you’ve created RESTful Services using APEX 4.2.0+ (or using ORDS 2.0.x and SQL Developer), then you need to configure both these users.
  • If you haven’t used RESTful Services before or don’t intend to (you just want to use the PL/SQL Gateway), then you should not configure these users.
  • Note that ORDS does not create either of these users, they are created as a party of the Application Express install process.

What’s Standalone Mode?

Standalone Mode is a way to run ORDS without needing an application server like Oracle WebLogic or Apache Tomcat. It’s a quick and handy way to get ORDS up and running, but it’s not supported for use in production, you’ll need to deploy ORDS to a supported Application Server when it comes time to go production.

Advanced Mode

By default the installer runs in ‘simple’ mode. This mode is optimized to ask you the least amount of questions and get ORDS up and running as simply as possible. If you need it, there is also an ‘advanced’ mode that has more prompts and will help you configure more advanced deployments.

You can read all about it in the Installation Guide

Read the Install Guide

Want more information? Read the Installation Guide by clicking here.

Installation Example

Here’s an example of completing all prompts in the installation process:

$ java -jar ords.war
This Oracle REST Data Services instance has not yet been configured.
Please complete the following prompts

Enter the location to store configuration data:/Users/cdivilly/ords/confs
Enter the name of the database server [localhost]:
Enter the database listen port [1521]:
Enter 1 to specify the database service name, or 2 to specify the database SID [1]:
Enter the database service name:orcl
Enter the database password for ORDS_PUBLIC_USER:
Confirm password:

Please login with SYSDBA privileges to verify Oracle REST Data Services schema. Installation may be required.


Enter the username with SYSDBA privileges to verify the installation [SYS]:
Enter the database password for SYS:
Confirm password:
Mar 11, 2015 2:30:31 PM oracle.dbtools.rt.config.setup.SchemaSetup addSchemaParams
INFO:
Oracle REST Data Services schema does not exist and will be created.


Enter 1 if you want to use PL/SQL Gateway or 2 to skip this step [1]:1
Enter the database password for APEX_PUBLIC_USER:
Confirm password:
Enter 1 to specify passwords for Application Express RESTful Services database users (APEX_LISTENER, APEX_REST_PUBLIC_USER) or 2 to skip this step [1]:1
Enter the database password for APEX_LISTENER:
Confirm password:
Enter the database password for APEX_REST_PUBLIC_USER:
Confirm password:
Mar 11, 2015 2:30:58 PM oracle.dbtools.common.config.file.ConfigurationFilesBase update
INFO: Updated configurations: defaults, apex_pu, apex, apex_al, apex_rt
Mar 11, 2015 2:30:58 PM oracle.dbtools.installer.Installer installORDS
INFO:
Installing Oracle REST Data Services version 3.0.0.65.09.31
... Log file written to /Users/cdivilly/ords/logs/ordsinstall_2015-03-11_143058_00465.log
... Verified database prerequisites
... Created Oracle REST Data Services schema
... Granted privileges to Oracle REST Data Services
... Created Oracle REST Data Services database objects
... Created Oracle REST Data Services proxy user
Mar 11, 2015 2:31:09 PM oracle.dbtools.installer.Installer installORDS
INFO: Completed installation for Oracle REST Data Services version 3.0.0.65.09.31. Elapsed time: 00:00:10.899

Enter 1 if you wish to start in standalone mode or 2 to exit [1]:1
Enter the APEX static resources location:/Users/cdivilly/work/apex/4.2.4/images
2015-03-11 14:31:37.643:INFO::main: Logging initialized @106799ms
2015-03-11 14:31:38.492:INFO:oejs.Server:main: jetty-9.2.z-SNAPSHOT
2015-03-11 14:31:38.504:INFO:oejsh.ContextHandler:main: Started o.e.j.s.h.ContextHandler@36574ac1{/i,null,AVAILABLE}
Mar 11, 2015 2:31:39 PM oracle.dbtools.auth.crypto.CryptoKeysGenerator startup
INFO: No encryption key found in configuration, generating key
Mar 11, 2015 2:31:39 PM oracle.dbtools.auth.crypto.CryptoKeysGenerator startup
INFO: No mac key found in configuration, generating key
Mar 11, 2015 2:31:39 PM oracle.dbtools.common.config.file.ConfigurationFilesBase update
INFO: Updated configurations: defaults, apex, apex_al, apex_pu, apex_rt
Mar 11, 2015 2:31:39 PM oracle.dbtools.auth.crypto.CryptoKeysGenerator startup
INFO: Updated configuration with generated keys
Mar 11, 2015 2:31:39 PM oracle.json.ords.SodaShared startup
INFO: Starting up ORDS JSON service
2015-03-11 14:31:39.220:INFO:/ords:main: INFO: Using configuration folder: /Users/cdivilly/ords/confs/ords
2015-03-11 14:31:39.220:INFO:/ords:main: FINEST: |ApplicationContext [configurationFolder=/Users/cdivilly/ords/confs/ords, services=Application Scope]|
Mar 11, 2015 2:31:39 PM oracle.dbtools.common.config.db.DatabasePools validatePool
INFO: Validating pool: apex
Mar 11, 2015 2:31:39 PM oracle.dbtools.common.config.db.DatabasePools validatePool
INFO: Pool: apex is correctly configured
Mar 11, 2015 2:31:39 PM oracle.dbtools.common.config.db.DatabasePools validatePool
INFO: Validating pool: apex_al
Mar 11, 2015 2:31:39 PM oracle.dbtools.common.config.db.DatabasePools validatePool
INFO: Pool: apex_al is correctly configured
Mar 11, 2015 2:31:39 PM oracle.dbtools.common.config.db.DatabasePools validatePool
INFO: Validating pool: apex_pu
Mar 11, 2015 2:31:39 PM oracle.dbtools.common.config.db.DatabasePools validatePool
INFO: Pool: apex_pu is correctly configured
Mar 11, 2015 2:31:39 PM oracle.dbtools.common.config.db.DatabasePools validatePool
INFO: Validating pool: apex_rt
Mar 11, 2015 2:31:39 PM oracle.dbtools.common.config.db.DatabasePools validatePool
INFO: Pool: apex_rt is correctly configured
2015-03-11 14:31:39.894:INFO:/ords:main: INFO: Oracle REST Data Services initialized|Oracle REST Data Services version : 3.0.0.65.09.31|Oracle REST Data Services server info: jetty/9.2.z-SNAPSHOT|
2015-03-11 14:31:39.895:INFO:oejsh.ContextHandler:main: Started o.e.j.s.ServletContextHandler@398f600{/ords,null,AVAILABLE}
2015-03-11 14:31:39.914:INFO:oejs.ServerConnector:main: Started ServerConnector@34766cda{HTTP/1.1}{0.0.0.0:8080}
2015-03-11 14:31:39.915:INFO:oejs.Server:main: Started @109074ms