Preferences

Preferences can be adjusted using View/Preferences menu.

General tab

Color theme:

Dark or light color theme. Results are immediately visible.

Text size:

Change size of text and everything else in QueueExplorer. Due to limitations in GUI library QueueExplorer uses, new size will be applied only after restart.

Misc tab

Grouping separator

For queues (and other queuing objects) with name aaa.bbb.ccc, we can use grouping functionality to create a tree, so that all items starting with “aaa” go to one branch, etc. This setting allows us to configure separator chars we’ll use to parse to extract these smaller parts of name.

Auto-detect view

QueueExplorer will automatically determine which message previewer should be used each time user changes a queue. It will try to parse message as XML, JSON, etc. In most cases this is convenient but can be slow if messages are large. That’s why this auto-detect can be turned off through this setting.

Reset all warnings

Restores all warning dialogs for which you selected “Don’t show again”.

RabbitMQ

Message count fetching

RabbitMQ offers us two ways to get queue’s message count:

  • Accurate. Unfortunately, this can be slow in certain circumstances but gives us count at that precise moment.
  • Fast. This one is taken from server’s stats, which are generated every 5 seconds by default. So “fast” count can be inaccurate.

QueueExplorer has third mode, “Auto”. We fetch count using Fast mode first, and use Accurate only if count is below 100 messages, since it doesn’t seem to affect performance much for these queues.

Keep connections open

RabbitMQ documentation recommends that we keep connections open and reuse them. Problem with that is we need separate connection for each Virtual host. So if you connect to a RabbitMQ server with many virtual hosts and choose to display all of them, there will be as many open connection all the time.

If you turn this off, QueueExplorer will open and close connections as needed.

Exclusive consumer

When QueueExplorer can lock a queue, i.e. be exclusive consumer, we can use much faster method (BasicConsume). This also prevents situations where both QueueExplorer and another application receive messages at the same time, and QueueExplorer gets only subset of messages, while that other application gets rest of them. Exclusive mode prevents that, but only one consumer can get messages, others will fail while queue is locked.

QueueExplorer “locks” a queue only while messages are read or processed. It’s not locked all the time, i.e. not while they are just displayed.