# Configuration (/connectors/amqp/reference/configuration)



Field-by-field reference for the 14 settings under `Connectors.Amqp10.*`, their
validation rules, and the equivalent TOML, environment variable, and Docker forms. For
the enable/disable flow and the `DefaultPattern` bare-address fallback, see
[Configuration concepts](../concepts/configuration).

## Configuration fields [#configuration-fields]

All fields live under `[Connectors.Amqp10]`. Defaults are taken verbatim from the server's
`Amqp10Config` struct.

<TypeTable
  type="{
  Enable: {
    description: 'Whether the AMQP 1.0 connector binds a listener. When false, all other validation is skipped and no listener binds.',
    type: 'bool',
    default: 'false',
  },
  Port: {
    description: 'Plain TCP / SASL listener port (0..65535; 0 disables the plain listener). Shared with the AMQP 0-9-1 connector — equal ports are intentionally accepted and the amqpmux dedupes the bind.',
    type: 'int',
    default: '5672',
  },
  TlsPort: {
    description: 'TLS listener port (0..65535; 0 disables TLS). Binds only when the server-global Security block is configured. Shared with AMQP 0-9-1 TLS.',
    type: 'int',
    default: '5671',
  },
  MaxFrameSize: {
    description: 'Maximum AMQP frame size advertised in OPEN, in bytes (>= 512). The effective frame size is min(client, MaxFrameSize).',
    type: 'int',
    default: '131072',
  },
  MaxMessageSize: {
    description: 'Maximum reassembled message size in bytes (> 0). One byte over returns amqp:link:message-size-exceeded. Default is 100 MiB.',
    type: 'int64',
    default: '104857600',
  },
  SessionMax: {
    description: 'Maximum concurrent sessions per connection (1..65535). Advertises channel-max = min(client, SessionMax-1) — 255 with the default.',
    type: 'int',
    default: '256',
  },
  MaxLinksPerSession: {
    description: 'Maximum links per session (>= 1).',
    type: 'int',
    default: '256',
  },
  MaxConnections: {
    description: 'Maximum concurrent connections per node (>= 0; 0 = unlimited). Independent of the AMQP 0-9-1 connector cap.',
    type: 'int',
    default: '1000',
  },
  IdleTimeoutSeconds: {
    description: 'Idle timeout (>= 0; 0 = disabled). Advertises idle-time-out = IdleTimeoutSeconds*1000/2 ms.',
    type: 'int',
    default: '120',
  },
  DefaultPattern: {
    description: 'Pattern used to resolve a bare (prefix-less) address with no JMS capability hint. Exactly one of queues | events | events-store | commands | queries.',
    type: 'string',
    default: 'queues',
  },
  GetBatchSize: {
    description: 'Ceiling on the queue Get MaxItems per long-poll (1..1024).',
    type: 'int',
    default: '32',
  },
  MaxUnsettledPerLink: {
    description: 'Unsettled / pub-sub buffer cap per link (>= 1). Drives the inbound credit the server grants.',
    type: 'int',
    default: '1024',
  },
  DefaultRpcTimeoutSeconds: {
    description: 'Default RPC reply timeout when a request carries no ttl (>= 1).',
    type: 'int',
    default: '30',
  },
  RpcMaxPending: {
    description: 'Maximum pending RPC requests (>= 1). When full, a new request returns amqp:resource-limit-exceeded.',
    type: 'int',
    default: '512',
  },
}"
/>

## Validation rules [#validation-rules]

Validation is &#x2A;*skipped entirely when `Enable` is `false`** — a disabled connector is
always valid regardless of the other fields. When the connector is enabled, the server
rejects an invalid config at startup with these rules:

| Field                      | Rule                                                                                               |
| -------------------------- | -------------------------------------------------------------------------------------------------- |
| `Port` / `TlsPort`         | each in `0..65535`. If **both** are `0`, validation fails — at least one listener must be enabled. |
| `MaxFrameSize`             | `>= 512`                                                                                           |
| `MaxMessageSize`           | `> 0`                                                                                              |
| `SessionMax`               | `1..65535`                                                                                         |
| `MaxLinksPerSession`       | `>= 1`                                                                                             |
| `MaxConnections`           | `>= 0` (`0` = unlimited)                                                                           |
| `IdleTimeoutSeconds`       | `>= 0` (`0` = disabled)                                                                            |
| `DefaultPattern`           | exactly one of `queues`, `events`, `events-store`, `commands`, `queries`                           |
| `GetBatchSize`             | `1..1024`                                                                                          |
| `MaxUnsettledPerLink`      | `>= 1`                                                                                             |
| `DefaultRpcTimeoutSeconds` | `>= 1`                                                                                             |
| `RpcMaxPending`            | `>= 1`                                                                                             |

<Callout type="info">
  `Port` and `TlsPort` are **shared with the RabbitMQ (AMQP 0-9-1) connector**. Setting
  `Port` equal to the 0-9-1 port is intentionally accepted — the validation step does
  **not** cross-check the two, and the `amqpmux` dedupes the bind so both dialects coexist
  on one listener. See [Architecture](/connectors/amqp/concepts/architecture) for the dispatch
  detail. The TLS listener binds only when the server-global `Security` block is configured.
</Callout>

## Configuring the connector [#configuring-the-connector]

The same settings can be supplied through a TOML config file, environment variables, or
`docker run` flags. Each environment variable is derived from its dotted config key by
snake-casing the field, stripping the `.` separators, and upper-casing — so
`Connectors.Amqp10.TlsPort` becomes `CONNECTORS_AMQP10_TLS_PORT`.

<Tabs groupId="config-source" items="['TOML', 'Environment', 'Docker']">
  <Tab value="TOML">
    ```toml title="config.toml"
    [Connectors.Amqp10]
      Enable = true
      Port = 5672
      TlsPort = 5671
      MaxFrameSize = 131072
      MaxMessageSize = 104857600
      SessionMax = 256
      MaxLinksPerSession = 256
      MaxConnections = 1000
      IdleTimeoutSeconds = 120
      DefaultPattern = "queues"
      GetBatchSize = 32
      MaxUnsettledPerLink = 1024
      DefaultRpcTimeoutSeconds = 30
      RpcMaxPending = 512
    ```
  </Tab>

  <Tab value="Environment">
    ```bash title="amqp10.env"
    CONNECTORS_AMQP10_ENABLE=true
    CONNECTORS_AMQP10_PORT=5672
    CONNECTORS_AMQP10_TLS_PORT=5671
    CONNECTORS_AMQP10_MAX_FRAME_SIZE=131072
    CONNECTORS_AMQP10_MAX_MESSAGE_SIZE=104857600
    CONNECTORS_AMQP10_SESSION_MAX=256
    CONNECTORS_AMQP10_MAX_LINKS_PER_SESSION=256
    CONNECTORS_AMQP10_MAX_CONNECTIONS=1000
    CONNECTORS_AMQP10_IDLE_TIMEOUT_SECONDS=120
    CONNECTORS_AMQP10_DEFAULT_PATTERN=queues
    CONNECTORS_AMQP10_GET_BATCH_SIZE=32
    CONNECTORS_AMQP10_MAX_UNSETTLED_PER_LINK=1024
    CONNECTORS_AMQP10_DEFAULT_RPC_TIMEOUT_SECONDS=30
    CONNECTORS_AMQP10_RPC_MAX_PENDING=512
    ```
  </Tab>

  <Tab value="Docker">
    <RunKubeMQ
      ports="[5672, 5671, 50000]"
      env="{
      CONNECTORS_AMQP10_ENABLE: 'true',
      CONNECTORS_AMQP10_MAX_CONNECTIONS: '5000',
      CONNECTORS_AMQP10_DEFAULT_RPC_TIMEOUT_SECONDS: '60',
    }"
    />
  </Tab>
</Tabs>

<Callout type="info">
  The Docker example includes `CONNECTORS_AMQP10_ENABLE=true` — without it the connector stays
  disabled and port 5672 is not bound. Set `CONNECTORS_AMQP10_ENABLE=false` only when you
  want to turn the connector off.
</Callout>

## Related [#related]

<Cards>
  <Card title="Getting Started" href="/connectors/amqp/tutorials/getting-started" description="Connect, send, and receive a message end-to-end through the AMQP 1.0 connector." />

  <Card title="Architecture" href="/connectors/amqp/concepts/architecture" description="The amqpmux front door, port sharing with AMQP 0-9-1, and the connection/session/link model." />

  <Card title="Authentication" href="/connectors/amqp/how-to/authentication" description="SASL PLAIN with a KubeMQ JWT, and SASL EXTERNAL over mTLS." />

  <Card title="TLS and mTLS" href="/connectors/amqp/how-to/tls-and-mtls" description="Enabling TLS on 5671 via the server-global Security block and client-cert mapping." />
</Cards>
