[erlang-questions] Re-entrant CORBA services

Niclas Eklund nick@REDACTED
Mon Sep 13 16:46:12 CEST 2010


The drawback with oneway CORBA operations (i.e. asynchronous 
calls/gen_server:cast) is that the exact behavior isn't specified by the 
OMG specifications, which might give different results dependening on 
which ORBs you're using.
Besides using a oneway operation, perhaps you can use corba:reply/2 (see 
http://www.erlang.org/doc/man/corba.html#reply-2), which is the same thing 
as gen_server:reply/2. If it's posssible for you to use Orber pseudo 
objects, you'll be able to avoid deadlock (see for example 
the CosNaming_NamingContextExt_impl.erl module how these can be 
implemented). The exact answer depends on if A and B resides on the same 
ORB (Orber I assume in this case) or inter-ORB communication, with an 
ORB from another vendor, takes place.

Best regards,

Niclas @ Erlang/OTP

On Mon, 13 Sep 2010, Jani Hakala wrote:

> Geoffrey Biggs <geoffrey.biggs@REDACTED> writes:
>> Unfortunately, one of the calls to object B requires its own calls back
>> to object A to finish (whether or not it succeeds). This means that
>> object B blocks waiting for object A to respond, while object A is
>> blocked waiting for object B to respond.
> How about dividing this call from object A to object B to two calls
> to object B? First one would return at that point where B now calls A
> and the second call would give the object B the results of the
> call. Any parameters required by object A could be passed as the
> result from the first call.
> AMI/AMH [1] might provide another solution if they are available. Or
> perhaps multiple servants for object A.
> I prefer to avoid two-way calls with CORBA as much as possible. I
> once tried those with C++ and ACE/TAO, and it seemed to be too much
> trouble. I didn't try AMI/AMH or multiple servants though as I was
> just learning CORBA basics.
> Jani Hakala
> [1] asynchronous method invocation, asynchronous method handling.
> ________________________________________________________________
> erlang-questions (at) erlang.org mailing list.
> See http://www.erlang.org/faq.html
> To unsubscribe; mailto:erlang-questions-unsubscribe@REDACTED

More information about the erlang-questions mailing list