(57)【要約】【課題】有限なトレースデータメモリを有効に利用し、かつ障害発生時の情報を確保する方式を提供する。【解決手段】通信制御プログラムにおいて、トレースメモリを複数のブロックに分割し、複数回線でブロックを共有し、トレース採取が必要な回線だけにブロックを割当て、ブロックの使用状況によって回線毎に割当てるブロック数をダイナミックに変更する。また、ラップアラウンド方式による情報消失を防ぐため、ブロック毎に状態を持たせ、障害発生時のトレース情報を格納したブロックに対する上書きを防止することで必要な情報を保持する。さらに、トレース採取の契機となるイベントの種別およびレベルを管理し、周期的イベントによるトレースメモリの使用を最小限に抑える。【選択図】    図７
2007206912.tif 000002
【特許請求の範囲】
【請求項１】
トレースメモリを複数のメモリ空間であるブロックに分割し、
前記ブロックをシステム内の複数回線で共有し、
トレース情報を採取する回線にブロックを割当て、
前記回線毎のトレースメモリの使用状況によって割当てるブロックの量又は数を動的に変更することを特徴とするトレースメモリ管理方法。
【請求項２】
請求項1のトレースメモリ管理方法において、
前記ブロック毎に状態情報を保持させ、
障害の発生を検出すると、当該障害に対応するブロックの前記状態情報を変更して上書きを防止することを特徴とするトレースメモリ管理方法。
【請求項３】
請求項２のトレースメモリ管理方法において、
トレース情報を採取する契機となるイベントの種別およびレベルを管理し、
前記イベントが発生したとき、前記種別及びレベルと前記状態情報とを用いて、当該状態情報に対応するブロックを上書きすべきか否かを判定することを特徴とするトレースメモリ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信制御プログラムにおける回線毎の障害解析に使うトレースデータの採取方式およびトレースメモリの管理方式に関する。
【背景技術】
【０００２】
プロトコルデータや通信制御プログラム内部のイベント情報等を時系列に記録したトレースデータは通信制御プログラムにおける障害の原因究明に利用される。前記トレースデータを格納するメモリは有限であるため、有限なメモリ内でラップアラウンドさせながら採取するトレース採取削除方式がある。
【０００３】
ラップアラウンドさせながらトレース採取する方式として、下記特許文献１、特許文献２に記載のものが知られている。
【０００４】
下記特許文献1に記載するものは、ラップアラウンドしながら採取しているトレースデータを、データリンク確立後の障害検出時に、回線毎の固有エリアに退避することにより障害発生時の情報を確保する方式である。
【０００５】
下記特許文献２に記載するものは、トレースデータメモリを複数に分割し、それぞれのメモリを各回線に割当てる方式である。
【０００６】
【特許文献１】特開平８−２８６９９３号公報
【特許文献２】特開平５−２２３７９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ラップアラウンドさせながらトレース採取する方法では、障害発生時の情報が、非障害回線のトレースデータや障害回復後のトレースデータにより上書きされ、消失してしまう問題がある。
【０００８】
上記特許文献1、特許文献２に記載の方式は、トレースメモリを複数に分割し、それぞれの領域を各回線に割当て、別回線のトレースデータによる上書きを防ぎ、さらに回線障害発生時の情報を、別メモリへ退避することにより障害発生時の情報を保持することができる。
【０００９】
しかし、システム内のメモリから退避エリアとしてトレースメモリと同等のメモリ量を割当てるか、または外部メモリを用意する必要があり、有限なトレースメモリを有効に利用するように改善する余地がある。
【００１０】
さらに、上記特許文献２の方式では、領域の使用状況によって回線毎の割当てるメモリを調整することができるが、使用状況を調査するためには、周期的に監視する必要があり、周期処理による負荷を軽減するように改善する余地がある。
【００１１】
本発明の目的は、有限なトレースデータメモリを有効に利用し、かつ障害発生時の情報を確保する方式を提供することにある。
【課題を解決するための手段】
【００１２】
上記目的を達成するために、本発明のトレースメモリの有効利用方式は、例えば、以下３つの方式を設ける。
【００１３】
トレースメモリを複数のメモリ空間（以降ブロックと呼ぶ）に分割し、ブロックをシステム内の複数回線で共有する。回線のリンク確立状態およびトレース機能の有効／無効状態により、トレース採取の要否を判断し、トレース採取しない回線に対してはブロックを割当てず、トレース採取が必要な回線だけにブロックを割当てることによって、ブロックの使用状況によって回線毎に割当てるブロック数をダイナミックに変更し、トレースメモリを有効に利用するトレースメモリ管理方式。
【００１４】
ラップアラウンドさせながらトレース採取する場合、データの上書による情報の消失を防ぐため、ブロック毎に状態を持たせ、障害発生時のトレース情報を格納しているブロックに対しては上書きを防止するトレースメモリ状態管理方式。
【００１５】
トレース採取の契機となるイベントの種別およびレベルを管理し、周期的に発生するイベントによるトレースメモリの使用を最小限に抑え、さらに、情報保持（データの上書防止）の要否を判定するイベントの閾値レベルを持つイベント管理方式。
【発明の効果】
【００１６】
以上の手段によれば、例えば、次のような効果がある。
【００１７】
ラップアラウンドさせながらトレース採取する方式において、情報を退避するメモリがないシステムにおいても、非障害回線のトレースデータや障害回復後のトレースデータによる上書きによる回線障害発生時の情報の消失を防ぐことができる。さらに、トレース採取が必要な回線だけにトレースメモリを割当て、有限なトレースメモリを有効に利用するために、トレースメモリの使用状況によって回線毎に割当てる領域をダイナミックに変更することがことができる。
【００１８】
なお、本発明は、トレース採取方式に限らずメッセージやログ等、有限なメモリ内でラップアラウンドさせながらを保持する処理へも応用できる。
【００１９】
本発明の他の課題、手段、効果は後述する実施形態によって明らかにされる。
【発明を実施するための最良の形態】
【００２０】
本発明に好適な実施形態の例を、以下に図面を用いて説明する。ただし、本発明は本実施形態に限定されない。
【００２１】
図1は、通信システム内のトレース採取機能構成図を示す。各回線の入出力データおよびイベントを制御する回線制御部１１、回線イベント発生時にトレース採取要否を判定するトレース採取判定部１２、各回線のイベントを管理するイベント管理テーブル１３、トレースメモリの使用状態を管理するブロック管理テーブル１４、トレース情報を格納するトレースデータメモリ１５、トレースメモリを退避する外部メモリ１６、ユーザコマンド入力部１７、ユーザが入力したコマンドを制御するユーザコマンド判定部１８で構成される。
【００２２】
図２は、トレースデータメモリの内部構成図を示す。トレースデータメモリ１５を複数に分割したトレースメモリブロック２１で構成される。トレースデータメモリ１５は、少なくとも１回線につき１ブロックが割り当たるように、システム内の回線数以上に分割する。
【００２３】
図３は、ブロック管理テーブルの内部構成図を示す。ブロック使用モード（「上書きモード」、「退避モード」）３１、各ブロックを管理するブロック管理情報３２で構成される。ブロック使用モードは、トレースデータを退避する外部メモリまたはシステム内メモリの有無で選択できるように、ユーザがコマンド入力により指定可能とする。退避メモリがない場合は「上書きモード」、退避メモリがある場合は「上書きモード」または「退避モード」のどちらかを指定する。
【００２４】
図４は、図３のブロック管理情報３２のデータ構造を示す。ブロック番号４１、ブロック貸出しモード４２、ブロックを使用している回線番号４３、ブロック貸出し時刻４４で構成される。ブロック貸出しモード４２は次ぎの３つの状態を持つ。ブロックが未使用状態であることを示す「空き」、貸出し中だが障害解析に使うトレース情報が採取されていない状態を示す「貸出中」、貸出し中かつ障害解析に使うトレース情報が採取されている状態を示す「貸出禁止」。
【００２５】
図５は、イベント管理テーブルの内部構成図を示す。各回線で発生したイベント情報と前回のイベント情報を管理するイベント管理情報５１で構成される。
【００２６】
図６は、図５のイベント管理情報５１のデータ構造を示す。回線番号６１、前回イベント種別（回線障害、周期処理など）６２、発生イベント種別６３、発生イベントレベル６４、イベント発生時のトレース情報を格納したブロック番号（複数指定可能）、つまりイベント発生時に貸出し禁止にしたブロック番号６５で構成される。本テーブルは、発生イベントと前回イベントの種別からトレース採取の要否を判定するため、また、発生イベントと情報保持の要否を判定する閾値レベルと比較し、ブロック貸出しモード４２を設定するために使用する。
【００２７】
トレース採取方式を図７から図１２で説明する。
【００２８】
図７は、トレース方式の全体概要を示すフローチャートである。回線のリンク確立およびユーザによるトレース機能のＯＮ／ＯＦＦ指定変更を契機にトレース処理を開始する。該当回線のトレース機能を確認し（ステップ７１）、トレース機能がＯＦＦの場合、トレース処理を終了する。トレース機能がＯＮの場合、トレースデータを書込むトレースブロックを確保し（ステップ７２）、イベント発生およびリンク未確立を待つ、待ち状態に遷移する（ステップ７３）。イベントが発生した場合、トレース採取し（ステップ７４）、再び待ち状態に遷移する。リンク未確立が発生した場合、使用中のブロックを返却し（ステップ７５）、トレース処理を終了する。例えば、リンク確立回線が少ない場合、少数の回線でブロックを占有でき、リンク確立回線の増減に従い、１回線当たりに割当てるブロック数を変化させ有効にトレースエリアを使用することができる。
【００２９】
図８は、イベント発生時におけるトレース採取処理の概要を示すフローチャートである。該当回線のトレース機能を確認し（ステップ８１）、トレース機能がＯＦＦの場合、トレース採取処理を終了する。トレース機能がＯＮの場合、イベント管理テーブル１３の前回イベント種別６２と発生イベント種別６３を比較する（ステップ８２）。前回イベント種別６２と発生イベント種別６３が等しい場合、トレース採取を終了する。つまり、トレースデータが殆ど同じである、周期的な処理のトレース採取を最小限に抑えることで、余分なトレースメモリの使用を防ぐ。また、前回イベント種別６２と発生イベント種別６３が異なる場合、使用中のブロックの貸出しモードを設定する（ステップ８３）。詳細は、図９で説明する。次に、トレースデータを書き込み（ステップ８４）、継続データを確認し（ステップ８５）、データが無くなるまでトレースデータの書き込み（ステップ８４）を繰り返す。
図９は、トレース採取処理におけるブロック貸出しモード設定処理の概要を示すフローチャートである。図９で用いる情報保持レベルは、情報保持（データの上書防止）の要否を判定するための閾値を示す。まず、発生イベントレベルと情報保持レベルを比較し（ステップ９１）、発生イベントレベルが情報保持レベル以上の場合、解析に必要な情報が消失されないように、使用中のブロックの貸出しモードを「貸出禁止」にする（ステップ９２）。次に、イベント管理テーブルを最新のイベント情報に更新し（ステップ９３）、トレース採取処理を終了する。
【００３０】
図１０は、トレース採取処理におけるトレースデータ書込み処理の概要を示すフローチャートである。使用しているブロックの空きエリアをチェックし（ステップ１０１）、空きエリアがない場合、新たにブロックを確保する（ステップ１０２）。詳細は図１１で説明する。次に、新たに確保したブロックの貸出しモードを更新するために、ブロック貸出しモードを設定する（ステップ１０３）。次に、使用中のブロックまたは、新たに確保したブロックにトレースデータを登録する（ステップ１０４）。
【００３１】
図１１は、トレース採取処理におけるブロック確保の処理概要を示すフローチャートである。また、ブロック使用モード３１が上書きモードであることを前提とする。退避モード時のフローチャートは図１２に示す。ブロック管理テーブル１４から貸出しモードが「空き」であるブロックを検索する（ステップ１１１）。「空き」ブロックがない場合、次に貸出しモードが「貸出中」であるブロックを検索する（ステップ１１２）。「貸出中」ブロックがある場合、「貸出中」ブロックに格納された情報は保持する必要がないので、全てまたは一部返却し（ステップ１１３）、返却したブロックの最若番のブロックを再び貸出す（ステップ１１４）。「貸出中」ブロックがない、つまり全て「貸出禁止」ブロックの場合、貸出し時刻４４が最も古いブロックを返却し（ステップ１１５）、返却したブロックを貸出す（ステップ１１６）。次にブロック管理テーブルを最新の状態に更新する（ステップ１１７）。ステップ１１５以降は、処理速度を考慮し、「貸出禁止」ブロック数が一定の値を超えた場合としてもよい。
【００３２】
図１２は、トレース採取処理におけるブロック確保の処理概要を示すフローチャートである。また、ブロック使用モード３１が退避モードであることを前提とする。ブロック管理テーブル１４から貸出しモードが「空き」であるブロックを検索する（ステップ１２１）。「空き」ブロックがない場合、全ブロックの内容を外部メモリ等の退避エリアへ退避し（ステップ１２２）、全ブロックを返却する（ステップ１２３）。ブロック管理テーブル１４の全ブロック管理情報３２のブロック貸出しモード４２を「空き」に設定する。次に、最若番のブロックを貸出す（ステップ１２４）。次にブロック管理テーブルを最新の状態に更新する（ステップ１２５）。
【図面の簡単な説明】
【００３３】
【図１】通信システム内のトレース採取機能構成例を示す
【図２】トレースデータメモリの内部構成例を示す
【図３】ブロック管理テーブルの内部構成例を示す
【図４】ブロック管理テーブルのデータ構造例を示す
【図５】イベント管理テーブルの内部構成例を示す
【図６】イベント管理テーブルのデータ構造例を示す
【図７】トレース採取処理の概要例
【図８】イベント発生時におけるトレース採取処理の概要例
【図９】トレース採取処理におけるブロック貸出しモード設定処理の概要例
【図１０】トレース採取処理におけるトレースデータ書込み処理の概要例
【図１１】ブロック使用モードが上書きモードの場合のブロック確保処理の概要例
【図１２】ブロック使用モードが退避モードの場合のブロック確保処理の概要例
【符号の説明】
【００３４】
１１…回線制御部、１２…トレース採取判定部、１３…イベント管理テーブル、１４…ブロック管理テーブル、１５…トレースデータメモリ、１６…外部メモリ、１７…ユーザコマンド入力部、１８…ユーザコマンド判定部、２１…トレースメモリブロック、３１…ブロック使用モード、３２…ブロック管理情報、４１…ブロック番号、４２…ブロック貸出しモード、４３…貸出し回線番号、４４…ブロック貸出し時刻、５１…イベント管理情報、６１…回線番号、６２…前回イベント種別、６３…発生イベント種別、６４…発生イベントレベル、６５…貸出し禁止ブロック番号
【図１】
2007206912.tif 000003
【図２】
2007206912.tif 000004
【図３】
2007206912.tif 000005
【図４】
2007206912.tif 000006
【図５】
2007206912.tif 000007
【図６】
2007206912.tif 000008
【図７】
2007206912.tif 000009
【図８】
2007206912.tif 000010
【図９】
2007206912.tif 000011
【図１０】
2007206912.tif 000012
【図１１】
2007206912.tif 000013
【図１２】
2007206912.tif 000014