Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

omniORB4 OBJECT_NOT_EXIST callback exception

8 views
Skip to first unread message

brian_mk

unread,
Apr 30, 2008, 8:10:13 AM4/30/08
to
I have a Windows client (Vista) that registers a number of callback
objects with a Linux server in the way described in the book 'Advanced
CORBA Programming with C++' (Chapter 20):-

module CCS {
struct CallbackInfo {
:
:
};

interface Callback {
void notify(in any data);
};

interface CBRegistration {
void unregister();
};

interface xxx {
CBRegistration register_callback(
in Callback cb;
in CallbackInfo why;
);
};
};

When the server makes a callback, this sometimes works ok but other
times it fails with an OBJECT_NOT_EXIST exception.
After one failure, it appears that the other registered callbacks also
fail in the same way.
When the Windows client subsequently exits, it still manages to
successfully call the server to unregister the callbacks. It does this
by calling the unregister() method for each of the callback objects in
turn. This proves that the callback objects still exist on the client
and have not been inadvertently destroyed.

When I use a test client running on the same Linux machine as the
server, I don't see the problem.

I have added debug to log the exception minor code (using e.minor() )
- this is set to zero.
I have added a few retries with a delay between each but all the retry
attempts fail in the same way.
I have tried changing some configuration parameters such as
verifyObjectExistsAndType, lcdMode, strictIIOP.

We are using omniORB 4.0.7.
Linux server is running under Kubuntu 7.10.

Any help greatly appreciated.

Regards,

Brian.

brian_mk

unread,
Apr 30, 2008, 11:02:21 AM4/30/08
to

Further info:-

The windows client is using IIOP.NET.
If I substitute another windows client test harness that uses omniORB
4.0.7, then the callbacks work fine every time.

I tried setting the omniORB trace level to 10 on the server side.
That tells me the exception is in GIOP_C.cc: 247, omniObjRef.cc: 780.

Duncan Grisby

unread,
May 5, 2008, 12:34:28 PM5/5/08
to
In article <5db042f8-116e-4e1e...@24g2000hsh.googlegroups.com>,
brian_mk <brian...@gmail.com> wrote:

[...]


>The windows client is using IIOP.NET.
>If I substitute another windows client test harness that uses omniORB
>4.0.7, then the callbacks work fine every time.
>
>I tried setting the omniORB trace level to 10 on the server side.
>That tells me the exception is in GIOP_C.cc: 247, omniObjRef.cc: 780.

The exception is coming from the Windows side -- omniORB is merely
passing it along. You need to look at the IIOP.NET end to work out
what the problem is.

Cheers,

Duncan.

--
-- Duncan Grisby --
-- dun...@grisby.org --
-- http://www.grisby.org --

0 new messages