A fix is available
APAR status
Closed as program error.
Error description
If GIOP 1.1 is being used by a client to invoke an EJB in WebSphere for z/OS, and an exception is thrown by that EJB, the response message sent from the Server to Client may be partially incorrectly encoded in GIOP 1.2 format. . A consequence of this will be that the Client may produce an exception that does not match the exception which the EJB threw. This is because the client will expect a response fully encoded in GIOP 1.1, but will receive a response partially encoded in GIOP 1.2. . A ras_trace_detail=(3,4), and ORBRas=all trace is needed to confirm that this is the problem. . Below are the two particular exceptions / cases that were tested: . Case 1: EJB throws a CORBA.NO_RESOURCES exception, the Client produces a "CORBA.MARSHAL: Zero length wstring detected". . Case 2: EJB throws a java.rmi.RemoteException, the Client produces a "org.omg.CORBA.MARSHAL: String not terminated by NUL char". . Note that the actual exception thrown by the client will depend on the client itself based on how the client handles a partially incorrect encoded response. . Below are the relevant tracepoints for the above 2 cases: . Case 1 ------> . * EJB throws a NO_RESOURCES in the Servant region: CORBA.NO_RESOURCES - B6EACTS.txt Trace: 2008/09/02 12:46:45.440 01 t=6BC030 c=0.3 key=P8 (13007002) ThreadId: 00000036 FunctionName: com.ibm.ejs.container.util.ExceptionUtil SourceId: com.ibm.ejs.container.util.ExceptionUtil Category: SEVERE ExtendedMessage: BBOO0220E: CNTR0020E: EJB threw an unexpected (non-declared) exception during invocation of method "op_except" on bean "BeanId(InteropTest#InteropTestEJB.jar#InterTest, null)". Exception data: org.omg.CORBA.NO_RESOURCES: --thrown from op_except(1) vmcid: 0x0 minor code: F completed: Yes <cut> * Incorrectly encoded response sent back by WebSphere in the Control region: . Trace: 2008/09/02 12:46:45.663 01 t=6B41B8 c=0.3 key=S2 (03021034) Description: CF_TCP_Connection::send_data(bool, bool)Write Data at line: 1406 vector: 0 Data: data_address=3fee7d80, data_length=3660 (**EBCDIC Eyecatcher Omitted) +---------------------------------------------------------+ |OSet| Address = 3fee7d80 Length = 0e4c | ASCII | +----+-----------------------------------+----------------+ |0000|47494F50 01000001 00000E40 00000003|GIOP.......@....| |0010|00000009 00000DE8 00BDBDBD 7FFFFF0A|................| |0020|0000003F 524D493A 6A617661 2E726D69|...?RMI:java.rmi| |0030|2E52656D 6F746545 78636570 74696F6E|.RemoteException| |0040|3A383733 31313641 46453242 33303033|:873116AFE2B3003| |0050|433A4238 38433944 34454445 45343741|C:B88C9D4EDEE47A| |0060|323200BD 00000008 0101BDBD 00000000|22..............| |0070|7FFFFF0A 00000023 49444C3A 6F6D672E|.......#IDL:omg.| |0080|6F72672F 434F5242 412F5753 7472696E|org/CORBA/WStrin| |0090|6756616C 75653A31 2E3000BD 00000004|gValue:1.0......| |00a0|00000000 FFFFFFFE 7FFFFF0A 00000045|...............E| <cut> . In the above snippet: Number of bytes in the chunk = (IDL long) 0x00000004 Chunk octet = 0x00000000 End tag = 0xFFFFFFFE . Therefore wstring data is only 0x00000000 (chunk octet) - which is GIOP 1.2 format as CDR (Common Data Representation) means that length of wstring is 0. In GIOP 1.0, a termination charactor should be included and which means the length will not be 0. . * Client throws following error: >java.rmi.MarshalException: CORBA MARSHAL 1213468698■Error unmarshaling value ■org.omg.CORBA.MARSHAL: Error unmarshaling value ■org.omg.CORBA.MARSHAL: Zero length wstring detected vmcid: 0x48541000 minor code: 34 completed: No vmcid: 0x48541000 minor code: 26 completed: No . Case 2 ------> . * java.rmi.RemoteException - B6EACTS.txt Trace: 2008/09/02 12:47:25.367 01 t=6BC030 c=0.3 key=P8 (13007002) ThreadId: 00000036 FunctionName: com.ibm.ejs.container.util.ExceptionUtil SourceId: com.ibm.ejs.container.util.ExceptionUtil Category: SEVERE ExtendedMessage: BBOO0220E: CNTR0020E: EJB threw an unexpected (non-declared) exception during invocation of method "op_except" on bean "BeanId(InteropTest#InteropTestEJB.jar#InterTest, null)". Exception data: java.rmi.RemoteException: --thrown from op_except(2) <cut> * Incorrectly encoded response sent back by WebSphere in the Control Region: Trace: 2008/09/02 12:47:25.491 01 t=6B7BF8 c=0.3 key=S2 (04079006) Description: send_message Method Name: ZIOPChannelBridge::send_message(ORB_Request *, void *, int) message: data_address=3ff49430, data_length=1024 +----------------------------------------------------------+ |OSet| Address = 3ff49430 Length = 0400 || ASCII | +----+-----------------------------------++----------------+ |0000|47494F50 01000001 00000CF8 00000003||GIOP............| |0010|00000009 00000C9C 00BDBDBD 7FFFFF0A||................| |0020|0000003F 524D493A 6A617661 2E726D69||...?RMI:java.rmi| |0030|2E52656D 6F746545 78636570 74696F6E||.RemoteException| |0040|3A383733 31313641 46453242 33303033||:873116AFE2B3003| |0050|433A4238 38433944 34454445 45343741||C:B88C9D4EDEE47A| |0060|323200BD 00000008 0101BDBD 00000000||22..............| |0070|7FFFFF0A 00000023 49444C3A 6F6D672E||.......#IDL:omg.| |0080|6F72672F 434F5242 412F5753 7472696E||org/CORBA/WStrin| |0090|6756616C 75653A31 2E3000BD 0000003C||gValue:1.0.....<| |00a0|00000038 002D002D 00740068 0072006F||...8.-.-.t.h.r.o| |00b0|0077006E 00200066 0072006F 006D0020||.w.n. .f.r.o.m. | |00c0|006F0070 005F0065 00780063 00650070||.o.p._.e.x.c.e.p| |00d0|00740028 00320029 002D002D FFFFFFFE||.t.(.2.).-.-....| |00e0|7FFFFF0A 00000045 524D493A 5B4C6A61||.......ERMI:[Lja| <cut> . In the above snippet: . Same as case 1 the CDR is in GIOP 1.2 format. In GIOP 1.1, length is number of wstring charactors. In this case, zWAS has set the number of wstring data bytes. . * Client throws the following error: ->java.rmi.MarshalException: CORBA MARSHAL 1213468698■Error unmarshaling value ■org.omg.CORBA.MARSHAL: Error unmarshaling value ■org.omg.CORBA.MARSHAL: String not terminated by NUL char vmcid: 0x48541000 minor code: 35 completed: No vmcid: 0x48541000 minor code: 26 completed: No
Local fix
Problem summary
**************************************************************** * USERS AFFECTED: Users that connect to WebSphere Application * * Server for z/OS using a GIOP 1.0 or 1.1 * * client. * **************************************************************** * PROBLEM DESCRIPTION: A GIOP 1.0 or 1.1 client application * * connecting to WebSphere Application * * Server for z/OS receives an * * org.omg.CORBA.MARSHAL exception. * **************************************************************** * RECOMMENDATION: * **************************************************************** When a WebSphere application that is invoked over IIOP throws an exception, the server must marshal the exception which is then demarshaled by the client. The server marshals the exception in the UnknownExceptionInfo standard service context (service context ID = 9). The marshaling and demarshaling are handled differently depending on the version of GIOP that is being used. Currently, WebSphere marshals the exception using GIOP 1.2 regardless of the GIOP version that the client uses. If the client is using GIOP 1.0 or 1.1, it will be unable to demarshal the exception, resulting in some type of CORBA.MARSHAL exception in the client. An example of such an exception is: org.omg.CORBA.MARSHAL: String not terminated by NUL char
Problem conclusion
\ Code was added to honor the client's GIOP version when marshaling the UnknownExceptionInfo standard service context. APAR PK82640 is currently targeted for inclusion in Service Level (Fix Pack) 7.0.0.3 of WebSphere Application Server V7.0. Please refer to URL: //www.ibm.com/support/docview.wss?rs=404&uid=swg27006970 for Fix Pack availability.
Temporary fix
Comments
APAR Information
APAR number
PK82640
Reported component name
WEBSPHERE FOR Z
Reported component ID
5655I3500
Reported release
700
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2009-03-16
Closed date
2009-03-19
Last modified date
2009-05-03
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Modules/Macros
BBGUBINF BBOUBINF
Fix information
Fixed component name
WEBSPHERE FOR Z
Fixed component ID
5655I3500
Applicable component levels
R700 PSY UK45160
UP09/04/06 P F904
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.
[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SS7K4U","label":"WebSphere Application Server for z\/OS"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"7.0","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}}]
Document Information
Modified date:
10 February 2022