2013-02-20 66 views
1

Java - Spring - JMSSpring Jms每秒发出一条警告消息

我正在Spring中使用JMS侦听器,下面是我的代码片段。

report.broker.url=failover:(tcp://w-dlapp00:5061?daemon=true;tcp://w-dlapp01:5061?daemon=true)?randomize=false&timeout=3000 

春天背景下,我发现这个问题是它给警告,因为队列W-dlapp00:5061是下降,但由于它在故障转移的其他队列工作是 - 怎样才能摆脱这种警告?

<!-- Active MQ changes --> 
    <bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory"> 
    <property name="brokerURL"> 
     <value>${royality.report.broker.url}</value> 
    </property> 
    </bean> 

    <bean id="destinationRoyaltyReport" class="org.apache.activemq.command.ActiveMQQueue"> 
    <constructor-arg value="${royality.report.queue}"/> 
    </bean> 

    <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate"> 
    <property name="connectionFactory" ref="connectionFactory"/> 
    <property name="defaultDestination" ref="destinationRoyaltyReport"/> 
    </bean> 

    <jms:listener-container connection-factory="connectionFactory"> 
    <jms:listener destination="${royality.report.markingrid.queue}" ref="royaltyReportListener" method="onReceivedRoyaltyReportGridRequest"/> 
    <jms:listener destination="${royality.report.queue}" ref="royaltyReportListener" method="onReceivedRoyaltyReportViewRequest"/> 
    </jms:listener-container> 
    <!-- Active MQ changes --> 

当我查看日志文件时,它充满了JMS信息和WARN语句,如下所示,无法弄清楚发生了什么。有警告消息似乎有些事情正在崩溃?

2013-02-20 14:34:28,691 [org.springframework.jms.listener.DefaultMessageListenerContainer#0-1] WARN [DefaultMessageListenerContainer.java:834] : id[] Setup of JMS message listener invoker failed for destination 'royaltyReportMarkInGridQueue' - trying to recover. Cause: Failover timeout of 3000 ms reached. 
2013-02-20 14:34:31,763 [org.springframework.jms.listener.DefaultMessageListenerContainer#1-1] WARN [DefaultMessageListenerContainer.java:834] : id[] Setup of JMS message listener invoker failed for destination 'royaltyReportQueue' - trying to recover. Cause: Failover timeout of 3000 ms reached. 
2013-02-20 14:34:31,767 [org.springframework.jms.listener.DefaultMessageListenerContainer#0-1] INFO [FailoverTransport.java:507] : id[] Failover timed out after 3073ms 
2013-02-20 14:34:31,768 [org.springframework.jms.listener.DefaultMessageListenerContainer#0-1] WARN [DefaultMessageListenerContainer.java:888] : id[] Could not refresh JMS Connection for destination 'royaltyReportMarkInGridQueue' - retrying in 5000 ms. Cause: Failover timeout of 3000 ms reached. 
2013-02-20 14:34:34,838 [org.springframework.jms.listener.DefaultMessageListenerContainer#1-1] INFO [FailoverTransport.java:507] : id[] Failover timed out after 3073ms 
2013-02-20 14:34:34,838 [org.springframework.jms.listener.DefaultMessageListenerContainer#1-1] WARN [DefaultMessageListenerContainer.java:888] : id[] Could not refresh JMS Connection for destination 'royaltyReportQueue' - retrying in 5000 ms. Cause: Failover timeout of 3000 ms reached. 
2013-02-20 14:34:39,839 [org.springframework.jms.listener.DefaultMessageListenerContainer#0-1] INFO [FailoverTransport.java:507] : id[] Failover timed out after 3065ms 
2013-02-20 14:34:39,841 [org.springframework.jms.listener.DefaultMessageListenerContainer#0-1] WARN [DefaultMessageListenerContainer.java:888] : id[] Could not refresh JMS Connection for destination 'royaltyReportMarkInGridQueue' - retrying in 5000 ms. Cause: Failover timeout of 3000 ms reached. 
2013-02-20 14:34:42,910 [org.springframework.jms.listener.DefaultMessageListenerContainer#1-1] INFO [FailoverTransport.java:507] : id[] Failover timed out after 3068ms 
2013-02-20 14:34:42,910 [org.springframework.jms.listener.DefaultMessageListenerContainer#1-1] WARN [DefaultMessageListenerContainer.java:888] : id[] Could not refresh JMS Connection for destination 'royaltyReportQueue' - retrying in 5000 ms. Cause: Failover timeout of 3000 ms reached. 
+0

做你的目的地存在的经纪人,和他们有限制访问的任何权限? – cmonkey 2013-02-20 20:18:47

+0

第一家经纪商倒闭另一家经纪公司正在运营 – 2013-02-20 20:44:21

回答

1

它只是表示它无法连接到failover传输中的任一服务器。注意你有timeout=3000这导致运输引发异常。容器不断重试。

+0

如果任何一家经纪商在故障转移经纪商列表中工作,那么确定。我怎样才能摆脱这些笨重的信息。 – 2013-02-20 20:45:25

+0

我只有在它们都关闭时才会看到它。 – 2013-02-20 21:20:44

0

ActiveMQ的日志记录由Log4J“log4j.properties”文件控制。

您可以定义希望loger显示的消息级别(警告,错误等)以及应在哪里打印日志(Console,log_file等)。

在你的情况下,你可以禁用你的日志文件的WARN日志,并在其他地方打印它们。

我personnaly想看看我的消息发送到哪里,如果故障转移未能发送到其中一个主机的id更喜欢了解它。