2012-04-04 3 views
0

Я использую jboss 4.2 с Hibernate. Мне нужно регистрировать длительность транзакций, поэтому у меня есть статистика о среднем времени, которое требуется для завершения транзакции или откат. еще одна проблема У меня есть jboss JTA (arjuna), прерывая длительные транзакции, поэтому мне нужно знать, какой тайм-аут нужно настроить там.Как регистрировать транзакции JDBC/Hibernate?

+0

Какая у вас версия Hibernate? Некоторые версии Hibernate могут сами собирать статистику. Или вы можете использовать структуру AOP. –

+0

версия Hibernate 3.0 – erezul

ответ

0

Думаю, вы должны создать таймер, который будет считать время между началом и окончанием транзакции. Возможность достижения этой цели может быть:


EntityManager em = HibernateUtil.createEntityManager(); //I used JPA's EntityManager instead of hibernate's sessions. createEntityManager iss a function created by you. 
EntityTransaction tx = em.getTransaction(); 
tx.begin(); 
Date startDate = new Date(); 

//... your DB stuff goes here ... 

tx.commit(); 
Date endDate = new Date(); 

MyLogger.logTransactionDuration(startDate, endDate); 

В приведенном выше фрагменте кода, я делаю вам представление о том, как вы можете достичь этого.

Если вы хотите, вы можете использовать log4j или slf4j api, и вы должны были бы сделать только некоторые настройки в файле log4j.properties.

Надеюсь помочь.

+0

Я ищу решение «без кодирования», которое уже поддерживается Hibernate или jboss JTA. – erezul

Смежные вопросы