Glassfish消息驱动的bean消息大小

时间:2012-05-11 21:01:35

标签: glassfish glassfish-3 message-driven-bean

我正在尝试在我的webapp中使用消息驱动的bean,但每次它都会抛出这个异常:

com.sun.messaging.jmq.jmsserver.util.BrokerException: [B4122]: Can not add message 1-127.0.1.1(b0:1a:c1:66:46:a9)-1-1336769823653 to destination PhysicalQueue [Queue]. The message size of 24968685 bytes is larger than the destination individual message byte limit (maxBytesPerMsg) of 10485760 bytes.

经过一些研究,我发现默认限制为-1,因此必须无限制。

我在Glassfish的管理控制台中随处可见,但找不到删除此限制的方法。 甚至“新的JMS资源”向导也不会询问有关此参数的任何信息。

有没有办法解决它?

1 个答案:

答案 0 :(得分:2)

为什么你的信息如此之大?您可能想重新考虑如何做到这一点。

...

您可以通过imqcmd命令进行更新。您要更改的值是MaxBytesPerMsg。

来自SunGlassFish MessageQueue 4.4 Administration Guide4.2 guide

更新物理目的地属性

子命令imqcmd update dst更改物理的指定属性的值 目的地:

imqcmd update dst -t destType -n destName
                   -o property1=value1 [ [-o property2=value2] ... ]

要更新的属性可以包括表18-1中列出的任何属性(isLocalOnly属性除外,创建目标后无法更改)。

例如,以下命令更改队列的maxBytesPerMsg属性 目标curlyQueue为1000,maxNumMsgs属性为2000:

imqcmd update dst -t q -n curlyQueue -u admin
                  -o maxBytesPerMsg=1000
                  -o maxNumMsgs=2000