2009-04-03 7 views
0

:ThreadLocalSessionContext休止状態:私は次のようにThreadLocalSessionContextを使用しようとすると(バインドするための呼び出しにバインドすでにセッション)

Session hsession = HibernateUtils.getSession(); 
ThreadLocalSessionContext.bind(hsession); 
// do stuff 
hsession.close(); 

私はすべての単一のStrutsのアクションのためにこれを行います。私が間違っていることがあり、私に次のエラーが出るのですか?

[ThreadLocalSessionContext] Already session bound on call to bind(); make sure you clean up your sessions! 

私は彼らにThreadLocalSessionContext.bindを持っていたすべての私のファイルをチェックし、これらのセッションが明示的に閉じていることを確認しました。セッションがセッションファクトリにバインドされたときを監視する方法はありますか?

ありがとうございます!

答えて

0

documentationは、「このクラスによって管理されているセッションでclose()が呼び出された場合、自動的にアンバインドされます」と示しています。それは実際には自動ではありません!

ThreadLocalSessionContext.unbind(sessionFactory)を明示的に呼び出してセッションをバインド解除する必要があります。それ以外の場合、セッションが閉じられても、SessionFactoryにバインドされたままです。

関連する問題