Jboss 读取大消息文件(*.msg)卡在HornetQ中

Jboss 读取大消息文件(*.msg)卡在HornetQ中,jboss,hornetq,Jboss,Hornetq,我正在开发一个应用程序,它有很多由Hornetq2.3.21托管的异步消息。通过某些处理,我的邮件大小超过2GB,邮件开始失败,服务器上出现以下邮件: HQ212017: error adding packet: java.lang.IllegalStateException: Maximum size of 2gb exceeded at org.jboss.netty.buffer.DynamicChannelBuffer.ensureWritableBytes(DynamicChan

我正在开发一个应用程序,它有很多由Hornetq2.3.21托管的异步消息。通过某些处理,我的邮件大小超过2GB,邮件开始失败,服务器上出现以下邮件:

HQ212017: error adding packet: java.lang.IllegalStateException: Maximum size of 2gb exceeded
   at org.jboss.netty.buffer.DynamicChannelBuffer.ensureWritableBytes(DynamicChannelBuffer.java:82) [netty-3.6.9.Final-redhat-1.jar:3.6.9.Final-redhat-1]
   at org.jboss.netty.buffer.DynamicChannelBuffer.writeByte(DynamicChannelBuffer.java:205) [netty-3.6.9.Final-redhat-1.jar:3.6.9.Final-redhat-1]
   at org.hornetq.core.buffers.impl.ChannelBufferWrapper.writeByte(ChannelBufferWrapper.java:539) [hornetq-commons-2.3.21.Final-redhat-1.jar:2.3.21.Final-redhat-1]
   at org.hornetq.core.buffers.impl.ResetLimitWrappedHornetQBuffer.writeByte(ResetLimitWrappedHornetQBuffer.java:249) [hornetq-core-client-2.3.21.Final-redhat-1.jar:2.3.21.Final-redhat-1]
   at org.hornetq.core.client.impl.ClientLargeMessageImpl$HornetQOutputStream.write(ClientLargeMessageImpl.java:205) [hornetq-core-client-2.3.21.Final-redhat-1.jar:2.3.21.Final-redhat-1]
   at java.io.OutputStream.write(OutputStream.java:116) [rt.jar:1.8.0_251]
   at org.hornetq.utils.InflaterWriter.doWrite(InflaterWriter.java:106) [hornetq-core-client-2.3.21.Final-redhat-1.jar:2.3.21.Final-redhat-1]
   at org.hornetq.utils.InflaterWriter.write(InflaterWriter.java:63) [hornetq-core-client-2.3.21.Final-redhat-1.jar:2.3.21.Final-redhat-1]
   at java.io.OutputStream.write(OutputStream.java:116) [rt.jar:1.8.0_251]
   at java.io.OutputStream.write(OutputStream.java:75) [rt.jar:1.8.0_251]
   at org.hornetq.core.client.impl.LargeMessageControllerImpl.addPacket(LargeMessageControllerImpl.java:185) [hornetq-core-client-2.3.21.Final-redhat-1.jar:2.3.21.Final-redhat-1]
   at org.hornetq.core.client.impl.ClientConsumerImpl.handleLargeMessageContinuation(ClientConsumerImpl.java:748) [hornetq-core-client-2.3.21.Final-redhat-1.jar:2.3.21.Final-redhat-1]
   at org.hornetq.core.client.impl.ClientSessionImpl.handleReceiveContinuation(ClientSessionImpl.java:935) [hornetq-core-client-2.3.21.Final-redhat-1.jar:2.3.21.Final-redhat-1]
   at org.hornetq.core.client.impl.ClientSessionPacketHandler.handlePacket(ClientSessionPacketHandler.java:65) [hornetq-core-client-2.3.21.Final-redhat-1.jar:2.3.21.Final-redhat-1]
   at org.hornetq.core.protocol.core.impl.ChannelImpl.handlePacket(ChannelImpl.java:641) [hornetq-core-client-2.3.21.Final-redhat-1.jar:2.3.21.Final-redhat-1]
   at org.hornetq.core.protocol.core.impl.RemotingConnectionImpl.doBufferReceived(RemotingConnectionImpl.java:557) [hornetq-core-client-2.3.21.Final-redhat-1.jar:2.3.21.Final-redhat-1]
   at org.hornetq.core.protocol.core.impl.RemotingConnectionImpl.bufferReceived(RemotingConnectionImpl.java:533) [hornetq-core-client-2.3.21.Final-redhat-1.jar:2.3.21.Final-redhat-1]
   at org.hornetq.core.client.impl.ClientSessionFactoryImpl$DelegatingBufferHandler.bufferReceived(ClientSessionFactoryImpl.java:1693) [hornetq-core-client-2.3.21.Final-redhat-1.jar:2.3.21.Final-redhat-1]
   at org.hornetq.core.remoting.impl.invm.InVMConnection$1.run(InVMConnection.java:165) [hornetq-server-2.3.21.Final-redhat-1.jar:2.3.21.Final-redhat-1]
   at org.hornetq.utils.OrderedExecutorFactory$OrderedExecutor$1.run(OrderedExecutorFactory.java:105) [hornetq-core-client-2.3.21.Final-redhat-1.jar:2.3.21.Final-redhat-1]
   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [rt.jar:1.8.0_251] 
此消息存储在文件系统中的
messaginglargemessages
文件夹中

我想阅读消息,看看是哪个进程导致了问题,但消息是以二进制格式编码的。如何读取此文件?我尝试了Internet上的一些实用程序来转换
.msg
文件,还更改了编码,还尝试将此消息发送到读取二进制文件的代码,但没有成功。我不确定信息的内容是否是人类可读的。我们需要获取模块名,它应该是此消息的一部分。一旦我们得到模块名,我们可能会找到一些其他2GB错误的解决方案


操作系统是Windows,但我们在Linux上也看到同样的消息和问题。

我有一个不可读的.msg文件。我想让它可读。你能建议我如何读取这个.msg文件,这样我就可以知道是什么请求导致了这个问题。是的,它是不可读的。此邮件位于“messaginglargemessages”文件夹中,此邮件称为邮件日志。操作系统是windows,但我们在linux上也看到了同样的消息和问题。它不是人类可读的。我尝试了所有简单的方法来解密消息,但没有成功。Horntq版本是hornetq-2.3.21。我收到的邮件超出了服务器上的最大大小。我尝试了Internet上的一些实用程序来转换.msg文件,还更改了编码,还尝试将此消息发送到读取二进制文件的代码,但没有成功。这看起来像是代理和Netty之间的内部问题。我的建议是转到ActiveMQ Artemis。