The minor of a CORBA_SystemException



Hi there,

While I was trying to figure out what the problem was with a specific
remote method-call that is always returning the CORBA Exception
COMM_FAILURE:1.0, I can across this page:

http://info.borland.com/techpubs/bes/v6/updates/except_cpp.html


It explains this about the exception:

[quote]
An existing connection may have closed due to failure at the other end
of the connection. A new connection request may have failed due to
resource limits on the client or server machine (the maximum number of
connections has been reached). When COMM_FAILURES occur due to system
exceptions, the system error number is set in the minor code of the
COMM_FAILURE. Check the minor code against the system-specific error
numbers (for example, in the include/sys/errno.h or msdev\include
\winerror.h files).
[/quote]

So I started trying to get that minor number out of the exception.

It looks like (after reading the ORBit2 sourcecode) the minor has been
set in an object of the type CORBA_SystemException in ev->_any._value
(in case ev is a pointer to my CORBA_Environment variable).

While reading the ORBit2 sourcecode, however, I came across the
following code:

void
CORBA_exception_set_system (CORBA_Environment *ev,
			    const CORBA_char *except_repos_id,
			    CORBA_completion_status completed)
{
	CORBA_SystemException *se;

	g_return_if_fail (ev != NULL);

	se = CORBA_SystemException__alloc ();
	/* I have never seen a case where 'minor' is actually necessary */
	se->minor = 0 /* minor */;
	se->completed = completed;
	CORBA_exception_set (
		ev, CORBA_SYSTEM_EXCEPTION, except_repos_id, se);
}


Reading that, it looks like the minor is always set to 0. Reading the
specification (I don't know whether or not the specification above is
correct) it should be something like se->minor = errno, no?



-- 
Philip Van Hoof, Software Developer @ Cronos
home: me at freax dot org
gnome: pvanhoof at gnome dot org
work: philip dot vanhoof at cronos dot be
junk: philip dot vanhoof at gmail dot com
http://www.freax.be, http://www.freax.eu.org



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]