Incorrect Queue Configuration
In this document, we will use the actual root cause analysis information to make a generic view that can be used if you run into the same or similar problem. Finally, the document will describe the situation, the problem, the analysis, and the result.
Should you have any questions, please get in touch with academy@emagiz.com.
1. Situation
The user observed that in Production, messages were placed on a queue but were never retrieved from said queue, which needed to be clarified. When using the eMagiz messaging pattern we use queues to handle the interaction and data transfer between various parts of your integration process. To ensure that the data packets follow the correct path from start to finish, the various in-between queues need to be aligned to avoid issues.
2. Problem
The problem in this case was that messages were piling up in a queue without them being retrieved from the queue. This is undesirable as messages should only linger in a queue with consumers, which causes a problem in how eMagiz processes data.
3. Analysis
3.1 Reproduction
To reproduce the issue, we looked at the client's model and checked all possible flows that could produce the message on the queue. We noticed additional JMS outbound components indicating a custom configuration in several of these flows. We were able to zoom in on the most likely culprit in question and entered "Start Editing" mode to verify the queue configuration in the JMS outbound component. In this flow, we noticed that a leading space caused the queue to appear the same but, in reality, differ.
3.2 Analysis
Our reproduction concluded that the messages were placed in the wrong queue. Changing the flow configuration could resolve the issue for future messages. On top of that, we could configure a custom piece of logic within a flow that reads data from the misconfigured queue and places it in the correct queue. This way, we could also retrieve the messages that were stuck in the queue.
4. Result
When working with custom queues It is essential to triple-check the name of the queue address you provide in a JMS inbound or outbound channel adapter to avoid problems like these.