Oracle Database 接続 URI を作成する
Microsoft BizTalk Adapter for Oracle Database 接続 URI には、アダプターが Oracle データベースへの接続を確立するために使用するプロパティが含まれています。 このトピックでは、tnsnames.ora を使用し、tnsnames.ora を使用せずに Oracle データベースに接続する接続 URI を指定する方法について説明します。 また、接続 URI を使用して Oracle データベースに接続する方法についても説明します。
tnsnames.ora を使用して Oracle データベースに接続するための接続 URI
重要
- この方法では、アダプター クライアントがインストールされているコンピューター上の tnsnames.ora ファイルに net サービス名エントリを追加する必要があります。 net サービス名エントリの詳細については、「 Oracle Database アダプター用の Oracle クライアントの構成」を参照してください。
- Oracle クライアントの制限により、トランザクションで操作を実行する場合、接続 URI の DataSourceName パラメーター (net サービス名) に 39 文字を超える文字を含めることはできません。 したがって、トランザクションで操作を実行する場合は、 DataSourceName パラメーターに指定された値が 39 文字以下であることを確認してください。
WCF の一般的なエンドポイント アドレス URI は、次のように表されます。 scheme://userauthparams@hostinfoparams?query_string
-
scheme
はスキーム名です。 -
userauthparams
は、エンドポイントによるユーザー認証に必要なパラメーターの名前と値のコレクションです。 -
hostinfoparams
は、ホストへの接続を確立するために必要な情報です。たとえば、パスです。 -
query_string
は、疑問符 (?) で区切られたパラメーターの省略可能な名前と値のコレクションです。
Oracle Database アダプター接続 URI は、この基本的な形式に準拠しており、次のように実装されます。
oracledb://[NET_SERVICE_NAME]?PollingId=[POLLING_ID]
または、より高度なシナリオでは、次の手順を実行します。
oracledb://User=[USER_NAME];Password=[PASSWORD]@[NET_SERVICE_NAME]?PollingId=[POLLING_ID]
次の表では、接続 URI に含まれるプロパティについて説明します。
接続 URI プロパティ | カテゴリ | 説明 |
---|---|---|
[USER_NAME] | userauthparams | Oracle データベースでの認証に使用するユーザー名 (例: SCOTT )。 接続 URI でユーザー名とパスワードを指定するには、 AcceptCredentialsInUri バインド プロパティを true に設定する必要があります。
AcceptCredentialsInUri バインド プロパティは、[バインドのBizTalk Server] タブでは使用できません。メモ Oracle データベース アダプターは、Oracle データベースで接続を開いたときに、ユーザー名に対して入力した値の大文字と小文字を保持します。 Oracle データベースのユーザー名では、大文字と小文字が区別されます。 Oracle データベースで想定される場合は、Oracle データベース アダプターに Oracle ユーザー名を指定する必要があります。 通常、これは SCOTT/TIGER 資格情報のユーザー名が大文字である必要があることを意味します。 |
[PASSWORD] | userauthparams | Oracle データベースでの認証に使用するパスワード (例: TIGER )。 接続 URI でユーザー名とパスワードを指定するには、 AcceptCredentialsInUri バインド プロパティを true に設定する必要があります。
AcceptCredentialsInUri バインド プロパティは、[バインドのBizTalk Server] タブでは使用できません。メモ Oracle データベース アダプターは、Oracle データベースで接続を開いたときにパスワードに入力した値の大文字と小文字を保持します。 リリース 10g 以前では、Oracle システム上のパスワードは大文字と小文字が区別されません。 |
[NET_SERVICE_NAME] | hostinfoparams | Oracle Database アダプターがインストールされているコンピューター上の tnsnames.ora ファイルに指定されているネット サービス名。 net サービス名と tnsnames.ora の詳細については、「 Oracle Database アダプター用に Oracle クライアントを構成する」を参照してください。 |
[POLLING_ID] | query_string | アダプターによって POLLINGSTMT 操作の標準名前空間に追加する必要がある省略可能な文字列。 これにより、プロジェクトに複数のポーリング操作が含まれている場合に、ポーリング操作ごとに一意の名前空間を指定できます。 プロジェクトに POLLINGSTMT 操作が 1 つだけ含まれている場合は、PollingId 文字列を指定する必要はありません。 |
Note
クエリ パラメーターは、WCF メタデータ Exchange クライアントにエンドポイント アドレスが指定されている場合にも、接続 URI で使用されます。
tnsnames.ora を使用せずに Oracle データベースに接続するための接続 URI
重要
- この方法では、tnsnames.ora ファイル内の net サービス名、または実際の tnsnames.ora ファイル自体をクライアント コンピューターに存在させる必要はありません。
- トランザクションで操作を実行している場合、この接続モードはサポートされません。 これは、Oracle クライアントの制限によるものです。
WCF の一般的なエンドポイント アドレス URI は、次のように表されます。 scheme://userauthparams@hostinfoparams?query_string
-
scheme
はスキーム名です。 -
userauthparams
は、エンドポイントによるユーザー認証に必要なパラメーターの名前と値のコレクションです。 -
hostinfoparams
は、ホストへの接続を確立するために必要な情報です。たとえば、サーバー名、ポート番号などです。 -
query_string
は、疑問符 (?) で区切られたパラメーターの省略可能な名前と値のコレクションです。
Oracle Database アダプター接続 URI は、この基本的な形式に準拠しており、次のように実装されます。
oracledb://[SERVER_ADDRESS]:[PORT_NUMBER]/[SERVICE_NAME]/[SERVICE_TYPE]?PollingId=[POLLING_ID]
または、より高度なシナリオでは、次の手順を実行します。
oracledb://User=[USER_NAME];Password=[PASSWORD]@[SERVER_ADDRESS]:[PORT_NUMBER]/[SERVICE_NAME]/[SERVICE_TYPE]?PollingId=[POLLING_ID]
次の表では、接続 URI に含まれるプロパティについて説明します。
接続 URI プロパティ | カテゴリ | 説明 |
---|---|---|
[USER_NAME] | userauthparams | Oracle データベースでの認証に使用するユーザー名。たとえば、SCOTT です。 接続 URI でユーザー名とパスワードを指定するには、 AcceptCredentialsInUri バインド プロパティを true に設定する必要があります。
AcceptCredentialsInUri バインド プロパティは、[バインドのBizTalk Server] タブでは使用できません。 メモ Oracle データベース アダプターは、Oracle データベースで接続を開いたときに、ユーザー名に対して入力した値の大文字と小文字を保持します。 Oracle データベースのユーザー名では、大文字と小文字が区別されます。 Oracle データベースで想定される場合は、Oracle データベース アダプターに Oracle ユーザー名を指定する必要があります。 通常、これは SCOTT/TIGER 資格情報のユーザー名が大文字である必要があることを意味します。 |
[PASSWORD] | userauthparams | Oracle データベースの認証に使用するパスワード。たとえば、TIGER です。 接続 URI でユーザー名とパスワードを指定するには、 AcceptCredentialsInUri バインド プロパティを true に設定する必要があります。
AcceptCredentialsInUri バインド プロパティは、[バインドのBizTalk Server] タブでは使用できません。 メモ Oracle データベース アダプターは、Oracle データベースで接続を開いたときにパスワードに入力した値の大文字と小文字を保持します。 リリース 10g 以前では、Oracle システム上のパスワードは大文字と小文字が区別されません。 |
[SERVER_ADDRESS] | hostinfoparams | Oracle データベースが実行されているサーバーの名前または IP アドレス。 この種類の接続を使用している場合、これは必須です。 |
[PORT_NUMBER] | hostinfoparams | Oracle Net リスナー ポート。 値が指定されていない場合、アダプターは既定値 1521 を受け取ります。 |
[SERVICE_NAME] | hostinfoparams | Oracle データベース サービス名。 この種類の接続を使用している場合、これは必須です。 |
[SERVICE_TYPE] | hostinfoparams | Oracle サービスの種類。 使用可能な値は Dedicated または Shared です。 専用サービスでは、専用サーバー プロセスを使用して、1 つのユーザー プロセスのみを処理します。 共有サービスは、複数のユーザー プロセスに対応できる共有サーバー プロセスを使用します。 既定値は専用です。 |
[POLLING_ID] | query_string | アダプターによって POLLINGSTMT 操作の標準名前空間に追加する必要がある省略可能な文字列。 これにより、プロジェクトに複数のポーリング操作が含まれている場合に、ポーリング操作ごとに一意の名前空間を指定できます。 プロジェクトに POLLINGSTMT 操作が 1 つだけ含まれている場合は、PollingId 文字列を指定する必要はありません。 |
Note
クエリ パラメーターは、WCF メタデータ Exchange クライアントにエンドポイント アドレスが指定されている場合にも、接続 URI で使用されます。
Oracle データベースの資格情報と接続 URI
既定では、Oracle データベースの資格情報が接続 URI で指定されている場合、Oracle Database アダプターは例外をスローします。 これは、これらの資格情報が接続 URI でプレーン テキストとして表され、セキュリティ上のリスクがあるためです。 AcceptCredentialsInUri バインド プロパティを設定して、接続 URI に Oracle データベースの資格情報を含めることができるかどうかを制御できます。 AcceptCredentialsInUri プロパティが false の場合、接続 URI に Oracle データベース資格情報が含まれている場合、Oracle Database アダプターは例外をスローします。プロパティが true の場合、例外はスローされません。
接続 URI で資格情報を指定する必要があるシナリオがいくつかあります。 たとえば、WCF サービス モデルまたは WCF チャネル モデルを使用するときに受信 POLLINGSTMT 操作を受信する場合です。 ただし、ほとんどの状況では、接続 URI に資格情報を指定しないようにする必要があります。 Oracle データベースの資格情報をより安全に提供する方法の詳細については、「 Oracle Database アプリケーションのセキュリティ保護」を参照してください。
重要
文字列に資格情報をプレーン テキストとして渡すことで発生するセキュリティ 上のリスクがあるため、接続 URI で Oracle データベース接続資格情報を指定しないようにする必要があります。
接続 URI での予約文字の使用
Oracle Database アダプターでは、パラメーター値に特殊文字を含む接続 URI の指定はサポートされていません。 接続パラメーターの値に特殊文字が含まれている場合は、次のいずれかの操作を行ってください。
[アダプター サービス参照プラグインの追加] または [アダプター サービス アドインの使用] を使用して Visual Studio で URI を指定する場合は、[ URI のプロパティ ] タブでそのまま指定する必要があります。つまり、エスケープ文字は使用しません。 [URI の 構成 ] フィールドで URI を直接指定し、接続パラメーターに予約文字が含まれている場合は、適切なエスケープ文字を使用して接続パラメーターを指定する必要があります。
BizTalk Server管理コンソールで送受信ポートを作成するときに URI を指定し、接続パラメーターに予約文字が含まれている場合は、適切なエスケープ文字を使用して接続パラメーターを指定する必要があります。
接続 URI を使用して Oracle データベースに接続する
Oracle Database アダプターの接続 URI の例を次に示します。
tnsnames.ora の使用 | tnsnames.ora を使用しない |
---|---|
oracledb://ADAPTER この例では、ADAPTER は、tnsnames.ora 内のターゲット Oracle データベースのサービス名と接続情報に関連付けられているネット サービス名です。 |
oracledb://yourOracleServer:1521/yourOracleDatabaseServiceName/Dedicated この例では、サーバー名は "yourOracleServer" で、サービス名は "yourOracleDatabaseServiceName" です。 |
POLLINGSTMT 操作の接続 URI の例を次に示します。 この URI には、POLLINGSTMT 操作の名前空間を変更するための PollingId パラメーターが含まれています。
tnsnames.ora の使用 | tnsnames.ora を使用しない |
---|---|
oracledb://ADAPTER?PollingId=MyPollingNotification1 |
oracledb://yourOracleServer:1521/yourOracleDatabaseServiceName/Dedicated? PollingId=MyPollingNotification1 |
上記の接続 URI の場合、Oracle Database アダプターは POLLINGSTMT 操作用に次の名前空間を作成します。
http://Microsoft.LobServices.OracleDB/2007/03/POLLINGSTMTMyPollingNotification1
次の場合に Oracle データベースへの接続を確立する方法について説明します。
アダプター サービス BizTalk プロジェクト アドインを使用するか、アダプター サービスの追加リファレンス Visual Studio プラグインを使用します。「アダプター サービスを 使用して Visual Studio で Oracle データベースに接続する」を参照してください。
BizTalk Server ソリューションで送信ポートまたは受信ポート (場所) を構成する方法については、「Oracle データベース アダプターへの物理ポート バインドを手動で構成する」を参照してください。
プログラミング ソリューションで WCF チャネル モデルを使用する方法については、「 Oracle Database を使用してチャネルを作成する」を参照してください。
プログラミング ソリューションで WCF サービス モデルを使用する方法については、「 Oracle Database のクライアント バインドを構成する」を参照してください。
WCF ServiceModel メタデータ ユーティリティ ツール (svcutil.exe) を使用する方法については、「 BizTalk Adapter for Oracle Database での ServiceModel メタデータ ユーティリティ ツールの使用」を参照してください。
参照
Oracle データベースへの接続の作成
Oracle Database アダプター用に Oracle クライアントを構成する