Re: [J2EE] 問題,想請問 JMS的Queue的問題
※ 引述《qrtt1 (null)》之銘言:
: ※ 引述《LCHENAN (~!!)》之銘言:
: : 各位前輩大家好:
: : 小弟今天在撰寫程式時,一直卡在一個地方,查詢了
: : 課本: Java訊息服務這本書 尚未找到答案,當然Google也goo
: : 因此想說來請教大家
: : 運行環境
: : 電腦A Windows XP,JDK6 update15,GlassFish, ORBListenerPort:3700
: : 連線工廠: jms/Queue_ConnectionFactory
: : 連線資源: jms/Queue
: : 電腦B的環境跟電腦A是相同的
: : 我碰到的問題是:
: Q1: JMS Provider 是不是只有一個?
嗯,只有電腦A的甲程式會送出訊息
: : 我在主機A上啟動了一個程式"甲"
: : 這個甲的功能在於
: : 1. 啟動本機的連線資源 jms/Queue的監聽
: : 2. 定時發送訊息給主機B的jms/Queue
: : 3. 顯示本機 jms/Queue所收到的Message訊息
: : 並且也在主機B上啟動了一個程式"乙"
: : 這個乙的功能在於
: : 1. 啟動本機的連線資源 jms/Queue的監聽
: : 2. 顯示本機 jms/Queue所收到的Message訊息
: : 在啟動之後
: : 我發現:
: : 第一個情況:
: : 電腦B一直無法收到來自於電腦A的訊息,
: : 然而電腦A卻可以收到訊息自己發送出來的訊息
: : 第二個情況:
: : 我把甲程式監聽jms/Queue的功能關掉,
: : 此時,神奇的事情就發生了
: : 電腦B就可以顯示從電腦A發出的訊息
: : 我想請問這個情況要用什麼樣的方式解決呢?
: : 麻煩大家給小弟一個指引的方向?
: : 謝謝
: JMS Queue Domain (俗稱 Producer/Consumer Model)
: 可以有多個 Producer、Consumer。但是一個訊息只能被一個 Consumer 收到。
: 收到就消耗掉了,不會有其他人再收到。
: 你在甲開了 Consumer、乙也開了 Consumer。
: 只要有人先收到,另一方不就不可能收到。(JMS 不保證收到的優先順序)
: 如果你要大家都收到應該用 Topic Domain (Publish/Subscribe)
: 這樣就不會有訊息被消耗掉有人沒收到的現象。
大大我懂您的意思,您的意思是說
如果電腦A跟電腦B 共用了一個JMS伺服器,則一個Queue的訊息出來之後
只能被甲或乙程式處理
但小弟現在碰到的問題是:
電腦A上面有一個JMS伺服器(GlassFish)
電腦B上面也有一個JMS伺服器(GlassFish)
而甲程式的部份程式碼
QueueConnectionFactory qFactory = null;
InitialContext jndi = null;
Properties env = new Properties();
env.put("org.omg.CORBA.ORBInitialHost", "A"); //在這邊指定電腦A
//指定要傳送的Port
env.put("org.omg.CORBA.ORBInitialPort", "3700");
jndi = new InitialContext(env);
以上的設定應該是只能接收到來自於電腦A的jms/Queue
而乙程式的部份程式碼
QueueConnectionFactory qFactory = null;
InitialContext jndi = null;
Properties env = new Properties();
env.put("org.omg.CORBA.ORBInitialHost", "B"); //在這邊指定電腦B
//指定要傳送的Port
env.put("org.omg.CORBA.ORBInitialPort", "3700");
jndi = new InitialContext(env);
以上的設定應該是只能接收來自於電腦B的jms/Queue
如此的設定
電腦A上的甲程式為什麼會收到來自於本身jms/Queue的訊息呢?
還是這樣的設定根本就是錯誤的???
苦惱中~~~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.116.134.16
推
08/09 00:47, , 1F
08/09 00:47, 1F
→
08/09 00:49, , 2F
08/09 00:49, 2F
→
08/09 00:49, , 3F
08/09 00:49, 3F
→
08/09 00:50, , 4F
08/09 00:50, 4F
→
08/09 01:30, , 5F
08/09 01:30, 5F
推
08/09 03:40, , 6F
08/09 03:40, 6F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 5 之 7 篇):