JP2009169579A - コマンドネット実行装置、コマンドネット実行プログラム及びコマンドネット実行プログラムを記録したコンピュータ読み取り可能な記録媒体 - Google Patents

コマンドネット実行装置、コマンドネット実行プログラム及びコマンドネット実行プログラムを記録したコンピュータ読み取り可能な記録媒体 Download PDF

Info

Publication number
JP2009169579A
JP2009169579A JP2008005416A JP2008005416A JP2009169579A JP 2009169579 A JP2009169579 A JP 2009169579A JP 2008005416 A JP2008005416 A JP 2008005416A JP 2008005416 A JP2008005416 A JP 2008005416A JP 2009169579 A JP2009169579 A JP 2009169579A
Authority
JP
Japan
Prior art keywords
command
execution
error
information
net
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2008005416A
Other languages
English (en)
Other versions
JP4989496B2 (ja
Inventor
Shuichi Morikawa
修一 森川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2008005416A priority Critical patent/JP4989496B2/ja
Publication of JP2009169579A publication Critical patent/JP2009169579A/ja
Application granted granted Critical
Publication of JP4989496B2 publication Critical patent/JP4989496B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Retry When Errors Occur (AREA)

Abstract

【課題】実行順序の定められた複数の外部コマンドを実行し、全コマンドの正常実行により処理完了となるコマンド実行処理が周期的に呼び出されるシステムにおいて、あるコマンドが異常終了した場合でも、周期的実行を停止せずに処理の継続可能なコマンドネット実行装置を提供する。
【解決手段】コマンドネット実行装置1000は、コマンドネットを周期的に実行するコマンド実行部140と、あるコマンドがコマンド実行部140による実行継続できないエラーコマンドである場合の周期的実行における各コマンドの実行の可否を定めたエラー時動作情報111bと、コマンドがエラーコマンドになるとエラーコマンドに関するエラーコマンド情報211bを記憶し、この記憶中にコマンドネット実行処理が呼び出されるとエラー時動作情報111bを参照し、このエラーコマンドに対し実行可であるコマンドをコマンド実行部140に実行させるコマンド処理部とを備えた。
【選択図】図3

Description

この発明は、複数の外部コマンドからなるコマンドネットを実行するコマンドネット実行装置、コマンドネット実行プログラム及びコマンドネット実行プログラムを記録したコンピュータ読み取り可能な記録媒体に関する。
複数の外部コマンドを予め定められた順番で実行し、すべてのコマンドが正常に実行されることで処理が完了する処理(コマンドネット)で、外部コマンドの一つが異常終了して処理が中断した後、異常原因を取り除き、コマンドネットを再実行する復旧(リカバリ)方式において、従来のリカバリ方式は、コマンドネットの実行処理でコマンド単位に正常終了した実行情報を記録しておき、任意のコマンドの異常終了で処理が中断し、異常原因の除去後のコマンドネット実行再開時には記録した実行情報に従って中断したコマンドから処理を再開するといった方法が考えられている(例えば、特許文献1)。
このとき、コマンドネットが周期的に実行されるシステムでは、コマンド異常終了によるコマンドネット処理の中断の後、異常原因を取り除いて中断したコマンドネットの再実行によるリカバリ処理の前に、周期的呼び出しによる次のコマンドネット実行が起動されてしまうことがある。周期的に実行されるコマンドネットを構成するコマンドが、前回の実行結果を受けて処理を行うようなコマンドの場合、中断したコマンドネットのリカバリ処理前に起動されたコマンドは正常終了できないためコマンドネットは中断し、中断状態のコマンドネット、つまりリカバリ対象のコマンドネットが増加していってしまう。
特開2003−850201号公報
コマンドネットにおいて異常終了により中断したコマンドによっては、コマンドネット再実行後の追加実行が不要な場合もある。例えば、コマンドネットにおけるコマンド間でのデータの受け渡しがワークファイルを生成することにより行われる場合、入力指定をファイル単位で行うコマンドでは追加実行が必要となるが、入力をフォルダ単位で指定する(フォルダに在するすべてのファイルを入力)コマンドの場合は、リカバリ前の実行による途中経過のファイルはフォルダに追加され、リカバリ後の再実行によりすべて入力できるため、追加実行は必要ない。コマンドネットでは一連の外部コマンドを実行するため、このような追加実行の必要がないコマンドの実行は、起動コストの高い外部コマンドを冗長に起動してしまうという課題があった。
またコマンドによっては冗長なコマンド実行により、入力データがないといった警告メッセージの出力や、次のコマンドネット実行準備のためのリソース(フォルダ、ファイルなど)生成を無駄に行ってしまうなど、余分な処理に伴う副作用が発生するという課題があった。
この発明は、周期的に実行されるコマンドネットを構成する複数の外部コマンドの一覧情報に、コマンドネットにおけるエラー時動作情報を追加し、異常終了による中断後、コマンドネット再実行の際に追加実行の必要性を判定できるようにすることで、冗長な外部コマンド実行を回避するリカバリ方式を備えたコマンドネット実行装置の提供を目的とする。
この発明のコマンドネット実行装置は、
実行される順番が予め定められた複数の構成コマンドから構成されるコマンドネットを周期的に実行するコマンド実行部と、
ある前記構成コマンドが前記コマンド実行部による実行継続ができないエラーコマンドである場合の前記周期的実行における各構成コマンドごとの実行の可否を、各構成コマンドがエラーコマンドである場合について定めた実行可否情報を記憶する実行可否情報記憶部と、
周期的に呼び出されることにより前記コマンドネットを前記コマンド実行部に周期的に実行させるとともに、いずれかの前記構成コマンドが前記エラーコマンドになると前記エラーコマンドを特定するエラーコマンド情報を記憶し、前記エラーコマンド情報が記憶されているときに前記コマンドネットの実行処理が呼び出されると前記実行可否情報を参照することにより、記憶されている前記エラーコマンド情報の示す前記エラーコマンドに対して実行が認められている前記構成コマンドを特定し、特定された前記構成コマンドを前記コマンド実行部に実行させるコマンド処理部と
を備えたことを特徴とする。
この発明により、周期的な実行を停止させずに実行処理を継続するコマンドネット実行装置を提供することができる。
実施の形態1.
図1は、コンピュータであるコマンドネット実行装置1000の外観の一例を示す図である。図1において、コマンドネット実行装置1000は、システムユニット830、CRT(Cathode・Ray・Tube)やLCD(液晶)の表示画面を有する表示装置813、キーボード814(Key・Board:K/B)、マウス815、FDD817(Flexible・Disk・ Drive)、コンパクトディスク装置818(CDD:Compact Disk Drive)、プリンタ装置819などのハードウェア資源を備え、これらはケーブルや信号線で接続されている。
図2は、実施の形態1におけるコマンドネット実行装置1000のハードウェア資源の一例を示す図である。図2において、コマンドネット実行装置1000は、プログラムを実行するCPU810(Central Processing Unit:中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。CPU810は、バス825を介してROM(Read Only Memory)811、RAM(Random Access Memory)812、表示装置813、キーボード814、マウス815、通信ボード816、FDD817、CDD818、プリンタ装置819、磁気ディスク装置820と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置820の代わりに、光ディスク装置、フラッシュメモリなどの記憶装置でもよい。
RAM812は、揮発性メモリの一例である。ROM811、FDD817、CDD818、磁気ディスク装置820等の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部、格納部、バッファの一例である。通信ボード816、キーボード814、FDD817などは、入力部、入力装置の一例である。また、通信ボード816、表示装置813、プリンタ装置819などは、出力部、出力装置の一例である。
通信ボード816は、ネットワーク(LAN等)に接続されている。通信ボード816は、LANに限らず、インターネット、ISDN等のWAN(ワイドエリアネットワーク)などに接続されていても構わない。
磁気ディスク装置820には、オペレーティングシステム821(OS)、ウィンドウシステム822、プログラム群823、ファイル群824が記憶されている。プログラム群823のプログラムは、CPU810、オペレーティングシステム821、ウィンドウシステム822により実行される。
上記プログラム群823には、以下に述べる実施の形態の説明において「〜部」として説明する機能を実行するプログラムが記憶されている。プログラムは、CPU810により読み出され実行される。「〜部」として説明する機能を実行するプログラムは、DVDやHDDなどの記録媒体に記録可能である。
ファイル群824には、以下に述べる実施の形態の説明において、「コマンドネット情報111」、「コマンド実行情報211」、「エラー時動作情報21」として説明する情報や、「〜の判定結果」、「〜の算出結果」、「〜の抽出結果」、「〜の生成結果」、「〜の処理結果」、「〜の実行結果」として説明する情報や、データや信号値や変数値やパラメータなどが、「〜ファイル」や「〜データベース」の各項目として記憶されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU810によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのCPUの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
また、以下に述べる実施の形態の説明においては、データや信号値は、RAM812のメモリ、FDD817のフレキシブルディスク、CDD818のコンパクトディスク、磁気ディスク装置820の磁気ディスク、その他光ディスク、ミニディスク、DVD(Digital・Versatile・Disk)等の記録媒体に記録される。また、データや信号は、バス825や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
また、以下に述べる実施の形態の説明において、「〜部」として説明するものは、「手段」、「〜回路」、「〜機器」、「〜装置」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ROM811に記憶されたファームウェアで実現されても、或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実現されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。プログラムはCPU810により読み出され、CPU810により実行される。すなわち、プログラムは、以下に述べる「〜部」としてコンピュータを機能させるものである。あるいは、以下に述べる「〜部」の手順や方法をコンピュータに実行させるものである。
図3は、周期的な複数コマンド実行での異常終了時のリカバリ方式を実行するコマンドネット実行装置1000の構成を示す図である。コマンドネット実行装置1000は、コマンドネット実行システム100とコマンド実行情報格納部200とを備えている。
(1)コマンドネット実行システム100は、複数の外部コマンド300の実行と、外部コマンド300の中で任意のコマンド(構成コマンド)の異常終了による中断からのリカバリを行うプロセスである。「コマンドネット」とは、実行される順番が予め定められた複数の構成コマンドから構成されるコマンドの集合である。コマンドネット実行システム100は、単独で実行可能なユーティリティプログラムである。コマンドネット実行システム100は、コマンドネット実行システム100が動作する環境にある一般的なタスクスケジューラを利用することで、周期的に実行することができる。
(2)コマンド実行情報格納部200に格納されるコマンド実行情報211は、外部コマンド300の実行状態に関する情報を記録するファイルである。
(3)外部コマンド300(コマンドネット)は、コマンドネット実行システム100とは別プロセスとして実行される複数の外部コマンド(構成コマンド)からなる。
(コマンドネット実行システム100)
(1)コマンドネット情報格納部110に格納されるコマンドネット情報111は、実行する複数の外部コマンド300(コマンドネット)の情報を管理する情報である。コマンドネット情報111は、予め設定された内容が格納される。
(2)コマンド制御部120は、コマンドネット情報111とコマンド実行情報211とをもとに、外部コマンド300の実行制御を行う。
(3)エラー時動作判定部130は、異常終了による中断からのリカバリの際の追加実行の要否などを判定する。コマンド制御部120とエラー時動作判定部130とは、コマンド処理部を構成する。
(4)コマンド実行部140は、コマンド制御部120からの指示に従って外部コマンド300を実行し、実行結果をコマンド制御部120に返す。
(コマンドネット情報111)
コマンドネット情報111は、コマンドネットを構成する外部コマンド300の実行順序などに関する情報を記録するコマンドリスト111aと、コマンドネット内のコマンドが異常終了した際のシステムの動作を判断するために用いるエラー時動作情報111bとを有する。以下にコマンドリスト111a、エラー時動作情報111bを説明する。
(コマンドリスト111a)
図4はコマンドリスト111aの一例を示す図である。コマンドリスト111aは、コマンドの実行順序を表す順番111a−1、コマンドを起動する際のコマンドライン情報を表すコマンドライン111a−2、コマンド実行結果の正常・異常を判定するための式を表す成否判定式111a−3を有するレコードの集まりとして定義される。コマンドネットの一つのコマンドは、一つのレコードとして指定する。コマンドライン111a−2では実際のコマンドラインの値以外に、変数を用いることでコマンド間でのデータ受け渡しといった指定が可能である。
(エラー時動作情報111b)
図5は、エラー時動作情報111bの一例を示す図である。実行コマンド111b−1とエラーコマンド111b−2とは、それぞれコマンドリスト111aの各レコードに対応付けられている。図5の(1)等がコマンドの順番を示す。実行コマンド111b−1は、コマンドネットの内での処理対象のコマンドを示し、エラーコマンド111b−2は、異常終了しコマンドネットが中断する原因となったコマンドを示す。
(判定用テーブル111b−3)
判定用テーブル111b−3は、縦軸が実行コマンド111b−1、横軸がエラーコマンド111b−2からなるテーブルであり、エラー時動作を判定するためのフラグ情報が記録される。フラグは、三つのビットから構成されている。図5に示すフラグのうち、左から順に、第1フラグ、第2フラグ(実行可否情報の一例)、第3フラグ(リカバリ実行要否情報の一例)と呼ぶこととする。
(1)第1フラグは、エラー時動作(1=中断、0=続行または適用外)、
(2)第2フラグは、リカバリ前実行の可否(1=不可、0=可能または適用外)、
(3)第3フラグは、追加実行の要否(1=必要、0=不要または適用外)を示す。
判定用テーブル111b−3は、コマンドネットのm番目のコマンドで異常終了が発生したときにn番目のコマンドの動作を判定する場合、n行m列にあるフラグを参照する。なお、コマンドネット情報111は予めコマンドネット実行システム100に組み込まれていても、あるいはファイルやデータベースといった外部記憶装置に格納され、実行時にコマンドネット実行システム100が読み込んでもよい。
(コマンド実行情報211)
図6は、コマンド実行情報211の各状態を示す図である。コマンド実行情報211は、コマンドネット状態211a、エラーコマンド情報211b、実行履歴情報211cを有する。コマンド実行情報211は、コマンド制御部120によって、更新される。
(1)コマンドネット状態211aは、コマンドネット実行システム100により実行されたコマンドネットの実行結果状態を表す。コマンドネット状態211aは、「正常終了」、「終了(異常コマンドあり)」、「異常終了」の3つの状態がある。これらは、動作の説明で述べる。
(2)エラーコマンド情報211bは、コマンドネットの中で任意のコマンドが異常終了(すなわちコマンドネット状態211aが「異常終了」と記録される場合)した際の「エラーコマンド」の情報を記録する。ここで「エラーコマンド」とは、「異常終了」したコマンド(後述する図8のS48で続行不可と判定されたコマンド)である。
(3)実行履歴情報211cは、コマンドの異常終了により中断されたコマンドネットがリカバリによる再実行の前に周期的実行により呼びだされたときの実行履歴が記録される。「実行履歴」については、動作の説明で詳しく説明する。
(コマンドネット状態211a〜実行履歴情報211c)
図7は、コマンド実行情報211の内容を示す図である。
(1)コマンドネット状態211aは、「正常終了」、「終了(異常コマンド有)」、「異常終了」のいずれかが記録される。
(2)エラーコマンド情報211bは、「異常終了」したコマンドのコマンドネット内の位置、異常終了の際のコマンドライン文字列、入力データなどを含む。
(3)実行履歴情報211cは、異常終了後であってリカバリ前にコマンドネットが起動されたとき、そのコマンドネットで処理を中断した際、次に実行すべきコマンドに関する情報(コマンドネット内の位置、コマンドライン文字列、入力データなど)が記録される。
次に動作について説明する。コマンドネット実行システム100における周期的なコマンドネット実行処理の流れを図8のフローチャートを用いて説明する。
(動作1:コマンド実行処理)
図8は、本実施の形態1の周期的なコマンドネット実行の任意の一周期におけるコマンドネット実行手順を示すフローチャートであり、周期的な実行では図8の手順が繰り返される。
ステップ41で、タスクスケジューラなどからコマンドネット実行システム100が起動され、コマンドネットの実行を開始する。
ステップ42で、コマンド制御部120はコマンド実行情報211の内容を読み込む。ここで初回の実行といった理由によりコマンド実行情報211が存在しない場合はコマンドネット状態211aは「正常終了」、エラーコマンド情報211b及び実行履歴情報211cは無いものとして処理を続ける(図6(a)の状態)。
ステップ43で、コマンド制御部120はコマンドネット状態211aを調べ、コマンドネット状態211aが「異常終了」(図6(c)あるいは(d)の状態)を示す場合はステップ50に、そうでない場合はステップ44に進む。なお、コマンドネット状態211aが「異常終了」を示す場合、コマンドネットの周期的実行において異常終了による処理の中断が起こり、その中断がリカバリされていないことを表す。コマンドネット状態211aが「正常終了」(図6(a)の状態)を示す場合は、これまでの周期的実行において問題のない状態であることを表す。コマンドネット状態211aが「終了(異常コマンド有)」(図6(b)の状態)を示す場合は、周期的実行には支障がないが、処理が完了していないコマンドが残っていることを表す。
(S43のNO:異常終了ではない場合)
ステップ44で、コマンド制御部120は、コマンドリスト111aから実行すべきコマンドライン111a−2を取り出し、コマンド実行部140にコマンドの実行を指示する。コマンド実行部140は指示に従い外部コマンド300の該当するコマンドを実行し、実行結果をコマンド制御部120に返す。
ステップ45で、コマンド制御部120はコマンド実行部140から受け取った実行結果をもとに、「成否判定式111a−3」を使ってコマンド実行が正常終了したかエラー終了したか判定し、正常終了した場合はステップ46へ、エラー終了した場合はステップ48に進む。
(S45のNO:正常の場合)
ステップ46で、コマンド制御部120は、コマンドリスト111aに未実行のコマンドが残っているか調べ、残っている場合はステップ44に、残っていない場合はステップ47に進む。
ステップ47で、コマンド制御部120はコマンドネット実行で続行可能なエラーが発生したコマンドがあった場合(S48のYESが存在する場合)、そのコマンドに関する情報(コマンドリスト111a内の順番、コマンドライン文字列、入力データなど)を実行履歴情報211cに追加し、コマンドネット状態211aに終了(異常コマンド有)を設定して、コマンド実行情報211を更新して終了する。
(S45のYES:エラー時動作判定)
ステップ48では、コマンド制御部120は、エラー時動作情報111bと、エラーの発生したコマンドのコマンドリスト111aにおける順番とをエラー時動作判定部130に渡す。エラー時動作判定部130は、判定用テーブル111b−3で実行コマンド111b−1、エラーコマンド111b−2が共にエラーの発生したコマンドの順番の位置の第1フラグ値を参照し、エラー時動作が中断か続行可能か調べ、結果をコマンド制御部120へ返す。コマンド制御部120は中断の場合はステップ49に、続行可能な場合はステップ46に進む。
ステップ49で、コマンド制御部120はコマンドネット状態211aを「異常終了」に、エラーコマンド情報211bにコマンドネット内の順番111a−1、コマンドライン文字列、入力データなどを設定し、コマンド実行情報211を更新して終了する(図6(c))。
(S43のYES:異常終了の場合)
ステップ50では、コマンド制御部120は、エラー時動作情報111bと「エラーコマンド情報211b」に含まれるエラーコマンドのコマンドリスト111aにおける順番とをエラー時動作判定部130に渡す。エラー時動作判定部130は、判定用テーブル111b−3で、「エラーコマンド情報211b」に記載されているエラーコマンドの順番の列の第2フラグ値を使って、コマンドリスト111aのコマンドが、リカバリ前に実行可能か判定し、判定結果をコマンド制御部120に返す。コマンド制御部120は、実行不可のコマンド(第2フラグ値=1)が現れるまで、コマンドリスト111aのコマンドを順に実行する。
ステップ51ではコマンド制御部120は実行を停止したコマンドに関する情報(コマンドリスト111a内の順番111a−1、コマンドライン文字列、入力データなど)を実行履歴情報211cに追加し、コマンド実行情報211を更新して終了する(図6(d))。
以上から、周期的なコマンドネットの実行において、正常状態およびコマンド異常終了による中断後のリカバリ前状態からの実行においても、コマンドネットを停止することなく継続的に実行できる。
図9は、図8の処理が実行される場合に、具体例を用いて、コマンド実行情報211の内容の推移を示した図である。上記で述べた図8の動作1を図9を参照して更に具体的に説明する。
図9(a)は、タスクスケジューラが、コマンドC1〜C4からなるコマンドネットを周期的に起動する場合を示している。図9(a)の左列は、図8のコマンドネット実行処理を実行した場合、C1、C2、C4は「丸」によって示される正常終了をし、C3は「三角」によって示される「終了(異常コマンド)」をするものとする。また、図9で使用する「四角」は未実施のコマンドを示し、「×」は異常終了のコマンドを示すものとする。
図9(b)は、(a)の左列に対応するコマンド実行情報211を示す。
図9(c)は、図9の設例におけるエラー時動作情報111bを示す。
図9(d)は、(c)のエラー時動作情報111bに基づきコマンドが実行された状態(中央列、右列)を示している。また、左列は、図8のコマンドネット実行処理を実行した場合、C1、C2は正常終了し、C3は異常終了し、C4は未実施となる(C3が異常終了のため)ことを示している。
図9(e)は、(d)の左列の実行後におけるコマンド実行情報211を示す。
図9(f)は、(d)の中央列の実行後におけるコマンド実行情報211を示す。
図9(g)は、(d)の右列の実行後におけるコマンド実行情報211を示す。
(動作1−1:続行可能なエラー発生の場合)
まず、続行可能なエラーが発生する場合(S48のYESとなる場合)を説明する。ステップ41で、タスクスケジューラによって、図9(a)左列のコマンドネット(C1〜C4)が起動される。なお、以下の説明では、ステップ41等はS41と表記する。
S42で、コマンド制御部120は、コマンド実行情報211の内容を読み込む。図9(a)の左列の場合は初回実行を想定し、コマンド実行情報211は、図6(a)(正常終了)の状態とする。
S43で、コマンド制御部120はコマンドネット状態211aを調べる。図6(a)の状態(正常終了)のため、S44に進む。
S44で、コマンド制御部120は、コマンドC1の実行をコマンド実行部140に指示する。コマンド実行部140は指示に従いコマンドC1を実行し、実行結果をコマンド制御部120に返す。
S45で、コマンド制御部120はコマンド実行部140から受け取った実行結果をもとに、「成否判定式111a−3」を使ってコマンドC1が正常終了したかエラー終了したか判定する。この例では、コマンドC1は正常終了するので、処理はS46に進む。
S46で、コマンド制御部120は、コマンドリスト111aに未実行のコマンドが残っているか調べ、残っている場合はS44に、残っていない場合はS47に進む。この例では、次にコマンドC2があるので、S44に進む。コマンドC2は正常終了するので、S44→S45→S46へと進み、S46において、コマンドC3があるのでS44、S45と進む。
S45で、コマンド制御部120は、判定式からコマンドC3を実行エラーと判定する。また、S48で、エラー時動作判定部130は、エラー時動作情報111bの判定用テーブル111b−3の第1フラグから、コマンドC3を続行可能と判定し、S46に進む。
S46で、コマンドC4があるので、コマンドC4が実行される。コマンドC4は正常終了するので、コマンドC4の処理はS46→S44→S45→S46のループ経路を進む。S46では残りのコマンドは無いので、処理はS47に進む。
S47で、図9(b)に示すように、コマンド制御部120は、コマンドネット実行(C1〜C4)で続行可能なエラーが発生したコマンドC3があったので、コマンドC3に関する情報(コマンドリスト111a内の順番、コマンドライン文字列、入力データなど)を実行履歴情報211cに追加し、コマンドネット状態211aに「終了(異常コマンド有)」を設定して、コマンド実行情報211を更新して終了する。
(動作1−2:異常終了する場合)
以上の動作は、続行可能な実行エラーの場合の具体例を説明したが、次に、続行不能な実行エラー(異常終了)の場合を説明する。
S41で、タスクスケジューラによって、図9(d)の左列のコマンドネット(C1〜C4)が起動されるとする。
S42で、コマンド制御部120は、コマンド実行情報211の内容を読み込む。図9(d)左列の場合は初回実行を想定し、図6(a)の状態(正常終了)とする。
S43で、コマンド制御部120はコマンドネット状態211aを調べる。図6(a)の状態(正常終了)のため、S44に進む。コマンドC1,コマンドC2については図9(d)左列に示すように正常終了するコマンドであるため、これらの処理はS44→S45→S46→S44のループを進む。
S46で、コマンド制御部120は、次にコマンドC3があるので、S44の処理に進む。コマンドC3は、図9(d)に示すように異常終了するコマンドであるため、処理は、S44→S45→S48へと進む。S48で、エラー時動作判定部130は、エラー時動作情報11bの判定用テーブル111b−3の第1フラグから、コマンドC3を続行NGと判定し、処理はS49に進む。
ステップ49では、図9(e)に示すように、コマンド制御部120は、コマンドネット状態211aを「異常終了」に、エラーコマンド情報211bにコマンドC3のコマンドネット内の順番である「3」、コマンドライン文字列、入力データなどを設定し、コマンド実行情報211を更新して終了する。
(動作1−3:異常終了後かつリカバリ前の周期的実行)
次に、コマンド実行情報211が図9(e)の状態において、リカバリ前にコマンドネットが再び起動された場合を説明する。これは図9(d)の中央列の場合に相当する。
S41で、図9(d)の中央列のコマンドネットが、タスクスケジューラによって起動される。
S42で、コマンド制御部120は、コマンド実行情報211の内容を読み込む。この場合は、コマンド実行情報211は、図9(e)の状態(異常終了)である。従って、S42→S43→S50へと進む。
S50において、コマンド制御部120は、エラー時動作情報111bと「エラーコマンド情報211b」に含まれるエラーコマンドのコマンドリスト111aにおける順番とをエラー時動作判定部130に渡す。図9(e)の場合、コマンド制御部120は、エラー時動作情報111bと、エラーコマンドであるコマンドC3のコマンドリスト111aにおける順番「3」とをエラー時動作判定部130に渡す。エラー時動作判定部130は、図9(c)に示すエラー時動作情報111bで、コマンドC3の順番「3」の列(すなわち,ABT(3))の第2フラグ値を使って、コマンドリスト111aのコマンド(この場合、C1〜C4)が、リカバリ前に実行可能か判定し、判定結果をコマンド制御部120に返す。図9(c)の例では、エラー時動作判定部130は、コマンドC1、C4については第2フラグが「0」であるためリカバリ前の実行が可能と判定し、コマンドC2、C3については第2フラグが「1」であるためリカバリ前の実行が不可と判定する。コマンド制御部120は、エラー時動作判定部130によって実行可能と判定されたコマンドC1、C4を実行する。
ステップ51では、コマンド制御部120は、実行を停止したコマンドC2、C3に関する情報(コマンドリスト111a内の順番111a−1、コマンドライン文字列、入力データなど)を実行履歴情報211cに追加し、コマンド実行情報211を更新して終了する。図9(f)は、図9(e)に対して、コマンドC2、C3に関する情報が実行履歴情報211cに追加された状態を示している。
(動作1−4:さらに、異常終了後かつリカバリ前の周期的実行)
次に、コマンド実行情報211が図9(f)の状態において、再びコマンドネットが起動された場合を説明する。これは図9(d)の右列がタスクスケジューラによって起動された場合である。
S41→S42→S43→S50までは、「動作1−3」の場合と同様である。
S50において、図9(d)の右列に示すように、「動作1−3」の場合と同様に、コマンドC1、C4のみが実行され、処理はS51に進む。
ステップ51では、「動作1−3」の場合と同様に、コマンド制御部120は、実行を停止したコマンドC2、C3に関する情報(コマンドリスト111a内の順番111a−1、コマンドライン文字列、入力データなど)を実行履歴情報211cに追加し、コマンド実行情報211を更新して終了する。図9(g)は、図9(f)に対して、コマンドC2、C3に関する情報が実行履歴情報211cに追加された状態を示している。
以上、図9を参照して具体的に説明したように、周期的なコマンドネットの実行において、正常状態およびコマンド異常終了による中断後のリカバリ前状態からの実行においても、コマンドネットを停止することなく継続的に実行できる。
(動作2:リカバリ処理)
コマンド異常終了による中断後のリカバリ実行処理の流れを図10のフローチャートを用いて説明する。図10は、周期的なコマンドネット実行のリカバリ実行手順を示すフローチャートである。なお、図10は、異常終了したコマンドから異常原因が既に取り除かれた後の「再実行処理」をリカバリ処理として示している。
ステップ61で、管理者などがコマンドネット実行システム100をリカバリ用に起動し、コマンドネットの実行を開始する。リカバリ用としての指示は、コマンドネットのパラメータなどで指定する。
ステップ62で、コマンド制御部120はコマンド実行情報211の内容を読み込む。
ステップ63で、コマンド制御部120は、コマンドネット状態211aを調べ、「異常終了」を示す場合はステップ66に、そうでない場合(終了または正常終了)は、ステップ64に進む。
(S63のNO:異常終了でない場合)
ステップ64で、コマンド制御部120は実行履歴情報211cを調べ、実行履歴情報211cにデータが存在する場合はステップ65に、存在しない場合はそのまま終了する。実行履歴情報211cにデータが存在する場合(図6(b))、周期的実行には支障がないが、処理の完了していないコマンドが残っていることを示している。
(S64の判定で、実行履歴情報=有り)
ステップ65で、コマンド制御部120は実行履歴情報211cのデータをもとに、コマンド実行部140に対してコマンドの実行を指示する。コマンド実行部140は指示に従ってコマンドを実行する。実行履歴情報211cに記録されているすべてのコマンドの実行が完了した後、ステップ69に進む。
(S63のYES:異常終了の場合)
ステップ66で、コマンド制御部120はエラーコマンド情報211bをもとに、コマンド実行部140に対してコマンドの実行を指示、コマンド実行部140は指定されたコマンドを実行し、ステップ67に進む。
(追加実行の要否判定)
ステップ67で、コマンド制御部120は、エラー時動作情報111bと、エラーコマンド情報211bに記載されたエラーコマンドのコマンドリスト111aにおける順番とを、エラー時動作判定部130に渡す。エラー時動作判定部130は、判定用テーブル111b−3で、エラーコマンド情報211bに記載されたエラーコマンドの示す順番の列の第2フラグ値、第3フラグ値を使って、追加実行の必要性を判定する。具体的には、判定用テーブル111b−3の該当する列の先頭からリカバリ前実行の可否を示す第2フラグの値が不可(フラグ値=1)の行まで移動し、その行の追加実行の要否を示す第3フラグ値が必要(フラグ値=1)の場合はステップ68に、そうでない場合はステップ69へ進む。
(S67の判定で必要あり)
ステップ68で、実行履歴情報211cのデータをもとに、コマンド制御部120はコマンドネットの追加実行を行う。実行履歴情報211cに記録されているすべてのコマンドネットの実行が完了した後、ステップ69に進む。
ステップ69で、コマンド制御部120はコマンドネット状態211aを正常終了に、エラーコマンド情報211bと実行履歴情報211cを初期化して、コマンド実行情報211を更新して終了する(図6(a))。
以上から、コマンドネットの異常終了による中断からのリカバリ処理において、エラー時動作情報111bを使用することで、再実行の際に追加実行の必要性を判定し、冗長なコマンド実行を回避することができる。
(動作3:判定用テーブル111b−3の定義)
次に、エラー時動作情報111bの判定用テーブル111b−3の定義処理の流れを図11のフローチャートを用いて説明する。図11は、エラー時動作情報111bの定義手順を示すフローチャートである。
(ステップ71)
ステップ71で、コマンドリスト111aの情報をもとにコマンドネットを構成するコマンドの一覧を実行する順番に列挙する。
(ステップ72)
ステップ72で、列挙したコマンドネットのコマンド一覧において、各コマンド間の相互依存関係を明確にする。「相互依存関係」とは、あるコマンドの出力が、別のコマンドの入力として使用されることを指す。また、コマンドネットが周期的に実行される場合に、前回のコマンドネットの実行結果を入力として使用する場合も依存関係があることとなる。
(ステップ73)
ステップ73で、コマンドネット内のコマンドの処理単位を明確にする。「処理単位」とは、複数のコマンドで構成される処理の意味的なまとまりであり、処理の意味的な区切りとなる。
(ステップ74)
ステップ74で、コマンドネットを構成するコマンド数分の行と列を持つテーブルを用意して、すべてのデータを0で初期化する。これが判定用テーブル111b−3のもとになる。
(ステップ75)
ステップ75で、ステップ72で調べたコマンド間の相互依存関係をもとに、エラー時動作を示す第1フラグを設定する。エラー時動作は各コマンドについて、行と列がコマンド位置のデータについてのみ設定する。コマンドが以降の別のコマンドと依存関係がある場合は、エラー時動作を示す第1フラグの値を1(中断)に設定する。
(ステップ76)
ステップ76で、ステップ73で調べたコマンドの処理単位をもとに、リカバリ前実行の可否を示す第2フラグを設定する。判定用テーブル111b−3の各列において、列の位置に相当するエラーコマンド11b−2と同一の処理単位に含まれる実行コマンド111b−1行のデータについて、リカバリ前実行の可否を示す第2フラグの値を1(不可)に設定する。
(ステップ77)
ステップ77ではステップ75で設定したエラー時動作を示す第1フラグと、ステップ76で設定したリカバリ前実行の可否を示す第2フラグ及びコマンド仕様をもとに、追加実行の要否を示す第3フラグを設定する。判定用テーブル111b−3の各列において、先頭行からリカバリ前実行の可否を示す第2フラグの値が不可の行まで移動する。その行に対応するコマンドの仕様をもとに、入力内容がコマンド実行毎に個別に分ける必要があるか、あるいは複数の入力をまとめて集約可能か調べて、集約できない場合は追加実行の要否を示す第3フラグの値を1(必要)に設定する。入力集約の可能不可能の判断は、コマンドリスト111aの定義者にとっては通常容易に行えるが、明確な判断ができないコマンドが存在した場合は、第3フラグの値を1(必要)に設定することとする。
以上から、エラー時動作情報111bの判定用テーブル111b−3を定義することができ、周期的実行やリカバリ実行におけるエラーに対する動作判定を行うことができる。
以上のように、コマンドネットにおけるエラー時動作情報111bを定義し、周期的なコマンドネット実行で任意のコマンドの異常終了による中断後、コマンドネット再実行で追加実行の必要性を判定できるようにし、冗長な外部コマンド実行を回避することで、冗長な外部コマンド起動による処理負荷を削減することができる。また、冗長な外部コマンド実行を回避することで、冗長な外部コマンド実行に伴う副作用の発生をなくすことができる。さらに、コマンドネットが任意のコマンドでの異常終了による中断後、リカバリ処理が行われる前に周期的な実行が行われても、実行可能な範囲でコマンドネットの実行が可能で、かつ、その実行自体は異常終了とはならないため、運用管理者がリカバリを直ちに実行しなくとも異常終了したコマンドネットは増加せず、また、リカバリは最初の異常終了により中断したコマンドネットに対して行うことで、中断後からリカバリ前までのすべてのコマンドネット実行がリカバリできるため、運用管理者の運用負荷を軽減することができる。
実施の形態2.
以上の実施形態1では、周期的に実行する外部コマンドのコマンドリスト111aと、コマンドが異常終了した際のシステムの動作を判断するためのエラー時動作情報111bとを一組として定義したが、実施の形態2では、メールアーカイブシステムにおいて、予め周期的に実行する外部コマンドが限定され、その振る舞いを認識している場合にコマンドリストとは独立してエラー時動作情報を管理する実施形態を示す。
図12は、メールアーカイブシステムにおける電子メールロード処理の周期的実行での異常終了時のリカバリ方式を行うコマンドネット実行装置1000の構成図である。
図12において、コマンドネット実行装置1000は、コマンドネット実行システム100とコマンド実行情報格納部200とから構成される。
(1)メールアーカイブサーバ2000は、メールアーカイブシステム400が動作するサーバである。(2)コマンドリスト11は、コマンドネットを構成するロードユーティリティ410、範囲管理ユーティリティ420、アーカイブユーティリティ430の実行順序に関する情報である。
(2)エラー時動作情報21は、ロードユーティリティ410、範囲管理ユーティリティ420、アーカイブユーティリティ430について、各コマンドが異常終了した際のシステムの動作を判断するためのエラー時動作情報である。
(3)エラー時動作判定部130は、実施の形態1と同じく、コマンドネット内のコマンドが異常終了した際のシステムの動作を判断するモジュールである。
(4)メールアーカイブコマンド実行部1402は、実施の形態1のコマンド実行部140と同じく、メールアーカイブシステム400が提供するロードユーティリティ410、範囲管理ユーティリティ420、アーカイブユーティリティ430を実行するモジュールである。
(5)メールアーカイブシステム400は、電子メールファイルをデータベース600に格納し、格納した電子メールに対して検索などの機能を提供するプロセスである。
(6)ロードユーティリティ410は、メールアーカイブシステム400に電子メールをロードする外部コマンドである。ロードユーティリティ410は、電子メールを格納している電子メール格納部と接続しており、電子メール格納部から電子メールを取得する。
(7)範囲管理ユーティリティ420は、データベース600において電子メールの格納領域を区切る範囲の設定を行うための外部コマンドである。
(8)アーカイブユーティリティ430は、データベース600の全体や範囲管理ユーティリティ420により区切られた格納領域の範囲をファイルにアーカイブする外部コマンドである。
(9)タスクスケジューラ500は、コマンドネット実行システム100を周期的に起動するスケジューラプロセスである。
(10)データベース600は、メールアーカイブシステム400が管理する電子メールを格納するデータベースである。
図13は、図12のコマンド実行情報211に含まれるコマンドリスト11の一例を示す図である。コマンドリスト11は、コマンドの実行順序を表す順番11−1、コマンドを識別するIDを表すコマンドID11−2、コマンドのパラメータを表すコマンドパラメータ11−3等を有するレコードの集まりとして定義される。
本実施の形態2では、コマンドネット実行システム100が実行する外部コマンドは、メールアーカイブシステム400が提供するロードユーティリティ410、範囲管理ユーティリティ420、アーカイブユーティリティ430と限定される。このため、メールアーカイブコマンド実行部1402において各コマンドの識別IDを定義して、その内容をコマンドID11−2に指定する。また、メールアーカイブコマンド実行部1402では、コマンド毎に成否判定式を予め組み込んでおくことで、コマンドリスト11では、実施の形態1のコマンドリスト111aに存在する成否判定式111cを省略できる。
図14は、本実施の形態2におけるエラー時動作情報21の一例を示す図である。実行コマンド21−1とエラーコマンド21−2は、それぞれロードユーティリティ410、範囲管理ユーティリティ420、アーカイブユーティリティ430に対応付けられる。実行コマンド21−1は、コマンドネットの内での処理対象のコマンドを示し、エラーコマンド21−2は、異常終了しコマンドネットが中断する原因となったコマンドを示す。
(判定用テーブル21−3)
判定用テーブル21−3は、縦軸が実行コマンド21−1、横軸がエラーコマンド21−2からなるテーブルであり、エラー時動作を判定するためのフラグ情報(第1フラグ〜第3フラグ)が記録される。フラグの内容は、実施の形態1の判定用テーブル111b−3と同様である。
ここで、メールアーカイブシステム400のユーティリティによる電子メールロード処理は、必ずロードユーティリティ410、範囲管理ユーティリティ420、アーカイブユーティリティ430の順番で呼び出される。
(コマンド実行処理の動作)
次に動作について説明する。メールアーカイブシステムでの電子メールロード処理における周期的な実行処理の流れを、図15のフローチャートを用いて説明する。図15は、実施の形態2の周期的なコマンドネット実行の任意の一周期におけるコマンドネット実行手順を示すフローチャートであり、周期的な実行では図15の手順が繰り返される。図15は、実施の形態1の図8に同じである。すなわち、ステップS101〜S111は、図8のS41〜S51に対応する。
(1)ステップ101で、タスクスケジューラ500からコマンドネット実行システム100が起動され、コマンドネット(電子メールのロード処理)の実行を開始する。
(2)ステップ102で、コマンド制御部120は、コマンド実行情報211の内容を読み込む。
(3)ステップ103で、コマンドネット状態211aを調べ、コマンドネット状態211aが異常終了を示す場合はステップ110に、そうでない場合はステップ104に進む。
(4)ステップ104で、コマンド制御部120はコマンドリスト11から実行すべきコマンドID11−2とコマンドパラメータ11−3を取り出し、メールアーカイブコマンド実行部1402にコマンドの実行を指示する。メールアーカイブコマンド実行部1402は、指示に従い、ロードユーティリティ410か範囲管理ユーティリティ420、アーカイブユーティリティ430の中でいずれか該当するコマンドを実行し、実行の成否をコマンド制御部120に返す。
(5)ステップ105で、コマンド制御部120はメールアーカイブコマンド実行部1402からの結果をもとに、コマンドが「正常終了」した場合はステップ106へ、エラー終了した場合はステップ108に進む。
(6)ステップ106で、コマンド制御部120は、コマンドリスト11に未実行のコマンドが残っているか調べ、残っている場合はステップ104に、残っていない場合はステップ107に進む。
(7)ステップ107で、コマンド制御部120は、コマンドネット実行で続行可能なエラーが発生したコマンドがあった場合、そのコマンドに関する情報(コマンドリスト11内の順番11−1、コマンドパラメータ、入力データなど)を実行履歴情報211cに追加し、コマンドネット状態211aに「終了(異常コマンド有)」を設定して、コマンド実行情報211を更新して終了する。
(8)ステップ108では、コマンド制御部120は、エラー時動作情報21と、エラーの発生したコマンドのコマンドリスト11におけるコマンドID11−2をエラー時動作判定部130に渡す。エラー時動作判定部130は、コマンドID11−2が示すコマンドのエラー時動作(第1フラグ)が中断か続行可能かを判定用テーブル21−3から調べ、コマンド制御部120へ返す。コマンド制御部120は、中断の場合はステップ109に、続行可能な場合はステップ106に進む。
(9)ステップ109で、コマンド制御部120は、コマンドネット状態211aを「異常終了」に、エラーコマンド情報211bにコマンドネット内の順番、コマンドパラメータ、入力データなどを設定し、コマンド実行情報211を更新して終了する。
(10)ステップ110では、コマンド制御部120は、エラーコマンド情報211bに含まれるエラーの発生したコマンドID11−2と、エラー時動作情報21とをエラー時動作判定部130に渡す。エラー時動作判定部130は、コマンドID11−2と判定用テーブル21−3(第2フラグ)からコマンドがリカバリ前に実行可能か判定し、コマンド制御部120に結果を返す。コマンド制御部120では、実行不可のコマンドが現れるまでコマンドリスト11のコマンドを順に実行する。
(11)ステップ111では、コマンド制御部120は、実行を停止したコマンドに関する情報(コマンドリスト内の順番131、コマンドライン文字列、入力データなど)を実行履歴情報211cに追加し、コマンド実行情報211を更新して終了する。
以上から、メールアーカイブシステムにおける周期的な電子メールロード処理実行において、正常状態およびコマンド異常終了による中断後のリカバリ前状態からの実行においても、電子メールロード処理を実行できる。
メールアーカイブシステムにおけるコマンド異常終了による中断後のリカバリ実行処理の流れを図16のフローチャートを用いて説明する。図16は実施の形態2の周期的なコマンドネット実行のリカバリ実行手順を示すフローチャートである。図16は、実施の形態1の図10に同じである。すなわち、ステップS121〜S129は、図10のS61〜S69に対応する。
(1)ステップ121で、管理者などがコマンドネット実行システム100をリカバリ用に起動し、コマンドネット(電子メールのロード処理)の実行を開始する。リカバリ用としての指示は、コマンドネットのパラメータなどで指定する。
(2)ステップ122で、コマンド制御部120は、コマンド実行情報211の内容を読み込む。
(3)ステップ123で、コマンド制御部120は、コマンドネット状態211aを調べ、「異常終了」を示す場合はステップ126に、そうでない場合はステップ124に進む。
(4)ステップ124で、コマンド制御部120は実行履歴情報211cを調べ、実行履歴情報211cにデータが存在する場合はステップ125に、存在しない場合はそのまま終了する。
(5)ステップ125で、コマンド制御部120は実行履歴情報211cのデータをもとに、メールアーカイブコマンド実行部1402に対してコマンドの実行を指示する。メールアーカイブコマンド実行部1402は指示に従ってコマンドを実行する。実行履歴情報211cに記録されているすべてのコマンドの実行が完了した後、ステップ129に進む。
(6)ステップ126で、コマンド制御部120は、エラーコマンド情報211bをもとに、メールアーカイブコマンド実行部1402に対してコマンドの実行を指示し、メールアーカイブコマンド実行部1402は指定されたコマンドを実行し、ステップ127に進む。
(7)ステップ127で、コマンド制御部120は、エラー時動作情報21とエラーコマンド情報211bのコマンドリスト11におけるコマンドID11−2をエラー時動作判定部130に渡す。エラー時動作判定部130は、コマンドID11−2と判定用テーブル21−3(フラグ値)から追加実行の必要性を判定し、必要な場合はステップ128に、そうでない場合はステップ129へ進む。
(8)ステップ128で、実行履歴情報211cのデータをもとに、コマンド制御部120は、コマンドネットの追加実行を行う。実行履歴情報211cに記録されているすべてのコマンドネットの実行が完了した後、ステップ129に進む。
(9)ステップ129で、コマンドネット状態211aを正常終了に、エラーコマンド情報211bと実行履歴情報211cを初期化して、コマンド実行情報211を更新して終了する。
以上から、メールアーカイブシステムにおけるコマンドの異常終了による中断からのリカバリ処理において、エラー時動作情報21を使用することで、再実行の際に追加実行の必要性を判定し、冗長なコマンド実行を回避することができる。
以上のように、メールアーカイブシステムでの電子メールロード処理(コマンドネット)におけるエラー時動作情報を定義し、周期的なコマンドネット実行で任意のコマンドの異常終了による中断後、コマンドネット再実行で追加実行の必要性を判定できるようにし、冗長な外部コマンド実行を回避することで、冗長な外部コマンド起動による処理負荷を削減することができる。
また、冗長な外部コマンド実行を回避することで、冗長な外部コマンド実行に伴う副作用の発生をなくすことができる。
さらに、コマンドネットが任意のコマンドでの異常終了による中断後、リカバリ処理が行われる前に周期的な実行が行われても、実行可能な範囲でコマンドネットの実行が可能で、かつ、その実行自体は異常終了とはならないため、運用管理者がリカバリを直ちに実行しなくとも異常終了したコマンドネットは増加せず、また、リカバリは最初の異常終了により中断したコマンドネットに対して行うことで、中断後からリカバリ前までのすべてのコマンドネット実行がリカバリできるため、運用管理者の運用負荷を軽減することができる。
また、エラー時動作情報をコマンドネットのコマンドリストとは別に定義できるため、コマンドネットの内容を変更してもエラー時動作情報を変更する必要がなく、変更時の作業ステップを削減できる。
さらに、コマンドネットで実行する外部コマンドとその実行順序や相互依存関係などを予め特定できるため、指定すべき外部コマンドに関する情報を簡略化でき、設定コストを軽減できる。
以上の実施の形態では、
複数の外部コマンドを予め定められた順序で実行し、すべてのコマンドが正常に実行されることで処理が完了するコマンド実行処理が、ある一定間隔で周期的に呼び出されるシステムにおいて、
実行する外部コマンドの一覧情報と、
外部コマンドのエラー時動作を判定するためのエラー時動作情報と、
実行状態と、処理が中断したエラーコマンド情報と、周期的な実行呼び出しに関する実行履歴情報を管理するコマンド実行情報と
を備え、
上記情報をもとに実行制御を行うコマンド制御手段と、
エラーにより外部コマンドが中断した実行のリカバリを行う際の動作を判定する手段と
を備えたことを特徴とする周期的な複数コマンド実行における異常終了時のリカバリ方式をもつコマンドネット実行装置1000を説明した。
以上の実施の形態では、
ある特定のユーティリティコマンドを予め定められた規則に従って周期的に実行することにより、電子メールをデータベースにロードする処理を行うメールアーカイブシステムにおいて、
コマンドのエラー時動作を判定するためのエラー時動作情報と、
実行するコマンドの順序情報と、その実行状態及び処理が中断したエラーコマンド情報と、周期的な実行呼び出しに関する実行履歴情報を管理するコマンド実行情報と
を備え、
上記情報をもとに実行制御を行うコマンド制御手段と、
エラーにより外部コマンドが中断した実行のリカバリを行う際の動作を判定する手段と
を備えたことを特徴とするメールアーカイブシステムの周期的な電子メールロード処理実行における異常終了時のリカバリ方式をもつコマンドネット実行装置1000を説明した。
以上の実施の形態では、
ある特定のユーティリティコマンドを予め定められた規則に従って周期的に実行することにより、電子メールをデータベースにロードする処理を行うメールアーカイブシステムにおいて、
コマンドのエラー時動作を判定するためのエラー時動作情報と、
実行するコマンドの順序情報と、その実行状態及び処理が中断したエラーコマンド情報と、周期的な実行呼び出しに関する実行履歴情報を管理するコマンド実行情報と
を備え、
上記情報をもとに実行制御を行うコマンド制御手段と、
エラーにより外部コマンドが中断した実行のリカバリを行う際の動作を判定する手段と
メールアーカイブシステムのユーティリティコマンドを実行する実行手段と
を備えたことを特徴とするメールアーカイブシステムの周期的な電子メールロード処理実行における異常終了時のリカバリ方式をもつコマンドネット実行装置を説明した。
実施の形態1のコマンドネット実行装置の外観。 実施の形態1のマンドネット実行装置のハードウェア構成。 実施の形態1のマンドネット実行装置のブロック図。 実施の形態1のコマンドリスト111a。 実施の形態1のエラー時動作情報111b。 実施の形態1のコマンド実行情報211の各状態を示す図。 実施の形態1のコマンド実行情報211の内容を示す図。 実施の形態1のコマンド実行装置によるコマンド実行のフロー。 図8の処理が実行される場合における、コマンド実行情報211の内容の推移の具体例を示す図。 実施の形態1のコマンド実行装置によるリカバリ処理フロー。 実施の形態1の判定用テーブル111b−3の定義処理を示すフロー。 実施の形態2のマンドネット実行装置のブロック図。 実施の形態2のコマンドリスト11。 実施の形態2のエラー時動作情報21。 実施の形態2のコマンド実行装置によるコマンド実行のフロー。 実施の形態2のコマンド実行装置によるリカバリ処理フロー。
符号の説明
11 コマンドリスト、11−1 順番、11−2 コマンドID、11−3 コマンドパラメータ、21 エラー時動作情報、100 コマンドネット実行システム、110 コマンドネット情報格納部、111 コマンドネット情報、111a コマンドリスト、111a−1 順番、111a−2 コマンドライン、111a−3 成否判定式、111b エラー時動作情報、111b−1 実行コマンド、111b−2 エラーコマンド、111b−3 判定用テーブル、120 コマンド制御部、130 エラー時動作判定部、140 コマンド実行部、200 コマンド実行情報格納部、211 コマンド実行情報、211a コマンドネット状態、211b エラーコマンド情報、211c 実行履歴情報、300 外部コマンド、400 メールアーカイブシステム、410 ロードユーティリティ、420 範囲管理ユーティリティ、430 アーカイブユーティリティ、500 タスクスケジューラ、600 データベース、1000 コマンドネット実行装置、1402 メールアーカイブコマンド実行部。

Claims (5)

  1. 実行される順番が予め定められた複数の構成コマンドから構成されるコマンドネットを周期的に実行するコマンド実行部と、
    ある前記構成コマンドが前記コマンド実行部による実行継続ができないエラーコマンドである場合の前記周期的実行における各構成コマンドごとの実行の可否を、各構成コマンドがエラーコマンドである場合について定めた実行可否情報を記憶する実行可否情報記憶部と、
    周期的に呼び出されることにより前記コマンドネットを前記コマンド実行部に周期的に実行させるとともに、いずれかの前記構成コマンドが前記エラーコマンドになると前記エラーコマンドを特定するエラーコマンド情報を記憶し、前記エラーコマンド情報が記憶されているときに前記コマンドネットの実行処理が呼び出されると前記実行可否情報を参照することにより、記憶されている前記エラーコマンド情報の示す前記エラーコマンドに対して実行が認められている前記構成コマンドを特定し、特定された前記構成コマンドを前記コマンド実行部に実行させるコマンド処理部と
    を備えたことを特徴とするコマンドネット実行装置。
  2. 前記コマンド処理部は、
    前記実行可否情報を参照した場合には、記憶されている前記エラーコマンド情報の示す前記エラーコマンドに対して実行が認められていない前記構成コマンドをも特定し、特定された前記構成コマンドを実行履歴として記憶することを特徴とする請求項1記載のコマンドネット実行装置。
  3. 前記実行可否情報記憶部に記憶される前記実行可否情報は、
    各構成コマンドごとの前記実行の可否と対応付けられた情報であって、前記構成コマンドが前記実行履歴情報として記憶された場合にリカバリのための実行が必要かどうかの実行の要否を示すリカバリ実行要否情報を有し、
    前記コマンド処理部は、
    前記リカバリ実行要否情報を参照することによりリカバリのための実行が必要な前記構成コマンドを特定し、特定された前記構成コマンドを前記コマンド実行部に実行させることを特徴とする請求項2記載のコマンドネット実行装置。
  4. コンピュータを
    (1)実行される順番が予め定められた複数の構成コマンドから構成されるコマンドネットを周期的に実行するコマンド実行部、
    (2)ある前記構成コマンドが前記コマンド実行部による実行継続ができないエラーコマンドである場合の前記周期的実行における各構成コマンドごとの実行の可否を、各構成コマンドがエラーコマンドである場合について定めた実行可否情報を記憶する実行可否情報記憶部、
    (3)周期的に呼び出されることにより前記コマンドネットを前記コマンド実行部に周期的に実行させるとともに、いずれかの前記構成コマンドが前記エラーコマンドになると前記エラーコマンドを特定するエラーコマンド情報を記憶し、前記エラーコマンド情報が記憶されているときに前記コマンドネットの実行処理が呼び出されると前記実行可否情報を参照することにより、記憶されている前記エラーコマンド情報の示す前記エラーコマンドに対して実行が認められている前記構成コマンドを特定し、特定された前記構成コマンドを前記コマンド実行部に実行させるコマンド処理部
    として機能させるためのコマンドネット実行プログラム。
  5. コンピュータを
    (1)実行される順番が予め定められた複数の構成コマンドから構成されるコマンドネットを周期的に実行するコマンド実行部、
    (2)ある前記構成コマンドが前記コマンド実行部による実行継続ができないエラーコマンドである場合の前記周期的実行における各構成コマンドごとの実行の可否を、各構成コマンドがエラーコマンドである場合について定めた実行可否情報を記憶する実行可否情報記憶部、
    (3)周期的に呼び出されることにより前記コマンドネットを前記コマンド実行部に周期的に実行させるとともに、いずれかの前記構成コマンドが前記エラーコマンドになると前記エラーコマンドを特定するエラーコマンド情報を記憶し、前記エラーコマンド情報が記憶されているときに前記コマンドネットの実行処理が呼び出されると前記実行可否情報を参照することにより、記憶されている前記エラーコマンド情報の示す前記エラーコマンドに対して実行が認められている前記構成コマンドを特定し、特定された前記構成コマンドを前記コマンド実行部に実行させるコマンド処理部
    として機能させるためのコマンドネット実行プログラムを記録したコンピュータ読み取り可能な記録媒体。
JP2008005416A 2008-01-15 2008-01-15 コマンドネット実行装置、コマンドネット実行プログラム及びコマンドネット実行プログラムを記録したコンピュータ読み取り可能な記録媒体 Active JP4989496B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008005416A JP4989496B2 (ja) 2008-01-15 2008-01-15 コマンドネット実行装置、コマンドネット実行プログラム及びコマンドネット実行プログラムを記録したコンピュータ読み取り可能な記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008005416A JP4989496B2 (ja) 2008-01-15 2008-01-15 コマンドネット実行装置、コマンドネット実行プログラム及びコマンドネット実行プログラムを記録したコンピュータ読み取り可能な記録媒体

Publications (2)

Publication Number Publication Date
JP2009169579A true JP2009169579A (ja) 2009-07-30
JP4989496B2 JP4989496B2 (ja) 2012-08-01

Family

ID=40970691

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008005416A Active JP4989496B2 (ja) 2008-01-15 2008-01-15 コマンドネット実行装置、コマンドネット実行プログラム及びコマンドネット実行プログラムを記録したコンピュータ読み取り可能な記録媒体

Country Status (1)

Country Link
JP (1) JP4989496B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017046939A1 (ja) * 2015-09-18 2017-03-23 三菱電機株式会社 ジョブ管理装置及びジョブ管理方法及びジョブ管理プログラム
JP2018055285A (ja) * 2016-09-27 2018-04-05 富士ゼロックス株式会社 電子装置及び画像処理装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08272626A (ja) * 1995-03-30 1996-10-18 Hitachi Software Eng Co Ltd バッチジョブ処理方法
JPH0997188A (ja) * 1995-09-29 1997-04-08 Mitsubishi Electric Corp ジョブのスケジュール方式
JP2002245002A (ja) * 2001-02-14 2002-08-30 Jsr Corp 基幹情報処理のバッチジョブ管理方法
JP2003085021A (ja) * 2001-09-07 2003-03-20 Nippon Soken Holdings:Kk リカバリ・リスタート機能を備えたバッチ処理システム、リカバリ・リスタート機能を備えたバッチ処理システム用プログラム、及びそのプログラムを記録した記録媒体

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08272626A (ja) * 1995-03-30 1996-10-18 Hitachi Software Eng Co Ltd バッチジョブ処理方法
JPH0997188A (ja) * 1995-09-29 1997-04-08 Mitsubishi Electric Corp ジョブのスケジュール方式
JP2002245002A (ja) * 2001-02-14 2002-08-30 Jsr Corp 基幹情報処理のバッチジョブ管理方法
JP2003085021A (ja) * 2001-09-07 2003-03-20 Nippon Soken Holdings:Kk リカバリ・リスタート機能を備えたバッチ処理システム、リカバリ・リスタート機能を備えたバッチ処理システム用プログラム、及びそのプログラムを記録した記録媒体

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017046939A1 (ja) * 2015-09-18 2017-03-23 三菱電機株式会社 ジョブ管理装置及びジョブ管理方法及びジョブ管理プログラム
JPWO2017046939A1 (ja) * 2015-09-18 2017-09-14 三菱電機株式会社 ジョブ管理装置及びジョブ管理方法及びジョブ管理プログラム
US10346262B2 (en) 2015-09-18 2019-07-09 Mitsubishi Electric Corporation Job management apparatus, job management method and computer readable medium to generate and execute a retry job when an error occurs during a job step
JP2018055285A (ja) * 2016-09-27 2018-04-05 富士ゼロックス株式会社 電子装置及び画像処理装置

Also Published As

Publication number Publication date
JP4989496B2 (ja) 2012-08-01

Similar Documents

Publication Publication Date Title
TWI554875B (zh) 基於資源存取模式預測、診斷應用程式故障並從應用程式故障恢復
US7870424B2 (en) Parallel computer system
US9244719B2 (en) Batch processing system
JP6342070B2 (ja) ジョブ管理装置及びジョブ管理方法及びジョブ管理プログラム
US20110078499A1 (en) Business process error handling through process instance backup and recovery
JP5619179B2 (ja) 計算機システム、ジョブ実行管理方法、及びプログラム
US7975176B2 (en) Application failure recovery
CN112231403B (zh) 数据同步的一致性校验方法、装置、设备和存储介质
WO2014136172A1 (ja) データベース装置、プログラムおよびデータ処理方法
JP4992740B2 (ja) マルチプロセッサシステム、障害検出方法および障害検出プログラム
US7735090B2 (en) On demand software contract modification and termination in running component assemblies
JP4989496B2 (ja) コマンドネット実行装置、コマンドネット実行プログラム及びコマンドネット実行プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2015035007A (ja) コンピュータ、制御プログラム、及びダンプ制御方法
WO2012131868A1 (ja) 計算機システムの管理方法及び管理装置
US8806500B2 (en) Dynamically setting the automation behavior of resources
JP4757825B2 (ja) ファイル管理装置、プログラム、コンピュータ読み取り可能な記録媒体
JP5001703B2 (ja) システム設計検証装置
JP5340507B2 (ja) ジャーナル管理システム
GB2405228A (en) Verifying the order of a queue of work items
JP5921306B2 (ja) 情報処理装置および情報処理方法およびプログラム
CN112988365B (zh) 一种线程管理方法、装置、设备及介质
JP2006172065A (ja) チェックポイント採取方法、システム及びプログラム
JP2010181924A (ja) データベース管理方法および装置並びにその処理プログラム
CN106293897A (zh) 组件自动化调度系统
CN115562842A (zh) 一种基于Activiti的流程交互方法及系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101027

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120131

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120309

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120403

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120427

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4989496

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150511

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250