Oracle

 1# Oracle as System Database
 2# [engineDir]/configuration/ivy.yaml
 3SystemDb:
 4
 5  # using oracle service name
 6  Url: jdbc:oracle:thin:@//localhost:1521/ServiceName
 7
 8  # using oracle service id
 9  Url: jdbc:oracle:thin:@localhost:1521:ServiceId
10
11  # using oracle tns
12  Url: jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ServiceName)(SERVER=DEDICATED)))
13
14  UserName: root
15  Password: 1234

If database will be created by the Axon Ivy Engine the collate is set to Latin1_General_CI_AI.

Tip

On all (reused) oracle database connections the maximum number of open cursors is set to 1000, independently from the default setting that may be set on the database itself. Those cursors are needed to cache all prepared statements and also for PL/SQL blocks.

It may turn out that the number of open cursors is exceeded, which is indicated by an error message similar to the following:

ch.ivyteam.ivy.persistence.PersistencyException: java.sql.SQLException:
ORA-00604: error occurred at recursive SQL level 1
ORA-01000: maximum open cursors exceeded

If this should happen, then you may customize (and increase) the number of open cursors per connection with the Java system property ch.ivyteam.ivy.persistence.db.oracle.MaxOpenCursors. It can be set in the jvm.options.

Note

Schema Creation

Before you can create the system database tables on a Oracle Database you have to do the following steps:

  1. You may want to create a new Oracle database where the Axon Ivy Engine System Database is located. This is optional you can use an already existing Oracle database.

  2. Create a new user (e.g. AxonIvy) or let the Axon Ivy Engine create one for you with the Setup Wizard. You can use the following script to create a new user with sufficient permissions:

    CREATE USER <username> IDENTIFIED BY <password>;
    GRANT CREATE SESSION, CREATE TABLE, CREATE VIEW,
          CREATE TRIGGER, CREATE PROCEDURE, CREATE SEQUENCE,
          UNLIMITED TABLESPACE TO <username>;
    
  3. You may want to create a new tablespace (e.g. AxonIvy) where the Axon Ivy Engine System Database can store the table data. This is optional you can use an already existing tablespace.

Warning

Be sure that the configuration of the database connection uses the new database and the Oracle Service ID reflecting the database you want to create the system database tables in.