Document toolboxDocument toolbox

Rabbit Receiver

Description

A unit that receives items from RabbitMQ message-broker queues.

RabbitMQ uses a fixed set of queues, provided in the unit settings, and dynamic sets of queues, managed by input events to add and remove input ports. These two sets are disjoint, within different namespaces. Therefore, you cannot remove a static queue using input events. To use the same values both, set them in the default tab.

Each queue has an identifying key, unique within its namespace (configuration or events).

When using a fixed set of queues, data arrives from the RabbitMQ queue and is processed according to the unit settings. If successful, a pilot event with fields defined by the output event settings is emitted through the data port.
If an error occurs, a pilot event with standard error fields is emitted through the error port.

When using dynamic queue set management, on receiving an input event via the add input port, a new queue is created using the settings entered in the event fields.

By default, event field names correspond to configuration item names. If you want a different mapping, you can set this in the input events tab.

On receiving an input event via the remove input port, the corresponding queue will be deleted. On receiving an input event via the removeAll input port, all dynamically created queues will be deleted.

In both cases:
Successful input events will be enriched with an action field corresponding to the action performed, and are emitted through the done output port.
If the action failed, the input events will be enriched with an action field as well as standard error fields, and are emitted through the fail output port.

Configuration

After dragging this unit into the Flow canvas, double-click it to access its configuration options. The following table describes the configuration options of this unit:

TabFieldDescription
GeneralNameEnter a name for the unit. It must start with a letter, and cannot contain spaces. Only letters, numbers, and underscores are allowed.
Status queuesQueueClick the plus icon to add queue settings.
KeyEnter the key to identify a queue within its namespace
SourceThe source of the messages (a queue or an exchange). If an exchange is given, a temporary queue will be created.
Is exchangeWhether the selected source is an exchange (true) or a queue (false).
Routing keyEnter the label to describe the message. Only applies when the source is an exchange.
Host

Enter the host to use for establishing the initial connection to RabbitMQ.

Virtual hostEnter the name of the virtual host used to configure RabbitMQ instances.
PortEnter the name of the port used for establishing a connection to RabbitMQ.
UsernameSpecify the client name to access RabbitMQ.
PasswordEnter the password requested to access RabbitMQ.
Connection timeoutThe maximum amount of time (in milliseconds) to maintain the connection.
Requested heartbeat

Indicate how often (in milliseconds) to send signals to indicate normal operation in order to maintain the connection alive.

Zero for no heartbeat.

Auto ackWhether to acknowledge queue items after extracting them from the queue. If false, you will have to send acks later using an mq.RabbitAck unit.
CharsetIndicate the encoding system to use for the message text.
Input eventsKeyEnter the name of an input event field containing a key setting.
HostEnter the name of an input event field containing the host setting.
Virtual hostEnter the name of an input event field containing virtual host setting.
PortEnter the name of an input event field containing the port setting.
UsernameEnter the name of an input event field containing the username setting.
PasswordEnter the name of an input event field containing password setting.
Connection timeoutEnter the name of an input event field containing the connection timeout setting.
Requested heartbeatEnter the name of an input event field containing the requested heartbeat setting.
CharsetEnter the name of an input event field containing the charset setting.
SourceEnter the name of an input event field containing the source setting.
Is exchangeEnter the name of an input event field containing the is exchange setting.
Routing keyEnter the name of an input event field containing the routing key setting.
Auto AckEnter the name of an input event field containing the autoAck setting.
DefaultsThe fields in this tab are identical the fixed and dynamic queue settings. Here you can enter default values to be applied to both.
Output eventsChannelEnter a name for the output event field containing the channel.
Delivery tagEnter a name for the output event field containing the delivery tag.
ExchangeEnter a name for the output event field containing the exchange.
Routing keyEnter a name for the output event field containing the routing key setting.
BodyEnter a name for the output event field containing the body of the message.

Input ports

PortDescription
addInput events to request a new queue to be added. Must have at least a field specifying the queue key.
removeInput events to remove a previously added queue. Must have at least a field specifying the queue key.
removeAllInput events to remove all previously added queues. No fields needed.

Output ports

PortDescription
dataOutput events for successful RabbitMQ messages. The structure is defined by the output event settings.
errorOutput events for failed RabbitMQ messages, enriched with standard error fields. 
doneOutput events for successful queue manipulation actions, enriched with an action field specifying the action performed.
failOutput events for failed queue manipulation actions, enriched with an action field and standard error fields.