Reliable Sessions

When you send messages to a remote service, ideally you’d like to be sure they get there. If the message doesn’t arrive, you probably want to resend it and try again. At a minimum, you want to know if the message has never arrived so that you can take corrective action. These delivery assurances are provided by some transport protocols such as TCP and named pipes, but not by the likes of HTTP. Even so, with TCP and named pipes, these assurances can be guaranteed only from point-to-point. If an intermediary, such as a proxy server or message router, exists between the sending and receiving applications, there are no guarantees beyond the assurance that the message reached the first network node in transit.

Reliable sessions improve application reliability in the following manner:

  • Messages can be guaranteed to be delivered exactly once and in order, withstanding transient hiccups in network connectivity.

  • These delivery assurances are not tied to a particular protocol, thus reliability is possible for HTTP protocol, for example.

  • End-to-end reliability is supported so that message delivery is reliable over multiple hops.

  • Reliability is based on the entire SOAP message, not just on individual IP packets.

  • Reliable sessions are based on interoperable protocols, so delivery can be guaranteed between disparate operating and development platforms.

There is no question that reliability is necessary, but the decision to use reliable sessions is usually driven by the need to add reliability ...

Get Learning WCF now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.