|
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:
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:
|
|
|
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:
- WebSphere Application Server z/OS CSIv2 security problem when using
RMI/IIOP, this is fixed by PQ97970 (W502020) or PQ97973 (W510203)
- 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).
- 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 |
|
|
|
|
|
|