Upgrading WLI from <WLS 8.1.2 WLI 8.1> to <WLS 8.1.6 WLI 8.5>

Or... a practical example on how to service-level upgrade a WLI domain/application!

This document will describe an example for lifting a domain with a sample WLI application to another service level.

The formal description can be found at: But here we will give a practical demonstration using the 'sampleApplication' provided in WLS 8.1.2 WLI 8.1 - and show how to get around the little corners in a practical world. The story goes, there is really little difference between WLI 8.1 and WLI 8.5 (except the name) and certainly there is hardly any size difference between <BEA WLS 8.1.6 WLI 8.1> and <BEA WLS 8.1.6 WLI 8.5> .

Required for this exercise is Strategy is to: So.. everything starts out with a standard WLS 8.1.2 WLI 8.1 installation (BEA Weblogic server 8.1 servicepack 2, Weblogic Integration 8.1). Installation here is done on Wintel platform to BEA_HOME="c:/bea_sp2". After installation the sample application will be available from %BEA_HOME%/weblogic81/samples/domains/integration - or more specificly in this case from c:/bea_sp2/weblogic81/samples/domains/integration .



While starting up the is a couple of warning "(MDB) ... that refers to an unknown execute queue thread pool..." - but that's explained in the releasenotes as something insignificant to be ignored.

Anyway the application works - if you can type in a name and email address - having the person registered in the database and being able to search for the person just entered... As seen below by executing from command line explorer http://localhost:7001/ApplicationIntegration/FunctionDemo/CustomerMgmt.jpd:



Next step is to install BEA WLS 8.1.4 WLI 8.1 in "c:\bea_sp4". Should present no practical problems. When that is done, we'll make a third directory structure where to put the domain, which we're putting through the service level transformation C:\bea_sp6_wli85\user_projects\domains\

Now the objective is to move domain+"sampleApp" application from originally: to a directory which we've just set up for practical illustration (8.1.6 not installed yet). To make the transfer we od some physical copying of files:


moving from 8.1.2 to 8.1.4 (same WLI level)
copying the domain "integration" and the application "sampleApp", origically found in 8.1.2


rmdir /q /s C:\bea_sp6_wli85\user_projects\domains\integration
mkdir C:\bea_sp6_wli85\user_projects\domains\integration
xcopy /s C:\bea_sp2\weblogic81\samples\domains\integration C:\bea_sp6_wli85\user_projects\domains\integration

rmdir /q /s C:\bea_sp6_wli85\user_projects\domains\integration\cgServer\.wlnotdelete
mkdir C:\bea_sp6_wli85\user_projects\domains\integration\cgServer\.wlnotdelete

rmdir /q /s C:\bea_sp6_wli85\user_projects\domains\integration\cgServer\ldap
mkdir C:\bea_sp6_wli85\user_projects\domains\integration\cgServer\ldap

del /q /f C:\bea_sp6_wli85\user_projects\domains\integration\cgServer\logs\*

del C:\bea_sp6_wli85\user_projects\domains\integration\*.log

copy C:\bea_sp6_wli85\user_projects\domains\integration\startWebLogic.cmd C:\bea_sp6_wli85\user_projects\domains\integration\startWebLogic-ORG.cmd

mkdir C:\bea_sp6_wli85\user_projects\domains\integration\integration_app
xcopy /s C:\bea_sp2\weblogic81\samples\integration C:\bea_sp6_wli85\user_projects\domains\integration\integration_app


NOTE: remember to delete the ".wlnotdelete" and "ldap" stuff which usually keep track of the directory path, where the domain was last used. Unless removed, the server may fail to start up.

NOTE: every time you make the switch between the service levels, make sure to back up your "startWebLogic.cmd" since it changed by by the BEA wizard running in the silent scripting mode at each service level update.

NOTE: move the domain at "C:\bea_sp2\weblogic81\samples\domains\integration" and the application at "C:\bea_sp2\weblogic81\samples\integration" since under the workshop deployment, data is written - and it's rather unhealthy to mix deployment data between the service levels.

OK - you moved the domain and the application - but it will not run very well before we do a cleanup for service level dependant deployment remainings...

Furthermore - beyond the copying - you have to manually: All these changes really are really not dictated by service level changes - but because of the changed location of the WLS domain. Now the moved domain should be in shape to atleast start up from the changed domain location - at the same service level as originally (WLS 8.1.2 WLI 8.1):



Notice how JVM still says 1.4.1_05 but domain configuration is loaded from c:\BEA_SP~1\USER_P~1\...\config.xml alias C:\bea_sp6_wli85\user_projects\domains\integration\config.xml. Things looks the same... And the application still works:



Now we need to organize the service level upgrade - first to 8.1.4 and then to 8.1.6.

Procedure is to The small 'trick' here is that we don't really need a full 8.1.4 installation except for checking the service level upgrade along the way. All we need is the upgrade directories, which takes a resonable small space compares to the rather large installations.

We quickly edit files:


from 8.1.2 to 8.1.4 (same WLI level)
%SOME_PLACE%\integration.sp2-sp4\upgrade\options.properties

current.version=sp2
domain.path=C:/bea_sp6_wli85/user_projects/domains/integration
beahome.path=C:/bea_sp2
beahome.4.path=C:/bea_sp4
domain.jmsserver=cgJMSServer
backup=true
single.node=true
update.paths=true
os=both
run.cws=true
weblogic=weblogic81
properties.check=true
db_upgrade=true
platform.hp=false

and for the last service level lift...


from 8.1.4 to 8.1.6 (from WLI 8.1 to 8.5 - officially atleast - practically little difference)
%SOME_PLACE%\integration.sp4-sp6\upgrade\options.properties

current.version=sp4
domain.path=C:/bea_sp6_wli85/user_projects/domains/integration
beahome.path=C:/bea_sp4
beahome.latest.path=C:/bea_sp6_wli85
domain.jmsserver=cgJMSServer
backup=true
single.node=true
update.paths=true
os=both
run.cws=true
weblogic=weblogic81
weblogic.latest=weblogic81_wli85
properties.check=true
db_upgrade=true
platform.hp=false

First we go from 8.1.2 to 8.1.4. Procedure for this is to: This should bring the domain 'integration' + sampleApp to service level 8.1.4.

Taking a quick resume, the screenshots for the ant -f domain_upgrade.xml update_path pathname update :



and on 8.1.4 while doing the startPointBase.cmd -port=9093 -ini=C:\bea_sp6_wli85\user_projects\domains\integration\pointbase.ini



the pop-up pointbase window:



and the ant -f domain_upgrade.xml upgrade ... database update to 8.1.4:



Just rember now... The scripts have auto-generated 'startWebLogic.cmd', so if you made changes, you might want to check things. Anyway to test 8.1.4, procedure is:

You should get a WLS 8.1.4 startup similar to:



Yes, you might notice some warnings... (BEA-012034). Actually BEA later made the appropriate changes by adding tags <enable-call-by-reference> to the deployment component sampleApp_InsertBasedEvents_ApplicationView-ejb.jar in the META-INF/weblogic-ejb-jar.xml. Anyway, the application should perform properly:



If you take 'sampleApp' for a small spin (entering 'John' 'Doe' at 'jd@doc.com'), you might get:



Time to go from 8.1.4 to 8.1.6. Practically the same procedure:
This should bring the domain 'integration' + sampleApp to service level WLS 8.1.6 WLI 8.5 .

Again, taking a quick resume, the screenshots for the ant -f domain_upgrade.xml update_path pathname update :



and on 8.1.6 while doing the startPointBase.cmd -port=9093 -ini=C:\bea_sp6_wli85\user_projects\domains\integration\pointbase.ini



and the ant -f domain_upgrade.xml upgrade ... database update to 8.1.6:



The last SQL doesn't go down well... But it has a reason... :


updating database tables from 8.1.4 to 8.1.6
C:\bea_sp6_wli85\weblogic81_wli85\integration\dbscripts\pointbase\upgrade_runtime_sp4_sp6.sql

CREATE TABLE WLI_EVENTGEN_STATE(
        EG_NAME VARCHAR(128) NOT NULL,
        EG_TYPE INTEGER      NOT NULL,
        CHANNEL_ID VARCHAR(64)   NOT NULL,
        LAST_UPDATE_PROCESSED NUMBER NOT NULL,
        CONSTRAINT PK_WLI_EG_STATE PRIMARY KEY(EG_NAME,EG_TYPE,CHANNEL_ID));
COMMIT;

DROP INDEX  IX_WLI_WL_PROPERTY_NAME ;

COMMIT;

CREATE INDEX IX_WLI_WL_PROP_NAME_VAL
	ON WLI_WORKLIST_TASK_PROPERTY (PROPERTY_NAME, PROPERTY_VALUE);

COMMIT;

You should get a WLS 8.1.6 startup similar to:



Yes, you still notice some warnings... (BEA-012034). Anyway, the application still performs properly:



And at the final spin for 'sampleApp' (entering 'John' 'Doe' at 'jd@doc.com'), you might get:



which result in: