PQ59276: CERTAIN BYVALUE CLASSES EXPORTED BY THE CONTAINER CONTAIN MISMATCHED SUIDS ON DIFFERENT PRODUCT LEVELS AND PLATFORMS. | |||||||||||||||||||||||||||||||||||||||||||
![]() |
|||||||||||||||||||||||||||||||||||||||||||
![]() APAR status Closed as program error. Error description Certain byvalue classes exported by the container contain mismatched suids on different product levels and platforms. This causes MARSHAL exceptions when instances of these classes are passed between releases and platforms.Local fix Problem summary **************************************************************** * USERS AFFECTED: All users of WebSphere Application * * ServerV4.0 and V4.0.1 for z/OS and OS/390 * **************************************************************** * PROBLEM DESCRIPTION: Certain by value classes exported by * * the J2EE container contain mismatched * * SUIDs on different WebSphere * * Application Server versions. The same * * issue exists for the same version of * * WebSphere running on a different * * platform (operating system). These * * SUID mismatches cause MARSHAL * * exceptions when instances of these * * classes are passed between these * * WebSphere Application Server versions * * and/or the same WebSphere version * * running on different platforms. * **************************************************************** * RECOMMENDATION: * **************************************************************** The following byvalue classes, exported by the container, contain mismatched SUIDs when compared across WebSphere versions and across platforms: EntityHandle, SessionHandle, HomeHandle and EJBMetaData. In addition, the following classes contain SUIDs that have not gotten out of sync: FinderCollection, FinderEnumerator and FinderEnumeration. SUIDs are used by the Java SDK to ensure that an object which is obtained remotely is of the same structure as expected back on the calling side. If SUIDs mismatch, the Java SDK presumes that the underlying object structure is different and raises a MARSHAL exception, such as: java.rmi.MarshalException: CORBA MARSHAL 0 No; nested exception is: org.omg.CORBA.MARSHAL: Unable to read value from underlying bridge : Mismatched serialization UIDs Everytime an object which implements Serializable is compiled, a randomly generated SUID is inserted into the compiled code, unless an SUID value is hardcoded into the code. When these objects either do not have hardcoded SUID values or have differing hardcoded SUID values compliled into them, MARSHAL exceptions can result when the SUID values are compared across WebSphere versions and across platforms.Problem conclusion The first portion of the fix was to introduce a Java SDK hook that allows the toleration of these differing SUID values for the versions of these classes present in each WebSphere Application Server for z/OS and OS/390 version. When one of these seven classes is processed, a new ORB class will get control to compare the SUID values that are being used for demarshalling. If it is one of the known SUID values, the demarshalling is allowed to continue. The second portion of the fix concerns itself with underlying object structure differences that are exposed. Since each of these objects implements Serilalizable, it is possible to overide the implementation of readObject and writeObject for each of these classes. The objects have been stabilized as far as their internal structure between both WebSphere Applications Server V4.0 and V4.0.1 for z/OS and OS/390 and their distributed counterparts. A versioning system has been introduced for these parts so that, if they need to change in the future, there is a mechanism for doing the correct demarshalling during the readObject/writeObject calls. PLEASE NOTE: Due to the special deployment considerations in regard to the support provided by APAR PQ59276, the support provided by APAR PQ59276 will not be active (enabled) until WebSphere has been upgraded with service provided by APAR PQ53552. These special deployment considerations are documented as follows: If your installation is a multi-system sysplex running WebSphere on multiple systems in the sysplex, then this PTF needs to be applied to all of these WebSphere installations before applying the PTF associated with APAR PQ53552 to any WebSphere installation running in the multi-system sysplex. This PTF can be applied to one system at a time in a multi-system sysplex, but it must be applied to all systems before the PTF associated with APAR PQ53552 is applied to any system running in the multi-system sysplex. APAR PQ59276 is associated with SERVICE LEVEL W400064 of WebSphere Application Server V4.0 for z/OS and OS/390. APAR PQ59276 is associated with SERVICE LEVEL W401074 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: 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 #: PQ59276
IBM Group: Software Group
Modified date: Jul 3, 2002
(C) Copyright IBM Corporation 2000, 2006. All Rights Reserved.