Table of Contents
Overview
BMT calls JDBC Driver calls
ut.begin() oracle.jdbc.xa.client.OracleXAResource
...
ut.commit() oracle.jdbc.xa.client.OracleXAResource.end
oracle.jdbc.xa.client.OracleXAResource.commit <--- Here we want to set a Breakpoint
Prepare the Breakpoint
Class Name : oracle.jdbc.xa.client.OracleXAResource Method Name : commit Stop on : Method Entry Actions - Suspend : All Threads
- Select suspend all Threads if you want to avoid that any Wildly Thread is running a rollback
- If you want Transaction Recovery takes place by other Wildfly Threads you may select Suspend Breakpoint Thread
- Don’t use oracle.jdbc.xa.OracleXAResource for debugging as this package only defines abstract methods
Start the Netbeans project in DEBUG MODE
Netbeans Debug -> Debug Main Project --> Above action will redeploy our project in DEBUG mode NetBeans: Deploying on WildFly Application Server profile mode: false debug mode: true force redeploy: true Undeploying ... Initial deploying WFJPA2EL to /usr/local/wildfly-8.2.0.Final/standalone/deployments/WFJPA2EL-1.0.war Completed initial distribution of WFJPA2EL Deploying /usr/local/wildfly-8.2.0.Final/standalone/deployments/WFJPA2EL-1.0.war Application Deployed Debugger console reports successfully setting the breakpoint in [oracle.jdbc.xa.client.OracleXAResource].commit Attaching to localhost:8787 MethodBreakpoint [oracle.jdbc.xa.client.OracleXAResource].commit successfully submitted. User program running After the program hits a breakpoint runs Debugger Console should report Method breakpoint hit in oracle.jdbc.xa.client.OracleXAResource.commit at line 553 by thread default task-3. Thread default task-3 stopped at OracleXAResource.java:553.
How to Copy the Stack Trace after our Worker Thread stops at a Breakpoint
Select Debugging TAB default task-7 [ this Thread was stopped by our Debugger ] Hidden Soruce Calls OracleXAResource.java:553 <-- Right Click here and select COPY STACK Stack Sample "default task-7" oracle.jdbc.xa.client.OracleXAResource.commit(OracleXAResource.java:553) org.jboss.jca.adapters.jdbc.xa.XAManagedConnection.commit(XAManagedConnection.java:338) org.jboss.jca.core.tx.jbossts.XAResourceWrapperImpl.commit(XAResourceWrapperImpl.java:107) com.arjuna.ats.internal.jta.resources.arjunacore.XAResourceRecord.topLevelOnePhaseCommit(XAResourceRecord.java:679) com.arjuna.ats.arjuna.coordinator.BasicAction.onePhaseCommit(BasicAction.java:2317) com.arjuna.ats.arjuna.coordinator.BasicAction.End(BasicAction.java:1475) com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.end(TwoPhaseCoordinator.java:96) com.arjuna.ats.arjuna.AtomicAction.commit(AtomicAction.java:162) com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1166) com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.commit(BaseTransaction.java:126) com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.commit(BaseTransactionManagerDelegate.java:75) org.jboss.tm.usertx.client.ServerVMClientUserTransaction.commit(ServerVMClientUserTransaction.java:173) com.hhu.wfjpa2el.JPATestBean.timeoutTest(JPATestBean.java:466)