1

我的 Tomcat 6 集群(2 个节点)会定期出现问题。其中一个节点会变得混乱并生成大量重复以下内容的日志:

Aug 25, 2009 11:44:10 AM org.apache.catalina.ha.session.DeltaRequest reset
SEVERE: Unable to remove element
java.util.NoSuchElementException
        at java.util.LinkedList.remove(LinkedList.java:788)
        at java.util.LinkedList.removeFirst(LinkedList.java:134)
        at org.apache.catalina.ha.session.DeltaRequest.reset(DeltaRequest.java:201)
        at org.apache.catalina.ha.session.DeltaRequest.execute(DeltaRequest.java:195)
        at org.apache.catalina.ha.session.DeltaManager.handleSESSION_DELTA(DeltaManager.java:1364)
        at org.apache.catalina.ha.session.DeltaManager.messageReceived(DeltaManager.java:1320)
        at org.apache.catalina.ha.session.DeltaManager.messageDataReceived(DeltaManager.java:1083)
        at org.apache.catalina.ha.session.ClusterSessionListener.messageReceived(ClusterSessionListener.java:87)
        at org.apache.catalina.ha.tcp.SimpleTcpCluster.messageReceived(SimpleTcpCluster.java:916)
        at org.apache.catalina.ha.tcp.SimpleTcpCluster.messageReceived(SimpleTcpCluster.java:897)
        at org.apache.catalina.tribes.group.GroupChannel.messageReceived(GroupChannel.java:264)
        at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:79)
        at org.apache.catalina.tribes.group.interceptors.TcpFailureDetector.messageReceived(TcpFailureDetector.java:110)
        at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:79)
        at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:79)
        at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:79)
        at org.apache.catalina.tribes.group.ChannelCoordinator.messageReceived(ChannelCoordinator.java:241)
        at org.apache.catalina.tribes.transport.ReceiverBase.messageDataReceived(ReceiverBase.java:225)
        at org.apache.catalina.tribes.transport.nio.NioReplicationTask.drainChannel(NioReplicationTask.java:188)
        at org.apache.catalina.tribes.transport.nio.NioReplicationTask.run(NioReplicationTask.java:91)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
        at java.lang.Thread.run(Thread.java:619)

这是它唯一显示的东西。此时集群中的其他节点仍处于活动状态。没有什么可做的,只能重新开始。大量日志也多次导致磁盘空间问题。

有人知道这里有什么问题吗?

谢谢!黄

4

1 回答 1

0

似乎是Tomcat 6中的一个错误。如果您查看源代码:

http://www.java2s.com/Open-Source/Java-Document/Sevlet-Container/apache-tomcat-6.0.14/org/apache/catalina/ha/session/DeltaRequest.java.htm(第225行)

you'll see that the reset() method can potentially throw this exception. I suggest that you contact the Tomcat developers regarding this issue.

于 2009-08-25T06:41:10.500 回答