You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@synapse.apache.org by ch...@apache.org on 2011/05/25 04:54:31 UTC

svn commit: r1127367 - /synapse/trunk/java/src/site/xdoc/Synapse_Samples.xml

Author: charith
Date: Wed May 25 02:54:30 2011
New Revision: 1127367

URL: http://svn.apache.org/viewvc?rev=1127367&view=rev
Log:
updating synapse sample doc

Modified:
    synapse/trunk/java/src/site/xdoc/Synapse_Samples.xml

Modified: synapse/trunk/java/src/site/xdoc/Synapse_Samples.xml
URL: http://svn.apache.org/viewvc/synapse/trunk/java/src/site/xdoc/Synapse_Samples.xml?rev=1127367&r1=1127366&r2=1127367&view=diff
==============================================================================
--- synapse/trunk/java/src/site/xdoc/Synapse_Samples.xml (original)
+++ synapse/trunk/java/src/site/xdoc/Synapse_Samples.xml Wed May 25 02:54:30 2011
@@ -356,12 +356,18 @@
                 </li>
             </ul>
         </li>
-        <li>
-            <a href="#MessageStore">Synapse Message Stores (Dead Letter Channel)</a>
+         <li>
+            <a href="#StoreNFwd">Store and Forward Messaging patterns with Message Stores and Message Processors</a>
             <ul>
                 <li>
                     <a href="#Sample700">Sample 700: Introduction to Synapse Message Store </a>
                 </li>
+                <li>
+                    <a href="#Sample701">Sample 701: Introduction to Synapse Message Sampling Processor</a>
+                </li>
+                <li>
+                    <a href="#Sample702">Sample 702: Introduction to Synapse Message Forwarding Processor </a>
+                </li>
             </ul>
         </li>
 </ul></div>
@@ -5612,64 +5618,188 @@ following on the console:</p>
         <p>Invoke the client as follows.</p>
         <pre xml:space="preserve">ant stockquote -Daddurl=http://localhost:9000/services/SimpleStockQuoteService -Dtrpurl=http://localhost:8280/ -Dsymbol=SUN/
         </pre>
-    <h2>
-    <a name="Message Store" id="MessageStore">Introducing Synapse Message store</a></h2>
-    <h2>
-    <a name="Sample700" id="Sample700">Sample 700: Introduction to Synapse Message Store</a></h2>
-    <pre xml:space="preserve">&lt;!-- Introduction to the Synapse Message Store --&gt;
-    &lt;definitions xmlns="http://ws.apache.org/ns/synapse"&gt;
-        &lt;!--Simple in Memory Message Store with name foo --&gt;
-        &lt;messageStore name="foo" sequence="bar"&gt;
-    		&lt;redelivery&gt;
-    			&lt;!--retry interval 1 sec --&gt;
-    			&lt;interval&gt;1&lt;/interval&gt;
-    			&lt;!--Message will be stored after 2 redeliveries --&gt;
-    			&lt;maximumRedeliveries&gt;2&lt;/maximumRedeliveries&gt;
-    			&lt;exponentialBackoff&gt;true&lt;/exponentialBackoff&gt;
-    			&lt;backoffMutiplier&gt;2&lt;/backoffMutiplier&gt;
-    		&lt;/redelivery&gt;
-     	&lt;/messageStore&gt;
-
-    	&lt;!-- filtering of messages with XPath and regex matches --&gt;
-        &lt;sequence name="main"&gt;
-            &lt;filter source="get-property('To')" regex=".*/StockQuote.*"&gt;
-                &lt;send&gt;
-                    &lt;endpoint key="SampleEndpoint"/&gt;
-                &lt;/send&gt;
-                &lt;drop/&gt;
-            &lt;/filter&gt;
-            &lt;send/&gt;
-        &lt;/sequence&gt;
 
-        &lt;!-- Endpoint named SampleEndpoint--&gt;
-        &lt;endpoint name="SampleEndpoint" onFault="foo"&gt;
-            &lt;address uri="http://localhost:9000/services/SimpleStockQuoteService"&gt;
-    			&lt;suspendDurationOnFailure&gt;2&lt;/suspendDurationOnFailure&gt;
-    		&lt;/address&gt;
-        &lt;/endpoint&gt;
-
-        &lt;sequence name="bar"&gt;
+        <h2>
+            <a name="StoreNFwd" id="StoreNFwd">Store and Forward Messaging patterns with Message
+                Stores and Message Processors
+            </a>
+        </h2>
+        <p>
+            Synapse Message Stores and Message Processors can be used to implement different store
+            and forward messaging patterns.
+            This can be use to cater different SLA s and other QoS aspects.
+        </p>
+        <h2>
+            <a name="Sample700" id="Sample700">Sample 700: Introduction to Synapse Message Store</a></h2>
+        <pre xml:space="preserve">
+            &lt;!-- Introduction to the Synapse Message Store --&gt;
+            &lt;definitions xmlns="http://ws.apache.org/ns/synapse"&gt;
+            &lt;sequence name="fault"&gt;
+            &lt;log level="full"&gt;
+            &lt;property name="MESSAGE" value="Executing default 'fault' sequence"/&gt;
+            &lt;property name="ERROR_CODE" expression="get-property('ERROR_CODE')"/&gt;
+            &lt;property name="ERROR_MESSAGE" expression="get-property('ERROR_MESSAGE')"/&gt;
+            &lt;/log&gt;
+            &lt;drop/&gt;
+            &lt;/sequence&gt;
+            &lt;sequence name="onStoreSequence"&gt;
+            &lt;log&gt;
+            &lt;property name="On-Store" value="Storing message"/&gt;
+            &lt;/log&gt;
+            &lt;/sequence&gt;
+            &lt;sequence name="main"&gt;
+            &lt;in&gt;
             &lt;log level="full"/&gt;
-        &lt;/sequence&gt;
-    &lt;/definitions&gt;
-    </pre>
+            &lt;property name="FORCE_SC_ACCEPTED" value="true" scope="axis2"/&gt;
+            &lt;store messageStore="MyStore" sequence="onStoreSequence"/&gt;
+            &lt;/in&gt;
+            &lt;description&gt;The main sequence for the message mediation&lt;/description&gt;
+            &lt;/sequence&gt;
+            &lt;messageStore name="MyStore"/&gt;
+            &lt;/definitions&gt;
+        </pre>
     <p>
     <strong>Objective: </strong>Introduction to Synapse Message Stores</p>
-    <p>
     <strong>Prerequisites</strong>:
     <br/>Start the Synapse configuration numbered 700: i.e. synapse -sample 700
-    <br/>Start the Axis2 server and deploy the SimpleStockQuoteService if not already done</p>
     <p>To Execute the Client : </p>
-    <pre xml:space="preserve">ant stockquote -Dtrpurl=http://localhost:8280/soap/StockQuote</pre>
-    <p>Since now you have the Axis2 Server Running when you run the client you will get the Stock
-        generation output in Server console and the out put in the client side. Then try shutting down
-        the Axis2 Server and running again. You will see synapse will try 2 times to deliver the message
-        and store in on the MessageStore.It will execute the log sequence before storing the Message
-        in the Message store.</p>
+    <pre xml:space="preserve">ant stockquote -Daddurl=http://localhost:9000/services/SimpleStockQuoteService -Dtrpurl=http://localhost:8280/ -Dmode=placeorder
+    </pre>
+    <p>When you execute the client the message will be dispatched to the main sequence.
+        In the Main sequence store mediator will store the placeOrder request message in the "MyStore" Message Store</p>
+
+        <p>Before Storing the message store mediator will invoke the sequence :onStoreSequence. See the log</p>
+        <p>INFO - LogMediator To: http://localhost:9000/services/SimpleStockQuoteService, WSAction: urn:placeOrder, SOAPAction: urn:placeOrder, ReplyTo: http://www.w3.org/2005/08/addressing/none, MessageID: urn:uuid:54f0e7c6-7b43-437c-837e-a825d819688c, Direction: request, On-Store = Storing message
+        </p>
+
 
     <p>You can then use the JMX view of Synapse Message Store by using the jconsole and view the stored
-        Message.You can even re start the Axis2Server and manually redeliver the request using the
-        Same JMX view.
+        Messages and delete them.
     </p>
+            <h2>
+    <a name="Sample701" id="Sample701">Sample 701: Introduction to Synapse Message Sampling Processor</a></h2>
+        <pre xml:space="preserve">
+            &lt;!-- Introduction to Synapse Message Sampling Processor --&gt;
+
+            &lt;definitions xmlns="http://ws.apache.org/ns/synapse"&gt;
+
+            &lt;sequence name="send_seq"&gt;
+            &lt;send&gt;
+            &lt;endpoint&gt;
+            &lt;address uri="http://localhost:9000/services/SimpleStockQuoteService"&gt;
+            &lt;suspendOnFailure&gt;
+            &lt;errorCodes&gt;-1&lt;/errorCodes&gt;
+            &lt;progressionFactor&gt;1.0&lt;/progressionFactor&gt;
+            &lt;/suspendOnFailure&gt;
+            &lt;/address&gt;
+            &lt;/endpoint&gt;
+            &lt;/send&gt;
+            &lt;/sequence&gt;
+            &lt;sequence name="main"&gt;
+            &lt;in&gt;
+            &lt;log level="full"/&gt;
+            &lt;property name="FORCE_SC_ACCEPTED" value="true" scope="axis2"/&gt;
+            &lt;property name="OUT_ONLY" value="true"/&gt;
+            &lt;store messageStore="MyStore"/&gt;
+            &lt;/in&gt;
+            &lt;description&gt;The main sequence for the message mediation&lt;/description&gt;
+            &lt;/sequence&gt;
+            &lt;messageStore name="MyStore"/&gt;
+            &lt;messageProcessor
+            class="org.apache.synapse.message.processors.sampler.SamplingProcessor"
+            name="SamplingProcessor" messageStore="MyStore"&gt;
+            &lt;parameter name="interval"&gt;20000&lt;/parameter&gt;
+            &lt;parameter name="sequence"&gt;send_seq&lt;/parameter&gt;
+            &lt;/messageProcessor&gt;
+            &lt;/definitions&gt;
+        </pre>
+        <p>
+            <strong>Objective:</strong>Introduction to Synapse Message Sampling Processor
+        </p>
+        <strong>Prerequisites</strong>:
+        <br/>Start the Synapse configuration numbered 701: i.e. synapse -sample 701
+        <p>Start the SimpleStockQuoteService if its not already started</p>
+        <p>To Execute the Client few times:</p>
+        <pre xml:space="preserve">ant stockquote
+            -Daddurl=http://localhost:9000/services/SimpleStockQuoteService
+            -Dtrpurl=http://localhost:8280/ -Dmode=placeorder
+        </pre>
+        <p>When you execute the client the message will be dispatched to the main sequence.
+            In the Main sequence store mediator will store the placeOrder request message in the
+            "MyStore" Message Store
+        </p>
+
+        <p>Message Processor will consume the messages and forward to the send_seq sequence in
+            configured rate.
+        </p>
+        <p>You will observe that service invocation rate is not changing when increasing the rate we
+            execute the client.
+        </p>
+    <h2>
+    <a name="Sample702" id="Sample702">Sample 702: Introduction to Synapse Message Forwarding Processor</a></h2>
+        <pre xml:space="preserve">
+
+            &lt;!-- Introduction to Synapse Scheduled Message Forwarding Processor --&gt;
+
+            &lt;definitions xmlns="http://ws.apache.org/ns/synapse"&gt;
+
+            &lt;endpoint name="StockQuoteServiceEp"&gt;
+            &lt;address uri="http://localhost:9000/services/SimpleStockQuoteService"&gt;
+            &lt;suspendOnFailure&gt;
+            &lt;errorCodes&gt;-1&lt;/errorCodes&gt;
+            &lt;progressionFactor&gt;1.0&lt;/progressionFactor&gt;
+            &lt;/suspendOnFailure&gt;
+            &lt;/address&gt;
+            &lt;/endpoint&gt;
+            &lt;sequence name="fault"&gt;
+            &lt;log level="full"&gt;
+            &lt;property name="MESSAGE" value="Executing default 'fault' sequence"/&gt;
+            &lt;property name="ERROR_CODE" expression="get-property('ERROR_CODE')"/&gt;
+            &lt;property name="ERROR_MESSAGE" expression="get-property('ERROR_MESSAGE')"/&gt;
+            &lt;/log&gt;
+            &lt;drop/&gt;
+            &lt;/sequence&gt;
+            &lt;sequence name="main"&gt;
+            &lt;in&gt;
+            &lt;log level="full"/&gt;
+            &lt;property name="FORCE_SC_ACCEPTED" value="true" scope="axis2"/&gt;
+            &lt;property name="OUT_ONLY" value="true"/&gt;
+            &lt;property name="target.endpoint" value="StockQuoteServiceEp"/&gt;
+            &lt;store messageStore="MyStore"/&gt;
+            &lt;/in&gt;
+            &lt;description&gt;The main sequence for the message mediation&lt;/description&gt;
+            &lt;/sequence&gt;
+            &lt;messageStore name="MyStore"/&gt;
+            &lt;messageProcessor
+            class="org.apache.synapse.message.processors.forward.ScheduledMessageForwardingProcessor"
+            name="ScheduledProcessor" messageStore="MyStore"&gt;
+            &lt;parameter name="interval"&gt;10000&lt;/parameter&gt;
+            &lt;/messageProcessor&gt;
+            &lt;/definitions&gt;
+        </pre>
+    <p>
+    <strong>Objective: </strong>Introduction to Synapse Message Forwarding Processor</p>
+    <strong>Prerequisites</strong>:
+    <br/>Start the Synapse configuration numbered 702: i.e. synapse -sample 702
+
+    <p>To Execute the Client: </p>
+    <pre xml:space="preserve">ant stockquote -Daddurl=http://localhost:9000/services/SimpleStockQuoteService -Dtrpurl=http://localhost:8280/ -Dmode=placeorder
+</pre>
+
+        <p>Now Start the SimpleStockQuoteService</p>
+        <p>When you Start the service you will see message getting delivered to the service. Even
+            though service is down when we invoke it from the client
+        </p>
+        <p>Here in the Main sequence store mediator will store the placeOrder request message in the
+            "MyStore" Message Store
+        </p>
+        <p>Message Processor will send the message to the endpoint configured as a message context
+            property.
+        </p>
+        <p>Message processor will remove the message from the store only if message delivered
+            successfully
+        </p>
+
     </div>
-</body></document>
+</body>
+</document>