Clientsdefine MonitoredItemsto subscribe to data and Events. Each MonitoredItemidentifies the item to be monitored and the Subscriptionto use to send Notifications. The item to be monitored may be any Node Attribute.

Notificationsare data structures that describe the occurrence of data changes and Events. They are packaged into NotificationMessagesfor transfer to the Client. The Subscriptionperiodically sends NotificationMessagesat a user-specified publishinginterval, and the cycle during which these messages are sent is called a publishingcycle.

Four primary parameters are defined for MonitoredItemsthat tell the Serverhow the item is to be sampled, evaluated and reported. These parameters are the sampling interval, the monitoring mode, the filter and the queue parameter. Figure 15illustrates these concepts.

image018.png

Figure 15– MonitoredItem Model

Attributes, other than the Value Attribute, are only monitored for a change in value. The filter is not used for these Attributes. Any change in value for these Attributescauses a Notificationto be generated.

The Value Attributeis used when monitoring Variables. Variablevalues are monitored for a change in value or a change in their status. The filters defined in this standard (see 7.17.2) and in OPC 10000-8are used to determine if the value change is large enough to cause a Notificationto be generated for the Variable.

Objectsand views can be used to monitor Events. Eventsare only available from Nodeswhere the SubscribeToEventsbit of theEventNotifier Attributeis set. The filter defined in this standard (see 7.17.3) is used to determine if an Eventreceived from the Nodeis sent to the Client. The filter also allows selecting fields of the EventTypethat will be contained in the Eventsuch as EventId, EventType, SourceNode, Timeand Description.

OPC 10000-3describes the Eventmodel and the base EventTypes.

The Propertiesof the base EventTypesand the representation of the base EventTypesin the AddressSpaceare specified in OPC 10000-5.

Each MonitoredItemcreated by the Clientis assigned a sampling interval that is either inherited from the publishing interval of the Subscriptionor that is defined specifically to override that rate. A negative number indicates that the default sampling interval defined by the publishing interval of the Subscriptionis requested. The sampling interval indicates the fastest rate at which the Servershould sample its underlying source for data changes.

A Clientshall define a sampling interval of 0 if it subscribes for Events.

The assigned sampling interval defines a “best effort” cyclic rate that the Serveruses to sample the item from its source. “Best effort” in this context means that the Serverdoes its best to sample at this rate. Sampling at rates faster than this rate is acceptable, but not necessary to meet the needs of the Client. How the Serverdeals with the sampling rate and how often it actually polls its data source internally is a Serverimplementation detail. However, the time between values returned to the Clientshall be greater or equal to the sampling interval.

The Clientmay also specify 0 for the sampling interval, which indicates that the Servershould use the fastest practical rate. It is expected that Serverswill support only a limited set of sampling intervals to optimize their operation. If the exact interval requested by the Clientis not supported by the Server, then the Serverassigns to the MonitoredItemthe most appropriate interval as determined by the Server. It returns this assigned interval to the Client. The ServerCapabilities Objectdefined in OPC 10000-5identifies the sampling intervals supported by the Server.

The Servermay support data that is collected based on a sampling model or generated based on an exception-based model. The fastest supported sampling interval may be equal to 0, which indicates that the data item is exception-based rather than being sampled at some period. An exception-based model means that the underlying system does not require sampling and reports data changes.

The Clientmay use the revised sampling interval values as a hint for setting the publishing interval as well as the keep-alive count of a Subscription. If, for example, the smallest revised sampling interval of the MonitoredItemsis 5 seconds, then the time before a keep-alive is sent should be longer than 5 seconds.

Note that, in many cases, the OPC UA Serverprovides access to a decoupled system and therefore has no knowledge of the data update logic. In this case, even though the OPC UA Serversamples at the negotiated rate, the data might be updated by the underlying system at a much slower rate. In this case, changes can only be detected at this slower rate.

If the behaviour by which the underlying system updates the item is known, it will be available via the MinimumSamplingInterval Attributedefined in OPC 10000-3. If the Serverspecifies a value for the MinimumSamplingInterval Attributeit shall always return a revisedSamplingIntervalthat is equal or higher than the MinimumSamplingIntervalif the Clientsubscribes to the Value Attribute.

Clientsshould also be aware that the sampling by the OPC UA Serverand the update cycle of the underlying system are usually not synchronised. This can cause additional delays in change detection, as illustrated in Figure 16.

image019.png

Figure 16– Typical delay in change detection

The monitoring mode parameter is used to enable and disable the sampling of a MonitoredItem, and also to provide for independently enabling and disabling the reporting of Notifications. This capability allows a MonitoredItemto be configured to sample, sample and report, or neither. Disabling sampling does not change the values of any of the other MonitoredItemparameter, such as its sampling interval.

When a MonitoredItemis enabled (i.e. when the MonitoringModeis changed from DISABLEDto SAMPLINGor REPORTING) or it is created in the enabled state, the Servershall report the first sample as soon as possible and the time of this sample becomes the starting point for the next sampling interval.

Each time a MonitoredItemis sampled, the Serverevaluates the sample using the filter defined for the MonitoredItem. The filter parameter defines the criteria that the Serveruses to determine if a Notificationshould be generated for the sample. The type of filter is dependent on the type of the item that is being monitored. For example, the DataChangeFilter and the AggregateFilterare used when monitoring Variable Valuesand the EventFilteris used when monitoring Events. Sampling and evaluation, including the use of filters, are described in this standard. Additional filters may be defined in other parts of this series of standards.

If the sample passes the filter criteria, a Notificationis generated and queued for transfer by the Subscription. The size of the queue is defined when the MonitoredItemis created. When the queue is full and a new Notificationis received, the Servereither discards the oldest Notificationand queues the new one, or it replaces the last value added to the queue with the new one. The MonitoredItemis configured for one of these discard policies when the MonitoredItemis created. If a Notification is discarded for a DataValueand the size of the queue is larger than one, then the Overflowbit (flag) in the InfoBitsportion of the DataValue statusCodeis set. If discardOldestis TRUE, the oldest value gets deleted from the queue and the next value in the queue gets the flag set. If discardOldestis FALSE, the last value added to the queue gets replaced with the new value. The new value gets the flag set to indicate the lost values in the next NotificationMessage. Figure 17illustrates the queue overflow handling.

image020.png

Figure 17– Queue overflow handling

If the queue size is one, the queue becomes a buffer that always contains the newest Notification. In this case, if the sampling interval of the MonitoredItemis faster than the publishing interval of the Subscription, the MonitoredItemwill be over sampling and the Clientwill always receive the most up-to-date value. The discard policy is ignored if the queue size is one.

On the other hand, the Clientmay want to subscribe to a continuous stream of Notificationswithout any gaps, but does not want them reported at the sampling interval. In this case, the MonitoredItemwould be created with a queue size large enough to hold all Notificationsgenerated between two consecutive publishing cycles. Then, at each publishing cycle, the Subscriptionwould send all Notificationsqueued for the MonitoredItemto the Client. The Servershall return Notificationsfor any particular item in the same order they are in the queue.

The Servermay be sampling at a faster rate than the sampling interval to support other Clients; the Clientshould only expect values at the negotiated sampling interval. The Servermay deliver fewer values than dictated by the sampling interval, based on the filter and implementation constraints. If a DataChangeFilteris configured for a MonitoredItem, it is always applied to the newest value in the queue compared to the current sample.

If, for example, the AbsoluteDeadbandin the DataChangeFilteris “10”, the queue could consist of values in the following order:

  • 100
  • 111
  • 100
  • 89
  • 100

Queuing of data may result in unexpected behaviour when using a Deadbandfilter and the number of encountered changes is larger than the number of values that can be maintained. The new first value in the queue may not exceed the Deadbandlimit of the previous value sent to the Client.

The queue size is the maximum value supported by the Serverwhen monitoring Events. In this case, the Serveris responsible for the Eventbuffer. If Eventsare lost, an Eventof the type EventQueueOverflowEventTypeis placed in the queue. This Event is generated when the first Event has to be discarded on a MonitoredItem subscribing for Events. It is put into the Queue of the MonitoredItem in addition to the size of the Queue defined for this MonitoredItem without discarding any other Event. If discardOldestis set to TRUE it is put at the beginning of the queue and is never discarded, otherwise at the end. An aggregating Servershall not pass on such an Event. It shall be handled like other connection error scenarios.

The MonitoredItems Serviceallows the addition of items that are reported only when some other item (the triggering item) triggers. This is done by creating links between the triggered items and the items to report. The monitoring mode of the items to report is set to sampling-only so that it will sample and queue Notificationswithout reporting them. Figure 18illustrates this concept.

image021.png

Figure 18– Triggering Model

The triggering mechanism is a useful feature that allows Clientsto reduce the data volume on the wire by configuring some items to sample frequently but only report when some other Eventhappens.

The following triggering behaviours are specified.

  1. If the monitoring mode of the triggering item is SAMPLING, then it is not reported when the triggering item triggers the items to report.
  2. If the monitoring mode of the triggering item is REPORTING, then itis reported when the triggering item triggers the items to report.
  3. If the monitoring mode of the triggering item is DISABLED, then the triggering item does not trigger the items to report.
  4. If the monitoring mode of the item to report is SAMPLING, then itis reported when the triggering item triggers the items to report.
  5. If the monitoring mode of the item to report is REPORTING, this effectively causes the triggering item to be ignored. All notifications of the items to report are sent after the publishing interval expires.
  6. If the monitoring mode of the item to report isDISABLED, then there will be no sampling of the item to report and therefore no notifications to report.
  7. The first trigger shall occur when the first notification is queued for the triggering item after the creation of the link.

Clientscreate and delete triggering links between a triggering item and a set of items to report. If the MonitoredItemthat represents an item to report is deleted before its associated triggering link is deleted, the triggering link is also deleted, but the triggering item is otherwise unaffected.

Deletion of a MonitoredItemshould not be confused with the removal of the Attributethat it monitors. If the Nodethat contains the Attributebeing monitored is deleted, the MonitoredItemgenerates a Notificationwith a StatusCode Bad_NodeIdUnknownthat indicates the deletion, but the MonitoredItemis not deleted.

This Serviceis used to create and add one or more MonitoredItemsto a Subscription. A MonitoredItemis deleted automatically by the Serverwhen the Subscriptionis deleted. Deleting a MonitoredItemcauses its entire set of triggered item links to be deleted, but has no effect on the MonitoredItemsreferenced by the triggered items.

Calling the CreateMonitoredItems Servicerepetitively to add a small number of MonitoredItemseach time may adversely affect the performance of the Server. Instead, Clientsshould add a complete set of MonitoredItemsto a Subscriptionwhenever possible.

When a MonitoredItemis added, the Serverperforms initialization processing for it. The initialization processing is defined by the Notificationtype of the item being monitored. Notificationtypes are specified in this standard and in the Access Type Specification parts of this series of standards, such as OPC 10000-8. See OPC 10000-1for a description of the Access Type Parts.

When a user adds a monitored item that the user is denied read access to, the add operation for the item shall succeed and the bad status Bad_NotReadableor Bad_UserAccessDeniedshall be returned in the Publishresponse. This is the same behaviour for the case where the access rights are changed after the call to CreateMonitoredItems. If the access rights change to read rights, the Servershall start sending data for the MonitoredItem. The same procedure shall be applied for an IndexRangethat does not deliver data for the current value but could deliver data in the future.

Monitored Nodescan be removed from the AddressSpaceafter the creation of a MonitoredItem. This does not affect the validity of the MonitoredItembut a Bad_NodeIdUnknownshall be returned in the Publishresponse. It is possible that the MonitoredItembecomes valid again if the Nodeis added again to the AddressSpaceand the MonitoredItemstill exists.

If a NodeIdis known to be valid by a Serverbut the corresponding Node Attributesare currently not available, the Servermay allow the creation of a MonitoredItemand return an appropriate Bad StatusCodein the Publishresponse.

The return diagnostic info setting in the request header of the CreateMonitoredItemsor the last ModifyMonitoredItems Serviceis applied to the Monitored Itemsand is used as the diagnostic information settings when sending Notifications in the Publishresponse.

Illegal request values for parameters that can be revised do not generate errors. Instead the Serverwill choose default values and indicate them in the corresponding revised parameter.

It is strongly recommended by OPC UA that a Clientreuses a Subscriptionafter a short network interruption by activating the existing Sessionon a new SecureChannelas described in 6.7. If a Clientcalled CreateMonitoredItemsduring the network interruption and the call succeeded in the Serverbut did not return to the Client, then the Clientdoes not know if the call succeeded. The Clientmay receive data changes for these monitored items but is not able to remove them since it does not know the Serverhandle for each monitored item. There is also no way for the Clientto detect if the create succeeded. To delete and recreate the Subscriptionis also not an option since there may be several monitored items operating normally that should not be interrupted. To resolve this situation, the Server Objectprovides a Method GetMonitoredItemsthat returns the list of server and client handles for the monitored items in a Subscription. This Methodis defined in OPC 10000-5. The Servershall verify that the Methodis called within the Sessioncontext of the Sessionthat owns the Subscription.

Table 69defines the parameters for the Service.

Table 69– CreateMonitoredItems Service Parameters

Name

Type

Description

Request

requestHeader

RequestHeader

Common request parameters (see 7.28for RequestHeaderdefinition).

subscriptionId

IntegerId

The Server-assigned identifier for the Subscriptionthat will report Notificationsfor this MonitoredItem(see 7.14for IntegerIddefinition).

timestampsToReturn

Enum

Timestamps ToReturn

An enumeration that specifies the timestamp Attributesto be transmitted for each MonitoredItem. The TimestampsToReturnenumeration is defined in 7.35.

When monitoring Events, this applies only to Event fields that are of type DataValue.

itemsToCreate []

MonitoredItem CreateRequest

A list of MonitoredItemsto be created and assigned to the specified Subscription. This structure is defined in-line with the following indented items.

itemToMonitor

ReadValueId

Identifies an item in the AddressSpaceto monitor. To monitor for Events, the attributeIdelement of the ReadValueIdstructure is the id of the EventNotifier Attribute. The ReadValueIdtype is defined in 7.24.

monitoringMode

Enum

MonitoringMode

The monitoring mode to be set for the MonitoredItem. The MonitoringModeenumeration is defined in 7.18.

requestedParameters

Monitoring Parameters

The requested monitoring parameters. Serversnegotiate the values of these parameters based on the Subscriptionand the capabilities of the Server. The MonitoringParameterstype is defined in 7.16.

Response

responseHeader

Response Header

Common response parameters (see 7.29for ResponseHeaderdefinition).

results []

MonitoredItem CreateResult

List of results for the MonitoredItemsto create. The size and order of the list matches the size and order of the itemsToCreaterequest parameter. This structure is defined in-line with the following indented items.

statusCode

StatusCode

StatusCodefor the MonitoredItemto create (see 7.34for StatusCodedefinition).

monitoredItemId

IntegerId

Server-assigned id for the MonitoredItem(see 7.14for IntegerIddefinition). This id is unique within the Subscription, but might not be unique within the Serveror Session. This parameter is present only if the statusCodeindicates that the MonitoredItemwas successfully created.

revisedSampling Interval

Duration

The actual sampling interval that the Serverwill use.

This value is based on a number of factors, including capabilities of the underlying system. The Server shall always return a revisedSamplingIntervalthat is equal or higher than the requestedsamplingInterval. If the requestedsamplingIntervalis higher than the maximum sampling interval supported by the Server, the maximum sampling interval is returned.

revisedQueueSize

Counter

The actual queue size that the Serverwill use.

filterResult

Extensible Parameter

MonitoringFilterResult

Contains any revised parameter values or error results associated with the MonitoringFilter specified in requestedParameters. This parameter may be null if no errors occurred. The MonitoringFilterResultparameter type is an extensible parameter type specified in 7.17.

diagnosticInfos []

DiagnosticInfo

List of diagnostic information for the MonitoredItemsto create (see 7.8for DiagnosticInfo definition). The size and order of the list matches the size and order of the itemsToCreaterequest parameter. This list is empty if diagnostics information was not requested in the request header or if no diagnostic information was encountered in processing of the request.

Table 70defines the Serviceresults specific to this Service. Common StatusCodesare defined in Table 177.

Table 70– CreateMonitoredItems Service Result Codes

Symbolic Id

Description

Bad_NothingToDo

See Table 177for the description of this result code.

Bad_TooManyOperations

See Table 177for the description of this result code.

Bad_TimestampsToReturnInvalid

See Table 177for the description of this result code.

Bad_SubscriptionIdInvalid

See Table 177for the description of this result code.

Table 71defines values for the operation level statusCodeparameter that are specific to this Service. Common StatusCodesare defined in Table 178.

Table 71– CreateMonitoredItems Operation Level Result Codes

Symbolic Id

Description

Bad_MonitoringModeInvalid

See Table 178for the description of this result code.

Bad_NodeIdInvalid

See Table 178for the description of this result code.

Bad_NodeIdUnknown

See Table 178for the description of this result code.

Bad_AttributeIdInvalid

See Table 178for the description of this result code.

Bad_IndexRangeInvalid

See Table 178for the description of this result code.

Bad_IndexRangeNoData

See Table 178for the description of this result code.

If the ArrayDimensionshave a fixed length that cannot change and no data exists within the range of indexes specified, Bad_IndexRangeNoData is returned in CreateMonitoredItems. Otherwise if the length of the array is dynamic, the Servershall return this status in a Publishresponse for the MonitoredItemif no data exists within the range.

Bad_DataEncodingInvalid

See Table 178for the description of this result code.

Bad_DataEncodingUnsupported

See Table 178for the description of this result code.

Bad_MonitoredItemFilterInvalid

See Table 178for the description of this result code.

Bad_MonitoredItemFilterUnsupported

See Table 178for the description of this result code.

Bad_FilterNotAllowed

See Table 177for the description of this result code.

Bad_TooManyMonitoredItems

The Serverhas reached its maximum number of monitored items.

This Serviceis used to modify MonitoredItemsof a Subscription. Changes to the MonitoredItemsettings shall be applied immediately by the Server. They take effect as soon as practical but not later than twice the new revisedSamplingInterval.

The return diagnostic info setting in the request header of the CreateMonitoredItemsor the last ModifyMonitoredItems Serviceis applied to the Monitored Itemsand is used as the diagnostic information settings when sending Notifications in the Publishresponse.

Illegal request values for parameters that can be revised do not generate errors. Instead the Serverwill choose default values and indicate them in the corresponding revised parameter.

Table 72defines the parameters for the Service.

Table 72– ModifyMonitoredItems Service Parameters

Name

Type

Description

Request

requestHeader

RequestHeader

Common request parameters (see 7.28for RequestHeaderdefinition).

subscriptionId

IntegerId

The Server-assigned identifier for the Subscriptionused to qualify the monitoredItemId(see 7.14for IntegerIddefinition).

timestampsToReturn

Enum

Timestamps ToReturn

An enumeration that specifies the timestamp Attributesto be transmitted for each MonitoredItemto be modified. The TimestampsToReturnenumeration is defined in 7.35. When monitoring Events, this applies only to Event fields that are of type DataValue.

itemsToModify []

MonitoredItemModifyRequest

The list of MonitoredItemsto modify. This structure is defined in-line with the following indented items.

monitoredItemId

IntegerId

Server-assigned id for the MonitoredItem.

requestedParameters

Monitoring Parameters

The requested values for the monitoring parameters. The MonitoringParameterstype is defined in 7.16.

If the number of notifications in the queue exceeds the new queue size, the notifications exceeding the size shall be discarded following the configured discard policy.

Response

responseHeader

Response Header

Common response parameters (see 7.29for ResponseHeaderdefinition).

results []

MonitoredItemModifyResult

List of results for the MonitoredItemsto modify. The size and order of the list matches the size and order of the itemsToModifyrequest parameter. This structure is defined in-line with the following indented items.

statusCode

StatusCode

StatusCodefor the MonitoredItemto be modified (see 7.34for StatusCodedefinition).

revisedSampling

Interval

Duration

The actual sampling interval that the Serverwill use. The Serverreturns the value it will actually use for the sampling interval. This value is based on a number of factors, including capabilities of the underlying system.

The Server shall always return a revisedSamplingIntervalthat is equal or higher than the requestedsamplingInterval. If the requestedsamplingIntervalis higher than the maximum sampling interval supported by the Server, the maximum sampling interval is returned.

revisedQueueSize

Counter

The actual queue size that the Serverwill use.

filterResult

Extensible Parameter

MonitoringFilter Result

Contains any revised parameter values or error results associated with the MonitoringFilter specified in the request. This parameter may be null if no errors occurred. The MonitoringFilterResultparameter type is an extensible parameter type specified in 7.17.

diagnosticInfos []

DiagnosticInfo

List of diagnostic information for the MonitoredItemsto modify (see 7.8for DiagnosticInfo definition). The size and order of the list matches the size and order of the itemsToModifyrequest parameter. This list is empty if diagnostics information was not requested in the request header or if no diagnostic information was encountered in processing of the request.

Table 73defines the Serviceresults specific to this Service. Common StatusCodesare defined in Table 177.

Table 73– ModifyMonitoredItems Service Result Codes

Symbolic Id

Description

Bad_NothingToDo

See Table 177for the description of this result code.

Bad_TooManyOperations

See Table 177for the description of this result code.

Bad_TimestampsToReturnInvalid

See Table 177for the description of this result code.

Bad_SubscriptionIdInvalid

See Table 177for the description of this result code.

Table 74defines values for the operation level statusCodeparameter that are specific to this Service. Common StatusCodesare defined in Table 178.

Table 74– ModifyMonitoredItems Operation Level Result Codes

Symbolic Id

Description

Bad_MonitoredItemIdInvalid

See Table 178for the description of this result code.

Bad_MonitoredItemFilterInvalid

See Table 178for the description of this result code.

Bad_MonitoredItemFilterUnsupported

See Table 178for the description of this result code.

Bad_FilterNotAllowed

See Table 177for the description of this result code.

This Serviceis used to set the monitoring mode for one or more MonitoredItemsof a Subscription. Setting the mode to DISABLED causes all queued Notificationsto be deleted.

Table 75defines the parameters for the Service.

Table 75– SetMonitoringMode Service Parameters

Name

Type

Description

Request

requestHeader

RequestHeader

Common request parameters (see 7.28for RequestHeaderdefinition).

subscriptionId

IntegerId

The Server-assigned identifier for the Subscriptionused to qualify the monitoredItemIds(see 7.14for IntegerIddefinition).

monitoringMode

Enum

MonitoringMode

The monitoring mode to be set for the MonitoredItems. The MonitoringModeenumeration is defined in 7.18.

monitoredItemIds []

IntegerId

List of Server-assigned ids for the MonitoredItems.

Response

responseHeader

Response Header

Common response parameters (see 7.29for ResponseHeaderdefinition).

results []

StatusCode

List of StatusCodesfor the MonitoredItemsto enable/disable (see 7.34for StatusCodedefinition). The size and order of the list matches the size and order of the monitoredItemIdsrequest parameter.

diagnosticInfos []

DiagnosticInfo

List of diagnostic information for the MonitoredItemsto enable/disable (see 7.8for DiagnosticInfo definition). The size and order of the list matches the size and order of the monitoredItemIdsrequest parameter. This list is empty if diagnostics information was not requested in the request header or if no diagnostic information was encountered in processing of the request.

Table 76defines the Serviceresults specific to this Service. Common StatusCodesare defined in Table 177.

Table 76– SetMonitoringMode Service Result Codes

Symbolic Id

Description

Bad_NothingToDo

See Table 177for the description of this result code.

Bad_TooManyOperations

See Table 177for the description of this result code.

Bad_SubscriptionIdInvalid

See Table 177for the description of this result code.

Bad_MonitoringModeInvalid

See Table 178for the description of this result code.

Table 77defines values for the operation level resultsparameter that are specific to this Service. Common StatusCodesare defined in Table 178.

Table 77– SetMonitoringMode Operation Level Result Codes

Symbolic Id

Description

Bad_MonitoredItemIdInvalid

See Table 178for the description of this result code.

This Serviceis used to create and delete triggering links for a triggering item. The triggering item and the items to report shall belong to the same Subscription.

Each triggering link links a triggering item to an item to report. Each link is represented by the MonitoredItemid for the item to report. An error code is returned if this id is invalid.

See 5.12.1.6for a description of the triggering model.

Table 78defines the parameters for the Service.

Table 78– SetTriggering Service Parameters

Name

Type

Description

Request

requestHeader

Request Header

Common request parameters (see 7.28for RequestHeaderdefinition).

subscriptionId

IntegerId

The Server-assigned identifier for the Subscriptionthat contains the triggering item and the items to report (see 7.14for IntegerIddefinition).

triggeringItemId

IntegerId

Server-assigned id for the MonitoredItemused as the triggering item.

linksToAdd []

IntegerId

The list of Server-assigned ids of the items to report that are to be added as triggering links. The list of linksToRemoveis processed before the linksToAdd.

linksToRemove []

IntegerId

The list of Server-assigned ids of the items to report for the triggering links to be deleted. The list of linksToRemoveis processed before the linksToAdd.

Response

responseHeader

Response Header

Common response parameters (see 7.29for ResponseHeaderdefinition).

addResults []

StatusCode

List of StatusCodesfor the items to add (see 7.34for StatusCodedefinition). The size and order of the list matches the size and order of the linksToAddparameter specified in the request.

addDiagnosticInfos []

Diagnostic Info

List of diagnostic information for the links to add (see 7.8for DiagnosticInfo definition). The size and order of the list matches the size and order of the linksToAddrequest parameter. This list is empty if diagnostics information was not requested in the request header or if no diagnostic information was encountered in processing of the request.

removeResults []

StatusCode

List of StatusCodesfor the items to delete. The size and order of the list matches the size and order of the linksToRemoveparameter specified in the request.

removeDiagnosticInfos []

Diagnostic Info

List of diagnostic information for the links to delete. The size and order of the list matches the size and order of the linksToRemoverequest parameter. This list is empty if diagnostics information was not requested in the request header or if no diagnostic information was encountered in processing of the request.

Table 79defines the Serviceresults specific to this Service. Common StatusCodesare defined in 7.34.

Table 79– SetTriggering Service Result Codes

Symbolic Id

Description

Bad_NothingToDo

See Table 177for the description of this result code.

Bad_TooManyOperations

See Table 177for the description of this result code.

Bad_SubscriptionIdInvalid

See Table 177for the description of this result code.

Bad_MonitoredItemIdInvalid

See Table 178for the description of this result code.

Table 80defines values for the results parameters that are specific to this Service. Common StatusCodesare defined in Table 178.

Table 80– SetTriggering Operation Level Result Codes

Symbolic Id

Description

Bad_MonitoredItemIdInvalid

See Table 178for the description of this result code.

This Serviceis used to remove one or more MonitoredItemsof a Subscription. When a MonitoredItemis deleted, its triggered item links are also deleted.

Successful removal of a MonitoredItem, however, might not remove Notificationsfor the MonitoredItemthat are in the process of being sent by the Subscription. Therefore, Clientsmay receive Notificationsfor the MonitoredItemafter they have received a positive response that the MonitoredItemhas been deleted.

Table 81defines the parameters for the Service.

Table 81– DeleteMonitoredItems Service Parameters

Name

Type

Description

Request

requestHeader

RequestHeader

Common request parameters (see 7.28for RequestHeaderdefinition).

subscriptionId

IntegerId

The Server-assigned identifier for the Subscriptionthat contains the MonitoredItemsto be deleted (see 7.14for IntegerIddefinition).

monitoredItemIds []

IntegerId

List of Server-assigned ids for the MonitoredItemsto be deleted.

Response

responseHeader

Response Header

Common response parameters (see 7.29for ResponseHeaderdefinition).

results []

StatusCode

List of StatusCodesfor the MonitoredItemsto delete (see 7.34for StatusCodedefinition). The size and order of the list matches the size and order of the monitoredItemIdsrequest parameter.

diagnosticInfos []

DiagnosticInfo

List of diagnostic information for the MonitoredItemsto delete (see 7.8for DiagnosticInfo definition). The size and order of the list matches the size and order of the monitoredItemIdsrequest parameter. This list is empty if diagnostics information was not requested in the request header or if no diagnostic information was encountered in processing of the request.

Table 82defines the Serviceresults specific to this Service. Common StatusCodesare defined in Table 177.

Table 82– DeleteMonitoredItems Service Result Codes

Symbolic Id

Description

Bad_NothingToDo

See Table 177for the description of this result code.

Bad_TooManyOperations

See Table 177for the description of this result code.

Bad_SubscriptionIdInvalid

See Table 177for the description of this result code.

Table 83defines values for the resultsparameter that are specific to this Service. Common StatusCodesare defined in Table 178.

Table 83– DeleteMonitoredItems Operation Level Result Codes

Symbolic Id

Description

Bad_MonitoredItemIdInvalid

See Table 178for the description of this result code.