PQ57357: ALLOW USING NOT SHARED HFS IN A SYSPLEX WITH ONE SYSTEM | |||||||||||||||||||||||||||||||||||||||||
![]() |
|||||||||||||||||||||||||||||||||||||||||
![]() APAR status Closed as program error. Error description During installation of IVP's, naming registration fails trying to createHome for the WebSphereSampleEARFile home with java.lang.NoClassDefFoundError for class IVPVerificationException. In the output for BBOASR2S, the classloader search looked for two different path names. One is /web/WebSphere390/... and the other with system name appand to it /SYSTEM/web/WebSphere390/... The reason for /SYSTEM/ in front of /web/WebSphere390/... is that it is not shared hfs. The problem occurred because some classloading is Management is using the value of the CBCONFIG environment variable to determine the path for installed applications. If there is only one system on the sysplex with WebSphere configured, non-shared hfs should be allowed to be used during the customization steps.Local fix Change the CBCONFIG environment variable to append the system specific identifier to the mount point (i.e. /SYSTEM/web/WebSphere390...) NOTE: You have to manually edit the current.env file of the J2EE Application server to make the change to the CBCONFIG variable. The CBCONFIG variable cannot be changed via the SM/EUI, when you try you get the following error messages: BBON0478E Change for 'plexnam' failed. See message log for details. BBON1093E Environment variable CBCONFIG must not be changed for sysplex 'sysplexname'.Problem summary **************************************************************** * USERS AFFECTED: All users of WebSphere Application Server * * V4.0.1 for z/OS and OS/390. * **************************************************************** * PROBLEM DESCRIPTION: After the installation of the * * PolicyIVP application on a J2EE server * * that is part of a single-system sysplex * * with an HFS that is not shared, server * * startup fails with a message of: * * "BBOU0652E NAMING REGISTRATION FAILED". * **************************************************************** * RECOMMENDATION: * **************************************************************** Customer has installed WebSphere using a HFS, that is not shared, in a sysplex comprised of a single system. The customer's CBCONFIG environment variable has a value of "/web/WebSphere390/CB390", and the customer has created a symbolic link on the HFS so that the "/web" entry in the root of the file system points to "$SYSNAME/web". Since the customer's HFS is not shared, the "$SYSNAME" variable resolves to a value of "/SYSTEM". The customer then installs the PolicyIVP sample application on a J2EE server named BBOASR2. After activating the conversation, the customer attempts to start server BBOASR2. Server startup fails with the following message: "BBOU0652E NAMING REGISTRATION FAILED FOR SERVER BBOASR2". Examination of the server logs for BBOASR2S indicates that the naming registration failure is caused by a java.lang.NoClassDefFoundError exception being thrown for the class com.ibm.ws390.samples.ivp.ejb.PolicySessionHome by the com.ibm.ws390.rmi.corba.ORBEJSBridge.createHome method. This exception occurs because the WAS/390 classloader code uses a canonical (i.e., resolved) path to locate classes, while the System Management code handling the naming registration (implemented in BeanMetaDataMgrImpl.java) uses the absolute path defined in the CBCONFIG environment variable. In the customer's case, the classloader would search for the PolicyIVP classes using a path of "/SYSTEM/web/WebSphere390", but System Managemen had registered these under an unresolved absolute path of "/web/WebSphere390". This causes the NoClassDefFoundError exception.Problem conclusion The code in BeanMetaDataMgrImpl.java that handles naming registration of J2EE application modules was originally using the value of the CBCONFIG environment variable to create classloader entries for the module classes. This code was modified to create a java.io.File object using the path obtained from CBCONFIG, and then the getCanonicalPath() method is called on the File object to produce a canonical version of the path for naming registration. Since the classloader uses the same process to locate classes, the NoClassDefFoundError no longer happens and naming registration succeeds. APAR PQ57357 is associated with SERVICE LEVEL W401026 of WebSphere Application Server V4.0.1 for z/OS and OS/390.Temporary fix Comments
APAR is sysrouted FROM one or more of the following: APAR is sysrouted TO one or more of the following: UQ63622 Modules/Macros
|
Document Information |
Product categories: Software > Application Servers >
Distributed Application & Web Servers > WebSphere Application
Server for z/OS
Operating system(s):
Software version: 401
Software edition:
Reference #: PQ57357
IBM Group: Software Group
Modified date: Apr 29, 2002
(C) Copyright IBM Corporation 2000, 2006. All Rights Reserved.