httpclient 4.1.2 を使用しています。特定のホスト XYZ に接続し、クライアント プログラムを 5 ~ 6 時間以上実行し続けると、同じホスト XYZ に接続すると、次のようになります。
org.apache.http.conn.ConnectTimeoutException: Connect to XYZ timed out
at
org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:377)
at
org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:148)
at
org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:149)
at
org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:121)
at
org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:573)
at
org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:425)
at
org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:820)
at
org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:754)
at
org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:732)
別のホストに接続すると、成功します。クライアント プログラムを再起動すると、問題は解決します。ブラウザ経由で同じホストに接続すると成功します。
サーバーは Tomcat 6 です。クライアントとサーバーの両方が JRE 5 で実行されています。接続タイムアウト = 20000 およびソケット タイムアウト = 60000 に設定しました。SingleClientConnManager で DefaultHttpClient を使用しています。