[omniORB] Major concurrency issue on Windows (OmniORB 4.0.1)

Kamaldeep Singh Khanuja Kkhanuja at quark.co.in
Tue Sep 16 18:33:37 BST 2003


Hello Duncan,

My last posting was not replied, please see below:

Best Regards,

--Kamal

-----Original Message-----
From: Kamaldeep Singh Khanuja [mailto:Kkhanuja at quark.co.in]
Sent: Thursday, September 11, 2003 10:57 AM
To: omniorb-list at omniorb-support.com
Subject: [omniORB] Major concurrency issue on Windows (OmniORB 4.0.1)


Hi Duncan,
Our application is a server application (uses OmniORB 4.0.1) where large
number of clients (usually greater than 300) connect to our server. On the
Windows version of this server, we have noticed that if there are more than
64 concurrent IDL (i.e. 64 socket connections opened with server) calls
pending on the server, the 65th IDL call from any other client application
blocks and the server stops responding there after. Upon investigating we
found that it is due to the limit specified in winsock2.h by using the
preprocessor macro FD_SETSIZE. By default it is 64, so I introduced the
following before winsock2.h is included in the OmniORB code:

// Should be moved to some Common place
// This is to support the Winsock implementation to support non-default
number of 
// open sockets for an application. [Default limit is 64]
#undef FD_SETSIZE
#define FD_SETSIZE 2048

The above was done at two places:
1) src\lib\omniORB\orbcore\tcp\tcpTransportImpl.cc
2) include\omniORB4\internal\libcWrapper.h

After this I compiled the ORB and it worked fine for us!!!

I think it would make sense to include this change for Windows in the ORB
distribution. This could remain hard-coded to 2048 or be made configurable
using a makefile macro.

Best Regards,
--Kamal

_______________________________________________
omniORB-list mailing list
omniORB-list at omniorb-support.com
http://www.omniorb-support.com/mailman/listinfo/omniorb-list



More information about the omniORB-list mailing list