A Browser allows client applications to look at messages spooled on Endpoints without removing them.
Messages are browsed from oldest to newest. After being browsed, messages are still available for consumption over normal flows. However, it is possible to selectively remove messages from the persistent store of an Endpoint, in this case, these removed messages will no longer be available for consumption.
One typical application is to use browsers to allow message bus administrators to remove “stuck” Guaranteed messages from an endpoint without having to modify or disrupt existing applications. A message can get stuck if:
It hass been received by an application, but for some reason, that application has failed to acknowledge it. All active message selectors have failed to match this particular message and therefore the message bus has not delivered it to any client yet.
The current release only supports browsing Endpoints of type Queue.
Note that the delivery restrictions imposed by the queue’s Access type (exclusive or non-exclusive), do not apply when browsing messages with a Browser.
SolaceSystems.Solclient.Messaging (in SolaceSystems.Solclient.Messaging.dll) Version: 10.20.0
public interface IBrowser : IDisposable
The IBrowser type exposes the following members.
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. (Inherited from IDisposable.)
If there is at least one message available in the Browser’s local message buffer, return it
immediately. Otherwise wait up to WaitTimeout(in BrowserProperties) until one is available.
If there is at least one message available in the Browser’s local message buffer, return it immediately.
Otherwise wait up to WaitTimeout(as specified in BrowserProperties) until one is available.
- If timeout is < 0, return immediately if there are no messages available locally
- If timeout is equal to 0, wait forever. This blocks the calling thread; to unblock it, call Dispose.
As the name implies, this method returns a message if there is at least one available in the Browser's
local buffer; otherwise, it returns null.
Returns true if there is at least one message available in the Browser's local message buffer.
Note: If this method returns false, it does not mean that the queue is empty;
subsequent calls to HasMore
might return true and a IMessage
Remove a message from the appliance queue endpoint that this Browser is bound to, given its IMessage
Remove a message from the appliance queue endpoint that this Browser is bound to, given its ADMessageId