Operational Decision Manager (ODM) stage Java class path configuration in DataStage

The Operational Decision Manager (ODM) stage runs on the ODM engine tier host. The ODM stage is a Java™ based connector and it requires access to various ODM resources such as ODM JAR files, Java Execution Object Model (XOM) classes, and the configuration files to function properly.

You must specify the resources that are required by the connector in the Java class path for the connector. You can specify the required resources in the Classpath field on the ODM Stage tab.

You can define a project environment variable to list all the necessary resources, and then add it to the job as job parameter specified as the Classpath property value. When the resources are specified in the Classpath property, they are made available to the connector during the job execution as well as during the configuration wizard session.

The use of the system Java class path to list the necessary resources is not recommended. If specified in the system class path, the resources might interfere with other Java processes that are running on the same machine. It is also not convenient to add resources to the system class path incrementally because it requires restarting the DataStage® engine to recognize the new entries added to the system class path. If the engine is a Windows system, then it requires a reboot. An example where the system class path needs to be updated periodically is to add new Java XOM JAR files for the connector to use to invoke new rulesets.

If it is not convenient to add the necessary resources in the Classpath property of each ODM stage, then you can do one of the following instead of setting the system class path value:
  • For the runtime execution of the job, define the CLASSPATH environment variable at the DataStage project level, and list the necessary resources in the default value for this environment variable. The specified CLASSPATH value is then picked up by every job in that Cloud Pak for Data project. To override the default value specified at the project level, the jobs can import this environment variable as a job parameter and set its value to be used by the connector class path value for that particular job.
  • For the configuration wizard, add ODM rulesets archive files and JAR files as assets by choosing from existing ODM assets or by adding new assets.
Depending on the engine mode selected, you must have the specified ODM JAR files in the class path during the job execution as well as for the configuration wizard use.
Note: Only core engine mode is currently supported.

If you do not use the configuration wizard, you can put JAR files in any location that can be accessed by the ODM connector, for example, /ds-storage.

Core engine mode

Depending on the type of rules that you used, you must have the following ODM JAR files in the class path during the job execution:
  • Classic rules:
    JRULES_HOME/executionserver/lib/jrules-engine.jar
  • Decision Engine rules:
    JRULES_HOME/executionserver/lib/jrules-engine.jar
    JRULES_HOME/executionserver/lib/dom4j-VERSION.jar
    JRULES_HOME/executionserver/lib/openxml4j-VERSION.jar
    JRULES_HOME/executionserver/lib/poi-VERSION.jar
    JRULES_HOME/executionserver/lib/poi-ooxml-VERSION.jar
where JRULES_HOME represents the ODM home directory and VERSION represents the version of the library available in the ODM version that you use, for example dom4j-1.6.1.jar. Make sure that the JRULES_HOME directory is accessible by DataStage.

Alternatively, you can use the ODM asset to manage JAR files. In this case, the location of those JAR files is /ds-storage/PXRuntime/Projects/PROJECT_ID/data_intg_ilogjrule/ASSET_NAME/.

These JAR files are not required for the configuration wizard sessions.

When the ruleset for which the connector is configured is based on Java XOM, then the XOM classes of the ruleset parameters also need to be included in the class path. This applies to the job runtime as well as the configuration wizard sessions.