Hello,

We are using ActiveMQ Artemis to enable multiple web applications of the same 
type (developed with Spring Boot) to send messages with each other to keep data 
up to date. When working in a development environment such as Eclipse/IntelliJ 
IDEA, we are able to have these instances communicate with each other without 
issues. However, we encounter issues when we deploy the application on Wildfly 
in both development and production machines.

In both environments, there is a server hosting the Artemis broker, and there 
are other servers, each hosting various instances of the application. The 
problem we encounter is the loss of some messages, which end up in the DLQ 
(Dead Letter Queue). This issue particularly occurs as network traffic 
increases, especially on queues that accumulate hundreds or sometimes thousands 
of messages. Upon examining the Artemis logs, this is what is reported for each 
lost message:
WARN  [org.apache.activemq.artemis.core.server] AMQ222149: Message 
Reference[8970196914]:RELIABLE:CoreMessage[messageID=8970196914,durable=true,userID=1adf1f6d-119a-11ee-93f5-005056bbcfcf,priority=4,
 timestamp=Fri Jun 23 09:46:46 CEST 2023,expiration=0, durable=true, 
address=I01-or,size=35909,properties=TypedProperties[__AMQ_CID=ID:A12.sg.it-34045-1681291484686-0:1,_AMQ_GROUP_SEQUENCE=0,__HDR_BROKER_IN_TIME=1687506406853,_AMQ_ROUTING_TYPE=1,__HDR_ARRIVAL=0,__HDR_COMMAND_ID=192161375,__HDR_PRODUCER_ID=[0000
 0040 7B01 002C 4944 3A41 4947 4F52 2D31 322E 736F 6769 6E2E 6974 2D33  ...  
3132 3931 3438 3436 3836 2D31 3A31 0000 0000 0000 0001 0000 0000 0298 
3F1A),_AMQ_DUPL_ID=ID:A12.sg.it-34045-1681291484686-1:1:43532058:1:1,__HDR_MESSAGE_ID=[0000
 0053 6E00 017B 0100 2C49 443A 4149 474F 522D 3132 2E73 6F67 696E 2E69  ... 00 
0000 0000 0100 0000 0002 983F 1A00 0000 0000 0000 0100 0000 0000 0000 
00),__HDR_DROPPABLE=false]]@1995702679 has reached maximum delivery attempts, 
sending it to Dead Letter Address DLQ from I01-or

As indicated by the logs, the maximum number of attempts to recover the message 
has been reached. However, upon analyzing the application logs, there are no 
errors or any information indicating an attempt by the application to retrieve 
the message (for each received message, logs are generated at the time of 
message reception). Additionally, there are no messages indicating connection 
issues to the Artemis broker.

We attempted to replicate the same scenario locally by using a Docker container 
for Artemis and a virtual machine to deploy the application (with the same OS 
as the development and production machines). When deploying the application on 
Wildfly we encounter a similar issue as described earlier. However, if we try 
to run the application from the virtual machine but in a development 
environment (IntelliJ IDEA), the issue does not occur (we performed the same 
operations in both cases and used the same configuration to connect to the 
Artemis broker).

Regarding the versions used, we provide them below:

  *   ActiveMQ Artemis, version 2.16.0. We also tried using a more recent 
version of Artemis (2.30.0), but we have the same problem.
  *   Web Application: Spring Boot, Java 8, Tomcat web server.
  *   Database: PostgreSQL version 10.10.
  *   Wildfly 18.0.0.
As for the configuration parameters used for Artemis, the broker.xml 
configuration file has not been modified. The configuration takes place within 
the application. We are using the starter ‘spring-boot-starter-activemq’ with 
the following settings:

  *   Artemis Mode: native.
  *   Connection Factory - trust al packages: true.
  *   Connection Factory – connection response timeout: 999999.
  *   Connection Factory – close timeout: 999999.
  *   Connection Factory – send Timeout: 999999.
  *   Connection Factory – use async send: true.
  *   Redelivery Policy - initial redelivery delay: 1000.
  *   Redelivery Policy - back off multiplier: 3.
  *   Redelivery Policy - max redeliveries: 7.
  *   Redelivery Policy - max redelivery delay: 60000.
  *   Default JMS Container Factory – recovery interval: 5000.

What could be the cause of the problem, and how can we resolve it?

Thank you,

Christian Esposito

Reply via email to