Как да върна отговор в wso2 esb прокси с vfs JMS Sender?

Имам прокси услуга в WSO2 ESB 4.5.0, която трябва да обработва SOAP заявка от уеб клиент, да изпраща информация до JMS тема и след това да отговаря на уеб клиента.

Проблемът е, че когато използвам JMS-изпращача, той по подразбиране чака отговор на временна опашка.

За да променя поведението на JMS-Sender, мога да задам OUT_ONLY на true, но тогава уебклиентът изобщо не получава отговор.

Има ли начин да върна отговор, дори ако задам OUT_ONLY на true?

OR

Мога ли да настроя JMS-Sender да не очаква отговор, без да изпраща OUT_ONLY на true?


person Tommy Ekh    schedule 06.12.2012    source източник


Отговори (1)


Според вашето изискване може да се наложи да използвате Messagestore, моля, вижте следната конфигурация, която съхранява съобщението в JMSStore и изпраща потвърждението обратно на клиента (успешно или неуспешно), последвано от ESB, използва процесора за пренасочване на графика, който гарантира, че съобщението за съхранение в JMSStore ще бъде доставено до бекенда и в случай на неуспешен истински BE (може да е JMS), той се оттегля, така че докато съобщението не бъде доставено, така че няма да бъде премахнато от хранилището за съобщения, това е част от начина, по който DEAD ПОСЛЕДНОТО КАНАЛИЗИРАНЕ е осъществено с помощта на WSO2 ESB

<proxy xmlns="http://ws.apache.org/ns/synapse" name="StockQuoteProxy" transports="http" statistics="disable" trace="disable" startOnLoad="true">
   <target>
      <inSequence>
        <property name="OUT_ONLY" value="true"/>
        <property name="target.endpoint" value="JMSEP"/>
         <property name="enableREST" value="true"/>
         <store messageStore="JMSMS"/>
         <payloadFactory>
            <format>
               <esbResponse xmlns="">
                  <text> added sccuessfully </text>
               </esbResponse>
            </format>
         </payloadFactory>
         <header name="To" action="remove"/>
         <property name="RESPONSE" value="true" scope="default" type="STRING"/>
         <send/>
      </inSequence>
      <faultSequence>
         <makefault version="soap11">
            <code xmlns:soap11Env="http://schemas.xmlsoap.org/soap/envelope/" value="soap11Env:VersionMismatch"/>
            <reason value="test"/>
            <role>MessageStoreFault</role>
            <detail>MessageStoreFault</detail>
         </makefault>
         <send/>
      </faultSequence>
   </target>
   <publishWSDL uri="file:repository/samples/resources/proxy/sample_proxy_1.wsdl"/>
   <description></description>
</proxy>


<endpoint xmlns="http://ws.apache.org/ns/synapse" name="JMSEP">
   <address uri="jms:/SimpleStockQuoteService?transport.jms.ConnectionFactoryJNDIName=QueueConnectionFactory&java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory&java.naming.provider.url=tcp://localhost:61616" format="pox">
      <suspendOnFailure>
         <progressionFactor>1.0</progressionFactor>
      </suspendOnFailure>
      <markForSuspension>
         <retriesBeforeSuspension>0</retriesBeforeSuspension>
         <retryDelay>0</retryDelay>
      </markForSuspension>
      <timeout>
         <duration>1000</duration>
         <responseAction>fault</responseAction>
      </timeout>
   </address>
</endpoint>

<messageStore name="JMSMS" class="org.wso2.carbon.message.store.persistence.jms.JMSMessageStore" xmlns="http://ws.apache.org/ns/synapse">
   <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
   <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
   <parameter name="store.jms.destination">JMSMS</parameter>
   <parameter name="store.jms.JMSSpecVersion">1.1</parameter>
   <parameter name="store.jms.cache.connection">false</parameter>
</messageStore>

<messageProcessor name="Processor1" class="org.apache.synapse.message.processors.forward.ScheduledMessageForwardingProcessor" messageStore="JMSMS" xmlns="http://ws.apache.org/ns/synapse">
   <parameter name="interval">4000</parameter>
</messageProcessor>
person Dushan Abeyruwan    schedule 16.02.2013