Java开发网 Java开发网
注册 | 登录 | 帮助 | 搜索 | 排行榜 | 发帖统计  

您没有登录

» Java开发网 » Java EE 综合讨论区  

按打印兼容模式打印这个话题 打印话题    把这个话题寄给朋友 寄给朋友    该主题的所有更新都将Email到你的邮箱 订阅主题
flat modethreaded modego to previous topicgo to next topicgo to back
作者 不用MDB如何获取集群上分布式消息队列
sljsuper





发贴: 30
积分: 0
于 2007-05-23 10:43 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
不用MDB,使用注册侦听的方法如何获取分布式消息队列的消息?
常规的注册方法只能固定获取一个物理队列的消息,如何把所有的物理队列上的消息处一次接收呢,望指教。使用过多线程的方法,感觉不太稳定。


sljsuper edited on 2007-05-23 10:54

作者 Re:不用MDB如何获取集群上分布式消息队列 [Re:sljsuper]
snowbug



CJSDN高级会员


发贴: 418
积分: 130
于 2007-05-24 05:42 user profilesend a private message to usersend email to snowbugsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
可否说得详细些,为什么不用 MDB,具体的要求是什么,什么环境,等等。


作者 Re:不用MDB如何获取集群上分布式消息队列 [Re:sljsuper]
sljsuper





发贴: 30
积分: 0
于 2007-05-24 09:52 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
侦听队列的环境是weblogic9.2下,集群、分布式队列。分布式队列上建了8个存储位置。目的是想通过DQ来获取所有物理队列的消息,使用注册侦听的方法每次通过DQ注册,只连到一个物理队列,其他的队列消息取不到,使用多线程也不能保证每个物理队列都能连到。用MDB可以,但是基于我们项目的原因不适合,而且MDB要配置jar.xml文件打包,这样就导致如果我有10几个环境要使用这个项目因为这个XML文件就需要打10几个版本,这样是否太浪费了。


作者 Re:不用MDB如何获取集群上分布式消息队列 [Re:sljsuper]
snowbug



CJSDN高级会员


发贴: 418
积分: 130
于 2007-05-25 07:18 user profilesend a private message to usersend email to snowbugsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
不是很确定为什么你需要获取所有物理队列的消息。使用 DQ 的目的应该是平衡负载吧,那么每个 Queue Receiver 的代码都应该是一样的,换句话说,不管那个物理队列受到了消息,处理的代码都应该是相同的。


作者 Re:不用MDB如何获取集群上分布式消息队列 [Re:sljsuper]
sljsuper





发贴: 30
积分: 0
于 2007-05-25 10:08 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
在表面上我们是看不见物理队列的JNID的,只能看见DQ。而通过DQ来查找到话只能绑定一个物理地址。这就是问题所在。在bea的文档看见queue = myQueueSession.createQueue("myModule!myServer/myQueue"); 这个方法,试了没用,因为我的server是集群,物理队列也根本不知道。就是不明白发送的时候怎么可以通过一个DQ,而接收的时候却不行。


作者 Re:不用MDB如何获取集群上分布式消息队列 [Re:sljsuper]
snowbug



CJSDN高级会员


发贴: 418
积分: 130
于 2007-05-26 15:30 user profilesend a private message to usersend email to snowbugsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
我知道你的意思了。你用的是 UDQ 吧。 这个应该是 bea 特有的问题。我不知道怎么解决。老实说,我很奇怪 bea 的文档居然没有提到这个问题。如果不能注册所有的物理队列,就会丢失消息,那么这个 DQ 还有什么用呢。

我好像看到你是可以直接在 jndi 里拿到单个的物理队列的。


snowbug edited on 2007-05-27 00:28

作者 Re:不用MDB如何获取集群上分布式消息队列 [Re:sljsuper]
sljsuper





发贴: 30
积分: 0
于 2007-05-27 09:11 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
问题已解决
JMSModuleHelper.uddMemberJNDIName(jmsservername,dqname);
以此方法获取物理队列JNDI。以前用过,觉得这个方法很奇怪,不用上下文环境的就可以直接用,只是作为 一个字符串翻译的工作。


sljsuper edited on 2007-05-29 13:14


flat modethreaded modego to previous topicgo to next topicgo to back
  已读帖子
  新的帖子
  被删除的帖子
Jump to the top of page

   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923