[
https://issues.apache.org/jira/browse/QPID-6960?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15074935#comment-15074935
]
Keith Wall edited comment on QPID-6960 at 12/30/15 11:11 AM:
-------------------------------------------------------------
The long term solution here is to implement message chunking (QPID-6766), so
that message payloads are written to the store in the chunks, as they are read
from the wire. Providing the chunk size is less than
{{je.rep.maxMessageSize}}, this defect could never occur.
In the near term, it would be sensible to introduce a change to the broker so
that the virtual host is able to impose its own limits (QPID-6964) on the
maximum message size. In the case of BDB HA VH, this would be clamped to
je.rep.maxMessageSize.
was (Author: k-wall):
The long term solution here is to implement message chunking (QPID-6766), so
that message payloads are written to the store in the chunks, as they are read
from the wire. Providing the chunk size is less than
{{je.rep.maxMessageSize}}, this defect could never occur.
In the near term, it would be sensible to introduce a change to the broker so
that the virtual host is able to impose its own limits on the maximum message
size. In the case of BDB HA VH, this would be clamped to je.rep.maxMessageSize.
> BDB HA limits message size to je.rep.maxMessageSize (which was inadvertently
> lowered in qpid-java-6.0)
> ------------------------------------------------------------------------------------------------------
>
> Key: QPID-6960
> URL: https://issues.apache.org/jira/browse/QPID-6960
> Project: Qpid
> Issue Type: Bug
> Components: Java Broker
> Affects Versions: 0.30, 0.32, qpid-java-6.0
> Reporter: Keith Wall
>
> If I create a Java Broker BDB HA group and publish a message whose payload +
> overhead exceeds {{je.rep.maxMessageSize}}, the replicas log the following
> exception. On qpid-java-v6.0, the replica doesn't fail but instead slowly
> spins, seemingly continually retrying repeating the same log message.
> {{je.rep.maxMessageSize}} is not overridden by Qpid, so it takes its default
> value 0. 0 is interpreted by JE to mean {{je.maxMemory /2}}. QPID-6751
> reduced the size of {{je.maxMemory}} from 5% of JVM's heap to 2%. This means
> that in qpid-java-v6.0, the default maximum message size will be 2% of
> default JVM heap size (0.5GB) = 10MB. For comparison, in 0.32 with default
> heap of 2GB gave a maximum message size of 50MB.
> Users can work around this issue by raising {{je.rep.maxMessageSize}}. This
> can be done from the Java Broker command line (-prop), or from QPID_OPTS
> environment variable.
> {noformat}
> com.sleepycat.je.EnvironmentFailureException: (JE 5.0.104) Message op: Entry
> Body size: 32557779 is too large. maxSizeAllowed: 21126184
> If a larger value is needed, set the 'je.rep.maxMessageSize' parameter.
> UNEXPECTED_STATE: Unexpected internal state, may have side effects.
> at
> com.sleepycat.je.EnvironmentFailureException.unexpectedState(EnvironmentFailureException.java:426)
> at
> com.sleepycat.je.rep.utilint.BinaryProtocol.read(BinaryProtocol.java:469)
> at
> com.sleepycat.je.rep.impl.node.Replica.doRunReplicaLoopInternalWork(Replica.java:466)
> at
> com.sleepycat.je.rep.impl.node.Replica.runReplicaLoopInternal(Replica.java:397)
> at
> com.sleepycat.je.rep.impl.node.Replica.runReplicaLoop(Replica.java:332)
> at
> com.sleepycat.je.rep.impl.node.RepNode.run(RepNode.java:1506)
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]