IBM MQ · Schema

IBM MQ Queue

An IBM MQ queue is a named object that stores messages for asynchronous consumption. Queues can be local, alias, remote, model, or cluster types, each serving different messaging patterns.

AsyncEnterpriseIntegrationMessagingMiddlewareQueue

Properties

Name Type Description
name string Name of the queue
type string Type of the queue
description string Description of the queue
maximumDepth integer Maximum number of messages that can be stored on the queue
maximumMessageLength integer Maximum message length in bytes for messages on this queue
inhibitPut boolean Whether put operations are inhibited on this queue
inhibitGet boolean Whether get operations are inhibited on this queue
defaultPersistence string Default persistence for messages put on this queue
defaultPriority integer Default priority for messages put on this queue
backoutThreshold integer Number of times a message can be backed out before being moved
backoutRequeueQueue string Queue to which messages are moved after exceeding the backout threshold
isTransmissionQueue boolean Whether this queue is used as a transmission queue for remote messaging
triggerControl string Whether triggering is enabled for this queue
triggerType string Type of triggering configured for this queue
shareability string Whether the queue can be opened by multiple applications simultaneously
currentDepth integer Current number of messages on the queue
openInputCount integer Number of handles currently open for input (get)
openOutputCount integer Number of handles currently open for output (put)
lastPut string Timestamp of the last message put on the queue
lastGet string Timestamp of the last message retrieved from the queue
alias object
remote object
cluster object
View JSON Schema on GitHub

JSON Schema

ibm-mq-queue-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://www.ibm.com/schemas/ibm-mq/queue.json",
  "title": "IBM MQ Queue",
  "description": "An IBM MQ queue is a named object that stores messages for asynchronous consumption. Queues can be local, alias, remote, model, or cluster types, each serving different messaging patterns.",
  "type": "object",
  "required": ["name", "type"],
  "properties": {
    "name": {
      "type": "string",
      "description": "Name of the queue",
      "minLength": 1,
      "maxLength": 48,
      "pattern": "^[A-Za-z0-9._/%]+$"
    },
    "type": {
      "type": "string",
      "enum": ["local", "alias", "remote", "model", "cluster"],
      "description": "Type of the queue"
    },
    "description": {
      "type": "string",
      "description": "Description of the queue",
      "maxLength": 64
    },
    "maximumDepth": {
      "type": "integer",
      "minimum": 0,
      "maximum": 999999999,
      "description": "Maximum number of messages that can be stored on the queue"
    },
    "maximumMessageLength": {
      "type": "integer",
      "minimum": 0,
      "maximum": 104857600,
      "description": "Maximum message length in bytes for messages on this queue"
    },
    "inhibitPut": {
      "type": "boolean",
      "description": "Whether put operations are inhibited on this queue"
    },
    "inhibitGet": {
      "type": "boolean",
      "description": "Whether get operations are inhibited on this queue"
    },
    "defaultPersistence": {
      "type": "string",
      "enum": ["persistent", "notPersistent"],
      "description": "Default persistence for messages put on this queue"
    },
    "defaultPriority": {
      "type": "integer",
      "minimum": 0,
      "maximum": 9,
      "description": "Default priority for messages put on this queue"
    },
    "backoutThreshold": {
      "type": "integer",
      "minimum": 0,
      "description": "Number of times a message can be backed out before being moved"
    },
    "backoutRequeueQueue": {
      "type": "string",
      "description": "Queue to which messages are moved after exceeding the backout threshold",
      "maxLength": 48
    },
    "isTransmissionQueue": {
      "type": "boolean",
      "description": "Whether this queue is used as a transmission queue for remote messaging"
    },
    "triggerControl": {
      "type": "string",
      "enum": ["on", "off"],
      "description": "Whether triggering is enabled for this queue"
    },
    "triggerType": {
      "type": "string",
      "enum": ["none", "first", "every", "depth"],
      "description": "Type of triggering configured for this queue"
    },
    "shareability": {
      "type": "string",
      "enum": ["shareable", "notShareable"],
      "description": "Whether the queue can be opened by multiple applications simultaneously"
    },
    "currentDepth": {
      "type": "integer",
      "minimum": 0,
      "description": "Current number of messages on the queue"
    },
    "openInputCount": {
      "type": "integer",
      "minimum": 0,
      "description": "Number of handles currently open for input (get)"
    },
    "openOutputCount": {
      "type": "integer",
      "minimum": 0,
      "description": "Number of handles currently open for output (put)"
    },
    "lastPut": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp of the last message put on the queue"
    },
    "lastGet": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp of the last message retrieved from the queue"
    },
    "alias": {
      "$ref": "#/$defs/AliasProperties"
    },
    "remote": {
      "$ref": "#/$defs/RemoteProperties"
    },
    "cluster": {
      "$ref": "#/$defs/ClusterProperties"
    }
  },
  "$defs": {
    "AliasProperties": {
      "type": "object",
      "description": "Properties specific to alias queues",
      "properties": {
        "baseQueueName": {
          "type": "string",
          "description": "Name of the base queue or topic that this alias resolves to"
        },
        "baseType": {
          "type": "string",
          "enum": ["queue", "topic"],
          "description": "Whether the alias resolves to a queue or topic"
        }
      }
    },
    "RemoteProperties": {
      "type": "object",
      "description": "Properties specific to remote queue definitions",
      "properties": {
        "remoteQueueName": {
          "type": "string",
          "description": "Name of the queue on the remote queue manager"
        },
        "remoteQueueManager": {
          "type": "string",
          "description": "Name of the remote queue manager"
        },
        "transmissionQueue": {
          "type": "string",
          "description": "Name of the transmission queue to use"
        }
      }
    },
    "ClusterProperties": {
      "type": "object",
      "description": "Properties specific to cluster queues",
      "properties": {
        "clusterName": {
          "type": "string",
          "description": "Name of the cluster this queue belongs to"
        },
        "clusterNamelist": {
          "type": "string",
          "description": "Name of the namelist of clusters this queue belongs to"
        },
        "defaultBind": {
          "type": "string",
          "enum": ["onOpen", "notFixed", "onGroup"],
          "description": "Default binding for cluster queue"
        }
      }
    }
  }
}