2012-07-06 7 views
1

Oracle 데이터베이스에 연결할 때 JDBC를 사용합니다. 응용 프로그램이 매우 오래 실행 중입니다. 그래서 연결이 서버에 의해 닫히지 않았 으면 네트워크 연결이 끊어지는 등의 일이 발생하지 않습니다. 작은 쿼리를 실행하거나 다른 방법으로 존재해야합니까? isValid 사용 jdbc 드라이버에서 지원하지 않기 때문에 할 수 없습니다.연결 상태를 확인하는 방법은 무엇입니까?

SELECT 1 
    FROM dual 

같은 간단한 쿼리, 뭔가를 실행

답변

4

가장 절대 안전한 방법입니다. 이것이 대부분의 Java EE 어플리케이션 서버가 연결 풀의 연결이 여전히 활성 상태인지 확인하는 것입니다.

+0

서버 쿼리에서 응답하지 않으면 오랜 시간이 걸릴 수 있습니까? – user710818

+0

@ user710818 - 대다수의 경우 연결이 과거에 성공적으로 열렸다 고 가정하면 연결이 끊어 졌거나 즉시 데이터베이스에 대해 쿼리가 실행되는 것을 즉시 감지합니다. 네트워크에서 패킷을 데이터베이스 서버로 라우트하는 기능을 잃은 직후에 쿼리를 실행하면 패킷이 시간 초과 될 때까지 약간의 시간이 걸릴 수 있습니다. 그러나 그것은 매우 드문 것으로 당신이 할 수있는 다른 일이 더 빨리 실패 할 것 같지는 않습니다. –

관련 문제