Page History
...
Code Block |
---|
<address uri="endpoint address" [format="soap11|soap12|pox|get"]
[optimize="mtom|swa"] [encoding="charset encoding"]
[statistics="enable|disable"] [trace="enable|disable"]>
<enableRM [policy="key"]/>?
<enableSec [policy="key"]/>?
<enableAddressing [version="final|submission"] [separateListener="true|false"]/>?
<timeout>
<duration>timeout duration in seconds</duration>
<action>discard|fault</action>
</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>
|
...
Name | Values | Default | Description |
---|---|---|---|
errorCodes | Comma separated list of error codes | 101504, 101505 | Errors to send the endpoint into the "Timeout" state |
retriesBeforeSuspension | Integer | 0 | In the "Timeout" state this number of requests minus one can be tried and can be failed before endpoint is marked as "Suspended" |
retryDelay |
|
|
|
'suspenOnFailure' settings
Anchor | ||||
---|---|---|---|---|
|
Name | Values | Default | Description |
---|---|---|---|
errorCodes | Comma separated list of error codes | All the errors except the errors specified in | Errors to send the endpoint in to the "Suspended" state. |
initialDuration | milliseconds | 60 x 60 x 1000 | After an endpoint gets "Suspended" it will wait for this amount of time before trying to send the messages coming to it. All the messages coming during this time period will result in fault sequence activation. |
progressionFactor | Integer | 1 | The endpoint will try to send the messages after the |
maximumDuration | milliseconds | Long.MAX_VALUE | Upper bound of retry duration. |
Sample Configuration:
Code Block |
---|
<endpoint name="Sample_First" statistics="enable" >
<address uri="http://localhost/myendpoint" statistics="enable" trace="disable">
<timeout>
<duration>60000</duration>
</timeout>
<markForSuspension>
<errorCodes>101504, 101505</errorCodes>
<retriesBeforeSuspension>3</retriesBeforeSuspension>
<retryDelay>1</retryDelay>
</markForSuspension>
<suspendOnFailure>
<errorCodes>101500, 101501, 101506, 101507, 101508</errorCodes>
<initialDuration>1000</initialDuration>
<progressionFactor>2</progressionFactor>
<maximumDuration>64000</maximumDuration>
</suspendOnFailure>
</address>
</endpoint>
|
...
For more information about error codes refer the #table below.
...
Disabling endpoint suspension
If you do not want the endpoint to be suspended at all, you can configure the Timeout, MarkForSuspension and suspendOnFailure settings as shown in the following example.
Code Block | ||
---|---|---|
| ||
<endpoint name="NoSuspendEndpoint">
<address uri="http://localhost:9000/services/SimpleStockQuoteService">
<timeout>
<duration>30000</duration>
<responseAction>fault</responseAction>
</timeout>
<suspendOnFailure>
<errorCodes>-1</errorCodes>
<initialDuration>0</initialDuration>
<progressionFactor>1.0</progressionFactor>
<maximumDuration>0</maximumDuration>
</suspendOnFailure>
<markForSuspension>
<errorCodes>-1</errorCodes>
</markForSuspension>
</address>
</endpoint> |
Failover Endpoint
Anchor | ||||
---|---|---|---|---|
|
With leaf endpoints, if an error occurs during a message transmission process, that message will be lost. The failed message will not be retried again. These errors occur very rarely, but still message failures can occur. With some applications these rare message loses are acceptable, but sometimes even these rare message failures are not acceptable and the failover endpoint is the ideal solution for it.
Here is the configuration for failover endpoints. At the configuration level, a failover is a logical grouping of one or more Leaf endpoints.
Code Block |
---|
<failover>
<endpoint .../>+
</failover>
|
...
A sample failover with one address endpoint:
Code Block |
---|
<endpoint name="SampleFailover">
<failover>
<endpoint name="Sample_First" statistics="enable" >
<address uri="http://localhost/myendpoint" statistics="enable" trace="disable">
<timeout>
<duration>60000</duration>
</timeout>
<markForSuspension>
<errorCodes>101504, 101505, 101500</errorCodes>
<retriesBeforeSuspension>3</retriesBeforeSuspension>
<retryDelay>1</retryDelay>
</markForSuspension>
<suspendOnFailure>
<initialDuration>1000</initialDuration>
<progressionFactor>2</progressionFactor>
<maximumDuration>64000</maximumDuration>
</suspendOnFailure>
</address>
</endpoint>
</failover>
</endpoint>
|
...
Error code | Description |
---|---|
101000 | Receiver IO error sending |
101001 | Receiver IO error receiving |
101500 | Sender IO error sending |
101501 | Sender IO error receiving |
101503 | Connection failed |
101504 | Connection timed out |
101505 | Connection closed |
101506 | HTTP protocol violation |
101507 | Connect cancel |
101508 | Connect timeout |
101509 | Send abort |
Excerpt | ||
---|---|---|
| ||
Instructions on how to handle endpoint errors in WSO2 ESB. |