作者LCHENAN (~!!)
看板java
標題Re: [J2EE] 問題,想請問 JMS的Queue的問題
時間Sun Aug 9 15:00:54 2009
各位前輩好
小弟發現在這個部份有一個問題
延續先前碰到的問題
電腦A環境: Windows XP Sp3, JDK6 update 15
GlassFish V2.1,
電腦B與A的環境相同
在此分成兩個部份來說:
第一個部份: 如果Queue的Receive和Send分屬在不同的程式
也就是說 Receive和Send 寫成兩個Project(我是用NetBeans)
則在電腦A上分別執行Receive和Send 電腦B上執行Receive
(程式碼的部份,如上一篇所PO的)
則電腦A的訊息可準確的送到電腦B去
這部份是完全沒有問題的
第二個部份:
將Receive和Send,放在同一個專案中一起執行
程式碼:
http://www.wretch.cc/blog/lchenan/23835431
因找不到空間放,又不想自己架,因此放在無名,起大家多多見諒
我先說明一下程式
Start.java 在控制是要執行哪一種情況
情況1: java -jar 專案名稱.jar 1 null
代表是說 我們要在本機上接收本機的Queue
情況2: java -jar 專案名稱.jar 2 A
代表是說 我們要傳送訊號到A主機的Queue
情況3: java -jar 專案名稱.jar 3 A
代表: 我們要先開啟本機的Queue監聽,然後再執行發送訊息到A電腦
情況4: java -jar 專案名稱.jar 4 A
代表: 我們要先傳送訊息到A電腦,然後在開啟本機的Queue監聽
而ReceiveQueue和SendQueue如連結所示
問題:
在第二部份的情況1和2的情形下,其實是跟第一部份的情形是相同的
所以 執行上的結果完全沒有問題
=================================================
然而,在第二部份的情況3和4,則就完全不是我想要的結果
會發生 A主機傳送訊息給B之後,A主機收到自己發送出去的訊息
而B主機無法收到。然而,A主機並沒有設定要接收B主機的Queue的訊息
=================================================
另外還會碰到一個情況
A主機執行了情況3和4後
我們從B發送給A,A無法收到訊息
================================================
以上是實驗的結果
煩請各位前輩幫忙了!
我知道可以用Topic來解決這部份的問題
然而,我一直無法想明白這其中到底是出了什麼問題
謝謝大家耐心看完
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.172.79.138
※ 編輯: LCHENAN 來自: 218.172.79.138 (08/09 15:03)
※ 編輯: LCHENAN 來自: 218.172.79.138 (08/09 15:08)
推 qrtt1:檢查多個 JMS Server 是否自動合併成一個虛擬的 Server 08/09 15:24
推 qrtt1:這比較像設定的問題,而非程式的問題。 08/09 15:24
推 qrtt1:另外,沒有必要存在那麼多 JMS Server。除非做 Cluster。 08/09 15:45
→ LCHENAN:這位大大實在太聰明了~我就是要做像Cluster的功能 08/09 15:48
→ qrtt1:那你應該翻手冊搞清楚怎麼設定才是。 08/09 16:03