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$amqp

  • Swiftlet: sys_amqp
  • Purpose: System queue used internally by the AMQP swiftlet for channel and source link management.
  • Persistent: No

tmp$

  • Swiftlet: sys_queuemanager
  • Purpose: Prefix for temporary queues used for request-reply and temporary destinations. Actual queues are named tmp$-.
  • Persistent: No

tmp$<sequence>-<startuptime>

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

sys$mqtt_sessionstore

  • Swiftlet: sys_mqtt
  • Purpose: System queue for storing MQTT session state.
  • 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 to any destination.
  • Persistent: Yes

rt$<destination-router>

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

swiftmqmgmt

  • Swiftlet: sys_mgmt
  • Purpose: Queue used by the management swiftlet for management messages.
  • Persistent: Yes

sys$scheduler

  • Swiftlet: sys_scheduler
  • Purpose: Internal system queue for scheduling tasks.
  • Persistent: No

swiftmqscheduler

  • Swiftlet: sys_scheduler
  • Purpose: Queue for the scheduler swiftlet to manage scheduled jobs.
  • Persistent: Yes

sys$prepared

  • Swiftlet: sys_store
  • Purpose: Queue for storing prepared transactions in the store swiftlet.
  • Persistent: Yes

streamlib

  • Swiftlet: sys_streams
  • Purpose: Queue used by the streams swiftlet for stream library deployment.
  • Persistent: Yes

sys$topic

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

sys$xa_heuristic

  • Swiftlet: sys_xa
  • Purpose: System queue for storing heuristic transaction outcomes in XA transactions.
  • Persistent: Yes

clientId$durableName

  • Swiftlet: sys_jms
  • Purpose: Queue for durable JMS subscriptions, named by client ID and durable subscription name.
  • Persistent: Yes

tpc$<roottopic>

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

Queue Naming Conventions

System queues are identified by the $ character in their names. Prefixes such as sys$ indicate system management queues, tmp$ denotes temporary queues (with names like tmp$-), rt$ is used for routing queues to remote routers (rt$), tpc$ is used for topic processing (tpc$), and clientId$durableName is used for durable subscription queues. The unroutable queue is a single queue for undeliverable messages. JMS_SWIFTMQ_MGMT_REPLY_QUEUE is not a queue but a JMS message property name.