[omniORB] omniORB in C++ DLL called by (embarrassment) VB

Keith Hatton khatton@uk.oracle.com
Tue, 20 Jul 1999 15:23:51 +0100


Andrew,

Which version of VB are you using? Have you applied the latest MS
service packs? I haven't used omniORB with VB, but from time to time
I've also had things that don't work properly from within the VB
environment. I tend to end up just adopting a "live with it" approach.

Keith


agonne - Andrew Gonnet wrote:

> Hi,
>
> A small problem:
>
> Background:
> Client running omniORB 2.7.1 on NT 4.0 Intel PC. It is a VB program
> which calls C functions in a C/C++ DLL which in turn call the
> initialisation and my application Corba methods.
> Implementation and omniNames running on "Tru64" unix, also omniORB
> 2.7.1
>
> Problem:
> When running the program from the VB IDE, when the VB program
> finishes, and the VB system attempts to return to the IDE, it hangs.
> This problem does not occur if I compile the VB program and run the
> exe, this exits cleanly.
>
> I'm guessing this is because VB runs a single process, interpreting
> the VB code from the same thread as the IDE is run from. This means
> that when a VB program "finishes" the process itself doesn't finish,
> so for some reason perhaps the child threads in the ORB are not
> shutdown properly (although the DLL write-lock is released and I can
> write a new version from C++ IDE if I wish).
>
> I have cut the program down to just ORB_init and this problem still
> occurs.
>
> I would like to shut everything down by calling the "ORB::shutdown"
> and "ORB::destroy" methods (as per the Corba V2.3 spec) but
> unfortunately these are not implemented in omniORB 2.7.1.
>
> Has anyone else also had this problem?
> Does anyone have any ideas or suggestions?
>
> Thanks,
>
> Andrew Gonnet.

--
Keith Hatton
CRM Technology Consultant
Oracle Corporation UK Ltd
"The statements and opinions expressed here are my own and do not
necessarily represent those of Oracle Corporation."