Hello, I'm new here.

I have a Websphere Application Server 7.0.0.9, on which an application is running that uses springframework 2.0.9 and hibernate 3.3.0 (or 3.4.0, or both, I'm not sure). TransactionManager is org.springframework.transaction.jta.WebSphereUowTr ansactionManager.

I have a method that is annotated as @org.springframework.transaction.annotation.Transa ctional. This method calls another method that is also annotated as @org.springframework.transaction.annotation.Transa ctional:

Java Code:
@Transactional
public void myMethod() {
    doSomeUpdates();
    nestedMethod();
}
@Transactional
public void nestedMethod() {
    doSomeMoreUpdates();
}
The method "myMethod" is supposed to be atomary. Sometimes there is a bug when updates from "doSomeUpdates" are rolled back, but updates from "doSomeMoreUpdates" are commited.

Default propagation settings are Propagation.REQUIRED. I tried changing my code to:

Java Code:
@Transactional
public void myMethod() {
    doSomeUpdates();
    nestedMethod();
}
@Transactional(propagation = Propagation.MANDATORY)
public void nestedMethod() {
    doSomeMoreUpdates();
}
I tried looking in logs to find whether this change has solved my bug, but cannot make no heads no tails of the quagmire that is my log files. I'm logging sql statements via org.hibernate.jdbc.util.SQLStatementLogger class, and dump transactional trivia to websphere's trace.log file: "org.hibernate.transaction.*=finest: org.springframework.transaction.*=finest: com.ibm.ws.Transaction.*=finest: com.ibm.ws.LocalTransaction.*=finest: com.ibm.ws.tx.*=finest: log-sql=finest: oracle.jdbc.*=finest".

With these log settings, it looks like my websphere server produces about 3 new transactions per second, and most of the times SQLStatementLogger doesn't even log anything in that period. How can I see which sql statements are really executed by websphere in each transaction?