读取停留在HornetQ中的大消息文件* .msg

问题描述

我正在开发一个具有很多hornetq 2.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上也看到相同的消息和问题。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...