Chapter 6. Reliability

Distributed, service-oriented systems can be subject to intermittent network failures that can play havoc on the system’s overall integrity. Systems must provide sufficient resiliency to failure, and they must be able to recover from failure in a controlled and predictable manner. WCF provides three key features to improve overall reliability and predictability of communications between clients and services: reliable sessions, support for transactions, and queued messaging.

Reliable sessions make it possible to overcome transient network interruptions over TCP, named pipes, or HTTP. When reliable sessions are enabled, clients will attempt to resend messages to a service if it is unavailable. One of the benefits of this is that it is interoperable, and thus can be used to improve the reliability of HTTP messaging.

Transactional programming techniques allow developers to guarantee operations are completed as a single atomic transaction. Performing transactions over process, machine and system boundaries are critical to the overall consistency of an enterprise application. With WCF, you can apply transactions across service boundaries over any protocol including HTTP with interoperable support for other platforms.

Queued messaging, when combined with transactions, provides a foundation for durable, reliable, and one-way messaging that can survive lengthy network outages and machine restarts. WCF uses Microsoft Message Queue (MSMQ) to provide this type of 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.