IBM Support

ORB CORBA COMM FAILURE

Troubleshooting


Problem

A remote client ORB connection, attempting to obtain an initial context with the provider URL, fails with a javax.naming.CommunicationException.

Symptom

Remote client exception:

javax.naming.CommunicationException: A communication failure occurred while attempting to obtain an initial context with the provider URL: "corbaloc:iiop:192.168.0.210:2810/NameServiceServerRoot". Make sure that any bootstrap address information in the URL is correct and that the target name server is running. A bootstrap address with no port specification defaults to port 2809. Possible causes other than an incorrect bootstrap address or unavailable name server include the network environment and workstation network configuration. [Root exception is org.omg.CORBA.COMM_FAILURE: purge_calls:1988 Reason: CONN_ABORT (1), State: ABORT (5) vmcid: IBM minor code: 306 completed: Maybe]
..
Caused by: org.omg.CORBA.COMM_FAILURE: purge_calls:1988 Reason: CONN_ABORT (1), State: ABORT (5) vmcid: IBM minor code: 306 completed: Maybe
at com.ibm.rmi.iiop.Connection.purge_calls(Connection.java:1987)
at com.ibm.rmi.iiop.Connection.doReaderWorkOnce(Connection.java:3103)
at com.ibm.rmi.transport.ReaderThread.run(ReaderPoolImpl.java:138)


Exception on the target server:

java.lang.IllegalStateException: Limit reached for key: com.ibm.ws.orbimpl.transport.ConnectionKey@ac86c176,
host= xxxxx, port=xxxxx¨
at com.ibm.rmi.util.LimitedMultiMap.put(LimitedMultiMap.java:202)
at com.ibm.rmi.transport.ConnectionTableImpl.addConnection(ConnectionTableImpl.java:297)

Cause

The orb connection management code caches connections by using a connection key based on the peer IP address and port number. This connection key must be unique. In order to avoid possible duplicate connection keys, the client ORB's localhost value should be configured as the actual host IP address. Setting the property to the string "LocalHost" or "127.0.0.1" can result in undesirable behavior for both clients and servers, particularly for but not limited to callback behavior, usage of server IORs, and creation of ORB connections.

Resolving The Problem

The problem is avoided via setting the following values on the remote client ORB:

com.ibm.ws.orb.transport.useMultiHome=false
com.ibm.CORBA.LocalHost=<ip addr of client nic>


or

com.ibm.CORBA.ConnectTimeout=<value in seconds>

This will cause an explicit bind to occur and prevent duplicate port assignments from the OS.

[{"Product":{"code":"SSEQTP","label":"WebSphere Application Server"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Component":"Object Request Broker (ORB)","Platform":[{"code":"PF016","label":"Linux"}],"Version":"9.0;8.5.5;8.0;7.0","Edition":"Base;Network Deployment","Line of Business":{"code":"LOB36","label":"IBM Automation"}}]

Document Information

Modified date:
16 June 2021

UID

swg21455733