[omniORB] ActiveX

Helge Penne Helge.Penne@datarespons.no
Wed, 08 Sep 1999 08:54:57 +0200


David Hyde wrote:

> Has anyone had any experience with connecting to OmniORB within an ActiveX
> control?  No - I thought not!!!
>
> In the control that I have built if I call orb =
> CORBA::ORB_init(argc,argv,"omniORB2") then when I close down the application
> that the control is embedded in the application does not disappear from the
> task manager.  (I'm building the control using VC++ 5, placing it into a
> Visual Basic 6 application and running on NT4 by the way).  If I don't make
> the call to ORB_init the app unloads from memory properly.
>
> Is there any static memory which is not being deallocated or something here.
> Does anyone have any idea what is going on?
>
> Thanks
>
> David Hyde

Use of memory allocation tools like BoundsChecker has made me pretty confident
that omniORB allocates a lot of memory on startup that is not deallocated when
the application shuts down.  This is a sin committed by a lot of programming
tools/libraries.  I haven't complained to much about, since the tool is "free"
and it hasn't been a problem to me so far, but it does indicate that they do not
use Purify or BoundsChecker themselves, which is something that I find a little
scary.

I believe that one should never write serious software without testing it with
memory leak detection tools, and certainly not program libraries.  Any good
library should clean up after itself, as any mess left behind by the library
will make it much more difficult for developers to spot their own memory leaks
in between the list of all the memory leaks from the tool (as is the case with
omniORB).

On the positive side, I haven't been able to find many "dynamic" memory leaks in
omniORB, but I think I recall seeing it leak some memory when it throws
exceptions (another indication that they haven't properly tested it for memory
leaks).

Don't get me wrong though, I really like omniORB.  I've used VisiBroker in the
past, and I'm never going back.  ;-)

- Helge Penne