Я пытаюсь интегрировать wso2mb с wso2esb и использовать длительные темы для сохранения сообщений в очереди, когда абонент неактивен и восстанавливает их в будущем. Я использовал первый метод (интеграция с использованием JMS Endpoints и JMS Proxy Services) интеграции в документации wso2mb. Вот мой издатель прокси: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 создать потребительскую прокси и долговечный тему и вот мой абонент прокси:
<?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>
Я могу назвать издатель прокси, используя SoapUI и абонент прокси будет потреблять сообщения и отправляет их в SimpleStockQuoteService (пример сервера wso2esb), но проблема в том, что я закрываю сервер, сообщения накапливаются в очереди тем и к тому времени, когда я снова запускаю сервер, абонент не потребляет и не выполняет отправлять накопленные сообщения на сервер, и мне интересно, когда я использую wso2mb withou t wso2esb и JMS-клиент с java-кодом, долговечная тема отлично работает и потребляет сообщения после запуска сервера. любые идеи?
Вы выключая сервер ESB? –
Нет, я закрыл сервер назначения, например SimpleQuoteStock, и отправил сообщения в тему, после запуска сервера снова, я хочу, чтобы сообщения отправлялись на сервер, но ничего не происходит, только сообщения накапливаются в теме. –
проблема решена whit this link, Большое спасибо http://wso2.com/library/other/2015/12/article-how-to-achieve-delivery-reliability-with-dead-letter-channel-pattern -part -2 / –