2012-04-04 3 views
0

나는 최대 절전 모드에서 jboss 4.2를 사용하고있다. 트랜잭션 기간을 기록해야하므로 트랜잭션 완료 또는 롤백에 걸리는 평균 시간에 대한 통계가 있습니다. 또 다른 문제는 jboss JTA (arjuna)가 장기 실행 트랜잭션을 중단하기 때문에 거기에서 구성 할 시간 제한을 알아야합니다.JDBC/Hibernate Transactions 기간을 기록하는 방법?

+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