Windows 2000 혹은 2003에서 ASP.NET을 위한 오라클 연동은 몇가지 방법이 있습니다.


1. OleDb Provider 사용 (VS.NET 2002/2003)

 

2. ODBC Provider 사용 (VS.NET 2003 내장,  2002는 microsoft에서 다운로드)


3. OracleClient 사용 (VS.NET 2003 내장-사용시 참조추가해야함,
    2002는 microsoft.com에서 다운)

 

4. ODP.NET Provider 사용 (oracle.com에서 다운로드)


 기본 사용방법은 대동소이하며, 다만 트랜잭션의 지원여부 차이가 있고, 속도에 차이가 있지만
중요한것은 안정성과 한글 인코딩 문제입니다.

환경에 따라 여러가지 변수가 있지만....학습용이라면 OleDb를 권장합니다.


사이트 전문 개발이라면... 안타깝게도 그 상황에 따라 대처법이 틀려집니다.
(오라클과 MS 양사에 직접 문의 한 결과로는 ASP.NET에 오라클을 사용하는 것은 2 회사 모두 부정적이었습니다. 이유는 영어권 이외의 언어에서는 호환이 전혀 안되기 때문입니다.)

연결을 위해 사전 준비 작업은 Oracle 9i혹은 Oracle 8i에 해당하는 Client를 설치하여 Net Assistant를 설정해야 합니다. 또한, ODBC를 사용할 경우 MDAC 2.7 이상을 설치하셔야 합니다. 대부분 같은 비슷한 사용환경을 지원하지만, ConnectionString만 조금 다를 뿐입니다.


OleDb의 ConnectionString은 위와 같은 준비를 끝낸 후 닷넷 통합환경에서 (보통 왼쪽에 있는)
서버 연결을 통해 오라클을 설정한 후 프로바이더 연결 문자를 복사해서 쓰시면 됩니다.
기본적으로 Password=구문은 빠지므로, Password=[Password]는 직접 입력하셔야 합니다.
ODBC는 Driver={Microsoft ODBC for Oracle}; Server=[Net 연결설정명]; uid=[user]; pwd=[pwd] 입니다.


Driver의 문자열에 다른 드라이버를 사용한 결과 모두 에러가 났습니다. 꼭 MS 제공용 ODBC 드라이버를 사용하셔야 할 듯합니다.

OracleClient는 Server=[Net 연결설정명]; uid=[user]; pwd=[pwd]으로 하시면 됩니다.

ODP.NET은 oracle.com에서 사용법을 참고 하시면 됩니다.

처리 속도는 1. ODP, 2. ORACLECLIENT, 3. ODBC, 4. OLEDB 순입니다.

그렇지만 한글 지원문제에 대해 오라클 서버의 NLS가 US7ASCII로 설정되어 있다면..
반드시 odbc 또는 oledb를 사용하십시오. 2bytes 체계의 코드는 전혀 지원을 못합니다.

실무에서는 보통 Oracle은 Unix에 설치되어 있기 때문에 학습시에 Windows 2000/2003에 오라클을 설치하여 사용하시는 것은 좋은 경험이라 할 수 없을 듯 합니다.
그렇기 때문에 학습시에는 OleDb를 활용하시기 바랍니다.

 

Oracle 9i와의 연결시엔 아래 사항을 수정해주세요.

 

C:\WINNT\Microsoft.NET\Framework\v1.0.3705\CONFIG\
machine.config파일에서 아래 userName부분을 machine에서 system으로 고칩니다.

<processModel
            enable="true"
            timeout="Infinite"
            idleTimeout="Infinite"
            shutdownTimeout="0:00:05"
            requestLimit="Infinite"
            requestQueueLimit="5000"
            restartQueueLimit="10"
            memoryLimit="60"
            webGarden="false"
            cpuMask="0xffffffff"
            userName="SYSTEM" <-- machine을 system
            password="AutoGenerate"
            logLevel="Errors"
            clientConnectedCheck="0:00:05"
            comAuthenticationLevel="Connect"
            comImpersonationLevel="Impersonate"
            responseRestartDeadlockInterval="00:09:00"
            responseDeadlockInterval="00:03:00"
            maxWorkerThreads="25"
            maxIoThreads="25" />


참고라도 될 만한 글이었으면 하네요...

+ Recent posts