Dell Boomi Integrations: Using the Atom Queue Connector
The Atom Queue connector is used to send and receive messages to and from Dell Boomi Integration Atom message queues. The connector supports both Point-to-Point and Publish/Subscribe messaging. For a better understanding of how Atom Queue works, I did a proof of concept.
The Atom Queue connector is used to send and receive messages to and from native Boomi Integration Atom message queues. The connector supports both Point-to-Point and Publish/Subscribe messaging.
For better understanding of how Atom Queue works, I did a proof of concept. Below are the screenshots of the flow which will give you a better idea of how this component works.
1. Creating a message and sending it to an Atom Queue
To send a message to another process, first you need to create the process where we’ll send the queue message from (in this case, we create the Send_Queue process).

The “No Data” option should be selected in the “Start” Shape connector, if the process will not receive or retrieve data from any source.
In the Message connector, I have entered a “Hello” message (as shown below). This is the message that will be sent to the second process.

The message sent from the Message Shape is sent to the Atom Queue connector, which will be sending the message to native Boomi Integration Atom Message Queues.

To configure a connector to send a message to an Atom Message Queue, I need to set up two components:
- Atom Queue Connection
- Atom Queue Operation
The Atom Queue Connection specifies the message queue for an Atom Queue Operation. As shown below, I have configured the Atom Queue Connection with the Queue Name “AtomQueue_Test”.

The Atom Queue Operation below is used to send (this is the Connection Action) messages to a Message Queue and Batch Size is set to 5 (default value), which means it sets the number of documents to batch in each outgoing message.

The Stop Shape indicates the “End and continue” of the flow.
2. Reading the message from the Atom Queue
After we send the message to the queue, the next step would be to read that message from the second flow. I created the below process (Read_Queue) to read the file that was previously sent to the queue.

In the Start Shape connector, “Atom Queue” must be selected as the connector, and the Action must be selected as “Listen”.

The connection will be the same as the Atom Queue Connection we used in the Send Process, and the operation will be set to Listen (Connector Action). “Listen” is set in event-driven retrieval of messages from a Message Queue.
To receive first-in, first-out (FIFO) processing of messages across nodes, set the Maximum Concurrent Executions value to 1.

I used a Notify Shape to send a customized message. Here I am just using the Current Data option, which will print the message that was received from the Atom Queue.

After these two processes are ready, the next step is to create a packaged component for the “Read_Queue” (Listen) process and deploy it.
After deploying, the process can be seen in the Atom Management page -> Listeners, which means the process is in Listen mode.

Next step is to test the process in Test Mode.

Since the “Read_Queue” is already deployed, I will run the first process (in this case, “Send_Queue”).
After the execution is completed without any errors, the message will be sent to the queue, which can be seen from the “Process Reporting” tab, as shown below.

Click on the “View Process Logs” icon. The message can be seen from the Notify Shape, which prints the data that is passed from the first process (Send_Queue).

Errors
Common errors when using Atom Queues are:
- If message delivery fails, the Dead Letter Queue will be created corresponding to the Destination Queue and the failed messages will be placed in the Dead Letter Queue after 6 retry attempts by the shared queue server of the same Atom Queue component. The messages in the destination Dead Letter Queue can be manually retried from the “Queue Management” tab, via the Platform UI.
- If the destination is other than an Atom Queue Server and there is a need to catch the failed messages in case of any failures, the best way to handle this scenario would be to re-queue the failed messages in the catch branch of a try/catch. They can either be placed back on the original queue or they could be placed on some sort of retry queue.
FAQs
Frequently asked questions about this post.
-
What is the Atom Queue connector used for in Dell Boomi?
The Atom Queue connector is used to send and receive messages to and from native Boomi Integration Atom message queues, and it supports both Point-to-Point and Publish/Subscribe messaging.
-
How do I send a message to an Atom Queue?
You build a process (in this proof of concept, the Send_Queue process) whose Start Shape uses the No Data option since it does not retrieve data from a source, a Message Shape that holds the message to send (a Hello message here), and an Atom Queue connector with the Send action, then end the flow with a Stop Shape. The connector needs two components configured: an Atom Queue Connection that specifies the message queue (configured here with the Queue Name AtomQueue_Test) and an Atom Queue Operation with the Send action whose Batch Size is set to 5 by default, which sets the number of documents to batch in each outgoing message.
-
How do I read a message from the Atom Queue?
You create a second process (Read_Queue) whose Start Shape uses the Atom Queue connector with the Listen action for event-driven retrieval of messages from the queue, reusing the same Atom Queue Connection from the Send process, and a Notify Shape that uses the Current Data option to print the message received from the queue. After packaging and deploying the Read_Queue process it appears under Listeners on the Atom Management page, confirming it is in Listen mode.
-
How do I get first-in, first-out (FIFO) processing of messages across nodes?
To receive first-in, first-out (FIFO) processing of messages across nodes, set the Maximum Concurrent Executions value to 1 on the Atom Queue Operation.
-
What happens when message delivery to an Atom Queue fails?
If message delivery fails, a Dead Letter Queue is created corresponding to the Destination Queue and the failed messages are placed in it after 6 retry attempts by the shared queue server of the same Atom Queue component, and those messages can be manually retried from the Queue Management tab in the Platform UI. If the destination is something other than an Atom Queue Server and you need to catch failed messages, the best approach is to re-queue them in the catch branch of a try/catch, placing them back on the original queue or onto a retry queue.