(57)【要約】【課題】  １ジョブに複数のジョブステップを有し、各ジョブステップに業務プログラムが実行されるジョブ処理を効率的に再起動（リラン）する。【解決手段】  ＪＣＬ（ジョブ制御言語）を用いて複数のジョブ処理を行うコンピュータを異常終了時に再起動する処理部として、起動したＪＣＬをコピーしてリラン用ＪＣＬを生成し通り番号を付与して記憶装置に保存するリラン用ＪＣＬ生成処理処理部６と、起動したＪＣＬの各ジョブ処理の開始前毎に、リラン用ＪＣＬ生成処理処理部６で記憶装置に保存したリラン用ＪＣＬを読み込み、正常終了したジョブ処理に関するＪＣＬ部分を削除して新たな通り番号を付与して記憶装置に上書き保存するリラン用ＪＣＬ編集処理部７と、ジョブ処理が異常終了すると、リラン用ＪＣＬ編集処理部７で記憶装置に上書き保存したリラン用ＪＣＬを通し番頭をキーに読み込み、内部リーダに出力することで起動するリラン起動処理処理部９とを設ける。【選択図】        図１
2006293582.tif 000002
【特許請求の範囲】
【請求項１】
ＪＣＬ（ジョブ制御言語）を用いて複数のジョブ処理を行うコンピュータを異常終了時に再起動するシステムであって、
起動したＪＣＬをコピーしてリラン用ＪＣＬを生成し記憶装置に保存するリラン用ＪＣＬ生成処理手段と、
上記ＪＣＬの各ジョブ処理の開始前毎に、上記リラン用ＪＣＬ生成処理手段で記憶装置に保存したリラン用ＪＣＬを読み込み、正常終了したジョブ処理に関するＪＣＬ部分を削除して上記記憶装置に上書き保存するリラン用ＪＣＬ編集処理手段と、
ジョブ処理が異常終了すると、上記リラン用ＪＣＬ編集処理手段で記憶装置に上書き保存したリラン用ＪＣＬを読み込み起動するリラン起動処理手段と
を有することを特徴とするジョブ自動リランシステム。
【請求項２】
ＪＣＬ（ジョブ制御言語）を用いて複数のジョブ処理を行うコンピュータを異常終了時に再起動するシステムであって、
起動したＪＣＬをコピーしてリラン用ＪＣＬを生成し、通し番号をキー付けして記憶装置に保存するリラン用ＪＣＬ生成手段と、
上記ＪＣＬの各ジョブ処理の開始前毎に、上記リラン用ＪＣＬ生成手段で記憶装置に保存したリラン用ＪＣＬを通し番号をキーにして読み込み、正常終了したジョブ処理に関するＪＣＬ部分を削除して順次に通し番号をキー付けして上記記憶装置に上書き保存するリラン用ＪＣＬ編集手段と、
ジョブ処理が異常終了すると、上記リラン用ＪＣＬ編集手段で記憶装置に保存した最近の通し番号がキー付けされたリラン用ＪＣＬを読み込み起動すると共に、新たにジョブ通し番号をキー付けしたリラン用ＪＣＬを生成して上記記憶装置に保存するリラン起動手段と
を有することを特徴とするジョブ自動リランシステム。
【請求項３】
請求項１もしくは請求項２のいずれかに記載のジョブ自動リランシステムであって、
上記リラン起動手段の上記リラン用ＪＣＬの起動回数をカウントするカウンタ手段と、
該カウンタ手段でカウントした起動回数と予め定められた上限値とを比較して、起動回数が上限値と同じとなれば、以降の上記リラン起動手段によるリラン動作を無効とするリラン制御手段と
を有することを特徴とするジョブ自動リランシステム。
【請求項４】
請求項３に記載のジョブ自動リランシステムであって、
上記カウンタ手段は、上記ＪＣＬのコメント行に設けられたリランカウンタ記述を実行して上記リラン用ＪＣＬの起動回数をカウントし、
上記リラン制御手段は、上記カウンタ手段がカウントした起動回数と、同じく上記ＪＣＬのコメント行に設けられた上記上限値との比較を行う
ことを特徴とするジョブ自動リランシステム。
【請求項５】
請求項１から請求項４のいずれかに記載のジョブ自動リランシステムであって、
上記リラン用ＪＣＬ生成処理手段は、上記ＪＣＬの先頭ジョブステップに挿入されたジョブ文を実行して上記リラン用ＪＣＬの生成および記憶装置への保存を行うことを特徴とするジョブ自動リランシステム。
【請求項６】
コンピュータを、請求項１から請求項５のいずれかに記載のジョブ自動リランシステムにおける各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムを自動的に再起動（リラン；ＲＥＲＵＮ）する技術に係わり、特に、複数のジョブ処理実行中に異常終了した際のリラン処理を効率的に行うのに好適なジョブ自動リラン技術に関するものである。
【背景技術】
【０００２】
銀行等の金融機関では大型コンピュータシステムを使用して多数の業務処理を行う。この業務処理中、コンピュータは、多数のジョブを連続処理している。このジョブ処理中に、種々の理由によりジョブ処理が中断する場合があり、このような中断の後は、ジョブ処理を再実行（リラン）する必要がある。
【０００３】
このようにジョブ処理中に異常終了したコンピュータシステムを再起動（リラン）する際には、正常に終了したステップまでの処理を飛ばし、障害の発生したステップから再実行することが有効であり、この際、障害の発生した状況に応じて、ジョブを制御するジョブ制御言語（ＪＣＬ）を組み直す必要がある。
【０００４】
このようなジョブ制御言語の組み直しを人手で行う場合、ジョブの先頭ジョブステップで異常終了した場合であるならば作業は容易であるが、途中ジョブステップで異常終了した場合は、作業者の作業が煩雑になり、人為的事故を引き起こす危険性が潜んでいる。
【０００５】
このような問題点に対処するための従来技術として、例えば、特許文献１に記載の技術（「ジョブ再実行方式」）がある。この技術は、リラン機能を有していないＪＣＬ（ジョブ制御言語）をリラン機能付きＪＣＬに自動的に修正するものである。
【０００６】
すなわち、リラン機能を有していないＪＣＬをリラン機能付きＪＣＬに修正するためには、ジョブ文の直後にリラン処理文を挿入すると共に、ステップ文（例えば「￥ＳＴＥＰ」，「￥ＳＯＲＴ」等）の直前にラベル（例えば「ＳＴＥＰ１」，「ＳＴＥＰ２」等）を挿入するなどの修正作業が必要であるが、従来、このような修正は、作業者が、リラン処理文やラベルを挿入するべき箇所の検索と挿入作業を手作業で行っており、多大な工数を必要とし、また修正精度が不十分であった。
【０００７】
特許文献１に記載の技術では、修正対象のＪＣＬを特定するためのジョブ制御言語名（Ａ）とリラン処理内容を特定するためのリランＩＤが入力手段から入力されると、当該ジョブ制御言語Ａを抽出して、そのジョブ文（例えば「￥ＪＯＢ Ａ」）の直後に、リランＩＤを含むリラン処理文（例えば「￥ＲＥＲＵＮ  ＩＤ＝ＣＨＫ００００２」）を自動的に挿入すると共に、予め定められたステップ文（例えば「￥ＳＴＥＰ  ＰＲＯＧ１」、「￥ＳＯＲＴ」、「￥ＳＴＥＰ  ＰＲＯＧ３」）の直前に、予め定められたラベル（例えば「￥ＳＴＥＰ１」、「￥ＳＴＥＰ２」、「￥ＳＴＥＰ３」）を自動的に挿入することで、リラン機能を有していないＪＣＬをリラン機能付きＪＣＬに自動的に修正する。
【０００８】
このようにして、特許文献１に記載の技術では、リラン機能を有していないジョブ制御言語（ＪＣＬ）を、リラン機能を有するＪＣＬに自動的に修正することができ、この技術によれば、容易にリラン機能を付加する修正を行えると共に、人為的作業に起こりがちなミスがなく、高い修正精度を得ることができる。
【０００９】
また、特許文献２においては、異常終了したジョブ処理のみならず、正常終了したジョブ処理の、任意の箇所からジョブを再開することを可能とする技術が記載されている。しかし、この特許文献２に記載の技術は、ジョブリランの実行単位が１ジョブ単位であり、例えば、ジョブ内に複数ジョブステップが有り、その途中ジョブステップからのリランを行うことに関しては考慮されておらず、ジョブ処理は、１ジョブステップを１ジョブとして分割する必要がある。
【００１０】
これに対して、上述の特許文献１に記載の技術は、ジョブの途中ジョブステップからリランができる。しかし、異常終了の障害原因が致命的でリランしても回復不可能な場合、リラン処理を繰り返すことになり、無限ループに陥る問題がある。また、同一ジョブ名称のジョブが並列処理されている場合や、単にジョブ名称が異なるだけで内容は実質的に同一のジョブが並列処理されている場合には、ジョブの特定ができず対処できない。
【００１１】
【特許文献１】特許第３２３１５７８号公報
【特許文献２】特開２００２−３２８８１０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
解決しようとする問題点は、従来の技術では、同一ジョブ名称のジョブが並列処理されている場合および単にジョブ名称が異なるだけで内容は実質的に同一のジョブが並列処理されている場合にはジョブの特定ができない点と、異常終了の障害原因が致命的でリランしても回復不可能な場合には無限ループに陥る問題を回避することができない点である。
【００１３】
本発明の目的は、これら従来技術の課題を解決し、複数のジョブが並列処理されるコンピュータシステムにおいて、同一ジョブ名称のジョブが並列処理されている場合や、単にジョブ名称が異なるだけで内容は実質的に同一のジョブが並列処理されている場合にも、異常終了したジョブのリランを自動で高信頼に実行することを可能とすることである。
【課題を解決するための手段】
【００１４】
上記目的を達成するため、本発明は、（１）ＪＣＬ（ジョブ制御言語）を用いて複数のジョブ処理を行うコンピュータを異常終了時に再起動するシステムであって、起動したＪＣＬをコピーしてリラン用ＪＣＬを生成し記憶装置に保存するリラン用ＪＣＬ生成処理処理部６と、起動したＪＣＬの各ジョブ処理の開始前毎に、リラン用ＪＣＬ生成処理処理部６で記憶装置に保存したリラン用ＪＣＬを読み込み、正常終了したジョブ処理に関するＪＣＬ部分を削除して記憶装置に上書き保存するリラン用ＪＣＬ編集処理部７と、ジョブ処理が異常終了すると、リラン用ＪＣＬ編集処理部７で記憶装置に上書き保存したリラン用ＪＣＬを読み込み起動するリラン起動処理処理部９とを有することを特徴とする。また、リラン用ＪＣＬ生成処理部６は、生成したリラン用ＪＣＬを、通し番号をキー付けして記憶装置に保存し、リラン用ＪＣＬ編集処理部７は、通し番号をキーにして、記憶装置からリラン用ＪＣＬを読み込み、新たな通し番号をキー付けして記憶装置に上書き保存し、リラン起動処理部９は、ジョブ処理が異常終了すると、最近の通し番号がキー付けされたリラン用ＪＣＬを読み込み起動すると共に、新たなジョブ通し番号をキー付けして再リラン用ＪＣＬを生成し記憶装置に保存する。さらに、リランカウンタ手段において、リラン起動処理部９のリラン用ＪＣＬの起動回数をカウントして、リラン制御手段は、このカウントしたリラン回数と予め定められた上限値とを比較して、リラン回数が上限値と同じとなれば、以降のリラン起動処理部９によるリラン動作を無効とする。
【発明の効果】
【００１５】
本発明によれば、（１）ジョブの途中ジョブステップで異常終了した場合に、その途中ジョブステップから、操作員の介入無しにリランを自動で実行でき、異常終了の障害原因がタイミング的な場合に、ジョブ処理を即座に救うことができる。また、（２）ジョブのリラン用ＪＣＬをジョブ通し番号により管理し、ジョブの並行処理時にリラン対象のジョブを識別できるので、同一ジョブ名称のジョブが並行処理されている場合や、単なるジョブ名称が異なるだけで内容は実質同一ジョブが並行処理されている場合にも、ジョブ通し番号によりジョブの特定が容易となり、リラン対象のジョブのリランを自動で実行できる。さらに、（３）リラン回数の上限値をジョブ単位に設定できるので、異常終了の障害原因が致命的でリランしても回復不可能な場合には、ジョブ処理を中止することができ、無限ループに陥る事象を防止できる。
【発明を実施するための最良の形態】
【００１６】
以下、図を用いて本発明を実施するための最良の形態例を説明する。図１は、本発明に係わるジョブ自動リランシステムの構成例を示すブロック図であり、図２は、図１におけるジョブ自動リランシステムのリラン処理動作の概略例を示す説明図、図３は、図１におけるジョブ自動リランシステムの具体的なリラン処理動作例を示す説明図、図４は、図３におけるリラン用ＪＣＬ生成処理部の処理動作例を示すフローチャート、図５は、図３におけるリラン用ＪＣＬ編集処理部を含むＡ業務処理部の処理動作例を示すフローチャート、図６は、図３におけるリラン用ＪＣＬ編集処理部を含むＢ業務処理部の処理動作例を示すフローチャート、図７は、図３におけるリラン起動処理部の処理動作例を示すフローチャートである。
【００１７】
本発明に係わるジョブ自動リランシステムは、図１におけるホスト計算機１に設けられるものであり、このホスト計算機１は、ＣＰＵ（Central Processing Unit）や主記憶装置（主メモリ）、表示装置、入力装置、外部記憶装置、周辺装置等を具備した構成からなり、周辺装置としての光ディスク駆動装置等を介してＣＤ−ＲＯＭ等の記憶媒体に記録されたプログラムやデータを外部記憶装置内にインストールした後、この外部記憶装置から主メモリに読み込みＣＰＵで処理することにより、本発明に係わるジョブ自動リランシステムの各処理機能を実現する。
【００１８】
図１において、２はＯＳ（Operating System）、３はジョブ管理システム、４は本番ＪＣＬライブラリ、５はリラン用ＪＣＬライブラリ、６はリラン用ＪＣＬ生成処理部、７はリラン用ＪＣＬ編集処理部、８はリラン判定処理部、９はリラン起動処理部であり、リラン用ＪＣＬ生成処理部６とリラン用ＪＣＬ編集処理部７、リラン判定処理部８、リラン起動処理部９のそれぞれは、ＸＹＺジョブ１０内の機能として設けられ、本番ＪＣＬライブラリ４とリラン用ＪＣＬライブラリ５は記憶装置内に設けられている。
【００１９】
ホスト計算機１は、ＪＣＬ（ジョブ制御言語）を用いた複数のジョブ処理を行い、この複数のジョブ処理が可能なホスト計算機１では、ＯＳ２配下のジョブ管理システム３が、ＯＳ２を介して、ＸＹＺジョブ１０を起動する。
【００２０】
このＸＹＺジョブ１０内のリラン用ＪＣＬ生成処理部６は、本番ジョブのＪＣＬが格納されている本番ＪＣＬライブラリ４からＸＹＺジョブＪＣＬ４ａを読み込み、リラン用ＪＣＬ５ａを生成して、リラン用ＪＣＬライブラリ５へ保存する。
【００２１】
ＸＹＺジョブ１０の処理が続行される中で、リラン用ＪＣＬ編集処理部７は、随時、リラン用ＪＣＬ５ａを編集し、置き換える。
【００２２】
何らかの原因によりジョブが異常終了した場合、リラン判定処理部８によりリラン実行の有無を判定し、リラン実行可であるならば、リラン起動処理部９により、リラン用ＪＣＬ５ａを読込み、内部リーダに出力することで、リラン用ＪＣＬ５ａを起動する。
【００２３】
このようなジョブリラン処理の概略を、図２を用いて説明する。図２において、本番ジョブ（ＪＣＬ）２１の第１ジョブステップ２１ａは正常終了したが、第２ジョブステップ２１ｂで異常終了した場合は、リラン用ＪＣＬ２２が自動で起動される。
【００２４】
また、本番ジョブ（ＪＣＬ）２１の第３ジョブステップ２１ｃで異常終了した場合は、リラン用ＪＣＬ２３が自動で起動される。これにより、ジョブ内の或るジョブステップで異常終了した時に、そのジョブステップから自動でリランできることになる。
【００２５】
次に、図３を用いて、図１のシステム構成図で説明した各処理部の具体的な処理内容を説明する。
【００２６】
図１のリランＪＣＬ生成処理部６は、図３におけるリラン用ＪＣＬ生成処理６ａの処理を行い、このリラン用ＪＣＬ生成処理６ａは１つのジョブステップとなる。
【００２７】
図１のリラン用ＪＣＬ編集処理部７は、図３におけるリラン用ＪＣＬ編集処理３２ａの処理を行い、Ａ業務処理３２でＡ業務固有処理３２ｂを処理する前に、リラン用ＪＣＬ編集処理部７が、このリラン用ＪＣＬ編集処理３２ａを行う。
【００２８】
これと同様に、Ｂ業務処理３３においてもＢ業務固有処理３３ｂを処理する前に、リラン用ＪＣＬ編集処理部７が、このリラン用ＪＣＬ編集処理３３ａを行う。このように、リラン用ＪＣＬ編集処理３２ａと３３ａは、リラン用ＪＣＬ編集処理部７が行うものであり、実体は同一である。
【００２９】
図１のリラン起動処理部９は、図３におけるリラン起動処理３４を行い、このリラン起動処理３４も１つのジョブステップとなる。
【００３０】
図１のリラン判定処理部８は、図３におけるリラン判定処理３４ａを行い、このリラン判定処理３４ａは、リラン起動処理部９によるリラン起動処理３４に含まれている。
【００３１】
リラン起動処理３４は、先行ジョブステップが異常終了した時のみ起動するようにＪＣＬ上で設定する。
【００３２】
以下、このような図３に示す処理の詳細を、図４〜図７に示す各フローチャートを用いて説明する。
【００３３】
図４に示す処理（リラン用ＪＣＬ生成処理４０）は、図３のリラン用ＪＣＬ生成処理６ａの詳細を示しており、まず、図３におけるＸＹＺジョブＪＣＬ４ａからパラメータとして渡されたジョブ名称（'ＸＹＺジョブ'）で、当該ＸＹＺジョブＪＣＬ４ａを本番ＪＣＬライブラリ３から読み込みコピーする（ステップ４１）。
【００３４】
次に、コピーしたＸＹＺジョブＪＣＬ４ａから、コメント行であるリランカウンタをリセットし（ステップ４２）、本ジョブステップの部分（「ＳＴＥＰ０００」）を削除してリラン用ＪＣＬ（５ａ）を生成する（ステップ４３）。
【００３５】
そして、自分自身のジョブのジョブ通し番号αを取得し（ステップ４４）、生成したＸＹＺジョブのリラン用ＪＣＬ５ａを、ジョブ通し番号αをキー５ａａとして、リラン用ＪＣＬライブラリ５に保存する（ステップ４５）。
【００３６】
図５に示す処理（Ａ業務処理５０）は、図３のＡ業務処理３２の詳細を示しており、リラン用ＪＣＬ編集処理（ステップ５１）は図３のリラン用ＪＣＬ編集処理３２ａに対応し、Ａ業務固有処理（ステップ５６）は図３のＡ業務固有処理３２ｂに対応している。
【００３７】
ここでは、本来のＡ業務固有処理（ステップ５６）の前に、リラン用ＪＣＬ編集処理（ステップ５１）を実行する。このリラン用ＪＣＬ編集処理（ステップ５１）では、まず、自分自身のジョブのジョブ通し番号αを取得し（ステップ５２）、ＸＹＺジョブのリラン用ＪＣＬ５ａを、ジョブ通し番号αをキー５ａａとして、リラン用ＪＣＬライブラリ５から読み込む（ステップ５３）。
【００３８】
次に、ＪＣＬからパラメータとして渡されたジョブステップ名称（「ＳＴＥＰ００１」）により、先行ジョブステップの部分を削除する（ステップ５４）。この場合は、先行ジョブステップは無いため、削除対象も無い。尚、ステップ５１におけるリラン用ＪＣＬ編集処理は、汎用的なサブモジュールとして作られているので、削除対象が無い場合はスキップする。
【００３９】
そして、このようにして編集したリラン用ＪＣＬをリラン用ＪＣＬライブラリ５のリラン用ＪＣＬ５ａと置き換える（ステップ５５）。
【００４０】
図６に示す処理（Ｂ業務処理６０）は、図３のＢ業務処理３３の詳細を示しており、リラン用ＪＣＬ編集処理（ステップ６１）は図３のリラン用ＪＣＬ編集処理３２ａに対応し、Ｂ業務固有処理（ステップ６６）は図３のＢ業務固有処理３３ｂに対応している。
【００４１】
図６の処理内容は、図５における処理と同様で、ここでも、本来のＢ業務固有処理（ステップ６６）の前に、リラン用ＪＣＬ編集処理（ステップ６１）を実行する。そして、このリラン用ＪＣＬ編集処理（ステップ６１）では、まず、自分自身のジョブのジョブ通し番号（例えばβ）を取得し（ステップ６２）、次に、ＸＹＺジョブのリラン用ＪＣＬ５ａを、ジョブ通し番号αをキー５ａａとして、リラン用ＪＣＬライブラリ５から読み込む（ステップ６３）。
【００４２】
さらに、ＪＣＬからパラメータとして渡されたジョブステップ名称（「ＳＴＥＰ００２」）により、先行ジョブステップの部分を削除する（ステップ６４）。この場合は、先行ジョブステップであるＡ業務処理（「ＳＴＥＰ００１」）は正常終了しているので、その部分を削除する。
【００４３】
そして、このようにして編集したリラン用ＪＣＬｂを、リラン用ＪＣＬライブラリ５のリラン用ＪＣＬ５ａに上書きして置き換える（ステップ６５）。
【００４４】
図７に示す処理（リンク起動処理７０）は、図３のリンク起動処理３４の詳細を示しており、このリラン起動処理は、先行ジョブステップであるＡ業務処理３２，５０もしくはＢ業務処理３３，６０が異常終了した場合のみに実行される。
【００４５】
ここで、Ｂ業務処理３３，６０で異常終了したと仮定すると、リラン起動処理７０においては、まず、自分自身のジョブのジョブ通し番号（α）を取得し（ステップ７１）、ＸＹＺジョブのリラン用ＪＣＬ５ａを、ジョブ通し番号α５ａａをキーとして、リラン用ＪＣＬライブラリ５から読み込む（ステップ７２）。
【００４６】
このようにして読み込んだリラン用ＪＣＬ５ａには、コメント行としてリランカウンタがあり、リランカウンタを用いて、１インクリメント（＋１）し起動回数としてカウントアップする（ステップ７３）。また、読み込んだＪＣＬ５ａには、別にリラン回数上限値を設けており、カウント値（起動回数）とリラン回数上限値とを比較する（ステップ７４）。
【００４７】
そして、リランカウンタを用いてカウントした起動回数がリラン回数上限値を超えたならば、そのまま処理を終了し、また、起動回数がリラン回数上限値以下ならば、リラン用ＪＣＬ５ａを内部リーダに出力することで、リラン用ＪＣＬ５ａを起動する（ステップ７５）。
【００４８】
さらに、内部リーダに出力したジョブのジョブ通し番号βを取得し（ステップ７６）、リランしたＸＹＺジョブのＪＣＬ５ｂを、ジョブ通し番号β５ｂｂをキーとして、リラン用ＪＣＬライブラリ５に再保存する（ステップ７７）。
【００４９】
以上、図１〜図７を用いて説明したように、本例では、ＪＣＬ（ジョブ制御言語）を用いて複数のジョブ処理を行うコンピュータを異常終了時に再起動する技術として、起動したＪＣＬをコピーしてリラン用ＪＣＬを生成し記憶装置に保存するリラン用ＪＣＬ生成処理処理部６と、起動したＪＣＬの各ジョブ処理の開始前毎に、リラン用ＪＣＬ生成処理処理部６で記憶装置に保存したリラン用ＪＣＬを読み込み、正常終了したジョブ処理に関するＪＣＬ部分を削除して記憶装置に上書き保存するリラン用ＪＣＬ編集処理部７と、ジョブ処理が異常終了すると、リラン用ＪＣＬ編集処理部７で記憶装置に上書き保存したリラン用ＪＣＬを読み込み内部リーダに出力することで起動するリラン起動処理処理部９とを設けた構成としている。
【００５０】
また、リラン用ＪＣＬ生成処理部６は、生成したリラン用ＪＣＬを、通し番号をキー付けして記憶装置に保存し、リラン用ＪＣＬ編集処理部７は、通し番号をキーにして、記憶装置からリラン用ＪＣＬを読み込み、新たな通し番号をキー付けして記憶装置に上書き保存し、リラン起動処理部９は、ジョブ処理が異常終了すると、最近の通し番号がキー付けされたリラン用ＪＣＬを読み込み起動すると共に、新たなジョブ通し番号をキー付けして再リラン用ＪＣＬを生成し記憶装置に保存する。
【００５１】
さらに、リラン起動処理部９は、リラン起動処理部９のリラン用ＪＣＬの起動回数をカウントするカウンタ機能と、このカウンタ機能でカウントしたリラン回数と予め定められた上限値とを比較して、リラン回数が上限値と同じとなれば、自リラン起動処理部９によるリラン動作を無効とする。リラン制御機能を有する。
【００５２】
尚、リラン用ＪＣＬ生成処理部６は、起動するＪＣＬ（ジョブ制御言語）のジョブステップの先頭に挿入されているプログラムをコンピュータ処理して実行することで実現される。また、リラン用ＪＣＬ編集処理部７は、各ジョブステップの業務プログラム内の先頭で、上述のリラン用ＪＣＬ生成処理部６が保存したリラン用ＪＣＬを、上書きして置き換える。
【００５３】
これにより、１ジョブに複数のジョブステップを有し、各ジョブステップに業務プログラムが実行されるジョブ処理を効率的に再起動（リラン）することができる。すなわち、本例の技術によれば、ジョブの途中ジョブステップで異常終了した場合に、その途中ジョブステップから、操作員の介入無しにリランを自動で実行でき、異常終了の障害原因がタイミング的な場合に、ジョブ処理を即座に救うことができる。
【００５４】
また、ジョブのリラン用ＪＣＬをジョブ通し番号により管理し、ジョブの並行処理時にリラン対象のジョブを識別できるので、同一ジョブ名称のジョブが並行処理されている場合や、単なるジョブ名称が異なるだけで内容は実質同一ジョブが並行処理されている場合にも、ジョブ通し番号によりジョブの特定が容易となり、リラン対象のジョブのリランを自動で実行できる。
【００５５】
さらに、リラン回数の上限値をジョブ単位に設定できるので、異常終了の障害原因が致命的でリランしても回復不可能な場合には、ジョブ処理を中止することができ、無限ループに陥る事象を防止できる。
【００５６】
尚、本発明は、図１〜図７を用いて説明した例に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能である。例えば、本例のホスト計算機１の構成例として、キーボードや光ディスクの駆動装置の無いコンピュータ構成としても良い。また、本例では、光ディスクを記録媒体として用いているが、ＦＤ（Flexible Disk）等を記録媒体として用いることでも良い。また、プログラムのインストールに関しても、通信装置を介してネットワーク経由でプログラムをダウンロードしてインストールすることでも良い。
【図面の簡単な説明】
【００５７】
【図１】本発明に係わるジョブ自動リランシステムの構成例を示すブロック図である。
【図２】図１におけるジョブ自動リランシステムのリラン処理動作の概略例を示す説明図である。
【図３】図１におけるジョブ自動リランシステムの具体的なリラン処理動作例を示す説明図である。
【図４】図３におけるリラン用ＪＣＬ生成処理部の処理動作例を示すフローチャートである。
【図５】図３におけるリラン用ＪＣＬ編集処理部を含むＡ業務処理部の処理動作例を示すフローチャートである。
【図６】図３におけるリラン用ＪＣＬ編集処理部を含むＢ業務処理部の処理動作例を示すフローチャートである。
【図７】図３におけるリラン起動処理部の処理動作例を示すフローチャートである。
【符号の説明】
【００５８】
１：ホスト計算機、２：ＯＳ（Operating System）、３：ジョブ管理システム、４：本番ＪＣＬライブラリ、４ａ：ＸＹＺジョブＪＣＬ、５：リラン用ＪＣＬライブラリ、５ａ：リラン用ＪＣＬ、５ａａ：ジョブ通し番号α、５ｂｂ：ジョブ通し番号、６：リラン用ＪＣＬ生成処理部、６ａ：リラン用ＪＣＬ生成処理、７：リラン用ＪＣＬ編集処理部、８：リラン判定処理部、９：リラン起動処理部、１０：ＸＹＺジョブ、２１：本番ＪＣＬ、２１ａ：第１ジョブステップ、２１ｂ：第２ジョブステップ、２１ｃ：第３ジョブステップ、２１ｄ：第ｎジョブステップ、２２：リラン用ＪＣＬ（第２ジョブステップで異常終了した場合）、２２ｂ：第２ジョブステップ、２２ｃ：第３ジョブステップ、２２ｄ：第ｎジョブステップ、２３：リラン用ＪＣＬ（第３ジョブステップで異常終了した場合）、２３ｃ：第３ジョブステップ、２３ｄ：第ｎジョブステップ、３２：Ａ業務処理、３２ａ：リラン用ＪＣＬ編集処理、３２ｂ：Ａ業務固有処理、３３：Ｂ業務処理、３３ａ：リラン用ＪＣＬ編集処理、３３ｂ：Ｂ業務固有処理、３４：リラン起動処理、３４ａ：リラン判定処理。
【図１】
2006293582.tif 000003
【図２】
2006293582.tif 000004
【図３】
2006293582.tif 000005
【図４】
2006293582.tif 000006
【図５】
2006293582.tif 000007
【図６】
2006293582.tif 000008
【図７】
2006293582.tif 000009