[erlang-questions] Re-entrant CORBA services
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.
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  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
>  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