In part, this involves running some SQL scripts to migrate the old data to the new environment.
This is especially relevant for the Decision Center, which is the Rules authoring environment, aka the Source Code Management (SCM) system-of-record.
The Decision Center, also known as the Team Server ( reflecting the product's heritage as iLog JRules ) or Rule Team Server or RTS, is based upon a database.
Therefore, the first step is to BACKUP the existing database ( RTSDB, in my case ) from the old/source system.
One benefit of the migration is that it's effectively side-by-side, meaning that you leave the old source system alone, and build a new, parallel environment into which the data ( Rules etc. ) is restored.
In my case, I'm using IBM DB2, but other databases are available.
The process is documented here: -
and here: -
and involves running a pair of Ant scripts against the existing database schema ( in my case, that's db2user1 ) resulting in a pair of SQL scripts that can then be executed against a new database schema ( in my case, that's db2user2 ) to migrate the roles AND data from one to t'other.
I was quite obviously doing something wrong, as I kept seeing exceptions such as: -
ilog.rules.teamserver.model.IlrConnectException
Caused by: java.lang.NullPointerException
Caused by: java.lang.NullPointerException
in the Decision Center logs post migration.
It was, however, a PEBKAC - I was obviously doing it wrong.
Once I changed my approach: -
Restore backup of RTSDB - as db2inst1
db2 restore database RTSDB from /tmp
Connect as the instance owner - as db2inst1
db2 connect to RTSDB user db2inst1 using passw0rd
Grant the new schema - db2user2 - rights to the database - as db2inst1
db2 grant dbadm on database to user db2user2
Terminate the DB2 session - as db2inst1
db2 terminate
Connect as the new schema - as db2inst1
db2 connect to RTSDB user db2user2 using passw0rd
Run the provided script to create the necessary ODM tables, indices etc. - as db2inst1
db2 -tvf ~/rule-team-server.sql
- For the record, this SQL script is generated when one first logs into the Decision Center, so I just kept a copy :-)
Terminate the DB2 session - as db2inst1
db2 terminate
Start the Decision Centre cluster - as wasadmin
AdminControl.invoke('WebSphere:name=DecisionCenterCluster,process=dmgr,platform=common,node=Dmgr,version=8.5.5.11,type=Cluster,mbeanIdentifier=DecisionCenterCluster,cell=odmCell01,spec=1.0', 'start')
Log into the Decision Centre - as wasadmin
Follow the prompts to complete basic setup - extensions, locale ( I'm using en_GB as I'm a Brit ) etc. *BUT* avoid executing the generated SQL ( this has already been done ), as per this: -
At this stage, we've got a clean Decision Center database, ready to receive BUT with no roles or data migrated from the old environment: -
Set variables - as wasadmin
export ANT_HOME=/opt/ibm/ODM89/shared/tools/ant
export PATH=$PATH:/opt/ibm/ODM89/shared/tools/ant/bin
export JAVA_HOME=/opt/ibm/ODM89/jdk/jre
Run the Ant scripts to extract the roles and data for the old db2user1 schema - as wasadmin
cd /opt/ibm/ODM89/teamserver/bin
ant -DoldDatabaseSchemaName=db2user1 -Dserver.url=https://odm.uk.ibm.com:9443/teamserver -DrtsAdmin.login=wasadmin -DrtsAdmin.password=passw0rd -DoutputFile=/tmp/migrate_roles.sql gen-migration80-role
ant -DoldDatabaseSchemaName=db2user1 -Dserver.url=https://odm.uk.ibm.com:9443/teamserver -DdatasourceName=jdbc/ilogDataSource -DrtsAdmin.login=wasadmin -DrtsAdmin.password=passw0rd -DoutputFile=/tmp/migrate_data.sql gen-migration80-script
export PATH=$PATH:/opt/ibm/ODM89/shared/tools/ant/bin
export JAVA_HOME=/opt/ibm/ODM89/jdk/jre
Run the Ant scripts to extract the roles and data for the old db2user1 schema - as wasadmin
cd /opt/ibm/ODM89/teamserver/bin
ant -DoldDatabaseSchemaName=db2user1 -Dserver.url=https://odm.uk.ibm.com:9443/teamserver -DrtsAdmin.login=wasadmin -DrtsAdmin.password=passw0rd -DoutputFile=/tmp/migrate_roles.sql gen-migration80-role
ant -DoldDatabaseSchemaName=db2user1 -Dserver.url=https://odm.uk.ibm.com:9443/teamserver -DdatasourceName=jdbc/ilogDataSource -DrtsAdmin.login=wasadmin -DrtsAdmin.password=passw0rd -DoutputFile=/tmp/migrate_data.sql gen-migration80-script
This results in a pair of SQL scripts: -
-rw-r--r-- 1 wasadmin wasadmins 79746 Jul 16 16:25 /tmp/migrate_data.sql
-rw-r--r-- 1 wasadmin wasadmins 9552 Jul 16 16:24 /tmp/migrate_roles.sql
-rw-r--r-- 1 wasadmin wasadmins 9552 Jul 16 16:24 /tmp/migrate_roles.sql
Connect as the new schema - as db2inst1
db2 connect to RTSDB user db2user2 using passw0rd
Execute migration scripts - as db2inst1
db2 -tvf /tmp/migrate_roles.sql
db2 -tvf /tmp/migrate_data.sql
db2 -tvf /tmp/migrate_data.sql
Terminate the DB2 session - as db2inst1
db2 terminate
C'est voila, we have a NEW ODM 8.9 Decision Centre with the project that was previously created on the OLD ODM 8.0 Decision Centre: -
No comments:
Post a Comment