2011-03-03 59 views
2

我試圖從隊列中接收消息並將其發佈到主題中。我有一個QueueSession實例,但不能用於創建主題。如果我理解正確,QueueSession僅用於接收隊列中的消息並將消息發送到另一個隊列。我該如何混淆 - 從一個隊列中接收並在單個會話中將其發佈到一個主題中?如何接收隊列並將其發佈到主題中?

回答

1

忘掉所有特定於域的類並使用JMS 1.1中提供的統一域。替代類如下:

  • 的QueueConnectionFactory - >連接工廠
  • 的QueueSession - >會話
  • 隊列 - >目的地

當你切換到統一域,應用程序不需要知道目標是隊列還是主題。例如,如果您的應用程序有兩個託管對象myInputDestmyOuputDest,則可以將這些對象中的任意一個指定給管理對象定義中的隊列或主題(有時稱爲.bindings文件)。您可以從隊列中讀取數據並寫入主題,從主題讀取並寫入隊列,進入隊列到隊列或主題到主題,所有這些都在運行時解決,並且可以在程序調用之間進行更改通過更改管理對象。

有示範這種在IdeveloperWorks文章Running a standalone Java application on WebSphere MQ V6.0

1

您必須爲目標主題創建TopicSessionTopicPublisher,但在您的隊列消息處理程序之外執行此操作 - 例如在創建QueueSession和訂閱隊列的同時。在隊列消息處理程序中,您將在TopicPublisher實例上調用publish(message)

+0

所以你說我保持平行兩會(TopicSession的和QueueSession的)一些示例代碼? – jasonline 2011-03-03 08:45:02

+0

是的。用於在隊列上接收消息的QueueSession,以及用於在主題上再次發佈消息的TopicSession – 2011-03-03 08:54:51

相關問題