AMQP Connector Reference | MuleSoft Documentation
# AMQP Connector Reference
AMQP Connector v1.8
Release Notes: AMQP Connector Release Notes
Anypoint Connector for AMQP is an AMQP 0.9.1 compliant MuleSoft extension, and is used to consume and produce AMQP messages. The extension supports AMQP functionality including exchanges and queues, consumers, acknowledgment modes, and local transactions.
## Configurations
### Config
These are the base configuration parameters for AMQP Connector.
#### Parameters
Name | Type | Description | Default Value | Required  
---|---|---|---|---  
Name for this configuration. Connectors reference the configuration with this name.  
**Connection** |  The connection types to provide to this configuration.  
The default encoding of the Message body to use if the message doesn’t communicate it.  
**Content Type** |  The default contentType of the Message body to use if the message doesn’t communicate it  
**Create Fallback Queue** |  Whether to create non-existing queues according to the fallback definition if they are defined.  
**Create Fallback Exchange** |  Whether to create non-existing exchanges according to the fallback definition if they are defined.  
**Send Correlation Id** |  Enumeration, one of:
  * ALWAYS
  * NEVER

|  Whether to specify a correlationId when publishing messages. This applies both for custom correlation IDs specifies at the operation level and for default correlation IDs taken from the current event  
**Expiration Policy** |  Expiration Policy |  Configures the minimum amount of time that a dynamic configuration instance can remain idle before Mule considers it eligible for expiration.  
Enumeration, one of:
  * IMMEDIATE
  * MANUAL

|  The acknowledgment mode to use when consuming from the AMQP broker. If a transaction is opened in the channel, message acknowledgment is handled automatically by commit, and recovery is handled automatically by rollback.  
If set to true, the server does not send messages to the connection that published them.  
**Exclusive Consumers** |  Set to true if the connector should only create exclusive consumers. Only the consumer created can access the queue.  
**Number Of Consumers** |  It is the number of consumers spawned by message source to receive AMQP messages. Each consumer will create a channel.  
**Delivery Mode** |  Enumeration, one of:
  * TRANSIENT
  * PERSISTENT

|  The delivery mode to use when publishing to the AMQP broker.  
The priority to use when publishing to the AMQP broker. The priority has possible values from 0 to 9 - default is 0.  
**Request Broker Confirms** |  Whether it must fail in case no confirmation is provided.  
Whether the operation must fail if it cannot be routed to a queue.  
Whether the operation must fail if it cannot be routed to a queue consumer immediately.  
**Returned Message Exchange** |  The exchange to publish returned messages.  
**Prefetch Size** |  This field defines a prefetch size window. The broker will send as much messages as possible without exceeding the prefetchSize window in octets (bytes). 0 is used for no specific limit.  
**Prefetch Count** |  Specifies a global 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 allow it. 0 is used for no specific limit.  
#### Connection Types
##### Connection
Generic implementation of a AMQP ConnectionProvider.
###### Parameters
Name | Type | Description | Default Value | Required  
---|---|---|---|---  
**Socket Configuration** |  Socket Configuration  
**TLS Configuration** |  Reference to a TLS config element. This will enable secure connection to the AMQP broker.  
Host of the broker to connect to.  
Port of the AMQP broker to connect to.  
**Virtual Host** |  Virtual host to use in the AMQP broker.  
Username to use when providing credentials for authentication.  
Password to use when providing credentials for authentication.  
Whether TLS is needed to use. In case it is not provided, the default for AMQP connection will be used.  
Whether Server Name Indication is needed to use in the ClientHello Message  
Whether SASL (EXTERNAL) Auth mechanism is used (No username or password required).  
**Heartbeat Timeout** |  The heartbeat timeout. Heartbeat frames is sent at about 1/2 the timeout interval.  
**Handshake Timeout** |  AMQP 0.9.1 timeout to set to the underlying AMQP connector.  
**Handshake Timeout Time Unit** |  Enumeration, one of:
  * NANOSECONDS
  * MICROSECONDS
  * MILLISECONDS
  * SECONDS
  * MINUTES
  * HOURS

|  Timeunit for the handshake timeout AMQP connection socket configuration. |  MILLISECONDS  
**Fallback Addresses** |  Array of Fallback Address |  The addresses of the broker nodes to attempt connection to, should the connection to main broker fail.  
**Reconnection** |  |  When the application is deployed, a connectivity test is performed on all connectors. If set to true, deployment fails if the test doesn’t pass after exhausting the associated reconnection strategy  
## Supported Operations
  * Publish Consume


## Associated Sources
## Operations
### Consume
`<amqp:consume>`
Enables you to consume a single AMQP message from a given queue.
#### Parameters
Name | Type | Description | Default Value | Required  
---|---|---|---|---  
**Configuration** |  Name of the configuration to use.  
**Queue Name** |  The name of the queue from where the Message should be consumed  
**Content Type** |  The content type of the message body  
The encoding of the message body  
**Fallback Queue Definition** |  Queue Definition |  The queue definition to use for queue declaration in case there is no queue with the queueName  
Enumeration, one of:
  * IMMEDIATE
  * MANUAL

|  The ACK mode to use when consuming a message  
**Consumer Tag** |  The consumer tag to use for the consumer involved in the operation  
**Maximum Wait** |  Maximum time to wait for a message to arrive before timeout  
**Maximum Wait Unit** |  Enumeration, one of:
  * NANOSECONDS
  * MICROSECONDS
  * MILLISECONDS
  * SECONDS
  * MINUTES
  * HOURS

|  Time unit to use in the maximumWaitTime configuration |  MILLISECONDS  
**Create Fallback Queue**  
**Transactional Action** |  Enumeration, one of:
  * ALWAYS_JOIN
  * JOIN_IF_POSSIBLE
  * NOT_SUPPORTED

|  information of the current transaction in case it exists |  JOIN_IF_POSSIBLE  
**Streaming Strategy** | 
  * Repeatable In Memory Stream
  * Repeatable File Store Stream
  * non-repeatable-stream

|  Configures how Mule processes streams. Repeatable streams are the default behavior.  
**Target Variable** |  Name of the variable that storesoperation’s output will be placed  
**Target Value** |  An expression to evaluate against the operation’s output and store the expression outcome in the target variable  
**Reconnection Strategy** | 
  *   * Reconnect Forever

|  Retry strategy in case of connectivity errors.  
#### Output
Attributes Type |  AMQP Attributes  
---|---  
### For Configurations
#### Throws
  * AMQP:QUEUE_NOT_FOUND
  * AMQP:CONNECTIVITY
  * AMQP:CONSUMING
  * AMQP:NO_CHANNEL_AVAILABLE
  * AMQP:RETRY_EXHAUSTED
  * AMQP:CREATION_NOT_ALLOWED
  * AMQP:TIMEOUT


### Publish
`<amqp:publish>`
Enables you to publish a single AMQP message to a given exchange.
#### Parameters
Name | Type | Description | Default Value | Required  
---|---|---|---|---  
**Configuration** |  Name of the configuration to use.  
**Exchange Name** |  The name of the exchange to publish the message to  
**Routing Keys** |  Array of String |  List of routing keys  
**Delivery Mode** |  Enumeration, one of:
  * TRANSIENT
  * PERSISTENT

|  The delivery mode to use when publishing to the AMQP broker  
**Transactional Action** |  Enumeration, one of:
  * ALWAYS_JOIN
  * JOIN_IF_POSSIBLE
  * NOT_SUPPORTED

|  information of the current transaction in case it exists |  JOIN_IF_POSSIBLE  
**Send Correlation Id** |  Enumeration, one of:
  * ALWAYS
  * NEVER
|  Retry strategy in case of connectivity errors.  
#### Output
Attributes Type |  AMQP Attributes  
---|---  
### For Configurations
#### Throws
  * AMQP:QUEUE_NOT_FOUND
  * AMQP:CONNECTIVITY
  * AMQP:CONSUMING
  * AMQP:NO_CHANNEL_AVAILABLE
  * AMQP:RETRY_EXHAUSTED
  * AMQP:CREATION_NOT_ALLOWED
  * AMQP:TIMEOUT


### Publish
`<amqp:publish>`
Enables you to publish a single AMQP message to a given exchange.
#### Parameters
Name | Type | Description | Default Value | Required  
---|---|---|---|---  
**Configuration** |  Name of the configuration to use.  
**Exchange Name** |  The name of the exchange to publish the message to  
**Routing Keys** |  Array of String |  List of routing keys  
**Delivery Mode** |  Enumeration, one of:
  * TRANSIENT
  * PERSISTENT

|  The delivery mode to use when publishing to the AMQP broker  
**Transactional Action** |  Enumeration, one of:
  * ALWAYS_JOIN
  * JOIN_IF_POSSIBLE
  * NOT_SUPPORTED

|  information of the current transaction in case it exists |  JOIN_IF_POSSIBLE  
**Send Correlation Id** |  Enumeration, one of:
  * ALWAYS
  * NEVER

|  options on whether to include an outbound correlation ID or not  
**Create Fallback Exchange**  
**Skip Exchange Validation** |  Enumeration, one of: |  Skips the exchange validation. By default, the **Publish** operation validates the exchange if you do not configure the Skip Exchange Validation field. While skipping validation can enhance performance, this approach also risks message loss if the exchange does not exist, depending on the broker’s configuration.  
**Fallback Exchange Definition** |  Exchange Defintiion |  The exchange to use for exchange declaration in case there is no exchange with the exchangeName  
The body of the Message  
**AMQP Properties** |  AMQP Properties |  Properties of the message.  
The custom user properties that should be set to this AmqpMessage  
**Request Broker Confirms** |  Expects a confirmation from a message published. An exception is raised in case no confirmation is provided in case this attribute is set to true.  
Tells the server how to react if the message cannot be routed to a queue. If set to true, the server throws an exception (UNROUTABLE_MESSAGE, see below in the operation spec) for any message that cannot be routed. If set to false, the server silently drops the message.  
Tells the server how to react if the message cannot be routed to a queue consumer immediately. If set to true, the server throws an exception (UNROUTABLE_MESSAGE, see below in the operation spec) for any undeliverable message. If set to false, the server queues the message, but with no guarantee that the message will ever be consumed.  
**Returned Message Exchange** |  The exchange to publish returned messages.  
**Reconnection Strategy** | 
  *   * Reconnect Forever

|  Retry strategy in case of connectivity errors.  
### For Configurations
#### Throws
  * AMQP:PUBLISHING
  * AMQP:ILLEGAL_BODY
  * AMQP:CONNECTIVITY
  * AMQP:UNROUTABLE_MESSAGE
  * AMQP:EXCHANGE_NOT_FOUND
  * AMQP:NO_CHANNEL_AVAILABLE
  * AMQP:RETRY_EXHAUSTED
  * AMQP:CREATION_NOT_ALLOWED


### Publish Consume
`<amqp:publish-consume>`
Enables you to send a message to a AMQP exchange and waits for a response either to the provided replyTo destination or to a temporary destination created dynamically.
#### Parameters
Name | Type | Description | Default Value | Required  
---|---|---|---|---  
**Configuration** |  Name of the configuration to use.  
**Exchange Name** |  The name of the exchange to publish the message to  
**Content Type** |  The content type of the message body  
The encoding of the message body  
**Routing Key** |  The routing key to publish to  
**Delivery Mode** |  Enumeration, one of:
  * TRANSIENT
  * PERSISTENT

|  The delivery mode to use when publishing to the AMQP broker  
**Maximum Wait** |  The maximum time to wait for a message to arrive before timeout  
**Maximum Wait Unit** |  Enumeration, one of:
  * NANOSECONDS
  * MICROSECONDS
  * MILLISECONDS
  * SECONDS
  * MINUTES
  * HOURS

|  The time unit to use in the maximumWaitTime configuration |  MILLISECONDS  
**Transactional Action** |  Enumeration, one of:
  * ALWAYS_JOIN
  * JOIN_IF_POSSIBLE
  * NOT_SUPPORTED

|  information of the current transaction in case it exists |  JOIN_IF_POSSIBLE  
**Send Correlation Id** |  Enumeration, one of:
  * ALWAYS
  * NEVER

|  options on whether to include an outbound correlation ID or not  
**Create Fallback Exchange**  
**Streaming Strategy** | 
  * Repeatable In Memory Stream
  * Repeatable File Store Stream
  * non-repeatable-stream

|  Configures how Mule processes streams. Repeatable streams are the default behavior.  
**Skip Exchange Validation** |  Enumeration, one of: |  This field is intended to skip exchange validation by default the operation will do the validation if the parameter is not configured. If you decide to skip the exchange validation it will improve the performance but if the exchange does not exist you can incur in messaging losing depending on the broker configuration.  
**Fallback Exchange Definition** |  Exchange Defintiion |  The exchange to use for exchange declaration in case there is no exchange with the exchangeName  
The body of the Message  
**AMQP Properties** |  AMQP Properties |  Properties of the message.  
The custom user properties that should be set to this AmqpMessage  
**Request Broker Confirms** |  Expects a confirmation from a message published. An exception is raised in case no confirmation is provided in case this attribute is set to true.  
Tells the server how to react if the message cannot be routed to a queue. If set to true, the server throws an exception (UNROUTABLE_MESSAGE, see below in the operation spec) for any message that cannot be routed. If set to false, the server silently drops the message.  
Tells the server how to react if the message cannot be routed to a queue consumer immediately. If set to true, the server throws an exception (UNROUTABLE_MESSAGE, see below in the operation spec) for any undeliverable message. If set to false, the server queues the message, but with no guarantee that the message will ever be consumed.  
**Returned Message Exchange** |  The exchange to publish returned messages.  
**Target Variable** |  Name of the variable that storesoperation’s output will be placed  
**Target Value** |  An expression to evaluate against the operation’s output and store the expression outcome in the target variable  
**Reconnection Strategy** | 
  *   * Reconnect Forever

|  Retry strategy in case of connectivity errors.  
#### Output
Attributes Type |  AMQP Attributes  
---|---  
### For Configurations
#### Throws
  * AMQP:PUBLISHING
  * AMQP:PUBLISHING_CONSUMING
  * AMQP:CONNECTIVITY
  * AMQP:CONSUMING
  * AMQP:NO_CHANNEL_AVAILABLE
  * AMQP:RETRY_EXHAUSTED
  * AMQP:CREATION_NOT_ALLOWED
  * AMQP:TIMEOUT


`<amqp:ack>`
Enables to ack a message with the delivery tag.
#### Parameters
Name | Type | Description | Default Value | Required  
---|---|---|---|---  
delivery tag of the message to be ack’ed  
#### Throws
  * AMQP:ACKNOWLEDGING
  * AMQP:NO_CHANNEL_AVAILABLE
  * AMQP:DELIVER_TAG_NOT_FOUND
  * AMQP:TIMEOUT


### Reject
`<amqp:reject>`
Enables you to reject a delivered AMQP message.
#### Parameters
Name | Type | Description | Default Value | Required  
---|---|---|---|---  
delivery tag of the message to be rejected  
Indicates whether the rejected message has to be requeued  
#### Throws
  * AMQP:REQUEUE
  * AMQP:ACKNOWLEDGING
  * AMQP:REJECTING
  * AMQP:DELIVER_TAG_NOT_FOUND
  * AMQP:TIMEOUT


## Sources
### Listener
`<amqp:listener>`
AMQP listener for queues, enables you to listen for incoming messages.
#### Parameters
Name | Type | Description | Default Value | Required  
---|---|---|---|---  
**Configuration** |  Name of the configuration to use.  
**Queue Name** |  Name of the queue to consume from.  
**Fallback Queue Definition** |  Queue Definition |  Declaration of a queue definition to use in case no queue with the queueName provided exists in the broker. In case the queue with provided queueName exists, it will be used as is, ignoring the fallback. In case the queue does not exist, a new queue shall be created according to the referenced definition.  
Enumeration, one of:
  * IMMEDIATE
  * MANUAL
### Reject
`<amqp:reject>`
Enables you to reject a delivered AMQP message.
#### Parameters
Name | Type | Description | Default Value | Required  
---|---|---|---|---  
delivery tag of the message to be rejected  
Indicates whether the rejected message has to be requeued  
#### Throws
  * AMQP:REQUEUE
  * AMQP:ACKNOWLEDGING
  * AMQP:REJECTING
  * AMQP:DELIVER_TAG_NOT_FOUND
  * AMQP:TIMEOUT


## Sources
### Listener
`<amqp:listener>`
AMQP listener for queues, enables you to listen for incoming messages.
#### Parameters
Name | Type | Description | Default Value | Required  
---|---|---|---|---  
**Configuration** |  Name of the configuration to use.  
**Queue Name** |  Name of the queue to consume from.  
**Fallback Queue Definition** |  Queue Definition |  Declaration of a queue definition to use in case no queue with the queueName provided exists in the broker. In case the queue with provided queueName exists, it will be used as is, ignoring the fallback. In case the queue does not exist, a new queue shall be created according to the referenced definition.  
Enumeration, one of:
  * IMMEDIATE
  * MANUAL

|  The acknowledgment mode to use when consuming from the AMQP broker.  
**Number Of Consumers** |  The number of channels that are spawned per inbound endpoint to receive AMQP messages.  
**Consumer Tag** |  A client-generated consumer tag to establish context.  
**Recover Strategy** |  Enumeration, one of:
  * NO_REQUEUE
  * REQUEUE

|  Valid values for the recoverStrategy option are: NONE, NO_REQUEUE and REQUEUE.  
**Inbound Encoding** |  The default encoding of the message body to use if the message doesn’t communicate it  
**Inbound Content Type** |  The default contentType of the Message body to use if the message doesn’t communicate it  
**Create Fallback Queue** |  Whether non existing queues will be created according to the fallback definition or an error is raised if they do not exist. This can be disabled in the mule app is not intended to change the AMQP topography.  
**Transactional Action** |  Enumeration, one of:
  * ALWAYS_BEGIN

|  The type of beginning action that sources can take regarding transactions.  
**Transaction Type** |  Enumeration, one of: |  The type of transaction to create. Availability depends on Mule version.  
**Primary Node Only** |  Determines whether to execute this source on only the primary node when running Mule instances in a cluster.  
**Streaming Strategy** | 
  * Repeatable In Memory Stream
  * Repeatable File Store Stream
  * non-repeatable-stream

|  Configures how Mule processes streams. Repeatable streams are the default behavior.  
**Redelivery Policy** |  Redelivery Policy |  Defines a policy for processing the redelivery of the same message.  
**Prefetch Size** |  This field defines a prefetch size window. The broker will send as much messages as possible without exceeding the prefetchSize window in octets (bytes). 0 is used for no specific limit.  
**Prefetch Count** |  Specifies a global 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 allow it. 0 is used for no specific limit.  
**Reconnection Strategy** | 
  *   * Reconnect Forever

|  Retry strategy in case of connectivity errors.  
The body of the Message  
**AMQP Properties** |  AMQP Properties |  Properties of the message.  
The custom user properties that should be set to this AmqpMessage  
**Delivery Mode** |  Enumeration, one of:
  * TRANSIENT
  * PERSISTENT

|  The delivery mode to use when publishing to the AMQP broker.  
The priority to use when publishing to the AMQP broker. The priority has possible values from 0 to 9 - default is 0.  
**Request Broker Confirms** |  Whether it must fail in case no confirmation is provided in case this attribute is set to true."  
Whether the operation must fail if it cannot be routed to a queue.  
Whether the operation must fail if it cannot be routed to a queue consumer immediately.  
**Returned Message Exchange** |  The exchange to publish returned messages.  
#### Output
Attributes Type |  AMQP Attributes  
---|---  
### For Configurations
## Types
### Socket Configuration
Field | Type | Description | Default Value | Required  
---|---|---|---|---  
**Keep Alive** |  Keep alive to set to the underlying AMQP connector  
**So Timeout Time Unit** |  Enumeration, one of:
  * NANOSECONDS
  * MICROSECONDS
  * MILLISECONDS
  * SECONDS
  * MINUTES
  * HOURS

|  Timeunit for the SO_TIMEOUT AMQP connection socket configuration. |  MILLISECONDS  
**So Timeout** |  SO_TIMEOUT to set to the underlying AMQP connector.  
**Receive Buffer Size** |  Receive buffer size to set to the underlying AMQP connector  
**Send Buffer Size** |  Send buffer size to set to the underlying AMQP connector  
Configures TLS to provide secure communications for the Mule app.
Field | Type | Description | Default Value | Required  
---|---|---|---|---  
**Enabled Protocols** |  Comma-separated list of protocols enabled for this context.  
**Enabled Cipher Suites** |  Comma-separated list of cipher suites enabled for this context.  
**Trust Store** |  Configures the TLS truststore.  
Configures the TLS keystore.  
**Revocation Check** | 
  * Standard Revocation Check
  * Custom OCSP Responder

  
### Truststore
Configures the truststore for TLS.
Field | Type | Description | Default Value | Required  
---|---|---|---|---  
Path to the truststore. Mule resolves the path relative to the current classpath and file system.  
Password used to protect the truststore.  
Type of store.  
Encryption algorithm that the truststore uses.  
If `true`, Mule stops performing certificate validations. Setting this to `true` can make connections vulnerable to attacks.  
### Keystore
Configures the keystore for the TLS protocol. The keystore you generate contains a private key and a public certificate.
Field | Type | Description | Default Value | Required  
---|---|---|---|---  
Path to the keystore. Mule resolves the path relative to the current classpath and file system.  
Type of store.  
Alias of the key to use when the keystore contains multiple private keys. By default, Mule uses the first key in the file.  
**Key Password** |  Password used to protect the private key.  
Password used to protect the keystore.  
Encryption algorithm that the keystore uses.  
### Standard Revocation Check
Configures standard revocation checks for TLS certificates.
Field | Type | Description | Default Value | Required  
---|---|---|---|---  
**Only End Entities** |  Which elements to verify in the certificate chain: Verify only the last element in the certificate chain. Verify all elements in the certificate chain.  
**Prefer Crls** |  How to check certificate validity: Check the Certification Revocation List (CRL) for certificate validity. Use the Online Certificate Status Protocol (OCSP) to check certificate validity.  
**No Fallback** |  Whether to use the secondary method to check certificate validity: Use the method that wasn’t specified in the **Prefer Crls** field (the secondary method) to check certificate validity. Do not use the secondary method to check certificate validity.  
What to do if the revocation server can’t be reached or is busy: Avoid verification failure. Allow the verification to fail.  
### Custom OCSP Responder
Configures a custom OCSP responder for certification revocation checks.
Field | Type | Description | Default Value | Required  
---|---|---|---|---  
URL of the OCSP responder.  
**Cert Alias** |  Alias of the signing certificate for the OCSP response. If specified, the alias must be in the truststore.  
### CRL File
Specifies the location of the certification revocation list (CRL) file.
Field | Type | Description | Default Value | Required  
---|---|---|---|---  
Path to the CRL file.  
### Fallback Address
Field | Type | Description | Default Value | Required  
---|---|---|---|---  
Host of the broker to connect to.  
Port of the AMQP broker to connect to.  
### Reconnection
Configures a reconnection strategy for an operation.
Field | Type | Description | Default Value | Required  
---|---|---|---|---  
**Fails Deployment** |  When the application is deployed, a connectivity test is performed on all connectors. If set to true, deployment fails if the test doesn’t pass after exhausting the associated reconnection strategy.  
**Reconnection Strategy** | 
  *   * Reconnect Forever
|  Reconnection strategy to use.  
### Reconnect
Configures a standard reconnection strategy, which specifies how often to reconnect and how many reconnection attempts the connector source or operation can make.
Field | Type | Description | Default Value | Required  
---|---|---|---|---  
How often to attempt to reconnect, in milliseconds.  
How many reconnection attempts the Mule app can make.  
### Reconnect Forever
Configures a forever reconnection strategy by which the connector source or operation attempts to reconnect at a specified frequency for as long as the Mule app runs.
Field | Type | Description | Default Value | Required  
---|---|---|---|---  
How often to attempt to reconnect, in milliseconds.  
### Expiration Policy
Configures an expiration policy strategy.
Field | Type | Description | Default Value | Required  
---|---|---|---|---  
**Max Idle Time** |  Configures the maximum amount of time that a dynamic configuration instance can remain idle before Mule considers it eligible for expiration.  
Enumeration, one of:
  * NANOSECONDS
  * MICROSECONDS
  * MILLISECONDS
  * SECONDS
  * MINUTES
  * HOURS

|  Time unit for the **Max Idle Time** field.  
### AMQP Attributes
Field | Type | Description | Default Value | Required  
---|---|---|---|---  
Encapsulates a group of parameters used for AMQP’s Basic methods  
**Properties** |  AMQP Message Properties  
AMQP Message parameters  
The channel ACK ID required to ACK a the current Message if one is available, or null otherwise.  
### Envelope
Field | Type | Description | Default Value | Required  
---|---|---|---|---  
**Delivery Tag**  
**Routing Key**  
### Properties
Field | Type | Description | Default Value | Required  
---|---|---|---|---  
**Content Type**  
**Content Encoding**  
**Delivery Mode** |  Enumeration, one of:
  * TRANSIENT
  * PERSISTENT

  
**Correlation Id**  
### Queue Definition
Field | Type | Description | Default Value | Required  
---|---|---|---|---  
**Removal Strategy** |  Enumeration, one of:
  * EXPLICIT
  * SHUTDOWN
  * UNUSED

|  Defines when the declared queue must be removed from the broker.  
**Exchange To Bind** |  Defines the exchange to bind the queue to.  
**Binding Routing Key** |  Defines the routing key to use in the binding of the exchange.  
### Repeatable In Memory Stream
Configures the in-memory streaming strategy by which the request fails if the data exceeds the MAX buffer size. Always run performance tests to find the optimal buffer size for your specific use case.
Field | Type | Description | Default Value | Required  
---|---|---|---|---  
**Initial Buffer Size** |  Initial amount of memory to allocate to the data stream. If the streamed data exceeds this value, the buffer expands by **Buffer Size Increment** , with an upper limit of **Max In Memory Size value**.  
**Buffer Size Increment** |  This is by how much the buffer size expands if it exceeds its initial size. Setting a value of zero or lower means that the buffer should not expand, meaning that a STREAM_MAXIMUM_SIZE_EXCEEDED error is raised when the buffer gets full.  
**Max Buffer Size** |  Maximum size of the buffer. If the buffer size exceeds this value, Mule raises a `STREAM_MAXIMUM_SIZE_EXCEEDED` error. A value of less than or equal to `0` means no limit.  
**Buffer Unit** |  Enumeration, one of: |  Unit for the **Initial Buffer Size** , **Buffer Size Increment** , and **Buffer Unit** fields.  
### Repeatable File Store Stream
Configures the repeatable file-store streaming strategy by which Mule keeps a portion of the stream content in memory. If the stream content is larger than the configured buffer size, Mule backs up the buffer’s content to disk and then clears the memory.
Field | Type | Description | Default Value | Required  
---|---|---|---|---  
**In Memory Size** |  Maximum amount of memory that the stream can use for data. If the amount of memory exceeds this value, Mule buffers the content to disk. To optimize performance:
  * Configure a larger buffer size to avoid the number of times Mule needs to write the buffer on disk. This increases performance, but it also limits the number of concurrent requests your application can process, because it requires additional memory.
  * Configure a smaller buffer size to decrease memory load at the expense of response time.

  
**Buffer Unit** |  Enumeration, one of: |  Unit for the **In Memory Size** field.  
### Redelivery Policy
Configures the redelivery policy for executing requests that generate errors. You can add a redelivery policy to any source in a flow.
Field | Type | Description | Default Value | Required  
---|---|---|---|---  
**Max Redelivery Count** |  Maximum number of times that a redelivered request can be processed unsuccessfully before returning a REDELIVERY_EXHAUSTED error.  
**Use Secure Hash** |  If `true`, Mule uses a secure hash algorithm to identify a redelivered message.  
**Message Digest Algorithm** |  Secure hashing algorithm to use if the **Use Secure Hash** field is `true`. If the payload of the message is a Java object, Mule ignores this value and returns the value that the payload’s `hashCode()` returned.  
**Id Expression** |  One or more expressions that determine when a message was redelivered. You can set this property only if the **Use Secure Hash** field is `false`.  
**Object Store** |  Object Store |  Configures the object store that stores the redelivery counter for each message.  
### AMQP Properties
Field | Type | Description | Default Value | Required  
---|---|---|---|---  
**Content Type** |  The content type of the body  
**Content Encoding** |  The Content Encoding of the published Message  
The priority to use when publishing to the AMQP broker. The priority has possible values from 0 to 9 - default is 0.  
**Correlation Id** |  Used in case of implementation of RPC pattern to distinguish among messages in a request-reply.  
Destination set in case of RPC.  
**Expiration** |  Expiration in miliseconds for the message.  
**Expiration Time Unit** |  Enumeration, one of:
  * NANOSECONDS
  * MICROSECONDS
  * MILLISECONDS
  * SECONDS
  * MINUTES
  * HOURS

|  MILLISECONDS  
Type of the consumed message  
### Exchange Defintiion
Field | Type | Description | Default Value | Required  
---|---|---|---|---  
**Removal Strategy** |  Enumeration, one of:
  * EXPLICIT
  * SHUTDOWN
  * UNUSED

|  Defines when the declared exchange must be removed from the broker.  
Enumeration, one of:
  * DIRECT
  * TOPIC
  * FANOUT
  * HEADERS

|  The type of exchange to be declared.