PQ81451: WebSphere for z/OS java client receives java.io.IOException: Mismatched serialization UIDs, or java.rmi.MarshalException

 A fix is available

Obtain the fix for this APAR



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.
=====
This problem can also manifest itself as a
java.lang.ClassNotFoundException: java.io.FileNotFoundException:
Where the class not found appears to have spaces between each
letter of the class name, like this:
C:\Programme\WebSphere\AppClient\properties\ t e s t \ J M S B e
a .class
The class in question implements Streamable, and its readObject
method is incorrectly demarshalling the wide character string
class name as a UTF-8 string. The spaces are actually binary
0x00 characters, and their presence explains why the class
cannot be found - there is no class with embedded nulls in the
name. The class not found errors cause the class's readObject
method to throw a Marshal exception.
Local fix Problem summary
****************************************************************
* USERS AFFECTED: All users of WebSphere Application Server    *
*                 V5.0 for z/OS                                *
****************************************************************
* PROBLEM DESCRIPTION: CORBA::MARSHAL exception on             *
*                      distributed server with WebSphere       *
*                      for z/OS 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 PQ81451 is associated with SERVICE LEVEL W502001 of
WebSphere Application Server V5.0 for z/OS.
Temporary fix Comments
APAR information
APAR number PQ81451
Reported component name WEBSPHERE FOR Z
Reported component ID 5655I3500
Reported release 500
Status CLOSED PER
PE NoPE
HIPER NoHIPER
Special Attention NoSpecatt
Submitted date 2003-11-26
Closed date 2004-01-24
Last modified date 2004-02-04

APAR is sysrouted FROM one or more of the following:
PQ81448

APAR is sysrouted TO one or more of the following:

Modules/Macros
BBOUBINF          

Publications Referenced

Fix information
Fixed component name WEBSPHERE FOR Z
Fixed component ID 5655I3500

Applicable component levels
R500 PSY UQ84418    UP04/01/30 P F401

  Fix is available
Select the PTF appropriate for your component level. You will be required to sign in. Distribution on physical media is not available in all countries.


Document Information


Current web document: swg1PQ81451.html
Product categories: Software > Application Servers > Distributed Application & Web Servers > WebSphere Application Server for z/OS
Operating system(s):
Software version: 500
Software edition:
Reference #: PQ81451
IBM Group: Software Group
Modified date: Feb 4, 2004