Как указать временной интервал WSO2 для отправки сообщений - PullRequest
0 голосов
/ 24 января 2019

Мне нужно настроить wso2 для приема сообщения одно за другим с интервалом времени от activemq.Есть ли способ потреблять только сообщение в данный момент времени?

Когда в activemq много сообщений, WSO2 потребляет все сообщения и выполняет обратный вызов службы.Внутренний сервис не обрабатывает все входящие сообщения.

Я создал одну входящую конечную точку jms и одну прокси-службу, но не нашел свойства или способа сделать это.

Входящая конечная точка:

    <?xml version="1.0" encoding="UTF-8"?>
<inboundEndpoint xmlns="http://ws.apache.org/ns/synapse"
                 name="activemqDeneme"
                 sequence="esb-QueueSQ"
                 onError="conf:/sequences/esb.faultSQ.xml"
                 protocol="jms"
                 suspend="false">
   <parameters>
      <parameter name="interval">60000</parameter>
      <parameter name="sequential">false</parameter>
      <parameter name="coordination">true</parameter>
      <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
      <parameter name="java.naming.provider.url">tcp://localhost:6052</parameter>
      <parameter name="transport.jms.ConnectionFactoryJNDIName">QueueConnectionFactory</parameter>
      <parameter name="transport.jms.ConnectionFactoryType">queue</parameter>
      <parameter name="transport.jms.Destination">queue_request</parameter>
      <parameter name="transport.jms.SessionTransacted">false</parameter>
      <parameter name="transport.jms.SessionAcknowledgement">AUTO_ACKNOWLEDGE</parameter>
      <parameter name="transport.jms.CacheLevel">3</parameter>
      <parameter name="transport.jms.SubscriptionDurable">false</parameter>
      <parameter name="transport.jms.ContentType">application/json</parameter>
      <parameter name="transport.jms.SharedSubscription">false</parameter>
   </parameters>
</inboundEndpoint>

Прокси-сервис:

<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
       name="Queue"
       startOnLoad="true"
       statistics="disable"
       trace="disable"
       transports="jms">
   <target>
      <inSequence>
         <sequence description="call activemq" key="esb-QueueSQ"/>
      </inSequence>
      <outSequence/>
      <faultSequence/>
   </target>
   <parameter name="transport.jms.Destination">queue_request</parameter>
   <parameter name="transport.jms.ContentType">
      <rules xmlns="">
         <jmsProperty>contentType</jmsProperty>
         <default>application/json</default>
      </rules>
   </parameter>
   <description/>
</proxy>

1 Ответ

0 голосов
/ 24 января 2019

пробовал с

  <parameter name="sequential">true</parameter>

Если установлено значение false, вероятно, они будут потреблять их все параллельно. После того, как ваша последовательность должна быть последовательной.

...