[omniORB] Method invocation hangs
bjorn rohde jensen
shamus@tdcadsl.dk
Sat, 09 Feb 2002 00:29:03 +0100
Hi guys,
Well, since this seems to be a transport problem, i would suggest
starting up a network sniffer to have a look at what is going on.
I highly recommend using Ethereal, since it can decode iiop trafic
for you, is free and has a fairly nice gui.
My guess at the cause for this would be DNS, simply because, i think,
it is the most common cause of these sorts problems. I would suggest,
you dump the relevant IORs and use catior to see, what addresses are
actually being adverticed. Do you use hosts with multiple interfaces?
ORBs using ip-addresses in their IORS might publish the wrong one. If
you are using a mixed windoze/anything else enviroment, good old WINS
might disagree with the DNS and cause all sorts of mischief.
I guess, the assumption of a fully functional transport layer is
sort of an Achillis heel of CORBA:)
Yours sincerely,
Bjorn
Patrick Hartling wrote:
>
> I am experiencing a very strange problem that I have not been able to
> track down so far. We are using omniORB 3.0.4 for a C++ application, and
> we connect to it using a Java ORB. (So far, we have tried Java IDL with
> JDK 1.4 and OpenORB 1.2.0.) We have C++ objects acting as servants, and
> our Java code gets references to those servants to manipulate the C++
> application.
>
> When we make the initial connection to the Naming Service, everything
> works fine on both the Java and the C++ sides. We can request a
> reference to an object known to the Naming Service. In our Java code,
> the first time we try to invoke a method on a CORBA reference, however,
> the Java application hangs. Using OpenORB, we have narrowed it down to
> the creation of a new socket in org.openorb.iiop.IIOPTransport.open(). I
> assume that a similar problem is happening with Java IDL, but I have not
> tracked it down that far.
>
> Based on my understanding of CORBA in general, it seems that the initial
> connection to the machine that holds the servant is failing to
> complete--probably in the TCP three-way handshake. Since it happens with
> two different Java ORBs, it seems that something is going wrong on our
> C++ side. Do these symptoms point to any known issues with omniORB or
> with CORBA in general?
>
> -Patrick
>
> --
> Patrick L. Hartling | Research Assistant, VRAC
> patrick@vrac.iastate.edu | 2624 Howe Hall -- (515)294-4916
> http://www.137.org/patrick/ | http://www.vrac.iastate.edu/