Details
-
Bug
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
2.20.0
-
None
-
None
Description
Hi,
The fix in https://issues.apache.org/jira/browse/ARTEMIS-2226 causes excessive notifications to be sent for clients running XA transaction through the Spring framework.
The notifications sent are SESSION_CREATED and SESSION_CLOSED.
I strongly suspect this is because Spring DMLC cannot cache consumers properly when running XA, causing it to create and remove a new session for each message processed.
Now I am not arguing that is not bad practice, because it is, but lots of applications run on top of this logic. I also suspect this might affect more but not be as pronounced.
I have been able to prove the aforementioned patch is what causes the issue by removing:
sendSessionNotification(CoreNotificationType.SESSION_CREATED);
and
sendSessionNotification(CoreNotificationType.SESSION_CLOSED);
from ServerSessionImpl.java (they where added in the patch)
Now I do not fully understand the intent of the original patch but I think it should be made conditional, that is, send those notifications only for MQTT session or something similar.
In the environment I am testing this on the difference is huge as I have a lot of independent applications all running Spring+XA. About 40% of all messages getting sent and received are notifications.
Br,
Anton
Attachments
Issue Links
- links to