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 ファイルを使用して構成を変更することもできます。
|
注意: | com.bea.core.i18n_1.4.0.0.jar は、WebLogic Server以外のJavaアプリケーション用です。このファイルはWebLogic Serverを置換するために設定しないでください。オーバーライドする必要があるファイルは、WLS jatmi.jar ファイルのみです。 |
注意: | Oracle Tuxedo JCA Adapterリソース・アーカイブには、Oracle Tuxedo JCA Adapterを有効化するための最新の修正ファイルが含まれています。その他すべてのJavaアプリケーション・サーバーの場合、jatmi.jar ファイルは不要です。 |
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データベースから削除されます。
注意: | 動的なRemoteAccessPointの登録/挿入がTuxedo GWTDOMAINゲートウェイで有効化されている場合、REMOTE_DOMAINS セクションで構成されていないと、すべてのリモート・アクセス・ポイントがゲートウェイに接続できるとは限りません。 |
注意: | デフォルトのLocalAccessPointが有効化されている状態のOracle Tuxedo JCA Adapterのみが、リモートのOracle Tuxedo GWTDOMAINゲートウェイに接続できます。GWTDOMAINが接続リクエストを受信すると、リモート・ドメインが構成されているかどうかチェックします。構成されていない場合、DYNAMIC_RAP はYES に設定されているかどうかチェックします。YES に設定されている場合、メッセージ・データをチェックし、正当なOracle Tuxedo JCA Adapterから発信されたリクエストかどうか判定します。 |
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>
RDOM
1は、ローカルに一意である必要があります。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>