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

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 fron...

8 things every developer should know about the Apache Ignite caching

Any technology, no matter how advanced it is, will not be able to solve your problems if you implement it improperly. Caching, precisely when it comes to the use of a distributed caching, can only accelerate your application with the proper use and configurations of it. From this point of view, Apache Ignite is no different, and there are a few steps to consider before using it in the production environment. In this article, we describe various technics that can help you to plan and adequately use of Apache Ignite as cutting-edge caching technology. Do proper capacity planning before using Ignite cluster. Do paperwork for understanding the size of the cache, number of CPUs or how many JVMs will be required. Let’s assume that you are using Hibernate as an ORM in 10 application servers and wish to use Ignite as an L2 cache. Calculate the total memory usages and the number of Ignite nodes you have to need for maintaining your SLA. An incorrect number of the Ignite nodes can become a b...

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...