Skip to main content

Complete installation of Ilog Jrules on Oracle application server 10.1.3.3.0

With Ilog Jrules default distribution, Jboss application sever is default. But customers might choose any application server to use Jrules. In these circumstances, customers should deploy all the necessary components manually. The task is not so straight forward because Jrules consists of a few independent web components. In the following i will describe briefly how to install Ilog Jrules in OAS 10.1.3.3.

Jrules consists of following three main web components:
1) RES
2) TEAM SERVER
3) SCENARIO MANAGER
We follow step by step to install and deploy all the components in the OAS.
1) Install RES:
1.1) First we should create data base user and schema in Oracle DB for component Res.
1.2) Run the script in sqlplus or any other oracle sql client to create new data base objects from the following place
<ILOG_HOME>\JRules672\executionserver\databases\oracle\schema_oracle.sql
1.3)Create a new oc4j instance in the OAS named Ilog_bres
1.4)Create new connection pool and data source for RES as follows:
<connection-pool name="bresdatasourcePool">
<connection-factory factory-class="oracle.jdbc.pool.OracleDataSource"
user="bres"
password="bres"
url="jdbc:oracle:thin:@hostname:1521:dbname">
</connection-factory>
</connection-pool>

<managed-data-source name="bresdatasource"
connection-pool-name="bresdatasourcePool"
jndi-name="jdbc/bresdatasource"/>

1.5) Add new roles and users by web interfaces as follows
1.5.1) Add role named bres_admin, which will extends from oc4j-administrator and also selects Grant RMI Login и Grant Administration realms for the role.
1.5.2) Add new user named bres and grant him the role bres_admin
1.6) Install all the following components manually in the oc4j instance Ilog_bres:
jrules-bres-management-OC4J1013.ear;
jrules-bres-ootbds-OC4J1013.ear;
jrules-bres-xu-OC4J1013.rar;
jrules-ssp-OC4J1013.ear.
All components will be found in the following directory <ILOG_HOME>\JRules672\executionserver\applicationservers\oracle10g
Installed RES should be found on following url:
http://HOST_NAME:PORT/APPLICATION NAME DEFINED FOR BRES ON THE INSTALLAION
2) Install Team server:
2.1) Create two data base schema and user in the oracle DB.
2.2) From default installation of team server in JBOSS, we could generate sql script to create schema objects.
2.3) Run the sql script to create new objects in the data base schema
2.4) Create a new oc4j instance named ilog_ts.
2.5) Increase perm size memory for the container through web interface or add it to opmn.xml file as follows:
perm memory size: 128М, max memory size: 1024М, initial memory size: 512М (it's my configuration - you should calculate your ability)
2.6) Create connections pools and data sources for the container ilog_ts as follows:
<connection-pool name="ilogDataSourcePool">
<connection-factory factory-class="oracle.jdbc.pool.OracleDataSource"
user="rts"
password="rts"
url="jdbc:oracle:thin:@hostname:1521:dbname">
</connection-factory>
</connection-pool>

<managed-data-source name=" ilogDataSource"
connection-pool-name="ilogDataSourcePool"
jndi-name="jdbc/ilogDataSource"/>

<connection-pool name="serverextendedbrmPool">
<connection-factory factory-class="oracle.jdbc.pool.OracleDataSource"
user="rtsext"
password="rtsext"
url="jdbc:oracle:thin:@hostname:1521:dbname">
</connection-factory>
</connection-pool>

<managed-data-source name="serverextendedbrm"
connection-pool-name="serverextendedbrmPool"
jndi-name="jdbc/serverextendedbrm"/>

2.7) Add following roles and users:
Roles: rtsAdministrator extends from oc4j-administrator with realms Grant RMI Login , Grant Administration, rtsInstaller and rtsUser
Users: rtsAdmin, which assign all the above roles.
2.8) Deploy the following application into the container:
jrules-teamserver-OC4J10.ear, which will found in the following directory
<ILOG_HOME>\JRules672\teamserver\applicationservers\oracle10g\jrules-teamserver-OC4J10.ear
3) Install RSM:
Actually for Scenario manager it's not necessary to create another oc4j container, it will be to install it with res.
3.1) Create one more db schema and user in the oracle database.
3.2) No need to run any script to create data base objects, during installation of the application by data source, rsm will create data base objects need for him.
3.2) Add one more connection pool and data source in the container ilog_bres as follows:
<connection-pool name="rsmdatasourcePool">
<connection-factory factory-class="oracle.jdbc.pool.OracleDataSource"
user="rsm"
password="rsm"
url="jdbc:oracle:thin:@hostname:1521:dbname">
</connection-factory>
</connection-pool>

<managed-data-source name="rsmdatasource"
connection-pool-name=" rsmdatasourcePool"
jndi-name="jdbc/rsmdatasource"/>

3.3) Create one role named rsm_user and add a user named rsm. Assign the role to the user rsm.
3.4) Deploy the following application in the container:
jrules-rsm-OC4J1013.ear, which will be found in the following directory <ILOG_HOME>\JRules672\scenariomanager\applicationservers\oracle10g\jrules-rsm-OC4J1013.ear
it's all what you need to install Jrules in the OAS.
Now some additional note:
1) If any problems will occurs for library commons-logging during installation, it should be better to update it with newer version. You should have find the library in the following directory: webservices/lib.
2) Delete the library commons-cli.jar from the shared library.
3)*** Fix the rmi port for all the above defined containers,
3.1) Open the ORACLE_HOME/opmn/conf/opmn.xml file with vi editor or any text editor.
3.2) Locate the <port id="rmi" range="12401-12500"/> entry for the instances ilog_bres and ilog_ts.
3.2) Choose one of the ports for RMI within the range of 12401 and 12500.
For example:
<port id="rmi" range="12402"/>

Now rmi ports are fixed for the containers and during restart or startups of OAS rmi ports will never change.
4) JMX services will be accessible by following url:
service:jmx:rmi:///opmn://HOST:6003/CONTAINER_NAME
5) For solving transaction manager time out problem by rmi protocol do as follows:
add more seconds in transaction-timeout option as like 100 in the transaction-manager.xml file for every container, default is 30 seconds.

Comments

Popular posts from this blog

Send e-mail with attachment through OSB

Oracle Service Bus (OSB) contains a good collection of adapter to integrate with any legacy application, including ftp, email, MQ, tuxedo. However e-mail still recognize as a stable protocol to integrate with any application asynchronously. Send e-mail with attachment is a common task of any business process. Inbound e-mail adapter which, integrated with OSB support attachment but outbound adapter doesn't. This post is all about sending attachment though JavaCallout action. There are two ways to handle attachment in OSB: 1) Use JavaCallout action to pass the binary data for further manipulation. It means write down a small java library which will get the attachment and send the e-mail. 2) Use integrated outbound e-mail adapter to send attachment, here you have to add a custom variable named attachment and assign the binary data to the body of the attachment variable. First option is very common and easy to implement through javax.mail api, however a much more developer manage t

Tip: SQL client for Apache Ignite cache

A new SQL client configuration described in  The Apache Ignite book . If it got you interested, check out the rest of the book for more helpful information. Apache Ignite provides SQL queries execution on the caches, SQL syntax is an ANSI-99 compliant. Therefore, you can execute SQL queries against any caches from any SQL client which supports JDBC thin client. This section is for those, who feels comfortable with SQL rather than execute a bunch of code to retrieve data from the cache. Apache Ignite out of the box shipped with JDBC driver that allows you to connect to Ignite caches and retrieve distributed data from the cache using standard SQL queries. Rest of the section of this chapter will describe how to connect SQL IDE (Integrated Development Environment) to Ignite cache and executes some SQL queries to play with the data. SQL IDE or SQL editor can simplify the development process and allow you to get productive much quicker. Most database vendors have their own front-en

Load balancing and fail over with scheduler

Every programmer at least develop one Scheduler or Job in their life time of programming. Nowadays writing or developing scheduler to get you job done is very simple, but when you are thinking about high availability or load balancing your scheduler or job it getting some tricky. Even more when you have a few instance of your scheduler but only one can be run at a time also need some tricks to done. A long time ago i used some data base table lock to achieved such a functionality as leader election. Around 2010 when Zookeeper comes into play, i always preferred to use Zookeeper to bring high availability and scalability. For using Zookeeper you have to need Zookeeper cluster with minimum 3 nodes and maintain the cluster. Our new customer denied to use such a open source product in their environment and i was definitely need to find something alternative. Definitely Quartz was the next choose. Quartz makes developing scheduler easy and simple. Quartz clustering feature brings the HA and