2012-07-18 4 views
2

JDBC를 사용하여 Derby 데이터베이스에 연결하면 잠시 후 Derby 또는 JDBC가 연결을 자동으로 닫습니다. (이것은 "연결 수명"값 또는 타임 아웃 값이라고도합니다).Derby/JDBC 연결 수명 (또는 유휴 시간 초과)

제한 시간 값은 어디에서 확인할 수 있습니까? 연결을 닫는 Derby 또는 JDBC입니까? "유휴 시간 초과"값입니까? 따라서 해당 연결에서 활동이있는 경우 Derby 또는 JDBC가 업데이트되어 (LastActivity + IdleTimeoutValue)에 연결을 닫으시겠습니까?

나는 지금까지 내가 아는 한, 어떤 자동 타임 아웃 Connection timeout for DriverManager getConnection How to reestablish a JDBC connection after a timeout?

답변

1

더비이나 JDBC 어느 한을 포함하여, 페이지의 무리를 보았다. http://db.apache.org/derby/docs/10.8/ref/rrefattrib24612.html

내가 더비 당신의 연결을 종료하고 있다고 생각하지 않습니다 여기에

는 더비 JDBC의 connnection의 구성의 행동 등을들 수있다.

네트워크 방화벽이나 VPN 또는 명백하게 유휴 상태 인 TCP/IP 연결을 닫는 다른 장비가 있다고 의심됩니다.

IT 직원과 네트워크 구성을 검토하십시오.

+0

비활성으로 인해 Derby도 JDBC도 연결을 닫지 않으면 두 링크의 정보 (원래 게시물/질문에있는 정보)가 잘못되었거나 그들이 말하는 내용을 잘못 이해합니다. 어떤 아이디어? – Mary

+0

이것은 다른 영역 인 TCP keepalive로 연결될 수 있습니다. 그게 문제라면, 그것은 OS 레벨에서 설정되었거나, 어떻게 든 더 이상 Keepalive를 사용하도록 Derby에게 알려주는 것입니다 (더비 구성 가능한 행동 문서에는 없습니다). 나는 또한 ActiveMq를 사용하기 때문에 ActiveMq의 소켓도 살아 있어야한다고 말할 것이다. 이러한 종류의 문제를 구성하고 프로그래밍하는 방법에 대한 기사가있는 경우이를 읽고 싶습니다. – Mary

+0

좀 더 정확히 말하면, Derby의 JDBC 구현은 시간 제한으로 인해 유휴 연결을 닫지 않으며 JDBC는 이러한 기능을 필요로하지 않는다는 것을 의미했습니다. 실제로, 다른 JDBC 구현은 원래의 질문에 연결된 것처럼 이러한 기능을 제공 할 수 있습니다. 다시 말하지만, 네트워크 계층 진단이 유휴 연결이 닫히는 이유를 파악할 수 있도록 도와 줄 것을 IT 담당자에게 요청해야합니다. 더비가 그 일을하고 있다고 생각하지 않기 때문입니다. –