設定された接続タイムアウトのかなり前にタイムアウト例外が発生します。誰かが何が起こっているかについて何か考えを持っていますか?
どんな入力でも素晴らしいでしょう!
15 Jan 2013 10:44:40,944 [ Thread-4622] WorkerThread INFO [1538387622377815-4640]- - About to call server with connectionTimeoutMS=30000
15 Jan 2013 10:45:02,003 [ Thread-4622] WorkerThread ERROR [1538387622377815-4640]-run():Connection timed out:java.net.ConnectException
テストの実行中にnetstat、gc、および開いているファイルの数を記録しましたが、劇的なことは何も気づいていません。
環境
- Java 1.6
- 春/ラクダルートを走る突堤(ラクダ2.10)
- クライアントはマルチスレッドです(同時バッチ要求をjettyコンポーネントに送信します)
ファイル記述子:
- ulimit -Hn 100000
- ulimit -Sn 100000
ファイルを開く
cat / proc / sys / fs / file-nrを1秒間隔で実行するBashスクリプト:
テスト開始前:5664 0 200000
最悪の場合:6720 0 200000
クライアントとサーバーの両方がローカルホストで実行されています。
- クライアント接続のタイムアウトを30秒に設定しました。
クライアントのしくみ
クライアントは同時スレッドのバッチを作成し(rnd 1〜1000)、jettyコンポーネントを呼び出してから、待機(rnd 1〜30秒)してから再度呼び出します。これは最大5分間繰り返されます。
サーバー:デフォルトのタイムアウトを使用し、connectTimeoutを60000ミリ秒などの大きな数値に設定してみたところ、同じ結果になりました。
実行中のサーバー上
- 桟橋-7.6.1.v20120215
- キャメル2.10.1
- 春3.0.7
春/ラクダルート:
<route id="startQueue_route" trace="false">
<from uri="jetty:http://0.0.0.0:9311" />
<to uri="bean:LDAPBean" />
</route>
<bean id="jetty" class="org.apache.camel.component.jetty.JettyHttpComponent"/>