Состояние транзакции в JDBC

AQTime от AutomatedQA предлагает Профилировщику Статического анализа. Я никогда не использовал этого профилировщика, но радо теми профилировщиками AQTime, что я регулярно использую. При потере работоспособности по этому пути, можно интегрировать AQTime с TestComplete для выполнения этого вида профилирования как часть непрерывного подхода интеграции.

5
задан cadrian 5 October 2009 в 16:13
поделиться

1 ответ

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;
}
4
ответ дан 15 December 2019 в 01:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: