RabbitMQ Listener
The RabbitMQ Listener listens to RabbitMQ Queue for any incoming messages.
The RabbitMQ Listener (Adapter) allows you to configure a RabbitMQ Listener from the Listener Type drop-down menu.
Listener (Adapter) Configuration Drop-Down List
Connection RabbitMQ Listener Configuration Options
On the Connection tab, you can specify:
- Connection Method – the method to use for the connection. The URI method is recommended for single server connections, while Host and Port is recommended for mirrored / HA server setups.
- URI – URI of the RabbitMQ Provider (e.g., amqp: //localhost)
- Host and Port – specify the Host and Port for each RabbitMQ Server in the form host:port (e.g., localhost 5672)
- Virtual Host – virtual host to connect to
- User Name – the User Name for the specified server (if required)
- Password – the Password for the specified server (if required)
- Use SSL? – check if SSL connection is required
RabbitMQ Listener Connection Configuration Options
Consume RabbitMQ Listener Configuration Options
On the Consume tab, you can specify:
- Queue – name of the queue to consume messages from
- Exchange – name of the RabbitMQ Exchange
- Mode – Point-to-Point (Queue) or Publish/Subscribe (Topic) style messaging
- Topic Pattern – pattern for matching messages
RabbitMQ Listener Consume Configuration Options
Declare RabbitMQ Listener Configuration Options
The Declare configuration tab allows you to specify:
- Durable – are messages durable (survive RabbitMQ server restart)
- Exclusive – queue is exclusive to this connection
- Auto-Delete – queue deleted when not in use
- Message TTL – how long a message published to a queue can live before it is discarded (milliseconds)
- Auto Expire – how long a queue can be unused before it is automatically deleted (milliseconds)
- Max Length – how long a queue can be unused before it is automatically deleted (milliseconds)
- Dead Letter Exchange – the name of the exchange to send rejected messages to (must be set at the time queue is created)
RabbitMQ Listener Declare Configuration Options
Advanced RabbitMQ Listener Configuration Options
The Advanced tab allows you to specify:
- Synchronous Acknowledge – if enabled, message acknowledgment will not be sent until transport confirms that it has been processed
- Timeout – the maximum time allowed for the message to be processed before timing out and rejecting the message
- Max Concurrent Messages – the maximum number of sync ack messages that should be processed simultaneously
- Shutdown Timeout – the time allowed between ACK and NACK_REQUEUE before shutting down the Listener; or -1 if no limit
- Restart After Shutdown Delay – the delay before starting the listener back up, or -1 to not restart
- Prefetch Count – the maximum number of messages that the server will deliver; 0 if unlimited
- Automatic Recovery – if network failures should automatically be recovered
- Recovery Interval – the interval between network recovery attempts
RabbitMQ Advanced Configuration Options (top half of screen)
- Heartbeat – if the heartbeat feature should be enabled
- Heartbeat Interval – the interval for heartbeat checks
- Requeue Delay – the time delay before requeueing after a NACK_REQUEUE. Defaults to 0 seconds which means to immediately requeue without delay. If the value is set with enhanced properties, the units are seconds.
- Initialize on Trigger Only – if enabled, the Listener doesn’t start up until a trigger initializes it
- Allow Command-Line Invocation – If enabled, the listener can be invoked using the CLI client application
- Restart on Listening Error – if enabled, the listener will be restarted after an error occurs
- FIFO Queue Name – the FIFO option enables a “First In, First Out” queuing mechanism between Listeners and Transports. If a FIFO Queue Name is provided, it will be used as a key for a transaction queue. Transactions will be written to this queue before they reach a Transport. The transactions in this queue will be ordered according to when they were created by the Listener.
- FIFO Queue Delay – it is the interval between updates/checks against that queue. Providing a queue name guarantees that a given Transport sends transactions in the same order the Listener created them in.
RabbitMQ Advanced Configuration Options (bottom half of screen)
Transaction Logging RabbitMQ Listener Configuration Options
On the Transaction Logging tab, you can enable transaction events logging. That data can be logged by a Transaction Event Listener (TransactionEventListener).
- Transaction Logging Enable – this checkbox allows transaction events originating from this listener to be logged by a Transaction Event Listener (TransactionEventListener)
- Log Transaction Data – if enabled, logs transaction data body
- Log Transaction Data Base64 – if enabled, logs transaction data body as Base64
- Log Transaction Attribute – if enabled, logs transaction attributes
- Log All Attributes – if enabled, no attributes will be filtered
- Allowed Attributes – attributes that are allowed to be logged
RabbitMQ Listener Transaction Logging Configuration Options
Inactivity RabbitMQ Listener Configuration Options
On the Inactivity tab you can specify:
- Enable Inactivity Monitor – check this box to enable inactivity monitoring – this will throw a non-transaction exception if the specified number of transactions haven’t been processed in the specified time interval
- Minimum Transactions to Expect – the number of transactions to expect to be completed per monitoring interval
- Monitoring Interval – how often to check the specified number of transactions have been processed
- Times to Monitor – if set, monitoring will be done during the defined times of day – to ignore, set start and end time equally
- Days to Exclude from Monitoring – inactivity monitoring will not occur on the days specified
- Include Errors in Transaction Count – if checked, transactions that attempted to start but failed at the Listener stage will also be counted
RabbitMQ Listener Inactivity Configuration Options
Throttling RabbitMQ Listener Configuration Options
On the Throttling tab, you can specify:
- Throttling Mode – the throttling mode to use for limiting the number of transactions or messages emitted by this Listener. “Timed” will limit transactions based on time intervals, while “Concurrent” will limit based on a concurrent number of transactions. “Concurrent” mode requires a Throttling Response Processor step later in your Interface workflow to acknowledge completion.
RabbitMQ Listener Throttling Mode
- Throttling Mechanism – the mechanism to use for throttling messages. “Blocking” prevents the Listener from continuing to process and emit messages altogether, while “Queued” pushes received messages into the interface queue (or a default, in-memory queue).
- Max Concurrent Messages – how many messages can be concurrently processed, either by time-based limits (“Allow X per Second”) or synchronous (“Allow X at any Time”)
- Timed Emission Interval – the interval for time-based limits (“Allow X per X Timed Emission Interval”)
- Synchronous Timeout Interval – the interval to wait for a synchronous response before failing
RabbitMQ Listener Throttling Configuration Options