Monitor QueueSize_ServerMax

This ConformanceUnit is for events. When the Client requests queuesize=MAXUInt32 the Server is to return the maximum queue size that it can support for event notifications as the revisedQueueSize.


Questions? Contact us
Generated: 21/11/2021 at 17:21:20 p.m.
Monitor QueueSize_ServerMax - 3 Test Cases
Test Case Id Test Type Keywords Test Case Description Test Requirements Expected Result

001

CTT Unavailable  CreateMonitoredItems() and specify the Server object, the Notifier attribute, and a queueSize of max size of UInt32. Call Publish() twice.
Step #
Action
Expected Result(s)

1

All service/operation results are Good. CreateMonitoredItems.Results[*].RevisedQueueSize may contain a different value. Cache this value within the UACTT so that it can be tested against.

2

Write to a node that will generate events in an attempt to fill the queue. If the revisedQueueSize is >=1000 then queue 1000 events; if less, then queue the exact number. Call Publish.

The Publish response may yield ALL queued events, or return multiple Publish responses with the MoreNotification flag = TRUE.

002

CTT Unavailable  Create a Subscription where the MaxNotificationsPerPublish is set to max size of UInt32. CreateMonitoredItems() and specify the Server object, the Notifier attribute, and a queueSize value matching what was revised in test #1. Invoke an event several times so as to fill the queue, but not exceed it. Call Publish() twice. or however many times are needed to consume all events. All service/operation results are Good. The first Publish() call receives all events generated. The second Publich() call may receive a continuation of the events (if all events were not previously received) or a KeepAlive (if all events were previously received).

003

CTT Unavailable  Repeat test #2 but cause the queue to overflow. Skip this test if the queueSize is > 1000. All service/operation results are Good. The first Publish() call receives all generated events, but the first event is an EventQueueOverflow event. Subsequent events are also received. The second Publish() call may receive a continuation of the events (if all events were not previously received) or a KeepAlive (if all events were previously received).