다음을 통해 공유


BizTalk Adapter for Oracle Database와 함께 ServiceModel 메타데이터 유틸리티 도구 사용

ServiceModel 메타데이터 유틸리티 도구(svcutil.exe)를 사용하여 Microsoft BizTalk Adapter for Oracle Database에서 노출하는 작업에 대해 WCF 클라이언트 클래스 또는 WCF 서비스 계약(인터페이스)을 생성할 수 있습니다. svcutil.exe 실행하여 WCF 클라이언트 클래스 또는 WCF 서비스 계약을 생성한 후 생성된 파일을 코드에 포함하고 생성된 클래스의 인스턴스를 만들거나 계약에서 WCF 서비스를 구현하여 Oracle 데이터베이스에 대한 작업을 수행할 수 있습니다.

svcutil.exe 사용하려면 자격 증명이 포함된 연결 URI를 제공해야 합니다. 기본적으로 Oracle Database 어댑터는 연결 URI에서 자격 증명을 사용하지 않도록 설정하므로 Oracle Database 어댑터에 기본이 아닌 바인딩을 사용하도록 svcutil.exe 구성해야 합니다.

다음 섹션에서는 svcutil.exe 구성하는 방법과 svcutil.exe 사용하여 Oracle Database 어댑터와 WCF 클라이언트 코드 또는 WCF 서비스 계약을 생성하는 방법을 보여 있습니다.

기본이 아닌 바인딩에 대한 svcutil.exe 구성

기본이 아닌 바인딩을 사용하도록 svcutil.exe 구성하려면 svcutil.exe 로컬 복사본을 만든 다음 svcutil.exe.config 구성 파일의 로컬 복사본을 만들거나 수정해야 합니다.

  1. 폴더를 만들고 svcutil.exe 새 폴더에 복사합니다. 일반적으로 Windows SDK 설치 위치, 특히 C:\Program Files\Microsoft SDKs\Windows\v6.0\Bin에서 svcutil.exe 찾을 수 있습니다.

  2. 새 폴더에 svcutil.exe.config 파일을 만듭니다.

  3. 바인딩 및 클라이언트 엔드포인트를 svcutil.exe.config 파일에 추가합니다. 올바른 구성이 사용되는지 확인하려면 새 폴더에서 svcutil.exe 실행해야 합니다.

    중요

    클라이언트 엔드포인트의 이름 특성은 연결 URI에 사용되는 체계를 지정해야 합니다. 이 값은 대/소문자를 구분합니다.

    <configuration>
      <system.serviceModel>
        <client>
          <!-- the name should match the required scheme of the WS-Metadata Exchange endpoint
          and the contract should be "IMetadataExchange" -->
          <endpoint name="oracledb"
                    binding="oracleDBBinding"
                    bindingConfiguration="OracleDBBinding"
                    contract="IMetadataExchange" />
        </client>
        <bindings>
            <oracleDBBinding>
                <binding name="OracleDBBinding" acceptCredentialsInUri="true" />
            </oracleDBBinding>
        </bindings>
    
      </system.serviceModel>
    
    </configuration>
    

참고

바인딩 구성에서 Oracle Database 어댑터의 바인딩 속성을 설정할 수 있습니다.

svcutil.exe 대한 기본이 아닌 바인딩을 구성하는 방법에 대한 자세한 내용은 의 WCF 설명서에서 "사용자 지정 보안 메타데이터 엔드포인트" 항목을 참조하세요 https://go.microsoft.com/fwlink/?LinkId=96077.

POLLINGSTMT 작업에 대한 기본이 아닌 바인딩 구성

svcutil.exe 사용하여 POLLINGSTMT 작업에 대한 WCF 서비스 계약을 만들려면 acceptCredentialsInUri 외에도 pollingStatement 속성을 포함하도록 기본이 아닌 바인딩을 구성해야 합니다. pollingStatement는 테이블을 대상으로 하는 SELECT 문을 포함해야 합니다. Oracle Database 어댑터는 이 속성을 사용하여 POLLINGSTMT 작업이 반환하는 강력한 형식의 결과 집합을 나타내는 클래스를 생성합니다. 다음 예제에서는 /SCOTT/EMP 테이블을 대상으로 하는 POLLINGSTMT 작업에 대한 WCF 서비스 계약을 생성하는 데 사용되는 바인딩 구성을 보여 줍니다.

<bindings>
    <oracleDBBinding>
        <binding name="OracleDBBinding" acceptCredentialsInUri="true"
                                   pollingStatement="SELECT * FROM EMP FOR UPDATE" />
    </oracleDBBinding>
</bindings>

svcutil.exe 사용하여 WCF 클라이언트 클래스 또는 WCF 서비스 계약 만들기

svcutil.exe 사용하여 Oracle Database 어댑터에 대한 WCF 클라이언트 코드 또는 WCF 서비스 계약(인터페이스)을 생성하려면 MEX(WS-Metadata Exchange) 엔드포인트와 svcutil.exe 코드를 생성하려는 작업 또는 작업을 지정하는 연결 URI를 제공해야 합니다. 또한 연결 URI에서 Oracle 데이터베이스에 대한 연결 자격 증명을 지정해야 합니다.

참고

Oracle 데이터베이스 어댑터에서 svcutil.exe 사용하려면 먼저 기본이 아닌 바인딩을 사용하도록 구성해야 합니다. 이 작업을 수행하는 방법에 대한 자세한 내용은 Oracle 데이터베이스 어댑터에 대한 svcutil.exe 구성을 참조하세요.

다음과 같은 방식으로 Oracle Database 어댑터 연결 URI에서 MEX 엔드포인트 및 대상 작업을 지정합니다.

  • query_string "wsdl" 매개 변수를 포함해야 합니다. query_string 첫 번째 매개 변수인 경우 물음표(?) 바로 다음에 지정됩니다. 첫 번째 매개 변수가 아닌 경우 앞에 앰퍼샌드(&)가 와야 합니다.

  • 하나 이상의 "op" 매개 변수로 "wsdl" 매개 변수를 따라야 합니다. 각 "op" 매개 변수 앞에 앰퍼샌드(&)가 있으며 대상 작업의 노드 ID를 지정합니다.

    다음 세 가지 예제에서는 svcutil.exe 사용하여 다양한 작업을 대상으로 지정하는 방법을 보여 줍니다.

    이 예제에서는 /SCOTT/EMP 테이블에 삽입 작업에 대한 WCF 클라이언트 클래스를 만듭니다.

    .\svcutil "oracledb://User=SCOTT; Password=TIGER@ADAPTER?wsdl&op=http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/Insert"

    이 예제에서는 /SCOTT/EMP 테이블에서 삽입 및 삭제 작업에 대한 WCF 클라이언트 클래스를 만듭니다.

    .\svcutil "oracledb://User=SCOTT; Password=TIGER@ADAPTER?wsdl&op=http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/Insert& op=http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/Delete"

    이 예제에서는 POLLLINGSTMT 작업에 대한 WCF 서비스 계약을 만듭니다. (svcutil.exe 사용하여 POLLINGSTMT 작업에 대한 WCF 서비스 계약을 생성하려면 폴링 문을 포함하는 svcutil.exe 대한 기본이 아닌 바인딩을 구성해야 합니다.

    .\svcutil "oracledb://User=SCOTT; Password=TIGER@ADAPTER?wsdl&op=http://Microsoft.LobServices.OracleDB/2007/03/POLLINGSTMT"

중요

명령줄에서 연결 URI를 따옴표로 묶어야 합니다. 그렇지 않으면 svcutil.exe Oracle 데이터베이스 어댑터가 지원하지 않는 작업에 대한 메타데이터를 검색하려고 시도합니다. 이러한 시도의 결과는 정의되지 않습니다.

기본적으로 svcutil.exe 생성된 코드를 output.cs 파일에 배치합니다. 그러나 명령줄 스위치를 설정하여 출력 파일의 이름과 svcutil.exe 사용하는 다른 많은 옵션을 변경할 수 있습니다. svcutil.exe 지원하는 옵션에 대한 자세한 내용은 의 WCF 설명서에서 "ServiceModel 메타데이터 유틸리티 도구(Svcutil.exe)" 항목을 참조하세요 https://go.microsoft.com/fwlink/?LinkId=72777.

Svcutil.exe 작업을 검색하는 기능을 제공하지 않습니다(예: 와일드카드 문자 사용). 대상으로 지정하려는 특정 작업에 대해 노드 ID를 명시적으로 지정해야 합니다. 범주만 참조하는 노드 ID는 지정할 수 없습니다. Oracle Database 어댑터가 표시하는 노드 ID에 대한 자세한 내용은 메타데이터 노드 ID를 참조하세요.

어댑터 서비스 참조 Visual Studio 플러그 인 추가는 WCF 클라이언트 클래스 및 WCF 서비스 계약 생성을 크게 간소화할 수 있는 고급 찾아보기 및 검색 기능을 제공합니다. 어댑터 서비스 참조 플러그 인 추가에 대한 자세한 내용은 Oracle 데이터베이스 솔루션 아티팩트용 WCF 클라이언트 또는 WCF 서비스 계약 생성을 참조하세요.

참고 항목

BizTalk Adapter for Oracle Database에 대한 메시지 및 메시지 스키마