-
Bug
-
Resolution: Done
-
Major
-
AMQ 7.6.0.GA
-
User Experience
-
+
-
Verified in a release
-
The journal loading is seeing AMQP messages to be fully decoded while they shouldn't not; it seems causes by AMQPStandardMessage:: reloadPersistence:
@Override public void reloadPersistence(ActiveMQBuffer record, CoreMessageObjectPools pools) { int size = record.readInt(); byte[] recordArray = new byte[size]; record.readBytes(recordArray); data = ReadableBuffer.ByteBufferReader.wrap(ByteBuffer.wrap(recordArray)); // Message state is now that the underlying buffer is loaded, but the contents not yet scanned resetMessageData(); modified = false; messageDataScanned = RELOAD_PERSISTENCE; // can happen when moved to a durable location. We must re-encode here to // avoid a subsequent redelivery from suddenly appearing with a durable header // tag when the initial delivery did not. if (!isDurable()) { setDurable(true); reencode(); } }
Specifically by:
if (!isDurable()) { setDurable(true); reencode(); }
Due to this, the journal loading of AMQP message is producing a big amount of garbage, leading to multi-seconds GC full GC pauses that could affect both HA and the user experience.
- is caused by
-
ENTMQBR-2883 Implement streaming of Large Messages over AMQP
- Closed
- is related to
-
ENTMQBR-2313 Fails to load journal after queue full
- Closed