Linux サーバーで JBoss AS 7 の奇妙な動作に遭遇しました。アプリケーションで war を展開すると、サーバーはこのアプリケーションの有効な HTTP 要求に応答しません。有効な URL を取得しようとすると、バックエンド関数 (DAO メソッドなど) が呼び出されたことをログで確認できます。デバッグ ログには、JSF の後続のタグがレンダリングされていることが示され、メッセージも表示されますRendering View index.xml
が、応答は到達しません。クライアント。存在しない URL を使用すると (例index.asd
) 応答が 404 になり、間違ったページ名を使用すると (例inswxasd.xhtml
) 応答が 500 になります。したがって、有効な要求でのみ失敗します。
リモート (firefox を使用) とローカル (を使用) の両方で接続を試みたところwget
、問題が再現されました。奇妙なことは、私がすでに使用した戦争を展開してから、それが機能したことです。
編集1:
にリクエストを送信すると、サーバー プロセスが 200% の CPU を使用していることに気付きました。さらに、スタックを持つ 1 つのアプリケーション (Hibernate、Spring、JSF 2.0、Primefaces) でのみ発生します。
編集2:
これは、jstack 出力( jstack -l -F <PID>
) を使用した貼り付けです。すべてのスレッドがブロックされています。
さらに、( top
JBoss プロセスのスタックを使用してダンプすると) 問題はおそらくhttp--0.0.0.0-8080-1
. 何か案は?