超出了TIBCO ems队列限制

时间:2013-05-02 17:32:28

标签: java jms tibco tibco-ems

尝试将消息发送到TIBCO Ems队列时,我收到异常(如下所示)。

 javax.jms.ResourceAllocationException: Queue limit exceeded
 at com.tibco.tibjms.Tibjmsx.buildException(Tibjmsx.java:523)
 at com.tibco.tibjms.TibjmsxSessionImp._publish(TibjmsxSessionImp.java:1390)
 at com.tibco.tibjms.TibjmsMessageProducer._publish(TibjmsMessageProducer.java:246)
 at com.tibco.tibjms.TibjmsQueueSender.send(TibjmsQueueSender.java:51)

我看过这个例外的唯一地方就是这个链接:http://class10e.com/tibco/a-queue-is-defined-as/

从这里我可以猜到,在发送任何消息之前,每个队列至少需要一个消费者。一旦我创建了一个消费者,它就有效,但最多只有5或6条消息。奇怪的是,我每次测试之前都会清空队列,并且我发送相同的文本消息,因此没有大小差异。为什么有时候在5次之后有时失败,有时候在6次消我在最初清空队列后没有消耗这些消息(我创建了一个消费者但是使用了eclipses debug来暂停消息使用者的线程)。有谁知道这个例外的原因是什么?

4 个答案:

答案 0 :(得分:1)

似乎在目标上设置了MAXBYTES或MAXMSGS属性。导致队列限制超出错误。

请检查目的地物业..

希望这有帮助

答案 1 :(得分:1)

请谨慎使用

setprop queue queue-name maxmsgs=10000

setprop queue queue-name maxbytes=1024MB

Setprop删除所有队列参数,并用默认参数替换,除了要更改的一个参数。 如果您只想更改一个参数而不触摸其他参数,请使用

addprop queue queue-name PARAMETER=VALUE

Addprop添加新参数或修改现有参数。 如果您想进一步了解setpropaddprop类型

help setprop

help addprop 

登录到ems服务器时。

答案 2 :(得分:0)

使用此命令从EMS管理工具

增加队列大小
  

setprop queue queue-name maxmsgs = 10000

     

setprop queue queue-name maxbytes = 1024MB

答案 3 :(得分:-1)

此错误可能是由于以下

如果您跨越此大小然后错误

,则EMS队列的默认大小为512MB