<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 42,comments - 83,trackbacks - 0

            有些情況下,客戶希望集成外部MOM來存儲消息,比如MQSeries, ActivemQ5.2。集成外部MOM時,Weblogic可以通過幾種不同的方式實現,Foreign JMS ServerForeign JNDI ProviderMessage BridgeForeign JMS ServerForeign JNDI Provider工作方式類似,只做JNDI轉發,客戶端最終會和外部MOM上的destination直接通信。而對于Message Bridge,需要通過在Weblogic配置本地destination,客戶端發送、接收消息的時候,連接的本地destination,然后由Weblogic實現本地destination和外部MOM上的destination的通信。而對于外部jndi,我們又有兩種方式,可以使用apacheActiveMQInitialContextFactory(基于jndi.properties)也可以使用sunRefFSContextFactory(基于文件)

        本文通過實例step-by-step介紹如何通過Foreign JMS ServerForeign JNDI Provider Weblogic92ActiveMQ5.2集成起來。

    1:下載并安裝ActiveMQ5.2
       
    下載鏈接為http://activemq.apache.org/activemq-520-release.html,我們可以下載bin格式的,解壓后可以直接啟動。

    2:啟動ActiveMQ5.2,配置destination
       
    執行$ACTIVEMQ_HOME\bin下的activemq.cmd.shActiveMQ啟動后,我們可以訪問admin console(http://localhost:8161/admin/)并創建destination。進入console后,點擊Queues,然后點擊create,創建我們自己的destination。我創建的queue叫做fjin.Queue_2,我們后面將使用這個queue,如下,



    3:生成jndi.properties
       
    這個文件對于thin client來說是必須的,而對于weblogic我們不需要這個文件,我們只要在配置Foreign JMS ServerForeign JNDI Provider 的時候,直接在jndi properties中輸入name/value對就可以了。
       
    java.naming.factory.initial = org.apache.activemq.jndi.ActiveMQInitialContextFactory
       
    java.naming.provider.url = tcp://localhost:61616
       
    connectionFactoryNames = fjin.JMSConnectionFactory
       
    queue.fjin.Queue_2 = fjin.Queue_2
       
    這里fjin.JMSConnectionFactory是客戶端在lookup時需要用的(如果客戶端是weblogic,那么他將作為remote jndi name,而最終客戶端程序使用的是weblogic中定義的local jndi name),而queue.fjin.Queue_2queue是指定destination類型,我們在做lookup時,需要去掉queue.,對于=后面fjin.Queue_2, 則是指我們在ActiveMQ中配置的物理queueThin client使用這個文件的時候,需要將他放在classpath(將該文件所在的目錄加入classpath即可)

    4:生成RefFSContextFactory所需要的文件
       
    如果使用RefFSContextFactory作為jndi provider context factory,我們要生成對應的文件。文件的生成可以通過下面的程序實現(類似于MQSeriesJMSAdmin),用于物理queuejndi name的綁定. 使用RefFSContextFactory 時需要fscontext.jar,這個jar不是jdk標準包中的內容,可以從如下http://java.sun.com/products/jndi/downloads/index.html下載。

    運行這個程序前,我們要在e:/tmp下創建一個activemq_fs_jndi目錄,程序執行后,該目錄下會生成一個.bindings文件,這個文件將來用于RefFSContextFactory做本地解析。其實fs.Queue_2, fs.JMSConnectionFactory是我們將來foreigh jms server/foreign jndi provider中使用的remote jndi name

    5:設置Weblogic classpath
       
    因為我們將使用ActiveMQInitialContextFactoryRefFSContextFactory兩種方式,因此我們需要將對應的jar包放入classpath(startWeblogic.cmd/sh),如下:

    6:配置Foreign JMS ServerForeign JNDI Provider
       
    前面我們說過,集成可以通過Foreign JMS ServerForeign JNDI Provider,而這兩種方式其實都是基于jndi的,而jndi可以用兩種方式,組合起來的話,會有四種方式。這里不作一一羅列,以如下兩種方式作為實例,
        Foreign JMS Server + ActiveMQInitialContextFactory
        Foreign JNDI Provider + RefFSContextFactory

    6.1Foreign JMS Server + ActiveMQInitialContextFactory
       
    6.1.1:首先我們在weblogic中配置一個foreign jms server,如下:


        這里jndi properties和我們在jndi.properties文件中的內容一樣,只是少了initial context factoryprovider url的指定。注意:queue.fjin.Queue_2queue指定的是destination類型,而fjin.Queue_2指的是將來客戶端要lookupjndi name。其格式為:
        queue.jndiName = physical queu name
       
    topic.jndiName = physical topic name
       
    connectionFactoryNames = jndiName1,jndiName2,...

        6.1.2:配置foreign jms server中的destinationconnection factory


        這里remote jndi name指我們在jndi properties中設定的destinationconnection factoyjndi name,而local jndi name將被用于客戶端lookup

        6.1.3:客戶端測試程序
       
    配置完成后,我們可以通過客戶端程序進行消息發送測試,如下:

    1             String providerUrl="t3://localhost:7008";
    2             String cfName="jms.JMSConnectionFactory";
    3             String destName="jms.Queue_2";
    4             Properties pro=new Properties(); 
    5             pro.put(Context.INITIAL_CONTEXT_FACTORY,
    6                     "weblogic.jndi.WLInitialContextFactory"); 


    6.2:
    Foreign JNDI Provider + RefFSContextFactory
       
    6.2.1: 配置一個foreign jndi provider,如下:

        6.2.2:配置jndi links
       
    我們需要配置兩個jndi links,一個是destination,一個是connection factory。其中,remote jndi name需要和我們在FSJNDI生成的.binding中的名字一致,比如fs.Queue_2



    6.2.3
    配置完成后,我們可以通過客戶端程序進行消息發送測試,如下
    :

    1             String providerUrl="t3://localhost:7008";
    2             String cfName="wlsfs.JMSConnectionFactory";
    3             String destName="wlsfs.Queue_2";
    4             Properties pro=new Properties(); 
    5             pro.put(Context.INITIAL_CONTEXT_FACTORY,
    6                     "weblogic.jndi.WLInitialContextFactory"); 


    7
    thin client測試
       
    對于不通過weblogic,直接用jndi連接activeMQ的客戶端,我們需要jndi.properties文件,并這個文件要放入該client執行時的classpath中。假如jndi.properties中設定如下:
        java.naming.factory.initial = org.apache.activemq.jndi.ActiveMQInitialContextFactory
       
    java.naming.provider.url = tcp://localhost:61616
       
    connectionFactoryNames = fjin.JMSConnectionFactory
       
    queue.fjin.Queue_2 = physical.Queue_2

    對于上面的jndi properties文件,我們在寫客戶端時,需要lookupjndi name: fjin.Queue_2, fjin.JMSConnectionFactory,如下:

    1             String providerUrl="tcp://localhost:61616";
    2             String cfName="fjin.JMSConnectionFactory";
    3             String destName="fjin.Queue_2";
    4             Properties pro=new Properties(); 
    5             pro.put(Context.INITIAL_CONTEXT_FACTORY,
    6                     "org.apache.activemq.jndi.ActiveMQInitialContextFactory");
    posted on 2009-07-10 15:07 走走停停又三年 閱讀(2138) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲va无码手机在线电影| 高清免费久久午夜精品| 朝桐光亚洲专区在线中文字幕| 久久亚洲色WWW成人欧美| 国产精品内射视频免费| 久久久久久影院久久久久免费精品国产小说| 91成人在线免费视频| 国产精品嫩草影院免费| 亚洲国产精品久久久久网站| 亚洲精品成a人在线观看夫| 国产一级在线免费观看| 青苹果乐园免费高清在线| 亚洲人成人无码网www国产| 亚洲沟沟美女亚洲沟沟| 一二三区免费视频| 精品国产无限资源免费观看| 亚洲综合在线另类色区奇米| 亚洲熟女精品中文字幕| 真实国产乱子伦精品免费| 亚洲视频在线精品| 亚洲精品无码aⅴ中文字幕蜜桃| 日韩精品无码专区免费播放| 亚洲精品乱码久久久久久蜜桃| 亚洲欧洲国产经精品香蕉网| 黄色片免费在线观看| 亚洲麻豆精品国偷自产在线91| 欧洲 亚洲 国产图片综合| 精品一区二区三区免费毛片爱| 亚洲一区AV无码少妇电影☆| 黄页网址在线免费观看| 成年女人男人免费视频播放| 亚洲国产成人手机在线电影bd| a毛片久久免费观看| 亚洲一区无码中文字幕| eeuss影院免费92242部| JLZZJLZZ亚洲乱熟无码| 四虎影视在线看免费观看| 亚洲第一黄片大全| a级毛片免费观看在线| 亚洲片国产一区一级在线观看 | 免费国产高清视频|