◆ 커넥션 처리① - 리스너를 기동한다.


커넥션 처리의 상세 내용을 창고 회사 오라클에 비유해서 설명한다.

리스터는 창고 회사 오라클의 접객 담당이다. listener.ora 파일은 접객 담당이 기다리는 '회사의 대표 전화번호' 및 '내선 전화번호부' 이다. 리스너는 한 개로 여러 개의 데이터베이스를 안내할 수 있다. 물론 일반적으로 한 개의 리스너로 한 개의 데이터베이스를 담당하게 된다. 오라클은 보통 1521번을 리스너의 포트 번호로 사용하지만, 다른 애플리케이션과 충돌이 발생할 때는 다른 번호를 사용해도 상관없다.


리스너가 자신이 안내해야 하는 데이터베이스를 아는 방법으로는 listener.ora 파일에 기록되어 있는 설정을 읽거나, 데이터베이스가 자동으로 등록하는 방법이 있다.


◆ 커넥션 처리② - 애플리케이션에서의 커넥션


업무 애플리케이션 안에서 커넥션 명령이 실행되거나, SQL Plus 에서 connect 명령어를 실행한 순간에 커넥션이 수행된다. 일반적으로 tnsnames.ora에 커넥션 디스크립터를 작성해 놓고 커넥션 디스크립터마다 커넥션 식별자(별칭)를 붙입니다. 그래서 커넥션할 때는 해당 커넥션 식별자를 오라클 클라이언트에 전달하기만하면 됩니다. 전화로 비유하자면 '단축 다이얼'이다. 일반적으로 오라클 클라이언트는 tnsnames.ora 의 커넥션 디스크립터 정보를 사용해서 리스너와의 사이에 소켓을 생성하고, 리스너에게 '이 데이터베이스와 통신하고 싶어' 라고 연락을 합니다.




◆ 커넥션 처리③ - 서버 프로세스의 생성


소켓을 생성하면 리스너가 그대로 SQL 처리를 해도 될 것 처럼 보이지만, 한번 SQL 처리를 시작하면 SQL을 처리하느라 다른 처리를 할 수 없으므로 즉시 전담 영업 담당자인 서버프로세스를 생성해서 처리를 인계합니다.

리스너는 서버 프로세스 생성이 끝나면 소켓을 서버 프로세스에 인계합니다. 인계후부터는 서버프로세스와 오라클 클라이언트가 직접 송수신하므로 리스너는 자유로워 집니다. 


이것이 바로 '병렬 처리를 가능케 하고 높은 처리량을 실현한다'에 해당합니다.


[출처 : 그림으로 공부하는 오라클 구조 中]


반응형

'■ 관심 사항 > □ 잡동사니' 카테고리의 다른 글

[OPIC] 걷기 (Walking)  (0) 2016.07.01
2016년 3월 2일  (0) 2016.03.03
포트르 일리치 차이콥스키  (0) 2015.05.23
빌리 홀리데이  (0) 2015.05.23
헨리 데이비드 소로우(1817~1862)  (0) 2015.05.14
반응형