ActiveMQ java.io.EOFException

时间:2018-01-04 13:50:05

标签: java activemq

我使用的是activeMQ 5.13.0,我的java是openjdk-1.8.0.131。 我将它们部署在我的linux服务器桌面(centos7)上。我的生产者是一个ruby文件来发送消息,该消息位于我的另一个linux服务器(centos6)桌面上。

在启动activemq之前,我没有对activemq.xml进行任何更新。 传输连接器是:

<transportConnectors>
        <!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB -->
        <transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
        <transportConnector name="amqp" uri="amqp://0.0.0.0:5672?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600&amp;wireFormat.maxInactivityDuration=0"/>
        <transportConnector name="stomp" uri="stomp://0.0.0.0:61613?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
        <transportConnector name="mqtt" uri="mqtt://0.0.0.0:1883?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
        <transportConnector name="ws" uri="ws://0.0.0.0:61614?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
</transportConnectors>

因为我正在使用虚拟主题,所以我添加了一些虚拟主题设置,如下所示:

<destinationInterceptors>
        <virtualDestinationInterceptor>
            <virtualDestinations>
            <!-- deliver traffic from virtual topic T to all subscribers to destinations matching the prefix "VirtualQueueConsumer.*" (queue or topic) -->
                <virtualTopic name="VirtualTopic.eng.testing" prefix="VirtualQueueConsumer.*." />
            </virtualDestinations>
        </virtualDestinationInterceptor>
</destinationInterceptors>

对于我的制作人,我将我的主题发送给我的经纪人“amqp://10.66.136.171:5672”

当我使用生产者将消息发送到活动代理时。从activemq日志,我得到以下错误。但是在我的经纪人webconsole上,我可以在页面上显示我的主题。发送邮件时发生错误。我不知道acticemq的哪些步骤会引发异常。 以下是activemq控制台重新编写的错误以及我的生产者的日志。

错误日志:

WARN | Transport Connection to: tcp://10.73.60.105:58722 failed:
java.io.EOFException
java.io.EOFException
at java.io.DataInputStream.readFully(DataInputStream.java:197)
at org.fusesource.hawtbuf.Buffer.readFrom(Buffer.java:412)
at org.apache.activemq.transport.amqp.AmqpWireFormat.unmarshal(AmqpWireFormat.java:102)
at org.apache.activemq.transport.tcp.TcpTransport.readCommand(TcpTransport.java:240)
at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:232)
at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:215)
at java.lang.Thread.run(Thread.java:748)

如果消息不够,请帮助告诉我如何在错误发生时获取更多消息。我是JAVA和activemq的新手。希望我能从你身上学到更多。非常感谢。

1 个答案:

答案 0 :(得分:0)

就像甚至activemq报告错误一样,但是经纪人运作良好。