2014-04-14 50 views
1

我需要一些精確的步驟(參考glassfish文檔)以下場景;Glassfish JMS隊列與HornetQ:本地存儲和遠程轉發

  • 如何創建JMS隊列以支持「本地存儲和遠程轉發」。遠程系統是HornetQ。
  • 遠程連接應支持SSL和用戶/密碼認證
  • 它應該支持自動重試和配置重試次數。
  • 在任何故障的情況下,它應該是可以選擇的消息散裝重發

我已經通過一些在GlassFish文檔中去,但需要由專家來進一步驗證了JMS。

簡單場景但仍不起作用「發送JMS到sourceQueue和JMS橋接服務以轉移到targetQueue」。這裏是配置;

A. domain.xml中(提取物)

<jms-service default-jms-host="default_JMS_host" type="EMBEDDED"> 
    <jms-host host="localhost" name="default_JMS_host" lazy-init="false"> 
     <property name="imq.bridge.bridge1.type" value="jms"></property> 
     <property name="imq.bridge.bridge1.xmlurl" value="file:///C:/TEMP/bridge.xml"></property> 
     <property name="imq.bridge.bridge1.autostart" value="true"></property> 
     <property name="imq.bridge.bridge1.logfile.limit" value="0"></property> 
     <property name="imq.bridge.bridge1.logfile.count" value="1"></property> 
     <property name="imq.bridge.enabled" value="true"></property> 
     <property name="imq.bridge.admin.user" value="admin"></property> 
     <property name="imq.bridge.admin.password" value="admin"></property> 
     <property name="imq.bridge.activelist" value="bridge1"></property> 
    </jms-host> 
</jms-service> 

B. bridge.xml(橋結構)

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE jmsbridge SYSTEM "sun_jmsbridge_1_0.dtd"> 
<jmsbridge name="bridge1"> 
    <link name="link1"> 
     <enabled ="true"></enabled> 
      <source connection-factory-ref=」jms/__defaultConnectionFactory" destination-ref="sourceQueue"></source> 
    <target connection-factory-ref="jms/__defaultConnectionFactory" destination-ref="targetQueue "></target> 
    </link> 
    <connection-factory ref-name="jms/__defaultConnectionFactory"/> 
    <connection-factory ref-name="jms/__defaultConnectionFactory"/> 
    <destination ref-name="sourceQueue" type="queue" lookup-name="sourceQueue"/> 
    <destination ref-name="targetQueue" type="queue" lookup-name="targetQueue"/> 
</jmsbridge> 

回答

0

Glassfish的部署Glassfish的JMS服務器。如果你想和HornetQ談談,你需要使用HornetQ庫,並使用適當的API(核心或JMS)來與HornetQ服務器交談。

如果您需要通過MDB進行XA集成,那麼您需要部署資源適配器並進行適當的恢復集成。看看glassFish如何部署外部資源適配器..但是這是RedHat沒有人測試過的一個領域,並且鑑於glassFish的狀態正在停止,我懷疑這種情況很快就會發生。

另一種方法是在JBoss/HornetQ中部署JMS Bridge,在GlassFish JMS上發送的任何消息都將通過橋接過程在HornetQ上消耗。

+0

謝謝;讓你或者論壇的某位成員在Glassfish中創建JMS Bridge的任何成功示例?如果是這樣,請與XML JM Bridge文件一起共享配置文件? – user3530505

+0

這是一個非常標準的事情。看看我們的JMS Bridge示例。你只需要glassfish庫..然後你在jboss一邊做。 看來我已經回答了你的問題..我會很高興你接受它。 –

+0

嗨克萊伯特, 是的,它的標準我想知道爲什麼JMS Bridge不工作。我創建了一個最簡單的場景。將消息發送到sourceQueue,JMS橋將消息傳輸到targetQueue。所有本地MQ + Glassfish。我在原始郵件中嵌入了domain.xml和bridge.xml。如果我缺少這種基本和標準配置的東西,你可以欣賞一下,並提出建議。另外,我在JMS Bridge Service上發生錯誤「在代理上執行此操作時出錯 [B2215]:網橋服務管理器未運行 – user3530505