Proxy Object Factories

Ole Storm storm@ifad.dk
Wed, 11 Mar 1998 18:13:01 +0100


Greetings,

Section 8.2 of the manual for omniORB 2.4 describes how to define a new
proxy class and a new proxy object factory for the simple Echo example.

I have tried to follow the steps outlined in section 8.2.2 in order to
modify the proxy object and factory for the eg2_clt.cc example. I am
pretty sure that I have covered the three necessary steps described in
the manual. I have left the caching-part out, so echoString() is not
overloaded in my proxy class - I am more interested in the construction
and destruction of the proxy objects. However, things seem to go wrong:

The constructor of _new_proxy_Echo is called all-right when the client
exectues: 

//eg2_clt.cc:
CORBA::Object_var obj = orb->string_to_object(argv[1]);

- so the new factory seems to be initialised.

When echoString is subsequently called by the client, the call is
handled by the proxy in the function _proxy_Echo::echoString. This
function never returns, however. The program seems to 'hang' in the
call:

//echoSK.cc:
    switch (_0RL_c.ReceiveReply())
    {       ^^^^^^^^^^^^^^^^^^^^^
      case GIOP::NO_EXCEPTION: |
      { (...)                  |
                               + This function does not return...

I have tried to debug the execution of ReceiveReply, but lost my way.
Things seen to go wrong somewhere in tcpSocketStrand::ll_recv

Have any of you experienced similar problems?

Regards,
	Ole

P.S. Platform: WinNT and Linux

---------------------------------------------------------------
Ole Storm
The Institute of Applied Computer Science (IFAD)
Forskerparken 10, DK-5230 Odense M, Denmark
Phone: +45 6315 7134, Fax: +45 6593 2999, Email: storm@ifad.dk
WWW: http://www.ifad.dk
---------------------------------------------------------------