ProstDev ProstDev
Tutorials Jul 28, 2020 · 4 min read

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.

By Sagarika Nagaraja
Dell Boomi Integrations: Using the Atom Queue Connector

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).

Boomi Send_Queue process: Start (No Data), Message, Notify, Atom Queue, then Stop

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.

Boomi Message Shape config holding a JSON "Hello" demo message

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.

Boomi Connector Shape set to Atom Queue connector with the Send action

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”.

New Atom Queue Connection config with Queue set to 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.

Atom Queue Operation set to the Send action with Batch Size of 5

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.

Boomi Read_Queue process: Start (Atom Queue), Notify, then Stop

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

Boomi Start Shape with Atom Queue connector and the Listen action selected

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.

Atom Queue Operation set to Listen with Maximum Concurrent Executions of 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.

Boomi Notify Shape config set to print the Current Data message

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.

Atom Management Listeners page showing Read_Queue in listen mode

Next step is to test the process in Test Mode.

Boomi Test dialog with a Test Atom Cloud selected and a Run Test button

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.

Boomi Executions report showing a completed Read_Queue process run

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).

Boomi process log showing the Notify shape printing the received "Hello" message

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.

Search

Loading search…