|
Problem |
TroubleShooting for ORB problems with WebSphere®
Application Server. This should help address common issues with this
component before calling IBM® support and save you time. |
|
Solution |
Getting background information on ORB
An Object Request Broker (ORB) manages the interaction between clients
and servers, using the Internet InterORB Protocol (IIOP). It enables
clients to make requests and receive responses from servers in a
network-distributed environment. This Information
Center article describes the ORB and its use in WebSphere:
TroubleShooting steps to help resolve ORB problems
1. Are you receiving a SocketException, ConnectionException, or other
network related exception when making an ORB call?
Yes - If the exception is a UnknownHostException, check that the client is
able to resolve the hostname of the server being called. If you get a
message stating that the socket was closed, make sure that the server is
listening on port being called by the ORB client, that there are no
firewalls blocking the remote port, or that security is not closing the
socket because of an SSL problem. This technote
explains how to configure the ORB when a firewall is being used.
No - Move to next question.
2. Does your ORB request fail during serialization/deserialization?
Yes - Is the remote ORB a 3rd party ORB? If so you will need to find out
if its supported for use with WebSphere by visiting the prerequisite
page for your WebSphere release. If this is an IBM ORB, make sure you are
using the same SDK level as the server (i.e. 1.4.2) to avoid
interoperability issues.
No - Move to next question.
3. Are you having a performance problem with ORB traffic?
Yes - This technote
describes how to disable ORB fragmentation which can provide better
performance for large ORB messages. If disabling fragmenting does not
resolve the slow performance, check the OS for TCP/IP errors or network
problems using ping (latency).
No - Move to next question.
4. Do you get an "org.omg.CORBA.COMM_FAILURE" exception when making ORB
calls?
Yes - COMM_FAILURES are typically seen when there has been a network
problem or if the remote server is not running. An IOR
can contain a stale hostname/port which would also result in a
COMM_FAILURE. An ORB
trace on the client will show the hostname/port being called. With
this information, you will be able to verify that the remote server is
listening on the port in question using an OS tool like netstat.
No - Move to next question.
5. Do you get an "org.omg.CORBA.BAD_OPERATION" exception when making ORB
calls?
Yes - This exception is typically seen when an ORB client and ORB server
are using EJB stubs that are not built against the same SDK version. This
APAR
addressed another situation that resulted in the BAD_OPERATION exception
at earlier version of WebSphere v5
No - Move to next question.
6. Do you get an "org.omg.CORBA.NO_IMPLEMENT" exception when making ORB
calls?
Yes - A NO_IMPLEMENT exception means that a requested object could not be
located. This indicates that even though the operation that was invoked
exists (it has an IDL definition), no implementation for that operation
exists. For example, a NO_IMPLEMENT error is raised when a server doesn’t
exist or is not running when a clients initiates a request.
No - Move to next question
7. Do you get an "org.omg.CORBA.NO_MEMORY" exception when making ORB
calls?
Yes - The NO_MEMORY exception is typically seen under load if the
application is using pass by value to communicate with the remote ORB. If
possible, pass
by reference should be used to reduce the memory usage if possible.
This technote
describes another situation related to garbage collection that can result
in a NO_MEMORY error.
No - Move to next question
8. Do you get an "org.omg.CORBA.NO_PERMISSION" exception when making ORB
calls?
Yes - The NO_PERMISSION exception is a security related problem when the
client is attempting to connect to a remote ORB. A WebSphere security
trace on the remote ORB will typically indicate why the client's
request is being rejected.
No - Move to next question
9. Do you get an "org.omg.CORBA.OBJECT_NOT_EXIST" exception when making
ORB calls?
Yes - The OBJECT_NOT_EXIST exception indicates that the remote object
requested by the client is not available. The first step to verify that
the object is being registered with the LSD on the target server. An easy
way to do this is with the dumpNameSpace script in the
<WSAS_ROOT>/bin directory. If restarting every process in the cell
resolves the problem, it is possible that the LSD has stale information
about the object. This technote
refers to an APAR that resolves this problem
No - Move to next question
10. Do you get an "org.omg.CORBA.TRANSIENT" exception when making ORB
calls?
Yes - The TRANSIENT exception is usually followed by a root exception
discussed in question #1 of this document. These are typically connection
related issues and should be debugged using an ORB
trace to determine where the client is attempting to connect.
What to do Next?
If the preceding steps did not help solve your problem, see the MustGather
for ORB problems to continue investigation. |
|
|
|
|
|
|