본문 바로가기
프로그래밍

[DB] Connection이 끊기는 문제 해결 - MSSQL에서의 방법

by 건우아빠유리남편 2011. 12. 23.
반응형

[DB] Connection이 끊기는 문제 해결

보통 쿼리를 하기 위해 우리는 DB와의 커넥션을 열고, 쿼리를 하고 닫든가 그냥 둔다.

이 쿼리를 진행하고 난 후에 닫을 것인지, 그냥 둘 것인지는 솔루션의 성향에 따라 달라지겠다.

아무튼~ 닫지 않고 그냥 둘 경우에는... 자꾸 Connection이 끊어지는 현상이 발생한다. 왜일까...
이 문제에 대해 겁내 삽질하다가... 아래와 같은 포스트를 작성~ㅠㅠ 문제 해결~ 팍팍~




유력한 오류는 이와 같은 이유라고 생각 합니다.

MySQL에서는 WaitTimeOut란 설정이 있고

연결이후 설정한 시간동안 아무런 행동을 하지 않으면 MySQL에서는 해당 연결을 종료시킵니다.

MySQL뿐만이 아니라 다른 DB에도 같은 설정이 있는 것으로 알고 있습니다.

한번 확인해보시구요.

만약 위 문제가 맞다면

주기적으로 빈 Query를 날려주는 (Mysql의 경우 mysql_ping이라는 함수가 있음) 것을 만드시면 될 듯 하네요.

 

이와 같이 MSSQL에서 찾은 결과 Management Studio에서 서버개체를 선택 후 속성 페이지에 가보면 아래와 같이 원격 쿼리 제한 시간이 600 = 10분 으로 설정되어있는데 이것을 0으로 바꿔주면 될 듯 합니다.

 



이 항목에 대한 MSDN의 설명입니다.

서버에 대한 원격 연결 허용

SQL Server 인스턴스를 실행하는 원격 서버에서의 저장 프로시저 실행을 제어합니다. 확인란을 선택하는 것은 sp_configureremote access 옵션을 1 설정하는 것과 같습니다. 확인란의 선택을 취소하면 원격 서버에서 저장 프로시저를 실행할 없습니다.

원격 쿼리 제한 시간(, 0 = 제한 시간 없음)

SQL Server에서 제한 시간이 초과될 때까지 원격 작업을 수행할 있는 시간을 단위로 지정합니다. 기본값은 600이며 10 대기할 있습니다.

서버 통신에 분산 트랜잭션 필요

MS DTC(Microsoft Distributed Transaction Coordinator) 트랜잭션을 통해 서버 프로시저 작업을 보호합니다. 자세한 내용은 remote proc trans 옵션 참조하십시오.

반응형

댓글