]
Kevin Conner commented on JBESB-3941:
-------------------------------------
One comment to make is that the EPR is for the caller and not the service and it should be
possible to specify these differently, as such the suggested fix is not really correct.
As a workaround it is likely possible to specify the transacted flag as a property on the
service.
ESB ignoring transacted flag on EPR element
-------------------------------------------
Key: JBESB-3941
URL:
https://issues.jboss.org/browse/JBESB-3941
Project: JBoss ESB
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: Rosetta
Affects Versions: 4.12
Reporter: Tom Cunningham
Assignee: Tom Cunningham
Fix For: 4.11 CP3
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) ;
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: