WCF チャネル モデルを使用して Oracle Database アプリケーションを開発する
Windows Communication Foundation (WCF) チャネル モデルを使用すると、Oracle DB バインディングで作成されたチャネル インスタンスを介して XML メッセージを直接送信することで、Microsoft BizTalk Adapter for Oracle Database を使用できます。
WCF サービス モデルが公開する厳密に型指定されたクラスとメソッドを使用するよりも WCF チャネル モデルを使用する利点の 1 つは、チャネル モデルが Oracle データベースで実行する操作をよりきめ細かく制御できる点です。 なぜですか? WCF チャネル モデルでは、チャネル経由で送信するメッセージの内容を直接制御します。
特定のシナリオでは、この追加レベルの制御が役立つ場合があります。 たとえば、WCF チャネル モデルを使用してテーブルに対して Update 操作を実行する場合、メッセージで渡す更新テンプレートから列を省略することで、ターゲット行の列を選択的に更新できます。 WCF クライアントによって公開される更新メソッドは、テーブル スキーマ内のすべての列を含むテンプレートに対して厳密に型指定されたレコード パラメーターを使用します。 WSDL に列に "nillable=false" がある場合は、WCF サービス モデルを使用して列を更新する必要があります。
WCF チャネル モデルが WCF サービス モデルに対して提供するもう 1 つの重要な利点は、Oracle ラージ オブジェクト (LOB) データ型のエンドツーエンド ストリーミングをより包括的にサポートすることです。 WCF チャネル モデルを使用すると、エンドツーエンドのストリーミングを実行できます。
UpdateLOB 操作を使用してテーブルまたはビューの LOB 列を更新する。
プロシージャおよび関数によって返される LOB データを含む OUT および IN OUT パラメーター。
SQLEXECUTE 操作の結果に含まれる LOB データ。
POLLINGSTMT 操作で返される LOB データ列。
テーブルまたはビューに対する Select 操作によって返される LOB データ列。
これは、WCF チャネル モデルでは、送信メッセージにメッセージ本文を指定する方法と、受信メッセージのメッセージ本文を処理する方法を直接制御するためです。
これに対し、WCF サービス モデルでは次の機能のみが提供されます。
1 つの操作 (ReadLOB 操作) での LOB データのエンド ツー エンド ストリーミング。
ストリーミング形式で Oracle データベースの LOB データを更新する機能はありません。
このトピックのセクションでは、WCF チャネル モデルを使用して Oracle データベース アダプターに対して操作を実行する方法について説明します。