Class AMQPFederationConstants

java.lang.Object
org.apache.activemq.artemis.protocol.amqp.connect.federation.AMQPFederationConstants

public final class AMQPFederationConstants extends Object
Constants class for values used in the AMQP Federation implementation.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
    Indicates that the message carries a federation address match policy that should be added to the remote for reverse federation of matching queue from the remote peer.
    static final String
    Indicates that the message carries a federation queue match policy that should be added to the remote for reverse federation of matching queue from the remote peer.
    static final String
    Encodes a boolean value that indicates if queue auto delete option should be enabled.
    static final String
    Encodes a signed long value that controls the delay before auto deletion if auto delete is enabled.
    static final String
    Encodes a signed long value that controls the message count value that allows for address auto delete.
    static final String
    Encodes boolean value that controls if the address federation should include divert bindings.
    static final String
    Address policy excludes are encoded as a List of string entries when configured.
    static final String
    Address policy includes are encoded as a List of string entries when configured.
    static final String
    Encodes a signed integer value that controls the maximum number of hops allowed for federated messages.
    static final String
    When a federation address receiver link has been successfully drained after demand was removed from the federated resource, this value controls how long the link can remain in an attached but idle state before it is closed.
    static final org.apache.qpid.proton.amqp.Symbol
    Events sent across the events link will each carry an event type to indicate the event type which controls how the remote reacts to the given event.
    static final org.apache.qpid.proton.amqp.Symbol
    A desired capability added to the federation address receiver link that must be offered in return for a federation address receiver to be successfully opened.
    static final String
    Address used by a remote broker instance to validate that an incoming federation connection has access rights to perform federation operations.
    static final org.apache.qpid.proton.amqp.Symbol
    Property name used to embed a nested map of properties meant to be applied if the federation resources created on the remote end of the control link if configured to do so.
    static final org.apache.qpid.proton.amqp.Symbol
    A desired capability added to the federation control link that must be offered in return for a federation connection to be successfully established.
    static final String
    The prefix value added when creating a federation control link beyond the initial portion of the validation address prefix.
    static final org.apache.qpid.proton.amqp.Symbol
    A desired capability added to the federation events links that must be offered in return for a federation event link to be successfully established.
    static final String
    The prefix value added when creating a federation events links beyond the initial portion of the validation address prefix.
    static final org.apache.qpid.proton.amqp.Symbol
    Property name used to carry the name of the federation that triggered creation of the remote connection.
    static final org.apache.qpid.proton.amqp.Symbol
    Property name used to carry the name of the federation policy that triggered creation of the remote resource.
    static final org.apache.qpid.proton.amqp.Symbol
    A desired capability added to the federation queue receiver link that must be offered in return for a federation queue receiver to be successfully opened.
    static final org.apache.qpid.proton.amqp.Symbol
    Property added to the receiver properties when opening an AMQP federation address or queue consumer that indicates the consumer priority that should be used when creating the remote consumer.
    static final int
    Default AMQP federation version used when the version is not set on the control link as that would indicate all versions prior to the addition of versions being added on the control link.
    static final int
    Version 2 marker for AMQP federation control links.
    static final org.apache.qpid.proton.amqp.Symbol
    Property added on the AMQP federation control link that carries a version associated with the side of the link the attach frame that carries it came from.
    static final String
    Configuration property used to convey the local side value to use when considering if federation address consumers should filter using the filters defined on individual bindings, this can be sent to the peer so that dual federation configurations share the same configuration on both sides of the connection.
    static final String
    Configuration property used to convey the local side value to use when considering if federation queue consumers should filter using the filters defined on individual queue subscriptions, this can be sent to the peer so that dual federation configurations share the same configuration on both sides of the connection.
    static final String
    Configuration property used to convey the local side value to use when considering if federation queue consumers should apply a consumer priority offset based on the subscription priority or should use a singular priority offset based on policy configuration.
    static final String
    Configuration property used to convey the local side value to use when considering if a message is a large message, this can be sent to the peer so that dual federation configurations share the same configuration on both sides of the connection.
    static final String
    Property value that can be applied to federation configuration that controls the timeout value for a link attach to complete before the attach attempt is considered to have failed.
    static final org.apache.qpid.proton.amqp.Symbol
    Commands sent across the control link will each carry an operation type to indicate the desired action the remote should take upon receipt of the command.
    static final String
    Both Queue and Address policies carry a unique name that will always be encoded.
    static final String
    Encodes a Map of String keys and values that are carried along in the federation policy (address or queue).
    static final String
    Configuration property that defines the amount of credits to batch to an AMQP receiver link and the top up value when sending more credit once the broker has capacity available for them. this can be sent to the peer so that dual federation configurations share the same configuration on both sides of the connection.
    static final String
    Queue policy excludes are encoded as a List of flattened key / value pairs when configured.
    static final String
    Encodes a boolean value that indicates if the include federation option should be enabled.
    static final String
    Queue policy includes are encoded as a List of flattened key / value pairs when configured.
    static final String
    Encodes a signed integer value that adjusts the priority of the any created queue receivers.
    static final String
    When a federation queue receiver link has been successfully drained after demand was removed from the federated resource, this value controls how long the link can remain in an attached but idle state before it is closed.
    static final String
    Configuration property that defines the amount of credits to batch to an AMQP receiver link and the top up limit when sending more credit once the credits are determined to be running low. this can be sent to the peer so that dual federation configurations share the same configuration on both sides of the connection.
    static final String
    A low water mark for receiver credits that indicates more should be sent to top it up to the original credit batch size. this can be sent to the peer so that dual federation configurations share the same configuration on both sides of the connection.
    static final String
    Configuration property that defines if a federation receiver should drain the link credit when a transient delivery error such as the address being full occurs.
    static final String
    Configuration property that defines the time in milliseconds that a receiver will wait before considering a pending quiesce timeout to have failed and should close the link.
    static final String
    When a federation receiver link is being drained due to removal of local demand this timeout value enforces a maximum wait for drain and processing of in-flight messages before the link is forcibly terminated with the assumption that the remote is no longer responding.
    static final String
    Indicates that the message carries an address name that was previously requested but did not exist, or that was federated but the remote consumer was closed due to removal of the address on the target peer.
    static final String
    Carries the name of an Address that was either not present when a federation consumer was initiated and subsequently rejected, or was removed and has been recreated.
    static final String
    Indicates that the message carries an address and queue name that was previously requested but did not exist, or that was federated but the remote consumer was closed due to removal of the queue on the target peer.
    static final String
    Carries the name of a Queue that was either not present when a federation consumer was initiated and subsequently rejected, or was removed and has been recreated.
    static final String
    Encodes a string value carrying the name of the Transformer class to use.
    static final String
    Encodes a Map of String keys and values that are applied to the transformer configuration for the policy.
    static final String
    Configuration property for how a federation receiver should respond to delivery errors indicating that an address is full and cannot accept messages at this time.
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • FEDERATION_VERSION

      public static final org.apache.qpid.proton.amqp.Symbol FEDERATION_VERSION
      Property added on the AMQP federation control link that carries a version associated with the side of the link the attach frame that carries it came from. A control link will provide two versions to the AMQP federation instance, the local side and the remote side once the link has fully opened.
    • FEDERATION_V1

      public static final int FEDERATION_V1
      Default AMQP federation version used when the version is not set on the control link as that would indicate all versions prior to the addition of versions being added on the control link.
      See Also:
    • FEDERATION_V2

      public static final int FEDERATION_V2
      Version 2 marker for AMQP federation control links. Version 2.0 bump primarily adjusts the address federation link names to avoid potential link stealing when demand is quickly added and removed and as a result the AMQP source address value uses an FQQN that provides a stable address and queue binding name for the remote federation subscription which is recoverable on reconnects or on broker restart.

      Also in this version AMQP federation queue consumers that are included in federation demand tracking are forwarded to the remote with their original priority values to avoid a case of infinite decreasing priority loops that can occur in some configurations.

      See Also:
    • FEDERATION_BASE_VALIDATION_ADDRESS

      public static final String FEDERATION_BASE_VALIDATION_ADDRESS
      Address used by a remote broker instance to validate that an incoming federation connection has access rights to perform federation operations. The user that connects to the AMQP federation endpoint and attempts to create the control link must have write access to this address and any address prefixed by this value.

      When securing a federation user account the user must have read and write permissions to addresses under this prefix using the broker defined delimiter, this include the ability to create non-durable resources.

         $ACTIVEMQ_ARTEMIS_FEDERATION.#;
      
      See Also:
    • FEDERATION_CONFIGURATION

      public static final org.apache.qpid.proton.amqp.Symbol FEDERATION_CONFIGURATION
      Property name used to embed a nested map of properties meant to be applied if the federation resources created on the remote end of the control link if configured to do so. These properties essentially carry local configuration to the remote side that would otherwise use broker defaults and not match behaviors of resources created on the local side of the connection.
    • RECEIVER_CREDITS

      public static final String RECEIVER_CREDITS
      Configuration property that defines the amount of credits to batch to an AMQP receiver link and the top up limit when sending more credit once the credits are determined to be running low. this can be sent to the peer so that dual federation configurations share the same configuration on both sides of the connection.
      See Also:
    • RECEIVER_CREDITS_LOW

      public static final String RECEIVER_CREDITS_LOW
      A low water mark for receiver credits that indicates more should be sent to top it up to the original credit batch size. this can be sent to the peer so that dual federation configurations share the same configuration on both sides of the connection.
      See Also:
    • PULL_RECEIVER_BATCH_SIZE

      public static final String PULL_RECEIVER_BATCH_SIZE
      Configuration property that defines the amount of credits to batch to an AMQP receiver link and the top up value when sending more credit once the broker has capacity available for them. this can be sent to the peer so that dual federation configurations share the same configuration on both sides of the connection.
      See Also:
    • LARGE_MESSAGE_THRESHOLD

      public static final String LARGE_MESSAGE_THRESHOLD
      Configuration property used to convey the local side value to use when considering if a message is a large message, this can be sent to the peer so that dual federation configurations share the same configuration on both sides of the connection.
      See Also:
    • IGNORE_ADDRESS_BINDING_FILTERS

      public static final String IGNORE_ADDRESS_BINDING_FILTERS
      Configuration property used to convey the local side value to use when considering if federation address consumers should filter using the filters defined on individual bindings, this can be sent to the peer so that dual federation configurations share the same configuration on both sides of the connection. This value can be used to reduce the amount of messages that are federated for an address if the local consumers use filters but must be enabled with care as it can easily lead to duplicate messages being dispatched from the remote as each unique address binding filter creates a remote consumer with that matching filter. If any filters overlap in the messages they allow to pass or there are bindings without a filter then the remote will be sending the same message to multiple federation consumers in order to provide each group of bindings with their matching messages.
      See Also:
    • IGNORE_QUEUE_CONSUMER_FILTERS

      public static final String IGNORE_QUEUE_CONSUMER_FILTERS
      Configuration property used to convey the local side value to use when considering if federation queue consumers should filter using the filters defined on individual queue subscriptions, this can be sent to the peer so that dual federation configurations share the same configuration on both sides of the connection. This can be used to prevent multiple subscriptions on the same queue based on local demand with differing subscription filters but does imply that message that don't match those filters would be federated to the local broker.
      See Also:
    • IGNORE_QUEUE_CONSUMER_PRIORITIES

      public static final String IGNORE_QUEUE_CONSUMER_PRIORITIES
      Configuration property used to convey the local side value to use when considering if federation queue consumers should apply a consumer priority offset based on the subscription priority or should use a singular priority offset based on policy configuration. This can be sent to the peer so that dual federation configurations share the same configuration on both sides of the connection. This can be used to prevent multiple subscriptions on the same queue based on local demand with differing consumer priorities but does imply that care needs to be taken to ensure remote consumers would normally have a higher priority value than the configured default priority offset.
      See Also:
    • USE_MODIFIED_FOR_TRANSIENT_DELIVERY_ERRORS

      public static final String USE_MODIFIED_FOR_TRANSIENT_DELIVERY_ERRORS
      Configuration property for how a federation receiver should respond to delivery errors indicating that an address is full and cannot accept messages at this time. By default we want to send Modified outcomes with the delivery failed value set to true such that the remote will deliver the message again after incrementing the delivery count of the message.
      See Also:
    • RECEIVER_DRAIN_ON_TRANSIENT_DELIVERY_ERRORS

      public static final String RECEIVER_DRAIN_ON_TRANSIENT_DELIVERY_ERRORS
      Configuration property that defines if a federation receiver should drain the link credit when a transient delivery error such as the address being full occurs. This configuration can be sent to the remote peer so that dual federation configurations share the same configuration on both sides of the connection. This option can be used to override the value specified on the connector URI to allow federation to operate with a different default.
      See Also:
    • FEDERATION_QUEUE_RECEIVER

      public static final org.apache.qpid.proton.amqp.Symbol FEDERATION_QUEUE_RECEIVER
      A desired capability added to the federation queue receiver link that must be offered in return for a federation queue receiver to be successfully opened. On the remote the presence of this capability indicates that the matching queue should be present on the remote and its absence constitutes a failure that should result in the attach request being failed.
    • FEDERATION_ADDRESS_RECEIVER

      public static final org.apache.qpid.proton.amqp.Symbol FEDERATION_ADDRESS_RECEIVER
      A desired capability added to the federation address receiver link that must be offered in return for a federation address receiver to be successfully opened.
    • FEDERATION_RECEIVER_PRIORITY

      public static final org.apache.qpid.proton.amqp.Symbol FEDERATION_RECEIVER_PRIORITY
      Property added to the receiver properties when opening an AMQP federation address or queue consumer that indicates the consumer priority that should be used when creating the remote consumer. The value assign to the properties Map is a signed integer value.
    • OPERATION_TYPE

      public static final org.apache.qpid.proton.amqp.Symbol OPERATION_TYPE
      Commands sent across the control link will each carry an operation type to indicate the desired action the remote should take upon receipt of the command. The type of command infers the payload of the structure of the message payload.
    • ADD_QUEUE_POLICY

      public static final String ADD_QUEUE_POLICY
      Indicates that the message carries a federation queue match policy that should be added to the remote for reverse federation of matching queue from the remote peer.
      See Also:
    • ADD_ADDRESS_POLICY

      public static final String ADD_ADDRESS_POLICY
      Indicates that the message carries a federation address match policy that should be added to the remote for reverse federation of matching queue from the remote peer.
      See Also:
    • POLICY_NAME

      public static final String POLICY_NAME
      Both Queue and Address policies carry a unique name that will always be encoded.
      See Also:
    • QUEUE_INCLUDES

      public static final String QUEUE_INCLUDES
      Queue policy includes are encoded as a List of flattened key / value pairs when configured.
      See Also:
    • QUEUE_EXCLUDES

      public static final String QUEUE_EXCLUDES
      Queue policy excludes are encoded as a List of flattened key / value pairs when configured.
      See Also:
    • QUEUE_INCLUDE_FEDERATED

      public static final String QUEUE_INCLUDE_FEDERATED
      Encodes a boolean value that indicates if the include federation option should be enabled.
      See Also:
    • QUEUE_PRIORITY_ADJUSTMENT

      public static final String QUEUE_PRIORITY_ADJUSTMENT
      Encodes a signed integer value that adjusts the priority of the any created queue receivers.
      See Also:
    • ADDRESS_INCLUDES

      public static final String ADDRESS_INCLUDES
      Address policy includes are encoded as a List of string entries when configured.
      See Also:
    • ADDRESS_EXCLUDES

      public static final String ADDRESS_EXCLUDES
      Address policy excludes are encoded as a List of string entries when configured.
      See Also:
    • ADDRESS_AUTO_DELETE

      public static final String ADDRESS_AUTO_DELETE
      Encodes a boolean value that indicates if queue auto delete option should be enabled.
      See Also:
    • ADDRESS_AUTO_DELETE_DELAY

      public static final String ADDRESS_AUTO_DELETE_DELAY
      Encodes a signed long value that controls the delay before auto deletion if auto delete is enabled.
      See Also:
    • ADDRESS_AUTO_DELETE_MSG_COUNT

      public static final String ADDRESS_AUTO_DELETE_MSG_COUNT
      Encodes a signed long value that controls the message count value that allows for address auto delete.
      See Also:
    • ADDRESS_MAX_HOPS

      public static final String ADDRESS_MAX_HOPS
      Encodes a signed integer value that controls the maximum number of hops allowed for federated messages.
      See Also:
    • ADDRESS_ENABLE_DIVERT_BINDINGS

      public static final String ADDRESS_ENABLE_DIVERT_BINDINGS
      Encodes boolean value that controls if the address federation should include divert bindings.
      See Also:
    • POLICY_PROPERTIES_MAP

      public static final String POLICY_PROPERTIES_MAP
      Encodes a Map of String keys and values that are carried along in the federation policy (address or queue). These values can be used to add extended configuration to the policy object such as overriding settings from the connection URI.
      See Also:
    • TRANSFORMER_CLASS_NAME

      public static final String TRANSFORMER_CLASS_NAME
      Encodes a string value carrying the name of the Transformer class to use.
      See Also:
    • TRANSFORMER_PROPERTIES_MAP

      public static final String TRANSFORMER_PROPERTIES_MAP
      Encodes a Map of String keys and values that are applied to the transformer configuration for the policy.
      See Also:
    • EVENT_TYPE

      public static final org.apache.qpid.proton.amqp.Symbol EVENT_TYPE
      Events sent across the events link will each carry an event type to indicate the event type which controls how the remote reacts to the given event. The type of event infers the payload of the structure of the message payload.
    • REQUESTED_QUEUE_ADDED

      public static final String REQUESTED_QUEUE_ADDED
      Indicates that the message carries an address and queue name that was previously requested but did not exist, or that was federated but the remote consumer was closed due to removal of the queue on the target peer.
      See Also:
    • REQUESTED_ADDRESS_ADDED

      public static final String REQUESTED_ADDRESS_ADDED
      Indicates that the message carries an address name that was previously requested but did not exist, or that was federated but the remote consumer was closed due to removal of the address on the target peer.
      See Also:
    • REQUESTED_QUEUE_NAME

      public static final String REQUESTED_QUEUE_NAME
      Carries the name of a Queue that was either not present when a federation consumer was initiated and subsequently rejected, or was removed and has been recreated.
      See Also:
    • REQUESTED_ADDRESS_NAME

      public static final String REQUESTED_ADDRESS_NAME
      Carries the name of an Address that was either not present when a federation consumer was initiated and subsequently rejected, or was removed and has been recreated.
      See Also:
    • RECEIVER_QUIESCE_TIMEOUT

      public static final String RECEIVER_QUIESCE_TIMEOUT
      When a federation receiver link is being drained due to removal of local demand this timeout value enforces a maximum wait for drain and processing of in-flight messages before the link is forcibly terminated with the assumption that the remote is no longer responding.
      See Also:
    • ADDRESS_RECEIVER_IDLE_TIMEOUT

      public static final String ADDRESS_RECEIVER_IDLE_TIMEOUT
      When a federation address receiver link has been successfully drained after demand was removed from the federated resource, this value controls how long the link can remain in an attached but idle state before it is closed.
      See Also:
    • QUEUE_RECEIVER_IDLE_TIMEOUT

      public static final String QUEUE_RECEIVER_IDLE_TIMEOUT
      When a federation queue receiver link has been successfully drained after demand was removed from the federated resource, this value controls how long the link can remain in an attached but idle state before it is closed.
      See Also:
    • FEDERATION_NAME

      public static final org.apache.qpid.proton.amqp.Symbol FEDERATION_NAME
      Property name used to carry the name of the federation that triggered creation of the remote connection. This value is intended to be added to AMQP control link properties to provide the remote peer with the name of the federation that triggered the creation of the control link and allow for lookup of metrics or other data associated with a remote federation targets.
    • FEDERATION_POLICY_NAME

      public static final org.apache.qpid.proton.amqp.Symbol FEDERATION_POLICY_NAME
      Property name used to carry the name of the federation policy that triggered creation of the remote resource. This value is intended to be added to AMQP link properties to provide the remote peer with the name of the federation policy that triggered the creation of the link and allow for lookup of metrics or other data associated with a remote policy as links or connections are torn down and re-estabilished.
  • Constructor Details

    • AMQPFederationConstants

      public AMQPFederationConstants()