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>


Reply via email to