2014-11-21 5 views
2

봄 석영 프로세스는 프로젝트에서 매 15 분, 즉 하루에 96 번 실행됩니다. 이것은 특정 레코드를 데이터베이스에서 가져 와서 REST 서비스 (JBoss 7에서 실행 중)에 POST합니다. 이러한 기록은 일반적으로 50에서 100 사이입니다.하나의 JMS 소비자가 활성 mq 주제를 듣지 않고 초 동안

REST 서비스에서이 메시지를 주제에 게시하는 jms 이벤트 발행자가 있습니다. 이 주제에는 두 명의 소비자가 있습니다.

  1. 즉, 프로세스 메시지 및 타사 모바일
  2. 토크에 푸시 알림 메시지를 전송이 주제이기 때문에 모두 소비자가 모든 메시지를 수신

(일반적으로 호출을 완료하는 데 4 ~ 5 초 소요) 하지만 일부 속성을 기반으로 필터링하여 필터링하므로 일부 메시지는 다른 소비자에 의해 처리되고 다른 메시지는 처리되지 않습니다.

내 문제는; 최근 1 주일이 지난 지금 관찰되고있다. 소비자 # 1은 APNS로부터 무효 토큰으로 응답을 여러 번 수신합니다. 토큰은 모바일에 푸시 알림을 보내는 데 사용됩니다. 몇 시간 후이 소비자는 멈추고 전혀 반응하지 않고 두 번째 사람은 계속 달리기 시작합니다. 나는 다른 게시 된 질문을 검색하지만 관련된 아무것도 찾을 수 없습니다

<amq:broker id="broker" useJmx="false" persistent="false"> 
    <amq:transportConnectors> 
     <amq:transportConnector uri="tcp://localhost:0"/> 
    </amq:transportConnectors> 
    </amq:broker> 

    <!-- ActiveMQ Destination --> 
    <amq:topic id="topicName" physicalName="topicPhysicalName"/> 

    <!-- JMS ConnectionFactory to use, configuring the embedded broker using XML --> 
    <amq:connectionFactory id="jmsFactory" brokerURL="vm://localhost"/> 

    <!-- JMS Producer Configuration --> 
    <bean id="jmsProducerConnectionFactory" 
     class="org.springframework.jms.connection.SingleConnectionFactory" 
     depends-on="broker" 
     p:targetConnectionFactory-ref="jmsFactory"/> 

    <!-- JMS Templates--> 
    <bean id="jmsTemplate" 
     class="org.springframework.jms.core.JmsTemplate" 
     p:connectionFactory-ref="jmsProducerConnectionFactory"/> 

    <!-- Publisher--> 
    <bean name="jmsEventPublisher" 
     class="com.jhi.mhm.services.event.jms.publisher.JMSEventPublisher"> 
    <property name="jmsTemplate" ref="jmsTemplate"/> 
    <property name="topic"> 
     <map> 
     <entry key="keyname" value-ref="topicName"/> 
     </map> 
    </property> 
    </bean> 

    <!-- JMS Consumer Configuration --> 
    <bean name="consumer2" class="Consumer2"/> 
    <bean name="consumer1" class="Consumer1"/> 

    <bean id="jmsConsumerConnectionFactory" 
     class="org.springframework.jms.connection.SingleConnectionFactory" 
     depends-on="broker" 
     p:targetConnectionFactory-ref="jmsFactory"/> 

    <jms:listener-container container-type="default" 
          connection-factory="jmsConsumerConnectionFactory" 
          acknowledge="auto" 
          destination-type="topic"> 

    <jms:listener destination="topicPhysicalName" ref="consumer1"/> 
    <jms:listener destination="topicPhysicalName" ref="consumer2"/> 

    </jms:listener-container> 

:

다음은 구성이다. 당신의 생각이 정말 도움이 될 것입니다.

+0

ActiveMQ 버전 5.7 – shaILU

+0

해결 방법이 없으므로 접근 방법을 변경했지만 누군가가 답을 찾으면 나눌 수 있습니다. – shaILU

답변

1

shailu - 비슷한 문제를 겪었습니다. 우리가 한 것은 MQ 버전을 업그레이드하는 것입니다. MQ가 임의의 동작을 보여 주었기 때문에 문제가 완전히 해결되지는 않았지만 결국에는 논리에 따라 끝점과 호출 대상을 병합했습니다.

+0

내가 똑같이 직면함에 따라 나에게 의미가있다, 감사합니다. – shaILU