Acquiring a Queue Lock
When you create a BrokerLockedQueueBrowser the target queue is automatically locked. Information on the queue browser can be obtained with getBrowserInfo call. One of the members of the BrokerQueueBrowserInfo indicates whether the queue is locked or not ('locked'). If the target queue is already locked by another admin client, an exception will be thrown. A queue cannot be locked by more than one admin client at any given time.
After the target queue is locked, the target queue maintains a "QueueLocked" state, which prevents certain operation from changing the queue state. For example:
A
getEvent(s) call on a locked target client queue will timeout.
Events from a locked forwarding queue will not be delivered to the target remote
Broker.
A clear client queue operation will be rejected with an error message notifying the client queue locked status.
A client or session disconnect (via the
Broker Administrator tool) or client destroy commands will be rejected. An error message will be returned, notifying that the queue is locked.
A command such as "leave territory" that destroys a forwarding queue for a remote
Broker is rejected. An error message will be returned, notifying that the queue is locked.
All acknowledgements, both implicit and explicit, will be processed. The delete and modify queue browser operations only consider the deliverable documents for operation.