This post is part of my Oracle Developer VM Project series. It is not meant to replace the official documentation in any way and what I describe is no recommended configuration. It is only meant to be a guide, if you follow my DB Developer VM Project and want to add these services to your VM.
Part 1: Install ApexDownload the Apex install bundle and unzip it (eg. to /u01), which creates an apex folder. In the unpacked folder run the installer
sqlplus sys/your_password@freepdb1 as sysdba @apexins sysaux sysaux temp /i/
Leave the session open and create the Apex Admin user by running @apxchpwd.sql.
Unlock the APEX_PUBLIC_USER and change his password, which has been randomly set at installation
alter user apex_public_user identified by oracle account unlock;
Still in the same session, run @apex_rest_config.sql and set both passwords for the APEX_LISTENER user and the APEX_REST_PUBLIC_USER user.
To use web services and for sending email, network services need to be enabled. Copy the following from the documentation and run it:
1 2 3 4 5 6 7 | BEGIN DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE( host => '*', ace => xs$ace_type(privilege_list => xs$name_list('connect'), principal_name => 'APEX_230100', principal_type => xs_acl.ptype_db)); END; |
Part 2: Install ORDS
First, we need to make some settings. Add the following to .bashrc and source it.
export _JAVA_OPTIONS="-Xms3000M -Xmx3000M" export ORDS_CONFIG=/u01/ords-config export ORDS_HOME=/u01/ords-23-1 export PATH=$ORDS_HOME/bin:$PATH
mkdir /u01/ords-23-1 mkdir /u01/ords-config
Download the latest ORDS from https://download.oracle.com/otn_software/java/ords/ords-latest.zip and unzip the contents to your target directory (eg. /u01/). Optional rename the ords directory from the archive and add the ORDS version number, eg. ords-23-1 (and reflect that in the $ORDS_HOME variable in .bashrc). This makes it easier to switch versions when neccesary.
As $PATH and $ORDS_CONFIG are already set, from anywhere run
ords install --interactive
ORDS will ask for some configuration parameters. In most cases, you can just accept the defaults.
If you have followed my guide so far, the only parameters, that need to be set, are:
- Enter the database service name [orcl]: freepdb1
- Provide database username with administrator privileges: sys (and your password)
- Enter the APEX static resources location: /u01/apex/images/
After the setup, ORDS will keep running in standalone mode. We are not done yet, but give it a try to check if everything went fine so far. Wait until the ORDS has completely started:
Open Firefox and enter http://localhost:8080/ords, that should give you the Apex login page (as this is the first call, it will take a few seconds).
Looking at the ORDS terminal window, you will see the following warnings:
Go to /u01/ords-config/global/ and edit settings.xml. Add the following lines before the closing </properties>:
<entry key="jdbc.MaxLimit">30</entry> <entry key="jdbc.InitialLimit">10</entry>
I also got the following error:
INFO Disabling document root because the specified folder does not exist: /u01/ords-config/global/doc_root
To get rid of this INFO either create that directory or edit /u01/ords-config/global/settings.xml and set standalone.doc.root to an existing folder.
Sometimes I ran into errors were all like WARNING The pool named: |apex|al| is invalid and will be ignored: The username or password for the connection pool named |apex|al|, are invalid, expired, or the account is locked
Probably I messed up my passwords when running the installer. This can be fixed by setting the passwords for the following users (and unlocking them, just in case):
1 2 3 4 5 6 7 8 | alter user ORDS_PUBLIC_USER account unlock; alter user APEX_PUBLIC_USER account unlock; alter user APEX_LISTENER account unlock; alter user APEX_REST_PUBLIC_USER account unlock; alter user ORDS_PUBLIC_USER identified by oracle; alter user APEX_PUBLIC_USER identified by oracle; alter user APEX_LISTENER identified by oracle; alter user APEX_REST_PUBLIC_USER identified by oracle; |
Now ORDS should come up without errors.
Just to double check that everything is there, call http://localhost:8080/ords/sql-developer