Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagehtml/xml
<address uri="endpoint address" [format="soap11|soap12|pox|rest|get"] [optimize="mtom|swa"]
    [encoding="charset encoding"]
    [statistics="enable|disable"] [trace="enable|disable"]>

    <enableSec [policy="key"]/>?
    <enableAddressing [version="final|submission"] [separateListener="true|false"]/>?

    <timeout>
        <duration>timeout duration in milliseconds</duration>
        <responseAction>discard|fault</responseAction>
    </timeout>?

    <markForSuspension>
        [<errorCodes>xxx,yyy</errorCodes>]
        <retriesBeforeSuspension>m</retriesBeforeSuspension>
        <retryDelay>d</retryDelay>
    </markForSuspension>

    <suspendOnFailure>
        [<errorCodes>xxx,yyy</errorCodes>]
        <initialDuration>n</initialDuration>
        <progressionFactor>r</progressionFactor>
        <maximumDuration>l</maximumDuration>
    </suspendOnFailure>
</address>

...

duration

Timeout duration that should elapse before the end point is timed out.

actionresponseAction

This parameter is used to specify the action to perform once an endpoint has timed out. The available options are as follows.

  • discard: If this is selected, the responses which arrive after the endpoint has timed out will be discarded.
  • fault: If this is selected, a fault is triggered when the endpoint is timed out.
Tip

You can specify a value that is 1 millisecond less than the time duration you specify for the endpoint time out for the synapse.timeout_handler_interval property in the <ESB_Home>/repository/conf/synapse.properties file. This would minimise the number of late responses from the backend.

Marking an endpoint for suspension

The markForSuspension element contains the following parameters which affect the suspension of a  endpoint which would be timed out after a specified time duration.

errorCodes

This parameter is used to specify one or more error codes which can cause the endpoint to be marked for suspension when they are returned by the endpoint. Multiple error codes can be specified separated by comas. See SynpaseConstant class for a list of available error codes.

retriesBeforeSuspension

Number of retries before go into suspended state.

The number of times the endpoint should be allowed to retry sending the response before it is marked for suspension.

retryDelay

The delay between each try.

Suspending the endpoint on failure 
Anchor
Suspending Endpoint on Failure
Suspending Endpoint on Failure

Leaf endpoints(Address and WSDL) can be suspended if they are detected as failed endpoints. When an endpoint is in in suspended state for a specified time duration following a failure, it cannot process any new messages. The following formula determines the wait time before the next attempt.

next suspension time period = Max (Initial Suspension duration * (progression factor*  try count *), Maximum Duration)

All the variables in the above formula are configuration values used to calculate the try count. Try count is the number of tries carried out after the endpoint is suspended. The increase in the try count causes an increase in the next suspension time period. This time period is bound to a maximum duration. 

The parameters available to configure a suspension of an endpoint due to failure are as follows.

Parameter NameDescription
errorCode

A comma separated error code list which can be returned by the endpoint.

This parameter is used to specify one or more error codes which can cause the endpoint to be suspended when they are returned from the endpoint. Multiple error codes can be specified, separated by commas.

initialDurationThe number of milliseconds after which the endpoint should be suspended when it is being suspended for the first time.
progressionFactorThe progression factor for the geometric series. See the above formula for a more detailed description.
maximumDuration

The maximum duration (in milliseconds) to suspend the endpoint.

Following are the sample address URI definition.

Transport

Sample Address

HTTP

http://localhost:9000/services/SimpleStockQuoteService

JMS

jms:/SimpleStockQuoteService?
transport.jms.ConnectionFactoryJNDIName=QueueConnectionFactory&
java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory&
java.naming.provider.url=tcp://localhost:61616&
transport.jms.DestinationType=topic

Mail

guest@host

VFS

vfs:file:///home/user/directory\ vfs:">file:///home/user/file\ vfs:

FIX

fix://host:port?BeginString=FIX4.4&SenderCompID=WSO2&TargetCompID=APACHE

UI configuration

The following page is opened by clicking Address Endpoint in  in the Add Endpoint tab  tab of the Manage Endpoints page page.

The parameters available to configure the endpoint are as follows.

...