2014-06-30 44 views
1

我有一大堆的警告显示超时等待任务完成时停止再分发

09:56:11,069 WARN [org.hornetq.core.server.cluster.impl.Redistributor] (Thread-5 (HornetQ-server-HornetQServerImpl::serverUUID=98ea621a-fdd7-11e3-9e48-33de940622fd-752268326)) Timed out waiting for tasks to complete 
09:56:11,092 WARN [org.hornetq.core.server.cluster.impl.Redistributor] (Thread-12 (HornetQ-server-HornetQServerImpl::serverUUID=98ea621a-fdd7-11e3-9e48-33de940622fd-752268326)) Timed out waiting for tasks to complete 
09:56:11,108 WARN [org.hornetq.core.server.cluster.impl.Redistributor] (Thread-2 (HornetQ-server-HornetQServerImpl::serverUUID=98ea621a-fdd7-11e3-9e48-33de940622fd-752268326)) Timed out waiting for tasks to complete 

只有在同一时间运行某些监测工作。

环境是配置为组播的jboss-eap-6.0和hornetq 2.2.16。

堆栈跟踪显示

at org.hornetq.core.server.cluster.impl.Redistributor.stop(Redistributor.java:107) 
at org.hornetq.core.server.impl.QueueImpl.cancelRedistributor(QueueImpl.java:673) 
at org.hornetq.core.server.impl.QueueImpl$2.run(QueueImpl.java:521) 
at org.hornetq.utils.OrderedExecutorFactory$OrderedExecutor$1.run(OrderedExecutorFactory.java:104) 
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
at java.lang.Thread.run(Thread.java:662) 

再分发的源代码显示

public synchronized void stop() throws Exception { 
    active = false; 
    Future future = new Future(); 
    executor.execute(future); 
    boolean ok = future.await(100000); 
    if (!ok) Redistributor.log.war("Timed out wating for tasks to complete"); 
} 

未来的源代码显示

public synchronized void run() { 
    done = true; 
    notify(); 
} 

任何想法,为什么出现这种情况?

回答