예를 들어서, 클라이언트에서 오라클 서버에 접속하는 경우가 있을 거고...
웹서버(Tomcat, Weblogic 등등)에서 오라클 서버에 접속하는 경우가 있잖아요.
기본적으로 오라클에 동시에 접속할 수 있는 session 수를 어떻게 확인하는지요 ?
또한, 현재 접속자수가 몇 명인지 확인하는 방법하고, 접속이 어느 경로에서 들어왔는지 확인을 하려면 어떻게 해야 할까요 ?
부탁 드립니다.
굉장히 궁금해요.
특히 미들웨어(T-MAX, WEBLOGIC)를 쓰는 이유가 DB 서버와의 접속 차원에서 라이센스와 동시 접속자 때문이라고 하는 것 같은데... 제대로 이해한 건지 모르겠네요...
시스템에 생성될 수 있는 최대 세션의 수는 SESSIONS 파라미터를 설정해 주세요.
SQL> show parameter sessions;
NAME TYPE VALUE------------------------------------ ----------- -----
sessions integer 170
다음은 사용자 세션 ID, 사용자 이름, 접속 프로그램을 보여줍니다.
type이 'USER'로 제한함으로써 백그라운드 프로세스의 세션은 보여주지 않게 했습니다.
SQL> SELECT sid, username, program FROM v$session WHERE type='USER'
SID USERNAME PROGRAM---------- ------------------------------ ----------------- 138 SCOTT sqlplusw.exe
141 A1 JungsanMonth.exe
OCI나 Pro*C를 통해 생성된 바이너리 파일의 실행 시, 위와 같이 세션의 PROGRAM 컬럼에
실행 파일이름(JungsanMonth.exe)을 남김니다.
그리고 미들웨어 쪽에 대해서는 저도 잘 모르겠습니다..그럼^^
매번 답글에 감사 드립니다.
한가지 더 질문을 하자면요...
show parameter sessions; 로 생성될 수 있는 최대 세션의 수를 확인 할 수 있다고 하셨는데요...
예를 들어, 현재 170 이라면, 동시에 접속 가능한 session 수가 170명 이라는 의미 인가요 ?
일반적으로 온라인 쇼핑몰이라던가... 온라인 쪽 업무는 동시 접속자가 몇 만명에서 몇 십만명까지 된다고 대충 들어서 알고 있는 데요...
그럴 경우에는 오라클 서버를 여러대 두어가 운영하지 않을까 싶기도 합니다.
아참, 질문을 하려던 것은요... 현재 값이 170인데... 그 이상의 session을 요구할 경우, 오라클은 어떤 오류 메시지를 보내는지 알고 싶어서요.
개인 PC에서 테스트 하려면 값을 1 정도 주고 2대의 클라이언트에서 접속을 하게 되면, 오류 메시지가 뜰 것 같은데요... 진짜 될지는 잘 모르겠습니다.
WEB 시스템의 특성상 커넥션(session)이 계속 맺어져 있는것이 아니라 클릭을 한다던지 뭔가 동작을 할때만 연결됩니다. 따라서 DB에 세션이 항상 연결되어있진 않구요...
보통 WAS(Web application Server)에 Pool(ex : jdbc connection pool)을 사용하지요...
미리 10여개의 세션이 연결된 상태에서 요청이 들어올 때마다 세션을 할당해주는 방식 입니다.
제가 쇼핑몰 시스템을 본적이 없어서 뭐라 말씀드리긴 그렇지만 WAS를 여러개 운영하면서(시스템 장애방지 내지는 부하 분산용) 적절히 접속가능한 세션을 유지할 것입니다.
이미 pool에서 접속가능한 만큼만 세션을 유지하기 때문에 DB 파라미터보다 더 많은 세션이 접속하진 않을 것이며 만약 할당해줄 세션이 없으면 WAS에서 에러를 발생시킬 것입니다.
C/S 환경의 시스템에서는 DB에 client가 직접 접속하기 때문에 파라미터보다 초과되는 세션이 접속할 수 없습니다. 에러번호는 기억나진 않지만 에러 발생합니다.
도움이 되셨길...