Specifying Sources for Message Consumption

In the introduction, Message Consumption, we took a high-level look at how to specify sources for message consumption through non-JMS APIs. In this section, we'll look at the detailed rules for specifying consumption sources:

Rules for Source Specification

As we mentioned in the introduction, Message Consumption, you specify the consumption source in the attach frame.

In the Attach Frame

  • You can set the source capabilities in the attach frame, with role=receiver, from the client with one of the settings in the following table.
  • Source Capabilities Action
    not present Subsequent options will be used to determine the source type; if no other options are set, it defaults to 'queue'.
    queue The client attempts to bind to a durable queue.
    topic

    The client attempts to bind to a topic endpoint.

    If the expiry policy is NEVER, and the terminus-durability is 1 or 2, then the client will bind to a durable topic endpoint. For the other combinations of terminus durability and expiry-policy, the event broker will create a temporary topic endpoint.

    temporary-queue The client attempts to bind to a temporary queue.
    temporary-topic The client attempts to bind to a temporary topic endpoint.

    Setting the source capabilities will override any other setting you make for the prefix of the source address.

  • You can set the prefix of the source address in the attach frame, with role=receiver, from the client with one of the settings in the following table.
  • Source Address Action
    not present Subsequent options will be used to determine the source type; if no other options are set, it defaults to 'queue'.
    unprefixed Subsequent options will be used to determine the source type, if no other options are present it defaults to 'queue'.
    prefixed by queue:// The client attempts to bind to a durable queue. If it's in conflict with specified source capabilities, then the source capabilities value overwrites the prefix value, the prefix is stripped, and a warning is logged to debug.log.
    prefixed by topic://

    The client consumes from a topic endpoint.

    If the expiry policy is NEVER, and the terminus-durability is 1 or 2, then the client will bind to a durable topic endpoint. For the other combinations of terminus durability and expiry-policy, the event broker will create a temporary topic endpoint.

    If it's in conflict with specified source capabilities, then the source capabilities value overwrites the prefix value, the prefix is stripped, and a warning is logged to debug.log.

    prefixed by dsub:// The client attempts to bind to a durable topic endpoint. The DTE name is specified in the link name in the attach frame, and the topic subscription on the DTE is specified in the source address after the dsub:// prefix. If it's in conflict with specified source capabilities, then the source capabilities value overwrites the prefix value, the prefix is stripped, and a warning is logged to debug.log.

Recommendation

Source capabilities is not present and set the desired prefixed source address in the attach frame, with role=receiver.