Uploaded image for project: 'ActiveMQ Artemis'
  1. ActiveMQ Artemis
  2. ARTEMIS-2934

ARTEMIS-2226 causes excessive notifications to be sent for Spring XA clients

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • 2.20.0
    • 2.21.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

          Activity

            People

              Unassigned Unassigned
              AntonRoskvist Anton Roskvist
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 20m
                  20m