[omniORB] Oddities in running OmniOrb client/server

Judy Anderson yduj@harlequin.com
Wed, 24 Feb 99 14:20:51 EST


    From: "Gary D. Duzan" <gdd0@gte.com>
    Date: Wed, 24 Feb 1999 14:12:14 -0500
    
    
       Two questions: First, what platform are you working on? Second, are
    you running single-threaded or multi-threaded in Orbix? It is certainly
    possible for the threaded model in OmniORB to cause strange things to
    happen when applied to code written for a single-threaded ORB.
    
Many apologies for not providing this information in my original
message.

I'm using NT 4.0 with Visual C++ 5.0.

The application is using multiple threads in orbix -- we were using
the orbix filter mechanism to receive the request, and then dispatch
to a separate thread for completion.  The various threads then did
whatever was they had to do before returning results.

I understand that OmniOrb has this threaded model, and my application
is in theory able to handle this.  However, the strange behavior I'm
seeing is with a single-threaded client and no other clients are
active.  I would really expect serialization of my operations, driven
simply by the single-threadedness of the client.

					--yduJ

    
    In Message <9902241817.AA21098@tigris.harlequin.com> ,
       Judy Anderson <yduj@harlequin.com> wrote:
    
    =>So I've been porting a large system from orbix to OmniOrb, and I've
    =>run into what appears like in impossible situation.
    =>
    =>My client makes a few CORBA operation calls to the server.  My server
    =>has a large number of debug statements that may or may not be printed
    =>depending on the debugging level.  Of course I started it with the
    =>debug level very high.  And I was pleased to see that all the CORBA
    =>operations were invoked, executed properly, and everything was fine.
    =>So of course I tried it with a smaller debug level.  And the whole
    =>thing fell over!  It turned out that I was able to raise the debug
    =>levels some, and still have it fall over, which was helpful, but when
    =>I reviewed the output, I found something very strange: normally my
    =>operations print a start and end message.  I found that the operations
    =>were only printing the start message.  Then they would print some
    =>progress messages, and then the start message for the next operation
    =>would be printed, without ever printing the last few progress messages
    =>and the end message.  It is as though the client managed to initiate
    =>the second operation before the first operation returned.
    =>
    =>Am I just seeing things?  Can this situation happen in OmniOrb?  The
    =>clients don't currently print anything, and I'm definitely going to be
    =>changing that, although I concerned that as soon as I have the client
    =>print a message when the CORBA call returns, of course it will start
    =>working, regardless of the debug level of the server, and of course
    =>ideally, the end result is a silent client and silent server.
    =>
    =>I hate heisenbugs!
    =>					Judy Anderson "yduJ"
    =>					yduJ@harlequin.com
    =>					617-374-2547
    =>