블로그 이미지
redkite

카테고리

분류 전체보기 (291)
00.SI프로젝트 산출물 (0)
00.센터 운영 문서 (0)
01.DBMS ============.. (0)
01.오라클 (117)
01.MS-SQL (15)
01.MySQL (30)
01.PostgreSql (0)
01.DB튜닝 (28)
====================.. (0)
02.SERVER ==========.. (0)
02.서버-공통 (11)
02.서버-Linux (58)
02.서버-Unix (12)
02.서버-Windows (2)
====================.. (0)
03.APPLICATION =====.. (11)
====================.. (0)
04.ETC =============.. (0)
04.보안 (5)
====================.. (0)
05.개인자료 (1)
06.캠핑관련 (0)
07.OA관련 (1)
Total
Today
Yesterday

달력

« » 2024.5
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

공지사항

최근에 올라온 글

3 단계 : 세션수의 제한

   

접속 풀링(Connection Pooling) 기능

 
 

공유서버 프로세스 환경에서 하나의 디스패쳐 프로세스가 처리할 수 있는 세션 수에는 한계가 있습니다. 그리고, 디스패쳐 프로세스의 최대 개수도 제한되어 있습니다. 만약, 많은 사용자가 동시에 데이터베이스에 접속을 요구하고 SQL문의 실행을 요구한다면 제한된 디스패쳐 프로세스의 개수로는 모든 세션을 처리할 수 없을 것입니다.

오라클 8i 버전부터 제공되는 접속풀링 기능은 공유서버 프로세스 환경에서 만 적용할 수 있으며 하나의 디스패쳐 프로세스가 처리할 수 있는 세션 수보다 더 많은 세션을 처리할 수 있도록 이미 연결된 세션들을 풀링(POOLING)하는 기능입니다.

예를 들어, 하나의 디스패쳐 프로세스가 처리할 수 있는 가장 적절한 접속 수가 3개이고 최대 세션 수는 5개라면, 위 그림과 같이 MTS_DISPATCHERS 파라메터에 다음과 같이 환경설정을 하면 됩니다.

    
  
   
 

MTS_DISPATCHERS = "(PRO=TCP)(CON=3)(DIS=2)(POO=ON)(TIC=4)(SESS=T)"

   
 

[PRO]는 PROTOCOL을 의미하고, [CON]은 CONNECTION 수, [DIS]는 DISPATCHER 프로세스의 수,
[POO]는 POOLING 여부, [TIC]는 TIMOOUT 시간(1 TICK =10초), [SESS]는 SESSION 수를 의미하는 키워드입니다

TICK 키워드는 사용자 프로세스가 디스패쳐에게 요청하는 TIMEOUT 시간입니다. 무작정 요청을 하고 대기할 수는 없기 때문에 TIMEOUT 시간 동안 만 재 요청을 하게되고 TIMEOUT 시간이 지나면 다른 디스패쳐에게 요청하게 됩니다. 단위는 TICK이며 1 TICK은 10초를 의미합니다.

이렇게 환경설정을 한 다음 데이터베이스를 재 시작하면 접속풀링 기능이 활성화됩니다.
하나의 디스패쳐는 최대 5개의 세션을 관리하게 됩니다. 하지만, 가장 유효한 접속 수는 3개이고 2개는 유효한 3개의 세션 중에 유휴상태의 세션이 발견되면 접속상태를 보류시킨 후 새로운 세션의 작업으로 처리하게 됩니다. 결론적으로 2개는 기존의 세션상태에 따라 연결될 수도 있고 안될 수도 있게 됩니다.

접속풀링 기능은 제한된 디스패쳐 프로세스 환경에서 보다 많은 사용자들에게 데이터베이스에 접속할 수 있도록 허용하며 디스패쳐 프로세스에서 발생하는 경합문제로 인해 성능이 저하되는 문제를 해결해 주는 기능입니다.

   
 
Posted by redkite
, |

최근에 달린 댓글

최근에 받은 트랙백

글 보관함