ServiceModel メタデータ ユーティリティ ツールと BizTalk Adapter for Oracle Database の使用

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 を使用して WCF クライアント コードまたは WCF サービス コントラクトを Oracle Database アダプターと共に生成する方法について説明します。

既定以外のバインドの svcutil.exe を構成する

既定以外のバインドを使用するように svcutil.exe を構成するには、svcutil.exe のローカル コピーを作成してから、svcutil.exe.config 構成ファイルのローカル コピーを作成または変更する必要があります。

  1. フォルダーを作成し、svcutil.exe を新しいフォルダーにコピーします。 通常、svcutil.exe は Windows SDK のインストール場所 (具体的には C:\Program Files\Microsoft SDKs\Windows\v6.0\Bin) にあります。

  2. 新しいフォルダーに svcutil.exe.config という名前のファイルを作成します。

  3. バインドとクライアント エンドポイントを svcutil.exe.config ファイルに追加します。 正しい構成が使用されるようにするには、新しいフォルダーから svcutil.exe を実行する必要があります。

    重要

    クライアント エンドポイントの name 属性は、接続 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 サービス コントラクト (インターフェイス) を生成するには、WS-Metadata Exchange (MEX) エンドポイントと、コードを生成する操作または操作を指定 svcutil.exe 接続 URI を指定する必要があります。 接続 URI で Oracle データベースの接続資格情報も指定する必要があります。

注意

Oracle Database アダプターで svcutil.exe を使用する前に、既定以外のバインドを使用するように構成する必要があります。これを行う方法については、「 Oracle データベース アダプターの svcutil.exe の構成」を参照してください。

次の方法で、Oracle Database アダプター接続 URI で MEX エンドポイントとターゲット操作を指定します。

  • query_stringに "wsdl" パラメーターを含める必要があります。 query_stringの最初のパラメーターである場合は、疑問符 (?) の直後に指定されます。 最初のパラメーターでない場合は、アンパサンド (&) を前に付ける必要があります。

  • "wsdl" パラメーターの後に、1 つ以上の "op" パラメーターを指定する必要があります。 各 "op" パラメーターの前にはアンパサンド (&) が付き、ターゲット操作のノード ID を指定します。

    次の 3 つの例は、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 テーブルに対する Insert 操作と Delete 操作用の 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 Database アダプターがサポートしていない操作のメタデータの取得を試みます。 このような試行の結果は未定義です。

既定では、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」を参照してください。

Add Adapter Service Reference Visual Studio プラグインには、WCF クライアント クラスと WCF サービス コントラクトの生成を大幅に簡略化できる高度な参照機能と検索機能が用意されています。 アダプター サービス参照プラグインの追加の詳細については、「 Oracle データベース ソリューション成果物の WCF クライアントまたは WCF サービス コントラクトの生成」を参照してください。

参照

BizTalk Adapter for Oracle Database 用のメッセージとメッセージ スキーマ