在我的hibernate應用程序中,我寫下了將EmployeeRegistration對象保存到Oracle數據庫的代碼。即使在關閉會話後,Hibernate仍然在oracle數據庫中保持非活動會話
public Integer submitDetails(EmployeeRegistration es)
{
Session session = factory.openSession();
Transaction tx = null;
Integer employeeID = null;
try
{
tx = session.beginTransaction();
employeeID = (Integer)session.save(es);
session.flush();
tx.commit();
}
catch(HibernateException e)
{
if(tx != null)
{
tx.rollback();
}
e.printStackTrace();
}
finally
{
if(session.isOpen()) {
session.close();
}
}
return employeeID;
}
關閉會話後,它會在oracle db中保留非活動會話。我在oracle中使用下面的查詢檢查了不活動的會話。
SQL> select USERNAME,COUNT(*) FROM V$SESSION WHERE STATUS='INACTIVE' GROUP BY USERNAME ;
如何通過休眠殺死所有非活動會話。任何人都可以幫助我解決這個問題。
您是否啓用連接池?會話在oracle中定期清理。它可能不是即時的。 – OldProgrammer
不,我在這個應用程序中沒有使用連接池。 – Badal
向我們展示Hibernate配置。 –