SwiftMQ has different types of queues. In general, the distinction is between regular queues and system queues. Regular queues are point-to-point queues which are configured via the Queue Manager Swiftlet configuration and are available via JNDI. System queues are everything else and not available through JNDI. Due to a "$" sign in their queue name, these queues are not accessible from JMS clients and therefore invisible for them (except temporary queues).
While regular queues are directly configurable concerning their attributes (cache size etc), system queues are under control of so-called "Queue Controllers". See the "Queue Controller" documentation.
The following table lists the different system queue types:
| Queue Name | Description |
|---|---|
| <clientid>$<durablename> | A durable subscriber queue for client id <clientid> and durable name <durablename>. Created from the Topic Manager Swiftlet. |
| rt$<routername> | Routing queue for router <routername>. Created from the Routing Swiftlet. |
| sys$<name> | A system queue, e.g. "sys$topic", "sys$scheduler", created from Kernel Swiftlets for internal processing. |
| tmp$<number> | A temporary queue with an assigned sequential number during creation. A temporary queue might be created from JMS clients but acts also as queue for non-durable subscribers. |
| tpc$<roottopic> | A virtual topic queue for a <roottopic> of a hierarchy. Such a queue is registered from the Topic Manager Swiftlet for each topic hierarchy and is used to perform queue transactions on the root topic. The queue is virtual and actually a topic broker which is responsible to pass the queue transaction to all selected subscribers on that topic. |