Hibernate で jboss 4.2 を使用しています。トランザクションの継続時間をログに記録する必要があるため、トランザクションの完了またはロールバックにかかる平均時間に関する統計があります。私が抱えている別の問題は、jboss JTA (arjuna) が実行時間の長いトランザクションを中止することです。そのため、そこで設定するタイムアウトを知る必要があります。
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);
上記のコードスニペットでは、これをどのように実現できるかを考えています。
必要に応じて、log4j
またはslf4j
apiを使用でき、log4j.properties
ファイルには一部の設定のみを行うことができます。
お役に立てば幸いです。
于 2012-04-04T06:37:18.797 に答える