2014-03-05 36 views
2

因此,這裏是問題所在。我有一個在weblogic 8中運行的應用程序,它嚴重依賴於JMS消息。消息來自集羣MQ服務器,並且ejb 2中的應用程序使用weblogic-ejb-jar.xml中的配置直接在MQ中偵聽。 MQ服務器有兩個隊列管理器和兩個不同的連接工廠名稱供這些管理器使用。如何在羣集環境中配置weblogic 11中的多個MQ隊列管理器和連接工廠

<weblogic-enterprise-bean> 
    <ejb-name>MDB_QM1</ejb-name> 
    <message-driven-descriptor> 
     <destination-jndi-name>QM1</destination-jndi-name> 
     <initial-context-factory>weblogic.jndi.WLInitialContextFactory</initial-context-factory> 
     <connection-factory-jndi-name>CF1</connection-factory-jndi-name> 
    </message-driven-descriptor> 
    </weblogic-enterprise-bean> 
    <weblogic-enterprise-bean> 

    <ejb-name>MDB_QM2</ejb-name> 
    <message-driven-descriptor> 
     <destination-jndi-name>QM2</destination-jndi-name> 
     <initial-context-factory>weblogic.jndi.WLInitialContextFactory</initial-context-factory> 
     <connection-factory-jndi-name>CF2</connection-factory-jndi-name> 
    </message-driven-descriptor>   
    </weblogic-enterprise-bean> 

現在,應用程序將被遷移到WebLogic 10.3和配置已經在測試該版本的.ejb做已更改爲3和他們使用的註釋在多邊開發銀行的隊列配置和這樣的。但真正的問題在於,應用程序用於直接監聽MQ,現在他們已經配置了一個橋接器,將消息從MQ傳輸到內部隊列,並且mdb將監聽該隊列。 weblogic bridge config中的源MQ隊列配置在那裏只有一個連接工廠,我不確定是否可以在單個隊列中配置多個隊列管理器,連接工廠等。但在生產中會有多個隊列管理器等。

我認爲如果爲這些隊列配置外部服務器,那麼可以進行集羣化。但是這意味着應用程序和weblogic配置的巨大變化。因此,我正在尋找的理想解決方案是通過現有網橋配置連接到多個MQ隊列管理器的方法。如果不可能,請提出下一個最好的建議。我願意接受所有的想法:)

感謝

+0

什麼是這裏的橋樑,什麼是內部隊列?在當前的設置中,兩個隊列是否會從源系統接收到類似的消息? – Umapathy

+0

感謝您的回覆,通過內部隊列我的意思是在weblogic本地jms隊列。本地隊列和遠程隊列(MQ)之間存在橋接。在當前的設置中,他們的MQ管理器和MQconnection工廠是不同的,但是隊列名稱是相同的,所以他們發送類似的消息。據我所知,多個經理提供高可用性。所以如果一個隊列管理者關閉了,其他人可以處理這些消息。 – user2584920

+0

如果我理解正確,橋將負責從MQ隊列(多個安裝或集羣)獲取消息並將其放入Weblogic JMS隊列中。您只需修改您的MDB即可從此JMS隊列中獲取消息。無論MDB正在做什麼,現在都由橋樑完成。所以我不知道這裏最關心的是什麼。你能說清楚嗎? – Umapathy

回答

1

WebSphere MQ集羣是所有關於QMgrs如何相互交談,並不會從應用隱瞞事實,有一個隊列的多個物理實例。每個隊列管理器實例都需要單獨的連接。該應用程序將需要...

  • 爲每個隊列實例使用網橋的一個實例。
  • 配置網橋以同時連接多個QMgrs。

無論誰決定使用單個連接工廠來配置網橋,都沒有考慮底層傳輸的體系結構。無論你嘗試多麼艱難,你都無法克服這種糟糕的配置決定。

+0

謝謝T.Rob。我們做了設計更改並創建了兩個連接工廠:) – user2584920

+0

很高興幫助。不要忘記投票和/或接受。 –

相關問題