[omniORB] COMM_FAILURE - omniORB eg3 example

Kirkpatrick, James E james.e.kirkpatrick@lmco.com
Thu, 28 Jun 2001 08:41:24 -0700


This is a follow-on to my post last night (COMM_FAILURE when invoking
_non_existent on object).

The problem (or question) was: "Why is omniORB throwing COMM_FAILURE when a
client tries to use a reference to a non-existing server obtained from
omniNames?"

Here's a simple example of the problem that I'm seeing.  Look in the
omni/src/examples/echo directory within the omniORB tree and find the "eg3"
example described in the omniORB3 User's Guide.  If you run the "eg3_impl"
server (in the background), and then run the "eg3_clt" everything works fine
-- as expected.

If you kill the background "eg3_impl" server process and THEN run the
"eg3_clt" again, it looks up the reference (which still exists in the name
service) to the now "dead" server object, and attempts to invoke the
echostring() operation via that reference.  However, this time the orb
throws a COMM_FAILURE exception.

It seems to me that the orb should be throwing an OBJECT_NOT_EXIST exception
since the object has gone away forever (or possibly a TRANSIENT exception).
In either case, I don't see why omniORB is throwing COMM_FAILURE in this
situation.

Could anyone tell me why?

Thanks,
  JK