Uploaded image for project: 'JBoss ESB'
  1. JBoss ESB
  2. JBESB-3941

ESB ignoring transacted flag on EPR element


    • Type: Bug
    • Status: Open (View Workflow)
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: 4.12
    • Fix Version/s: 4.11 CP3
    • Component/s: Rosetta
    • Labels:


      Description of problem:
      For example

      > <jbossesb-listeners
      > deployment="Quickstart_JMS_Transacted.esb"
      > parameterReloadSecs="5">
      > <listener
      > busIdRef="quickstartEsbChannel"
      > listenerClass="org.jboss.soa.esb.listeners.message.MessageAwareListener"
      > maxThreads="1"
      > mep="OneWay"
      > name="jmssecured"
      > service-category="JMSSecuredESB"
      > service-description="JMS Secured quickstart sample"
      > service-name="SimpleListener">
      > <EPR
      > acknowledge-mode="AUTO_ACKNOWLEDGE"
      > connection-factory="XAConnectionFactory"
      > destination-name="queue/quickstart_jms_transacted_Request_esb"
      > destination-type="queue"
      > persistent="true"
      > protocol="jms"
      > transacted="true"/>

      If you set a breakpoint on the MessageAwareListener where it retrieves the value for 'transacted', i.e. "transactional = _config.getBooleanAttribute(ListenerTagNames.TRANSACTED_TAG, false) ;", and if you then in Eclipse Debug mode analyse the 'this._config' (the ConfigTree variable), you can see that that ConfigTree does not have a 'transacted' key in its '_attributes' map. However, one of the Child ConfigTrees of this Listener tree, the 'EPR' ConfigTree, does have a 'transacted = true' value in it's tree. However, _config.getBooleanAttribute(..) does not do a recursive search through the child ConfigTrees (and it probably shouldn't, I'm not sure how this was designed), which explains why it does not return 'true'.

      > I have a proposed hack/fix that would resolve this.
      > In MessageAwareListener line 169. Replace
      > From
      > transactional = _config.getBooleanAttribute(ListenerTagNames.TRANSACTED_TAG, false) ;
      > To
      > transactional = _config.getChildren("EPR")[0]..getBooleanAttribute(ListenerTagNames.TRANSACTED_TAG, false) ;

        Gliffy Diagrams




              • Assignee:
                tcunning Thomas Cunningham
                tcunning Thomas Cunningham
              • Votes:
                0 Vote for this issue
                3 Start watching this issue


                • Created: