[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
=>