[erlang-questions] Re-entrant CORBA services
Tue Sep 14 00:13:18 CEST 2010
On 13/09/10 23:46, Niclas Eklund wrote:
> 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.
Thanks for the advice. I'll have a look at pseudo-objects. I'm not sure
if I can use them or not until I give them a go. :) Not being able to
send info messages may be a problem for initialising the service with
values it needs, though.
A and B will not necessarily reside on the same ORB. If B resides on an
ORB implemented in an object-oriented, everything works happily. If B
resides on an ORB such as Orber, it won't; this is a fault of the RPC
specification in the IDL, not Orber. But it's something I have to figure
out how to work around. I do, overall, find the Orber type to be much
nicer to work with, though.
More information about the erlang-questions