作者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)
1F:推 qrtt1:检查多个 JMS Server 是否自动合并成一个虚拟的 Server 08/09 15:24
2F:推 qrtt1:这比较像设定的问题,而非程式的问题。 08/09 15:24
3F:推 qrtt1:另外,没有必要存在那麽多 JMS Server。除非做 Cluster。 08/09 15:45
4F:→ LCHENAN:这位大大实在太聪明了~我就是要做像Cluster的功能 08/09 15:48
5F:→ qrtt1:那你应该翻手册搞清楚怎麽设定才是。 08/09 16:03