2016-06-19 6 views
0

wso2mb를 wso2esb와 통합하려고하고 구독자가 활성 상태가 아니며 이후에 복구 할 때 영구적 인 항목을 사용하여 큐에 메시지를 보관합니다. wso2mb 설명서의 첫 번째 통합 방법 (JMS 끝점과 JMS 프록시 서비스를 사용한 통합)을 사용했습니다. 여기 내 가입자 프록시wso2mb 영구적 인 주제 구독이 JMS 끝점과 JMS 프록시 서비스를 사용하여 통합되지 않는다

<?xml version="1.0" encoding="UTF-8"?> 
<proxy xmlns="http://ws.apache.org/ns/synapse" 
    name="InTopicProxy" 
    transports="https,http" 
    statistics="disable" 
    trace="disable" 
    startOnLoad="true"> 
    <target> 
    <inSequence> 
    <property name="OUT_ONLY" value="true"/> 
    <property name="FORCE_SC_ACCEPTED" value="true" scope="axis2"/> 
    <send> 
     <endpoint> 
      <address uri="jms:/MyDurbleTopic?transport.jms.ConnectionFactoryJNDIName=QueueConnectionFactory&amp;java.naming.factory.initial=org.wso2.andes.jndi.PropertiesFileInitialContextFactory&amp;java.naming.provider.url=repository/conf/jndi.properties&amp;transport.jms.DestinationType=topic"/> 
     </endpoint> 
    </send> 
    </inSequence> 
    </target> 
    <description/> 
    </proxy>\ 

나는 소비자 프록시와 내구성 주제 을 만들 this answer을 사용 : 내가 SoapUI 가입자를 사용하여 게시자 프록시를 호출 할 수 있습니다

<?xml version="1.0" encoding="UTF-8"?> 
<proxy xmlns="http://ws.apache.org/ns/synapse" 
    name="TopicSubProxy" 
    transports="jms" 
    statistics="disable" 
    trace="disable" 
    startOnLoad="true"> 
    <target> 
    <inSequence> 
    <property name="OUT_ONLY" value="true"/> 
    <log level="custom"> 
     <property name="STATE" value="dispatch message..."/> 
    </log> 
    <send> 
     <endpoint> 
      <address uri="http://localhost:9000/services/SimpleStockQuoteService"/> 
     </endpoint> 
    </send> 
    </inSequence> 
    <outSequence> 
    <send/> 
    </outSequence> 
    </target> 
    <parameter name="transport.jms.ContentType"> 
    <rules> 
    <jmsProperty>contentType</jmsProperty> 
    <default>text/xml</default> 
    </rules> 
    </parameter> 
    <parameter name="transport.jms.ConnectionFactory">myTopicConnectionFactory</parameter> 
    <parameter name="transport.jms.DestinationType">topic</parameter> 
    <parameter name="transport.jms.SubscriptionDurable">true</parameter> 
    <parameter name="transport.jms.Destination">MyDurbleTopic</parameter> 
    <parameter name="transport.jms.DurableSubscriberName">subId-x</parameter> 
    <parameter name="transport.jms.CacheLevel">consumer</parameter> 
    <parameter name="transport.jms.DurableSubscriberClientID">subId-x</parameter> 
    <description/> 
</proxy> 

여기 내 게시자 프록시 프록시는 메시지를 소비하고 SimpleStockQuoteService (wso2esb 서버 샘플)로 보냅니다. 그러나 문제는 서버를 종료 할 때 메시지가 주제 대기열에 누적되어 서버가 다시 시작될 때 구독자가 소비하지 않고 않는 것입니다. 누적 된 메시지를 서버에 보내면 wso2mb를 사용하면 어떨까요? t wso2esb 및 JMS 클라이언트 구독자가 Java 코드를 사용하여 영구 주제가 완벽하게 작동하고 서버를 시작한 후 메시지를 사용합니다. 아이디어가 있습니까?

+0

를 사용하여 해결? –

+0

아니요, SimpleQuoteStock과 같은 대상 서버를 종료하고 주제로 메시지를 보내십시오. 서버를 다시 시작한 후 메시지를 서버로 보내지 만 아무 일도 일어나지 않습니다. 메시지가 주제에 누적됩니다. –

+0

문제가이 링크를 해결했습니다. 감사합니다. http://wso2.com/library/other/2015/12/article-how-to-achieve-delivery-reliability-with-dead-letter-channel-pattern-part -2 / –

답변

0

문제 중재 순서 및 오류 시퀀스는 ESB 서버를 종료하고 있습니까이 link