2016-03-11 2 views
0

У меня возникла эта проблема, когда @Predestroying моего приложения соединение с данными не закрывается, любая идея?Соединение с источником данных Hibernate не закрывается

@PreDestroy 
public void freeDatasource() { 


    try { 
     System.out.println("---------"+ds.getConnection().isClosed()); 
     ds.getConnection().close();        
     System.out.println("-------"+ds.getConnection().isClosed()); 

    } catch (SQLException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
     } 

Выход: ----- ложная ---- ложь

Thankyou

ответ

1

Это потому, что каждый раз, когда вы звоните ds.getConnection(), ваш DATASOURCE вернется один из экземпляров соединения в пуле. Поэтому, если вы хотите проверить, отключено ли соединение или нет, вам лучше назначить его переменной, а затем проверить.

public void freeDatasource() { 

Connection conn = ds.getConnection; 
    try { 
     System.out.println("---------"+conn.isClosed()); 
     conn.close();        
     System.out.println("-------"+conn.isClosed()); 

    } catch (SQLException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
     } 
Смежные вопросы