2012-05-11 71 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