[omniORB] How to do a timeout (with oO but independent of it) ?

Pfeiffer Daniel Daniel.Pfeiffer@Start.de
Fri Sep 6 10:51:02 2002


For lack of transparent distributed transactions via OTS 1.1 in omniORB, we
have implemented our own transaction handling.  This steers our own
primitive (but highly efficient database) on BS2000.  The transport of the
transaction context and two-phase commit handling gets done explicitly with
CORBA calls.

Among other things because tcp-connection establishment is very expensive on
BS2000, we have a permanent 1:1 relationship between client- and
server-process, so there can be no confusion among different simultaneous
method invocations or transactions.

When a server method does database changes, the server-process _must_ also
get commited.  So then I have to timeout, just in case the transaction
monitor dies.

If SIGALRM is not the way to do it on a multithreaded server, what would be
the proper way?

best regards
Daniel

> ----------
> Von: 	Duncan Grisby[SMTP:duncan@grisby.org]
> Gesendet: 	Donnerstag, 5. September 2002 16:40
> An: 	Pfeiffer Daniel
> Cc: 	omniorb-list@realvnc.com
> Betreff: 	Re: [omniORB] How to do a timeout (with oO but independent
> of it)? 
> 
> On Friday 30 August, Pfeiffer Daniel wrote:
> 
> > I've got a case where our business logic dictates that if a certain
> > method gets called, another one must also get called shortly
> > afterwards.
> 
> I don't quite understand what you are trying to do, but whatever it
> is, I don't think signals are the right way to do it. They are
> problematic in a multi-threaded environment, and doing things with
> them is likely to confuse omniORB. Can you explain in more detail the
> effect you are trying to achieve?
> 
> Cheers,
> 
> Duncan.
>