Class OpenWireFrameParser
- java.lang.Object
-
- io.netty.channel.ChannelHandlerAdapter
-
- io.netty.channel.ChannelInboundHandlerAdapter
-
- io.netty.handler.codec.ByteToMessageDecoder
-
- org.apache.activemq.artemis.core.protocol.openwire.OpenWireFrameParser
-
- All Implemented Interfaces:
io.netty.channel.ChannelHandler,io.netty.channel.ChannelInboundHandler
public class OpenWireFrameParser extends io.netty.handler.codec.ByteToMessageDecoderThis MessageDecoder is based on LengthFieldBasedFrameDecoder. When OpenWire clients send a Large Message (large in the context of size only as openwire does not support message chunk streaming). In that context the server will transfer the huge frame to a Heap Buffer, instead of keeping a really large native buffer. There's a test showing this situation under ./soak-tests named OWLeakTest. The test will send 200MB messages. For every message sent we would have 200MB native buffers not leaving much space for the broker to handle its IO as most of the IO needs to be done with Native Memory.
-
-
Constructor Summary
Constructors Constructor Description OpenWireFrameParser(int openwireMaxPacketChunkSize)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voiddecode(io.netty.channel.ChannelHandlerContext ctx, io.netty.buffer.ByteBuf in, List<Object> out)-
Methods inherited from class io.netty.handler.codec.ByteToMessageDecoder
actualReadableBytes, callDecode, channelInactive, channelRead, channelReadComplete, decodeLast, discardSomeReadBytes, handlerRemoved, handlerRemoved0, internalBuffer, isSingleDecode, setCumulator, setDiscardAfterReads, setSingleDecode, userEventTriggered
-
Methods inherited from class io.netty.channel.ChannelInboundHandlerAdapter
channelActive, channelRegistered, channelUnregistered, channelWritabilityChanged, exceptionCaught
-
Methods inherited from class io.netty.channel.ChannelHandlerAdapter
ensureNotSharable, handlerAdded, isSharable
-
-