Spring Jms每秒警告消息

时间:2013-02-20 19:46:33

标签: java spring jms spring-jms

Java - Spring - JMS

我正在使用带有JMS侦听器的Spring,以下是我的代码片段。

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

spring context,我发现问题是它正在发出警告,因为队列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.

3 个答案:

答案 0 :(得分:1)

这只是意味着它无法连接到failover传输中的任何一个服务器。请注意,您有timeout=3000导致传输引发异常。容器不断重试。

答案 1 :(得分:0)

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

您可以定义您希望loger显示的消息级别(警告,错误等),以及应该打印日志的位置(控制台,log_file等)。

在您的情况下,您可以禁用日志文件的WARN日志,并将其打印到其他位置。

我个人想看看我的邮件发送到哪里,以及如果故障转移无法发送给其中一个主机,我更喜欢了解它。

答案 2 :(得分:0)

而不是使用;两个经纪人之间我使用','并且似乎正在工作

look at here for details