cubrid_broker.conf의 parameter인 TIME_TO_KILL과 SESSION_TIMEOUT에 대하여 간략하게 설명합니다.
이해를 돕기 위해 Broker에 대해 간략하게 설명한다.
하나의 Broker는 MIN(MAX)_NUM_APPL_SERVER에서 설정하는 수 만큼의 cas process를 가질 수 있다.
Broker는 이 cas process를 이용하여 DB와 통신한다.
TIME_TO_KILL parameter는 용도는?
우선 TIME_TO_KILL은 MIN(MAX)_NUM_APPL_SERVER parameter와 관련성을 가지고 있다.
AP와 cas process의 통신을 제어할 능력을 가지고 있지 않다.
CUBRID의 Broker는 위의 MIN(MAX)_NUM_APPL_SERVER parameter에 의해 최소와 최대 개수의 cas process를 가질 수 있다.
기본 개수는 MIN_NUM_APPL_SERVER에 명시한 개수이며 이는 Broker를 구동할 때 대기하는 process의 개수이기도 하다.
사용량에 따라 MAX_NUM_APPL_SERVER에 명시한 개수까지 cas process가 증가된다.
이 cas process가 TIME_TO_KILL에 명시된 시간(초)안에 재사용되지 않으면 증가된 cas process는 제거된다.
이는 사용 안되는 cas process가 불필요한 대기 자원을 사용하는 것을 방지하기 위해서이다.
SESSION_TIMEOUT parameter의 용도는?
우선 SESSION_TIMEOUT은 프로그램(AP)과 DB와의 통신에 관여한다.
이는 AP와 DB와의 통신에서 설정값을 초과하는 시간동안 작업 요청에 응답이 없는 경우 해당 세션을 종료하게된다.
그렇다면 SESSIOM_TIMEOUT에 명시된 시간이 넘도록 작업 요청을 하지 않다가 접속을 시도할 경우 항상 재연결을 시도해 줘야하는가?
이에 대한 설정 parameter가 KEEP_CONNECTION이다.
KEEP_CONNECTION parameter의 용도는?
cas process와 프로그램(AP)사이의 연결 방식을 지정하는 parameter이다.
OFF/ON/AUTO로 구분되며, OFF일 경우 트랜잭션 단위로 연결하며, 이 의미는 트랜잭션이 끊나면 연결 종료가 된다는 것.
다시 접속하기 위해서는 새로 연결을 맺는다.
ON일 경우는 connection 단위로 연결한다. 이 의미는 연결을 끊기전에는 계속 cas process를 잡고 있겠다는 것.
재접속을 위해 새로 연결을 할 필요가 없다.
AUTO가 default다. 이는 cas process가 프로그램(AP)의 연결의 개수보다 많은 경우 connection 단위로 적을 경우 트랜잭션 단위로 연결한다.
접속할 때마다 재연결을 하기 않기를 원한다면?
KEEP_CONNECTION을 ON으로 설정하거나 default인 AUTO에서 cas process가 프로그램(AP)의 연결의 개수보다 많게 유지하면 된다.