0
我有一個基於Spring的Web應用程序,需要通過JMX連接從ActiveMQ獲取數據。 我使用MBeanServerConnectionFactoryBean
(在Spring中)從ActiveMQ獲取各種MBean屬性。Spring中的JMX:MBeanServerConnectionFactoryBean線程安全
我只有一個MBeanServerConnectionFactoryBean
作爲成員變量,它用於獲取數據。如果多個請求/線程同時出現會有什麼問題?會有什麼競賽條件嗎?
請提出保持代碼線程安全的最佳方法。
非常感謝您的回覆。 最初,我在Spring配置中創建了MBeanServerConnectionFactoryBean。但是,在啓動我的應用程序時,它嘗試連接到ActiveMQ(mBean服務器)。 現在,如果ActiveMQ服務器關閉,則無法建立連接。 即使啓動ActiveMQ服務器,也無法建立JMX連接。 我沒有選擇,只能將MBeanServerConnectionFactoryBean移動到代碼中,並在請求進入時嘗試建立連接。 這導致了線程安全問題,因爲我有連接的成員變量。 請幫忙。 – karan1001
@ user736492:更仔細地閱讀「MBeanServerConnectionFactoryBean」的文檔。它有延遲連接嘗試的選項,直到它被需要時,而不是在啓動時執行。 – skaffman
是的,它有一個選項可以在第一次使用時創建連接(而不是在啓動時)。但這可能只是第一次嘗試連接(一次)。在activeMQ服務器關閉的情況下,它不會嘗試重新嘗試連接。因此,它可能不會解決我重新嘗試連接來自瀏覽器的每個請求的問題。 – karan1001