PQ81448: WebSphere for z/OS java client receives java.io.IOException: Mismatched serialization UIDs. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() APAR status Closed as program error. Error description A WebSphere for z/OS java client invokes EJB methods in an application deployed on a WebSphere Distributed 4.0.7 server running on a Windows XP workstation. The java client logs a java.io.IOException and a java.rmi.MarshalException due to mismatched serialization UIDs between the java client and the server - but the serialization UIDs are actually identical. The logs look like this: ---- java.io.IOException: Mismatched serialization UIDs : Source (Rep. IDRMI:test.Data:97ECCCC3F219672B:43162EF082E4AB06) = 43162EF082E4AB06 whereas Target (Rep. ID RMI:test.Data:B5D31BEF76D1BD18:B967EAF253EBA451) = B967EAF253EBA451 at com.ibm.rmi.io.IIOPInputStream.throwExceptionType (Native Method) at com.ibm.rmi.io.IIOPInputStream.simpleReadObject (IIOPInputStream.java:249) at com.ibm.rmi.io.ValueHandlerImpl.readValueInternal (ValueHandlerImpl.java:239) at com.ibm.rmi.io.ValueHandlerImpl.readValue (ValueHandlerImpl.java:180) at com.ibm.rmi.iiop.CDRInputStream.read_value (CDRInputStream.java:1499) at test._Test_Stub.getData(_Test_Stub.java:236) at test.TestClient.main(TestClient.java:29) . Exception in thread java.rmi.MarshalException: CORBA MARSHAL 1229123584 No; nested exception is: org.omg.CORBA.MARSHAL: Unable to read value from underlying bridge : Mismatched serialization UIDs : Source (Rep. IDRMI:test.Data:97ECCCC3F219672B:43162EF082E4AB06) = 43162EF082E4AB06 whereas Target (Rep. ID RMI:test.Data:B5D31BEF76D1BD18:B967EAF253EBA451) = B967EAF253EBA451 minor code: 4942F000 completed: No org.omg.CORBA.MARSHAL: Unable to read value from underlying bridge : Mismatched serialization UIDs : Source (Rep. IDRMI:test.Data:97ECCCC3F219672B:43162EF082E4AB06) = 43162EF082E4AB06 whereas Target (Rep. ID RMI:test.Data:B5D31BEF76D1BD18:B967EAF253EBA451) = B967EAF253EBA451 minor code: 4942F000 completed: No at com.ibm.rmi.iiop.CDRInputStream.read_value (CDRInputStream.java:1517) at test._Test_Stub.getData(_Test_Stub.java:236) at test.TestClient.main(TestClient.java:29) ============================= Adjusting the serialization UID declaration to include the attribute "private" solved the serialization UID mismatch, but the parameter marshalling still failed. If the client passed a null object on the ejb method invocation then the following exceptions were returned. ---- java.io.IOException: No sending context was generated. java.io.IOException: No sending context at com.ibm.rmi.io.IIOPInputStream.throwExceptionType (Native Method) at com.ibm.rmi.io.IIOPInputStream.simpleReadObject (IIOPInputStream.java:249) at com.ibm.rmi.io.ValueHandlerImpl.readValueInternal (ValueHandlerImpl.java:239) at com.ibm.rmi.io.ValueHandlerImpl.readValue (ValueHandlerImpl.java:180) at com.ibm.rmi.iiop.CDRInputStream.read_value (CDRInputStream.java:1499) at test._Test_Stub.getData(_Test_Stub.java:236) at test.TestClient.main(TestClient.java:29) . Exception in thread "P=720048:O=0:CT" java.rmi.MarshalException: CORBA MARSHAL 1229123584 No; nested exception is: org.omg.CORBA.MARSHAL: Unable to read value from underlying bridge : No sending context minor code: 4942F000 completed: No org.omg.CORBA.MARSHAL: Unable to read value from underlying bridge : No sending context minor code: 4942F000 completed: No at com.ibm.rmi.iiop.CDRInputStream.read_value (CDRInputStream.java:1517) at test._Test_Stub.getData(_Test_Stub.java:236) at test.TestClient.main(TestClient.java:29) ==== If the client passed a non-null object on the invocation then the following exceptions were returned. ---- Exception in thread java.rmi.MarshalException: CORBA MARSHAL 0 No; nested exception is: org.omg.CORBA.MARSHAL: minor code: 0 completed: No org.omg.CORBA.MARSHAL: minor code: 0 completed: No at java.lang.Class.newInstance0(Native Method) at java.lang.Class.newInstance(Class.java:262) at com.ibm.rmi.util.Utility.readSystemException (Utility.java:1534) at com.ibm.ws390.rmi.corba.ClientDelegate.invoke (ClientDelegate.java:669) at org.omg.CORBA.portable.ObjectImpl._invoke (ObjectImpl.java:258) at test._Test_Stub.getData(_Test_Stub.java:235) at test.TestClient.main(TestClient.java:29) . The exception thrown in the server looked like this ---- org.omg.CORBA.MARSHAL: Unable to read value from underlying bridge : null minor code: 0 completed: No at com.ibm.rmi.iiop.CDRInputStream.read_value (CDRInputStream.java:1454) at test._EJSRemoteStatelessTest_7a6c606a_Tie.getData (_EJSRemoteStatelessTest_7a6c606a_Tie.java:152) at test._EJSRemoteStatelessTest_7a6c606a_Tie._invoke (_EJSRemoteStatelessTest_7a6c606a_Tie.java:96) at com.ibm.CORBA.iiop.ExtendedServerDelegate.dispatch (ExtendedServerDelegate.java:532) at com.ibm.CORBA.iiop.ORB.process(ORB.java:2450) at com.ibm.CORBA.iiop.OrbWorker.run(OrbWorker.java:186) at com.ibm.ejs.oa.pool.ThreadPool$PooledWorker.run (ThreadPool.java:104) at com.ibm.ws.util.CachedThread.run (ThreadPool.java(Compiled code)) ===== ===== ORB traces taken in the client an on the server show that the WebSphere for z/OS client is sending the wrong partner version information to the WebSphere Distributed server.Local fix Problem summary **************************************************************** * USERS AFFECTED: All users of WebSphere Application Server * * version 4.0.1 for z/OS and OS/390 * **************************************************************** * PROBLEM DESCRIPTION: CORBA::MARSHAL exception on a WebSphere * * distributed server with WebSphere * * V4.0.1 for z/OS and OS/390 as the * * client. * **************************************************************** * RECOMMENDATION: * **************************************************************** This problem occurs when WebSphere for z/OS is acting as the client, and sends a request to a distributed server containing the following context (tag and value): 49424D12 00000008 00000000 00000000 This context can cause various errors demarshalling data on the distributed server: java.lang.ClassNotFoundException: java.io.FileNotFoundException: c:\path\to\ t e s t \ J M S B e a .class at java.io.FileInputStream.open(Native Method) at java.io.FileInputStream.<init>(FileInputStream.java:78) at java.io.FileInputStream.<init>(FileInputStream.java:109) java.io.IOException at com.ibm.rmi.iiop.Message.readFully(Message.java:322) at com.ibm.rmi.iiop.Message.createFromStream(Message.java:172) at com.ibm.CORBA.iiop.IIOPConnection.createInputStream (IIOPConnection.java:742) at com.ibm.CORBA.iiop.StandardReaderThread.run (StandardReaderThread.java:136)Problem conclusion Initialization and management of context 49424D12 was updated to correct marshalling conflicts with WebSphere on the distributed platform. APAR PQ81448 is associated with SERVICE LEVEL W401607 of WebSphere Application Server version 4.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: PQ81451 UQ83165 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 #: PQ81448
IBM Group: Software Group
Modified date: Jan 3, 2004
(C) Copyright IBM Corporation 2000, 2006. All Rights Reserved.