问题描述:
使用activemq过程当中,出现了以下的问题,日志信息如:html
vm 1 | INFO | Transport failed: java.io.EOFExceptionjvm 1 | INFO | Transport failed: java.io.EOFExceptionjvm 1 | INFO | Transport failed: java.io.EOFExceptionjvm 1 | INFO | Transport failed: java.io.EOFExceptionjvm 1 | INFO | Transport failed: java.io.EOFExceptionjvm 1 | INFO | Transport failed: java.io.EOFExceptionjvm 1 | INFO | Transport failed: org.apache.activemq.transport.InactivityIOException: Channel was inactive for too (>30000) long: /127.0.0.1:49494 jvm 1 | INFO | Transport failed: java.io.EOFExceptionjvm 1 | INFO | Transport failed: java.io.EOFExceptionjvm 1 | INFO | Transport failed: java.io.EOFExceptionjvm 1 | INFO | Transport failed: java.io.EOFExceptionjvm 1 | INFO | Transport failed: java.io.EOFExceptionjvm 1 | INFO | Transport failed: java.io.EOFExceptionjvm 1 | INFO | Transport failed: java.io.EOFExceptionjvm 1 | INFO | Transport failed: java.io.EOFExceptionjvm 1 | INFO | Transport failed: java.io.EOFExceptionjvm 1 | INFO | Transport failed: org.apache.activemq.transport.InactivityIOException: Channel was inactive for too (>30000) long: /127.0.0.1:50226 jvm 1 | INFO | Transport failed: org.apache.activemq.transport.InactivityIOException: Channel was inactive for too (>30000) long: /127.0.0.1:50225 jvm 1 | INFO | Transport failed: java.io.EOFExceptionjvm 1 | INFO | Transport failed: java.io.EOFExceptionjvm 1 | INFO | Transport failed: org.apache.activemq.transport.InactivityIOException: Channel was inactive for too (>30000) long: /127.0.0.1:50213 jvm 1 | INFO | Transport failed: java.io.EOFExceptionjvm 1 | INFO | Transport failed: java.io.EOFException
在tomcat中获得的日志为:java
java.lang.OutOfMemoryError: Java heap space Exception in thread "ActiveMQ Task" java.lang.OutOfMemoryError: Java heap space Exception in thread "ActiveMQ Task" java.lang.OutOfMemoryError: Java heap space Exception in thread "ActiveMQ Task" java.lang.OutOfMemoryError: Java heap space Exception in thread "ActiveMQ Task" java.lang.OutOfMemoryError: Java heap space Exception in thread "ActiveMQ Task" 2014-2-19 16:55:13 org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor processChildren 严重: Exception invoking periodic operation: java.lang.OutOfMemoryError: Java heap space java.lang.OutOfMemoryError: Java heap space Exception in thread "ActiveMQ Task" java.lang.OutOfMemoryError: Java heap space Exception in thread "ActiveMQ Task" java.lang.OutOfMemoryError: Java heap space Exception in thread "ActiveMQ Task" java.lang.OutOfMemoryError: Java heap space Exception in thread "ActiveMQ Task" java.lang.OutOfMemoryError: Java heap space
解决方法:
查看配置,在activemq的 conf/activemq.xml 里设置了InactivityMonitor的链接超时时间致使,如:web
<transportConnectors> <transportConnector name="openwire" uri="tcp://0.0.0.0:61616?wireFormat.maxInactivityDuration=30000"/> </transportConnectors>
经过设置链接URL的属性: tcp:/ / localhost:61616 ? wireFormat.maxInactivityDuration = 30000,表示若是30秒没有数据被读取,接InactivityMonitor假定有一个链接的问题。 InactivityMonitor抛出一个InactivityIOException和关闭相关的转换链接.
解决方式之一:禁用InactivityMonitor . apache
即将 tomcat
uri="tcp://0.0.0.0:61616?wireFormat.maxInactivityDuration=30000"
修改成jvm
uri="tcp://0.0.0.0:61616?wireFormat.maxInactivityDuration=0"
相关的内容参考:http://activemq.apache.org/activemq-inactivitymonitor.htmltcp