问题描述:
使用activemq过程中,出现了如下的问题,日志信息如:
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.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的连接超时时间导致,如:
通过设置连接URL的属性: tcp:/ / localhost:61616 ? wireFormat.maxInactivityDuration = 30000,表示如果30秒没有数据被读取,接InactivityMonitor假定有一个连接的问题。 InactivityMonitor抛出一个InactivityIOException和关闭相关的转换连接.
解决方式之一:禁用InactivityMonitor .
即将
uri="tcp://0.0.0.0:61616?wireFormat.maxInactivityDuration=30000"
修改为
uri="tcp://0.0.0.0:61616?wireFormat.maxInactivityDuration=0"