IT 개발 노트/DB_TIBERO

세션(SESSION) 그것이 문제로다

뺄칸 2024. 11. 22. 15:13

데이터베이스 최대 연결 개수를 고민하는 경우는 흔치 않은 일입니다.

프로젝트 진행하면서 여러 개의 웹 서버가 한개의 티베로 DB와 통신을 위해 연결한 세션의 개수가 문제가 되었습니다.

웹 서버는 스프링 기반으로 제작되었는데 커넥션 풀(DBCP)을 기본 8개로 설정되어 있습니다. 웹 서버가 한대라면 문제가 없겠지만 여러 대의 웹서버에서 디비의 세션 카운트는 최대 100개를 넘어버린 상황으로 아래와 같은 에러 메시지를 출력했습니다.

[15:59:24.635]JDBC-90603:Invalid operation: disconnected from the server.

[14:21:23.078]JDBC-12003:Unable to open a session.

 

해당 메시지를 마주한다면 원격으로 접속하여 정리 작업을 할 수 밖에 없습니다.

만약 티베로 스튜디오가 접속해 있다면 정리하면 쿼리문으로 간단하게 세션정리를 할 수도 있습니다.

 

티베로 스튜디오 접속된 상태에서 SESSION 정리하기

-- 세션 정보
SELECT * FROM V$SESSION;

-- IP 별로 접속 개수 확인.
SELECT ipaddr, count(1) FROM V$SESSION GROUP BY ipaddr;

-- 최대 세션 개수 확인.
SELECT * FROM _vt_parameter WHERE name='MAX_SESSION_COUNT';

-- 세션 끊기 (SID, SERIAL#)
ALTER SYSTEM KILL SESSION (79, 33588);

 

원격 접속으로 서비스 종료

 

-- 티베로 DB 서비스 종료 명령.
C:\> TBDOWN

-- 종료 에러가 난다면, 정리해주는 명령으로 종료하기.
C:\> TBDOWN CLEAN

 

 

데모 버전이라도 세션의 개수는 제한이 없습니다.

SESSION COUNT 증가하기

C:\TmaxData\tibero6\config 경로로 이동합니다.
tibero.tip 파일을 엽니다.

-- 최대 접속 개수 지정.
MAX_SESSION_COUNT = 100

-- 메모리 관련 옵션 (Chuck Memory)
TOTAL_SHM_SIZE=1G
MEMORY_TARGET=2G


MAX_SESSION_COUNT를 100 이상으로 설정했다면,
TOTAL_SHM_SIZE, MEMORY_TARGET 값도 증가가 필요합니다.
증가 처리하지 않고 티베로를 실행(tbboot)하면,
프로세스가 동작하지 않을 확률이 매우 높습니다.


-- 서비스 시작 명령.
C:\> TBBOOT

 

'IT 개발 노트 > DB_TIBERO' 카테고리의 다른 글

[TIBERO] 페이징 처리 (top, limit)  (0) 2024.12.09
SEQUENCE 자동 증가 사용  (0) 2024.11.26
티베로6 ODBC 설정  (0) 2024.11.22
티베로 데모 버전 사용해보기  (1) 2024.11.22