AQTime от AutomatedQA предлагает Профилировщику Статического анализа. Я никогда не использовал этого профилировщика, но радо теми профилировщиками AQTime, что я регулярно использую. При потере работоспособности по этому пути, можно интегрировать AQTime с TestComplete для выполнения этого вида профилирования как часть непрерывного подхода интеграции.
JDBC не отслеживает состояние транзакции. Это задача БД - отслеживать состояние транзакции.
Учитывая это, у вас все еще есть два способа отслеживания / знания состояний транзакции.
Вы можете сделать вызов sql в свою БД, чтобы запросить детали транзакции. для оракула он будет в таблице транзакций v $, предложенной в этой публикации .
SELECT COUNT(*)
FROM v$transaction t, v$session s, v$mystat
WHERE t.ses_addr = s.saddr AND s.sid = m.sid AND ROWNUM = 1;
Другое решение - использовать код диспетчера транзакций в некоторых распространенных средах, таких как спящий режим (я думаю, в Spring он тоже есть).
public interface Session {
public abstract org.hibernate.Transaction getTransaction();
}
public Transaction {
public abstract boolean wasRolledBack() throws org.hibernate.HibernateException;
public abstract boolean wasCommitted() throws org.hibernate.HibernateException;
public abstract boolean isActive() throws org.hibernate.HibernateException;
}