Search code examples
javaspringhibernatewebspherejta

How to determine if a WebSphere app is really doing XA transaction?


I have a Spring 3 application running on WebSphere ND 8.5.1 the application talks to WebSphereMQ and DB2. The apps seems to be using Hibernate / JPA to talk to the database. The spring transaction manager that is defined.

<bean id="transactionManager" class="org.springframework.transaction.jta.WebSphereUowTransactionManager">
</bean>

The Datasource I see defined on the WAS admin console is an XA datasource. The JMS connection does not seem to use XA.

I suspect that the application is defining an XA datasource but is not actually ever doing any XA transactions.

Is there way in WebSphere ND 8.5 to determine if XA transactions are actually being used rather than an admin just happened to configure an XA datasource just in case it's needed?


Solution

  • A way to see whether Global Transactions (i.e. XA or 2 Phase Commit Transactions) are executing is through the Performance Viewer (Monitoring and Tuning > Performance Viewer > Current Activity > > Performance Modules > Transaction Manager).

    Active Count (The number of concurrently active global transactions), Committed Count (The number of global transactions that are committed) and RolledbackCount (The number of global transactions that are rolled back) should be the numbers that interest you.