Oracle Database のクライアント バインドを構成する
WCF クライアント クラスを生成したら、WCF クライアント (インスタンス) を作成し、そのメソッドを呼び出して Oracle Database アダプターを使用できます。 Microsoft BizTalk Adapter for Oracle Database が公開する操作の WCF クライアント クラスとヘルパー コードを生成する方法については、「Oracle データベース ソリューション成果物の WCF クライアントまたは WCF サービス コントラクトを生成する」を参照してください。
WCF クライアントを作成するには、エンドポイント アドレスとバインドを指定する必要があります。 エンドポイント アドレスには有効な Oracle 接続 URI が含まれている必要があり、バインドは Oracle DB バインディング (OracleDBBinding) のインスタンスである必要があります。 Oracle 接続 URI の詳細については、「Oracle データベース接続 URI の作成」を参照してください。 接続 URI の一部としてユーザー資格情報を指定しないことをお勧めします。 このトピックで説明するように、代わりに WCF クライアントの ClientCredentials プロパティを使用できます。
Oracle DB バインディングとエンドポイント アドレスは、コードまたは構成ファイルで指定できます。 アダプター サービス参照の追加 Visual Studio プラグインを使用して WCF クライアント クラスを生成すると、プロジェクト用に構成ファイル (app.config) も作成されます。 このファイルには、アダプター サービス参照プラグインを追加して Oracle データベースに接続したときに指定したバインディング プロパティと接続情報 (資格情報を除く) を反映した構成設定が含まれています。
コードでのバインディングとエンドポイント アドレスの指定
次のコードは、コードでバインディングとエンドポイント アドレスを指定して WCF クライアントを作成する方法を示しています。 エンドポイント アドレスに指定された接続 URI ではなく、WCF クライアントの ClientCredentials プロパティを使用して Oracle 資格情報を指定することをお勧めします。
// A WCF client that targets the /SCOTT/EMP table is created
// by using a binding object and endpoint address
OracleDBBinding odbBinding = new OracleDBBinding();
EndpointAddress odbAddress = new EndpointAddress("OracleDb://ADAPTER");
SCOTTTableEMPClient empClient = new SCOTTTableEMPClient(odbBinding, odbAddress);
empClient.ClientCredentials.UserName.UserName = "SCOTT";
empClient.ClientCredentials.UserName.Password = "TIGER";
empClient.Open();
構成ファイルでのバインディングとエンドポイント アドレスの指定
次のコードは、app.config ファイルでバインディングとエンドポイント アドレスを指定して WCF クライアントを作成する方法を示しています。
// A WCF client that targets the /SCOTT/EMP table is created
// by specifying the client endpoint information in app.config
SCOTTTableEMPClient empClient = new SCOTTTableEMPClient("OracleDBBinding_SCOTT.Table.EMP");
empClient.ClientCredentials.UserName.UserName = "SCOTT";
empClient.ClientCredentials.UserName.Password = "TIGER";
empClient.Open();
次の XML は、アダプター サービス参照プラグインの追加によって EMP テーブル用に作成された構成ファイルを示しています。 このファイルには、前の例で参照したクライアント エンドポイント構成が含まれています。
\<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
\<system.serviceModel>
<bindings>
<oracleDBBinding>
<binding name="OracleDBBinding" closeTimeout="00:01:00" openTimeout="00:01:00"
receiveTimeout="00:10:00" sendTimeout="00:01:00"
dataFetchSize="65536" metadataPooling="true" statementCachePurge="false"
statementCacheSize="10" longDatatypeColumnSize="32767" pollingStatement=""
postPollStatement="" pollingInterval="500" useOracleConnectionPool="false"
minPoolSize="1" maxPoolSize="100" incrPoolSize="5" decrPoolSize="1"
connectionLifetime="0" transactionIsolationLevel="ReadCommitted"
enablePerformanceCounters="false" acceptCredentialsInUri="false"
enableBizTalkCompatibilityMode="false" />
</oracleDBBinding>
</bindings>
<client>
<endpoint address="oracledb://adapter/" binding="oracleDBBinding"
bindingConfiguration="OracleDBBinding" contract="SCOTTTableEMP"
name="OracleDBBinding_SCOTT.Table.EMP" />
</client>
\</system.serviceModel>
</configuration>
プロジェクトに複数の WCF クライアントがある場合、構成ファイルに複数のクライアント エンドポイント エントリが定義されます。 各 WCF クライアント エントリには、バインド構成とターゲット Oracle データベース成果物に基づいて一意の名前が付けられます。たとえば、"OracleDBBinding_SCOTT。Table.EMP" プロジェクトで WCF クライアントを作成するために複数回接続すると、接続ごとに 1 つずつ、複数のバインド構成エントリが作成されます。 これらのバインド構成エントリには、OracleDBBinding1、OracleDBBinding2 などの名前が付けられます。 特定の接続中に作成された各クライアント エンドポイント エントリは、その接続中に作成されたバインド エントリを参照します。
参照
WCF サービス モデルを使用した Oracle データベース アプリケーションの開発
Oracle データベース ソリューション成果物用の WCF クライアントまたは WCF サービス コントラクトを生成する
Oracle データベース接続 URI を作成する
WCF チャネル モデルを使用した Oracle データベース アプリケーションの開発