synapse-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ind...@apache.org
Subject svn commit: r592682 - in /webservices/synapse/branches/1.1: repository/conf/sample/resources/policy/throttle_policy.xml repository/conf/sample/synapse_sample_371.xml repository/conf/sample/synapse_sample_372.xml src/site/resources/Synapse_Samples.html
Date Wed, 07 Nov 2007 10:16:24 GMT
Author: indika
Date: Wed Nov  7 02:16:24 2007
New Revision: 592682

URL: http://svn.apache.org/viewvc?rev=592682&view=rev
Log:
modify the samples 
add document for sample 372

Modified:
    webservices/synapse/branches/1.1/repository/conf/sample/resources/policy/throttle_policy.xml
    webservices/synapse/branches/1.1/repository/conf/sample/synapse_sample_371.xml
    webservices/synapse/branches/1.1/repository/conf/sample/synapse_sample_372.xml
    webservices/synapse/branches/1.1/src/site/resources/Synapse_Samples.html

Modified: webservices/synapse/branches/1.1/repository/conf/sample/resources/policy/throttle_policy.xml
URL: http://svn.apache.org/viewvc/webservices/synapse/branches/1.1/repository/conf/sample/resources/policy/throttle_policy.xml?rev=592682&r1=592681&r2=592682&view=diff
==============================================================================
--- webservices/synapse/branches/1.1/repository/conf/sample/resources/policy/throttle_policy.xml
(original)
+++ webservices/synapse/branches/1.1/repository/conf/sample/resources/policy/throttle_policy.xml
Wed Nov  7 02:16:24 2007
@@ -8,7 +8,7 @@
                 <wsp:All>
                     <throttle:MaximumCount>4</throttle:MaximumCount>
                     <throttle:UnitTime>800000</throttle:UnitTime>
-                    <throttle:ProhibitTimePeriod wsp:Optional="true">10000</throttle:ProhibitTimePeriod>
+                    <throttle:ProhibitTimePeriod wsp:Optional="true">1000</throttle:ProhibitTimePeriod>
                 </wsp:All>
                 <throttle:IsAllow>true</throttle:IsAllow>
             </wsp:ExactlyOne>

Modified: webservices/synapse/branches/1.1/repository/conf/sample/synapse_sample_371.xml
URL: http://svn.apache.org/viewvc/webservices/synapse/branches/1.1/repository/conf/sample/synapse_sample_371.xml?rev=592682&r1=592681&r2=592682&view=diff
==============================================================================
--- webservices/synapse/branches/1.1/repository/conf/sample/synapse_sample_371.xml (original)
+++ webservices/synapse/branches/1.1/repository/conf/sample/synapse_sample_371.xml Wed Nov
 7 02:16:24 2007
@@ -27,7 +27,6 @@
                     <wsp:Policy xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
                                 xmlns:throttle="http://www.wso2.org/products/wso2commons/throttle">
                         <throttle:ThrottleAssertion>
-                            <throttle:MaximumConcurrentAccess>10</throttle:MaximumConcurrentAccess>
                             <wsp:All>
                                 <throttle:ID throttle:type="IP">Other</throttle:ID>
                                 <wsp:ExactlyOne>

Modified: webservices/synapse/branches/1.1/repository/conf/sample/synapse_sample_372.xml
URL: http://svn.apache.org/viewvc/webservices/synapse/branches/1.1/repository/conf/sample/synapse_sample_372.xml?rev=592682&r1=592681&r2=592682&view=diff
==============================================================================
--- webservices/synapse/branches/1.1/repository/conf/sample/synapse_sample_372.xml (original)
+++ webservices/synapse/branches/1.1/repository/conf/sample/synapse_sample_372.xml Wed Nov
 7 02:16:24 2007
@@ -17,19 +17,15 @@
   ~  under the License.
   -->
 
-<!-- TODO: Find the topic -->
+<!-- Use of both concurrency throttling and request rate based throttling -->
 <definitions xmlns="http://ws.apache.org/ns/synapse">
 
     <registry provider="org.apache.synapse.registry.url.SimpleURLRegistry">
         <!-- the root property of the simple URL registry helps resolve a resource URL
as root + key -->
         <parameter name="root">file:repository/</parameter>
         <!-- all resources loaded from the URL registry would be cached for this number
of milli seconds -->
-        <parameter name="cachableDuration">15000</parameter>
+        <parameter name="cachableDuration">150000</parameter>
     </registry>
-
-
-    <localEntry key="thottlePolicy"
-                src="file:./repository/conf/sample/resources/policy/throttle_policy.xml"/>
 
     <sequence name="onAcceptSequence">
         <log level="custom">

Modified: webservices/synapse/branches/1.1/src/site/resources/Synapse_Samples.html
URL: http://svn.apache.org/viewvc/webservices/synapse/branches/1.1/src/site/resources/Synapse_Samples.html?rev=592682&r1=592681&r2=592682&view=diff
==============================================================================
--- webservices/synapse/branches/1.1/src/site/resources/Synapse_Samples.html (original)
+++ webservices/synapse/branches/1.1/src/site/resources/Synapse_Samples.html Wed Nov  7 02:16:24
2007
@@ -254,7 +254,8 @@
             mediator and concurrency throttling</a></li>
           <li><a href="#Sample371">Sample 371: Restricting requests based on
             policies</a></li>
-          <li><a href="#Sample372">Sample 372: TODO: Find the topic</a></li>
+          <li><a href="#Sample372">Sample 372: Use of both concurrency
+            throttling and request rate based throttling </a></li>
         </ul>
       </li>
       <li><a href="#Class">Extending the mediation in java (Class
@@ -269,7 +270,8 @@
         <ul>
           <li><a href="#Sample390">Sample 390: Introduction to the XQuery
             mediator</a></li>
-          <li><a href="#Sample391">Sample 391: TODO: Find the topic</a></li>
+          <li><a href="#Sample391">Sample 391: How to use the data from an
+            external XML document with in XQuery </a></li>
         </ul>
       </li>
       <li><a href="#Splitter">Splitting messages in to parts and process in
@@ -285,10 +287,10 @@
             aggregating the responses</a></li>
         </ul>
       </li>
-      <li><a href="#Cache">Caching the responses over the requests</a>
+      <li><a href="#Cache">Caching the responses over the requests</a>

         <ul>
           <li><a href="#Sample420">Sample 420: Simple cache implemented on
-              synapse for the actual service</a></li>
+            synapse for the actual service</a></li>
         </ul>
       </li>
     </ul>
@@ -2925,20 +2927,23 @@
 
 &lt;/definitions&gt;</pre>
 
-<p><strong>Objective: Introduce the concept of tasks and how simple trigger works</strong></p>
+<p><strong>Objective: Introduce the concept of tasks and how simple trigger
+works</strong></p>
 
 <p><strong>Prerequisites:</strong><br>
-You will need access to build the SimpleStockQuoteService as mentioned in the above and start
the
-sample axis2 server before staring synapse.</p>
+You will need access to build the SimpleStockQuoteService as mentioned in the
+above and start the sample axis2 server before staring synapse.</p>
 
-<p>When ever synapse gets started and initialized, this task will run periodically
in 5 second
-intervals. You could limit the number of times that you want to run this task by adding a
count
-attribute with an integer as the value, if the count is not present as in this sample this
task will
-run forever.</p>
-
-<p>One can write his own task class implmenting the org.apache.synapse.startup.Task
interface and
-implementing the execute method to do the task. For this particualr sample we have used the
-MessageInjector which just injects a message specified in to the synapse enviorenemnt.</p>
+<p>When ever synapse gets started and initialized, this task will run
+periodically in 5 second intervals. You could limit the number of times that
+you want to run this task by adding a count attribute with an integer as the
+value, if the count is not present as in this sample this task will run
+forever.</p>
+
+<p>One can write his own task class implmenting the
+org.apache.synapse.startup.Task interface and implementing the execute method
+to do the task. For this particualr sample we have used the MessageInjector
+which just injects a message specified in to the synapse enviorenemnt.</p>
 
 <h1><a name="AdvancedMediation">Advanced mediations with advanced
 mediators</a></h1>
@@ -3194,7 +3199,7 @@
     <p>create table company(name varchar(10), id varchar(10), price
     double);</p>
   </li>
-  <li>Inserts some data using following statements
+  <li>Inserts some data using following statements 
     <p>insert into company values ('IBM','c1',0.0);</p>
     <p>insert into company values ('SUN','c2',0.0);</p>
     <p>insert into company values ('MSFT','c3',0.0);</p>
@@ -3539,8 +3544,8 @@
 <h2><a name="Throttle">Throtteling messages (Throttle Mediator)</a></h2>
 <!-- TODO: any text to go in here??? -->
 
-<h2><a name="Sample370">Sample 370: Introduction to throttle
-mediator and concurrency throttling</a></h2>
+<h2><a name="Sample370">Sample 370: Introduction to throttle mediator and
+concurrency throttling</a></h2>
 <pre>&lt;definitions xmlns="http://ws.apache.org/ns/synapse"&gt;
     &lt;sequence name="main"&gt;
         &lt;in&gt;
@@ -3611,7 +3616,8 @@
 synapse. For synapse with above configuration ,if client send 20 request
 concurrently ,then approximately half of those will success..</p>
 
-<h2><a name="Sample371">Sample 371: Restricting requests based on policies </a></h2>
+<h2><a name="Sample371">Sample 371: Restricting requests based on policies
+</a></h2>
 <pre>&lt;definitions xmlns="http://ws.apache.org/ns/synapse"&gt;
     &lt;sequence name="main"&gt;
         &lt;in&gt;
@@ -3620,9 +3626,7 @@
                     &lt;!-- define throttle policy --&gt;
                     &lt;wsp:Policy xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
                                 xmlns:throttle="http://www.wso2.org/products/wso2commons/throttle"&gt;
-                        &lt;throttle:ThrottleAssertion&gt;
-                            &lt;throttle:MaximumConcurrentAccess&gt;10&lt;/throttle:MaximumConcurrentAccess&gt;
-                            &lt;wsp:All&gt;
+                        &lt;throttle:ThrottleAssertion&gt;   <br>         
                         &lt;wsp:All&gt;
                                 &lt;throttle:ID throttle:type="IP"&gt;Other&lt;/throttle:ID&gt;
                                 &lt;wsp:ExactlyOne&gt;
                                     &lt;wsp:All&gt;
@@ -3744,15 +3748,97 @@
 [HttpServerWorker-4] INFO  LogMediator - text = **Access Accept**
 [HttpServerWorker-5] INFO  LogMediator - text = **Access Denied** </pre>
 
-<h2><a name="Sample372">Sample 372: TODO: Find the topic</a></h2>
-
+<h2><a name="Sample372">Sample 372:Use of both concurrency throttling and
+request rate based throttling </a></h2>
 <!-- TODO: what goes here -->
 
-<h2><a name="Class">Extending the mediation in java (Class Mediator)</a></h2>
+<div>
+</div>
+<pre>&lt;!-- Use of both concurrency throttling and request rate based throttling
--&gt;
+&lt;definitions xmlns="http://ws.apache.org/ns/synapse"&gt;
+
+    &lt;registry provider="org.apache.synapse.registry.url.SimpleURLRegistry"&gt;
+        &lt;!-- the root property of the simple URL registry helps resolve a resource
URL as root + key --&gt;
+        &lt;parameter name="root"&gt;file:repository/&lt;/parameter&gt;
+        &lt;!-- all resources loaded from the URL registry would be cached for this number
of milli seconds --&gt;
+        &lt;parameter name="cachableDuration"&gt;150000&lt;/parameter&gt;
+    &lt;/registry&gt;
+
+    &lt;sequence name="onAcceptSequence"&gt;
+        &lt;log level="custom"&gt;
+            &lt;property name="text" value="**Access Accept**"/&gt;
+        &lt;/log&gt;
+        &lt;send&gt;
+            &lt;endpoint&gt;
+                &lt;address uri="http://localhost:9000/soap/SimpleStockQuoteService"/&gt;
+            &lt;/endpoint&gt;
+        &lt;/send&gt;
+    &lt;/sequence&gt;
+    &lt;sequence name="onRejectSequence" trace="enable"&gt;
+        &lt;log level="custom"&gt;
+            &lt;property name="text" value="**Access Denied**"/&gt;
+        &lt;/log&gt;
+        &lt;makefault&gt;
+            &lt;code value="tns:Receiver"
+                  xmlns:tns="http://www.w3.org/2003/05/soap-envelope"/&gt;
+            &lt;reason value="**Access Denied**"/&gt;
+        &lt;/makefault&gt;
+        &lt;property name="RESPONSE" value="true"/&gt;
+        &lt;header name="To" action="remove"/&gt;
+        &lt;send/&gt;
+        &lt;drop/&gt;
+    &lt;/sequence&gt;
+    &lt;proxy name="StockQuoteProxy"&gt;
+        &lt;target&gt;
+             &lt;inSequence&gt;
+                &lt;throttle onReject="onRejectSequence" onAccept="onAcceptSequence"
id="A"&gt;
+                    &lt;policy key="conf/sample/resources/policy/throttle_policy.xml"/&gt;
+                &lt;/throttle&gt;
+            &lt;/inSequence&gt;
+            &lt;outSequence&gt;
+                &lt;throttle id="A"/&gt;
+                &lt;send/&gt;
+            &lt;/outSequence&gt;
+        &lt;/target&gt;
+        &lt;publishWSDL uri="file:repository/conf/sample/resources/proxy/sample_proxy_1.wsdl"/&gt;
+    &lt;/proxy&gt;
+&lt;/definitions&gt;
+</pre>
+
+<div>
+</div>
+
+<p><strong>Objective: Use of both concurrency throttling and request rate
+based throttling </strong></p>
+
+<p><strong>Prerequisites:</strong> Deploy the SimpleStockQuoteService in
+sample Axis2 server and start it on port 9000.</p>
+
+<p>Start Synapse with the sample configuration 372 (i.e. synapse -sample
+372).</p>
+
+<p></p>
+
+<p>Throttle policy is loaded from the &#x201c;throttle_policy. xml&#x201d;
+.That policy contains merging policy from sample 370 and 371. To check the
+functionality , it is need to run load test.The all enabled request from the
+concurrency throttling will be controlled by the access rate base throttling
+according to the policy.</p>
+
+<p>Run the client as follows </p>
+<pre>ant stockquote -Daddurl=http://localhost:8080/soap/StockQuoteProxy</pre>
 
+<div>
+<p>You will get results same as sample 371.if you run the load test, results
+will be different due to affect of concurrency throttling.</p>
+</div>
+
+<h2><a name="Class">Extending the mediation in java (Class
+Mediator)</a></h2>
 <!-- TODO: Is there anything tpo go in here??? -->
 
-<h2><a name="Sample380">Sample 380: Writting your own custom mediation in Java</a></h2>
+<h2><a name="Sample380">Sample 380: Writting your own custom mediation in
+Java</a></h2>
 <pre>&lt;definitions xmlns="http://ws.apache.org/ns/synapse"&gt;
 
     &lt;sequence name="fault"&gt;
@@ -3923,11 +4009,12 @@
 
 <p></p>
 
-<h2><a name="XQuery">Evaluating XQuery for mediation (XQuery Mediator)</a></h2>
-
+<h2><a name="XQuery">Evaluating XQuery for mediation (XQuery
+Mediator)</a></h2>
 <!-- TODO: what goes in herer -->
 
-<h2><a name="Sample390">Sample 390: Introduction to the XQuery mediator</a></h2>
+<h2><a name="Sample390">Sample 390: Introduction to the XQuery
+mediator</a></h2>
 <pre>&lt;definitions xmlns="http://ws.apache.org/ns/synapse"&gt;
 
     &lt;!-- the SimpleURLRegistry allows access to a URL based registry (e.g. file:///
or http://) --&gt;
@@ -3988,10 +4075,11 @@
 
 <p></p>
 
-<h2><a name="Sample391">Sample 391: TODO: Find the topic</a></h2>
+<h2><a name="Sample391">Sample 391: How to use data from an external XML
+document with in XQuery </a></h2>
 <pre>&lt;definitions xmlns="http://ws.apache.org/ns/synapse"&gt;
 
-    &lt;!-- the SimpleURLRegistry allows access to a URL based registry (e.g. file:///
or http://) --&gt;
+    &lt;!-- the SimpleURLRegistry allows access to  URL based registry (e.g. file:///
or http://) --&gt;
     &lt;registry provider="org.apache.synapse.registry.url.SimpleURLRegistry"&gt;
         &lt;!-- the root property of the simple URL registry helps resolve a resource
URL as root + key --&gt;
         &lt;parameter name="root"&gt;file:repository/conf/sample/resources/&lt;/parameter&gt;
@@ -4038,12 +4126,12 @@
 <p>Invoke the client as follows. </p>
 <pre>ant stockquote -Daddurl=http://localhost:8080/soap/StockQuoteProxy</pre>
 
-<h2><a name="Splitter">Splitting messages in to parts and process in
-parallel (Iterate / Clone)</a></h2>
-
+<h2><a name="Splitter">Splitting messages in to parts and process in parallel
+(Iterate / Clone)</a></h2>
 <!-- TODO: splitter declaration -->
 
-<h2><a name="Sample400">Sample 400: Message splitting and aggregating the responses</a></h2>
+<h2><a name="Sample400">Sample 400: Message splitting and aggregating the
+responses</a></h2>
 <pre>&lt;definitions xmlns="http://ws.apache.org/ns/synapse"&gt;
 
     &lt;proxy name="SplitAggregateProxy"&gt;
@@ -4080,8 +4168,9 @@
     &lt;/proxy&gt;
 &lt;/definitions&gt;</pre>
 
-<p><b><strong>Objective: Demonstrate the use of Iterate mediator to split
the messages in to
-parts and process them asynchronously and then aggreagate the responses coming in to synapse</strong></b></p>
+<p><b><strong>Objective: Demonstrate the use of Iterate mediator to split
the
+messages in to parts and process them asynchronously and then aggreagate the
+responses coming in to synapse</strong></b></p>
 
 <p><strong>Prerequisites:</strong>Deploy the SimpleStockQuoteService in
 sample Axis2 server and start it on port 9000.</p>
@@ -4089,26 +4178,34 @@
 <p>Start Synapse with the sample configuration 400 (i.e. synapse -sample
 400).</p>
 
-<p>In this sample, the message sent to synapse has embeded with a number of elements
of the same type
-in one message. When synapse received this message it will iterate through those elements
and then sent
-to the specified endpoint. When all the responses appear in to synapse then those messages
will be
-aggregated to form the resultant response and sent back to the client.</p>
+<p>In this sample, the message sent to synapse has embeded with a number of
+elements of the same type in one message. When synapse received this message
+it will iterate through those elements and then sent to the specified
+endpoint. When all the responses appear in to synapse then those messages
+will be aggregated to form the resultant response and sent back to the
+client.</p>
 
 <p>Invoke the client as follows. </p>
 <pre>ant stockquote -Daddurl=http://localhost:8080/soap/SplitAggregateProxy -Ditr=4</pre>
 
-<h2><a name="Aggregator">Aggregating messages and process in batch (Aggregate
Mediator)</a></h2>
+<h2><a name="Aggregator">Aggregating messages and process in batch (Aggregate
+Mediator)</a></h2>
 
-<h2><a name="Sample410">Sample 410: Message aggregation for batch processing</a></h2>
+<h2><a name="Sample410">Sample 410: Message aggregation for batch
+processing</a></h2>
 
-<h2><a name="Cache">Caching the responses over the requests (Cache Mediator)</a></h2>
+<h2><a name="Cache">Caching the responses over the requests (Cache
+Mediator)</a></h2>
 
-<p>Cached mediator can be used to utilize the network bandwidth, to protect the backend
service from
-being loaded with the same type of requests like browser refresh and also to speed up the
-execution of the webservice. This mediator should be used with sence, because it is not applicable
-for each and every services (for example services with dynamic responses for a particular
release)</p>
+<p>Cached mediator can be used to utilize the network bandwidth, to protect
+the backend service from being loaded with the same type of requests like
+browser refresh and also to speed up the execution of the webservice. This
+mediator should be used with sence, because it is not applicable for each and
+every services (for example services with dynamic responses for a particular
+release)</p>
 
-<h2><a name="Sample420">Sample 420: Simple cache implemented on synapse for the
actual service</a></h2>
+<h2><a name="Sample420">Sample 420: Simple cache implemented on synapse for
+the actual service</a></h2>
 <pre>&lt;definitions xmlns="http://ws.apache.org/ns/synapse"&gt;
     &lt;in&gt;
         &lt;cache timeout="20000" scope="per-host"
@@ -4127,8 +4224,9 @@
     &lt;/out&gt;
 &lt;/definitions&gt;</pre>
 
-<p><b><strong>Objective: Demonstrate the use of Cache mediator in order
to cache the
-response and use that cached response as the response for an identical xml request</strong></b></p>
+<p><b><strong>Objective: Demonstrate the use of Cache mediator in order
to
+cache the response and use that cached response as the response for an
+identical xml request</strong></b></p>
 
 <p><strong>Prerequisites:</strong>Deploy the SimpleStockQuoteService in
 sample Axis2 server and start it on port 9000.</p>
@@ -4136,21 +4234,22 @@
 <p>Start Synapse with the sample configuration 420 (i.e. synapse -sample
 420).</p>
 
-<p>In this sample, the message sent to synapse is checked for an existing cached response
by
-calculating the hash value of the request. If there is a cache hit in synapse then this request
-will not be forwarded to the actual service, rather synapse respond to the client with the
-cached response. In case of a cache miss that particular message will be forwarded to the
actual
-service and cached that response in the out path for the use of consecutive requests of the
-same type.</p>
+<p>In this sample, the message sent to synapse is checked for an existing
+cached response by calculating the hash value of the request. If there is a
+cache hit in synapse then this request will not be forwarded to the actual
+service, rather synapse respond to the client with the cached response. In
+case of a cache miss that particular message will be forwarded to the actual
+service and cached that response in the out path for the use of consecutive
+requests of the same type.</p>
 
 <p>To observe this behaviour, invoke the client as follows. </p>
 <pre>ant stockquote -Dtrpurl=http://localhost:8080/</pre>
 
-<p>You could notice that if you send more than one requests withing 20 seconds only
the first request
-is forwarded to the actual service, and the rest of the requests will be served by the cache
inside
-syanpse. You could observe this by looking at the priting line of the axis2 server, as well
as by
-observing a constant rate as the response to the client instead of the random rate, which
changes by
-each and every 20 seconds.</p>
-
+<p>You could notice that if you send more than one requests withing 20
+seconds only the first request is forwarded to the actual service, and the
+rest of the requests will be served by the cache inside syanpse. You could
+observe this by looking at the priting line of the axis2 server, as well as
+by observing a constant rate as the response to the client instead of the
+random rate, which changes by each and every 20 seconds.</p>
 </body>
 </html>



---------------------------------------------------------------------
To unsubscribe, e-mail: synapse-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: synapse-dev-help@ws.apache.org


Mime
View raw message