作者qrtt1 (null)
看板java
标题Re: [J2EE] 问题,想请问 JMS的Queue的问题
时间Sun Aug 9 00:33:37 2009
※ 引述《LCHENAN (~!!)》之铭言:
: 各位前辈大家好:
: 小弟今天在撰写程式时,一直卡在一个地方,查询了
: 课本: Java讯息服务这本书 尚未找到答案,当然Google也goo
: 因此想说来请教大家
: 运行环境
: 电脑A Windows XP,JDK6 update15,GlassFish, ORBListenerPort:3700
: 连线工厂: jms/Queue_ConnectionFactory
: 连线资源: jms/Queue
: 电脑B的环境跟电脑A是相同的
: 我碰到的问题是:
Q1: JMS Provider 是不是只有一个?
: 我在主机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)
这样就不会有讯息被消耗掉有人没收到的现象。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.231.48.9