[Ace-users] Re: [tao-users] Network Connection Closure

Douglas C. Schmidt schmidt at dre.vanderbilt.edu
Wed Aug 8 07:31:17 CDT 2007

Hi Kishore,

> Sorry, for not mentioning the details earlier.

No problemo - thanks.

> TAO VERSION: 1.5.7
> ACE VERSION: 5.5.7

  BTW, I recommend you consider upgrading to
ACE+TAO+CIAO x.5.10 (i.e., ACE 5.5.10, TAO 1.5.10, and CIAO 0.5.10),
which you can download from


under the heading: "Latest Beta Kit".

The DOC groups at Washington University, UC Irvine, and Vanderbilt
University only provide "best effort" support for non-sponsors for the
latest release, as described in


Thus, if you need more "predictable" help for earlier versions of
ACE+TAO, I recommend that you check out


for a list of companies that will provide you with ACE+TAO commercial

> HOST MACHINE and OPERATING SYSTEM: x86 / Windows 2000 and XP
> COMPILER NAME AND VERSION: Microsoft Visual C++ 2005 (ACE and TAO as shared dlls )
> $ACE_ROOT/ace/config.h:  #include "ace/config-win32.h"
> $ACE_ROOT/bin/MakeProjectCreator/config/default.features: "ssl=1"
> Is it possible with TAO to close a client connection to the server, without destroying the ORB?
> To be precise _narrow to get server ---> process a few requests ---> close connection and reloop after a while (event
> driven cannot be preconfigured)
> My problem arises from thousands of client programs trying to talk to a server.
> Hence I need to keep a close watch on the number of open connections to the server.
> On a stand alone client application, however, destroying the ORB closed the connection to the server.
> There are also oneway requests to the server.
> Unfortunately I am using TAO in a DLL being loaded as a plugin into an MS Office program.
> Destroying the ORB and reinitializing (with atleast a 10 second time delay) causes crashes in this case. (in both the cases
> of iiop and ssliop)
> Please note there are no crashes when run as an application on windows and linux. All the test cases work fine.
> Orb init, destroy and reinit work in an infinite loop (no time delay) over lengthy periods of time when run from an
> application exe.
> I have only one connection from the client program to a server which needs to be purged. Hence cant use
> -ORBConnectionPurgingStrategy
> Also tried using -ORBConnectionCachePurgePercentage 100 ... but led to a crash.
> My Svc config is: (experimented with quite a few options too ... finally reverted to the following)
> dynamic SSLIOP_Factory Service_Object * TAO_SSLIOP:_make_TAO_SSLIOP_Protocol_Factory()
> -SSLAuthenticate NONE -SSLPrivateKey 'PEM:key.pem' -SSLCertificate 'PEM:cert.pem'
> static Advanced_Resource_Factory "-ORBProtocolFactory SSLIOP_Factory"
> I have also tried the stable release ACE 5.5 - TAO 1.5 with the same results :(
> Have also tried explicit ACE::init and ACE::fini along with explicit winsock2 initialization upon init and reinit. Nothing
> helped as yet :(
> iiop with ACE and TAO static compilations also had the same problems.
> Could not get ssliop to work with static compile, hence reverted back to dll's.
> Hope this helps,

Thanks very much for explaining your use-case.  I understand what you're
trying to do now and it makes sense to me.  I agree there ought to be a
way to support this use-case, but I'm not sure if it's easy to do this
with the current way that TAO's designed/implemented.  I therefore
recommend you either

. Take a look at the TAO code and tweak it so that if an option like
  -ORBConnectionCacheMax is set to 0 TAO's won't cache any open
  connections or

. Contact one of the commercial support companies listed at

  for help.



More information about the Ace-users mailing list