Sample 702: Introduction to Message Forwarding Processor

<!-- Introduction to Scheduled Message Forwarding Processor --> <definitions xmlns="http://ws.apache.org/ns/synapse"> <endpoint name="StockQuoteServiceEp"> <address uri="http://localhost:9000/services/SimpleStockQuoteService"> <suspendOnFailure> <errorCodes>-1</errorCodes> <progressionFactor>1.0</progressionFactor> </suspendOnFailure> </address> </endpoint> <sequence name="fault"> <log level="full"> <property name="MESSAGE" value="Executing default 'fault' sequence"/> <property name="ERROR_CODE" expression="get-property('ERROR_CODE')"/> <property name="ERROR_MESSAGE" expression="get-property('ERROR_MESSAGE')"/> </log> <drop/> </sequence> <sequence name="main"> <in> <log level="full"/> <property name="FORCE_SC_ACCEPTED" value="true" scope="axis2"/> <property name="OUT_ONLY" value="true"/> <property name="target.endpoint" value="StockQuoteServiceEp"/> <store messageStore="MyStore"/> </in> <description>The main sequence for the message mediation</description> </sequence> <messageStore name="MyStore"/> <messageProcessor class="org.apache.synapse.message.processors.forward.ScheduledMessageForwardingProcessor" name="ScheduledProcessor" messageStore="MyStore"> <parameter name="interval">10000</parameter> </messageProcessor> </definitions>

Objective

Introduction to Message Forwarding Processor

Pre-requisites

  • Start Synapse using the configuration numbered 702 (repository/conf/sample/synapse_sample_702.xml)
    Unix/Linux: sh synapse.sh -sample 702
    Windows: synapse.bat -sample 702

Executing the Client

Execute the sample client a few times with the following command. Note that we still haven't started the sample Axis2 server.

ant stockquote -Daddurl=http://localhost:9000/services/SimpleStockQuoteService -Dtrpurl=http://localhost:8280/ -Dmode=placeorder

Deploy the SimpleStockQuoteService in the sample Axis2 server and start Axis2.

When you start the service you will see messages getting delivered to the service, even though the service was actually down when we invoked the sample client.

Here in the 'main' sequence store mediator will store the placeOrder request message in the 'MyStore' message store. Message processor will send the message to the endpoint which is configured as a message context property. Message processor will remove the message from the store only if the message is delivered successfully.

Back to Catalog