The Subscription Service Setis used by the Clientto create and maintain Subscriptions. Subscriptionsare entities that periodically publish NotificationMessagesfor the MonitoredItemassigned to them (see 7.9). The NotificationMessagecontains a common header followed by a series of Notifications. The format of Notificationsis specific to the type of item being monitored (i.e. Variables, Attributes, and EventNotifiers).
Once created, the existence of a Subscriptionis independent of the Client’s Sessionwith the Server. This allows one Clientto create a Subscription, and a second, possibly a redundant Client, to receive NotificationMessagesfrom it.
To protect against non-use by Clients, Subscriptionshave a configured lifetime that Clientsperiodically renew. If any Clientfails to renew the lifetime, the lifetime expires and the Subscriptionis closed by the Server. When a Subscriptionis closed, all MonitoredItemsassigned to the Subscriptionare deleted.
Subscriptionsinclude features that support detection and recovery of lost Messages. Each NotificationMessagecontains a sequence number that allows Clientsto detect missed Messages. When there are no Notificationsto send within the keep-alive time interval, the Serversends a keep-alive Messagethat contains the sequence number of the next NotificationMessagesent. If a Clientfails to receive a Messageafter the keep-alive interval has expired, or if it determines that it has missed a Message, it can request the Serverto resend one or more Messages.