Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

The proposal is organized as follows.

1. Use cases
2. Design concepts/notes
2 3. Configuration format with examples
3 4. Complete list of options available
4 5. Code patch (attached to JIRA)

Use cases

The following were requested by Qpid users via JIRA's and user list.

  • Arbitrary exchange types (Ex XML exchange).
  • Any kind of queue declare options (Ex. qpid.max-size, alt-exchange)
  • Any kind of queue binding options
  • Ability to support destination specific parameters like
    o msg credits, byte credits
    o sync-publish, sync-ack
    o whether a queue should be created/bound by producer side
  • Bind a queue to multiple exchange/binding key pairs.

Design concepts/notes

  • I have moved away from the previous URL format as it,
    • Does not clearly identify a resource, hence against the concept of a URL
    • It is impossible to fit all information in to a URL

...

  • The new format allows a way to support,
    • Arbitrary exchange types (Ex XML exchange).
    • Any kind of queue declare options (Ex. qpid.max-size, alt-exchange)
    • Any kind of queue binding options
    • Ability to support destination specific parameters like
      • msg credits, byte credits
      • sync-publish, sync-ack
      • whether a queue should be created/bound by producer side
    • Bind a queue to multiple exchange/binding key pairs.

...

Complete list of options

  • xqueue
    • name : name of the queue
    • durable
    • exclusive
    • auto-delete
    • alt-exchange
    • no-local (??)
    • qpid.max_count
    • qpid.max_size
    • qpid.policy_type { reject | flow_to_disk | ring | ring_strict }
    • qpid.last_value_queue {1}
    • qpid.last_value_queue_no_browse {1}
    • qpid.LVQ_key
    • qpid.persist_last_node {1}
    • qpid.queue_event_generation { 0,1,2 } (0 to disable,1 to replicate, only enqueue events)
  • sub.link
    • filter
    • filter-type
    • msg-credits
    • byte-credits
    • sync-ack
    • bindings - format as follows
      No Format
       {exchange-name/bindingkey[/key=value,key=value,...};{....}..] 
  • pub.link
    • filter
    • filterType
    • sync-publish {persistent|all}
    • create-queue (producer side will declare/bind the queue)