私はJMX接続を介してActiveMQからデータを取得する必要がある春ベースのWebアプリケーションを持っています。 ActiveMQからさまざまなMBean属性を取得するために、私はMBeanServerConnectionFactoryBean
(春)を使用しています。JMX for Spring:スレッドセーフであるMBeanServerConnectionFactoryBean
私はメンバー変数としてMBeanServerConnectionFactoryBean
を1つだけ持っています。これはデータの取得に使用されます。複数のリクエスト/スレッドが同時に発生する場合は、何か問題がありますか?競争条件はありますか?
コードをスレッドセーフにする最良の方法を提案してください。
返信いただきありがとうございます。 当初、私はSpringの設定でMBeanServerConnectionFactoryBeanを作っていました。しかし、アプリケーションの起動時に、ActiveMQ(mBean Server)への接続を試みます。 ActiveMQサーバがオフの場合、接続できません。 ActiveMQサーバーを起動しても、JMX接続を確立できません。 MBeanServerConnectionFactoryBeanをコードに移動し、リクエストが入ったときに接続を確立しようとするオプションはありませんでした。 これは、接続のメンバー変数があるため、スレッドセーフに関する質問につながります。 助けてください。 – karan1001
@ user736492: 'MBeanServerConnectionFactoryBean'のドキュメントをより詳しく読んでください。起動時に行うのではなく、必要になるまで接続の試行を延期するオプションがあります。 – skaffman
はい、起動時ではなく、初めて使用するときに接続を作成するオプションがあります。しかし、これはおそらく最初に接続を試みるだけです(1回限り)。その時点でactiveMQサーバがオフの場合に接続を再試行しようとしません。したがって、おそらくブラウザからの各リクエストの接続を再試行するという私の問題は解決されません。 – karan1001