服務器:WAS 6與Websphere MQ6的整合

發表于:2007-05-25來源:作者:點擊數: 標簽:服務器MQ6websphere整合was
WAS6與WebsphereMQ6的整合 bromon原創請尊重版權 整合的目的是讓MQ作為 websphere applicationserver的JMSprovider,所有的JMS消息會被 was 轉發到MQ隊列中,由于MQ提供了多種平臺的API,因此消息的傳遞可以不再通過轉發的方式。任何平臺都可以直接連接到MQ

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嘗試發送消息:

  1.  
  2. < %@ page contentType="text/html; charset=GBK" %>
  3. < %@ page import="java.util.*"%>
  4. < %@ page import="javax.jms.*"%>
  5. < %@ page import="javax.naming.*" %>
  6. < %
  7. try
  8. {
  9.   Properties p = new Properties();
  10.   p.put(Context.INITIAL_CONTEXT_FACTORY,"com.ibm.websphere.naming.WsnInitialContextFactory");
  11.   p.put(Context.URL_PKG_PREFIXES, "com.ibm.ws.naming");
  12.   p.put(Context.PROVIDER_URL, "iiop://localhost:2809/");
  13.   InitialContext ctx = new InitialContext(p);
  14.  
  15.   QueueConnectionFactory qcf = (QueueConnectionFactory) ctx.lookup("jms/cf");//連接工廠
  16.   QueueConnection conn = qcf.createQueueConnection();
  17.  
  18.   Queue q = (Queue) ctx.lookup("jms/test");//隊列
  19.   QueueSession s = conn.createQueueSession(false,QueueSession.AUTO_ACKNOWLEDGE);
  20.   conn.start();
  21.   QueueSender sender = s.createSender(q);
  22.  
  23.   TextMessage tm=s.createTextMessage("測試websphere mq有中文字符");//創建文本消息
  24.   sender.send(tm, DeliveryMode.PERSISTENT, 4, 0);
  25.   sender.close();
  26. }catch(Exception e)
  27. {
  28.   out.println(e);
  29. }
  30. %>

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97