XPages で 30 GB のワークフロー アプリケーションのパフォーマンスを改善することについて、こちらで質問を受け付けています。多くの提案がありましたが、ほとんどはリサイクル、コードの改善などを含み、速度の問題を実際に修正したものはあまり話題になりません-アプリケーションプロパティの詳細タブ(私の最後の投稿を参照)
今、私は非常にうまく動作するアプリケーションを持っています。それは速く、人々は満足していますが、サーバーはまだ定期的にクラッシュしています. または、HTTP が応答しなくなり、極端な場合には 100% の CPU で実行されるため、Domino も動作が遅くなりますが、引き続き実行されます。
私はHTTPスレッドを監視してきました
tell http スレッドの状態を表示
ほとんどの場合、80 個の http スレッドがアイドル状態であるか、何かを実行しているがすぐに解放されます。SSJS でのメモ オブジェクトのリサイクルに重点を置いたアプリケーションへの前回の更新以来、ハングした http スレッドの終了が表示されると思っていましたが、まだそこにあります。
エンドユーザーに確認した2つのケースは完全に異なり、私が知る限りループは存在しないため、この問題の原因が無限ループではないことはほぼ確実です.
ユーザーがドキュメントを編集しているときに、ワークフロー ボタンを押して承認し、次のユーザーに送信します。彼らはChromeを使用しています。クロムタブの回転する円が始まり、サーバーはワークフローエージェントを実行し、電子メールを送信し、ブラウザでページを閉じます。1 時間経っても解放されていないハングした http スレッドが 2 つまたは 3 つあることに気付いたので、ユーザーに連絡したところ、ページは更新されていないが、Chrome で回転する円がまだ回転しているとのことで、サーバーが何かを行っていることを示しています。 . ログを確認したところ、ワークフロー エージェントが実行され、電子メールが送信され、ドキュメントが更新されました。彼女がページを更新すると、ページが更新されていることがわかりますが、何らかの理由で Chrome はそこに座って辛抱強く待っていて、LS エージェントが実行されたというメッセージを受け取りませんでした。notesAgent を使用しています。runOnServer を実行し、結果の整数を返して、エージェントが実行されたかどうかを確認します。1 が返された場合 (私が思うに)、ページは閉じられるはずです。それ以外の場合は、メッセージが表示されます。ページが更新されなかったため、何も表示されませんでしたが、エージェントは完了しました。
夕方のユーザーは、約 15 の http スレッドがハングしました。ログを見ると、彼女が何度もページをリロードしようとしていたことがわかりました。次に、彼女が必要としているドキュメントを検索し、さらにそれを開こうとしました。彼女がドキュメントを検索したことを確認したところ、検索ページに結果が (繰り返しコントロールで) 表示され、ドキュメントをクリックして開くたびに何も起こりませんでした。そのため、彼女はドキュメントにアクセスすることさえできませんでしたが、試行するたびにスレッドがハングしていました。メモのログから URL を取得して試してみたところ、ドキュメントは正常に開きます。同じ検索を実行しましたが、ドキュメントは正常に開きます。ドキュメントへのリンクを直接彼女に送信すると、問題なく開きます。変!!
この種の動作を診断する方法はありますか? 現在、ドミノ管理者を開いて tell http show.... コマンドを実行し、スレッドがハングしていないことを確認するために一日中監視する必要があるためです。通常、ランチタイムになり、サーバーを再起動する必要がありますが、これはゴミです。
私の正気を助けてください:-)