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&java.naming.factory.initial=org.wso2.andes.jndi.PropertiesFileInitialContextFactory&java.naming.provider.url=repository/conf/jndi.properties&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 코드를 사용하여 영구 주제가 완벽하게 작동하고 서버를 시작한 후 메시지를 사용합니다. 아이디어가 있습니까?
를 사용하여 해결? –
아니요, SimpleQuoteStock과 같은 대상 서버를 종료하고 주제로 메시지를 보내십시오. 서버를 다시 시작한 후 메시지를 서버로 보내지 만 아무 일도 일어나지 않습니다. 메시지가 주제에 누적됩니다. –
문제가이 링크를 해결했습니다. 감사합니다. http://wso2.com/library/other/2015/12/article-how-to-achieve-delivery-reliability-with-dead-letter-channel-pattern-part -2 / –