.NET Based OPC UA Client/Server SDK  3.0.10.493
UnifiedAutomation.UaBase.PublishRequest Class Reference

Request the server to return NotificationMessages and acknowledge received NotificationMessages. More...

Inherits UnifiedAutomation.UaBase.IServiceRequest, and UnifiedAutomation.UaBase.IEncodeable.

Public Member Functions

 PublishRequest ()
 The default constructor. More...
 
virtual void Encode (IEncoder encoder)
 
virtual void Decode (IDecoder decoder)
 
virtual bool IsEqual (IEncodeable encodeable)
 Checks if encodeable is the same object or has the same content More...
 
virtual object Clone ()
 

Properties

RequestHeader RequestHeader [get, set]
 
SubscriptionAcknowledgementCollection SubscriptionAcknowledgements [get, set]
 The list of acknowledgements for one or more Subscriptions. More...
 
virtual ExpandedNodeId TypeId [get]
 
virtual ExpandedNodeId BinaryEncodingId [get]
 
virtual ExpandedNodeId XmlEncodingId [get]
 
- Properties inherited from UnifiedAutomation.UaBase.IServiceRequest
RequestHeader RequestHeader [get, set]
 The header for the request. More...
 
- Properties inherited from UnifiedAutomation.UaBase.IEncodeable
ExpandedNodeId TypeId [get]
 Returns the UA type identifier for the encodable type. More...
 
ExpandedNodeId BinaryEncodingId [get]
 Returns the UA type identifier for the default binary encoding for the type. More...
 
ExpandedNodeId XmlEncodingId [get]
 Returns the UA type identifier for the default XML encoding for the type. More...
 

Detailed Description

Request the server to return NotificationMessages and acknowledge received NotificationMessages.

This Service is used for two purposes. First, it is used to acknowledge the receipt of NotificationMessages for one or more Subscriptions. Second, it is used to request the Server to return a NotificationMessage or a keep-alive message. Since Publish requests are not directed to a specific Subscription, they may be used by any Subscription.

Client strategies for issuing Publish requests may vary depending on the networking delays between the Client and the Server. In many cases, the Client may wish to issue a Publish request immediately after creating a Subscription, and thereafter, immediately after receiving a Publish response.

In other cases, especially in high latency networks, the Client may wish to pipeline Publish requests to ensure cyclic reporting from the Server. Pipelining involves sending more than one Publish request for each Subscription before receiving a response. For example, if the network introduces a delay between the Client and the Server of five seconds and the publishing interval for a Subscription is one second, then the Client will have to issue Publish requests every second instead of waiting for a response to be received before sending the next request.

A server should limit the number of active Publish requests to avoid an infinite number since it is expected that the Publish requests are queued in the Server. But a Server shall accept more queued Publish requests than created Subscriptions. It is expected that a Server supports several Publish requests per Subscription. When a Server receives a new Publish request that exceeds its limit it shall dequeue the oldest Publish request and return a response with the result set to Bad_TooManyPublishRequests. If a Client receives this Service result for a Publish request it shall not issue another Publish request before one of its outstanding Publish requests is returned from the Server.

Clients can limit the size of Publish responses with the maxNotificationsPerPublish parameter passed to the CreateSubscription Service. However, this could still result in a message that is too large for the Client or Server to process. In this situation, the Client will find that either the SecureChannel goes into a fault state and needs to be reestablished or the Publish response returns an error and calling the Republish Service also returns an error. If either situation occurs then the Client will have to adjust its message processing limits or the parameters for the Subscription and/or MonitoredItems.

The return diagnostic info setting in the request header of the CreateMonitoredItems or the last ModifyMonitoredItems Service is applied to the Monitored Items and is used as the diagnostic information settings when sending Notifications in the Publish response.

Constructor & Destructor Documentation

UnifiedAutomation.UaBase.PublishRequest.PublishRequest ( )
inline

The default constructor.

Member Function Documentation

virtual bool UnifiedAutomation.UaBase.PublishRequest.IsEqual ( IEncodeable  encodeable)
inlinevirtual

Checks if encodeable is the same object or has the same content

Parameters
encodeable
Returns

Implements UnifiedAutomation.UaBase.IEncodeable.

Property Documentation

RequestHeader UnifiedAutomation.UaBase.PublishRequest.RequestHeader
getset

SubscriptionAcknowledgementCollection UnifiedAutomation.UaBase.PublishRequest.SubscriptionAcknowledgements
getset

The list of acknowledgements for one or more Subscriptions.

This list may contain multiple acknowledgements for the same Subscription (multiple entries with the same).


The documentation for this class was generated from the following file: