[Ace-users] Re: [tao-users] mixing omniORB and TAO within one process

Friedhelm Wolf friedhelm.wolf at googlemail.com
Thu Jun 21 10:14:18 CDT 2007


after debugging into all that I found out, that you are right.
Somehow the ORB_init() call doesn't work properly also the programm
returns from the call correctly. When I then try to access the POA I get a

I recognized omniORB is somehow "taking over" memory management, because
during execution of the TAO ORB_init() call, the following message appears
on stdout:

omniORB: ERROR -- an invalid buffer pointer is passed to freebuf
 of string or object  sequence

I found out, that this results from a global error handler function (or
something like that),
void _CORBA_bad_param_freebuf() in omniORB/orbcore/exception.cc

But maybe this is something I have to ask some omniORB guys. I'm not very
familiar with
omniORB. Can anyone point me to a developer forum for omniORB? Is there an
developer community?


On 6/20/07, Johnny Willemsen <jwillemsen at remedy.nl> wrote:
>  Hi,
> It looks to me that the TAO POA isn't created before you activate the
> servant.
> Johnny
>  ------------------------------
> *From:* tao-users-bounces at cse.wustl.edu [mailto:
> tao-users-bounces at cse.wustl.edu] *On Behalf Of *Friedhelm Wolf
> *Sent:* Wednesday, June 20, 2007 5:11 PM
> *To:* tao-users at cse.wustl.edu
> *Subject:* [tao-users] mixing omniORB and TAO within one process
> TAO VERSION : 1.5.8
> ACE VERSION : 5.5.8
>     i686 pc, SUSE linux Enterprise Server 9, Kernel 2.6.5
>     gcc 3.3.3 (SuSE Linux)
> THE $ACE_ROOT/ace/config.h FILE:
>     #include "config-linux.h"
> THE $ACE_ROOT/include/makeinclude/platform_macros.GNU FILE :
>     include $ACE_ROOT/include/makeinclude/platform- linux.GNU
> CONTENTS OF $ACE_ROOT/bin/MakeProjectCreator/config/default.features
> (used by MPC when you generate your own makefiles):
>     N/A
>     EXECUTION: ORB Initialization
> SYNOPSIS: Can omniORB and TAO coexist in the same process space?
> Hi there,
> I evaluate how to port a rather big CORBA system using omniORB
> to TAO. Because it's a rather complex system, I started with porting one
> CORBA servant object. It was no big efford to make the changes to compile
> and link the code for TAO.
> I then tried to integrate this one TAO object into the omniORB system.
> This system however loads CORBA servants from a shared libraries.
> The whole mechanism to find and load these needed libraries, includes
> CORBA calls (which are still served by omniORB CORBA servants).
> As a concequence to this I end up initializing TAO and registering
> the object within a CORBA call served by omniORB (see attatched
> coredump.txt), which seems to lead to a coredump.
> More specifically said, the registration of the servant object within
> the POA, using the _this() method seems to mess up everything.
> Does anyone have some hints for me, if it is a bad idea in general to
> use TAO and omniORB in the same adress space. Or might the nesting of
> TAO servant registration within the processing of omniORB be a problem?
> Maybe someone familiar with the TAO POA can comment on what exactly is
> going wrong, by having a look at the coredump stack?
> Cheers,
> Friedhelm
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://list.isis.vanderbilt.edu/pipermail/ace-users/attachments/20070621/8539d792/attachment.htm

More information about the Ace-users mailing list