|
Oracle Tuxedo JCA Adapterのインストールとデプロイには、次の前提条件が必要です。
Oracle Webサイトからダウンロードすることができる単一のリソース・アーカイブファイル(com.oracle.tuxedo.TuxedoAdapter.rar)に、Oracle Tuxedo JCA Adapter一式が含まれています。リソース・アダプタ用のJava .jarファイルと、標準JCAアダプタ・デプロイメント記述子の両方が含まれます。
表1に、Oracle Tuxedo JCA Adapterリソース・アーカイブ・ファイルの内容を示します。
ダウンロードしたリソース・アーカイブ・ファイルを、読み書きアクセス制御が正しく設定されたターゲット・ディレクトリにコピーします。リソース・アーカイブ・ファイルを展開して内容をブラウズし、標準デプロイメント記述子を表示します。
dmconfigを使用してOracle Tuxedo JCA Adapterを構成してから、サンプルのdmconfig.xmlおよびserver.ra.xmlファイルを使用して構成を変更することもできます。
|
Oracle Tuxedoアダプタは、3つの方法のいずれかを使用して構成できます。第1の方法は、dmconfigとも呼ばれるXMLベースの構成テキスト・ファイルを使用することです。第2の方法は、ra.xmlとも呼ばれるリソース・アダプタ・デプロイメント記述子を使用することです。第3の方法はファクトリ・ベースの構成を使用することです、このタイプの構成は、アプリケーション・サーバー・ベンダーによって異なります。ユーザーは、3つの方法のいずれかを選択してOracle Tuxedo JCA Adapterを構成する必要があります。異なる方法を混合して構成することはできません。
XMLベースの構成ファイルを使用すると、Oracle Tuxedo JCA Adapterの能力をフルに使用して構成できます。構成要件が複雑なユーザーに適切です。この方法を使用して構成する場合、ユーザーは、リソース・アダプタ・デプロイメント記述子のresourceadapter要素で、resourceadapter-classをcom.oracle.tuxedo.adapter.TuxedoResourceAdapterと構成する必要があります。
リスト1に、XMLベースのdmconfigurationファイルを使用可能にする、リソース・アダプタ・デプロイメント記述子のフラグメントを示します。
...
<resourceadapter>
<resourceadapter-class>com.oracle.tuxedo.adapter.TuxedoResourceAdapter</resourceadapter-class>
…
<outbound-resourceadapter>
<connection-definition>
<managedconnectionfactory-class>com.oracle.tuxedo.adapter.spi.TuxedoManagedConnectionFactory</managedconnectionfactory-class>
…
</outbound-resourceadapter>
</resourceadapter>
…
一般にはra.xmlというファイル名で知られているリソース・アダプタ・デプロイメント記述子ベースの構成は、デプロイメント記述子のカスタム・プロパティを使用します。これはOracle Tuxedo JCA Adapterの構成機能の一部であり、クライアント側のみの操作に適切です。Oracle Tuxedo JCA Adapterを構成する最も簡単な方法です。
リソース・アダプタ・デプロイメント記述子方式を使用して構成するには、リソース・アダプタ・デプロイメント記述子のresourceadapter要素で、「"resourceadapter-class"」を「com.oracle.tuxedo.adapter.TuxedoClientSideResourceAdapter」と構成する必要があります。
リスト2に、カスタム・プロパティ・ベースの構成を可能にする、リソース・アダプタ・デプロイメント記述子のフラグメントを示します。
<resourceadapter>
<resourceadapter-class>com.oracle.tuxedo.adapter.TuxedoClientSideResourceAdapter</resourceadapter-class>
…
<outbound-resourceadapter>
<connection-definition>
<managedconnectionfactory-class>com.oracle.tuxedo.adapter.spi.TuxedoManagedConnectionFactory</managedconnectionfactory-class>
…
</outbound-resourceadapter>
</resourceadapter>
…
ファクトリ・ベースの構成では、ベンダー固有の方法を使用して、接続ファクトリを構成します。各接続ファクトリには独自の構成があります。リソース・アダプタ・デプロイメント記述子ベースの構成より、Oracle Tuxedo JCA Adapterの構成機能をより多く活用でき、より簡単にOracle Tuxedo JCA Adapterを構成できます。Oracle Tuxedo JCA Adapterを構成する最も簡単な方法です。
ファクトリ・ベースの構成方式を使用して構成するには、'resourceadapter'要素の"resourceadapter-class"にcom.oracle.tuxedo.adapter.TuxedoFBCResourceAdapterを、outbound-resourceadapter要素のconnection-definitionのmanagedconnectionfactory-classに値com.oracle.tuxedo.adapter.spi.TuxedoFBCManagedConnectionFactoryを構成する必要があります。
リスト3に、ファクトリ・ベースの構成を可能にする、リソース・アダプタ・デプロイメント記述子のフラグメントを示します。
…
<resourceadapter>
<resourceadapter-class>com.oracle.tuxedo.adapter.TuxedoFBCResourceAdapter</resourceadapter-class>
…
<outbound-resourceadapter>
<connection-definition>
<managedconnectionfactory-class>com.oracle.tuxedo.adapter.spi.TuxedoFBCManagedConnectionFactory</managedconnectionfactory-class>
…
</outbound-resourceadapter>
</resourceadapter>
デプロイメント記述子ファイルに/Domain構成(dmconfig)が構成されているが、構成されている"resourceadapter-class"クラスがcom.oracle.tuxedo.adapter.TuxedoResourceAdapter ではない場合は、dmconfigの情報は無視されます。
構成されているresourceadapter-classクラスがTuxedoResourceAdapterの場合は、すべてのリソース・アダプタのデプロイメント・ベースの構成は無視されます。
デフォルトの構成は、dmconfigによる構成、リソース・アダプタ・デプロイメント記述子による構成またはファクトリ・ベースの構成のいずれであるかに関係なく、使用できるすべてのオブジェクト・タイプには適用されません。ローカル・アクセス・ポイント、セッション・プロファイル、セッションおよびインポートに対しては使用できます。リソース、リモート・アクセス・ポイントおよびエクスポートは、サポートされません。
デフォルトの構成は、dmconfigファイル・ベースの構成、リソース・アダプタ記述子プロパティ・ベースの構成およびファクトリ・ベースの構成で機能します。状況により、LocalAccessPoint、SessionProfile、Sessionおよびインポートの構成が不要になります。その場合、dmconfigファイルでRemoteAccessPoint、またはResource Adapterデプロイメント記述子ファイルでremoteAccessPontSpec、またはファクトリ・ベースの構成ファイルでremoteAccessPointSpecを構成する必要があるだけになる場合があり、Oracle Tuxedo JCA Adapterの操作性を大いに強化します。
デフォルトLocalAccessPointを使用すると、ユーザーがLocalAccessPointを構成する必要がなくなります。リスニング・エンド・ポイントはなく、Oracle Tuxedo GWTDOMAINゲートウェイからのインバウンド接続リクエストを受け入れません。ConnectionPolicyは、ON_STARTUPのみ可能です。
dmconfigベースの構成およびデプロイメント記述子ベースの構成では、デフォルトLocalAccessPointを1つだけ持つことができますが、ファクトリ・ベースの構成の場合、各ファクトリが独自のデフォルトLocalAccessPointを持つことができます。
デフォルトLocalAccessPointを使用する場合、UUIDベースのLocalAccessPointIdが作成されます。このUUIDベースのLocalAccessPointIdは、.lapidという名前でファイルに書き込まれますが、ファクトリ・ベースの構成の場合、.lapid.<factory-name>という名前のファイルが作成されます。
dmconfigベースの構成では、デフォルトLocalAccessPointはSSLをサポートしません。SSLが必要な場合は、LocalAccessPointを構成する必要があります。
デプロイメント記述子ベースの構成の場合、デフォルトLocalAccessPointは、SSLを限定的にサポートします。ユーザーは、キー・ストア、ID別名およびトラスト証明書ストアにパスワード保護を構成できません。
ファクトリ・ベースの構成の場合、デフォルトLocalAccessPointはSSLをサポートします。ユーザー・キー・ストア、ID別名およびトラスト証明書ストアにパスワードを指定できます。
デフォルトLocalAccessPointが機能するようにするには、Oracle Tuxedo GWTDOMAINゲートウェイ構成により、この簡略化された/Domain構成が機能するようにする必要があります。
動的なRemoteAccessPoint (RAP)登録ができるようにGWTDOMAINゲートウェイを変更する必要があります。DYNAMIC_RAPがYESに設定されている場合、それらの動的に登録されたRAPから、接続のステータスのインメモリー・データベースの更新も行います。それらの動的に登録されたRAPからの接続が失われた場合、そのRAPに関する情報はSHMデータベースから削除されます。
GWADMを、DM MIBを正しく処理するように変更して、それらの動的に登録されたRAPの接続ステータスが反映されるようにする必要があります。それらの動的に登録されたRAPからの接続が失われた場合、DM MIB問合せが接続ステータスを正しく戻すように、SHMデータベースのエントリも削除されます。
動的に登録されたRAPは、/DOMAIN構成に無期限で追加されます。その存在がわかるのは、セッションが確立されている場合だけです。接続が失われると、存在は失われます。
Oracle Tuxedo/Domain DMIBが呼び出すDM_CONNECTIONは、動的に登録された、すべての接続済のRemoteAccessPointを戻します。未接続の他のすべての動的に登録されたRemoteAccessPointは表示されません。
OPENCONNECTION DMIBリクエストでは、それらの動的に登録されたRAPへの接続はサポートされていません。
CLOSECONNECTION Oracle Tuxedo /DMIBリクエストは接続をクローズして、それらの動的に登録されたRemoteAccessPointからのセッションを削除し、接続ステータスUNKNOWNを戻します。
CONNECTION_POLICYのPERSISTENT_DISCONNECTタイプが適用されます。つまり、PERSISTENT_DISCONNECTが任意のRAPからのすべての接続リクエストに実際に含まれる場合、動的に登録されているか、動的にでなく登録されているかにかかわらず拒否されます。
dmconfig構成ファイルでSessionProfileが構成されているかどうかに関わらず、アダプタに関するデフォルト・セッション・プロファイルは常に作成されます。dmconfigベースの構成とデプロイメント記述子ベースの構成では、デフォルトのSessionProfileは1つのみ存在でき、それがアダプタに関するデフォルトSessionProfileになります。
dmconfigベースの構成を使用する場合、アダプタに関するデフォルトSessionProfileは変更できませんが、ユーザーがデフォルト以外の異なるSessionProfileを必要とする場合、ユーザーは適切なSessionProfileを構成し、ターゲット・セッションに割り当てる必要があります。
そのために一連のカスタム・プロパティを使用してデプロイメント記述子ベースの構成を使用する場合、アダプタに関するデフォルトSessionProfileを変更できます。デプロイメント記述子ベースの構成を使用する場合、固有セッション・プロファイルを明示的に構成できないので、このアダプタに関するデフォルトSessionProfileが、すべてのセッションで使用されます。
ファクトリ・ベースの構成は、アダプタに関するデフォルトSessionProfileに加え、ファクトリに関するデフォルトSessionProfileもサポートします。この構成メソッドを使用するユーザーは、アダプタに関するデフォルトSessionProfileを変更できませんが、一連のファクトリ・カスタム・プロパティを使用してファクトリに関するデフォルトSessionProfileを変更することは可能です。接続ファクトリにより作成された接続に対してデフォルトSessionProfileが適切でない場合、各接続ファクトリに対して、ファクトリに関するデフォルトSessionProfileを構成できます。
表2に、デフォルト構成のSessionProfileタイプ要素を示します。
| 注意: | コード・リスト19に示すように、リソース・アダプタ・デプロイメント記述子ファイルで構成されたSessionProfile関連プロパティは、デフォルトSessionProfileの構造内で使用されます。 |
リソース・アダプタ・デプロイメント記述子ベースの構成またはファクトリ・ベースの構成が使用される場合、またはdmconfigファイルにセッションが構成されていない場合は、すべてのローカル・アクセス・ポイントとすべてのリモート・アクセス・ポイントの間に、セッションが暗黙的に作成されます。これはデフォルト・セッションと呼ばれます。デフォルト・セッションが使用され、デプロイメント記述子ベースまたはdmconfigベースの構成が使用される場合、アダプタに関するデフォルトSessionProfileが使用されます。ファクトリ・ベースの構成では、ファクトリに関するデフォルトSessionProfileが使用されます。独自のデフォルトSessionProfileにいかなるファクトリも構成されていない場合は、アダプタに関するデフォルトSessionProfileが使用されます。
たとえば、2つのRemoteAccessPointが構成され、デフォルトLocalAccessPointが使用され、セッションが構成されていない場合、2つのデフォルト・セッションが作成されます。
Oracle Tuxedoサービスまたはリソースが構成されていない場合でも、Oracle Tuxedo JCA Adapterでは、構成されたセッションを介してリモートのOracle Tuxedoサービスまたはリソースにアクセスできます。この機能は、デフォルト・インポートと呼ばれます。1つ以上の構成されたOracle Tuxedoサービスまたはリソースがある場合、この機能は自動的に無効にされ、リクエスト・ターゲットにより構成されたOracle TuxedoサービスまたはリソースだけをOracle Tuxedoに転送できます。
Oracle Tuxedo JCA Adapter構成で、Oracle Tuxedoサービスまたはリソースがインポートとして構成されていない場合、リクエスト・フィルタリングは実行されず、リクエストはすべて、サービス・リクエスト起動で指定された名前を使用してOracle Tuxedoに転送されます。複数のセッションが構成されているか、Oracle Tuxedo JCA Adapterによって暗黙に作成されている場合、サービス・リクエストはすべて、RoundRobinアルゴリズムを使用する構成済の各セッションにロード・バランシングされます。
Oracle Tuxedoサービス/リソースはすべて、Oracle Tuxedo JCA Adapterを介して、アクセスできる必要があります(すべてのOracle Tuxedoアプリケーション・ドメインで使用できるだけでなく、構成済のすべてのセッションを介してアクセスできます)。
Oracle Tuxedo JCA Adapter構成ファイルは、リソース・アダプタ・デプロイメント記述子(ra.xml)では「dmconfig」という名前のプロパティによって表されるXMLベースのファイルです。このプロパティ値は、構成ファイルへの絶対パスであるか、リソースarchive.rarファイルのリソースとして表すことができます。クライアントとサーバーの本格的な動作が必要な場合は、この方式の構成を使用する必要があります。
リスト4に、Oracle Tuxedo JCA Adapterにdmconfig構成ファイルの使用を指示する例を示します。構成ファイルへのフル・パス名は、/home/work/adapter/dmconfig.xmlです。
...
<resourceadapter>
<resourceadapter-class>com.oracle.tuxedo.adapter.TuxedoResourceAdapter</ resourceadapter-class>
<config-property>
<config-property-name>dmconfig</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>/home/work/adapter/dmconfig.xml</config-proper ty-value>
<config-property>
...
リスト5に、dmconfig.xmlというリソース・ファイル名を持つリソース・アーカイブの一部としてパッケージ化されているdmconfig構成ファイルを使用するよう、Oracle Tuxedo JCA Adapterに指示する例を示します。ただし、アーカイブでこの構成リソース・ファイルが検出されない場合、現在の作業ディレクトリにある構成ファイルが使用されます。
...
<resourceadapter>
<resourceadapter-class>com.oracle.tuxedo.adapter.TuxedoResourceAdapter< /resourceadapter-class>
<config-property>
<config-property-name>dmconfig</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>dmconfig.xml</config-property-value>
<config-property>
...
Oracle Tuxedo JCA Adapter構成ファイルにroot要素はただ1つ、TuxedoConnectorだけで、複合タイプTuxedoConnectorTypeで表されます。表3に示すように、次の要素が含まれます。
構成では、リスト6に示すように、<TuxedoConnector> およ</TuxedoConnector>タグを使用する必要があります。
<?xml version="1.0" encoding="UTF-8"?>
<TuxedoConnector>
...
</TuxedoConnector>
Resources要素は、ResourceTypeで表され、リソース・アダプタ実行環境を指定します。Oracle Tuxedo JCA Adapter構成ファイルでは、Resource要素は1つのみ構成できます。表4に、ResourceType要素を示します。
| 注意: | ResourceType要素に対して定義されている属性はありませんが、RemoteAccessPointでは、TPUsrFile要素をTpusrFile要素でオーバーライドできます。 |
リスト7に、Resourcesの構成例を示します。
<Resources>
<FieldTable16Classes>tuxedo.test.fml16.FieldTbl16</FieldTable16Classes>
<ViewFile32Classes>tuxedo.test.simpapp.View32</ViewFile32Classes>
<ApplicationPasswordEncrypted>tuxpassword</ApplicationPasswordEncrypted>
</Resources>
ApplicationPassowrdEncryptedが構成されている場合、付属ユーティリティcom.oracle.tuxedo.tools.DMConfigCheckerを実行して、パスワードを暗号化し、また、オプションでキー・ストアを生成する必要があります。この場合、keyFileNameは、有効なキー・ストア・ファイルまたはキー・ストア・リソースを参照している必要があります。リソース・アダプタ・デプロイメント記述子でkeyFileNameが構成されていないと、Oracle Tuxedo JCA Adapterがパスワードを復号化できません。
リスト8に、キー・ストア・リソースが構成されていることをOracle Tuxedo JCA Adapterに通知する例を示します。
...
<resourceadapter>
<resourceadapter-class>com.oracle.tuxedo.adapter.TuxedoResourceAdapter</ resourceadapter-class>
<config-property>
<config-property-name>dmconfig</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>dmconfig.xml</config-property-value>
<config-property>
<config-property>
<config-property-name>keyFileName</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>foo.key</config-property-value>
<config-property>
...
ローカル・アクセス・ポイント要素は、LocalAccessPointTypeで表されます。この要素は、リスニング・アドレスと予定されるリンクレベルのフェイルオーバー・アドレスを指定します。表5に、LocalAccessPointType要素を示します。
SSLInfo要素は、匿名の複合タイプです。構成に含まれている場合、その要素をすべて構成する必要があり、トランスポート・メカニズムとしてSSLが使用されます。含まれていない場合、トランスポート・メカニズムとしてTCP/IPが使用され、暗号化が必要ならリンク・レベルの暗号化を使用してデータの機密性を確保します。表6に、SSLInfo要素を示します。
name属性は、LocalAccessPointTypeに対して定義されます。この属性は、LocalAccessPointTypeで表される構成レコードの識別に使用されます。また、リスト9で示されるように、この属性はローカルで一意のローカル・アクセス・ポイント名を指定します。
<LocalAccessPoint name="LDOM1">
<LocalAccessPointId>Godfried</LocalAccessPointId>
<NetworkAddress>//neocortex:14001</NetworkAddress>
</LocalAccessPoint>
LDOM1は、ローカルに一意である必要があります。Gotfriedは、グローバルに一意である必要があります。AccessPointId要素が指定されない場合、name属性の値はAccessPointIdとして使用されます。このシナリオでは、name属性の値は、グローバルに一意である必要があります。
デフォルトで、SSLはサーバー(接続リクエストの応答側)を認証するだけです。クライアント認証を有効化するには、MutualAuthenticationRequired要素をtrueに設定する必要があります。
リモート・アクセス・ポイント要素は、RemoteAccessPointTypeで表されます。この要素は、リモートOracle Tuxedoドメイン・アクセス・ポイントのネットワーク・アドレスを定義します。表7に、RemoteAccessPointType要素を示します。
リモートのTuxedoアクセス・ポイントとのセッションを確立しようとするときに、このリモート・アクセス・ポイントを識別するために使用される接続プリンシパル名として、デフォルトで使用されます。グローバルに一意である必要があります。
|
|||||
CustomApplicationKey要素は、匿名の複合タイプです。指定しない場合、デフォルトのアプリケーション・キー・プラグインが使用されます。指定する場合、そのすべての要素を構成する必要があり、リモート・アクセス・ポイントと通信するすべてのセッションに対して、カスタム・アプリケーション・キー・プラグイン・クラスがロードされます。表8に、CustomApplicationKey要素を示します。
name属性は、RemoteAccessPointに対して定義されます。この属性は、ローカルで一意なリモート・アクセス・ポイント名を指定します。リスト10は、RemoteAccessPointTypeのname属性の例を示します。
<RemoteAccessPoint name="RDOM1">
<AccessPointId>Geneve</AccessPointId>
<NetworkAddress>//bluestar:11023</NetworkAddress>
<TpusrFile>/tja/lady-geneve/tpusr</TpusrFile>
</RemoteAccessPoint>
RDOM1は、ローカルに一意である必要があります。Geneveは、グローバルに一意である必要があります。AccessPointId要素が指定されない場合、name属性の値はAccessPointIdとして使用されます。このシナリオでは、name属性の値は、グローバルに一意である必要があります。
セッション・プロファイル要素は、SessionProfileTypeで表されます。Oracle Tuxedo JCA Adapterローカル・アクセス・ポイントとOracle Tuxedoリモート・アクセス・ポイントの間のTDOMAINセッションに関するすべてのQoSパラメータを含みます。表9に、SessionProfileType要素を示します。
name属性は、SessionProfileTypeに対して定義されます。この属性は、適切なセッション・プロファイルを取得するためにセッション・オブジェクトによって使用されます。リスト11は、SessionProfileTypeのname属性の例を示します。
<SessionProfile name="profile1">
<Security>DM_PW</Security>
<ConnectionPolicy>ON_STARTUP</ConnectionPolicy>
<ACLPolicy>Global</ACLPolicy>
<CredentialPolicy>Global</CredentialPolicy>
<RetryInterval>100</RetryInterval>
</SessionProfile>
セッション要素は、SessionTypeで表されます。それは、ローカル・アクセス・ポイントとリモート・アクセス・ポイントの間の、許容される接続を指定します。ローカル・アクセス・ポイントとリモート・アクセス・ポイントの間には、1つのセッションだけを構成できます。表10に、SessionType要素を示します。
PasswordPair要素は、匿名の複合タイプです。最大で2つのパスワード・ペアを構成できます。これにより、ユーザーがTuxedoドメイン・セッション認証のパスワードを構成できるようになります。表11に、PasswordPair要素を示します。
name属性は、SessionTypeに対して定義されます。この属性は、TDOMAINセッションの識別に使用されます。リスト12は、SessionTypeのname属性の例を示します。
<Session name="session1_1">
<LocalAccessPointName>LDOM1</LocalAccessPointName>
<RemoteAccessPointName>RDOM1</RemoteAccessPointName>
<ProfileName>profile1</ProfileName>
</Session>
セッションが構成されない場合、Oracle Tuxedo JCA Adapterはデフォルトで、すべてのローカル・アクセス・ポイントとすべてのリモート・アクセス・ポイントの間にセッションを作成します。これらの動的に作成されたセッションは、デフォルトのセッション・プロファイルのみ使用できます。
インポート要素は、ImportTypeで表されます。この要素は、Oracle Tuxedo JCA Adapterクライアントによってアクセスされる既存のリモートTuxedoアプリケーション・ドメイン・リソースを識別します。表12に、ImportType要素を示します。
name、autotranおよびtrantimeの、3つの定義済の属性があります。
name: TPCALLまたはexecute() CCIインタフェースの関数名が使用するリソース名を指定します。autotran: AUTOTRANの有効/無効を切り替えます。受け入れる値は、trueかfalseだけです。trueに設定された場合、Oracle Tuxedo JCA Adapterは、グローバルまたはローカルなトランザクションの外部でこのインポート済リソースがOracle Tuxedo JCA Adapterクライアントにより呼び出されるときに、リモートのOracle Tuxedoドメインとのトランザクションを開始します。 falseに設定された場合、Oracle Tuxedo JCAは、クライアント・サービス・リクエストがグローバルまたはローカルなトランザクションの外部にある場合、トランザクションを開始しません。ただし、falseに設定しても、このリモート・リソースのクライアント・サービス・リクエストが、グローバルまたはローカルなトランザクションのパーティシパントになれなくなることはありません。
構成しない場合、リソース・アダプタ・デプロイメント記述子内の、アダプタに関するAUTOTRANプロパティが、AUTOTRANを決定するために使用されます。
trantime: このリソースのAUTOTRANのトランザクション・タイムアウト値を指定します。値の単位は秒です。指定しないのにAUTOTRANが必要とされる場合、リソース・アダプタ・デプロイメント記述子のappManagedLocalTxTimeoutプロパティが使用されます。 appManagedLocalTxTimeoutを指定しない場合、JVMプロパティcom.oracle.tuxedo.adapter.appManagedLocalTxTimeoutが使用されます。
com.oracle.tuxedo.adapter.appManagedLocalTxTime JVMプロパティを指定しない場合、デフォルトの300秒になります。
リスト13に、TUXUPPERという名前でインポートされたリソースを記述するImportTypeのnameの例を示します。AUTOTRANトランザクションのタイムアウトは、10秒に設定されます。
<Import name="TUXUPPER" autotran="true" trantime="10">
<RemoteName>TOUPPER_1</RemoteName>
<SessionName>session1</SessionName>
<LocalBalancing>RoundRobin</LoadBalancing>
</Import>
エクスポート要素は、ExportTypeで表されます。この要素は、リモートOracle Tuxedoアプリケーション・ドメインからアクセス可能なローカル・リソースです。表13に、ExportType要素を示します。
name属性は、ExportTypeに対して定義されます。この属性は、エクスポートされたリソースの識別に使用されます。リスト14は、ExportType nameの例を示します。
<Export name="tolower">
<SessionName>session1</SessionName>
<RemoteName>wtolower</RemoteName>
<Type>EJB</Type>
<Source>TolowerEJB</source>
</Export>
デプロイメントのためにリソース・アーカイブをデプロイし、再パッケージするために使用される主要コンポーネントは、リソース・アダプタ・デプロイメント記述子(META-INFディレクトリのra.xmlファイル)です。リソース・アダプタ・デプロイメント記述子は、リソースをリソース・アーカイブに再パッケージする前に、構成する必要があります。
これはXMLベースのテキスト・ファイルで、テキスト・エディタまたはXMLエディタで編集できます。ダウンロードしたOracle Tuxedo JCA Adapterには、Oracle Tuxedo JCA Adapterデプロイメントの構成を支援する、簡易版のデプロイメント記述子が含まれます。
デプロイメント記述子ベースの構成の場合、デプロイメント記述子ファイル(ra.xml)を使用して、Oracle Tuxedo JCA Adapterデプロイメントの構成を指定する必要があります。ユーザーによる構成の指定を可能にする一連のカスタム・プロパティが存在します。この方法で指定されるすべてのプロパティは、スコープがアダプタ単位になります。
デプロイメント記述子ベースの構成スタイルは、標準の単純なプロパティ・タイプ、config-property-name、config-property-typeおよびconfig-property-valueに基づいています。これらのプロパティ・タイプは繰り返せません。これらは、リソース・アダプタ・デプロイメント記述子resourceadapterファイルで使用できます。
リソース・アダプタ・デプロイメント記述子構成メソッドは、次のタイプのプロパティをサポートします。
dmconfigファイルで指定される大部分のリソース要素は、デプロイメント記述子ベースの構成で使用できます。
表14に、リソース・アダプタ・デプロイメント記述子のResourcesプロパティを示します。
リスト15に、リソース・アダプタ・デプロイメント記述子ベースのカスタム・プロパティ構成を使用した、2つのVIEW32クラス情報を記述する構成の例を示します。
| 注意: | これにより、Oracle Tuxedo JCA Adapterは、SYSTEM CLASSPATHを介してアクセスできるフル・パッケージ名で、viewFile32Classesを使用できます。 |
…
<config-property>
<config-property-name>viewFile32Classes<config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>tuxedo.view32.view1,tuxedo.view32.view2
</config-property-value>
</config-property>
…
LocalAccessPointタイプの要素の大部分は、リソース・アダプタ記述子ベースの構成では使用できませんが、単一のlocalAccessPointSpecを指定することはできます。
表15に、リソース・アダプタ・デプロイメント記述子のLocalAccessPointプロパティを示します。
localAccessPointSpecプロパティは任意です。非クラスタ環境で指定されるとき、このプロパティはリソース・アダプタ・デプロイメント記述子ファイル内の全情報を求める場合に有効です。ただし、構成がすべてのクラスタ・ノードにコピーされるクラスタ環境でこのプロパティが指定されるとき、すべてのOracle Tuxedo JCA Adapterは同一のアクセス・ポイントIDを持ちます。この場合には、接続の振る舞いが予測できなくなるため、サポートされません。
このようなクラスタ環境の問題を解決するため、環境は一切構成しないでください。すると、デフォルトのLocalAccessPointがUUIDベースのLocalAccessPointIdを使用して作成されます。このUUIDベースのLocalAccessPointIdは、現在の作業ディレクトリ内の.lapidという名前のファイルに書き込まれます。
リスト16に、localAccessPointSpecのカスタム構成の例を示します。
<config-property>
<config-property-name>localAccessPointSpec</config-property-name>
<config-property-type>java.lang.String<config-property-type>
<config-property-value>//localhost:12345/domainId=jdom_id
</config-property-value>
</config-property>
この例では、AccessPointNameと、jdom_idと等しいAccessPointIdを持つLocalAccessPointを作成し、ローカル・ホスト上のポート12345に着信する接続リクエストをリスニングするよう指定しています。
default LocalAccessPointが作成される場合、可能な接続ポリシーはON_STARTUPだけで、リスニング・エンド・ポイントは作成されません。
default LocalAccessPointがOracle Tuxedo JCA Adapterによって動的に構築される場合、リスニング・エンド・ポイントはなく、クライアント側動作専用のモードになります。接続リクエストは着信できません。
SSL/TLSも、IDとキー・ストアに関連する3つのプロパティを使用して、リソース・アダプタ・デプロイメント記述子を介してサポートされます。ただし、2つの制限があります。まず1つは、パスワードを保護せずにIDと信頼性のあるキー・ストアのみをサポートします。2つ目は、クラスタ内のすべてのOracle Tuxedo JCA Adapterインスタンスは同一の値を持つことになります。この制限を望まない場合、ユーザーは、異なる振る舞いが必要なすべてのノードのリソース・アダプタ・デプロイメント記述子を変更するか、またはdmconfigメソッドを使用してクラスタリングされたOracle Tuxedo JCA Adapterを構成するかのいずれかを実行する必要があります。
RemoteAccessPointは、ネットワーク・アドレスとRemoteAccessPoint アクセスごとの制御関連情報の両方を含むテキスト文字列で表されます。ただし、リソース・アダプタ・デプロイメント記述子のプロパティ・ベースの構成では、1つのremoteAccessPointSpecプロパティで表されます。remoteAccessPointSpecプロパティは、各リモート・アクセス・ポイントコンマで区切られたリストになります。各リモート・アクセス・ポイントは、次の表の後のサンプルで説明する固有の書式で表されます。
表16に、リソース・アダプタ・デプロイメント記述子のRemoteAccessPoint関連のプロパティを示します。
プロパティrapApplicationKeyClassを指定しない場合、rapApplicationKeyClassParamは、構成されていても無視されます。
リンク・レベル・フェイルオーバーをサポートするために、カッコを使用して、RemoteAccessPointごとにフェイルオーバー・アドレスがグループ化されます。グループ内で最初に指定されるアドレスがプライマリ・アドレスになります。グループの第2のアドレスは第1のアドレスのバックアップで、グループの第3のアドレスは第2のアドレスのバックアップ、以下同様です。
リスト17は、2つのRemoteAccessPointを構成する例です。1番目は、ドメインguinevreを介して、ネットワーク・アドレス//bluestar:11023でアクセスできます。2番目は、ドメインgalahadを介してネットワーク・アドレス//orion:37456でアクセスできます。
<config-property>
<cofig-property-name>remoteAccessPointSpec</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>//bluestar:11023/domainId=guinevre,//orion:37456/ domainId=galahad</config-property-value>
</config-property>
リモート・ドメインguinevreとgalahadには、同一のQoSが関連付けられています。この場合、rapApplicationKeyClassとrapApplicationKeyClassParamが指定されると、RemoteAccessPoint guinevreとgalahadの両方から使用できるとみなされるため、ユーザーは同一の完全修飾クラス・パスを持つ両方のRAPに対して、rapApplicationKeyClassが使用できるようにする必要があります。そうしないとOracle Tuxedo JCA Adapterは起動できません。
リスト18は、フェイルオーバー・アドレスを持つ2つのRemoteAccessPointを構成する例です。1番目は、ドメインguinevreを介して、プライマリ・ネットワーク・アドレス//bluestar:11023、バックアップ・ネットワーク・アドレス//orion:12345でアクセスできます。
2番目は、ドメインgalahadを介してネットワーク・アドレス//orion:37456、バックアップ・ネットワーク・アドレス//bluestar:37456でアクセスできます。
<config-property>
<config-property-name>remoteAccessPointSpec</config-porperty-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>(//bluestar:11023,//orion:12345)/domainId=guinevr e,(//orion:37456,//bluestar:37456)/domainId=galahad
</config-property-value>
</config-property>
remoteAccessPointSpecプロパティは、リソース・アダプタ・デプロイメント記述子ファイルあたり1つのみ指定できます。複数構成されている場合、アプリケーション・サーバーのJCAコンテナは、最後に構成されたものだけを引き受けます。
デフォルトRemoteAccessPointがないため、remoteAccessPointSpecプロパティが構成されないと、動的に作成されたRemoteAccessPointは存在しなくなり、Oracle Tuxedo JCA Adapterは、起動できますが役に立ちません。remoteAccessPointSpecプロパティを介してRemoteAccessPointを構成するには、リソース・アダプタ・デプロイメント記述子ファイル内で、resourceadapter-class要素が、TuxedoClientSideResourceAdapterを使用して構成されている必要があります。
セッション・プロファイルに含まれる情報は、一連の構成プロパティによって表されます。Oracle Tuxedo JCA Adapterローカル・アクセス・ポイントとOracle Tuxedoリモート・アクセス・ポイントの間のTDOMAINセッションに関するすべてのQoSパラメータを含みます。
表17に、リソース・アダプタ・デプロイメント記述子のSessionProfileプロパティを示します。
すべてのセッションでアプリケーション・レベルのキープ・アライブが構成されているかどうかと、その場合に待機タイマーが計時を開始するまでのアイドル・タイムの最大値を指定します。デフォルト値は「0」で、アプリケーション・レベルのキープ・アライブが無効であることを意味します。測定値は、ミリ秒です。接続がビジーの場合、リモート・ゲートウェイに特別なキープ・アライブ・メッセージを送信する必要はありません。ただし、spKeepAliveで指定されたミリ秒数(秒単位に切り上げ)が経過しても接続上にアクティビティがない場合、特別なキープ・アライブ・メッセージを送信して、spKeepAliveWaitタイマーを開始します(やはり秒単位に切り上げ)。この「待機」時間が経過しても確認を受信できない場合、接続が失効していると宣言して、接続をクローズし、セッションを終了します。
|
|||
リスト19に、SessionProfileの構成例を示します。
< config-property>
<config-property-name>spBlockTime</config-property-name>
<config-property-type>java.lang.Integer</config-property-type>
<config-property-value>120000</config-property-value>
</config-property>
リソース・アダプタ・デプロイメント記述子ファイル内で構成されている、これらすべてのSessionProfile関連プロパティは、デフォルトSessionProfileの構造で使用されます。
リソース・アダプタ・デプロイメント記述子ファイル・ベースの構成は、デフォルトのインポートを使用しますが、アダプタからリモートのTuxedoアプリケーション・ドメインにアクセスできるものを統一的に制限する機能もあります。単一のimpResourceNameプロパティに、アクセスできるリモートのTuxedoサービス/リソースのコンマ区切りリストを指定できます。ただし、これらは、可能なすべてのセッションに適用されるという制限があります。
LoadBalancingアルゴリズムは指定できず、RoundRobinを使用します。impResourceNameを指定すると、Oracle Tuxedo JCA Adapterはデフォルトのインポートを作成しません。
表18に、リソース・アダプタ・デプロイメント記述子のインポート関連プロパティを示します。
リスト20は、impResourceNameの例です。このプロパティは、リソース・アダプタ・デプロイメント記述子ベースの構成に限定されているため、resourceadapter-classを、TuxedoClientSideResourceAdapterを使用して構成する必要があります。
<config-property>
<config-property-name>impResourceName</config-property-name>
<config-property-type>java.lang.String</config-property-name>
<config-property-value>TOUPPER_1,ECHO</config-property-value>
</config-property>
リソース・アダプタ・デプロイメント記述子カスタム・プロパティ構成メソッドには、セッション関連のプロパティが定義されていません。リソース・アダプタ・デプロイメント記述子ベースの構成が使用されているか、dmconfigファイル内にSessionが構成されていない場合、すべてのローカル・アクセス・ポイントとすべてのリモート・アクセス・ポイントの間に、セッションが暗黙のうちに作成されます。これは、「デフォルト・セッション」と呼ばれます。デフォルト・セッションが使用される場合、デフォルトSessionProfileのみ使用できます。
たとえば、2つのRemoteAccessPoint要素が構成され、デフォルトLocalAccessPointが使用され、セッションが構成されていない場合、2つのデフォルト・セッションが作成されます。
リソース・アダプタ・デプロイメント記述子カスタム・プロパティ構成メソッドには、エクスポート関連のプロパティは定義されていません。Oracle Tuxedoアプリケーション・ドメインからアプリケーションへのインバウンド・リクエストをサポートするデフォルト・エクスポートはありません。これは、リソース・アダプタ・デプロイメント記述子の、カスタム・プロパティ・ベースの構成、ファクトリ・ベースの構成、dmconfig構成ファイル・ベースの構成の場合に当てはまります。
ファクトリ・ベースの構成は、リソース・アダプタ・デプロイメント記述子ベースの構成に類似しています。どちらもカスタム・プロパティを使用してOracle Tuxedo JCA Adapterを構成します。ただ、ファクトリ・ベースの構成は、より多くのカスタム・プロパティを使用するため、構成をより強力にサポートします。
ファクトリ・ベースの構成には、2つの主要な部分があります。片方はアダプタに関するプロパティで、カスタム・プロパティを使用して、デプロイメント記述子ファイルの「resourceadapter」で構成する必要があります。もう一方はファクトリに関するプロパティで、Javaアプリケーション・サーバーにより、異なる方法を使用して構成できます。WebSphereの場合は、J2C接続ファクトリのカスタム・プロパティのページを介して構成され、WebLogicの場合は、weblogic-ra.xml内で構成されます。
通常、ユーザーはOracle Tuxedo JCA Adapterをインストール後に構成します。リソース・アダプタ・デプロイメント記述子を構成した後で、カスタム・ファクトリのプロパティを構成できます。
ResourceAdapterデプロイメント記述子にはカスタム・プロパティ一式があり、ファクトリ-ベース構成がサポートしています。それが存在するのは、すべてアダプタに関するプロパティだからです。
これらのプロパティは、標準の単純なプロパティ・タイプ、config-property-name、config-property-typeおよびconfig-property-valueに基づいています。これらのプロパティ名は繰り返せません。これらは、リソース・アダプタ・デプロイメント記述子のresourceadapterで使用できます。
ファクトリ・ベースの構成のためのリソース・アダプタ・デプロイメント記述子カスタム・プロパティは、次のタイプのプロパティをサポートします。
アダプタに関するプロパティは、すべての接続ファクトリが使用できます。ファクトリ・ベースの構成が使用できる、アダプタに関するプロパティはほとんどありません。ただし、それらはファクトリ構成内にある同じ名前のプロパティでオーバーライドできます。これらのプロパティがファクトリで構成されていない場合、ファクトリは、これらのアダプタに関するプロパティ構成を使用します。
表19に、ファクトリ・ベースの構成がサポートするリソース・アダプタ・デプロイメント記述子内にある、アダプタに関するそれらのカスタム・プロパティを示します。
ファクトリ・ベースの構成におけるAUTOTRANトランザクション・タイムアウトの実行優先度の順序を次に示します。
アダプタに関するappManagedLocalTxTimeoutは、リソース・アダプタ・デプロイメント記述子(RADD)ファイル(ra.xml)内の「resourceadapter」タイプで、「config-property」として構成されます。
リスト21に、ra.xmlファイル内にトランザクション・タイムアウトが設定されているAUTOTRANを使用する例を示します。
<resourceadapter>
<resourceadapter-class>com.oracle.tuxedo.adapter.TuxedoFBCResourceAdapter</resourceadapter-class>
<config-property>
<config-property-name>autoTran</config-property-name>
<config-property-type>java.lang.Boolean</config-property-type>
<config-property-value>true</config-property-value>
</config-property>
<config-property>
<config-property-name>appManagedLocalTxTimeout</config-property-name>
<config-property-type>java.lang.Integer</config-property-type>
<config-property-value>50</config-property-value>
<config-property>
…
リソース関連プロパティは、すべてのファクトリで使用でき、リソース・アダプタ・デプロイメント記述子を使用して構成されます。デプロイメント記述子の「resourceadapter」タイプで構成されます。唯一の例外はアプリケーション・パスワードで、柔軟性を求めて各ファクトリで使用できるようにされており、このリソース関連プロパティでは使用できません。
表20 リソース関連のプロパティに示されたすべてのプロパティは、オプションです。
リスト22に、ファクトリ・ベースの構成に対して、リソース・アダプタ・デプロイメント記述子に2つのVIEW32クラス情報を記述する構成例を示します。
…
<resourceadapter>
<resourceadapter-class>com.oracle.tuxedo.adapter.TuxedoFBCResourceAdapter</resourceadapter-class>
<config-property>
<config-property-name>viewFile32Classes<config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>tuxedo.view32.view1,tuxedo.view32.view2 </config-property-value>
</config-property>
…
接続ファクトリに対して構成できるプロパティには3つのタイプがあります。第1のタイプはファクトリ・プロパティです(アダプタに関するプロパティとしても使用可能)。第2のタイプは、ファクトリ・ベースの構成に固有のプロパティです。第3のタイプは、通常の構成プロパティです。
アダプタに関するいくつかのプロパティは、各ファクトリ構成に対して指定でき、アダプタに関するプロパティをオーバーライドします。ファクトリで指定しない場合、ファクトリはアダプタに関する構成をこれらのプロパティに使用します。
ファクトリ・ベースの構成におけるAUTOTRANの実行優先度の順序を次に示します。
次に、WebLogicのweblogic-ra.xmlファイルを使用する例を示します。
…
<outbound-resource-adapter>
<connection-definition-group>
<connection-factory-interface>javax.resources.cci.ConnectionFactory</connection-factory-interface>
<connection-instance>
<jndi-name>eis/TuxedoConnectionFactory1</jndi-name>
<connection-properties>
<properties>
<property>
<name>autoTran</name>
<value>true</value>
</property>
<property>
<name>appManagedLocalTxTimeout</name>
<value>50</value>
</property>
…
接続ファクトリ名は、connectionFactoryNameプロパティを使用して指定できます。このプロパティはオプションですが、この接続ファクトリから開始されたサービス・リクエストに対してトランザクションが可能である場合や、ユーザーがDMMIBを使用してTuxedoの/Domain構成内に動的にDM_REMOTE_DOMAINSを構成する場合は、構成しておくことをお薦めします。
次に、WebLogicのweblogic-ra.xmlファイルを使用する例を示します。
…
<outbound-resource-adapter>
<connection-definition-group>
<connection-factory-interface>javax.resources.cci.ConnectionFactory</connection-factory-interface>
<connection-instance>
<jndi-name>eis/TuxedoConnectionFactory1</jndi-name>
<connection-properties>
<properties>
<property>
<name>autoTran</name>
<value>true</value>
</property>
<property>
<name>connectionFactoryName</name>
<value>TuxedoConnectionFactory1</value>
</property>
…
このプロパティが構成され、デフォルトLocalAccessPointが構成されている場合、.lapid.<connectionFactoryName>という名前のファイルが現在の作業ディレクトリに作成されます。このファイルには、動的に生成されたLocalAccessPoint IDが含まれます。たとえば、上記の例では、.lapid.TuxedoConnectionFactory1という名前のファイルが作成されます。
リソースのアプリケーション・パスワードは、RADDベースの構成ではサポートされませんが、ファクトリ・ベースの構成にはファクトリに関するプロパティとして追加されます。このプロパティはファクトリごとに使用でき、異なるファクトリで異なるアプリケーション・パスワードを持つことが容易に可能になります。RADDベースの構成には、これに相当するものはありません。
ファクトリ・ベースの構成のapplicationPasswordプロパティは、クリア・テキストと暗号文のいずれも可能です。暗号文を使用して構成するには、com.oracle.tuxedo.tools.EncryptPasswordの出力を使用する必要があります。次に、サンプル出力を示します。
c:\tuxedo\JCA\adapter> java -classpath %classpath% com.oracle.tuxedo.tools.EncryptPassword mypassword foo.key 暗号化パスワード: {Salted-AES}WBGk6LjHuI515pwXPTfaOQ==
WebSphere 7.0では、WebSphereが暗号化してくれるため、このツールを使用してパスワードを暗号化する必要がありません。
表24に、ファクトリ・ベースの構成のためのLocalAccessPoint関連プロパティを示します。
7つのSSL関連プロパティがあり、そのうちキー/資格証明ストアと関連がある6つは、SSLが必要である場合、構成する必要があります。SSLを使用する上で唯一オプションなのはmutalAuthenticationRequiredです。デフォルトでは、mutualAuthenticationRequireはfalseです。必須の6つのプロパティのいずれかが存在しない場合、SSLは無視されて非SSLになり、セッション・プロファイル情報と、LLEが使用される場合があるリモートのTuxedo GWTDOMAINゲートウェイとのセッション・ネゴシエーションに依存します。
localAccessPointSpecプロパティの指定はオプションです。指定しない場合、デフォルトのLocalAccessPointが使用されます。デフォルトのLocalAccessPointがこのファクトリに対して使用される場合、connectionFactoryNameも構成しておくことをお薦めします。
リスト25は、WebLogicのweblogic-ra.xmlファイルの使用例を示します。
…
<outbound-resource-adapter>
<connection-definition-group>
<connection-factory-interface>javax.resources.cci.ConnectionFactory</connection-factory-interface>
<connection-instance>
<jndi-name>eis/TuxedoConnectionFactory1</jndi-name>=
<connection-properties>
<properties>
<property>
<name>localAccessPointSpec</name>
<value>//localhost:123456/domainId=JDOM</value>
</property>
…
RemoteAccessPointは、ネットワーク・アドレスとRemoteAccessPointアクセス制御関連の情報の両方によって表されます。最も重要なプロパティはremoteAccessPointSpecです。これはコンマ区切りリストで、コンマが各RemoteAccessPointを区切っています。各RemoteAccessPointは、次の表の後に示すサンプルで説明する固有の書式で表されます。ファクトリを使用可能にするためには、remoteAccessPointSpecを構成する必要があります。
次は、ファクトリ・ベースの構成で使用できるRemoteAccessPoint関連のプロパティです。
次に、WebLogicのweblogic-ra.xmlファイルを使用する例を示します。
…
<outbound-resource-adapter>
<connection-definition-group>
<connection-factory-interface>javax.resources.cci.ConnectionFactory</connection-factory-interface>
<connection-instance>
<jndi-name>eis/TuxedoConnectionFactory1</jndi-name>
<connection-properties>
<properties>
<property>
<name>autoTran</name>
<value>true</value>
</property>
<property>
<name>localAccessPointSpec</name>
<value>//localhost:123456/domainId=JDOM</value>
</property>
<property>
<name>remoteAccessPointSpec</name>
<value>//bluestar:11023/domainId=guinevre,//orion:37654/domainId=galahad<value>
</property>
…
remoteAccessPointSpecは各ファクトリに1つのみ指定できます。rapApplicationKeyClassとrapApplicationKeyClassParamを指定すると、guinevreとgalahad両者のアイデンティティ通知のために使用されます。
remoteAccessPointSpecプロパティは、より多くのRemoteAccessPointおよびSession関連の属性を構成できるように拡張されました。これらの属性はコンマで区切られます。各属性は、名前と値のペアです。次に、サポートされる属性のリストを示します。
セッション認証がDM_PWの場合、1つ以上のパスワード・ペアが有効である必要があります。パスワード・ペア1とパスワード・ペア2が有効である場合、パスワード・ペア1はセッション認証情報を暗号化するために使用されます。
ファクトリ・ベースの構成のlPasswd1、lPasswd2、rPasswd1およびrPasswd2の各属性は、クリア・テキストと暗号文のいずれも可能です。暗号文を使用して構成するには、com.oracle.tuxedo.tools.EncryptPasswordの出力を使用する必要があります。次に、サンプル出力を示します。
c:\tuxedo\JCA\adapter> java -classpath %classpath% com.oracle.tuxedo.tools.EncryptPassword mypassword foo.key 暗号化パスワード: {Salted-AES}WBGk6LjHuI515pwXPTfaOQ==
次に、WebLogicのweblogic-ra.xmlファイルを使用する例を示します。
…
<outbound-resource-adapter>
<connection-definition-group>
<connection-factory-interface>javax.resources.cci.ConnectionFactory</connection-factory-interface>
<connection-instance>
<jndi-name>eis/TuxedoConnectionFactory</jndi-name>
<connection-properties>
<properties>
<property>
<name>spSecurity</name>
<value>DM_PW</name>
</property>
<property>
<name>remoteAccessPointSpec</name>
<value>//localhost:123456/domainId=TUX_ID,lPasswd1=weblogic,rPassword=tuxedo</value>
</property>
…
次に示すのは、ファクトリ・ベースの構成のデフォルトSessionProfileのデフォルト値の表です。
このGWTDOMAINセッションにアプリケーション・レベルのキープ・アライブが構成されているかどうかと、その場合に待機タイマーが計時を開始するまでのアイドル・タイムの最大値を指定します。デフォルト値は「0」で、アプリケーション・レベルのキープ・アライブが無効であることを意味します。測定値は、ミリ秒です。接続がビジーの場合、リモート・ゲートウェイに特別なキープ・アライブ・メッセージを送信する必要はありません。ただし、
spKeepAliveで指定されたミリ秒数(秒単位に切り上げ)が経過しても接続上にアクティビティがない場合、特別なキープ・アライブ・メッセージを送信して、spKeepAliveWaitタイマーを開始します(やはり秒単位に切り上げ)。この「待機」時間が経過しても確認を受信できない場合、接続が失効していると宣言して、接続をクローズし、セッションを終了します。
|
|||
次に示すのは、WebLogicのweblogic-ra.xmlの例です。
…
<connection-instance>
…
<connection-properties>
…
<properties>
<property>
<name>spBlockTime</name>
<value>120000</value>
</property>
…
</connection-instance>
ファクトリ・ベースの構成ではデフォルト・インポートを使用できますが、アダプタからリモートのTuxedoアプリケーション・ドメインに統一的にアクセスできるものを制限することもできます。各ファクトリに対して"impResourceName"プロパティを1つのみ指定できますが、これは、Oracle Tuxedo JCA AdapterクライアントがアクセスできるリモートのTuxedoサービス/リソースのコンマ区切りリストを含んでいます。
LoadBalancingアルゴリズムは指定できず、常にRoundRobinを使用します。ユーザーのサービス・リクエストは、その個別の接続ファクトリのすべてのRemoteAccessPointsにわたってロード・バランシングされます。
次に示すのは、ファクトリ・ベースの構成の、インポートに関連する新しいプロパティです。
リスト29は、weblogic-ra.xmlのWebLogicサンプルを示します。
…
<connection-instance>
…
<connection-properties>
<properties>
<property>
<name>impResourceName</name>
<value>TOUPPER,ECHO</value>
</property>
…
</connection-instance>
Oracle Tuxedo JCA Adapter LocalAccessPointをリモートのTuxedo GWTDOMAINゲートウェイに接続するセッション。ファクトリ・ベースの構成では、明示的にセッションを指定する必要がないため、使用できる「セッション」関連のプロパティはなく、ファクトリ内で使用できるセッションはすべてデフォルト・セッションになります。Oracle Tuxedo JCA Adapterは、接続ファクトリの、LocalAccessPointとRemoteAccessPointのすべての可能な組み合わせに対してセッションを作成します。接続ファクトリ構成あたり、1つのLocalAccessPointしか存在できないため、多くとも1xN個のセッションのみ可能です。ここで、NはRemoteAccessPointの数です。たとえば、次を構成する場合、WebLogicのweblogic-ra.xmlをサンプルとして使用します。
<property>
<name>localAccessPointSpec</name>
<value> //localhost:12345/domainId=JDOM</value>
</property>
<property>
<name>remoteAccessPointSpec</name>
<value>//localhost:13456/domainId=TDOM1,//blues:23457/domainId=TDOM2</value>
</property>
ファクトリ・ベースの構成で使用できる、エクスポート関連のプロパティはありません。
Tuxedo JCA Adapterのファクトリ・ベースの構成は、WebLogicのweblogic-ra.xmlファイルを介して行います。構成のサンプル・フラグメントは、ここまでの項にあります。リスト31に、完全なサンプル構成を示します。
<?xml version="1.0"?>
<weblogic-connector
xmlns="http://www.bea.com/ns/weblogic/90">
<jndi-name>eis/TuxedoConnector</jndi-name>
<enable-access-outside-app>true</enable-access-outside-app>
<enable-global-access-to-classes>true</enable-global-access-to-classes>
<outbound-resource-adapter>
<connection-definition-group>
<connection-factory-interface>javax.resource.cci.ConnectionFactory</connection-factory-interface>
<connection-instance>
<jndi-name>eis/TuxedoConnectionFactory1</jndi-name>
<connection-properties>
<properties>
<property>
<name>remoteAccessPointSpec</name>
<value>//localhost:12478/domainId=TDOM1_ID</value>
</property>
</properties>
</connection-properties>
</connection-instance>
<connection-instance>
<jndi-name>eis/TuxedoConnectionFactory2</jndi-name>
<connection-properties>
<properties>
<property>
<name>spSecurity</name>
<value>APP_PW</value>
</property>
<property>
<name>applicationPassword</name>
<value>{Salted-AES}hHAsW13whgqTobG1t9Q92Q==</value></property>
<property>
<name>remoteAccessPointSpec</name>
<value>//localhost:12488/domainId=TDOM2_ID</value>
</property>
</properties>
</connection-properties>
</connection-instance>
<connection-instance>
<jndi-name>eis/TuxedoConnectionFactory3</jndi-name>
<connection-properties>
<properties>
<property>
<name>spSecurity</name>
<value>DM_PW</value>
</property>
<property>
<name>localAccessPointSpec</name>
<value>//localhost:10801/domainId=JDOM_ID</value>
</property>
<property>
<name>remoteAccessPointSpec</name>
<value>//localhost:12498/domainId=TDOM3_ID,
lPasswd1={Salted-AES}xNgOdUuXB7Z49D0cssluxA==,
rPasswd1={Salted-AES}hAIzbPI+YyaeuHX0A9Umqg==</value>
</property>
</properties>
</connection-properties>
</connection-instance>
</connection-definition-group>
</outbound-resource-adapter>
</weblogic-connector>
通常、ユーザーはOracle Tuxedo JCA Adapterをインストール後に構成します。ユーザーは先にRADDなベースのアダプタに関するプロパティを構成してから、ファクトリ・プロパティを構成できます。
次に示すのは、WebSphereコンソールからRADD内のアダプタに関するプロパティを構成する手順です。
「Tuxedo JCA Adapter」と名前を付けると仮定します。
「追加プロパティ」の下、右側にある「カスタム・プロパティ」をクリックします。
カスタム・プロパティ表の上部で「プリファレンス」をクリックします。これによって、コンソールが拡張されて最大行入力フィールドを追加できるため、デフォルト値を「60」に変更してから、入力フィールド・ボックスの右下にある「適用」ボタンをクリックし、ボックスにチェックマークを入れます。
これで、ユーザーはすべての構成可能なアダプタに関するプロパティを表示できるはずです。
remoteAccessPointSpec 目的のremoteAccessPointSpec値を「値」フィールドに追加するか、変更して、「適用」ボタンをクリックし、「保存」をクリックします。
ユーザーがWebSphere 7.0のapplicationPasswordプロパティを構成する場合、WebSphere 7.0がパスワードを暗号化するため、ユーザーはcom.oracle.tuxedo.tools.EncryptPasswordツールを使用してパスワードを暗号化する必要がありません。
次の手順を使用して、WebSphereのファクトリ・ベースの構成を構成します。
「Tuxedo JCA Adapter」と名前を付けると仮定します。
「追加プロパティ」の下、右側でJ2C接続ファクトリをクリックします。
「名前」フィールドに接続ファクトリ名を入力し、「JNDI name」フィールドに一意のJNDI名を入力してから、ページの一番下で「適用」ボタンをクリックします。
「名前」フィールドに「factory1」と入力したと仮定します。
「保存」ボタンをクリックします。J2C接続ファクトリのページに戻ります。
「名前」列で「factory1」をクリックします。ページ「factory1」に戻ります。
「追加プロパティ」の下、右側にある「カスタム・プロパティ」をクリックします。
「名前」列でプロパティ名をクリックすると、プロパティのページに移動します。「"localAccessPointSpec"」を選択したとします。
localAccessPointSpec「値」フィールドに値を入力し、「適用」ボタンをクリックして、「保存」をクリックします。「カスタム・プロパティ」ページに移動します。
リソース・アダプタのデプロイメントは、アプリケーション・サーバーによって変わります。通常、次の手順で行います。
Oracle Tuxedo JCA Adapterのデプロイには、デプロイメント・モードの選択、リソース・アダプタ記述子の構成、アダプタの再パッケージ化、およびJCA 1.5準拠JEEアプリケーション・サーバーへのデプロイが含まれます。ほとんどの場合、ra.xmlファイル(META-INFディレクトリにあります)を変更して、アダプタを起動し、実行中の状態にするだけで済みます。
| 注意: | ほとんどの場合、ra.xmlファイル(META-INFディレクトリにあります)を変更して、アダプタを起動し、実行中の状態にするだけで済みます。 |
| 注意: | リソース・アーカイブの構成と再パッケージ化の手順は、ターゲット・アプリケーションのタイプとは無関係に同一です。しかし、Oracle Tuxedo JCA Adapterのデプロイメントは、アプリケーション・サーバーによって異なります。 |
| 注意: | 詳細は、ターゲット・アプリケーション・サーバーのドキュメントを参照してください。 |
Oracle JCA Adapterをデプロイするには、次のタスクが必要です。
com.oracle.tuxedo.TuxedoAdapter.rarファイルをディレクトリに展開します。 構成されたリソース・アダプタのクラスがTuxedoResourceAdapter、TuxedoClientSideResourceAdapter、TuxedoFBCResourceAdapterのいずれかであるかどうかをOracle Tuxedo JCA Adapterが確認します。
TuxedoResourceAdapterを使用する場合、dmconfigプロパティを構成する必要があります。構成されたdmconfigプロパティに、パス情報を持たないファイル名だけが含まれている場合、リスト32に示すように、構成はリソースとしてロードされます。
リソース・アーカイブからロードできない場合、現在の作業ディレクトリにあるファイルとみなされます。ファイルを開くことができない場合、リソース・アダプタは起動せず、ResourceAdapterExceptionがスローされます。
<config-property>
<config-property-name>dmconfig</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>dmconfig.xml</config-property-value>
</config-property>
構成されたdmconfigプロパティにパス情報が含まれる場合、リスト33に示すように、ファイルとして扱われ、ロードされます。ファイルが開くことができない場合、リソース・アダプタは起動せず、ResourceAdapterExceptionがスローされます。
…
<config-property>
<config-property-name>dmconfig</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>/user/dilbert/tja/dmconfig.
xml</config-property- value>
</config-property>
…
dmconfigファイルにいかなるLocalAccessPointも構成されない場合、単一のデフォルトLocalAccessPointを作成します。デフォルトLocalAccessPointは、デフォルトSessionProfileを使用するRemoteAccessPointとのセッションしか持てません。
アダプタは、すべてデフォルト値を使用して、デフォルトSessionProfileを作成します(ただしデフォルトSessionProfileに対しては常にON_STARTUPとなるConnectionPolicyを除く)。dmconfigファイルでSessionProfile が構成されている場合、デフォルトSessionProfileに追加して作成されます。
dmconfigファイルにSessionProfileが構成されていない場合、デフォルトLocalAccessPointが作成されていれば、アダプタはRemoteAccessPointセッションを作成します。
リソース記述子ra.xmlファイルのresourceadapter-class要素には、リスト34に示すように、値としてcom.oracle.tuxedo.adapter.TuxedoResourceAdapter完全修飾クラス名が含まれるはずです。
…
<resourceadapter>
<resourceadapter-class>com.oracle.tuxedo.adapter.
TuxedoResourceAdapter</resourceadapter-class>
…
| 注意: | 新しい「クライアント側」モード・プロパティは、このクラス・ベースのリソース・アダプタでは使用できません。リソース・アダプタ・デプロイメント記述子ファイルにそれらのプロパティを構成する場合、動作はアプリケーション・サーバーにより異なります。 |
TuxedoClientSideResourceAdapterが構成されている場合、dmconfig構成は無視されます。このリソース・アダプタのクラスが構成される場合、すべての構成情報が、アプリケーション・サーバーのJCAコンテナが提供するリソース・アダプタJava Beanに含まれると想定されます。
localAccessPointSpecプロパティが構成されない場合、リソース・アダプタ・デプロイメント記述子ファイル・ベースの構成に対してデフォルトのLocalAccessPointが作成されます。11gR1 11.1.1.1.0リリースの「1つ以上のLocalAccessPointを構成する必要があります」という制約は削除されます。
remoteAccessPointSpecプロパティが構成される場合、RemoteAccessPointを構築するために使用されます。remoteAccessPointSpecプロパティが構成されていない場合、構成は使用できず、警告メッセージがアダプタ・ログファイルに記録されます。
デフォルトのSessionProfileは、セッション・プロファイルに関連するプロパティからの情報を使用して作成されます。セッション・プロファイル関連のプロパティが構成されていない場合、デフォルト値だけを使用してデフォルトのSessionProfileが構築されます。LocalAccessPointからすべてのRemoteAccessPointまでのセッションが、デフォルトのSessionProfileを使用して作成されます。
リソース記述子ra.xmlファイルのresourceadapter-class要素には、リスト35に示すように、値としてcom.oracle.tuxedo.adapter.TuxedoClientSideResourceAdapter完全修飾クラス名が含まれるはずです。
…
<resourceadapter>
<resourceadapter-class>com.oracle.tuxedo.adapter.
TuxedoClientSideResourceAdapter</resourceadapter-class>
…
TuxedoFBCResourceAdapterが構成されている場合、dmconfig構成と、リソース・アダプタ・デプロイメント記述子固有の構成のプロパティは無視されます。このリソース・アダプタのクラスが構成される場合、すべての構成情報が、アプリケーション・サーバーのJCAコンテナが提供するリソース・アダプタJava Beanと管理対象接続ファクトリJava Beanに含まれると想定されます。
ファクトリに対してlocalAccessPointSpecプロパティが構成されない場合、デフォルトのLocaAccessPointがそのファクトリに作成されます。各ファクトリに対してremoteAccessPointSpecが構成される必要があり、それはRemoteAccessPointを構築するために使用されます。
各ファクトリに対して、そのファクトリのSessionProfileと関連があるプロパティからの情報を使用してデフォルトのSessionProfileが作成されます。ファクトリに対してセッション・プロファイル関連のプロパティが構成されない場合、ファクトリはデフォルトのSessionProfileを使用します。
リソース・デプロイメント記述子ra.xmlファイルのresourceadapter-class要素には、リスト36に示すように、値としてcom.oracle.tuxedo.adapter.TuxedoFBCResourceAdapter完全修飾クラス名が含まれるはずです。
...
<resourceadapter>
<resourceadapter-class>com.oracle.tuxedo.adapter.
TuxedoFBCResourceAdapter</resourceadapter-class>
...
リソース・アダプタ・デプロイメント記述子ベースの構成とdmconfigベースの構成の両方で使用できる、一連のリソース・アダプタ・デプロイメント記述子カスタム・プロパティが存在します。唯一の例外は、dmconfigベースの構成を使用する場合のみ使用できる、dmconfigカスタム・プロパティです。リソース・アダプタ・デプロイメント記述子ベースの構成を使用する際に、ユーザーがこのプロパティを指定しても、このプロパティは無視されます。
一部のra.xmlファイル・フィールドは変更しないことをお薦めします。内部的にOracle Tuxedo JCA Adapterまたはその記述情報に関係しているためです。ただし、動作とアプリケーションをカスタマイズするために変更する必要があるフィールドが他にあります。
config-propertyフィールドは、通常、標準JCAデプロイメント記述子META-INF/ra.xmlファイル内でOracle Tuxedo JCA Adapterカスタム・プロパティを定義するために使用されます。表28に、Oracle Tuxedo JCA Adapterをカスタマイズするために使用されるプロパティを示します。
リソース・デプロイメント記述子META-INF/ra.xml ファイル内のdmconfigプロパティを使用して、Oracle Tuxedo JCA Adapter構成ファイルを指定する必要があります。詳細は、『Oracle Tuxedo JCA Adapterプログラミング・ガイド』で、構成ファイルの例を参照してください。
表29に、トレース・レベル制御値を示します。
| 注意: | 20,000未満のトレース・レベルではトレースは実行されません。 |
リスト37に、カスタマイズ・プロパティを使用するデプロイメント記述子ファイルの例を示します。
<config-property>
<config-property-name>traceLevel</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>0</config-property-value>
</config-property>
<config-property>
<config-property-name>xaAffinity</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>true</config-property-value>
</config-property>
<config-property>
<config-property-name>keyFileName</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>foo.key</config-property-value>
</config-property>
<config-property>
<config-property-name>dmconfig</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>dmconfig.xml</config-property-value>
</config-property>
<config-property>
<config-property-name>throwFailureReplyException</config-property-name>
<config-property-type>java.lang.Boolean</config-property-type>
<config-property-value>true</config-property-value>
</config-property-value>
</config-property>
<config-property>
<config-property-name>appManagedLocalTxTimeout</config-property-name>
<config-property-type>java.lang.Integer</config-property-type>
<config-property-value>15</config-property-value>
</config-property>
大部分のアプリケーション・サーバーでは、リソース・アダプタを非アーカイブ形式でデプロイすることが許容されています。しかし、リソース・デプロイメント記述子を変更したら、アダプタを再パッケージ化してからデプロイするのがベストです。
再パッケージ化には、JDK付属の"jar"コマンドを使用して、Oracle Tuxedo JCA Adapterをリソース・アーカイブに変換する必要があります。リソース・アーカイブは".rar"という拡張子を持っています。
たとえば、リソース・アーカイブのルート・ディレクトリから、次のコマンドを使用します: jar -cvf ../com.oracle.tuxedo.TuxedoAdapter.rar *
アプリケーション・サーバーには、デフォルトの接続プール・サイズがあります。大部分のアプリケーションでは、デフォルト接続プール・サイズに余裕がありますが、状況により、デフォルト接続プール・サイズでは十分でない場合があります。たとえば、Oracle WebLogicサーバーは10に等しいデフォルト接続プール・サイズを持っています。これは、同じアダプタを使用してリモートの企業情報システム(EIS)にアクセスするために、最大で10台の同時JCAクライアントをサポートできることを意味します。あるアプリケーションが、Oracle Tuxedo JCAアダプタを使用して10台以上の同時クライアントをサポートしたい場合、アプリケーションは接続プール・サイズを拡張する必要があります。
たとえば、Oracle WebLogicサーバー・インストールにおいて、デフォルト値から20まで接続プール・サイズを変更するには、リスト38に示すように、META-INFディレクトリでweblogic-ra.xml ファイルを変更します。
<outbound-resource-adapter>
<default-connection-properties>
<pool-params>
<initial-capacity>15</initial-capacity>
<max-capacity>20</max-capacity>
</pool-params>
</default-connection-properties>
<connction-definition-group>
...
</connection-definition-group>
</outbound-resource-adapter>
| 注意: | アプリケーション・サーバーによって、異なる接続プール・サイズ構成を必要とします。一部のアプリケーション・サーバーでは、カスタム・デプロイメント記述子を使用して、接続プール・サイズを構成します(Oracle WebLogic Serverなど)。別のアプリケーション・サーバーでは、コンソール構成を使用します(IBM WebSphereなど)。 |
| 注意: | 詳細は、アプリケーション・サーバーのドキュメントを参照してください。 |
Oracle Tuxedo JCA Adapterをデプロイした後に、アプリケーションを拡張または変更したくなることがあります。その場合、アダプタ構成を変更する必要があります。Oracle Tuxedo JCA Adapter構成の変更には、テキスト・エディタまたはXMLエディタを使用して、構成されたアダプタ構成の内容を変更することが含まれます。
Oracle WebLogicサーバーおよびJBOSSアプリケーション・サーバー環境では、次の手順を実行する必要があります。
| 注意: | IBM WebSphereアプリケーション・サーバーの場合、アプリケーション・サーバーを停止してから再起動する必要があります。 |
Oracle Tuxedo JCA Adapterは、変更を有効にするために構成を停止して再起動しない、実行時の動的な構成変更をサポートしません。
Oracle Tuxedo JCA Adapterは、リンク・レベルのフェイルオーバーとサービス・レベルのフェイルオーバーするの両方をサポートします。
リンクレベルのフェイルオーバーによって、ユーザーは異なるアクセス・ポイント・ネットワーク・アドレスを指定できるようになります。これは、ローカル・アクセス・ポイントとリモート・アクセス・ポイントの両方に適用できます。dmconfigファイル構成で、ユーザーは、RemoteAccessPointとLocalAccessPointに、複数のNetworkAddress要素を指定できます。これらのネットワーク・アドレスの順序は、プリファレンスの順序を表しています。Oracle Tuxedo JCA Adapterは、ローカル・アクセス・ポイントの最初のネットワーク・アドレスを使用して、リスニング・エンドポイントを確立するよう試行します。失敗した場合は、リスニング・エンドポイントが確立されるか、またはすべてのネットワーク・アドレスが使い尽くされるまで次のエンドポイントを試行し続けます。Oracle Tuxedo JCA Adapterは、ローカル・アクセス・ポイントの最初のネットワーク・アドレスを使用して、リモートTuxedo GWTDOMAINゲートウェイへの接続を確立するよう試行します。失敗した場合は、接続が確立されるか、またはすべてのネットワーク・アドレスが使い尽くされるまで次の接続を試行し続けます。ただし、リンク・レベルのフェイルバックはありません。次の例は、dmconfigファイル構成を使用して、LDOM1ローカル・アクセス・ポイントがリンクレベルのフェイルオーバー用に2つのネットワーク・アドレスを持つことを示し、またRDOM1リモート・アクセス・ポイントがリンクレベルのフェイルオーバー用に2つのネットワーク・アドレスを持つことを示します。
...
<LocalAccessPoint name="LDOM1">
<AccessPointId>Godfried</AccessPointId>
<NetworkAddress>//neocortex:14001</NetworkAddress>
<NetworkAddress>//cerebrum:14002</NetworkAddress>
</LocalAccessPoint>
<RemoteAccessPoint name="RDOM1">
<AccessPointId>Geneve</AccessPointId>
<NetworkAddress>//bluestar:11023</NetworkAddress>
<NetworkAddress>//orion:11023</NetworkAddress>
</RemoteAccessPoint>
...
リンク・レベルのフェイルオーバーの他に、Oracle Tuxedo JCA Adapterはサービス・レベルのフェイルオーバーもサポートします。サービス・レベルのフェイルオーバーは、リモートのTuxedoリソースにアクセスできる代替のセッションを指定します。これは、コンマ区切りリストです。ロード・バランシングとは異なります。サービス・レベルのフェイルオーバーを使用できるのは、ConnectionPolicyがON_STARTUPに等しい場合だけです。他のタイプのConnectionPolicyには、ロード・バランシングのみがあります。サービス・レベルのフェイルオーバーが有効の場合、プライマリ・セッションのセッション・ステータスが確認され、ステータスが接続済でない場合、最初のバックアップ・セッションを確認します。以下、バックアップ・セッションに接続済ステータスが検出されるか、構成されているバックアップ・セッションをすべて使い果たすまで、同様に続きます。
次の例はインポートされたリソースTOUPPERが、session_1とsession_2の間でロード・バランシングできることを示しています。
...
<Import name="TUXTOUPPER">
<SessionName>session_1</SessionName>
<SessionName>session_2</sessionName>
<LoadBalancing>RoundRobin</LoadBalancing>
</Import>
...
次の例は、ロード・バランシングできるだけでなく、サービス・レベルのフェイルオーバーもできることを示しています。
...
<Import name="TUXTOUPPER">
<SessionName>session_1,session_3</SessionName>
<SessionName>session_2,session_3</sessionName>
<LoadBalancing>RoundRobin</LoadBalancing>
</Import>
...
上記の構成は、session_1とsession_2の間のロード・バランシングです。session_1が使用できない場合、ロード・バランシング・アルゴリズムがsession_1の番と判定したときに、session_3にサービス・リクエストが転送されます。session_2についても同様です。この事例ではsession_3も
特定のインポート済リソースのすべてのセッションに対して、ConnectionPolicyがON_STARTUPに設定されている場合、サービス・レベルのフェイルバックは自動です。上の例でsession_1が使用できない場合、session_1に宛てられたすべてのサービス・リクエストが、session_3にルーティングされます。session_1が使用可能になると、サービス・リクエストは再び、プライマリ・ルートであるsession_1にルーティングされます。
Oracle Tuxedo JCA Adapterは、リンク・レベルの暗号化またはSecured Socket Layerを使用するデータ・セキュリティをサポートします。また、アプリケーション・サーバーからOracle TuxedoへのアウトバウンドID通知機能もあります。これにより、Oracle Tuxedoリソースのアクセスをきめ細かく制御できます。
セキュリティを確保するためにDMConfigCheckerユーティリティが使用されます。このユーティリティは、構成ファイルをスキーマと照合するだけでなく、パスワードを暗号化形式に変換してセキュリティを向上させます。暗号化が必要な場合、Oracle Tuxedo JCA Adapterを開始する前にDMConfigCheckerを実行する必要があります。詳細は、 『Oracle Tuxedo JCAリファレンス・ガイド』を参照してください。
リンク・レベルの暗号化(LLE)は、Oracle Tuxedo JCA AdapterとTuxedo TDomainゲートウェイの間のすべてのユーザー・メッセージ・フローを暗号化する、高速の独自規格テクノロジです。40ビット、56ビットおよび128ビット暗号強度をサポートします。この機能を有効にするには、アダプタ構成の SessionProfileで、MaxEncryptBitsとMinEncryptBitsを構成します。
MaxEncryptBitsのデフォルト値は128ビットで、MinEncryptBitsのデフォルト値は0です。両方の要素で許される値は、0(暗号化なし)、40ビット、56ビット、128ビットおよび256ビットです。256ビット暗号化は、SSL AES 256ビット暗号化用です(LLEは256ビット暗号化をサポートしません)。MinEncryptBits値はMaxEncryptBits値以下である必要があります。
| 注意: | SSLが構成されていず、MaxEncryptBitsが256ビットに設定されている場合、MaxEncryptBitsは最大の128ビットLLEにスケールダウンされます。 |
| 注意: | LLEは、GWTDOMAINゲートウェイでも構成する必要があります。 |
Oracle Tuxedo JCAアダプタは、Secure Socket Layer (SSL)暗号化もサポートします。SSL暗号化を有効化するには、次の手順を実行する必要があります。
MinEncryptBitsおよびMaxEncryptBitsを構成します。 SSLInfoを構成します。 Javaキー・ストア(JKS)がサポートされます。IdentityKeyStoreFileNameとTrustKeyStoreFileNameは、どちらもJKSタイプを参照します。
| 注意: | 相互認証はデフォルトで無効ですが、MutualAuthenticationRequired要素をtrueに設定することで有効にできます。 |
サンプルのSSLInfo構成例を、リスト42に示します。
<LocalAccessPoint name="jdom">
...
<SSLInfo>
<IdentityKeyStoreFileName>c:\test\cert\test_users.jks</IdentityKeyStoreFileName>
<IdentityKeyStorePassPhraseEncrypted>passphrase</IdentityKeyStorePassPhraseEncrypted>
<PrivateKeyAlias>tester</PrivateKeyAlias>
<PrivateKeyPassPhraseEncrypted>passphrase</privatekeypassphraseencrypted>
<TrustKeyStoreFileName>c:\test\cert\trusted.jks</TrustKeyStoreFileName>
<TrustKeyStorePassPhraseEncrypted>passphrase</TrustKeyStorePassPhraseEncrypted>
</SSLInfo>
</LocalAccessPoint>
この例では、DMConfigCheckerユーティリティを先に実行することで、Oracle Tuxedo JCA Adapterがユーティリティを使用できるようになります(3つの要素で暗号化が必要であるため)。
SSLが構成されない場合、Oracle Tuxedo JCA Adapterはセッション認証をサポートしますが、SessionProfileの「Security」が、「DM_PW」または「APP_PW」を使用して構成されている必要があります。
セキュリティが「APP_PW」を使用して構成されている場合、Oracle Tuxedoのアプリケーション・パスワードをキーとして使用して、認証者を暗号化/復号します。Oracle Tuxedo JCA Adapterには、1つのアプリケーション・パスワードのみを構成できます。このパスワードは、構成ファイル内のResources "ApplicationPasswordEncrypted"要素で構成されます。
セキュリティが「DM_PW」で構成されている場合、ドメイン・パスワードをキーとして使用して、認証者を暗号化復号します。構成されるいかなるセッションに対しても、最大で2つのパスワード・ペアを構成できます。
各パスワード・ペアは、1つのローカル・パスワードと1つのリモート・パスワード、およびそのアクティブ化/非アクティブ化時刻から構成されています。アクティブ化/非アクティブ化時刻では、書式「YYYY:MM:DD:hh:mm:ss」を使用します(例: 2009:01:01:12:00:00)。
非アクティブ化時刻は、アクティブ化時刻より後である必要があります。アクティブ化時刻を指定しない場合、アダプタが起動したときに、パスワードがすでにアクティブ化されていることを示します。非アクティブ化時刻を指定しない場合、パスワードは決して期限切れになりません。
セッションがすでに確立されている間にパスワード・ペアが期限切れになっても、セッションは無効にならず、セッション・ネゴシエーション・プロセスが開始されます。ただし、ネゴシエーションが開始される前にパスワード・ペアが期限切れになった場合、そのパスワード・ペアは認証に使用されません。セッション認証の際に、有効なパスワード・ペアが検出されない場合、セッションを確立できません。
ローカル・アクセス・ポイントでSSLが必要な場合、そのローカル・アクセス・ポイントとあらゆるリモート・アクセス・ポイントの間のセッションではSSLを使用して、データ保護メカニズムを明確に示します。この場合、SessionProfile/Securityが正しい値に構成されていても、セッション認証は実行されません。
AppKeyジェネレータは、アプリケーション・サーバーからTuxedoに送信されるユーザー情報を決定するために使用されるプラガブル・クラスです。Oracle Tuxedoは、この情報を使用して、Tuxedoリソースへのユーザー・アクセス権を決定します。これは、ACLとも呼ばれます。
Oracle Tuxedo JCA AdapterにはデフォルトのAppKeyジェネレータ・クラスが事前構成されており、デフォルトのOracle Tuxedo認証、認可および監査プラグイン(AAA)で機能します。ただし、デフォルトOracle Tuxedo AAAプラグインを使用するアクセス制御が必要な場合、リモート・アクセス・ポイントでTpusrFile要素を構成する必要もあります。RemoteAccessPointのTpusrFile要素は、Oracle Tuxedoのtpusrファイルを参照します。
それを実行する最も簡単な方法は、両方とも同じマシン上で動作している場合、ファイルをOracle Tuxedoからコピーするか、Oracle Tuxedoと共有することです。RemoteAccessPoint TpusrFileファイルが構成されていない場合、Oracle JCA AdapterはResourcesセクションでもTpusrFileファイルを探します。
また、CredentialPolicyを「Global」に設定して、AAAセキュリティ・トークンがOracle Tuxedo JCA AdapterからOracle Tuxedoアプリケーション・ドメインにネットワークを横断して移動できるようにする必要もあります。
RemoteAccessPointにある他の構成要素を使用すると、AppKeyジェネレータ・プラグインをさらにカスタマイズできます。AllowAnonymous要素は、Oracle Tuxedoへの匿名アクセスを許すかどうかをアダプタに指示します。
| 注意: | デフォルトでは、匿名アクセスは許容されません。アプリケーション・サーバーは認証を実行します。 |
DefaultApplicationKeyは、Oracle Tuxedoにアクセスするために匿名ユーザーが使用するキー値です(デフォルト値は「-1」です)。デフォルトのAppKeyジェネレータは、匿名のユーザー名が「anonymous」と想定しています。
アイデンティティ通知を成功させるためには、(以前に説明したすべての構成オプションに加えて)ホスト・アプリケーション・サーバーのJCAコンテナでPrincipal Mapping要素を構成する必要もあります。
詳細は、ターゲット・アプリケーション・サーバーのドキュメントを参照してください。
Oracle JCAアダプタ構成ファイル・アイデンティティ通知の例を、リスト43に示します。
<RemoteAccessPoint name="tdom">
...
<TpusrFile>c:\test\data\tpusr</TpusrFile>
<AllowAnonymous>true</AllowAnonymous>
...
</RemoteAccessPoint>
<SessionProfile name="prof_1">
...
<CredentialPolicy>global</CredentialPolicy>
...
</SessionProfile>
|