組み込み HTTP サーバーとして Jetty 8.1 を使用しています。過負荷状態では、サーバーがログ ファイルを次のメッセージであふれさせることがあります。
warn: java.util.concurrent.RejectedExecutionException
warn: Dispatched Failed! SCEP@76107610{l(...)<->r(...),d=false,open=true,ishut=false,oshut=false,rb=false,wb=false,w=true,i=1r}...
同じメッセージが何千回も繰り返され、ログの量がシステム全体の速度を低下させているように見えます。メッセージ自体は問題ありません。リクエスト ハンドラは、時間内にリクエストを処理するのが遅くなるだけです。しかし、膨大な数のメッセージが繰り返されると、実際には状況が悪化し、システムが過負荷から回復するのがより困難になります。
それで、私の質問は次のとおりです。これは正常な動作ですか、それとも何か間違ったことをしているのですか? サーバーのセットアップ方法は次のとおりです。
Server server = new Server();
SelectChannelConnector connector = new SelectChannelConnector();
connector.setAcceptQueueSize( 10 );
server.setConnectors( new Connector[]{ connector } );
server.setThreadPool( new ExecutorThreadPool( 32, 32, 60, TimeUnit.SECONDS,
new ArrayBlockingQueue<Runnable>( 10 )));