Igor Polonsky
2013-01-24 13:07:05 UTC
Hi omniORB Support,
We have certain apps at work that function as CORBA clients, hitting the same CORBA server. We're planning to move the clients from Visibroker to omniORB and we've been doing some testing. The platform is Windows Server 2003 with Citrix (there are reasons why we're still on 2003).
I believe I see a couple of significant differences in how the two ORBs manage the TCP/IP connections.
1) Having created a connection, Visibroker will hold to it indefinitely. But omniORB appears to drop any connections that have been idle for about a minute or so. Could you please confirm if that's really the case? And how can we fine-tune this behavior, if need be?
2) When omniORB creates a new connection to a certain CORBA server, it seems to reuse any open connection to the same server - even if that connection has been created by an unrelated process, such as a Visibroker-based client running on the same machine. This brings a few questions:
- Could you please confirm if this is really what's happening? Or am I misinterpreting the observed behaviors?
- If the TCP socket reuse does happen, how does omniORB prevent race conditions? I'm talking about situations where two clients that share a socket want to communicate with the same server at the same time.
- Is this behavior configurable?
3) Can anyone please suggest some good reading on this subject? I'd like to understand how apps such as CORBA clients interact with the Windows OS when they create (and share?) connections. And also how CORBA connections consume other system resources, such as NP memory pool, etc. I'd like to become a slightly less dumb user of CORBA.
Any insight will be much appreciated.
Cheers,
Igor
We have certain apps at work that function as CORBA clients, hitting the same CORBA server. We're planning to move the clients from Visibroker to omniORB and we've been doing some testing. The platform is Windows Server 2003 with Citrix (there are reasons why we're still on 2003).
I believe I see a couple of significant differences in how the two ORBs manage the TCP/IP connections.
1) Having created a connection, Visibroker will hold to it indefinitely. But omniORB appears to drop any connections that have been idle for about a minute or so. Could you please confirm if that's really the case? And how can we fine-tune this behavior, if need be?
2) When omniORB creates a new connection to a certain CORBA server, it seems to reuse any open connection to the same server - even if that connection has been created by an unrelated process, such as a Visibroker-based client running on the same machine. This brings a few questions:
- Could you please confirm if this is really what's happening? Or am I misinterpreting the observed behaviors?
- If the TCP socket reuse does happen, how does omniORB prevent race conditions? I'm talking about situations where two clients that share a socket want to communicate with the same server at the same time.
- Is this behavior configurable?
3) Can anyone please suggest some good reading on this subject? I'd like to understand how apps such as CORBA clients interact with the Windows OS when they create (and share?) connections. And also how CORBA connections consume other system resources, such as NP memory pool, etc. I'd like to become a slightly less dumb user of CORBA.
Any insight will be much appreciated.
Cheers,
Igor