The current configuration of JCR uses Apache DBCP connection pool.
(org.apache.commons.dbcp.BasicDataSourceFactory
).
It is possible to set a big value for maxActive parameter in
configuration.xml
. That means lots of TCP/IP
ports from a client machine inside the pool are used, such as JDBC driver. As the
result, the data container can throw exceptions like "Address already in
use". To solve this problem, you have to configure the client's machine
networking software for using shorter timeouts for opened TCP/IP
ports.
Microsoft Windows has MaxUserPort
,
TcpTimedWaitDelay
registry keys in the node
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters
,
by default these keys are unset. Set each one with values as follows:
"TcpTimedWaitDelay"=dword:0000001e, sets TIME_WAIT parameter to 30 seconds (default value is "240").
"MaxUserPort"=dword:00001b58, sets the maximum of open ports to 7000 or higher (default value is "5000").
A sample registry file is below:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] "MaxUserPort"=dword:00001b58 "TcpTimedWaitDelay"=dword:0000001e