## Attributes (5)

- group-timeout - How long a group binding will be used, -1 means for ever. Bindings are removed after this wait elapses (valid for both LOCAL and REMOTE handlers).

  Type | LONG
  Default Value | -1
  Unit | MILLISECONDS
  Is the attribute nillable? | true
  Does the attribute allow expression? | true
  Where is the attribute stored? | configuration
  Access Type | read-write
  Is restarted required? | all-services
  Stability Level | default
  Raw DMR model |
      {
          "type" : {
              "TYPE_MODEL_VALUE" : "LONG"
          },
          "description" : "How long a group binding will be used, -1 means for ever. Bindings are removed after this wait elapses (valid for both LOCAL and REMOTE handlers).",
          "expressions-allowed" : true,
          "required" : false,
          "nillable" : true,
          "default" : -1,
          "unit" : "MILLISECONDS",
          "stability" : "default",
          "access-type" : "read-write",
          "storage" : "configuration",
          "restart-required" : "all-services",
          "capability-reference" : null
      }

- grouping-handler-address - A reference to a cluster connection and the address it uses.

  Type | STRING
  Does the attribute allow expression? | true
  Where is the attribute stored? | configuration
  Access Type | read-write
  Is restarted required? | all-services
  Stability Level | default
  Raw DMR model |
      {
          "type" : {
              "TYPE_MODEL_VALUE" : "STRING"
          },
          "description" : "A reference to a cluster connection and the address it uses.",
          "expressions-allowed" : true,
          "required" : true,
          "nillable" : false,
          "min-length" : 1,
          "max-length" : 2147483647,
          "stability" : "default",
          "access-type" : "read-write",
          "storage" : "configuration",
          "restart-required" : "all-services",
          "capability-reference" : null
      }

- reaper-period - How often the reaper will be run to check for timed out group bindings (only valid for LOCAL handlers).

  Type | LONG
  Default Value | 30000
  Unit | MILLISECONDS
  Is the attribute nillable? | true
  Does the attribute allow expression? | true
  Where is the attribute stored? | configuration
  Access Type | read-write
  Is restarted required? | all-services
  Stability Level | default
  Raw DMR model |
      {
          "type" : {
              "TYPE_MODEL_VALUE" : "LONG"
          },
          "description" : "How often the reaper will be run to check for timed out group bindings (only valid for LOCAL handlers).",
          "expressions-allowed" : true,
          "required" : false,
          "nillable" : true,
          "default" : 30000,
          "unit" : "MILLISECONDS",
          "stability" : "default",
          "access-type" : "read-write",
          "storage" : "configuration",
          "restart-required" : "all-services",
          "capability-reference" : null
      }

- timeout - How long to wait for a handling decision to be made; an exception will be thrown during the send if this timeout is reached, ensuring that strict ordering is kept.

  Type | LONG
  Default Value | 5000
  Unit | MILLISECONDS
  Is the attribute nillable? | true
  Does the attribute allow expression? | true
  Where is the attribute stored? | configuration
  Access Type | read-write
  Is restarted required? | all-services
  Stability Level | default
  Raw DMR model |
      {
          "type" : {
              "TYPE_MODEL_VALUE" : "LONG"
          },
          "description" : "How long to wait for a handling decision to be made; an exception will be thrown during the send if this timeout is reached, ensuring that strict ordering is kept.",
          "expressions-allowed" : true,
          "required" : false,
          "nillable" : true,
          "default" : 5000,
          "unit" : "MILLISECONDS",
          "stability" : "default",
          "access-type" : "read-write",
          "storage" : "configuration",
          "restart-required" : "all-services",
          "capability-reference" : null
      }

- type - Whether the handler is the single "Local" handler for the cluster, which makes handling decisions, or a "Remote" handler which converses with the local handler.

  Type | STRING
  Does the attribute allow expression? | true
  Where is the attribute stored? | configuration
  Access Type | read-write
  Is restarted required? | all-services
  Allowed Values | LOCAL REMOTE
  Stability Level | default
  Raw DMR model |
      {
          "type" : {
              "TYPE_MODEL_VALUE" : "STRING"
          },
          "description" : "Whether the handler is the single \"Local\" handler for the cluster, which makes handling decisions, or a \"Remote\" handler which converses with the local handler.",
          "expressions-allowed" : true,
          "required" : true,
          "nillable" : false,
          "allowed" : [
              "LOCAL",
              "REMOTE"
          ],
          "stability" : "default",
          "access-type" : "read-write",
          "storage" : "configuration",
          "restart-required" : "all-services",
          "capability-reference" : null
      }

## Operations (2)

- add - Operation adding the grouping handler. Only one grouping handler is allowed.

  Request Parameter | Type | Required | Expressions Allowed | Default value | Description
  --- | --- | --- | --- | --- | ---
  group-timeout | LONG | false | true | -1 | How long a group binding will be used, -1 means for ever. Bindings are removed after this wait elapses (valid for both LOCAL and REMOTE handlers).
  grouping-handler-address | STRING | true | true |  | A reference to a cluster connection and the address it uses.
  reaper-period | LONG | false | true | 30000 | How often the reaper will be run to check for timed out group bindings (only valid for LOCAL handlers).
  timeout | LONG | false | true | 5000 | How long to wait for a handling decision to be made; an exception will be thrown during the send if this timeout is reached, ensuring that strict ordering is kept.
  type | STRING | true | true |  | Whether the handler is the single "Local" handler for the cluster, which makes handling decisions, or a "Remote" handler which converses with the local handler.

  Raw DMR model |
      {
          "operation-name" : "add",
          "description" : "Operation adding the grouping handler. Only one grouping handler is allowed.",
          "request-properties" : {
              "group-timeout" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "LONG"
                  },
                  "description" : "How long a group binding will be used, -1 means for ever. Bindings are removed after this wait elapses (valid for both LOCAL and REMOTE handlers).",
                  "expressions-allowed" : true,
                  "required" : false,
                  "nillable" : true,
                  "default" : -1,
                  "unit" : "MILLISECONDS",
                  "stability" : "default"
              },
              "grouping-handler-address" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "STRING"
                  },
                  "description" : "A reference to a cluster connection and the address it uses.",
                  "expressions-allowed" : true,
                  "required" : true,
                  "nillable" : false,
                  "min-length" : 1,
                  "max-length" : 2147483647,
                  "stability" : "default"
              },
              "reaper-period" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "LONG"
                  },
                  "description" : "How often the reaper will be run to check for timed out group bindings (only valid for LOCAL handlers).",
                  "expressions-allowed" : true,
                  "required" : false,
                  "nillable" : true,
                  "default" : 30000,
                  "unit" : "MILLISECONDS",
                  "stability" : "default"
              },
              "timeout" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "LONG"
                  },
                  "description" : "How long to wait for a handling decision to be made; an exception will be thrown during the send if this timeout is reached, ensuring that strict ordering is kept.",
                  "expressions-allowed" : true,
                  "required" : false,
                  "nillable" : true,
                  "default" : 5000,
                  "unit" : "MILLISECONDS",
                  "stability" : "default"
              },
              "type" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "STRING"
                  },
                  "description" : "Whether the handler is the single \"Local\" handler for the cluster, which makes handling decisions, or a \"Remote\" handler which converses with the local handler.",
                  "expressions-allowed" : true,
                  "required" : true,
                  "nillable" : false,
                  "allowed" : [
                      "LOCAL",
                      "REMOTE"
                  ],
                  "stability" : "default"
              }
          },
          "reply-properties" : {},
          "stability" : "default",
          "read-only" : false,
          "runtime-only" : false
      }

- remove - Operation removing the grouping handler.

  Raw DMR model |
      {
          "operation-name" : "remove",
          "description" : "Operation removing the grouping handler.",
          "request-properties" : {},
          "reply-properties" : {},
          "stability" : "default",
          "read-only" : false,
          "restart-required" : "resource-services",
          "runtime-only" : false
      }

## Galleon Features

Galleon features are to be used when creating Galleon feature-packs.

- subsystem.messaging-activemq.server.grouping-handler

      <feature spec="subsystem.messaging-activemq.server.grouping-handler">
        <param name="grouping-handler" value="{resource name}"/>
        <param name="server" value="{resource name}"/>
        <param name="group-timeout" value="{value}"/>
        <param name="grouping-handler-address" value="{value}"/>
        <param name="reaper-period" value="{value}"/>
        <param name="timeout" value="{value}"/>
        <param name="type" value="{value}"/>
      <feature/>