2012-05-11 70 views
2

我想在我的web应用程序使用一个消息驱动bean,但每次它将引发我此异常:Glassfish的消息驱动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资源”向导也不会询问有关此参数的任何信息。

有什么方法可以解决它吗?

回答

2

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

....

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

SunGlassFish MessageQueue 4.4 Administration Guide4.2 guide

更新物理目的地属性

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

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

被更新可包括任何那些中列出的性质表18-1(除了isLocalOnly属性之外,一旦创建了目标,该属性不能更改)。

例如,下面的命令队列 目的地curlyQueue到1000的maxBytesPerMsg性能,同时将MaxNumMsgs属性更改为2000:

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

我想这个问题是大的,似乎什么。 我只有2个字符串的List!它怎么会这么大? – StepTNT

+0

您必须发布构建消息的代码。但这是一个不同的问题:) – Preston