Interoperability - WebSphere Application Server V5.0/V5.1 for z/OS and WebSphere Application Server V5.0/V5.1 for distributed platforms
 Technote (troubleshooting)
 
Problem(Abstract)
The setup required for applications spread across IBM® WebSphere® Application Server on the distributed (such as AIX®, Microsoft® Windows® and Linux®) and z/OS® platforms requires understanding of the differences in implementation related to Java™ and CORBA.
 
Cause
The WebSphere Application Server V5.0 and V5.1 Information Centers describe the WebSphere Application Server on distributed platforms. It identifies Java™ properties available that use a single ASCII byte.

com.ibm.CORBA.ORBCharEncoding
Specifies the name of the native codeset that the ORB is to use for character data (referred to as NCS-C in the CORBA/IIOP specification). WebSphere Application Server on the distributed platform, starting with V5.0 uses UTF8. Versions 3.5 and 4.0 use ISO8859_1 (also known as Latin-1.)

The only values which may be specified in a distributed client or server that interoperates with a WebSphere Application Server for z/OS server or client are:

  • ISO8859_1
  • ASCII

com.ibm.CORBA.ORBWCharDefault
Specifies the default codeset that the ORB is to use for transmission of wide character data when no codeset for wide character data is found in the tagged component in the Interoperable Object Reference (IOR) or in the GIOP service context. If no codeset for wide character data is found and this property is not set, the ORB raises an exception, as specified in the CORBA specification. There is no default value set for this property.

The only value which may be specified in a distributed client or server that interoperates with a WebSphere for z/OS server or client is:
  • UCS2
 
Resolving the problem
Examples of interoperability issues:
  • WebSphere Application Server z/OS servlet invokes an Enterprise JavaBean™ (EJB™) method on WebSphere Application Server distributed platforms
  • WebSphere Application Server z/OS Enterprise JavaBean method invokes an Enterprise JavaBean method on WebSphere Application Server distributed platforms
  • WebSphere Application Server z/OS client invokes an Enterprise JavaBean method on WebSphere Application Server distributed platforms

Compatibility Details:
  • The minor code C9C211CB says that the two codesets are not compatible.
  • Code_set_a is 05010001 stands for UTF-8 (multibyte ASCII).
  • Code_set_b is 10020417 stands for IBM-1047 (single byte EBCDIC).
  • WebSphere Application Server for z/OS cannot communicate with clients or servers using UTF-8.
  • WebSphere Application Server for distributed platform clients and servers must use single byte ASCII (ISO8859_1) instead of multibyte ASCII (UTF-8) to interoperate with WebSphere Application Server for z/OS servers and clients.

Error Messages and Trace
Understanding the common error messages and how to enable trace will help you decide when to change your configuration to support interoperability.

At runtime, the error message is logged by the calling z/OS servlet/ejb/client:
Trace: 2003/01/20 15:11:59.333 01 t=9D46E0 c=4.B key=S2 (0000000A)
.  Description: Log Boss/390 Error
.  from filename: ./bboocomm.cpp
.  at line: 6930
.  error message: BBOU0051E Internal communications error:
.                           REASON=C9C20C62.
Trace: 2003/01/20 15:11:59.334 01 t=9D46E0 c=4.B key=S2 (00000005)
.  Description: Catch CORBA system exception
.  exception id: CORBA::COMM_FAILURE
.  minor code: c9c21149
.  from file: ./bboocomm.cpp
.  at line: 6941


Enabling TRACEDETAIL=(3,4) on the z/OS server will show the following:

Trace: 2003/04/22 13:34:58.749 01 t=9D1C00 c=8.B key=S2 (04040008)
Description: codesets parameters
File: ./bboocds.cpp
Function:
CommonCodeSetServices::code_sets_compatible(CONV_FRAME::CodeSetId,CONV_FRAME::CodeSetId)
code_set_a: 83951617
code_set_b: 268567575
Trace: 2003/04/22 13:34:58.749 01 t=9D1C00 c=8.B key=S2 (04037001)
Description: ORB_Scoped_Resource -- Destructor
Was Registered By Function:
MinorCodeTable::getProcessingFlags(unsigned long)
Was Registered from Line : 1107
Trace: 2003/04/22 13:34:58.749 01 t=9D1C00 c=8.B key=S2 (0402B001)
Description: getDiagnosticData_Func(ULong)
Minor Code : data_address=27d1ebbc, data_length=4
+------------------------------------------------------------------
|OSet| Address = 27d1ebbc Length = 0004 | EBCDIC | ASCII
+----+-----------------------------------+----------------+--------
|0000|C9C211CB |IB.. |....
+------------------------------------------------------------------
|0 ProcessingFlags : data_address=27d1ebd4, data_length=4
+------------------------------------------------------------------
|OSet| Address = 27d1ebd4 Length = 0004 | EBCDIC | ASCII
+----+-----------------------------------+----------------+--------
|0000|00000010 |.... |....
+------------------------------------------------------------------
Trace: 2003/04/22 13:34:58.750 01 t=9D1C00 c=8.B key=S2 (00000004)
Description: Throw CORBA system exception
exception id: CORBA::INTERNAL
minor code: c9c211cb
from filename: ./bboocsm.cpp
at line: 623
Trace: 2003/04/22 13:34:58.751 01 t=9D1C00 c=8.B key=S2 (0000000A)
Description: Log Boss/390 Error
from filename: ./bboocomm.cpp
at line: 6932
error message: BBOU0051E Internal communications error:
REASON=C9C20C62.


Recommended Configuration Changes

Add the following properties to the server on WebSphere Application Server for the distributed platform:
server1 -> orbservice -> custom properties
com.ibm.CORBA.ORBWCharDefault=UCS2
com.ibm.CORBA.ORBCharEncoding=ISO8859_1

com.ibm.CORBA.LocalHost=<IP host name of client>

Add the following properties to the orb.properties file on WebSphere Application Server for distributed platform clients:
com.ibm.CORBA.ORBWCharDefault=UCS2
com.ibm.CORBA.ORBCharEncoding=ISO8859_1

com.ibm.CORBA.LocalHost=<IP host name of client>

When performing a remote look-up from WebSphere Application Server for z/OS, with WSAM installed, to WebSphere Application Server on distributed:

Error Messages and Trace:

Trace: 2005/09/07 13:07:46.786 01 t=7DEB58 c=A5.1 key=P8
FunctionName: com.ibm.ws.naming.util.Helpers                         SourceId: com.ibm.ws.naming.util.Helpers                             Category: WARNING                                                    ExtendedMessage: NMSV0610I: A NamingException is being thrown
Context implementation: com.ibm.ws.naming.jndicos.CNContextImpl         Context method: lookupExt                                               Context name: cell/nodes/node/servers/servername                   Target name: ejb/hello/HelloEJBHome                                     Other data:                                                             Exception stack trace: javax.naming.NamingException: Error during resolve
sun.reflect.GeneratedConstructorAccessor34.newInstance
sun.reflect.DelegatingConstructorAccessorImpl.newInstance          java.lang.reflect.Constructor.newInstance                           java.lang.Class.newInstance3                                        java.lang.Class.newInstance                                        com.ibm.rmi.util.Utility.readSystemException                         com.ibm.rmi.iiop.CDRInputStream.readSystemException(                 com.ibm.ws390.orb.ClientDelegate.invoke(                             org.omg.CORBA.portable.ObjectImpl._invoke                            com.ibm.WsnOptimizedNaming._NamingContextStub.resolve_complete_info  com.ibm.ws.naming.jndicos.CNContextImpl.cosResolve(                  com.ibm.ws.naming.jndicos.CNContextImpl.doLookup(                    com.ibm.ws.naming.jndicos.CNContextImpl.doLookup(                    com.ibm.ws.naming.jndicos.CNContextImpl.lookupExt(                   com.ibm.ws.naming.jndicos.CNContextImpl.lookup(                      com.ibm.ws.naming.util.WsnInitCtx.lookup(                          com.ibm.ws.naming.util.CyaneaLdapContextImpl.                  lookup(CyaneaLdapContext
javax.naming.InitialContext.lookup                                  hello.HelloServlet.doPost(HelloServlet.java:71)                    

Recommended Configuration Changes
Explicitly code the initial context factory prior to doing a look-up operation as in the example below.

Hashtable env = new Hashtable();                            
env.put(Context.INITIAL_CONTEXT_FACTORY,                    
      "com.ibm.websphere.naming.WsnInitialContextFactory");  
InitialContext initialContext = new InitialContext(env);    
       
Other Interoperability issues that may need to be considered:
  1. WebSphere Application Server z/OS CSIv2 security problem when using RMI/IIOP, this is fixed by PQ97970 (W502020) or PQ97973 (W510203)
  2. WebSphere Application Server z/OS problems when sending RMI/IIOP requests to Distributed WebSphere Application Server cluster. This is fixed by PK01516 (W502025) and PQ02099 (W502026) and PK01705 (W510208).
  3. Distributed WebSphere Application Server WLM sent non-Corba compliant context, this is fixed by Distributed WebSphere Application Server APAR PQ83990 (Distributed WebSphere Application Server 5.0.2.7 and above).
 
 
Cross Reference information
Segment Product Component Platform Version Edition
Application Servers WebSphere Application Server General
 
 


Document Information


Current web document: swg21154894.html
Product categories: Software > Application Servers > Distributed Application & Web Servers > WebSphere Application Server for z/OS > Migration
Operating system(s): z/OS
Software version: 5.1
Software edition:
Reference #: 1154894
IBM Group: Software Group
Modified date: Dec 22, 2005