WAS 6與Websphere MQ6的整合
bromon原創 請尊重版權
整合的目的是讓MQ作為websphere application server的JMS provider,所有的JMS消息會被was轉發到MQ隊列中,由于MQ提供了多種平臺的API,因此消息的傳遞可以不再通過轉發的方式。任何平臺都可以直接連接到MQ獲取/發送消息,減少了跨平臺消息傳遞中的不確定因素。
首先在MQ中建立隊列管理器、消息隊列、服務器連接通道(SYSTEM.DEF.SVRCONN類型的通道)。由于was將通過CLIENT模式與MQ通信,所以有身份認證的問題,需要在通道上配置MAC用戶標識,它的值應該是運行MQ的操作系統的一個用戶名稱,該用戶應該具有管理員權限,推薦使用啟動MQ的用戶名稱。如果不配置該MAC用戶標識,那么運行was的機器必須建立一個與運行MQ完全相同的用戶/密碼來啟動was,才能提供正確的身份信息。如果采用BINDINF的傳輸模式,就不需要任何的認證信息,但是該模式只能適用于was和MQ在同一臺機器上的情況。而且一個was環境中,只能允許一個連接工廠使用BINDING模式連接,所以不推薦該模式。
假設建立起來的隊列管理器為sobeymam,clearcase/" target="_blank" >ccsid為1208(Unicode)或者1381(GB2312),通信端口為1414;建立的消息隊列為test,ccsid為1208(Unicode);服務器連接通道為s1,MAC用戶標識為bromon。
下一步是在WAS中建立隊列連接工廠,“資源”----“JMS提供者”----“Websphere MQ”----“Websphere MQ隊列連接工廠”----“新建”。填寫以下內容:
名稱: cf
JNDI名稱: jms/cf
隊列管理器: mam
主機: 運行MQ的機器名或IP
端口: 1414(與隊列管理器的偵聽端口對應)
通道: s1(與隊列管理器的服務器連接通道對應)
傳輸類型: CLIENT
取消“已起用XA”選項
連接工廠的配置完成。
下一步是建立隊列目標。“資源”----“JMS提供者”----“Websphere MQ”----“Websphere MQ隊列目標”----“新建”。填寫以下內容:
名稱: test
JNDI名稱: jms/test
基本隊列名: test(對應MQ中的本地隊列)
CCSID: 1208
目標客戶機: MQ
隊列目標的配置完成。需要說明的是,目標客戶機的值決定了JMS的消息將以什么格式存放在MQ中。如果是”MQ”,那么消息將直接使用MQSTR格式,純文本的存放,任何平臺都能夠獲取消息直接顯示。如果是”JMS”,那么消息將使用MSHRF2格式存放,java平臺能夠不加處理的正常識別,其他平臺必須要做轉換才能正確獲得消息文本。推薦使用”MQ”。
如果需要部署消息BEAN獲取MQ中的消息,那么還需要配置偵聽器端口,“服務器”----“應用服務器”----“server1”----“通信”----“消息傳遞”----“消息偵聽器服務”----“偵聽器端口”----“新建”。填寫一下內容:
名稱: test
連接工廠JNDI名: jms/cf(對應websphere隊列連接工廠的JNDI)
目標JNDI名: jms/test(對應websphere隊列目標的JNDI)
偵聽器端口配置完成,部署消息bean時需提供該偵聽器名稱。
重啟websphere使配置生效。
編寫一個jsp嘗試發送消息:
原文轉自:http://www.anti-gravitydesign.com