The WebSphere Application Server V5.0 and V5.1 Information
Centers describes the WebSphere Application Server on distributed
platforms. It identifies Java™ properties available 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:
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:
|
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 EJB method invokes an EJB method on
WebSphere Application Server distributed platforms
- WebSphere Application Server z/OS client invokes an EJB 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
Understand 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 lookup from WebSphere z/os with WSAM
installed to WebSphere 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
Explicitely code the initial context factory prior to doing a lookup
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 Interop issues that may need to be considered:
- WebSphere z/OS CSIv2 security problem when using RMI/IIOP, this is
fixed by PQ97970 (W502020) or PQ97973 (W510203)
- WebSphere z/OS problems when sending RMI/IIOP requests to Distributed
WebSphere cluster. This is fixed by PK01516 (W502025) and PQ02099
(W502026) and PK01705 (W510208).
- Distributed WebSphere WLM sent non-Corba compliant context, this is
fixed by Distributed WebSphere apar PQ83990 (Distributed WebSphere 5.0.2.7
and above).
|