Flow binding acknowledgement status codes


If 0, the peer stops sending content frames. Confirms the setting of the processed flow method: This method indicates that the sender wants to close the channel. This method confirms a Channel. Close method and tells the recipient that it is safe to release resources for the channel. Exchanges match and distribute messages across queues.

Exchanges can be configured in the server or declared at runtime. This method creates an exchange if it does not already exist, and if the exchange exists, verifies that it is of the correct and expected class. Each exchange belongs to one of a set of exchange types implemented by the server. The exchange types define the functionality of the exchange - i.

It is not valid or meaningful to attempt to change the type of an existing exchange. If set, the server will reply with Declare-Ok if the exchange already exists with the same name, and raise an error if not. The client can use this to check whether an exchange exists without modifying the server state. When set, all other method fields except name and no-wait are ignored. A declare with both passive and no-wait has no effect. Arguments are compared for semantic equivalence.

If set when creating a new exchange, the exchange will be marked as durable. Durable exchanges remain active when a server restarts. If set, the exchange may not be used directly by publishers, but only when bound to other exchanges. Internal exchanges are used to construct wiring that is not visible to applications. A set of arguments for the declaration. The syntax and semantics of these arguments depends on the server implementation.

This method confirms a Declare method and confirms the name of the exchange, essential for automatically-named exchanges. This method deletes an exchange.

When an exchange is deleted all queue bindings on the exchange are cancelled. If set, the server will only delete the exchange if it has no queue bindings.

If the exchange has queue bindings the server does not delete it but raises a channel exception instead. Specifies the routing key for the binding. The routing key is used for routing messages depending on the exchange configuration. Not all exchanges use a routing key - refer to the specific exchange documentation.

A set of arguments for the binding. The syntax and semantics of these arguments depends on the exchange class. Queues store and forward messages. Queues can be configured in the server or created at runtime. Queues must be attached to at least one exchange in order to receive messages from publishers. This method creates or checks a queue. When creating a new queue the client can specify various properties that control the durability of the queue and its contents, and the level of sharing for the queue.

If set, the server will reply with Declare-Ok if the queue already exists with the same name, and raise an error if not. The client can use this to check whether a queue exists without modifying the server state.

If set when creating a new queue, the queue will be marked as durable. Durable queues remain active when a server restarts. Note that durable queues do not necessarily hold persistent messages, although it does not make sense to send persistent messages to a transient queue. Exclusive queues may only be accessed by the current connection, and are deleted when that connection closes. Passive declaration of an exclusive queue by other connections are not allowed.

If set, the queue is deleted when all consumers have finished using it. The last consumer can be cancelled either explicitly or because its channel is closed. If there was no consumer ever on the queue, it won't be deleted. Applications can explicitly delete auto-delete queues using the Delete method as normal.

This method confirms a Declare method and confirms the name of the queue, essential for automatically-named queues. Reports the name of the queue. If the server generated a queue name, this field contains that name.

Reports the number of active consumers for the queue. Note that consumers can suspend activity Channel. Flow in which case they do not appear in this count. This method binds a queue to an exchange. Until a queue is bound it will not receive any messages.

In a classic messaging model, store-and-forward queues are bound to a direct exchange and subscription queues are bound to a topic exchange. If the queue name is empty, the server uses the last queue declared on the channel. If the routing key is also empty, the server uses this queue name for the routing key as well.

If the queue name is provided but the routing key is empty, the server does the binding with that empty routing key. The meaning of empty routing keys depends on the exchange implementation. This method deletes a queue. When a queue is deleted any pending messages are sent to a dead-letter queue if this is defined in the server configuration, and all consumers on the queue are cancelled.

If set, the server will only delete the queue if it has no consumers. If the queue has consumers the server does does not delete it but raises a channel exception instead. The Basic class provides methods that support an industry-standard messaging model. This method requests a specific quality of service. The QoS can be specified for the current channel or for all channels on the connection. The particular properties and semantics of a qos method always depend on the content class semantics.

Though the qos method could in principle apply to both peers, it is currently meaningful only for the server. The client can request that messages be sent in advance so that when the client finishes processing a message, the following message is already held locally, rather than needing to be sent down the channel. Prefetching gives a performance improvement. This field specifies the prefetch window size in octets. The server will send a message in advance if it is equal to or smaller in size than the available prefetch size and also falls into other prefetch limits.

May be set to zero, meaning "no specific limit", although other prefetch limits may still apply. The prefetch-size is ignored if the no-ack option is set. Specifies a prefetch window in terms of whole messages. This field may be used in combination with the prefetch-size field; a message will only be sent in advance if both prefetch windows and those at the channel and connection level allow it.

The prefetch-count is ignored if the no-ack option is set. RabbitMQ has reinterpreted this field. The original specification said: If this field is set, they are applied to the entire connection. This method tells the client that the requested QoS levels could be handled by the server. The requested QoS applies to all active consumers until a new QoS is defined. This method asks the server to start a "consumer", which is a transient request for messages from a specific queue.

Consumers last as long as the channel they were declared on, or until the client cancels them. Specifies the identifier for the consumer. The consumer tag is local to a channel, so two clients can use the same consumer tags.

If this field is empty the server will generate a unique tag. Request exclusive consumer access, meaning only this consumer can access the queue. A set of arguments for the consume. The server provides the client with a consumer tag, which is used by the client for methods called on the consumer at a later stage. This method cancels a consumer. This does not affect already delivered messages, but it does mean the server will not send any more messages for that consumer.

The client may receive an arbitrary number of messages in between sending the cancel method and receiving the cancel-ok reply. It may also be sent from the server to the client in the event of the consumer being unexpectedly cancelled i.

This allows clients to be notified of the loss of consumers due to events such as queue deletion. Note that as it is not a MUST for clients to accept this method from the server, it is advisable for the broker to be able to identify those clients that are capable of accepting the method, through some means of capability negotiation.

This method publishes a message to a specific exchange. The message will be routed to queues as defined by the exchange configuration and distributed to any active consumers when the transaction, if any, is committed. Specifies the name of the exchange to publish to. The exchange name can be empty, meaning the default exchange. If the exchange name is specified, and that exchange does not exist, the server will raise a channel exception. Specifies the routing key for the message. This flag tells the server how to react if the message cannot be routed to a queue.

If this flag is set, the server will return an unroutable message with a Return method. If this flag is zero, the server silently drops the message.

This flag tells the server how to react if the message cannot be routed to a queue consumer immediately. If this flag is set, the server will return an undeliverable message with a Return method. If this flag is zero, the server will queue the message, but with no guarantee that it will ever be consumed. This method returns an undeliverable message that was published with the "immediate" flag set, or an unroutable message published with the "mandatory" flag set.

The reply code and text provide information about the reason that the message was undeliverable. Specifies the name of the exchange that the message was originally published to. May be empty, meaning the default exchange.

This method delivers a message to the client, via a consumer. In the asynchronous message delivery model, the client starts a consumer using the Consume method, then the server responds with Deliver methods as and when messages arrive for that consumer. May be empty, indicating the default exchange. This method provides a direct access to the messages in a queue using a synchronous dialogue that is designed for specific types of application where synchronous functionality is more important than performance.

This method delivers a message to the client following a get method. A message delivered by 'get-ok' must be acknowledged unless the no-ack option was set in the get method. If empty, the message was published to the default exchange. When sent by the client, this method acknowledges one or more messages delivered via the Deliver or Get-Ok methods. When sent by server, this method acknowledges one or more messages published with the Publish method on a channel in confirm mode.

The acknowledgement can be for a single message or a set of messages up to and including a specific message. If set to 1, the delivery tag is treated as "up to and including", so that multiple messages can be acknowledged with a single method. If set to zero, the delivery tag refers to a single message. If the multiple field is 1, and the delivery tag is zero, this indicates acknowledgement of all outstanding messages. This method allows a client to reject a message.

It can be used to interrupt and cancel large incoming messages, or return untreatable messages to their original queue. If requeue is true, the server will attempt to requeue the message.

If requeue is false or the requeue attempt fails the messages are discarded or dead-lettered. This method asks the server to redeliver all unacknowledged messages on a specified channel. Zero or more messages may be redelivered.

If this field is zero, the message will be redelivered to the original recipient. If this bit is 1, the server will attempt to requeue the message, potentially then delivering it to an alternative subscriber. This method replaces the asynchronous Recover. This method allows a client to reject one or more incoming messages. This method is also used by the server to inform publishers on channels in confirm mode of unhandled messages. If a publisher receives this method, it probably needs to republish the offending messages.

If set to 1, the delivery tag is treated as "up to and including", so that multiple messages can be rejected with a single method. If the multiple field is 1, and the delivery tag is zero, this indicates rejection of all outstanding messages.

You need to specify the HTTP header. Some of the most common HTTP headers you may wish to set are the following:. The mime type of the content, e. Tells all caching mechanisms from server to client whether they may cache this object. If you wish to populate your message with any headers aside from the ones mentioned above, use the Cookies and Headers tab.

Here you can also add cookies, which can each be set with its own properties, such as version and expiration time. If no content type is specified, then the content type of the message will be used.

Specifies when the cookie expires. If set to true, a cache MUST NOT use the response to satisfy a subsequent request without successful revalidation with the origin server.

If set to true, prevents the inadvertent release or retention of sensitive information. When true, that cache MUST NOT use the entry after it becomes stale to respond to a subsequent request without first revalidating it with the origin server. When the max-age cache-control directive is present in a cached response, the response is stale if its current age is greater than the age value given.

If a response includes both an Expires header and a max-age directive, the max-age directive overrides the Expires header, even if the Expires header is more restrictive. Any other headers are configurable by adding an additional child element of the type http: The Cache-Control header can be extended if necessary by adding an http: This element has the following configurable attributes:.

Indicates, in seconds, the max age of the cookie. This attributes is not allowed if expiryDate is defined. A boolean to specify that the cookie communication should be limited to encrypted transmission. Any outbound properties that were already present in the message are also propagated outwards together with the response headers.

To avoid this, it is recommended that unwanted outbound properties are removed in a previous step by using a remove-property transformer. A common use case occurs in flows that are consumed by 3rd-party monitoring tools which require either an empty response with a status code, or some custom response.

Leave the host and port to their default values, then set the Path to ex1. This makes the service reachable through the URL http: The easiest way to do this is to send a POST via a browser extension such as [Postman] for Google Chrome or the [curl] command line utility.

The service is now reachable through the URL http: Drag an HTTP Connector into a new canvas, open its properties editor, leave the host and port to their default values and set the Path to ex2 so that the service is now reachable through http: This will return a few headers, a cookie and a Status code of and the following payload:.

Mule User Guide Version 3.