Oracle Services for Microsoft Transaction Server開発者ガイド 11gリリース1(11.1) for Microsoft Windows E05793-01 |
|
![]() 戻る |
![]() 次へ |
この章では、Oracle Microsoft Transaction Serverのトラブルシューティングについて説明します。
この章の項目は次のとおりです。
トレース・ファイルには、Oracle Services for Microsoft Transaction Serverパフォーマンスに関する情報が記録されています。この情報には、次のものが含まれます。
エラー
登録要求とその結果
準備、コミットおよび終了の要求とその結果
レジストリ・パラメータはoramts.dll
内での追跡を処理します。oramts.dll
では次の作業が行われます。
OracleデータベースをMicrosoft Transaction Serverと統合するためのAPIを実装します。
リソース・ディスペンサとして機能し、プール済のOracle Call Interface(OCI)接続を提供します。
プールされていないOCI接続を持つクライアントを、Microsoft分散トランザクション・コーディネータ(MS DTC)によって開始されたトランザクションに登録できるようにします。
Oracle Services for Microsoft Transaction Serverと通信して、MS DTCによって開始されたトランザクションにOracle Databaseを登録します。
MTSベースのCOMコンポーネントは、データベースの専用Oracleサーバーおよび共有Oracleサーバーの両方に対する接続を取得できます。次に、このコンポーネントでは、これらのデータベースの間にあらかじめ存在するデータベース・リンクを使用して、もう1つのデータベースで、データ操作言語を使用した分散更新が試行されます。共有サーバーからの分散更新には成功しますが、専用サーバーからの分散更新は失敗します。
追跡を処理するレジストリ・パラメータは、Oracle Services for Microsoft Transaction Serverのインストール中に\\
HKEY_LOCAL_MACHINE
\SOFTWARE\ORACLE\
HOMEID
に自動的に設定されます。これらのパラメータを環境変数として設定するかわりに、レジストリ・パラメータを使用します。環境変数を設定した場合、変更を有効にするためにコンピュータを再起動する必要があります。
表7-1は、ORAMTS_CP_TRACE_LEVEL
トレース値の範囲を示しています。
表7-1 ORAMTS_CP_TRACE_LEVELトレース・レジストリ・パラメータの値
レベル | 説明 |
---|---|
0 |
トレースを無効化します。レジストリ・パラメータがレジストリにも、環境変数としても設定されていない場合は、トレースが無効になります。これはレベルを |
1 |
エラーのみトレース。 |
2 |
エラーに加えて重要なイベントをトレース。 |
3 |
このレベルはサポートされていません。このパラメータを |
4 |
関数の入力と出力、重要なイベント、およびエラーをトレース。 |
5 |
参照カウント関数と、コンストラクタおよびデストラクタの入力と出力をトレース。 |
データベースでMicrosoft Transaction Serverを使用している際に、Windowsの使用中にWindowsエクスプローラのクラッシュや、その他の予期しないWindowsの問題が発生した場合は、(Microsoft社より提供される)Windows 4.0 Service Pack 6a以上をインストールしてください。
OraMTSレイヤーoramts.dll
が提供する接続プールでは、接続のネット・サービス名使用して、アプリケーションのプール済の接続を識別します。ネット・サービス名の変更時に、プール済の接続が存在する場合は、接続プールを使用しているアプリケーションを停止して、再起動する必要があります。この変更には、tnsnames.ora
ファイルでのネット・サービス名のホストまたはデータベース・システム識別子(SID)の変更も含まれます。
この変更により、現在プール済の、旧ネット・サービス名に対応するすべての接続が破棄され、新たにプールされる接続は変更されたネット・サービス名を使用するようになります。この中には、Microsoft Transaction Serverコンポーネントのホストになっているあらゆるアプリケーションが含まれます。
接続プールを空にするには、次のようにします。
アプリケーションがアウトプロセスのMicrosoft Transaction Serverコンポーネント(サーバー・パッケージ)である場合、次のアプリケーションを実行します。
C:\> mtxstop
これにより、接続プールが空になります。
アプリケーションがインプロセスのMicrosoft Transaction Serverコンポーネント(ライブラリ・パッケージ)である場合、アプリケーションを終了します。これにより、接続プールも空になります。
Oracleクライアントは、2種類の方法でデータベースへの接続を確立できます。
通常のOracleクライアントは、専用サーバー構成を使用してデータベースへの接続を確立します。専用サーバー構成では、1つのクライアントが1つのOracleサーバー・プロセスに対応します。
高負荷の環境で拡張性を得るために、Oracleクライアントは共有サーバー構成を使用できます。共有サーバー構成では、1つのOracleサーバー・プロセスを複数のクライアント接続で共有することが可能です。
Microsoft Transaction Serverは、分散トランザクションを通じてデータベースと通信します。専用サーバー構成では、他のデータベースからの分散更新(データベース・リンクをまたがるデータ操作言語文)は使用できません。ただし、データベースへの元の接続が共有サーバー構成を使用して確立された場合は、他のデータベースからの分散更新が可能です。
共有サーバー構成でDML文を使用するには、tnsnames.ora
ファイルに次のパラメータを設定します。
SERVER=dedicated
これにより、Oracle Net Listenerが専用接続を提供します。図7-1はこのプロセスを表しています。
関連資料: 『Oracle Database Net Services管理者ガイド』 |
Oracle Net接続プーリング: Oracle Net接続プーリングはサーバー側の機能で、Oracle Databaseが共有サーバー・サポート用に構成されている場合にのみ実装されます。Oracle Net接続プーリングを使用すると、共有サーバーに対する物理的なネットワーク接続数を最小限にすることができます。これは、ディスパッチャの接続を複数のクライアント・プロセス間で共有することによって実現されます。
Microsoft Transaction Server接続プーリング: Microsoft Transaction Serverは、メモリーやデータベース接続などの特定のリソースのプールを可能にする、リソース・プーリング・インフラストラクチャを提供します。
OCI接続プーリング: OCI接続プーリング・レイヤーでは、MTSのリソース・プーリングと連携して、プール済のOracleクライアント/サーバー・セッションを提供します。また、OCI接続プーリング・レイヤーではOracle Net接続のキャッシュも行い、クライアント/サーバー・セッションの設定時間を短縮します。
Oracleでは、次の構成で分散トランザクションを使用します。
分散データベース構成(データベース・リンクを使用した分散更新など)
トランザクションの結果を調整するための外部トランザクション・マネージャ(Tuxedo、MS DTCなど)
2フェーズ・コミット・プロトコルにより、これらのトランザクションが完了します。フェーズ1では、トランザクション・マネージャ(TM)が、TMのトランザクションに関与する各種リソース・マネージャに、基礎となる分散トランザクションの準備を要求します。フェーズ2では、TMがトランザクションをコミットするか終了するかを決定し、リソース・マネージャに基礎となるトランザクションのコミットまたは終了を要求します。リソース・マネージャがフェーズ2の通知の受信に失敗した場合、基礎となる分散トランザクションはインダウトになります。
OracleをMicrosoft Transaction Serverと統合するために、データベースで分散トランザクションが使用されます。分散トランザクションは、MS DTCによって調整されるトランザクションに対応します。トランザクションがコミットまたは終了できない(2フェーズ・コミットのフェーズ2)場合に、分散トランザクションがインダウトになる可能性があります。これは、Microsoft Transaction Serverアプリケーション・サーバー・プロセス、データベースまたはネットワークで障害が発生した場合に起こります。
Microsoft Transaction Server管理者ユーザー・アカウントは、oramtsadmin.sql
スクリプトを実行すると作成されます。Microsoft Transaction Serverでトランザクションを調整しているデータベースを後から変更した場合、旧データベースから管理者ユーザー・アカウントのスキーマを削除できます。
Microsoft Transaction Server管理者ユーザー・アカウントを削除するには、次のようにします。
SQL*Plusを起動します。
c:\> sqlplus /NOLOG
データベースにSYSDBA
として接続します。
SQL> CONNECT / AS SYSDBA
次のコマンドを入力して、管理者ユーザー・アカウントのスキーマを削除します。
SQL> DROP USER mtsadmin_username CASCADE;
mtsadmin_username
はMicrosoft Transaction Server管理者ユーザー・アカウントです(デフォルトはmtssys
)。