TECH
QUESTION
자주하는 질문답변 입니다.
Oracle
작성자 | 유건데이타 | 등록일 | 2015-05-16 |
제목 | Connection Manager를 이용한 MPI 기능 설정 | ||
---|---|---|---|
========================================
Connection Manager를 이용한 MPI 기능 설정 ======================================== Net8 에서는 MPI(MultiProtocol Interchange) 기능을 Connection Manager 를 이용하여 구현할 수가 있다. MultiProtocol Interchange는 서로 다른 프로토콜을 쓰는 환경의 중간에 위치하여 이들 간의 데이타 전송 통로 역할을 하는 제품이다. 예를 들어 TCP/IP을 사용하는 WIN95 클라이언트에서 SPX/IPX 프로토콜을 사용하는 오라클 데이타베이스에 접속하는 문제를 생각해 보자. TCP/IP 와 SPX/IPX 는 직접 연결될 수 없지만 중간에 MPI를 설치하면 문제를 해결할 수 있다. 즉, 클라이언트는 TCP/IP 프로토콜을 이용하여 MPI 에 접속을 하고 MPI 에서는 이를 SPX/IPX로 변환하여 오라클로 전송하게 된다. 반대의 경우로 데이타베이스는 MPI 에게 SPX/IPX를 통해서 전달하면 MPI는 이를 TCP/IP 로 변환하여 클라이언트에게 전달하게 된다. TCP/IP와 SPX/IPX 와 같이 서로 다른 프토로콜간의 연결 뿐 아니라 TCP/IP와 TCP/IP 간의 연결도 가능하며 이와같은 형태는 Windows NT 환경에서 SQL*Net Proxy 기능이 없는 Firewall 을 사용할 때 사용된다. 요즘은 SPX/IPX 를 사용하는 네트워크 환경에서도 대부분 TCP/IP를 지원해 주기 때문에 여기서는 실제환경에서 더 많이 사용되는 TCP/IP와 TCP/IP 간의 연결에 대해서 알아보기로 한다. 셋업할 화일은 2가지가 있다. 1. 서버의 $ORACLE_HOME/network/admin/cman.ora 2. 클라이언트의 $ORACLE_HOME/network/admin/tnsnames.ora << cman = (ADDRESS_LIST= (ADDRESS=(PROTOCOL=tcp)(HOST=o200)(PORT=1610)) ) cman_profile = (parameter_list= (MAXIMUM_RELAYS=2000) (LOG_LEVEL=1) (TRACING=yes) (RELAY_STATISTICS=yes) (SHOW_TNS_INFO=yes) (USE_ASYNC_CALL=yes) (AUTHENTICATION_LEVEL=0) ) << cman = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL= TCP)(Host= myhost)(Port= 1610)) (ADDRESS = (PROTOCOL= TCP)(Host= myhost)(Port= 1521)) ) (CONNECT_DATA = (SID = RC73)) (SOURCE_ROUTE=YES) ) 이제 Connection Manager를 서버쪽에서 기동을 한다 $cmctl CMCTL>start ADMIN Status: (STATUS=(VERSION=8.0.4.0.0)(STARTED=30-MAR-99 11:42:52)(STATE=RUNNING)) CMAN Status: (STATUS=(VERSION=8.0.4.0.0)(STARTED=30-MAR-99 11:42:56)(STATE=running)) Connection Manager 가 제대로 기동이 되었으면 다음과 같이 2개의 프로세스가 뜨게 된다. $ps -ef | grep cm rctest80 13998 1 0 15:29:31 ? 0:00 /mnt3/rctest80/app/oracle/product/ 804/bin/cmadmin rctest80 21199 1 0 15:29:34 ? 0:00 /mnt3/rctest80/app/oracle/product/ 804/bin/cmgw 이와 같이 설정을 한 다음에 클라이언트에서는 다음과 같이 접속을 한다. $sqlplus scott/tiger@cman 그러면 클라이언트는 서버의 1610 포트로 접속을 하게 되고 Connection Manager는 1610 포트와 1521 포트간의 데이타 전달기능 하게 된다. 그리고 오라클 측에서는 1521 포트와 통신을 하게 된다. 여기서 중요한 점이 SOURCE_ROUTE=YES 부분인데 이 파라미터의 역할은 ADDRESS_LIST 의 첫번째 ADDRESS 가 Connection Manager 이고 두번재 ADDRESS가 실제로 접속할 오라클 리스너의 ADDRESS 임을 알려주는 것이다. 이상과 같이 Net8의 Connection Manager를 사용함으로써 서로 다른 프로토콜간의 데이타 교환이나, Windows NT에서 Winsock 1.x 를 사용함으로써 Socket Sharing 을 하지 못하는 문제에 대한 해결책으로 이용할 수 있다. 출처 : oracle korean bulletin |
Comment | |||
---|---|---|---|
등록된 코멘트가 없습니다. |