mysql_ping을 통한 wait_Timeout 대처

 

위 소스는 다음과 같은 용도로 사용되었다.

상황 : 각각의 DB를 보유한 서버1,2의 wait_timeout은 120초, 40초로 각각 틀림

 

1. 서버 1,서버2의 연결을 동시에 .php 소스 상단에 생성한다.

2. 서버 1로 DB Insert /Update/Delete/Select 등의 작업을 한다.  이때 서버 1의 작업이 다 끝날때까지 서버2는 연결 유휴상태

wait_timeout이 계산되고 있을것이다.

3. 서버1의 작업시간이 서버2의 wait_timeout 시간인 40초를 넘긴후 서버2에서 DB Query를 날리려고 하는경우 이미 연결 종료됨

 

위의 상황을 방지 하기 위해서는  my.cnt설정내 wait_timeout을 넉넉히 주거나

또는 매번 필요할때마다 연결 -> 연결종료를 해주거나 하는 방법이 있지만 소스 구조나 서버 환경상 여의치 않을경우

위와같이 mysql_ping()을 이용해 한번씩 연결상태를 체크하면서 해결할 수 있다.

]]>

도큐멘트 에 올린 글

댓글 남기기