0

我正在使用带有 Hibernate 的 jboss 4.2。我需要记录事务的持续时间,所以我统计了事务完成或回滚所需的平均时间。我遇到的另一个问题是 jboss JTA (arjuna) 中止长时间运行的事务,所以我需要知道在那里配置什么超时。

4

1 回答 1

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);

在上面的代码片段中,我让您了解如何实现这一点。

如果您愿意,您可以使用log4jslf4japi,并且您只需在log4j.properties文件中进行一些设置。

希望有所帮助。

于 2012-04-04T06:37:18.797 回答