JMSTemplate transacted session not working with MQ resource adapter in Jboss

88 Views Asked by At
        <property name="connectionFactory" ref="jmsConnectionFactory" />
            <property name="destinationResolver" ref="jmsDestResolver" />
            <property name="sessionAcknowledgeModeName" value="CLIENT_ACKNOWLEDGE" />
            <property name="sessionTransacted" value="true" /> 
            </bean> 

We are getting below error.(MQ RA + JBoss EAP). JMSCC0014: It is not valid to call the 'commit' method on a nontransacted session. The application called a method that must not be called on a nontransacted session

<property name="sessionTransacted" value="false" />

is working fine. JBoss config connection factory and queue is shown below. Any suggestion would be highly appreciated. The connection factory is always returning a non transacted session. Is it like there should be multiple connection factories with transacted and non transacted session?

<subsystem xmlns="urn:jboss:domain:resource-adapters:6.0">
            <resource-adapters>
                <resource-adapter id="wmq.jmsra.rar">
                    <archive>
                        wmq.jmsra.rar
                    </archive>
                    <transaction-support>XATransaction</transaction-support>
                    <connection-definitions>
                        <connection-definition class-name="com.ibm.mq.connector.outbound.ManagedConnectionFactoryImpl" jndi-name="java:jboss/xxx" enabled="true" connectable="true" tracking="false" use-java-context="false" pool-name="xxx">
                            <config-property name="channel">xxx</config-property>
                            <config-property name="hostName">xxx</config-property>
                            <config-property name="transportType">CLIENT</config-property>
                            <config-property name="queueManager">xxx</config-property>
                            <config-property name="port">xxx</config-property>
                        </connection-definition>
                      </connection-definitions>
                    <admin-objects>
                        <admin-object class-name="com.ibm.mq.connector.outbound.MQQueueProxy" jndi-name="java:jboss/xxx" pool-name="xxx">
                            <config-property name="baseQueueName">xxx</config-property>
                            <config-property name="baseQueueManagerName">xxx</config-property>
                    </admin-object>
                    </resource-adapter>
            </resource-adapters>
</subsystem>
        
0

There are 0 best solutions below