Standard Durable Reference

A standard durable strengthens delivery assurance for a subscriber.

Quality of Service

A standard durable ensures that every message is received and acknowledged by its subscriber.

If the subscriber does not acknowledge a message, the persistence store retains the message, and the subscriber automatically recovers the message.

Message Retention

A standard durable retains each message until its subscriber acknowledges it.

Subscribers

A standard durable can serve at most one subscriber at a time. That subscriber receives the entire message stream.

If a standard durable already serves a subscriber object in one client process, and another client process creates a subscriber that connects to the same standard durable, then the persistence store resolves collisions in favor of the more recent subscriber, deactivating the older durable subscriber (see "SUBSCRIBER_FORCE_CLOSE” in TIBCO FTL Development).

If a subscriber to a standard durable already exists within a client process, and the same client process subsequently attempts to create another subscriber on the same standard durable, that subscriber create call fails.

Direct Path

Administrators may configure a direct path from publisher to subscriber. In this arrangement, a standard durable provides a parallel path though the persistence service, which adds an intermediary hop. This durable path is only for recovering missed messages (see “Stores for Delivery Assurance” in TIBCO FTL Administration).

However, in some use cases, a direct path is not required for standard durables:
  • When using a message broker
  • When using a wide-area store

Content Matcher

A standard durable accepts, but does not require, a content matcher.

If it has a content matcher, then the subscriber must specify either an identical content matcher, or no content matcher.

Acknowledgments

A standard durable tracks acknowledgments from subscribers.

Dynamic Durable

Before a program can create a dynamic standard durable, the administrator must have already enabled standard dynamic durables on the endpoint (see “Enabling Dynamic Durables” and “Dynamic Durable Template Definition Reference,” both in TIBCO FTL Administration).

When a program creates a dynamic standard durable, it must supply the following information in the subscriber create call:
  • Endpoint Name
  • Durable Name
  • Optional: Content Matcher

    When creating a new dynamic durable, the content matcher becomes part of the new durable. The content matchers of subsequent subscribers to the durable must be identical.

If a durable with the specified durable name already exists, that durable forwards messages to the new subscriber.

If a durable with the specified durable name does not yet exist, the persistence store creates a dynamic durable using the durable name supplied in the subscriber create call.

Static Durable

Before a program can subscribe to a static durable, the administrator must have already defined that durable in the persistence store associated with the endpoint (see “Defining a Static Durable” and “Durable Definition Reference,” both in TIBCO FTL Administration).

When a program subscribes to a static standard durable, it must supply the following information in the subscriber create call:
  • Endpoint Name
  • Durable Name or Subscriber Name

    To understand this distinction, see “Durable Subscribers” in TIBCO FTL Development.

  • Optional: Content Matcher

    The content matcher must either be null, or be identical to the content matcher of the durable as configured by the administrator. The best practice is to supply null.