Resolution: Service assembly has too many file descriptors open. The following errors are seen in the BW Log File periodically where the Java Component is used to process these requests:
Address already in use. Too many open files. Netstat shows, "TIME_WAIT" for the HTTP Port.
When a connection is closed, the TCP/IP layer puts it on the TIME_WAIT state. The time that the connection stays in that state is dependent on the OS. When there are too many connections in the TIME_WAIT state, the TCP/IP layer cannot create connections. You may end up having too many connections in the TIME_WAIT state when you have a client sending hundreds of requests simultaneously.
BW does not have control over this and leaves it to the OS to take care of. For the OS, the way to tune the TCP/IP stack is as follows:
To set the tcp_time_wait_interval to 30000 milliseconds:
1). Solaris:
/usr/sbin/ndd -set /dev/tcp tcp_time_wait_interval 30000
2). HP-UX:
ndd -set /dev/tcp tcp_conn_req_max 1024
(1024 is the max TCP connection requests)
3). AIX:
no -o tcp_timewait=2
(2 means 2*15 seconds)
4). Linux:
sysctl -w ip_ct_tcp_timeout_time_wait=30
(30 means 30 seconds)
5). Windows:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\TcpTimedWaitDelay
Before tuning the TCP/IP stack, refer to your network administrator as there may be other TCP based applications that may not work with a smaller value for the TCP TIME_WAIT interval.