Sunday, 2 December 2012

Emergency upgrade of WebSphere JVM to 64 bit

Should you accidentally install a 32 bit JVM under your BPM stack (doh!!) ... here's how to upgrade it without tearing down the whole thing and re-installing 

1./ Create a new Installation Manager new response file as below. Set the path and the offering profile to be different from any existing installations on the target machine. what you're doing here is just installing a new temporary version of WAS and you'll only be using the bin, java and lib directories.

For this example we'll use an install dir of /opt/bpm/WAS_64 and an Installation Manager profile of WAS_64 

<?xml version="1.0" encoding="UTF-8"?>
<agent-input>
<server>
        <repository location='/opt/bpm/install/repository'/>
</server>
<profile installLocation='/opt/bpm/WAS_64' id='WAS_64'>
        <data key='eclipseLocation' value='/opt/bpm/WAS_64' />
        <data key="cic.selector.nl" value="en" />
        <data key='user.import.profile' value='false'/>
        <data key='user.select.64bit.image,com.ibm.websphere.ND.v70' value='true'/>
</profile>
<install>
        <offering profile="WAS_64" id="com.ibm.websphere.ND.v70" features='core.feature,import.productProviders.feature,import.configLauncher.feature' installFixes='none'/>
    <!--
        ANy WAS patches that you need also need to be installed
    -->   

</install>
<preference name='com.ibm.cic.common.core.preferences.eclipseCache' value='/opt/bpm/eclipsecache'/>
<preference value="30" name="com.ibm.cic.common.core.preferences.connectTimeout" />
<preference value="30" name="com.ibm.cic.common.core.preferences.readTimeout" />
<preference value="0" name="com.ibm.cic.common.core.preferences.downloadAutoRetryCount" />
<preference value="true" name="offering.service.repositories.areUsed" />
<preference value="false" name="com.ibm.cic.common.core.preferences.ssl.nonsecureMode" />
<preference value="false" name="com.ibm.cic.common.core.preferences.http.disablePreemptiveAuthentication" />
<preference value="true" name="com.ibm.cic.common.core.preferences.preserveDownloadedArtifacts" />
<preference value="false" name="PassportAdvantageIsEnabled" />
<preference value="true" name="com.ibm.cic.common.core.preferences.searchForUpdates" />
<preference value="true" name="com.ibm.cic.common.core.preferences.import.enabled" />
</agent-input>


2./ Now run Installation Manager using the response file created above as the input.
  • /opt/bpm/im/eclipse/IBMIM -acceptLicense -input <response file> -silent -nosplash
3./ Save versionInfo (for version comparison later on)
  • /opt/bpm/<original BPM install>/versionInfo.sh -maintenancePackageDetail > /tmp/bpm-version32
4./ Shut down all JVM's and carry out the following moves in the EXISTING install:
  • mv /opt/bpm/<original BPM install>/java /opt/bpm/<original BPM install>/java_32
  • mv /opt/bpm/<original BPM install>/bin /opt/bpm/<original BPM install>/bin_32
  • mv /opt/bpm/<original BPM install>/lib /opt/bpm/<original BPM install>/lib_32
5./ Recursively copy the java, bin and lib directories fron the new 64 bit install:
  • cp -rp /opt/bpm/WAS_64/java /opt/bpm/<original BPM install>
  • cp -rp /opt/bpm/WAS_64/bin /opt/bpm/<original BPM install>
  • cp -rp /opt/bpm/WAS_64/lib /opt/bpm/<original BPM install>
5./ Re-instate any lib/ext libraries you may have
  • cp -rp /opt/bpm/<original BPM install>/lib_32/ext/* /opt/bpm/<original BPM install>/lib/ext
  • cp -rp /opt/bpm/<original BPM install>/lib_32/task* /opt/bpm/<original BPM install>/lib
6./ Re-instate CACerts (I'm assuming you've worked out that BPM 7.5.* and 8.0.* both use CACerts in 2 cases... a.) The Process Centre uses it for a trust store when it needs to trust a remote process server and b.) the RAL (Remote Artifact Loader) uses it as a trust store and as a keystore if it needs to use an SSL key to authenticate to any endpoints where you may have enabled client SSL auth)
  • cp -p /opt/bpm/<original BPM install>/java_32/jre/lib/security/cacerts /opt/bpm/<original BPM install>/java/jre/lib/security
7./ Save new versionInfo (see step 3) 

/opt/bpm/<original BPM install>/bin/versionInfo.sh -maintenancePackageDetail > /tmp/bpm-version64
8./ Compare versionInfo outputs
  • diff /tmp/bpm-version32 /tmp/bpm-version64
9./ If this is Solaris, you'll need to add the -d64 flag to all jvm parameters (under Generic JVM args)

You now have a 64 bit stack ... phew :-)  

No comments:

Post a Comment