![]() |
![]() |
![]() |
![]() |
![]() |
注意: Oracle Tuxedo CORBA環境でトランザクションを使用する方法の詳細は、『CORBAトランザクションの使用』を参照してください。トランザクションに対応させるには、次に示すようにアプリケーションのUBBCONFIGファイルのRESOURCES、MACHINES、GROUPSおよびSERVICESセクションを変更する必要があります。
各マシンのTLOG情報を指定します。 次の表に、RESOURCESセクションに指定するトランザクション関連のパラメータの説明を示します。
一度に1台のマシン上で設定できるグローバル・トランザクション識別子(GTRID)の合計数を制限します。指定可能な最大値は2048、最小値は0、デフォルト値は100です。MAXGTTの値は、MACHINESセクションでマシンごとにオーバーライドできます。
• LOGGED - TP_COMMIT_CONTROL特性はTP_CMT_LOGGEDに設定されます。すべての参加リソースが正常にプリコミットを行った場合にtpcommit()が返されることを示します。
• COMPLETE - TP_COMMIT_CONTROL特性はTP_CMT_COMPLETEに設定されます。すべての参加リソースが正常にコミットするまでtpcommit()が返されないことを示します。デフォルトはCOMPLETEです。適切な設定を判別するには、リソース・マネージャ(RM)ベンダーに問い合せてください。アプリケーションにXA標準のレイト・コミット実装を使用するリソース・マネージャがある場合、COMPLETEに設定する必要があります。すべてのリソース・マネージャがアーリー・コミット実装を使用する場合は、パフォーマンス上の理由によりLOGGEDに設定します。(この設定はtpscmt()を使用してオーバーライドできます。) 汎用デバイス・リスト(UDL)はOracle Tuxedoファイル・システムのマップです。UDLは、アプリケーションの起動時に共有メモリーにロードされます。TLOGは、トランザクションが完了するまでトランザクションの情報が格納されるログを表します。UDL内にTLOGデバイス用のエントリを作成するには、グローバル・トランザクションを使用して各マシンにUDLを作成します。(TLOGDEVICEが2台のマシン間でミラーリングされる場合、対になるマシンでこれを行う必要はありません。)BBLは、起動時にTLOGを初期化して開きます。configの値は、UDLの作成先デバイスのフルパス名です。これは、構成ファイルのMACHINESセクションにあるTLOGDEVICEパラメータの値と一致している必要があります。blocksには、デバイス上に割り当てるブロックの数を指定します。
注意: これらのパラメータのうち、TLOGDEVICEについては、TLOGが必要なマシン上にTLOGDEVICEのデバイス・リスト・エントリを手動で作成する必要があります。これは、TUXCONFIGがロードされる前でも後でも作成できますが、必ず、システムを起動する前に作成してください。次の表に、MACHINESセクションに指定するトランザクション関連のパラメータの説明を示します。
マシンのDTPトランザクション・ログの名前を指定します。 マシンのDTPトランザクション・ログ(TLOG)を含むOracle Tuxedoファイル・システムを指定します。このパラメータを指定しないと、マシンにはTLOGがないと見なされます。値に使用できる文字数は、最大64文字です。 TLOGDEVICEの始めから、マシンのトランザクション・ログを含むVTOCの開始までのオフセット(ページ数)。この値は0以上で、デバイス上のページ数より小さい値である必要があります。デフォルトは0です。TLOGOFFSETが必要になることはほとんどありません。ただし、2つのVTOCが同じデバイスを共有したり、VTOCが別のアプリケーションに共有されるデバイス(ファイル・システムなど)上に格納される場合は、TLOGOFFSETを使用してデバイスのアドレスに関連する開始アドレスを指定できます。
1. Oracle Database 10gクライアント(以降)をインストールし、libclntsh.so.x.x (たとえば、libclntsh.so.10.1)のリンクlibclntsh.soを作成して、Linuxプラットフォームでリンクlibclntsh.soにLD_LIBRARY_PATHを設定します。Domainsゲートウェイ・グループを起動する前に、Domainsトランザクション・ログを作成する必要があります。特に、Domainsトランザクション・ログは、現在のマシン(DMADMを実行中のマシン)の指定されたローカル・ドメインに作成してください。ログを作成するには、次のコマンドを入力します。このコマンドでは、DMCONFIGファイルで指定したパラメータが使用されます。指定したローカル・ドメインが現在のマシン上でアクティブであるか、またはログがすでに存在する場合、このコマンドは失敗します。トランザクション・ログがない場合は、Domainsゲートウェイ・グループの起動時に作成されます。
• 『Oracle Tuxedoアプリケーション実行時の管理』の「トランザクション・ログ(TLOG)とは」
• TMSNAMEには、エントリで定義済のグループに関連付けられた、トランザクション・マネージャ・サーバー用の実行可能ファイル名を指定します。Oracle Tuxedoシステムには、トランザクションに参加してもRMは使用しないグループ用に、NULLトランザクション・マネージャ・サーバー(TMS)が用意されています。 このTMSサーバーは、どのRMとも通信しません。RMとは通信せず、トランザクションの管理だけを行います。
• TMSCOUNTには、起動するTMSの数(最小2、最大10、デフォルト3)を指定します。
• 各リソース・マネージャに対しては、OPENINFOおよびCLOSEINFOパラメータを定義できます。これらのパラメータの値は、リソース・マネージャを開くまたは閉じるために必要な情報を含む文字列です。適切なパラメータ値は、リソース・マネージャのベンダー側で用意されます。たとえば、リソース・マネージャとしてOracleデータベースを使用している場合、次のような値を指定します。この表は、GROUPSエントリの例のトランザクション値を説明します。
APPDIR/bankdl1
TMSは、NULLトランザクション・マネージャ・サーバーです。
• クライアントのかわりに、サービスにトランザクションを開始させる場合は、AUTOTRANフラグをYに設定する必要があります。この設定は、サービスが大規模なトランザクションの一部でない場合や、トランザクションの決定に関わるクライアント側の負担を軽減したい場合に役立ちます。既存のトランザクションがある場合にサービスが呼び出されると、この呼出しは既存のトランザクションの一部になります。(デフォルトはNです。)
•
• データ依存型ルーティングを使用するトランザクションには、ROUTINGパラメータを定義する必要があります。
正しく動作するには、アプリケーションの設計者とアプリケーション管理者の間の人的なコミュニケーションが必要になる可能性があります。開発者が設定したICFパラメータを知らずに、管理者がこの値をYに設定すると、アプリケーションの誤った動作や失敗が発生することがあります。デフォルトはNです。 このサービスをリクエストするトランザクションにデータ依存型ルーティングが指定されているROUTINGセクション内のエントリを指します。ドメイン全体でトランザクションを有効にするには、Domains構成ファイル(DMCONFIG)のDM_LOCALとDM_IMPORTの両方のセクションでパラメータを設定する必要があります。DM_LOCALセクションのエントリでは、ローカル・ドメインの特性を定義します。DM_IMPORTセクションのエントリでは、インポートされたサービスや、リモート・ドメインで使用可能なサービスを定義します。Domains構成ファイルのDM_LOCALセクションでは、ローカル・ドメインおよびそれに関連するゲートウェイ・グループを指定します。ゲートウェイ・グループ(ローカル・ドメイン)ごとに、そのグループで実行するドメイン・ゲートウェイ・プロセスに必要なパラメータを指定するエントリを作成する必要があります。
このマシンのDomainsトランザクション・ログ(DMTLOG)を含むOracle Tuxedoファイル・システムを指定します。DMTLOGは、TLOGDEVICE (Oracle Tuxedoファイル・システム)上にOracle TuxedoのVTOC表として格納されます。このパラメータを指定しない場合、Domainsゲートウェイ・グループはリクエストをトランザクション・モードで処理できません。同じマシン上で実行するローカル・ドメインは、同じDMTLOGDEVファイル・システムを共有できますが、ローカル・ドメインごとに個別のログ(DMTLOGDEV)を作成する必要があります。各ログの名前は、DMTLOGNAMEパラメータによって決まります。 このドメインのDomainsトランザクション・ログの名前を指定します。このドメインが他のローカル・ドメインと同じファイル・システム上にある場合(DMTLOGDEVの値が同じ)、DMTLOGNAMEの値はログごとに一意である必要があります。値には30文字以内の文字を使用できます。デフォルトはDMTLOGです。
注意: トランザクション内のドメインの数により、DMTLOGSIZEパラメータで指定するページ数が決まります。トランザクションとログのページ数は、1対1でマッピングされません。 このローカル・ドメイン上で同時に実行できるグローバル・トランザクションの最大数を指定します。ゼロ以上で、(構成ファイルで指定した) MAXGTTパラメータ以下である必要があります。デフォルトは、MAXGTTの値です。Domains構成ファイルのDM_IMPORTセクションでは、インポートされ、リモート・ドメインで使用可能になったサービスに関する情報を提供します。各リモート・サービスは、特定のリモート・ドメインに関連付けられています。
UBBCONFIGファイルのRESOURCESセクションでは、MAXTRANTIMEという追加のトランザクション・タイムアウト・プロパティも使用できます。MAXTRANTIMEタイムアウト値がTRANTIMEタイムアウト値またはトランザクションを開始するtpbegin(3c)の呼出しで渡されたタイムアウト値より小さい場合、トランザクションのタイムアウトはMAXTRANTIMEの値に削減されます。MAXTRANTIMEは、<Default ?Font>Oracle Tuxedo 8.0以前を実行するマシン上で開始されるトランザクションには影響を与えません。ただし、Oracle 8.1以降を実行するマシンがトランザクションの影響を受ける場合は、そのノードに対して構成されているMAXTRANTIME値までトランザクション・タイムアウト値が制限(必要に応じて減少)されます。
• ドメイン間トランザクションでMAXTRANTIMEパラメータを認識しないノードが影響を受ける場合、またはMAXTRANTIMEパラメータを認識するがパラメータが設定されていない場合、トランザクションのタイムアウト値はTRANTIME、またはトランザクションを開始したtpbegin()呼出しで渡されたタイムアウト値によって決まります。TRANTIMEまたはtpbegin()のタイムアウト値を超えると、トランザクションの影響を受けるすべてのOracleノード(トランザクションを開始したノードも含む)はTMSタイムアウト・メッセージを生成します。
• ドメイン間トランザクションがMAXTRANTIMEパラメータを認識するノードに影響を及ぼし、そのノードに対してパラメータが設定されている場合、トランザクションのタイムアウト値はそのノードのMAXTRANTIME値を超えない値にまで削減されます。TRANTIMEまたはtpbegin()タイムアウト値がMAXTRANTIMEより大きい場合、トランザクションのタイムアウト値は影響を受けるノードによってMAXTRANTIMEに削減されます。MAXTRANTIMEタイムアウト値を超えると、影響を受けるノードはTMSタイムアウト・メッセージを生成します。MAXTRANTIMEの詳細は、UBBCONFIG(5)のRESOURCESセクションにあるMAXTRANTIME、またはTM_MIB(5)のT_DOMAINクラスにあるTA_MAXTRANTIMEを参照してください。
• ATMIインタフェースを使用してシステムと通信するBRIDGEプロセスが実行されます次のリストに、RESOURCESセクションの例を示します。リスト5-1 RESOURCESセクションの例
• 次のリストに、MACHINESセクションの例を示します。リスト5-2 MACHINESセクションの例
• TLOGDEVICEおよびTLOGNAMEが指定され、トランザクションが行われることを示します。リスト5-3 GROUPSおよびNETWORKセクションの例
• すべてのサービス・リクエストはACCOUNT_IDフィールドでルーティングされます。
• 『C言語を使用したOracle Tuxedo ATMIアプリケーションのプログラミング』のグローバル・トランザクションのコーディングに関する項
• 『Oracle Tuxedo ATMIの紹介』のATMIの使用に関する項
• Oracle Tuxedo CORBA環境でトランザクションを使用する方法の詳細は、『CORBAトランザクションの使用』を参照してください