0

Java EE サーバー (OpenEJB 3.1.4 コンテナー) に接続する必要がある約 450 のリモート EJB クライアントがある状況があります。HTTP サーバーが存在しません。

多くのクライアントがオンラインになった後、サーバーが javax.ejb.ConcurrentAccessTimeoutException をスローし始めることに気付きました。

ドキュメントによると、メソッド内のステートフル セッション Bean またはシングルトン Bean に同時にアクセスしようとしたときのタイムアウトが原因であるとのことです。実際には両方を使用していますが、タイムアウトの適切な値を把握するのは困難です。

値が高い場合、ConcurrentAccessTimeoutExceptions は少なくなりますが、多くのクライアントが永遠にハングし始めます。値が低い場合、多数の ConcurrentAccessTimeoutExceptions がスローされます。

450 のすべてのクライアントは、起動時にサーバーへの接続を確立し (接続時間が長すぎてオンデマンドで作成できないため)、それを永久に維持します。

さて、それに加えて、別の問題があります。すべてのクライアントは、2 秒間隔で常にサーバーをポーリングします。この動作は変更できますが、アーキテクチャを調整する必要があります。

Java EE サーバーに接続する多くのクライアントを経験した研究者や経験のある人はいますか?

必要なものは何でも設計できますが、より具体的なターゲットを設定したいと考えています。

4

1 に答える 1