[omniORB] incoming LOCATE_REQUEST, how to satisfy it

Fabien COUTANT Fabien.Coutant@steria.fr
Thu, 2 Nov 2000 15:13:07 +0100

On 02 November 2000, you (Glenn A. Hochberg) wrote:
> First off, the Name Service and LOCATE_REQUEST are two completely different
> things.  The Name Service is a directory that lets you find the IOR
> corresponding to a logical name.  The LOCATE_REQUEST is an IIOP message sent
> by the client ORB, asking the destination ORB whether the CORBA object
> addressed by the IOR is indeed available at that server.
> The fact that your server is getting the LOCATE_REQUEST implies that your
> client has the IOR and the client ORB is at least finding the server
> process.  There could possibly  be a problem with how Orbix 2.3 is setting
> up the object key in the IOR.
> What error is your client getting?
>     -Glenn

I understand the difference,  I just used omniNames to test.

The client has no IOR.  I suspect it uses Orbix' bind/_bind ("MyClass").

I've told it through its configuration file the host ( and
port where to contact my server.  That's why my server receives an
incoming connection, though the client has no IOR.  The port I use for
my server is fixed by using -ORBpoa_iiop_port option.

I guess from there the client has to find a server-local object
identification for an object of class MyClass .  That should be the
purpose of the LOCATE_REQUEST, if I interpret its name correctly; i.e. 
it's not only to check the object's presence since the client does not
know yet who the object is.

Or is the string passed to LOCATE_REQUEST considered THE server-local
object identification ?

As for the error from the client, I only receive an application-level
message.  Nothing technical to get from it.  With a network sniffer
(ethereal) I see that omniORB returns MessageType=LocateReply,

When omniNames answered successfully I remember that this status was 1.
Seems it can't return any object identification, so you must be right
about the purpose of LOCATE_REQUEST.

Conclusion: the question seems to become: how do I declare an object
with a given name, such that LOCATE_REQUEST considers the name present
in the server.

Any more ideas ?

Thanks for help,