Overview
This page is an attempt to collect in a single place all the extensions that have been made (thorough the use of arguments/options/tec.) to AMQP across the Qpid Java and C++ Brokers.
Ultimately the aim is to try to get both brokers implementing as much common functionality as possible through common extensions - and to advertise which extensions are available in a common way, so that clients can take advantage of functions that are present (or work around functions that are not).
Connection
Connection.Start
Options are carried in the server-properties field
Name | C++ | Java | Description |
---|---|---|---|
qpid.federation_tag | Y | Y |
|
Connection.Start-Ok
Options are carried in the client-properties field
Name | C++ | Java | Description |
---|---|---|---|
qpid.client_pid | Y | N | Allows the process id of a client to be reported by mgmt tools |
qpid.client_ppid | Y | N | Allows the parent process id of a client to be reported by mgmt tools |
qpid.client_process | Y | N | Allows the process name of a client to be reported by mgmt tools |
Session
???
Exchange
Exchange.Declare
Name | C++ | Java | Description |
---|---|---|---|
qpid.ive | Y | N | Specifies 'initial value exchange' behaviour is desired |
qpid.msg_sequence | Y | N | Requests that the exchange sequences all messages routed through it and adds the sequence number to the message headers |
Binding
Exchange.Bind
Options are carried in the arguments field
Name | C++ | Java | Description |
---|---|---|---|
qpid.fed.origin | Y | Y |
|
x-filter-jms-selector | N | Y* | (Java Broker topic exchange only currently) add a JMS Selector to the binding to filter messages against an SQL style query |
Queue
Queue.Declare
Options are carried in the arguments field
Name | C++ | Java | Description |
---|---|---|---|
no-local | Y | N | Specifies that the queue should discard any messages enqueued by sessions on the same connection as that which declares the queue |
qpid.policy_type | Y | N | Valid values "reject", "flow_to_disk", "ring", "ring_strict" |
qpid.max_size | Y | N | Defines the maximum number of messages that a queue can contain before the action dictated by the policy_type is taken. |
qpid.max_count | Y | N | Defines the maximum size of message data (in bytes) that a queue can contain before the action dictated by the policy_type is taken. |
qpid.file_count | Y | N | This is really a property of a particular store implementation (sets the number of files to use for the queue's 'journal') |
qpid.file_size | Y | N | This is really a property of a particular store implementation (sets the size of the files to use for the queue's 'journal') |
qpid.last_value_queue | Y | N | Enables last value queue behaviour |
qpid.last_value_queue_no_browse | Y | N | Enables special mode for last value queue behaviour (see QPID-2104) |
qpid.msg_sequence | Y | N | Causes a sequence number to be added to headers of enqueued messages |
qpid.queue_event_generation | Y | N | Causes an event to be generated for enqueues and dequeues, currently used for asynchronous state replication |
qpid.trace.id | Y | Y | Adds the given trace id as to the application header "x-qpid.trace" in messages sent from the queue |
qpid.trace.excludes | Y | Y | Does not send on messages which include one of the given (comma separated) trace ids |
x-qpid-priorities | Y | Y | Defines the number of distinct priority levels supported by the queue |
x-qpid-maximum-message-age | N | Y | Specifies that if the oldest message on the queue gets above this age then alerts should be sent |
x-qpid-maximum-message-size | Y | Y | Specifies that if the queue gets above this size (in bytes) an alert should be sent |
x-qpid-maximum-message-count | Y | Y | Specified that if the queue gets above this size (in message count) an alert should be sent |
x-qpid-minimum-alert-repeat-gap | Y | Y | Specified the minimum time gap between consecutive alerts |
x-qpid-capacity | N Y | Defines the size of the queue in bytes at which flow control on producers will be brought into affect | |
x-qpid-flow-resume-capacity | N | Y | Defines the size on bytes of the queue when flow control will be rescinded |
qpid.flow_stop_count | Y | N | Defines the queue depth in messages at which flow control of producer will come into affect |
qpid.flow_resume_count | Y | N | Defines the queue depth in messages at which inflow from producers will no longer be restricted |
qpid.flow_stop_size | Y | N | Defines the queue depth in bytes at which flow control of producer will come into affect |
qpid.flow_resume_size | Y | N | Defines the queue depth in bytes at which inflow from producers will no longer be restricted |
qpid.alert_size | Y | N | Specifies that if the queue gets above this size (in bytes) an alert should be sent (alias for x-qpid-maximum-message-size) |
qpid.alert_count | Y | N | Specified that if the queue gets above this size (in message count) an alert should be sent (alias for x-qpid-maximum-message-count) |
qpid.alert_repeat_gap | Y | N | Specified the minimum time gap between consecutive alerts (alias for x-qpid-minimum-alert-repeat-gap) |
Subscription
Message.Subscribe (Basic.Consume in 0-8/0-9)
Name | C++ | Java | Description |
---|---|---|---|
x-filter-jms-selector | N | Y | add a JMS Selector to the subscription to filter messages against an SQL style query |
x-filter-no-consume | N | Y | (0-8/0-9 only) Implements browsing for 0-8/0-9 - messages sent on the subscription are not acquired |
x-filter-auto-close | N | Y | (0-8/0-9 only) The server closes the subscription when the queue becomes empty |