synapse-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Arockia Raphael (JIRA)" <>
Subject [jira] [Commented] (SYNAPSE-990) Endpoint Address Timeout per method/function level
Date Wed, 23 Jul 2014 19:51:38 GMT


Arockia Raphael commented on SYNAPSE-990:

Hi Isuru,
Thanks for the suggestion. This is simple and clean. Also, I figured out the Send mediator
is using the pre loaded EndPointDefinition object which has the time duration. 

One more issue I am facing with your approach is getting the method name from the incoming
 payload. If you are aware of any xpath to fetch the tag/method name, please let us know.
Or else, I will have to write a custom Switch Mediator.
<switch source="$body/child::*[position()=1]" >			
   <case regex=".*/getSimpleQuoteClone.*">

The mentioned regex works fine if add the followng line in SwitchMediator class mediate().
Basically, regex does not work with xml strings in multiple lines.

sourceText = sourceText.replaceAll("[\r\n]+", " ");

Request Payload:
<soapenv:Envelope xmlns:soapenv="" xmlns:xsd=""
	  <getSimpleQuoteClone xmlns="http://services.samples">

Any help would be appreciated!!


> Endpoint Address Timeout per method/function level
> --------------------------------------------------
>                 Key: SYNAPSE-990
>                 URL:
>             Project: Synapse
>          Issue Type: Improvement
>          Components: Endpoints
>    Affects Versions: 2.1
>            Reporter: Arockia Raphael
>            Assignee: Hiranya Jayathilaka
>            Priority: Minor
> Currently, Timeout duration is specified at end point level. The mentioned timeout is
applicable for any method call belongs to that service. We are having a situation where some
of the service methods respond within 3 seconds and some other with more data will take 30
seconds. However, we do not like the approach of our quick methods waiting for 30 seconds
in case of error/failure situations. There may be work around but would like to enquire any
easiest way to implement this functionality.
> Just mentioned the sample what we are trying to achieve. Thanks in advance!!
> <inSequence>
>     <send>
> 	<endpoint>
> 		<address 	uri="http://localhost:9080/SimpleStockQuoteService/services/SimpleStockQuoteService">
>                    <switch source="$ctx:envelope//method" >	--> Parse from input
request and retrieve the method name (soap envelope or rest )
>                     <case regex="method1">
> 			<timeout>
> 				<duration>10000</duration>
> 				<responseAction>fault</responseAction>
> 			</timeout>
>                      </case>
>                      <case regex="method2">
> 			<timeout>
> 				<duration>30000</duration>
> 				<responseAction>fault</responseAction>
> 			</timeout>
>                      </case>
>                       <default">
> 			<timeout>
> 				<duration>3000</duration>
> 				<responseAction>fault</responseAction>
> 			</timeout>
>                      </default>
>                </switch>
>  </inSequence>        

This message was sent by Atlassian JIRA

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message