Question & Answer
Why would I receive message DFHSJ0210 indicating the Liberty JVM server failed to start due to a JVMPROFILE_ERROR after applying maintenance to CICS Transaction Server for z/OS (CICS TS) V5.1? I applied RSU1506 or RSU1512 and now I receive message:
DFHSJ0210 date time applid An attempt to start a JVM for the JVMSERVER resource jvmserver has failed. Reason code: JVMPROFILE_ERROR
If I look at the SYSPRINT output I see the following exception was also issued indicating it could not find the file or directory:
date time MYLIBSRV *Exc*: DFHSJSC.setLibertyClasspath - @Exit 0: Invalid WLP_INSTALL_DIR. More Liberty jars than expected in profile 'lib' directory = /cics/cics680/wlp/lib
The message written to SYSPRINT is indicating that the WLP_INSTALL_DIR/lib directory is invalid because CICS found more Liberty jar files within it then expected. This message was introduced by CICS apar PI09433 which upgraded the Liberty profile in CICS to version 220.127.116.11. This was part of RSU1506. CICS will now check to see if there are more Liberty jar files within the WLP_INSTALL_DIR/lib directory than expected and will issue the message causing the Liberty JVM server to fail initialization with message DFHSJ0210.
As CICS sets the Liberty classpath, CICS searches the WLP_INSTALL_DIR directory for the OSGI jar file. Once CICS finds this jar file CICS sets a found_osgi parameter to true. There should only be one jar file that starts with osgi.eclipse.osgi as a prefix within this directory. If there is more than one jar file that starts with this prefix, when CICS searches the contents of this directory and locates the first one, CICS sets found_osgi to true. Then CICS locates the next one but since found_osgi is true, CICS issues the error messages and the startup of the Liberty JVM server fails.
If you are getting this error, when you browse the the WLP_INSTALL_DIR/lib directory (defaults to /cics/cics680/wlp/lib), you will see that there are several jar files that start with prefix osgi.eclipse.osgi within the zFS structure:
/cics/cics680/wlp/lib/ Type Filename _ File org.eclipse.osgi.jar _ File org.eclipse.osgi_3.10.100.jar _ File org.eclipse.osgi.services.jar
The problem is that somehow the USSHOME directory contents were copied or merged into the WLP_INSTALL_DIR directory. So the WLP_INSTALL_DIR/IBM and WLP_INSTALL_DIR/lib subdirectories are now congested with additional jar files and need to be cleaned up. The non-Liberty directories can simply be removed. So. the best way to clean up the USSHOME/wlp directory is to follow these steps:
1) To clean up the USSHOME/wlp directory, go to USSHOME/wlp and enter the following: rm CICS_INSTALL_OK rm -r JVMProfiles rm -r W2 rm -r docs rm -r pipeline rm -r samples rm -r schemas rm -r security rm -r utils 2) To clean up the USSHOME/wlp/IBM directory, go to USSHOME/wlp/IBM and enter the following commands: rm DFHA* rm DFHC* rm DFHW2* rm DFHX* rm DFHZ* rm DFJ* 3) To clean up the USSHOME/wlp/lib directory, go to USSHOME/wlp/lib and enter the following: rm CTK* rm -r bundle* rm com.ibm.cics* rm com.ibm.ras* rm com.ibm.rec* rm dfj* rm lib* rm org.eclipse.equ* rm org.eclipse.osgi.jar rm org.eclipse.osgi.services.jar rm -r pipeline rm -r wsdl
This should then clean up the wlp directory so that the Liberty JVM server can now initialize.
IBM CICS/CPSM Level 2 Support
CICS/TS CICSTS CICS TS CICS Transaction Server
19 April 2016