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)