Customizing Decision Runner
In a topology where ODM is deployed in several namespaces inside a cluster or on several clusters, you might want to design decision services in a development environment (in a given namespace), to do tests and simulations in a staging environment (in another namespace), and finally to deploy the decision services to production on another cluster.
About this task
For testing and simulating decision services, Decision Server uses the Decision Runner RES_URL to deploy the artifacts (ruleapps, XOM, rulesets). By default, the RES_URL is an internal URL that is exposed by the Decision Server Console (https://<project_name>-odm-decisionserverconsole:443/<context_root>/res). It means that you cannot deploy at the same time to an external URL that is exposed through the internet.
For example, if an end user wants to develop a decision service on a given cluster or namespace, and then test it on a Decision Server that is on another cluster or namespace like https://my_destination_cluster.domain.com/res, he runs into the following error.
ilog.rules.teamserver.model.IlrXOMDeploymentException: An error has occurred while deploying the XOM to Rule Execution Server ’https://my_desination_cluster.domain.com/res';. If the Rule Execution Server is not deployed on the same server and port as the Decision Runner, the RES_URL init parameter of the Decision Runner web application must be set to the URL of the Rule Execution Server. Contact your administrator.
The solution is to configure the RES_URL parameter as a list of URLs so that deployment can take place on different environments.
Procedure
For example:
decisionRunner:
resURL: "https://my_destination_cluster.domain.com/res"
decisionRunner:
resURL: "EXTERNAL_URL,INTERNAL_URL"
- EXTERNAL_URL is the Decision Server URL that is exposed by the cluster, generally accessible from the internet
- INTERNAL_URL is the Decision Server URL that is exposed internally by the Decision Server Console. Generally, it corresponds to https://<project_name>-odm-decisionserverconsole:443/<context_root>/res
For example:
decisionRunner:
resURL: "https://my_desination_cluster.domain.com/res,https://<project_name>-odm-decisionserverconsole:443/<context_root>/res"