Skip to content

System Queues

Overview

System queues are internal queues created and used by SwiftMQ Swiftlets for router operations. They are identified by the $ character in their name. System queues should NOT be used by applications directly.

System Queue Reference

sys$queuemanager

  • Swiftlet: sys_queuemanager
  • Purpose: System management queue for the queue manager.
  • Persistent: Yes

tmp$<sequence>-<startuptime>

  • Swiftlet: sys_queuemanager
  • Purpose: Temporary queues for request-reply patterns, using a sequence number and router startup timestamp.
  • Persistent: No

sys$mqtt_sessionstore

  • Swiftlet: sys_mqtt
  • Purpose: Stores MQTT session state for clients.
  • Persistent: Yes

routerdlq

  • Swiftlet: sys_queuemanager
  • Purpose: Dead letter queue for undeliverable messages.
  • Persistent: Yes

unroutable

  • Swiftlet: sys_routing
  • Purpose: Queue for messages that cannot be routed.
  • Persistent: Yes

rt$<destination-router>

  • Swiftlet: sys_routing
  • Purpose: Routing queue for store-and-forward to a specific remote router.
  • Persistent: Yes

sys$prepared

  • Swiftlet: sys_store
  • Purpose: Queue for prepared transaction logs.
  • Persistent: Yes

sys$xa_heuristic

  • Swiftlet: sys_xa
  • Purpose: Queue for storing heuristic outcomes of XA transactions.
  • Persistent: Yes

sys$topic

  • Swiftlet: sys_topicmanager
  • Purpose: System queue for topic management.
  • Persistent: Yes

tpc$<roottopic>

  • Swiftlet: sys_topicmanager
  • Purpose: Virtual queue for topic processing, serializes all subtopics under the same root topic.
  • Persistent: No

clientId$durableName

  • Swiftlet: sys_jms
  • Purpose: Durable subscription queues for JMS clients.
  • Persistent: Yes

sys$scheduler

  • Swiftlet: sys_scheduler
  • Purpose: Internal queue for the scheduler swiftlet.
  • Persistent: Yes

swiftmqscheduler

  • Swiftlet: sys_scheduler
  • Purpose: Queue used by the scheduler swiftlet for scheduling tasks.
  • Persistent: Yes

swiftmqmgmt

  • Swiftlet: sys_mgmt
  • Purpose: Queue for management operations.
  • Persistent: Yes

streamlib

  • Swiftlet: sys_streams
  • Purpose: Queue for stream library deployment and management.
  • Persistent: Yes

Queue Naming Conventions

System queues use the $ character in their names. Prefixes such as sys$ indicate system management queues. tmp$ indicates temporary queues, typically with a sequence and startup timestamp (e.g., tmp$-). tpc$ is used for topic processing, one per root topic. rt$ is used for routing to remote routers. Queues like clientId$durableName are used for durable subscriptions. The unroutable queue is used for messages that cannot be routed and does not have a suffix. JMS_SWIFTMQ_MGMT_REPLY_QUEUE is a JMS message property, not a queue.