Hi,

I am trying to implement guaranteed delivery EIP using WSO2ESB and WSO2DSS.
My endpoint for this scenario is a dataservice in WSO2DSS. In this
scenario, I am using RabbitMQ as the message broker.

I followed the below steps to implement the guaranteed delivery scenario.

   - I installed RabbitMQ and Erlang OTP.
   - Then I added RabbitMQ message store according to the instructions in
   this [1] document.
   - I created an API with store mediator to stores messages using the
   above message store.
   - Then I created a Message-processor that consumes messages from the
   message-store and sends it to an endpoint.

Below are the configurations of the Message-Store, API and
Message-Processor.

Message-Store:

<messageStore name="RabbitMS"
class="org.apache.synapse.message.store.impl.rabbitmq.RabbitMQStore" xmlns="
http://ws.apache.org/ns/synapse";>
   <parameter name="store.rabbitmq.host.name">localhost</parameter>
   <parameter name="store.rabbitmq.host.port">5672</parameter>
   <parameter name="store.rabbitmq.queue.name">RabbitMS_Queue</parameter>
   <parameter
name="store.producer.guaranteed.delivery.enable">true</parameter>
   <parameter name="store.failover.message.store.name
">InMemoryStore</parameter>
</messageStore>

API:

<api xmlns="http://ws.apache.org/ns/synapse"; name="API1" context="/details">
   <resource methods="GET" url-mapping="/test">
      <inSequence>
         <payloadFactory media-type="xml">
            <format>
               <p:select_with_key_CHASSIS_operation xmlns:p="
https://car.data.wso2.com";>
                  <xs:CHASSIS_ID xmlns:xs="https://car.data.wso2.com
">1009</xs:CHASSIS_ID>
               </p:select_with_key_CHASSIS_operation>
            </format>
            <args/>
         </payloadFactory>
         <property name="FORCE_SC_ACCEPTED" value="true" scope="axis2"
type="STRING"/>
          <property name="OUT_ONLY" value="true" scope="default"
type="STRING"></property>
         <log level="full"/>
         <store messageStore="RabbitMS"/>
      </inSequence>
   </resource>
</api>

Message-Processor:

<messageProcessor name="Forwarder"
class="org.apache.synapse.message.processor.impl.forwarder.ScheduledMessageForwardingProcessor"
targetEndpoint="sampleEndPoint" messageStore="RabbitMS" xmlns="
http://ws.apache.org/ns/synapse";>
   <parameter name="interval">1000</parameter>
   <parameter name="client.retry.interval">1000</parameter>
   <parameter name="max.delivery.attempts">4</parameter>
   <parameter name="is.active">true</parameter>
   <parameter name="max.delivery.drop">Disabled</parameter>
   <parameter name="member.count">1</parameter>
</messageProcessor>

End-point:

<endpoint xmlns="http://ws.apache.org/ns/synapse"; name="sampleEndPoint">
   <address uri="
https://192.168.8.100:9453/services/ChassisService/select_with_key_CHASSIS_operation
">
      </address>
</endpoint>


But when I invoke the API with the below curl command I could not see any
messages stored in the message-store/queue or any logs in the console of
ESB.

curl command:
curl -X GET -H "Content-Type:application/json" '
http://192.168.8.100:8280/details'

Could you please suggest whether what I have done is correct or correct me
if I have done something wrong.

[1] https://docs.wso2.com/display/ESB500/RabbitMQ+Message+Store

Thanks.
Piriya

-- 
Regards,

*Piriya Sivalingam*

*Software Engineer - Support Team*

*WSO2*
*Mobile : +94 77 8462039*

[image: http://wso2.com/signature] <http://wso2.com/signature>
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to