•
|
イベント・ブローカ - システム・フォルトや例外的な問題(ネットワーク障害など)を管理者に通知するメカニズム。クライアントまたはサーバーからイベントがポストされると、イベント・ブローカはポストされたイベント名をそのイベント用のサブスクライバ・リストと照合し、サブスクリプションで定義されている適切なアクションを実行します。
|
•
|
ログ・ファイル - エラー・メッセージ、警告メッセージ、デバッグ・メッセージ、および通知メッセージが格納されたファイル群。システムで発生した問題を追跡し、解決するときに参照します。
|
•
|
MIB - MIB内の情報にアクセスしたり、これらの情報を変更するためのプロシージャに対するインタフェース。MIBを使用すると、実行時のアプリケーションをモニターするためのプログラムを作成できます。
|
これらのコンポーネントには、MIBまたはtmadminを使用してアクセスできます。また、管理者側で操作は行わず、掲示板の統計情報に基づいてシステム・コンポーネントが動的に変更されるようにシステムを設定することもできます。システムが正しく構成されている場合は、次の機能を実行できます(掲示板で次の機能が指定されている場合)。
•
|
掲示板 - ネットワーク上の各マシンにある共有メモリーのセグメント。構成のコンポーネントやアクティビティに関する統計情報はここに書き込まれます
|
•
|
ログ・ファイル - システム生成されたメッセージが書き込まれるファイル
|
•
|
UBBCONFIG - システムとアプリケーションのパラメータを定義するテキスト形式のファイル
|
•
|
UBBCONFIGファイルで指定されている上限値に到達しました
|
•
|
表示する情報の種類。tmadminコマンドを実行して UBBCONFIGファイルの RESOURCESセクションを調べ、アプリケーションをモニターする場合、現在値にのみアクセスでます。
|
表2-1に、各モニタリング・ツールの使用方法を示します。
|
|
txrptや tmadminなどの コマンド行ユーティリティ
|
|
|
|
|
任意のテキスト・エディタでULOGを表示し、 ULOGで tlistenメッセージを参照します。次に、 tmadmin dumptlog ( TLOGをテキスト形式にダウンロード)を実行して、バイナリ形式の TLOGをテキスト形式のファイルに変換します。
|
|
|
|
|
tmadminコマンドは、掲示板とその関連エンティティを表示および変更するための53種類のコマンドのインタプリタです。
tmadminコマンドを使用すると、サービスの状態などのシステムの統計情報、実行済リクエスト数、キューに登録されているリクエスト数などをモニターできます。
tmadminコマンドを使用すると、Oracle Tuxedoシステムを動的に変更できます。たとえば、システムの実行中に次のような変更を行うことができます。
tmadminセッションの開始時には、そのセッションの動作モードを選択できます。動作モードには、動作モード(デフォルト)、読取り専用モード、構成モードがあります。
txrptコマンドを実行すると、Oracle Tuxedoサーバーの標準エラー出力の分析が行われ、そのサーバーでサービス処理にかかる時間のサマリーが生成されます。レポートには、指定した期間内に各サービスのディスパッチが何回行われたか、また、各サービスではリクエストの処理にどれだけの時間がかかったかが記録されます。
txrptは、標準入力または入力用にリダイレクトされた標準エラー・ファイルからの入力を読み込みます。標準エラー・ファイルを作成するには、
servopts(5)の選択肢から
-rオプションを使用してサーバーを起動します。
-e servoptsオプションを使用すると、ファイル名を指定できます。複数のファイルを、
txrpt用に1つの入力ストリームに連結することができます。
tmadminコマンドは、掲示板とその関連エンティティを表示および変更するための53種類のコマンドのインタプリタです。
図2-2に、典型的な
tmadminセッションの動作の例を示します。
tmadminコマンドでモニターできるランタイム・システム機能のリストを次に示します。
•
|
T_MACHINEクラスで指定されている影響を受けるマシンの名前、およびそのマシンのすべての属性
|
•
|
イベントをマシンの分断として識別するいくつかのイベント属性
|
•
|
トランザクション・ログ(TLOG) - トランザクション・マネージャ・サーバー(TMS)で使用されるバイナリ形式のファイルであり、通常、管理者が読むことはありません。 TLOGは、Oracle Tuxedoのグローバル・トランザクションに参加したマシンでのみ作成されます。
|
•
|
ユーザー・ログ(ULOG) - アプリケーションの実行中にOracle Tuxedoシステムが生成するメッセージのログ・ファイルです。 ULOGMILLISEC環境変数は、ulogメッセージ出力間隔のタイム・スタンプを秒単位ではなくミリ秒単位で記録するために使用されます。 ULOGRTNSIZE環境変数は、ローテーション・ファイルのサイズを指定するために使用します。 ULOGMILLISECおよび ULOGRTNSIZEの詳細は、 『Oracle Tuxedoコマンド・リファレンス』の userlog(3c)に関する項を参照してください。
|
トランザクション・ログ(TLOG)には、コミット・フェーズのグローバル・トランザクションが記録されます。2フェーズ・コミット・プロトコルのうち、第1フェーズの終了時に、グローバル・トランザクションの参加リソースは、グローバル・トランザクションをコミットするか、またはロールバックするかを決める応答を発行します。この応答は、
TLOGに記録されます。
TLOGファイルは、グローバル・トランザクションを調整するトランザクション・マネージャ・サーバー(TMS)によってのみ使用されます。管理者は参照しません。
TLOGのロケーションとサイズは、
UBBCONFIGファイルの
MACHINESセクションにある4つのパラメータで指定します。
ユーザー・ログ(ULOG)は、Oracle Tuxedoシステムによって生成されるすべてのメッセージ、つまりエラー・メッセージ、警告メッセージ、情報メッセージ、デバッグ・メッセージが書き込まれるファイルです。アプリケーションのクライアントおよびサーバーも、ユーザー・ログへの書込みが可能です。ログは毎日新しく作成されます。そのため、マシンごとにログが異なる場合もあります。ただし、リモート・ファイル・システムが使用されている場合、
ULOGを複数のマシンで共有できます。
ULOGによって管理者に提供されるシステム・イベントの記録から、Oracle Tuxedoシステムおよびアプリケーションのほとんどの障害の原因を特定できます。
ULOGはテキスト・ファイルなので、任意のテキスト・エディタで表示できます。
ULOGには、
tlistenプロセスによって生成されるメッセージも挿入されています。
tlistenプロセスにより、アプリケーション内のほかのマシンにあるリモート・サービスに接続できます。マスター・マシンを含め各マシンで
tlistenプロセスが実行されていることが必要です。
TLOGは、コミット処理中のグローバル・トランザクションに関するメッセージのみを含むバイナリ形式のファイルです。
TLOGを表示するには、まずテキスト形式に変換する必要があります。Oracle Tuxedoシステムでは、
tmadmin操作を使ってこれを行う方法が2つあります。
•
|
dumptlog ( dl)を実行します。バイナリ形式の TLOGはテキスト・ファイルにダウンロード(ダンプ)されます。
|
•
|
loadtlogを実行します。テキスト形式の TLOGは、既存のバイナリ形式の TLOGにアップロード(ロード)されます。
|
dumptlogコマンドおよび
loadtlogコマンドは、サーバー・グループやマシンを移行するときに、マシン間で
TLOGを移動する場合にも便利です。
MIB T_TRANSACTIONクラスを使用して、システム内の実行時のトランザクション属性を取得できます。この情報は、
tmadminコマンドの
printtrans (
pt)を使用して表示することもできます。トランザクション内の各グループに関する情報は、
tmadminを冗長モードで実行した場合にのみ表示されます。冗長モードで実行するには、それ以前に
verbose (
v)コマンドを実行しておく必要があります。
ULOGの情報を使用すると、システムやアプリケーションの障害の原因を特定できます。ユーザー・ログには、1つの問題に対して複数のメッセージを記録できます。一般的には、先に記述されたメッセージの方が有益な診断情報を説明しています。
リスト2-1の例では、
LIBTUX_CATカタログのメッセージ358が、その後のメッセージで報告される問題の原因を説明しています(つまり、UNIXシステム・セマフォの不足が、アプリケーションを起動できない原因であることを示しています)。
151550.gumby!BBL.28041.1.0: LIBTUX_CAT:262: std main starting
151550.gumby!BBL.28041.1.0: LIBTUX_CAT:358: reached UNIX limit on semaphore ids
151550.gumby!BBL.28041
.1.0: LIBTUX_CAT:248: fatal: system init function ...
151550.gumby!BBL.28040
.1.0: CMDTUX_CAT:825: Process BBL at SITE1 failed ...
151550.gumby!BBL.28040
.1.0: WARNING: No BBL available on site SITE1.
Will not attempt to boot server processes on that site.
注意:
|
ユーザー・ログ・メッセージの詳細と、示された問題に対する適切な対応策は、 システム・メッセージを参照してください。
|
ULOGには、
tlistenプロセスのエラー・メッセージも記録されます。
tlistenプロセスのメッセージは、任意のテキスト・エディタを使用して表示できます。
MASTERマシンを含む各マシン上で、個別に
tlistenプロセスが実行されます。それぞれの
tlistenプロセスのログは、各マシン上の
ULOGに記録されますが、リモート・ファイル・システムから共有で使用することもできます。
ULOGは、
tlistenプロセスの失敗を記録します。
tlistenは、起動プロセス中は
tmbootによって、アプリケーションの実行中は
tmadminによって使用されます。
tlistenメッセージは、
tlistenプロセスが起動されるとすぐに作成されます。
tlistenプロセスが失敗するときに、メッセージが
ULOGに記録されます。
Oracle Tuxedoシステム・メッセージのCMDTUXカタログには、
tlistenのメッセージに関する次の情報が説明されています。
ULOG内の次の
tlistenメッセージを例に取ります。
ULOGメッセージは、タグとテキストから構成されます。タグは次の項目から構成されます。
tpadmcallは、システムが
稼働していないときに、システムを問い合せたり、管理上の変更を行う場合に使用してください。
tpadmcallは、リクエストにかわって
TUXCONFIGファイルを問い合せます。送信用と受信用のデータ・バッファ(問合せと応答の内容を格納)は、まったく同じです。
ud32は、Oracle Tuxedoシステムで配布されるクライアント・プログラムであり、
FMLバッファのテキスト表現から構成される入力を読み取ります。
MIBに対する非定型問合せおよび更新には
ud32を使用できます。これは
FML32バッファを作成し、バッファでサービス・コールを行い、サービス・コールから応答(
FML32バッファ内にもあります)を受信して、結果を画面に表示するかテキスト形式のファイルに保存します。
ud32は、テキスト形式の
FMLフィールドと値を使用して
FML32型のバッファを作成し、バッファ内で指定されたサービスを呼び出して、応答を待ちます。応答は、レポートとして
FML32形式で返されます。MIBは
FML32をベースにしているため、
ud32はMIBのスクリプト作成用ツールになります。
たとえば、ULOGへのレコードの書込み、システム・コマンドの実行、トレース処理の終了、などのアクションを指定できます。クライアント・プロセスでは、リクエストを使用してトレース機能を伝播することもできます。この機能は
「ダイイング」と呼ばれます。つまり、トレース処理により、クライアントから呼び出されたすべてのサービスを「色付けする」ことを意味します。
トレース式を簡単に指定するには、クライアント環境でTMTRACE=onと定義します。この式により、クライアントまたはクライアントのかわりにサービスを実行する任意のサーバーで、ATMI関数をトレースできます。トレース・レコードは
ULOGファイルに書き込まれます。
また、ulogまたは
utrace tmtrace(5)の受信側を使用して、サーバー環境でトレース式を指定することもできます。たとえば、次のように入力したとします。
•
|
実行時のトレース式: TMTRACE=atmi:/tpservice/ulog。この設定をサーバー環境内でエクスポートすると、そのサーバー上でサービス・リクエストが実行されるたびに、一般的な実行時トレースの情報に関するレコードが ULOGファイルに記録されます。
|
•
|
ユーザー・レベルのトレース式: TMTRACE=atmi:utrace。 utraceの受信側を指定すると、ユーザー定義の tputrace(3c)が自動的に呼び出されます。この設定をサーバー環境内でエクスポートすると、そのサーバーで実行されているATMI関数のトレース情報とユーザー定義の出力場所に関するレコードが作成されます。
|
tmadminの
changetraceコマンドを使用すると、トレース・オプションをアクティブにしたり非アクティブにできます。このコマンドを使用すると、アクティブなクライアント・プロセスまたはサーバー・プロセスのトレース式を上書きできます。管理者は、すべてのクライアントとサーバーに対してグローバルなトレース機能を許可することも、特定のマシン、グループ、またはサーバーだけがトレース機能を実行できるように設定することもできます。
•
|
『Oracle Tuxedo ATMI C関数リファレンス』の userlog(3c)およびtputrace(3c)に関する項
|
•
|
DBBL - 特別掲示板連絡(DBBL)サーバーは、MIBに対するグローバルな変更を伝播し、MIBの静的な部分を保ちます。DBBLの特徴は次のとおりです。
|
•
|
MASTERマシン上に置かれ(アプリケーションごとにDBBLは1つのみ)、すべてのBBLに対して周期的にステータス・リクエストを送信します
|
•
|
BBL - Bulletin Board Liaisonの略。BBLサーバーは、ホスト・マシン上の掲示板を管理します。また、ローカルなMIBに対する変更を調整し、マシン上でアクティブな状態のアプリケーション・プログラムの整合性を検証します。掲示板の特徴は次のとおりです。
|
図2-3に、DBBLおよびBBLを使用した診断と修復を示します。
システム障害(リクエストの実行中にサーバーがクラッシュするなど)が発生すると、システム・エラーが原因でサービス・ルーチンによってタスクが実行されなかったことが、クライアントによって認識されます。Oracle Tuxedoシステムは、アプリケーションの動作およびシステム自体の動作をモニターし、プログラムに対してシステム・エラーを通知します。
ブロッキング・タイムアウトは、ブロックされたプログラムが、指定されたタイムアウト値よりも長く、なんらかのイベントの発生を待機しないようにするメカニズムです。いったんタイムアウトが検出されると、待機中のプログラムは、ブロッキング・タイムアウトが発生したことを通知するシステム・エラーを受信します。ブロッキング・タイムアウトは、サービス・リクエストの有効期間、つまりアプリケーションがサービス・リクエストに対する応答を待機する時間を定義します。タイムアウト値は、
TUXCONFIGファイルの
RESOURCESセクションの
BLOCKTIMEフィールドで定義されるグローバルな値です。
トランザクション・タイムアウトは、アクティブなトランザクションでリソースが集中することが原因で発生するタイムアウトです。トランザクション・タイムアウトは、トランザクション(その中で複数のサービス・リクエストが行われる場合もあります)の有効期間を定義します。このタイムアウト値は、
tpbegin(3c)を呼び出してトランザクションを開始するときに定義されます。トランザクション・タイムアウトは、リソースを最大化する場合に便利です。たとえば、トランザクション処理中にデータベースがロックされた場合に、アプリケーションのトランザクション用のリソースが停止状態になる時間を制限できます。トランザクション・タイムアウトは、常にブロッキング・タイムアウトをオーバーライドします。
UBBCONFIGファイルのトランザクション・ライムアウト・パラメータには次の2つがあります。
•
|
UBBCONFIGの SERVICESセクションで指定する TRANTIME。特定の AUTOTRANサービスのタイムアウト値を制御します。
|
•
|
UBBCONFIGの RESOURCESセクションで指定され、 tpbegin(3c)または AUTOTRANサービス呼出しを介して開始されたトランザクションのタイムアウト値に上限を設定するために管理者によって使用される MAXTRANTIME。
|
•
|
tmadmin(1)コマンド・インタプリタを実行すると、マルチスレッド化またはマルチコンテキスト化されたアプリケーションの様々な点に関するMIBの統計レポートを取得できます。たとえば、マルチスレッド化されたアプリケーションに関する以下の情報を取得できます。
|
•
|
TM_MIBの T_SERVERCTXTクラス。複数のサーバー・ディスパッチ・スレッドが同時に実行されている場合、このクラスの14のフィールドには、複数のインスタンスが提供されます。つまり、 T_SERVERCTXTセクションには、実行中のサーバー・ディスパッチ・スレッドごとに次のフィールドが用意されています。
|
T_SERVERクラス内のフィールドに複数のインスタンスがあり、これらのインスタンスの値がマルチコンテキスト化されたサーバーのコンテキストごとに異なる場合、
T_SERVERクラスのフィールドにはダミーの値が指定され、
T_SERVERCTXTフィールドには、各コンテキストの実際の値が指定されます。