2011-12-02 45 views
4

我工作的一個項目,我有一個Tomcat 7中的幾個戰爭文件有一個嵌入式的ActiveMQ(5.5.1)相同的Tomcat內代理進行通信。多戰爭使用共享嵌入ActiveMQ的

我想知道什麼是管理這個正確啓動和停止代理中的最佳實踐,以及如何。

其實我嘗試在塗用server.xml全局JNDI條目,並在每個戰得到的查找我的ActiveMQ連接。與代理的第一個連接隱式啓動它。但是用這種方法,我遇到了各種各樣的問題,例如已經存在的實例或數據存儲中的鎖。

我應該使用,而不是它使用BrokerFactory明確啓動代理額外的戰爭嗎?在這種情況下,如何確保這場戰爭首先在Tomcat中執行?我該如何阻止我的經紀人以及哪裏?

感謝您的幫助。

回答

1

從文檔...

如果您使用的是VM運輸,並希望在代理啓動之前明確配置 嵌入式代理存在,你可以先創建JMS 連接的機會。如果使用VM運輸目前的ActiveMQ將 自動創建一個代理,並沒有一個 已經配置。 (在5.2就可以使用waitForStart和 創建=爲連接URI假選項)

因此,要解決這一點,如果你正在使用Spring,你不妨使用 取決於-on屬性,使您的JMS ConnectionFactory取決於 嵌入式代理,以避免發生這種情況。例如

看到這些網頁以獲取更多信息......

http://activemq.apache.org/vm-transport-reference.html

http://activemq.apache.org/how-do-i-embed-a-broker-inside-a-connection.html

http://activemq.apache.org/how-do-i-restart-embedded-broker.html