次の方法で共有


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

既定以外のバインド用に 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 を実行する必要があります。

    Von Bedeutung

    クライアント エンドポイントの 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 データベース アダプターのバインディング プロパティのいずれかを設定できます。

svcutil.exeの既定以外のバインドの構成の詳細については、の WCF ドキュメントの「カスタム のセキュリティで保護されたメタデータ エンドポイント」トピックを参照してください。

POLLINGSTMT 操作の既定以外のバインドを構成する

svcutil.exe を使用して POLLINGSTMT 操作用の WCF サービス コントラクトを作成するには、acceptCredentialsInUri に加えて、pollingStatement プロパティを含むように既定以外のバインドを構成する必要があります。 pollingStatement には、テーブルを対象とする SELECT ステートメントが含まれている必要があります。 Oracle データベース アダプターは、このプロパティを使用して、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 テーブルに対する挿入および削除操作用の 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"

Von Bedeutung

コマンド ラインに接続 URI を引用符で囲む必要があります。 それ以外の場合、svcutil.exe は Oracle Database アダプターがサポートしていない操作のメタデータの取得を試みます。 このような試行の結果は未定義です。

既定では、svcutil.exe は生成されたコードをoutput.cs ファイルに配置します。ただし、コマンド ライン スイッチを設定することで、出力ファイルの名前やその他の多くのオプション svcutil.exe 変更できます。 svcutil.exe がサポートするオプションの詳細については、の WCF ドキュメントの「ServiceModel メタデータ ユーティリティ ツール (Svcutil.exe)」トピックを参照してください。

Svcutil.exe では、(ワイルドカード文字を使用するなどして) 操作を検索する機能は提供されません。 ターゲットにする特定の操作のノード ID を明示的に指定する必要があります。 カテゴリのみを参照するノード ID を指定することはできません。 Oracle Database アダプターが表示するノード ID の詳細については、「 メタデータ ノード ID」を参照してください。

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

こちらもご覧ください

BizTalk Adapter for Oracle データベースのメッセージとメッセージ スキーマ