2014-09-02 66 views
0

每次將消息發送到隊列時創建以下對象的開銷是多少? 對象:javax.jms.Connectionjavax.jms.Sessionjavax.jms.MessageProducerJMS連接開銷

在我的代碼,每當我想發送一條消息,我創建了上述3個對象。

我知道它很好創建對象只有一次,並使用它,但連接/會話進入非法狀態服務器故障切換後。我的connectionFactory能夠重新連接,但無法刷新連接/會話對象。

有人可以解釋我的開銷嗎?

回答

0

它始終是一個昂貴的事創建一個消息提供者每次連接和會話。每次請求連接時,底層消息傳遞庫都必須創建一個到消息傳遞提供者的套接字連接,流動一些握手數據並建立一個可以發送消息的通道。消息發送後,連接關閉還需要將消息傳送提供程序的特定數據發送到正常關閉的連接。

您可以通過在每次都創建連接/會話的情況下運行一些測試來量化開銷。但是,上面的解釋給出了有關創建/關閉連接的提示。