本発明の一実施の形態に係るシステム構成図を図1に示す。例えば社内ネットワークである社内LAN1には、所定の業務処理を行う1又は複数の現用系処理装置5と、現用系処理装置5の1つに対して1又は複数存在する待機系処理装置3と、例えば本実施の形態とはあまり関連のない処理を行う1又は複数の他システム9とが接続されている。また、現用系処理装置5と待機系処理装置3とには、各々からアクセス可能な共有ディスク7が接続されている。
現用系処理装置5には、トレースログ書き込み処理部510とトレースログ・リネーム処理部520とトレースログ削除処理部530と制御テーブル格納部540とが含まれている。これら各処理部の処理内容及び制御テーブル格納部540に格納されるテーブルについては後に詳述するが、この他にも現用系処理装置5には、図示しない所定の業務処理を行うための処理部が含まれている。
待機系処理装置3には、トレースログ監視処理部310とトレースログ圧縮処理部320とトレースログ削除処理部330と制御部340と制御テーブル格納部350とトレースログ転送処理部360とが含まれている。これら各処理部の処理内容及び制御テーブル格納部350に格納されるテーブルについては後に詳述するが、この他にも待機系処理装置3には、図示しない所定の業務処理を行うための処理部が含まれている。現用系に切り替わった場合に処理を実行するためである。
また、現用系処理装置5及び待機系処理装置3は、互いに切り替わって処理ができるように、同様の機能及びデータを有している。すなわち、実際には、各機能部はいずれの処理装置にも含まれている。但し、現用系と待機系との切り替えについては本実施の形態の要旨ではないため、切り替え後の処理を行うための機能部については図示していない。
なお、他システム9と待機系処理装置3とは、社内LAN1を介して通信が可能となっており、待機系処理装置3のトレースログ転送処理部360の機能により、他システム9に対してトレースログのデータを送信することができる。他システム9は、受信したトレースログのデータを用いて障害の分析処理を実行したり、バックアップとしてデータを所定の記憶装置に格納する等の処理を行う。
図2に、共有ディスク7に格納されるファイルの概要図を示す。図2には、現用系処理装置5が処理の対象とするファイル群が実線で囲まれ、現用系処理対象ファイル701として示されている。また、待機系処理装置3が処理の対象とするファイル群が点線で囲まれ、待機系処理対象ファイル702として示されている。
現用系処理対象ファイル701には、トレースログ・ファイル710と、リネーム済みファイル第1世代711と、リネーム済みファイル第2世代712と、・・・、リネーム済みファイル第5世代715と、現用系削除済みファイル719とが含まれ得る。トレースログ・ファイル710には、現用系処理装置5が業務処理を行った際のトレースログが記録される。実際には現用系処理装置5のトレースログ書き込み処理部510が記録処理を行うが、各機能部の具体的な機能については処理フローの説明において述べるため、以下の説明では処理主体の明示を割愛する。なお、現用系削除済みファイル719は削除されたファイルを示しているので実際には存在しない。
待機系処理対象ファイル702には、リネーム済みファイル第1世代711と、リネーム済みファイル第2世代712と、・・・、リネーム済みファイル第5世代715と、圧縮済みファイル第1世代721と、圧縮済みファイル第2世代722と、・・・、圧縮済みファイル第5世代725と待機系削除済みファイル729とが含まれ得る。なお、待機系削除済みファイル729は削除されたファイルを示しているので実際には存在しない。
リネーム済みファイル第1世代711とリネーム済みファイル第2世代712と、・・・、リネーム済みファイル第5世代715とは、現用系処理対象ファイル701及び待機系処理対象ファイル702に共通に含まれている。すなわち、これらのファイルは、現用系処理装置5によって生成され、待機系処理装置3によって所定の処理が施される。
図2に示されている各ファイルの詳細については後に説明するが、ここでは各ファイルの関係について簡単に述べておく。まず、現用系処理装置5によって生成されたトレースログ・ファイル710は、所定のファイル・サイズになるとリネームされ、リネーム済みファイル第1世代711となる。リネーム済みファイル第1世代711は、待機系処理装置3によって例えば圧縮処理が施されると、圧縮済みファイル第1世代721となる。待機系処理装置3が処理を実施しなかった場合、リネーム済みファイル第1世代711はそのまま共有ディスク7に残る。
なお、トレースログ・ファイル710には随時データが記録され続けており、再びトレースログ・ファイル710が所定のファイル・サイズになるとリネームされ、リネーム済みファイル第1世代711となる。この際、既にリネーム済みファイル第1世代711が存在している場合、そのファイルはリネームされ、リネーム済みファイル第2世代712となる。世代は通常、数が大きくなると新しくなるが、本実施の形態においては、このように古いファイルほど数を大きくしている。昇順に世代を設定していくようにしてもよい。
各世代のリネーム済みファイルは、待機系処理装置3によって例えば圧縮処理が施されると、当該世代の圧縮済みファイルとなる。例えば、リネーム済みファイル第2世代712は、待機系処理装置3によって圧縮処理が施されることにより、圧縮済みファイル第2世代722となる。待機系処理装置3が処理を実施しなかった場合、リネーム済みファイル第2世代712はそのまま共有ディスク7に残る。新しいリネーム済みファイル第1世代711も同様である。なお、以下の処理フローでは、圧縮済みファイルについては、例えば第1世代がないのに第2世代が生成されるようなこともあり、最古世代の削除処理に用いる以外には、世代としての管理は行っていない。
図3及び図4に、現用系処理装置5の制御テーブル格納部540と待機系処理装置3の制御テーブル格納部350とに格納されているテーブルの構成及びテーブルに格納されるデータの一例を示す。図3に示す現用系制御テーブルの一例には、トレースログ・ファイル格納ディレクトリ名の行370とトレースログ・ファイル名の行372とトレースログ・ファイル上限サイズの行374とリネーム・ファイル拡張子書式の行376とリネーム・ファイル世代数の行378とリネーム付加情報の行380とリネーム済みファイル格納ディレクトリ名の行382と開始拡張子の行384と最古拡張子の行386とディスク・クォータ・チェックの行388とディスク・クォータ残割合の行390とが含まれている。そして各行の第2列(設定値の列)に設定された値が格納されている。
トレースログ・ファイル格納ディレクトリ名の行370には、共有ディスク7内の所定のディレクトリを示すデータが格納されている。現用系処理装置5は、生成したトレースログ・ファイルをこのディレクトリに格納する。トレースログ・ファイル名の行372には、トレースログに付けるファイル名を示すデータが格納されている。現用系処理装置5は、このファイル名でトレースログ・ファイルを生成し、トレースログ・ファイル格納ディレクトリ名の行370に示されたディレクトリに格納する。
トレースログ・ファイル上限サイズの行374には、トレースログ・ファイルのサイズがこの値以上になったら、ファイル名を変えるという上限の数値が格納されている。図3の例では、例えば1メガ・バイト以上になったらトレースログのファイル名を変え、新しいファイルにトレースログを格納していくという設定がなされている。
リネーム・ファイル拡張子書式の行376には、ファイル名を変える場合に従うべき拡張子の書式を示す値が格納されている。図3の例では「000」という値が格納されているが、この場合、現用系処理装置5は、リネームの際、ファイルの拡張子を三桁の数値で昇順に設定していく。例えば、図2に示したリネーム済みファイル第1世代711の拡張子を「000」、リネーム済みファイル第2世代712の拡張子を「001」というように設定していく。なお、降順に設定するようにしてもよい。
リネーム・ファイル世代数の行378には、同時に存在し得る、本制御テーブルに従ってリネームされたトレースログ・ファイルの最大数、すなわち、最大の世代数が格納されている。図3の例では「10」と示されているが、この場合、10世代までは共有ディスク7の以下で述べる所定のディレクトリにファイルを格納しておくことを意味している。例えば拡張子が「000」から「009」までのファイルを格納しておき、次のトレースログのリネームをする時は、最古の世代である「009」の拡張子を持つファイルを削除する。
リネーム付加情報の行380には、トレースログをリネームする(第1世代のファイルにする)際にファイル名に含める情報が登録されている。図3の例では「YYYYMMDDHHMMSS」と示されているが、この場合、ファイル名には年月日時分秒が含まれるということを示している。例えば、2003年7月7日の7時7分7秒にトレースログのファイル名(図3の例では「Trace.log」)を変更する場合には「Trace20030707070707.000」というファイル名に変更する。このファイルは拡張子が「000」であり、図2のリネーム済みファイル第1世代711にあたる。なお、このファイルがリネーム済みファイル第2世代712(図2)になる際には再びリネームされるが、例えば「Trace20030707070707.001」というように拡張子が変更されるだけで、リネーム付加情報である年月日時分秒の部分は変更されない。
リネーム済みファイル格納ディレクトリ名の行382には、共有ディスク7内の所定のディレクトリを示すデータが格納されている。現用系処理装置5は、1回又は複数回リネームしたトレースログ・ファイル(図2のリネーム済みファイル第1世代711、リネーム済みファイル第2世代712、リネーム済みファイル第5世代715等)をこのディレクトリに格納する。
開始拡張子の行384には、トレースログをリネームする(第1世代のファイルにする)際に設定する最初の拡張子が登録される。図3の例では初期値の「000」と登録されているため、現用系処理装置5は、ファイルの拡張子を上で述べたように「000」(第1世代)、「001」(第2世代)、「002」(第3世代)と変更していく。開始拡張子の行384に例えば「004」と登録されている場合には、現用系処理装置5は、ファイルの拡張子を「004」(第1世代)、「005」(第2世代)、「006」(第3世代)と変更していく。
最古拡張子の行386には、リネーム済みファイル格納ディレクトリ名の行382に示されているディレクトリに格納されているファイルのうち、最も古い世代のファイルの拡張子が登録される。図3の例では初期値の「000」が登録されている。
なお、この現用系制御テーブルの各行のうち、開始拡張子の行384と最古拡張子の行386とについては、処理中に値が更新される場合がある。
また、共有ディスク7の空き領域のチェックを行うような設定である場合には、ディスク・クォータ・チェックの行388に「Yes」と設定され、ディスク・クォータ残割合の行390に、例えば「20%」等の基準割合が格納される。このような設定がなされている場合には、共有ディスク7の容量の残りが例えば20%以下になると、現用系処理装置5は、最古世代のトレースログ・ファイルを削除する。
図4に示す待機系制御テーブルの一例には、リネーム済みファイル格納ディレクトリ名の行400と処理対象ファイル拡張子固定の行402と処理対象ファイル拡張子(最上位)の行404と監視間隔の行406と標準監視間隔の行408と最小監視間隔の行410と最大監視間隔の行412と監視間隔増減割合の行414と圧縮方式の行416と圧縮ファイル格納ディレクトリ名の行418と転送先サーバの行420と転送方法の行422と転送先ディレクトリの行424と圧縮ファイルのトータル・サイズ上限の行426とディスク・クォータ・チェックの行428とディスク・クォータ残割合の行430とが含まれている。
リネーム済みファイル格納ディレクトリ名の行400には、図3のリネーム済みファイル格納ディレクトリ名の行382と同じ値が格納されている。すなわち、現用系処理装置5によってリネームされ且つこのディレクトリに格納されたファイルを、待機系処理装置3が処理対象とする。
処理対象ファイル拡張子固定の行402には、待機系の処理装置が処理対象とするファイルの拡張子を固定とするかどうかを示す値が「Yes」又は「No」で登録されている。図4に示したように「Yes」の場合には、例えば待機系処理装置3は、特定の拡張子(世代)のファイルのみを処理対象とする。この設定により、待機系の処理装置が複数存在する場合、処理装置毎に処理対象とする拡張子(世代)を振り分けることができる。
また、処理対象ファイル拡張子(最上位)の行404には、当該待機系の処理装置、例えば待機系処理装置3が処理対象とするファイルの拡張子が登録されている。図4の例では「002」と登録されており、待機系処理装置3は拡張子が「002」のファイルに対して例えば圧縮等の処理を行う。なお、処理対象ファイル拡張子固定の行402に「No」が登録されている場合には、ここでの「002」という値は、処理対象のファイルの最上位の拡張子(世代)を示すものとなり、下位の拡張子である「001」又は「000」の拡張子を持つファイルも、待機系処理装置3の処理対象となる。
監視間隔の行406には、待機系の処理装置が、自己の処理対象となるファイルの存在をチェックする間隔が登録されている。初期値は標準監視間隔の行408の値と同じ例えば60(秒)であり、後に述べる監視間隔設定処理により更新される。標準監視間隔の行408には、監視間隔の標準値が登録されている。また、最小監視間隔の行410には、監視間隔として設定可能な最小値が登録され、最大監視間隔の行412には、監視間隔として設定可能な最大値が登録されている。そして、監視間隔増減割合の行414には、監視間隔を長くしたり短くしたりする際の割合が登録されている。
圧縮方式の行416には、圧縮処理後のファイルの拡張子が登録されている。すなわち、圧縮されたファイルがこのような拡張子となるような圧縮方法を用いてファイルの圧縮処理を行うということが規定されている。また、圧縮ファイル格納ディレクトリ名の行418には、圧縮したファイルを格納しておくディレクトリが登録されている。
また、待機系の処理装置が、処理対象となるファイルを他システム9等に送信するような場合には、転送先サーバの行420と転送方法の行422と転送先ディレクトリの行424とに値が格納される。
圧縮ファイルのトータル・サイズ上限の行426には、圧縮処理されたファイルの合計サイズがこの値以上になったら、最古世代の圧縮済みファイルを削除するという上限の数値が格納されている。ディスク・クォータ・チェックの行428とディスク・クォータ残割合の行430とについては、図3のディスク・クォータ・チェックの行388及びディスク・クォータ残割合の行390と同様の設定がなされる。但し、処理の主体(現用系又は待機系の処理装置)は異なっている。
以上、図3及び図4に示したような例えば2種類のテーブルが、現用系処理装置5の制御テーブル格納部540と待機系処理装置3の制御テーブル格納部350とにそれぞれ格納されている。現用系と待機系とが切り替わる場合もあるため、通常使用しないテーブルも保持しておくようになっている。
次に、図5乃至図10−3を用いて、図1に示したシステムの処理内容について説明する。始めに、図5の処理フロー、及び図6−1乃至図6−6のディスク状態遷移図を用いて、現用系処理装置5の実施する処理について、処理の流れ、具体例の順に説明する。
まず、現用系処理装置5のトレースログ書き込み処理部510は、現用系制御テーブル(図3)のトレースログ・ファイル格納ディレクトリ名の行370及びトレースログ・ファイル名の行372の値に基づき、業務処理に伴うトレースログをファイルに書き込む(図5:ステップS1)。例えば共有ディスク7の「/apl/trace」というディレクトリにある「Trace.log」というファイルにデータを追加する。
そして、トレースログ書き込み処理部510は、現用系制御テーブル(図3)のトレースログ・ファイル上限サイズの行374の値に基づき、トレースログ・ファイルが、例えば1メガ・バイトである所定のサイズを超えたかどうか判定する(ステップS3)。超えていないと判定された場合(ステップS3:Noルート)、ステップS1の処理に戻る。
一方、トレースログ・ファイルが所定のサイズを超えたと判定された場合(ステップS3:Yesルート)、トレースログ・リネーム処理部520は、現用系制御テーブル(図3)のリネーム・ファイル拡張子書式の行376及びリネーム・ファイル世代数の行378の値に基づき、又はディスク・クォータ・チェックの行388及びディスク・クォータ残割合の行390の値に基づき、リネーム済みファイルの世代オーバ、又はディスク・サイズ・オーバの状態であるか判定する(ステップS5)。
なお、ここでいうディスク・サイズとは、共有ディスク7において、現用系制御テーブル(図3)のディスク・クォータ残割合の行390の値に基づき算出されるディスク容量を空き容量として確保した後の、残りのディスク容量を指す。例えば、共有ディスク7の容量が10ギガ・バイトであり、現用系制御テーブル(図3)のディスク・クォータ残割合の行390の値が10(%)であったとすると、ディスク・サイズは9(10-10*0.1)ギガ・バイトとなる。すなわちこの場合、共有ディスク7内のデータ容量が9ギガ・バイトを超えた場合、ディスク・サイズ・オーバであると判定される。
世代又はディスク・サイズがオーバしていないと判定された場合(ステップS5:Noルート)、後に述べるステップS9の処理に移行する。一方、世代又はディスク・サイズがオーバしていると判定された場合(ステップS5:Yesルート)、トレースログ削除処理部530は、リネーム済みファイルのうち、最古世代のものを削除する(ステップS7)。
そして、トレースログ・リネーム処理部520は、開始拡張子が「000」であるか判定する(ステップS9)。すなわち、現用系制御テーブル(図3)のリネーム開始拡張子の行384の値が初期値の「000」であるか判定する。開始拡張子が「000」ではないと判定された場合、後で述べるステップS15の処理に移行する。この際、トレースログ・リネーム処理部520は、開始拡張子のデータを、図示しないワーク・メモリ領域等の記憶装置に一旦格納しておく。
一方、開始拡張子が「000」であると判定された場合、トレースログ・リネーム処理部520は、最古拡張子が「000」ではなく且つ最古世代ファイルが処理済みであるか判定する(ステップS11)。すなわち、現用系制御テーブル(図3)の最古拡張子の行386及びリネーム済みファイル格納ディレクトリ名の行382の値を特定し、最古世代の拡張子が初期値の「000」ではなく、当該最古世代のファイルが、所定のディレクトリ(例えば「/apl/rename」)に格納されていない(すなわち、待機系の処理装置によって処理済み)状態となっているか確認する。
最古拡張子が「000」ではなく且つ最古世代ファイルが処理済みであると判定されなかった場合(ステップS11:Noルート)、後で述べるステップS15の処理に移行する。この際、トレースログ・リネーム処理部520は、開始拡張子のデータ(ここでは「000」)を、図示しないワーク・メモリ領域等の記憶装置に一旦格納しておく。
一方、最古拡張子が「000」ではなく且つ最古世代ファイルが処理済みであると判定された場合(ステップS11:Yesルート)、トレースログ・リネーム処理部520は、最古拡張子を開始拡張子に設定する(ステップS13)。すなわち、現用系制御テーブル(図3)の最古拡張子の行386の値を開始拡張子の行384に登録する。この際、トレースログ・リネーム処理部520は、これまでの開始拡張子、すなわち更新前開始拡張子のデータを、図示しないワーク・メモリ領域等の記憶装置に一旦格納しておく。
以上のステップS9乃至ステップS13の処理は、例えば複数の待機系の処理装置のうち、ある待機系の処理装置がファイル処理を行わなかったことを検出した場合、当該待機系の処理装置へのファイルの割り当て(当該待機系の処理装置が処理するトレースログ・ファイル名の生成)をスキップできるようにするための処理である。具体例は後に述べる。
そして、トレースログ・リネーム処理部520は、リネーム済みのファイルをリネームする(ステップS15)。リネーム済みファイルのリネームは、拡張子の変更によって行う。新拡張子を求める式は、「(更新後の開始拡張子)+(リネーム済みファイルの変更前拡張子)−(更新前の開始拡張子)+1」で示される。更新前の開始拡張子には、図示しないワーク・メモリ領域等の記憶装置に一旦格納しておいたものを用いる。
例えば、リネーム済みファイルの変更前拡張子が「000」で、更新前及び更新後の開始拡張子がともに「000」であった場合、当該ファイルの新拡張子は「001」(000+000-000+1)となる。また例えば、リネーム済みファイルの変更前拡張子が「002」で、更新前の開始拡張子が「001」で、更新後の開始拡張子が「003」であった場合、当該ファイルの新拡張子は005(003+002-001+1)となる。なお、リネーム済みのファイルが所定のディレクトリ(例えば「/apl/rename」)に存在しなければ、この処理をスキップする。
リネーム処理の終了後、トレースログ・リネーム処理部520は、リネーム処理後の最古拡張子のデータ(拡張子の最大値)を現用系制御テーブル(図3)の最古拡張子の行386に登録する(ステップS17)。ステップS15の処理をスキップした場合には、同じ値で更新することになるため、この処理をスキップしてもよい。
そして、トレースログ・リネーム処理部520は、トレースログ・ファイル(Trace.log)をリネームし、所定のディレクトリ(例えば「/apl/rename」)に格納する(ステップS19)。すなわち、現用系制御テーブル(図3)のリネーム付加情報の行380の値と開始拡張子の行384の値とリネーム済みファイル格納ディレクトリ名の行382の値とを用いて、トレースログ・ファイルのリネーム処理を行う。拡張子には、開始拡張子の行384の値をそのまま用いる。これにより、トレースログ・ファイルの退避ができたので、ステップS1の処理に移行し、新しいトレースログ・ファイルにデータを追加していく。
このようにして、現用系処理装置5によるトレースログ・ファイルの生成処理、削除処理及びリネーム処理が行われる。このように現用系処理装置5は通信を行う必要はなく、同期をとることもない。
以下、図6−1乃至図6−6のディスク状態遷移図を用いて具体例を説明する。なお、処理主体については上の処理フローの説明において明示しているため、以下の説明では割愛する。
まず、処理開始時点では、現用系制御テーブル(図3)には初期値が登録されている。なお、最大世代数、すなわちリネーム・ファイル世代数の行378の値は「5」に設定されており、また、ディスク・サイズのチェックは行わない、すなわちディスク・クォータ・チェックの行388の値は「No」に設定されているものとする。そして、現用系処理装置5による処理が開始されると、トレースログ・ファイルにデータが格納及び追加されていく。
図6−1のSTEP1には、トレースログ格納ディレクトリ610とリネーム済みファイル格納ディレクトリ612とトレースログ・ファイル614とが含まれている。トレースログ・ファイル614の全体が縦線模様で示されているが、これは、トレースログ・ファイル614が一杯になった、すなわち、トレースログ・ファイル614のサイズが、現用系制御テーブル(図3)のトレースログ・ファイル上限サイズの行374の値に達したことを表している。
これを図5の処理フローに当てはめると、ステップS1を経由し、ステップS3の判定においてYesルートに進む。そして、ステップS5の判定においては、リネーム済みファイル格納ディレクトリ612にファイルが格納されていないので、Noルートに進む。ステップS9の判定においては、開始拡張子が未だ初期値の「000」であるため、Yesルートに進む。
そして、ステップS11の判定においては、最古拡張子が未だ初期値の「000」であるため、Noルートに進む。この際、ワーク・メモリ領域に更新前の開始拡張子である「000」を格納するが、リネーム済みのファイルがないため、次のステップS15の処理をスキップするので、今回は使用しない。ステップS17の処理においては、ステップS15同様にスキップする又は同じ値「000」で更新する。
そして、ステップS19の処理によって、トレースログ・ファイル614がリネームされ、図6−1のSTEP2に示したような状態となる。図6−1のSTEP2では、リネーム済みファイル616が含まれている。リネーム済みファイル616は、STEP1のトレースログ・ファイル614のファイル名及び格納ディレクトリを変更したものである。例えば2003年7月1日9時0分20秒にリネーム処理されたファイルであり、開始拡張子は「000」であるため、新しいファイル名は「Trace20030701090020.000」と示されている。
トレースログ・ファイル614のリネーム処理が終了すると、図5の処理フローでは、再びステップS1の処理に移行する。すなわち、新しいトレースログ・ファイルにデータが書き込まれていく。そのような状態を図6−1のSTEP3に示す。図6−1のSTEP3には、トレースログ・ファイル618が含まれている。トレースログ・ファイル618の一部が縦線模様で示されているが、これは、トレースログ・ファイル618のサイズの上限(全体)に対して、縦線模様で示されている割合だけデータが格納されていることを表している。
この状態を図5の処理フローに当てはめると、ステップS1を経由し、ステップS3の判定においてNoルートに進む。そして、ステップS1において、トレースログ・ファイル618にさらにデータが追加される。このように、例えばステップS1及びステップS3が繰り返され、トレースログ・ファイル618が一杯になった状態を、図6−1のSTEP4に示す。
図6−1のSTEP4では、トレースログ・ファイル618の全体が縦線模様で示されており、トレースログ・ファイル618が一杯になったことが表されている。すなわち、図5の処理フローに当てはめると、ステップS3の判定において、Yesルートに進む。そして、ステップS5の判定においては、リネーム済みファイル格納ディレクトリ612に格納されているファイルが1つ(1世代)だけなので、Noルートに進む。
ステップS9の判定においては、開始拡張子が未だ初期値の「000」であるため、Yesルートに進む。そして、ステップS11の判定においては、最古拡張子が未だ初期値の「000」であるため、Noルートに進む。この際、ワーク・メモリ領域に、更新前の開始拡張子として「000」を格納しておく。そして、ステップS15におけるリネーム処理によって、リネーム済みファイル616をさらにリネームする。リネーム済みファイルのリネームは、拡張子の変更によって行われ、新しい拡張子は「(更新後の開始拡張子)+(リネーム済みファイルの変更前拡張子)−(更新前の開始拡張子)+1」となる。図6−1のSTEP4の時点では、更新後の開始拡張子、リネーム済みファイル616の変更前拡張子及び更新前の拡張子はいずれも「000」であり、新しい拡張子は「001(000+000-000+1)」となる。更新前の開始拡張子には、ワーク・メモリ領域に格納されているデータを用いる。
そして、ステップS17の処理において、現用系制御テーブル(図3)の最古拡張子の行386の値を、リネーム済みファイルの拡張子の最大値である「001」に更新する。さらに、ステップS19の処理によって、トレースログ・ファイル618がリネームされ、図6−2のSTEP5に示したような状態となる。図6−2のSTEP5には、リネーム済みファイル620とリネーム済みファイル622とが含まれている。リネーム済みファイル620は、STEP4(図6−1)のトレースログ・ファイル618のファイル名及び格納ディレクトリを変更したものである。例えば2003年7月2日15時25分30秒にリネーム処理されたファイルであり、開始拡張子は「000」であるため、新しいファイル名は「Trace20030702152530.000」と示されている。リネーム済みファイル622は、STEP4(図6−1)のリネーム済みファイル616の拡張子が変更されたものである。拡張子の変更(リネーム)処理の詳細については、上で述べた通りである。
トレースログ・ファイル618(図6−1のSTEP4)のリネーム処理が終了すると、図5の処理フローでは、再びステップS1の処理に移行する。すなわち、新しいトレースログ・ファイルにデータが書き込まれていく。そのような状態を図6−2のSTEP6に示す。図6−2のSTEP6には、トレースログ・ファイル624が含まれている。トレースログ・ファイル624の状態は、図6−1のSTEP3におけるトレースログ・ファイル618の状態と同様である。
この状態を図5の処理フローに当てはめると、ステップS1を経由し、ステップS3の判定においてNoルートに進む。そして、ステップS1において、トレースログ・ファイル624にデータが追加される。このように、例えばステップS1及びステップS3が繰り返され、トレースログ・ファイル624が一杯になった状態を、図6−2のSTEP7に示す。
図6−2のSTEP7では、トレースログ・ファイル624の全体が縦線模様で示されており、トレースログ・ファイル624が一杯になったことが表されている。すなわち、図5の処理フローに当てはめると、ステップS3の判定において、Yesルートに進む。そして、ステップS5の判定においては、リネーム済みファイル格納ディレクトリ612に格納されているファイルが2つ(2世代)であり、最大世代数である5に満たないので、Noルートに進む。
ステップS9の判定においては、開始拡張子が未だ初期値の「000」であるため、Yesルートに進む。そして、ステップS11の判定においては、最古拡張子は「001」であり「000」ではないが、拡張子が「001」であるリネーム済みファイル622がリネーム済みファイル格納ディレクトリ612内に存在しており、待機系の処理装置による処理がなされていないと判定されるため、Noルートに進む。この際、ワーク・メモリ領域に開始拡張子の「000」を格納しておく。そして、ステップS15におけるリネーム処理によって、リネーム済みファイル620及びリネーム済みファイル622を、さらにリネームする。リネーム済みファイルのリネーム方法については、上で述べた通りであり、リネーム済みファイル620の拡張子を「001(000+000-000+1)」に、また、リネーム済みファイル622の拡張子を「002(000+001-000+1)」に変更する。
そして、ステップS17の処理において、現用系制御テーブル(図3)の最古拡張子の行386の値を、リネーム済みファイルの拡張子の最大値である「002」に更新する。さらに、ステップS19の処理によって、トレースログ・ファイル624がリネームされ、図6−3のSTEP8に示したような状態となる。図6−3のSTEP8には、リネーム済みファイル630とリネーム済みファイル632とリネーム済みファイル634とが含まれている。リネーム済みファイル630は、STEP7(図6−2)のトレースログ・ファイル624のファイル名及び格納ディレクトリを変更したものである。例えば2003年7月4日10時12分45秒にリネーム処理されたファイルであり、開始拡張子は「000」であるため、新しいファイル名は「Trace20030704101245.000」と示されている。リネーム済みファイル632は、STEP7(図6−2)のリネーム済みファイル620の拡張子が変更されたものであり、リネーム済みファイル634は、STEP7(図6−2)のリネーム済みファイル622の拡張子が変更されたものである。
トレースログ・ファイル624(図6−2のSTEP7)のリネーム処理が終了すると、図5の処理フローでは、再びステップS1の処理に移行する。すなわち、新しいトレースログ・ファイルにデータが書き込まれていく。そして、例えばステップS1及びステップS3が繰り返され、新しいトレースログ・ファイルが一杯になった状態を、図6−3のSTEP9に示す。
図6−3のSTEP9には、トレースログ・ファイル636が含まれている。そして、トレースログ・ファイル636の全体が縦線模様で示されており、トレースログ・ファイル636が一杯になったことが表されている。すなわち、図5の処理フローに当てはめると、ステップS3の判定において、Yesルートに進む。そして、ステップS5の判定においては、リネーム済みファイル格納ディレクトリ612に格納されているファイルが2つ(2世代)であり、最大世代数である5に満たないので、Noルートに進む。
ステップS9の判定においては、開始拡張子が未だ初期値の「000」であるため、Yesルートに進む。そして、ステップS11の判定においては、最古拡張子は「002」であり「000」ではなく、且つ拡張子が「002」であるリネーム済みファイル634(図6−3のSTEP8)がリネーム済みファイル格納ディレクトリ612に存在しないため、待機系の処理装置による処理がなされたと判定され、Yesルートに進む。そして、ステップS13の処理において、最古拡張子である「002」を開始拡張子に設定する。すなわち、現用系制御テーブル(図3)の開始拡張子の行384に、最古拡張子の行386の値である「002」を登録する。この際、ワーク・メモリ領域に更新前の開始拡張子の「000」を格納しておく。
そして、ステップS15におけるリネーム処理によって、リネーム済みファイル630及びリネーム済みファイル632を、さらにリネームする。リネーム済みファイルのリネーム方法については、上で述べた通りであり、リネーム済みファイル630の拡張子を「003(002+000-000+1)」に、また、リネーム済みファイル632の拡張子を「004(002+001-000+1)」に変更する。
そして、ステップS17の処理において、現用系制御テーブル(図3)の最古拡張子の行386の値を、リネーム済みファイルの拡張子の最大値である「004」に更新する。さらに、ステップS19の処理によって、トレースログ・ファイル636がリネームされ、図6−4のSTEP10に示したような状態となる。図6−4のSTEP10には、リネーム済みファイル640とリネーム済みファイル642とリネーム済みファイル644とが含まれている。リネーム済みファイル640は、STEP9(図6−3)のトレースログ・ファイル636のファイル名及び格納ディレクトリを変更したものである。例えば2003年7月5日15時22分30秒にリネーム処理されたファイルであり、開始拡張子は「002」であるため、新しいファイル名は「Trace20030705152230.002」と示されている。リネーム済みファイル642は、STEP9(図6−3)のリネーム済みファイル630の拡張子が変更されたものであり、リネーム済みファイル644は、STEP9(図6−3)のリネーム済みファイル632の拡張子が変更されたものである。
このように、待機系の処理装置によって処理されなかったファイルの拡張子をスキップしてリネームすることにより、効率的な処理が実現できる。例えば上の例のように、拡張子が「002」になって初めてファイルが処理されるような場合には、「000」及び「001」であるファイルの処理を行うはずであった待機系の処理装置に不具合が生じている可能性もあるため、トレースログ・ファイルを始めから「002」という拡張子を用いてリネームすることにより、無駄な処理を省略することができる。
そして、トレースログ・ファイル636(図6−3のSTEP9)のリネーム処理が終了すると、図5の処理フローでは、再びステップS1の処理に移行する。すなわち、新しいトレースログ・ファイルにデータが書き込まれていく。そして、例えばステップS1及びステップS3が繰り返され、新しいトレースログ・ファイルが一杯になった状態を、図6−4のSTEP11に示す。
図6−4のSTEP11には、トレースログ・ファイル646が含まれている。そして、トレースログ・ファイル646の全体が縦線模様で示されており、トレースログ・ファイル646が一杯になったことが表されている。すなわち、図5の処理フローに当てはめると、ステップS3の判定において、Yesルートに進む。そして、ステップS5の判定においては、リネーム済みファイル格納ディレクトリ612に格納されているファイルが2つ(2世代)であり、最大世代数である5に満たないので、Noルートに進む。
ステップS9の判定においては、開始拡張子が「002」であるため、Noルートに進む。この際、ワーク・メモリ領域に、更新前の開始拡張子として「002」を格納しておく。
そして、ステップS15におけるリネーム処理によって、リネーム済みファイル640及びリネーム済みファイル642を、さらにリネームする。リネーム済みファイルのリネーム方法については、上で述べた通りであり、リネーム済みファイル640の拡張子を「003(002+002-002+1)」に、また、リネーム済みファイル642の拡張子を「004(002+003-002+1)」に変更する。なお、図6−4のSTEP11では、リネーム済みファイル644が処理されているが、現用系の処理装置による処理には影響しない。
そして、ステップS17の処理において、現用系制御テーブル(図3)の最古拡張子の行386の値を、リネーム済みファイルの拡張子の最大値である「004」に更新する(今回は同じ値で変わらず)。さらに、ステップS19の処理によって、トレースログ・ファイル646がリネームされ、図6−5のSTEP12に示したような状態となる。図6−5のSTEP12には、リネーム済みファイル650とリネーム済みファイル652とリネーム済みファイル654とが含まれている。リネーム済みファイル650は、STEP11(図6−4)のトレースログ・ファイル646のファイル名及び格納ディレクトリを変更したものである。例えば2003年7月6日12時24分21秒にリネーム処理されたファイルであり、開始拡張子は「002」であるため、新しいファイル名は「Trace20030706122421.002」と示されている。リネーム済みファイル652は、STEP11(図6−4)のリネーム済みファイル640の拡張子が変更されたものであり、リネーム済みファイル654は、STEP11(図6−4)のリネーム済みファイル642の拡張子が変更されたものである。
トレースログ・ファイル646(図6−4のSTEP11)のリネーム処理が終了すると、図5の処理フローでは、再びステップS1の処理に移行する。すなわち、新しいトレースログ・ファイルにデータが書き込まれていく。
このようにしてトレースログ・ファイルの生成処理及びリネーム処理が行われる一方で、待機系の処理装置によるファイル処理が行われず、リネーム済みファイルの世代数が上限値である例えば5に達した場合におけるディスク状態を図6−5のSTEP13に示す。
図6−5のSTEP13には、トレースログ・ファイル656と最古世代リネーム済みファイル658とが含まれている。そして、トレースログ・ファイル656の全体が縦線模様で示されており、トレースログ・ファイル656が一杯になったことが表されている。すなわち、図5の処理フローに当てはめると、ステップS1を経由した後、ステップS3の判定において、Yesルートに進む。そして、ステップS5の判定において、リネーム済みファイル格納ディレクトリ612に格納されているファイルが5つ(5世代)であり、最大世代数である5に達しているので、Yesルートに進む。
そして、ステップS7の処理において、最古世代リネーム済みファイル658が削除され、図6−6のSTEP14に示したような状態となる。ステップS9の判定においては、開始拡張子が「002」であるため、Noルートに進む。この際、ワーク・メモリ領域に、更新前の開始拡張子として「002」を格納しておく。
そして、ステップS15におけるリネーム処理によって、各リネーム済みファイルをさらにリネームする。リネーム済みファイルのリネーム方法については、上で述べた通りである。そして、ステップS17の処理において、現用系制御テーブル(図3)の最古拡張子の行386の値を、リネーム済みファイルの拡張子の最大値である「006」に更新する(今回は同じ値で変わらず)。
さらに、ステップS19の処理によって、トレースログ・ファイル656がリネームされ、図6−6のSTEP15に示したような状態となる。図6−6のSTEP15には、リネーム済みファイル660が含まれている。リネーム済みファイル660は、STEP14のトレースログ・ファイル656のファイル名及び格納ディレクトリを変更したものである。例えば2003年7月15日5時41分18秒にリネーム処理されたファイルであり、開始拡張子は「002」であるため、新しいファイル名は「Trace20030715054118.002」と示されている。その他のリネーム済みファイルは、STEP14の各リネーム済みファイルの拡張子が変更されたものである。
以上、図5に示した処理フローを網羅する具体例を示したが、このようにして、現用系処理装置5によるトレースログ・ファイルの生成処理、削除処理及びリネーム処理が行われる。
次に、図7乃至図9の処理フロー、及び図10−1乃至図10−3のディスク状態遷移図を用いて、待機系の処理装置、例えば待機系処理装置3の実施する処理について、処理の流れ、具体例の順に説明する。
まず、待機系処理装置3のトレースログ監視処理部310は、待機系制御テーブル(図4)のリネーム済みファイル格納ディレクトリ名の行400及び処理対象ファイル拡張子(最上位)の行404の値に基づき、共有ディスク7から、待機系処理装置3の処理対象となる拡張子のファイルを検索する(図7:ステップS31)。例えば共有ディスク7の「/apl/rename」というディレクトリにあり且つ拡張子が「002」であるファイルを検索する。
そして、トレースログ監視処理部310は、該当するファイルがあったか判定する(ステップS33)。該当するファイルがなかったと判定された場合(ステップS33:Noルート)、後に述べるステップS49の処理に移行する。一方、該当するファイルがあったと判定された場合(ステップS33:Yesルート)、制御部340は、待機系制御テーブル(図4)の処理対象ファイル拡張子固定の行402の値に基づき、処理対象となるファイルの拡張子を固定とする設定であるか判定する(ステップS35)。固定とする設定であると判定された場合(ステップS35:Yesルート)、後に述べるステップS39の処理に移行する。
一方、固定とする設定ではないと判定された場合(ステップS35:Noルート)、トレースログ監視処理部310は、上位ファイルが存在するか判定する(ステップS37)。本実施の形態において、上位ファイルとは、処理対象となるファイルよりも大きい数値の拡張子を持つファイルを指す。例えば、処理対象となるファイルの拡張子が「002」であった場合、「003」や「004」等、「002」よりも大きい数値の拡張子を持つファイルが、上位ファイルである。
上位ファイルが存在すると判定された場合(ステップS37:Yesルート)、後に述べるステップS49の処理に移行する。一方、上位ファイルが存在しないと判定された場合(ステップS37:Noルート)、制御部340は、待機系制御テーブル(図4)の圧縮ファイル格納ディレクトリ名の行418及び圧縮ファイルのトータル・サイズ上限の行426の値に基づき、又はディスク・クォータ・チェックの行428及びディスク・クォータ残割合の行430の値に基づき、圧縮ファイルのトータル・サイズ・オーバ、又はディスク・サイズ・オーバの状態であるか判定する(ステップS39)。ディスク・サイズの定義については、上のステップS5(図5)における説明と同様である。
圧縮ファイルのトータル・サイズ又はディスク・サイズがオーバしていないと判定された場合(ステップS39:Noルート)、後に述べるステップS43の処理に移行する。一方、圧縮ファイルのトータル・サイズ又はディスク・サイズがオーバしていると判定された場合(ステップS39:Yesルート)、トレースログ削除処理部330は、圧縮処理済みのファイルのうち、最古世代のものを削除する(ステップS41)。なお、圧縮処理済みのファイルは、待機系制御テーブル(図4)の圧縮ファイル格納ディレクトリ名の行418に示されるディレクトリに格納されている。
そして、トレースログ圧縮処理部330は、ステップS31において検出された、処理対象となる(リネーム済み)ファイルに圧縮処理を施す(ステップS43)。待機系制御テーブル(図4)の圧縮方式の行416の値に基づく圧縮方法で圧縮したファイルを、圧縮ファイル格納ディレクトリ名の行418の値で示されるディレクトリに格納する。例えば、拡張子が「tar.gz」となるような圧縮処理を行い、共有ディスク7の「/apl/comp」ディレクトリに格納する。
そして、制御部340は、待機系制御テーブル(図4)の処理対象ファイル拡張子固定の行402の値に基づき、処理対象となるファイルの拡張子を固定とする設定であるか判定する(ステップS45)。固定とする設定であると判定された場合(ステップS45:Yesルート)、後に述べるステップS49の処理に移行する。
一方、固定とする設定ではないと判定された場合(ステップS45:Noルート)、制御部340は、全ての下位ファイルの処理が終了したか判定する(ステップS47)。本実施の形態において、下位ファイルとは、上で述べた上位ファイルと反対の概念であり、処理対象となるファイルよりも小さい数値の拡張子を持つファイルを指す。例えば、処理対象となるファイルの拡張子が「002」であった場合、「001」や「000」等、「002」よりも小さい数値の拡張子を持つファイルが、下位ファイルである。
全ての下位ファイルの処理が終了していないと判定された場合(ステップS47:Noルート)、ステップS43の処理に戻る。このようにして、全ての下位ファイルについて処理を行う。例えば、拡張子が「002」、「001」及び「000」のファイルをまとめて処理する。これにより、拡張子が「001」や「000」のファイルの処理を割り当てられている他の待機系の処理装置が行わなかった処理をカバーすることができる。
一方、全ての下位ファイルについて処理が終了したと判定された場合(ステップS47:Yesルート)、トレースログ監視処理部310は、監視間隔設定処理を行う(ステップS49)。この処理については後に詳述するが、処理対象のファイルを監視する間隔を調節する処理である。
そして、トレースログ監視処理部310は、ステップS49の監視間隔設定処理において設定された監視間隔に従って待機する(ステップS51)。そして、ステップS31の処理に移行する。
このようにして、待機系の処理装置は、自己に割り当てられたファイルに対して圧縮処理を行う。また、設定によっては他の待機系の処理装置に割り当てられたファイルに対しても圧縮処理を行う。
次に、図8及び図9に示した処理フローを用いて、監視間隔設定処理(図7:ステップS49)の処理の詳細について説明する。なお、この監視間隔設定処理は、制御部340によって実施される。以下の説明においては、処理主体の明示を割愛する。
監視間隔設定処理では、まず、ステップS33(図7)において処理対象のファイルがあったか判定する(図8:ステップS61)。処理対象のファイルがなかったと判定された場合(ステップS61:Noルート)、端子Aを介して図9の処理に移行する。
一方、処理対象のファイルがあったと判定された場合(ステップS61:Yesルート)、待機系制御テーブル(図4)の監視間隔の行406及び最小監視間隔の行410の値に基づき、現在の監視間隔が最小値であるか判定する(ステップS63)。すなわち、監視間隔の行406の値と最小監視間隔の行410の値とが等しいか確認する。なお、監視間隔の行406と最小監視間隔の行410とには、値が登録されているものとする。監視間隔の行406には、初期値(例えば標準監視間隔)又は更新された値が登録されている。
そして、現在の監視間隔が最小値であると判定された場合(ステップS63:Yesルート)、監視間隔設定処理を終了し、元の処理に戻る。一方、現在の監視間隔が最小値ではないと判定された場合(ステップS63:Noルート)、待機系制御テーブル(図4)の監視間隔増減割合の行414の値に基づき、監視間隔を短くする(ステップS65)。例えば、現在の監視間隔である監視間隔の行406の値が60(秒)で、監視間隔増減割合の行414の値が10(%)であった場合、監視間隔を10%短くして54(60-60*0.1)秒とする。
そして、監視間隔を短くした結果、最小値(待機系制御テーブル(図4)の最小監視間隔の行410の値)以下になったか判定する(ステップS67)。最小値以下になったと判定された場合(ステップS67:Yesルート)、監視間隔を最小値に設定する(ステップS69)。すなわち、待機系制御テーブル(図4)の監視間隔の行406に、最小監視間隔の行410の値を登録する。このようにして、監視間隔が際限なく短くなっていくことを防止している。そして、元の処理に戻る。
一方、監視間隔を短くしても、最小値以下にならなかったと判定された場合(ステップS67:Noルート)、短くした監視間隔を、新しい監視間隔として設定する(ステップS71)。すなわち、待機系制御テーブル(図4)の監視間隔の行406に、ステップS65において算出された監視間隔を登録する。そして、元の処理に戻る。
次に、図9を用いて、端子Aを介して移行した処理(ステップS61:Noルート)について説明する。まず、監視間隔の最大値の設定がなされているか判定する(図9:ステップS81)。すなわち、待機系制御テーブル(図4)の最大監視間隔の行412に、値が格納されているか確認する。
監視間隔の最大値の設定がなされていないと判定された場合(ステップS81:Noルート)、現在の監視間隔は標準値であるか判定する(ステップS83)。すなわち、待機系制御テーブル(図4)の監視間隔の行406の値が、標準監視間隔の行408の値と等しいか判定する。現在の監視間隔は標準値であると判定された場合(ステップS83:Yesルート)、端子Bを介して図8の処理に戻り、監視間隔設定処理を終了して元の処理に戻る。
一方、現在の監視間隔は標準値ではないと判定された場合(ステップS83:Noルート)、待機系制御テーブル(図4)の監視間隔増減割合の行414の値に基づき、監視間隔を長くする(ステップS85)。例えば、現在の監視間隔である監視間隔の行406の値が50(秒)で、監視間隔増減割合の行414の値が10(%)であった場合、監視間隔を10%長くして55(50+50*0.1)秒とする。
そして、監視間隔を長くした結果、標準値(待機系制御テーブル(図4)の標準監視間隔の行408の値)以上になったか判定する(ステップS87)。標準値以上になったと判定された場合(ステップS87:Yesルート)、監視間隔を標準値に設定する(ステップS89)。すなわち、待機系制御テーブル(図4)の監視間隔の行406に、標準監視間隔の行408の値を登録する。このようにして、監視間隔の最大値が設定されていなくても、監視間隔が際限なく長くなっていくことを防止している。そして、端子Bを介して図8の処理に戻り、監視間隔設定処理を終了して元の処理に戻る。
一方、監視間隔を長くしても、標準値以上にならなかったと判定された場合(ステップS87:Noルート)、長くした監視間隔を、新しい監視間隔として設定する(ステップS91)。すなわち、待機系制御テーブル(図4)の監視間隔の行406に、ステップS85(又は後に述べるステップS95)において算出された監視間隔を登録する。そして、端子Bを介して図8の処理に戻り、監視間隔設定処理を終了して元の処理に戻る。
また一方、ステップS81の判定において、監視間隔の最大値の設定がなされていると判定された場合(ステップS81:Yesルート)、現在の監視間隔は最大値であるか判定する(ステップS93)。すなわち、待機系制御テーブル(図4)の監視間隔の行406の値が、最大監視間隔の行412の値と等しいか判定する。現在の監視間隔は最大値であると判定された場合(ステップS93:Yesルート)、端子Bを介して図8の処理に戻り、監視間隔設定処理を終了して元の処理に戻る。
一方、現在の監視間隔は最大値ではないと判定された場合(ステップS93:Noルート)、待機系制御テーブル(図4)の監視間隔増減割合の行414の値に基づき、監視間隔を長くする(ステップS95)。例えば、現在の監視間隔である監視間隔の行406の値が70(秒)で、監視間隔増減割合の行414の値が10(%)であった場合、監視間隔を10%長くして77(70+70*0.1)秒とする。
そして、監視間隔を長くした結果、最大値(待機系制御テーブル(図4)の最大監視間隔の行412の値)以上になったか判定する(ステップS97)。最大値以上になったと判定された場合(ステップS97:Yesルート)、監視間隔を最大値に設定する(ステップS99)。すなわち、待機系制御テーブル(図4)の監視間隔の行406に、最大監視間隔の行412の値を登録する。このようにして、監視間隔が際限なく長くなっていくことを防止している。そして、端子Bを介して図8の処理に戻り、監視間隔設定処理を終了して元の処理に戻る。一方、監視間隔を長くしても、最大値以上にならなかったと判定された場合(ステップS97:Noルート)、上で述べたステップS91の処理に移行する。
このようにして、監視間隔設定処理が行われる。これにより、待機系の処理装置は、処理対象のファイルが生成される頻度に合わせた監視処理を行うことができるようになる。 以下、図10−1乃至図10−3のディスク状態遷移図を用いて、図7に示した処理フローの具体例を説明する。なお、処理主体については処理フローの説明において明示しているため、以下の説明では割愛する。
処理開始時点では、待機系制御テーブル(図4)には初期値が登録されており、ディスク・サイズのチェックは行わない、すなわちディスク・クォータ・チェックの行428の値は「No」に設定されているものとする。
図10−1のSTEP21には、トレースログ格納ディレクトリ1010とリネーム済みファイル格納ディレクトリ1012と圧縮済みファイル格納ディレクトリ1014とが含まれている。そして、リネーム済みファイル格納ディレクトリ1012には、リネーム済みファイル1016が含まれている。トレースログ格納ディレクトリ1010及びリネーム済みファイル格納ディレクトリ1012は、図6−1乃至図6−6に示したトレースログ格納ディレクトリ610及びリネーム済みファイル格納ディレクトリ612と同様のものであり、これらには、現用系処理装置5によって生成・リネームされた各ファイルが格納されている。圧縮済みファイル格納ディレクトリ1014には、待機系の処理装置によって圧縮されたファイルが格納される。
共有ディスク7の少なくとも一部が、図10−1のSTEP21に示したような状態にある場合に、図7の処理フローに示した処理が開始されると、まず、待機系の処理装置である例えば待機系処理装置3が、処理対象の拡張子を持つリネーム済みファイルを、リネーム済みファイル格納ディレクトリ1012から検索する(図7:ステップS31)。
待機系処理装置3の処理対象となるファイルの拡張子(待機系制御テーブル(図4)の処理対象ファイル拡張子(最上位)の値)が、例えば「004」やそれ以上の値であった場合には、該当するファイルがないため、ステップS33の判定においてNoルートに進む。この場合、ステップS49の監視間隔設定処理において、監視間隔を長くするような(変わらない場合もある)設定がなされる。
一方、待機系処理装置3の処理対象となるファイルの拡張子(待機系制御テーブル(図4)の処理対象ファイル拡張子(最上位)の値)が、例えば「001」であった場合、該当するファイルとしてリネーム済みファイル1016が検出され、ステップS33の判定においてYesルートに進む。
そして、待機系制御テーブル(図4)の処理対象ファイル拡張子固定の行402の値が、例えば「No」である場合、ステップS35の判定においてNoルートに進み、さらにステップS37の判定においては上位ファイルが存在する(拡張子が「002」のファイル及び拡張子が「003」のファイルがある)ため、Yesルートに進む。この場合、ステップS49の監視間隔設定処理において、監視間隔を短くするような(変わらない場合もある)設定がなされる。
また一方、待機系制御テーブル(図4)の処理対象ファイル拡張子固定の行402の値が、例えば「Yes」である場合、ステップS35の判定においてYesルートに進む。そして、ステップS39の判定においては、圧縮済みファイル格納ディレクトリ1014にファイルが格納されていないので、Noルートに進む。
そして、ステップS43において、処理対象として検出されたリネーム済みファイル、すなわちリネーム済みファイル1016に圧縮処理を施し、圧縮されたファイルを圧縮済みファイル格納ディレクトリ1014に格納すると、図10−1のSTEP22に示したような状態となる。
図10−1のSTEP22には、圧縮済みファイル1018が含まれている。すなわち、リネーム済みファイル1016が圧縮処理され、圧縮済みファイル1018になったことが示されている。なお、圧縮方法については、上に述べた通りである。
そして、ステップS45の判定では、ステップS35の判定同様、Yesルートに進み、ステップS49の監視間隔設定処理において、監視間隔を短くするような(変わらない場合もある)設定がなされる。そして、ステップS51において監視間隔に従い待機して、再びステップS31の処理に移行する。
このようにしてリネーム済みファイルの圧縮処理が行われ、生成された圧縮済みファイルの合計サイズが、上限値である、待機系制御テーブル(図4)の圧縮ファイルのトータル・サイズ上限の行426に達した場合におけるディスク状態を図10−2のSTEP23に示す。
図10−2のSTEP23には、リネーム済みファイル1020と、リネーム済みファイル1022と、圧縮済みファイル1024と、圧縮済みファイル1026と、・・・、が含まれている。なお、圧縮済みファイル格納ディレクトリ1014に格納されている圧縮済みファイルの合計サイズが、待機系制御テーブル(図4)の圧縮ファイルのトータル・サイズ上限の行426の値に達しているものとする。
図7の処理フローに当てはめると、ステップS31において、処理対象の拡張子を持つリネーム済みファイルを、リネーム済みファイル格納ディレクトリ1012から検索する。例えば待機系処理装置3の処理対象となるファイルの拡張子(待機系制御テーブル(図4)の処理対象ファイル拡張子(最上位)の値)が、例えば「001」であった場合、該当するファイルとしてリネーム済みファイル1022が検出され、ステップS33の判定においてYesルートに進む。
そして、待機系制御テーブル(図4)の処理対象ファイル拡張子固定の行402の値が、例えば「No」である場合、ステップS35の判定においてNoルートに進み、さらにステップS37の判定においては上位ファイルが存在しない(拡張子が「002」以上のファイルがない)ため、Noルートに進む。そして、ステップS39の判定において、圧縮ファイルのトータル・サイズ・オーバであると判定され、Yesルートに進み、ステップS41において最古世代の圧縮済みファイルを削除する。最古世代の検出は、ファイル名によって行う(例えば「Trace20030707070707.005.tar.gz」の下線部「005」)。なお、この場合、削除対象となるファイルが複数存在したり、必ずしも古いファイルが削除対象になるとは限らないため、生成日時が最も古いファイルを削除するようにしてもよい。
図10−2のSTEP23に示した例では、圧縮済みファイル1024が最古世代の圧縮済みファイルに該当し、削除される。そして、図10−2のSTEP24に示したような状態となる。
ディスク・スペースができたので、ステップS43において、処理対象として検出されたリネーム済みファイル、すなわちリネーム済みファイル1022に圧縮処理を施し、圧縮されたファイルを圧縮済みファイル格納ディレクトリ1014に格納すると、図10−3のSTEP25に示したような状態となる。図10−3のSTEP25には、圧縮済みファイル1028が含まれている。すなわち、リネーム済みファイル1022が圧縮処理され、圧縮済みファイル1028になったことが示されている。
そして、ステップS45の判定では、ステップS35の判定同様、Noルートに進み、さらにステップS47の判定においては、未処理の下位ファイルが存在する(拡張子が「000」のリネーム済みファイルがある)ため、Noルートに進む。そして、ステップS43において、下位ファイルであるリネーム済みファイル1020に圧縮処理を施し、圧縮されたファイルを圧縮済みファイル格納ディレクトリ1014に格納すると、図10−3のSTEP26に示したような状態となる。図10−3のSTEP26には、圧縮済みファイル1030が含まれている。すなわち、リネーム済みファイル1020が圧縮処理され、圧縮済みファイル1030になったことが示されている。
このように、処理対象となるファイルの拡張子を固定に設定しない場合には、本来、他の待機系の処理装置が処理すべきであったファイルも処理対象となる。なお、ステップS37の判定において、上位ファイルを検出した場合に圧縮処理を実行しないのは、他の待機系の処理装置との同時アクセスを防止するためである。
そして、図7のステップS45の判定においては、上と同様、Noルートに進み、ステップS47の判定においては、未処理の下位ファイルは存在しないため、Yesルートに進む。そして、ステップS49の監視間隔設定処理において、監視間隔を短くするような(変わらない場合もある)設定がなされる。そして、ステップS51において監視間隔に従い待機して、再びステップS31の処理に移行する。
このようにして、待機系の処理装置、例えば待機系処理装置3によるファイル圧縮処理が行われる。なおその際、現用系処理装置5との通信処理や同期処理は行われない。
以上本発明の一実施の形態について説明したが、本発明はこれに限定されるものではない。例えば、図3及び図4に示したテーブル構成は一例であって、同様のデータを格納するためであれば別の構成を採用するようにしてもよいし、必要に応じて項目を追加又は削除してもよい。
また、図1に示した現用系処理装置5及び待機系処理装置3の機能ブロック構成は一例であって、実際のプログラム・モジュール構成とは異なる場合がある。また、各処理装置が複数のサーバやコンピュータによって構成されていてもよい。
また、図2、図6−1乃至図6−6及び図10−1乃至図10−3に示した共有ディスク7内におけるファイル・イメージは一例であって、実際のディレクトリ構成やファイル名とは異なる場合がある。例えば、トレースログ・ファイルと同一のディレクトリにリネーム済みファイルを格納するようにしてもよいし、世代が新しくなるにつれ、大きい数値の拡張子を設定するようにしてもよい。また、ファイルの圧縮方法も一例であって、他の圧縮方法を用いてもよい。
また、図5及び図7乃至図9に示した処理フローも一例であって、同様の処理結果が得られる範囲において処理の順序を入れ替えてもよいし、必要に応じてステップを追加又は削除してもよい。
(付記1)
現用系の処理装置と待機系の処理装置と共有ディスクとで構成されるクラスタ・システムにおける前記待機系の処理装置により実行されるファイル処理方法であって、
前記現用系の処理装置により生成され且つ前記共有ディスクに格納されているファイルから、制御情報格納部に格納されている制御情報に基づき、処理対象となるファイルを特定するファイル特定ステップと、
前記共有ディスク内の特定されたファイルに対して所定の処理を実施するファイル処理ステップと、
を含むファイル処理方法。
(付記2)
前記ファイル特定ステップにおいて、
前記共有ディスクの所定の領域に格納されているファイルの個数と生成順序との少なくともいずれかに基づき、当該共有ディスクの所定の領域内の処理対象となるファイルを特定することを特徴とする
付記1記載のファイル処理方法。
(付記3)
前記共有ディスクの所定の領域に格納されているファイルのファイル名が、世代管理を可能とするネーミング・ルールに従って設定されている場合、
前記ファイル特定ステップにおいて、前記共有ディスクの所定の領域に格納されているファイルのファイル名から特定される世代に基づき、処理対象となるファイルを特定することを特徴とする
付記1記載のファイル処理方法。
(付記4)
前記制御情報は、前記待機系の処理装置が処理すべきファイルの世代を示すデータを含み、
前記ファイル特定ステップにおいて、前記データが示す世代以降のファイルを、処理対象として特定することを特徴とする
付記3記載のファイル処理方法。
(付記5)
処理対象となるファイルの特定可否状況に基づき前記共有ディスクに対する監視間隔を設定し、前記制御情報格納部に格納するステップをさらに含む、
付記1乃至4のいずれか1つに記載のファイル処理方法。
(付記6)
前記ファイル処理ステップにおいて、特定されたファイルの圧縮を命じ、圧縮されたファイルを圧縮ファイル格納部に格納することを特徴とする
付記1乃至5のいずれか1つに記載のファイル処理方法。
(付記7)
前記ファイル処理ステップにおいて、特定されたファイルを所定のコンピュータに送信することを特徴とする
付記1乃至5のいずれか1つに記載のファイル処理方法。
(付記8)
現用系の処理装置と待機系の処理装置と共有ディスクとで構成されるクラスタ・システムにおける前記現用系の処理装置により実行されるファイル処理方法であって、
生成したファイルに対して、前記待機系の処理装置における処理対象とするための所定のネーミング・ルールに従ったファイル名を決定するファイル名決定ステップと、
前記生成したファイルを、決定した前記ファイル名で前記共有ディスクの所定の領域に格納するファイル格納ステップと、
を含むファイル処理方法。
(付記9)
所定の条件を満たした場合、前記共有ディスクの所定の領域に格納されているファイルのファイル名を設定しなおすリネーム処理ステップをさらに含む
付記8記載のファイル処理方法。
(付記10)
前記所定のネーミング・ルールは、ファイルを世代管理可能とするネーミング・ルールであって、
前記リネーム処理ステップにおいて、前記共有ディスクの所定の領域に格納されているファイルのファイル名を、世代を変えたファイル名に設定しなおすことを特徴とする
付記9記載のファイル処理方法。
(付記11)
前記共有ディスクの所定の領域に格納されているファイルが前記待機系の処理装置によって処理されたか否かを判断するステップをさらに含み、
特定の世代のファイルが未処理であると判断された場合、前記ファイル名決定ステップにおいて、当該特定の世代をスキップした態様でファイル名を決定することを特徴とする
付記10記載のファイル管理方法。
(付記12)
前記所定の条件は、前記共有ディスクの所定の領域に、既にファイルが格納されており且つ新規なファイルを格納するという条件であることを特徴とする
付記9乃至11のいずれか1つに記載のファイル管理方法。
(付記13)
現用系の処理装置と待機系の処理装置と共有ディスクとで構成されるクラスタ・システムにおける前記待機系の処理装置に実行させるファイル処理プログラムであって、
前記現用系の処理装置により生成され且つ前記共有ディスクに格納されているファイルから、制御情報格納部に格納されている制御情報に基づき、処理対象となるファイルを特定するステップと、
前記共有ディスク内の特定されたファイルに対して所定の処理を実施するステップと、
を待機系の処理装置に実行させるファイル処理プログラム。
(付記14)
現用系の処理装置と待機系の処理装置と共有ディスクとで構成されるクラスタ・システムにおける前記現用系の処理装置に実行させるファイル処理プログラムであって、
生成したファイルに対して、前記待機系の処理装置における処理対象とするための所定のネーミング・ルールに従ったファイル名を決定するステップと、
前記生成したファイルを決定した前記ファイル名で前記共有ディスクの所定の領域に格納するステップと、
を現用系の処理装置に実行させるファイル処理プログラム。
(付記15)
現用系の処理装置と共有ディスクとを含むクラスタ・システムに接続される待機系の処理装置であって、
前記現用系の処理装置により生成され且つ前記共有ディスクに格納されているファイルから、制御情報格納部に格納されている制御情報に基づき、処理対象となるファイルを特定する手段と、
前記共有ディスク内の特定されたファイルに対して所定の処理を実施する手段と、
を有する待機系の処理装置。
(付記16)
待機系の処理装置と共有ディスクとを含むクラスタ・システムに接続される現用系の処理装置であって、
生成したファイルに対して、前記待機系の処理装置における処理対象とするための所定のネーミング・ルールに従ったファイル名を決定する手段と、
前記生成したファイルを決定した前記ファイル名で前記共有ディスクの所定の領域に格納する手段と、
を有する現用系の処理装置。