Guaranteed Delivery for Stateful or Stateless Clusters
Guaranteed delivery ensures that a service executes once and only once. It is particularly useful when used with clustering to prevent a restarted service from running on more than one server. This feature is only for use with server-to-server communications. You can use guaranteed delivery with both stateful and stateless clusters.
Guaranteed delivery ensures one-time execution of services by guaranteeing the following:
Requests from the client to execute services are delivered to the server.
Services are executed once, and only once.
Responses from the execution of services are delivered to the client.
When not clustering, guaranteed delivery makes sure a client resubmits a service request to an Integration Server until it succeeds and a response is returned, and makes sure the service executes only once. For example, if the network connection between the client and the Integration Server fails after execution but before the response is successfully redirected to the client, the service might be executed twice. Guaranteed delivery prevents this from happening.
With clustering, guaranteed delivery makes sure that if the server on which the service is running becomes unavailable, the client retries the service on another server in the cluster until it succeeds and a response is returned. As in an unclustered environment, guaranteed delivery prevents a service from executing more than once.
For more information about guaranteed delivery, see
Configuring the Server for Guaranteed
Delivery. and the
Guaranteed Delivery Developer’s Guide.