Discussion:
[omniORB] COMM_FAILURE handling problem in Python
Jan Fedorek
2008-06-02 21:18:31 UTC
Permalink
Hi,
I'm using OmniORB v4.1.2 from Python. I'd like to catch the COMM_FAILURE exception so I use method
omniORB.installCommFailureExceptionHandler. System raise the exception but the handler is not called.

This is written in the log:

...
omniORB: throw giopStream::CommFailure from giopStream.cc:874(0,NO,COMM_FAILURE_UnMarshalArguments)
omniORB: AsyncInvoker: thread id = 5 has exited. Total threads = 4
omniORB: AsyncInvoker: thread id = 4 has exited. Total threads = 3

this is the part of source code:
...
omniORB.installCommFailureExceptionHandler(0, self.__commHandler)
...
def __commHandler(self, cookie, retries, ex):
print "__commHandler: `%s` : `%s` : `%s`" % (cookie, retries, ex)
sys.stdout.flush()
return False

Is there something else I need to do to activate the exception handling ?

Thanks & Regards,
Jano
Duncan Grisby
2008-06-04 15:44:29 UTC
Permalink
Post by Jan Fedorek
I'm using OmniORB v4.1.2 from Python. I'd like to catch the
COMM_FAILURE exception so I use method
omniORB.installCommFailureExceptionHandler. System raise the exception
but the handler is not called.
...
omniORB: throw giopStream::CommFailure from giopStream.cc:874(0,NO,COMM_FAILURE_UnMarshalArguments)
That isn't a CORBA::COMM_FAILURE. It's an internal omniORB CommFailure.
In some cases that is converted into a CORBA::COMM_FAILURE, but in this
case it is handled internally to omniORB.

Are you seeing an actual CORBA.COMM_FAILURE exception in your Python code?

What is the problem you are actually trying to solve?

Cheers,

Duncan.
--
-- Duncan Grisby --
-- ***@grisby.org --
-- http://www.grisby.org --
Loading...