(57)【特許請求の範囲】
【請求項１】
メインジョブ実行手段とサブジョブ実行手段とを備えた計算機システムであって、
前記メインジョブ実行手段は、ＪＣＬで指定されるサブジョブを起動するサブジョブ起動手段を含み、
メインジョブとは異なるプログラムからメインジョブを識別するデータとサブジョブのＪＣＬとが指定され、かつ、所定条件が成立すると、ＪＣＬで指定されるサブジョブを前記サブジョブ起動手段に起動させるメインジョブ指定サブジョブ起動手段を備え、
サブジョブの終了状態を示す情報を含むサブジョブ毎のエントリが設定されるサブジョブ管理テーブルを備え、
前記サブジョブ実行手段は、サブジョブを開始するときに、サブジョブを識別するデータとサブジョブが属するメインジョブを識別するデータとを前記サブジョブ管理テーブルのエントリに設定するとともに、当該エントリにおける終了状態を示す情報を未終了に設定するジョブ開始手段を含み、
メインジョブの実行状態を示す情報を含むメインジョブ毎のエントリが設定されるメインジョブ管理テーブルを備え、
前記メインジョブ実行手段は、メインジョブを開始するときに、ジョブを識別するデータを前記メインジョブ管理テーブルのエントリに設定するとともに、当該エントリにおける実行状態を示す情報を実行中に設定するジョブ開始手段を含み、
前記サブジョブ起動手段は、サブジョブを起動するときに、前記メインジョブ管理テーブルにおけるサブジョブが属するメインジョブのエントリに、当該メインジョブに属するサブジョブを識別するデータを設定し、
メインジョブの実行状態を、前記メインジョブ管理テーブルに設定されているデータを参照して検索するメインジョブ検索手段を備え、
前記メインジョブ指定サブジョブ起動手段は、前記メインジョブ検索手段を用いてメインジョブの実行状態を検索し、メインジョブの実行状態にもとづいてサブジョブをサブジョブ起動手段に起動させるか否か決定する
ことを特徴とする計算機システム。
【請求項２】
メインジョブを識別するデータ、即時待合せか非同期待合せかの選択、およびサブジョブを識別するデータが指定されたことに応じて、当該メインジョブに属するサブジョブの待合せを依頼するメインジョブ指定サブジョブ待合せ手段を備え、
メインジョブ実行手段は、前記メインジョブ指定サブジョブ待合せ手段の依頼に応じて、サブジョブが終了していない場合には、即時待合せが選択されているときには未終了である旨を返却し、非同期待合せが選択されている場合には、非同期待合せがなされている旨を返却するサブジョブ待合せ手段を含む
請求項１記載の計算機システム。
【請求項３】
サブジョブ待合せ手段は、サブジョブについての非同期待合せがなされている旨を返却する場合に、当該サブジョブのエントリに、非同期待ち合わせセマフォを示すデータを設定する
請求項２記載の計算機システム。
【請求項４】
メインジョブ指定サブジョブ起動手段は、メインジョブが実行中であることを条件としてサブジョブをサブジョブ起動手段に起動させる
請求項１から請求項３のうちのいずれか１項に記載の計算機システム。
【請求項５】
メインジョブ指定サブジョブ起動手段は、指定されたサブジョブ起動条件が成立すると、サブジョブをサブジョブ起動手段に起動させる
請求項１から請求項４のうちのいずれか１項に記載の計算機システム。
【請求項６】
メインジョブ実行手段とサブジョブ実行手段とサブジョブの終了状態を示す情報を含むサブジョブ毎のエントリが設定されるサブジョブ管理テーブルとメインジョブの実行状態を示す情報を含むメインジョブ毎のエントリが設定されるメインジョブ管理テーブルとを備えた計算機システムにおけるジョブステップ並列処理方法であって、
メインジョブ指定サブジョブ起動手段が、メインジョブとは異なるプログラムからメインジョブを識別するデータとサブジョブのＪＣＬとが指定された場合に、所定条件が成立すると、当該サブジョブをサブジョブ起動手段に起動させ、
前記サブジョブ実行手段が、サブジョブを開始するときに、サブジョブを識別するデータとサブジョブが属するメインジョブを識別するデータとを前記サブジョブ管理テーブルのエントリに設定するとともに、当該エントリにおける終了状態を示す情報を未終了に設定し、
前記メインジョブ実行手段が、メインジョブを開始するときに、ジョブを識別するデータを前記メインジョブ管理テーブルのエントリに設定するとともに、当該エントリにおける実行状態を示す情報を実行中に設定し、
前記サブジョブ起動手段が、サブジョブを起動するときに、前記メインジョブ管理テーブルにおけるサブジョブが属するメインジョブのエントリに、当該メインジョブに属するサブジョブを識別するデータを設定し、
メインジョブ検索手段が、メインジョブの実行状態を、前記メインジョブ管理テーブルに設定されているデータを参照して検索し、
前記メインジョブ指定サブジョブ起動手段が、メインジョブ検索手段を用いてメインジョブの実行状態を検索し、メインジョブの実行状態にもとづいてサブジョブをサブジョブ起動手段に起動させるか否か決定する
ことを特徴とするジョブステップ並列処理方法。
【請求項７】
メインジョブ指定サブジョブ待合せ手段が、メインジョブを識別するデータ、即時待合せか非同期待合せかの選択、およびサブジョブを識別するデータが指定されたことに応じて、サブジョブが終了していない場合には、即時待合せが選択されているときには未終了であることを示す情報を出力し、
メインジョブ実行手段が、非同期待合せが選択されている場合には、非同期待合せがなされていることを示す情報を出力する
請求項６記載のジョブステップ並列処理方法。
【請求項８】
メインジョブ指定サブジョブ起動手段が、メインジョブが実行中であることを条件としてサブジョブをサブジョブ起動手段に起動させる
請求項６または請求項７記載のジョブステップ並列処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機システム、および計算機システムにおけるオペレーティングシステムのジョブステップ並列処理方法に関する。
【背景技術】
【０００２】
計算機システムにおいて、一般に１つのジョブは複数のジョブステップで構成される。また、大量の業務ジョブを実行可能な計算機システムにおいて、計算機システムの運用を開始した後、業務ジョブの運用を変更せずに、複数の業務ジョブに共通する新たな処理を追加したいという要望がしばしば発生する。一例として、業務ジョブからローカルな記憶装置（例えば、磁気テープ装置）に出力した業務データを、バックアップとして遠隔地にある記憶装置に自動的に出力したいという要望がある。
【０００３】
追加される新たな処理（追加処理）は、一般に業務ジョブとの関連性が高い。従って、追加処理を実現するために独立したジョブを投入することは効率的ではない。例えば、業務ジョブの実行結果（デリバリ）と独立したジョブのデリバリとの整合を図るための処理や操作が必要になる可能性がある。
【０００４】
新たな処理を追加したい場合に、サブジョブを追加することによって対処することも考えられる（例えば、特許文献１参照。）。
【０００５】
図１２は、特許文献１に記載された計算機システムの構成を示すブロック図である。図１２に示す構成では、計算機システム（コンピュータシステム）１００は、メインジョブ実行手段１０９Ａとサブジョブ実行手段１１０Ａとを含む。メインジョブ実行手段１０９Ａは、ジョブ制御言語（ＪＣＬ：Job Control Language）格納ファイル１１３に格納されているＪＣＬにもとづいて処理を実行する。
【０００６】
メインジョブ実行手段１０９Ａにおいて、ジョブ開始手段１０９１は、業務ジョブ（メインジョブ）の開始処理を行いジョブを生成する。ジョブステップ実行手段１０９３は、ジョブのジョブステップを実行する。また、ジョブステップ実行手段１０９３は、メインジョブデリバリ保存手段（例えば、記憶装置）１１２にデリバリを出力する。ジョブ終了手段１０９５は、ジョブの終了処理を行う。サブジョブ起動手段１０９２は、ＪＣＬにサブジョブ開始文が含まれていた場合には、サブジョブを起動する。サブジョブ待合せ手段１０９４は、メインジョブと関連するサブジョブの終了を待ち合わせる処理を行う。
【０００７】
サブジョブ実行手段１１０Ａにおいて、ジョブ開始手段１１０１は、サブジョブ起動手段１０９２から制御を渡されてサブジョブの開始処理を行いサブジョブを生成する。ジョブステップ実行手段１１０２は、サブジョブのジョブステップを実行する。また、ジョブステップ実行手段１１０２は、サブジョブデリバリ保存手段（例えば、記憶装置）１１１にデリバリを出力する。ジョブ終了手段１１０３は、サブジョブの終了処理を行う。サブジョブ終了通知手段１１０４は、サブジョブ終了後に制御が渡されて、サブジョブが終了したことをサブジョブ待合せ手段１０９４に通知する。
【０００８】
なお、サブジョブが終了したときに、メインジョブ実行手段１０９Ａまたはサブジョブ実行手段１１０Ａにおいて、サブジョブ実行手段１１０Ａにおけるジョブステップ実行手段１１０２によって作成されたサブジョブのデリバリをメインジョブのデリバリと結合する処理が行われる。
【０００９】
図１２に示すコンピュータシステム１００では、ＪＣＬ記述に従ってジョブステップが逐次実行されるが、特許文献１に記載されているように、ＪＣＬに記述されている１つのジョブにおけるジョブステップを並列に実行することができる。
【００１０】
【特許文献１】特開平１０−２８３２０１号公報（図１）
【発明の開示】
【発明が解決しようとする課題】
【００１１】
新たな処理を追加したい場合にサブジョブによって対処する場合には、ＪＣＬ記述に新たな処理（サブジョブ記述）に関する記述をあらかじめ追加しておく必要がある。特に、複数の業務ジョブに共通する新たな処理を追加する場合には、既に存在する全ての業務ジョブのＪＣＬを修正する作業が発生する。新たな記述の追加は、安定稼働する業務ジョブに内容を変更することに伴うリスクを生じさせたり、修正コストを発生させたりする。
【００１２】
そこで、本発明は、メインジョブのＪＣＬを変更することなく、サブジョブに相当する新たなジョブステップを追加し、追加されたジョブステップを、メインジョブに属するジョブステップとして並列実行することができる計算機システムおよびジョブステップ並列処理方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明による計算機システムは、メインジョブ実行手段とサブジョブ実行手段とを備えた計算機システムであって、メインジョブ実行手段は、ＪＣＬで指定されるサブジョブを起動するサブジョブ起動手段を含み、メインジョブとは異なるプログラムからメインジョブを識別するデータとサブジョブのＪＣＬとが指定され、かつ、所定条件が成立すると、ＪＣＬで指定されるサブジョブをサブジョブ起動手段に起動させるメインジョブ指定サブジョブ起動手段を備え、サブジョブの終了状態を示す情報を含むサブジョブ毎のエントリが設定されるサブジョブ管理テーブルを備え、サブジョブ実行手段は、サブジョブを開始するときに、サブジョブを識別するデータとサブジョブが属するメインジョブを識別するデータとをサブジョブ管理テーブルのエントリに設定するとともに、当該エントリにおける終了状態を示す情報を未終了に設定するジョブ開始手段を含み、メインジョブの実行状態を示す情報を含むメインジョブ毎のエントリが設定されるメインジョブ管理テーブルを備え、メインジョブ実行手段は、メインジョブを開始するときに、ジョブを識別するデータをメインジョブ管理テーブルのエントリに設定するとともに、当該エントリにおける実行状態を示す情報を実行中に設定するジョブ開始手段を含み、サブジョブ起動手段は、サブジョブを起動するときに、メインジョブ管理テーブルにおけるサブジョブが属するメインジョブのエントリに、当該メインジョブに属するサブジョブを識別するデータを設定し、メインジョブの実行状態を、メインジョブ管理テーブルに設定されているデータを参照して検索するメインジョブ検索手段を備え、メインジョブ指定サブジョブ起動手段は、メインジョブ検索手段を用いてメインジョブの実行状態を検索し、メインジョブの実行状態にもとづいてサブジョブをサブジョブ起動手段に起動させるか否か決定することを特徴とする。
【００１４】
本発明によるジョブステップ並列処理方法は、メインジョブ実行手段とサブジョブ実行手段とサブジョブの終了状態を示す情報を含むサブジョブ毎のエントリが設定されるサブジョブ管理テーブルとメインジョブの実行状態を示す情報を含むメインジョブ毎のエントリが設定されるメインジョブ管理テーブルとを備えた計算機システムにおけるジョブステップ並列処理方法であって、メインジョブ指定サブジョブ起動手段が、メインジョブとは異なるプログラムからメインジョブを識別するデータとサブジョブのＪＣＬとが指定された場合に、所定条件が成立すると、当該サブジョブをサブジョブ起動手段に起動させ、サブジョブ実行手段が、サブジョブを開始するときに、サブジョブを識別するデータとサブジョブが属するメインジョブを識別するデータとをサブジョブ管理テーブルのエントリに設定するとともに、当該エントリにおける終了状態を示す情報を未終了に設定し、メインジョブ実行手段が、メインジョブを開始するときに、ジョブを識別するデータをメインジョブ管理テーブルのエントリに設定するとともに、当該エントリにおける実行状態を示す情報を実行中に設定し、サブジョブ起動手段が、サブジョブを起動するときに、メインジョブ管理テーブルにおけるサブジョブが属するメインジョブのエントリに、当該メインジョブに属するサブジョブを識別するデータを設定し、メインジョブ検索手段が、メインジョブの実行状態を、メインジョブ管理テーブルに設定されているデータを参照して検索し、メインジョブ指定サブジョブ起動手段が、メインジョブ検索手段を用いてメインジョブの実行状態を検索し、メインジョブの実行状態にもとづいてサブジョブをサブジョブ起動手段に起動させるか否か決定することを特徴とする。
【発明の効果】
【００１５】
本発明によれば、メインジョブのＪＣＬを変更することなく、サブジョブに相当する新たなジョブステップを追加し、追加されたジョブステップを、メインジョブに属するジョブステップとして並列実行することができる。
【発明を実施するための最良の形態】
【００１６】
図１は、本発明による計算機システムの主要構成を示すブロック図である。図１に示すように、計算機システムは、サブジョブを起動するサブジョブ起動手段１０９２を含むメインジョブ実行手段１０９とサブジョブ実行手段１１０とに加えて、入力条件に応じて、メインジョブに属するサブジョブを生成するか否か決定するメインジョブ指定サブジョブ起動手段１０１を備えている。
【００１７】
実施形態１．
図２は、本発明による計算機システムの実施形態を示すブロック図である。
図２に示す構成では、計算機システム（コンピュータシステム）１は、メインジョブ実行手段１０９とサブジョブ実行手段１１０とを含む。メインジョブ実行手段１０９は、ジョブ制御言語格納ファイル１１３に格納されているＪＣＬにもとづいて処理を実行する。
【００１８】
メインジョブ実行手段１０９において、ジョブ開始手段１０９１は、業務ジョブ（メインジョブ）の開始処理を行いジョブを生成する。ジョブステップ実行手段１０９３は、ジョブのジョブステップを実行する。また、ジョブステップ実行手段１０９３は、メインジョブデリバリ保存手段（例えば、記憶装置）１１２にデリバリを出力する。ジョブ終了手段１０９５は、ジョブの終了処理を行う。サブジョブ起動手段１０９２は、サブジョブを起動する。サブジョブ待合せ手段１０９４は、メインジョブと関連するサブジョブの終了を待ち合わせる処理を行う。
【００１９】
サブジョブ実行手段１１０において、ジョブ開始手段１１０１は、サブジョブ起動手段１０９２から制御を渡されてサブジョブの開始処理を行う。ジョブステップ実行手段１１０２は、サブジョブのジョブステップを実行する。また、ジョブステップ実行手段１１０２は、サブジョブデリバリ保存手段（例えば、記憶装置）１１１にデリバリを出力する。ジョブ終了手段１１０３は、サブジョブの終了処理を行う。サブジョブ終了通知手段１１０４は、サブジョブ終了後に制御が渡されて、サブジョブが終了したことをサブジョブ待合せ手段１０９４に通知する。
【００２０】
この実施の形態では、メインジョブ実行手段１０９におけるデリバリ連結手段１０９６が、メインジョブに関連するサブジョブのデリバリをメインジョブのデリバリにマージする処理を実行する。
【００２１】
また、図２に示すように、メインジョブの状態を管理するために使用されるメインジョブ管理テーブル１０４が設けられている。メインジョブ管理テーブル１０４において、１つのジョブ（メインジョブ）に対して１つのエントリが存在する。
【００２２】
図３は、メインジョブ管理テーブル１０４の具体例を示す説明図である。図３に示すように、メインジョブ管理テーブル１０４には、各ジョブの識別番号に相当するデータが設定されるジョブ生起番号１０４１、実行状態１０４２、およびサブジョブのリンクを示す情報が設定されるサブジョブリンク１０４３の欄がある。ジョブ生起番号１０４１の欄には、ジョブを一意に識別する番号（メインジョブ生起番号など）が格納される。サブジョブリンク１０４３の欄には、サブジョブ情報（サブジョブ生起番号など）が格納される。なお、図３における各行が１つエントリに相当する。
【００２３】
図３には、「Ｘ０００００１」で識別されるジョブ（メインジョブ）が「実行中」であり、サブジョブリンク１０４３の欄に３つのサブジョブの情報１０４４ａ，１０４４ｂ，１０４４ｃが設定されているので、「Ｘ０００００１」で識別されるジョブは、３つのサブジョブを所有していることが例示されている。また、「Ｘ０００００２」で識別されるジョブが「終了」していることが例示されている。また、「Ｘ０００００３」で識別されるジョブが「実行中」であり、サブジョブを所有していないことが例示されている。
【００２４】
ジョブ開始手段１０９１は、ジョブを生成するときに、メインジョブ管理テーブル１０４にエントリを生成する。すなわち、ジョブ生起番号１０４１の欄にジョブを一意に識別する番号を設定する。そして、実行状態１０４２の欄に「実行中」を示す情報を設定する。ジョブ終了手段１０９５は、ジョブの終了処理を行うときに、実行状態１０４２の欄を「終了」に更新する。
【００２５】
また、図２に示すように、サブジョブの状態を管理するために使用されるサブジョブ管理テーブル１０５が設けられている。サブジョブ管理テーブル１０５において、１つのサブジョブに対して１つのエントリが存在する。
【００２６】
図４は、サブジョブ管理テーブル１０５の具体例を示す説明図である。図４に示すように、サブジョブ管理テーブル１０５には、各サブジョブの識別番号に相当するデータが設定されるサブジョブ生起番号１０５１、サブジョブが属するメインジョブの識別番号に相当するデータが設定されるメインジョブ生起番号１０５２、終了状態１０５３、および完了通知先セマフォを示すデータが設定される終了待合せセマフォ１０５４の欄がある。サブジョブ生起番号１０５１の欄には、サブジョブを一意に識別する番号（サブジョブ生起番号など）が格納される。メインジョブ生起番号１０５２の欄には、サブジョブが所属するメインジョブの生起番号（メインジョブ生起番号）が格納される。終了状態１０５３の欄には、サブジョブの終了状態を示す情報が格納される。終了待合せセマフォ１０５４の欄には、サブジョブの終了時に通知する通知先の非同期事象通知セマフォ１０７（図２参照）を示すデータが格納される。なお、図４における各行が１つエントリに相当する。
【００２７】
サブジョブ実行手段１１０におけるジョブ開始手段１１０１は、サブジョブを生成するときに、サブジョブ管理テーブル１０５にエントリを生成する。すなわち、サブジョブ生起番号１０５１の欄にサブジョブを一意に識別する番号を設定する。そして、終了状態１０５３の欄に「未終了」を示す情報を設定する。また、メインジョブ生起番号１０５２の欄に、サブジョブ起動手段１０９２がサブジョブ実行手段１１０におけるジョブ開始手段１１０１に制御を渡したときに実行されていたジョブ（メインジョブ）のメインジョブ生起番号を設定する。サブジョブ実行手段１１０におけるジョブ終了手段１１０３は、サブジョブの終了処理を行うときに、終了状態１０５３の欄を終了状態（ＤＯＮＥやＥＲＲＯＲなど）を示す情報で更新する。
【００２８】
サブジョブ終了通知手段１１０４は、プログラム１０８ｂに対する非同期待合せ時の通知情報に利用するために、終了状態（終了状態１０５３の欄に設定されている情報）と非同期事象通知セマフォ（終了待合せセマフォ１０５４の欄に設定されている情報）とを参照する。また、サブジョブ待合せ手段１０９４は、プログラム１０８ｂに対する即時待合せ時の通知情報に利用するために、終了状態を参照する。
【００２９】
図４には、「Ｓ００００１０」で識別されるサブジョブが所属するメインジョブが「Ｘ０００００１」で識別されるジョブであり、サブジョブの実行が終了し終了状態が「ＤＯＮＥ」（正常終了）であることが例示されている。また、「Ｓ００００１１」で識別されるサブジョブが所属するメインジョブが「Ｘ０００００１」で識別されるジョブであり、サブジョブの実行が終了し終了状態が「ＦＩＬＥＯＶ」（エラー）であることが例示されている。また、「Ｓ００００１２」で識別されるサブジョブが所属するメインジョブが「Ｘ０００００１」で識別されるジョブであり、サブジョブは「実行中」（未終了）であって、実行完了時にセマフォ１に通知する必要があることが例示されている。
【００３０】
また、コンピュータシステム１は、入力された条件に合致するジョブを検索するメインジョブ検索手段１０３を有する。メインジョブ検索手段１０３は、メインジョブ管理テーブル１０４を参照して、条件に合致するジョブを検索する。検索の条件として、例えば、メインジョブ生起番号やジョブの実行状態がある。
【００３１】
また、コンピュータシステム１は、メインジョブ指定サブジョブ起動手段１０１を有する。メインジョブ指定サブジョブ起動手段１０１は、プログラム１０８ａから利用可能である。メインジョブ指定サブジョブ起動手段１０１は、メインジョブを一意に識別する番号（例えば、メインジョブ生起番号）と、ジョブ制御言語格納ファイル１１３に格納されているサブジョブのＪＣＬとが指定されると、該当するメインジョブに属するサブジョブを生成するか否か決定する。すなわち、サブジョブを動的に生成するための手段である。メインジョブ指定サブジョブ起動手段１０１は、サブジョブを生成することに決定した場合には、サブジョブ起動手段１０９２に制御を渡すことによってサブジョブを生成する。
【００３２】
また、コンピュータシステム１は、メインジョブ指定サブジョブ待合せ手段１０２を有する。メインジョブ指定サブジョブ待合せ手段１０２は、プログラム１０８ｂから利用可能である。メインジョブ指定サブジョブ待合せ手段１０２は、メインジョブを一意に識別する番号（例えば、メインジョブ生起番号）、即時待合せか非同期待合せかの選択、およびサブジョブを一意に識別する番号（例えば、サブジョブ生起番号）が指定されると、該当するメインジョブに属するサブジョブを待合せるための処理を実行する。非同期待合せが選択された場合には、メインジョブ指定サブジョブ待合せ手段１０２およびプログラム１０８ｂは、非同期完了通知セマフォ１０７を介して、サブジョブが終了した時点で、非同期に完了通知を受けることができる。なお、メインジョブ指定サブジョブ待合せ手段１０２は、対象となるメインジョブを検索するときには、メインジョブ検索手段１０３を利用する。
【００３３】
プログラム１０８ａとプログラム１０８ｂとは、異なるプログラムであってもよいし、１つのプログラムを構成する要素であってもよい。コンピュータシステム１は、複数のプログラムを同時に動作させることができる。なお、図２には、２つのプログラム１０８ａ，１０８ｂが例示されているが、より多くのプログラムがあってもよい。また、複数のプログラムが同時実行されることを考慮して、複数のサブジョブ起動処理やサブジョブ待合せ処理を排他的に実行する目的で、ロック機構（排他ロック）１０６が利用される。なお、プログラム１０８ａ，１０８ｂは、メインジョブに属するサブジョブを生成したり、サブジョブの終了を監視したりするために実行される。
【００３４】
また、メインジョブ指定サブジョブ起動手段１０１、メインジョブ指定サブジョブ待合せ手段１０２、メインジョブ検索手段１０３、メインジョブ実行手段１０９およびサブジョブ実行手段１１０は、コンピュータにおけるプログラムに従って処理を実行する中央処理装置で実現される。
【００３５】
次に、コンピュータシステム１のサブジョブに関する動作を説明する。
まず、メインジョブ指定サブジョブ起動手段１０１の動作を説明する。図５は、メインジョブ指定サブジョブ起動手段１０１の動作を示すフローチャートである。図５に示す例では、メインジョブ指定サブジョブ起動手段１０１には、プログラム１０８ａから、入力パラメータとして、メインジョブ生起番号Ｐ５−１と、サブジョブの処理内容を記述したＪＣＬファイル名Ｐ５−２とが指定される。
【００３６】
メインジョブ指定サブジョブ起動手段１０１は、まず、排他処理のために排他ロック１０６を取得する（ステップＳ５１）。そして、メインジョブ生起番号Ｐ５−１を検索条件にして、メインジョブ検索手段１０３を利用してメインジョブを検索する。メインジョブ検索に失敗した場合には、サブ生成処理に失敗したことになり、処理を異常終了（ＪＯＢＵＮＫＮ）する（ステップＳ５２，Ｓ５７）。
【００３７】
メインジョブ検索に成功した場合には、該当するメインジョブの実行状態をメインジョブ管理テーブル１０４によって確認する。メインジョブが実行中でないことを確認したときには、サブ生成処理に失敗したことになり、処理を異常終了（ＴＯＯＬＡＴＥ）する（ステップＳ５３，Ｓ５６）。メインジョブが実行中であることを確認した場合には、サブジョブ起動手段１０９２にサブジョブの起動を依頼する（ステップＳ５４）。そして、サブジョブ起動手段１０９２の実行結果を処理結果として（ステップＳ５５）、処理を終了する。
【００３８】
なお、メインジョブ指定サブジョブ起動手段１０１は、処理を終了するときに、排他ロック１０６を返却する（ステップＳ５８）。
【００３９】
メインジョブ指定サブジョブ起動手段１０１は、メインジョブが実行中であることを条件としてサブジョブを生成することに決定するので、生成されるサブジョブは、メインジョブに包含されるジョブとして生成されることになる。また、本実施形態では、メインジョブを特定してサブジョブを起動することができる。
【００４０】
次に、サブジョブ起動手段１０９２の動作を説明する。図６は、サブジョブ起動手段１０９２の動作を示すフローチャートである。サブジョブ起動手段１０９２には、メインジョブ指定サブジョブ起動手段１０１から、入力パラメータとして、サブジョブの処理内容を記述したＪＣＬファイル名Ｐ６−１が指定される。なお、ＪＣＬファイル名Ｐ６−１は、ＪＣＬファイル名Ｐ５−２と同じである。
【００４１】
サブジョブ起動手段１０９２は、サブジョブ生起番号を採番する（ステップＳ６１）。そして、サブジョブ管理テーブル１０５に新たなエントリを生成し、サブジョブ生起番号１０５１およびメインジョブ生起番号１０５２の欄にサブジョブ生起番号およびメインジョブ生起番号を格納する（図４参照）。終了状態１０５３の欄には、初期状態として「未終了」を示す情報を設定する（ステップＳ６２）。
【００４２】
また、サブジョブ起動手段１０９２は、メインジョブ管理テーブル１０４のサブジョブリンク１０４３の欄に、サブジョブ生起番号などのサブジョブ情報を設定する（ステップＳ６３）。そして、サブジョブ実行手段１１０におけるジョブ開始手段１１０１に制御を渡してサブジョブを起動する（ステップＳ６４）。サブジョブの起動に成功した場合には、処理結果として正常（ＤＯＮＥ）を設定して処理を終了する（ステップＳ６５，Ｓ６６）。サブジョブの起動に失敗した場合には、処理結果として異常（ＥＲＲＯＲ）を設定して処理を終了する（ステップＳ６５，Ｓ６７）。
【００４３】
次に、メインジョブ指定サブジョブ待合せ手段１０２の動作を説明する。図７は、メインジョブ指定サブジョブ待合せ手段１０２の動作を示すフローチャートである。メインジョブ指定サブジョブ待合せ手段１０２には、プログラム１０８ｂから、入力パラメータとして、メインジョブ生起番号Ｐ７−１、サブジョブ生起番号Ｐ７−２、即時待合せか非同期待合せかの選択（即時待合せ／非同期待合せの選択）Ｐ７−３、サブジョブ完了状態の返却領域Ｐ７−４、および非同期待ち合わせセマフォＰ７−５が指定される。
【００４４】
メインジョブ指定サブジョブ待合せ手段１０２は、まず、排他処理のために排他ロック１０６を取得する（ステップＳ７１）。そして、メインジョブ生起番号Ｐ７−１を検索条件にして、メインジョブ検索手段１０３を利用してメインジョブを検索する。メインジョブ検索に失敗した場合には、サブジョブ待合せ処理に失敗したことになり、処理を異常終了（ＪＯＢＵＮＫＮ）する（ステップＳ７２，Ｓ７７）。メインジョブ検索に失敗した場合には、サブ生成処理に失敗したことになり、処理を異常終了（ＪＯＢＵＮＫＮ）する（ステップＳ５２，Ｓ５７）。
【００４５】
メインジョブ検索に成功した場合には、メインジョブ指定サブジョブ待合せ手段１０２は、メインジョブ検索手段１０３を利用して、該当するメインジョブの実行状態をメインジョブ管理テーブル１０４によって確認する。メインジョブが実行中でないことを確認したときには、サブジョブ待合せ処理に失敗したことになり、処理を異常終了（ＴＯＯＬＡＴＥ）する（ステップＳ７３，Ｓ７６）。メインジョブが実行中であることを確認した場合には、サブジョブ待合せ手段１０９４にサブジョブの待合せを依頼する（ステップＳ７４）。待合せを依頼するときに、指定された入力パラメータを、呼出パラメータとして指定する。そして、サブジョブ待合せ手段１０９４の実行結果を処理結果として（ステップＳ７５）、処理を終了する。
【００４６】
なお、メインジョブ指定サブジョブ待合せ手段１０２は、処理を終了するときに、排他ロック１０６を返却する（ステップＳ７８）。
【００４７】
次に、サブジョブ待合せ手段１０９４の動作を説明する。図８は、サブジョブ待合せ手段１０９４の動作を示すフローチャートである。サブジョブ待合せ手段１０９４には、メインジョブ指定サブジョブ待合せ手段１０２から、入力パラメータとして、サブジョブ生起番号Ｐ８−１、即時待合せ／非同期待合せの選択Ｐ８−２、サブジョブ完了状態の返却領域Ｐ８−３、および非同期待ち合わせセマフォＰ８−４が指定される。なお、サブジョブ生起番号Ｐ８−１、即時待合せ／非同期待合せの選択Ｐ８−２、サブジョブ完了状態の返却領域Ｐ８−３、および非同期待ち合わせセマフォＰ８−４は、サブジョブ生起番号Ｐ７−２、即時待合せか非同期待合せかの選択（即時待合せ／非同期待合せの選択）Ｐ７−３、サブジョブ完了状態の返却領域Ｐ７−４、および非同期待ち合わせセマフォＰ７−５と同じものである。
【００４８】
サブジョブ待合せ手段１０９４は、サブジョブ管理テーブル１０５を参照して、サブジョブ生起番号Ｐ８−１で指定されたサブジョブの「終了状態」を確認する。サブジョブが既に終了している場合には、サブジョブ管理テーブル１０５おけるサブジョブのエントリにおいて「終了」を示すデータが格納されているので、そのデータをサブジョブ完了状態の返却領域Ｐ８−３で示される領域に設定する（ステップＳ８１，Ｓ８２）。また、処理結果として正常（終了：ＤＯＮＥ）を設定して処理を終了する（ステップＳ８６）。サブジョブ完了状態の返却領域Ｐ８−３は、プログラム１０８ｂからメインジョブ指定サブジョブ待合せ手段１０２に指定されたサブジョブ完了状態の返却領域Ｐ７−４と同じものであるから、プログラム１０８ｂに、メインジョブ指定サブジョブ待合せ手段１０２を介してサブジョブ完了状態を示すデータが返却されたことになる。
【００４９】
サブジョブ待合せ手段１０９４は、サブジョブが「未終了」であることを確認したら、即時待合せ／非同期待合せの選択Ｐ８−２を確認する。即時待合せ／非同期待合せの選択Ｐ８−２が即時待合せを示している場合には、サブジョブの終了を待って「終了」を示すデータを返却することはできないので、処理結果として異常（ＢＵＳＹ）を設定して、すなわちサブジョブが「未終了」であることを認識可能な情報を設定して処理を終了する（ステップＳ８４，Ｓ８７）。
【００５０】
即時待合せ／非同期待合せの選択Ｐ８−２が非同期待合せを示している場合には、サブジョブ待合せ手段１０９４は、サブジョブが終了したときに非同期に終了した旨をプログラム１０８ｂに通知する必要がある。そこで、サブジョブ待合せ手段１０９４は、サブジョブ管理テーブル１０５における終了待合せセマフォ１０５４の欄に、非同期待ち合わせセマフォＰ８−４で指定されるセマフォを設定する（ステップＳ８４，Ｓ８５）。また、非同期待合せがなされていることを呼出側（プログラム１０８ｂ）に知らせるために、処理結果として正常（待合せ：ＥＮＱＵＥ）を設定して処理を終了する（ステップＳ８６）。
【００５１】
次に、サブジョブ終了通知手段１１０４の動作を説明する。図９は、サブジョブ終了通知手段１１０４の動作を示すフローチャートである。サブジョブ終了通知手段１１０４は、サブジョブが終了した後に呼び出される。サブジョブ終了通知手段１１０４は、サブジョブ管理テーブル１０５における該当するサブジョブのエントリの終了待合せセマフォ１０５４の欄を確認する（ステップＳ９１）。終了待合せセマフォ１０５４の欄にセマフォが登録されている場合には、そのセマフォを介して、サブジョブの「終了状態」（サブジョブ管理テーブル１０５における終了状態１０５３に格納されているデータ）をプログラム１０８ｂに通知する（ステップＳ９２）。そして、メインジョブ実行手段１０９におけるサブジョブ待合せ手段１０９４に、サブジョブが終了したことを通知する（ステップＳ９３）。
【００５２】
以上に説明したように、本実施の形態では、メインジョブの実行中に、新たな処理（サブジョブ）を動的に追加することができる。また、メインジョブ管理テーブル１０４におけるサブジョブリンク１０４３の欄にサブジョブ情報（サブジョブ生起番号など）が登録されることによってサブジョブがメインジョブに追加されることになるので、メインジョブのＪＣＬを変更する必要はない。また、デリバリ連結手段１０９６によってサブジョブのデリバリをメインジョブのデリバリに取り込むことができるので、メインジョブに追加されたサブジョブの実行結果が、本来のメインジョブのデリバリに反映される。
【００５３】
また、メインジョブ指定サブジョブ待合せ手段１０２とサブジョブ待合わ手段１０９４とによって、メインジョブに追加されたサブジョブの終了状態を、メインジョブの終了を待たずに確認することができる。また、サブジョブの終了状態をメインジョブの終了を待たずに確認することができるので、容易に、追加されたサブジョブの実行終了を契機として他の処理を開始することができる。
【００５４】
また、メインジョブの状態を管理するためのメインジョブ管理テーブル１０４が設けられ、メインジョブ管理テーブル１０４における各エントリにおいて、サブジョブリンク１０４３の欄にはメインジョブに関連するサブジョブ情報（サブジョブ生起番号など）が格納される構造を有しているので、プログラム１０８ａ，１０８ｂで利用されるメインジョブ指定サブジョブ起動手段１０１やメインジョブ指定サブジョブ待合せ手段１０２は、メインジョブ検索手段１０３を介して随時メインジョブとサブジョブとの関連を参照できる。
【００５５】
また、サブジョブの状態を管理するためのサブジョブ管理テーブル１０５が設けられ、サブジョブ管理テーブル１０５における各エントリにおいて、サブジョブが属するメインジョブの識別番号に相当するデータが設定されるメインジョブ生起番号１０５２の欄が設けられているので、プログラム１０８ｂで利用されるメインジョブ指定サブジョブ待合せ手段１０２は、メインジョブ検索手段１０３を介して随時メインジョブとサブジョブとの関連を参照できる。また、終了状態１０５３の欄が設けられているので、サブジョブの終了状態を随時確認できる。
【００５６】
実施形態２．
メインジョブ指定サブジョブ起動手段１０１に、指定されたサブジョブ起動条件に応じてサブジョブを起動する機能を追加することによって、条件付サブジョブ起動を行う仕組みを実現することができる。サブジョブ起動条件として、「起動時刻」や「完了同期したいメインジョブのジョブステップ名」等がある。
【００５７】
例えば、サブジョブ起動条件として「毎日１０：００に起動」が指定された場合に、メインジョブ指定サブジョブ起動手段１０１は、毎日１０：００に、サブジョブ起動手段１０９２を呼び出す。すなわち、サブジョブ起動手段１０９２にサブジョブを起動させる。その場合には、例えば、２４時間常駐するジョブ（メインジョブ）を停止させることなく、毎日１０：００に定期的な処理を実施することができる。
【００５８】
また、サブジョブ起動条件として「完了同期したいメインジョブのジョブステップｎ」が指定された場合に、メインジョブ指定サブジョブ起動手段１０１は、ジョブステップｎを終了したときにサブジョブ起動手段１０９２を呼び出す。その場合には、メインジョブのジョブステップの処理と同期した処理を追加できることになる。
【実施例１】
【００５９】
図１０は、コンピュータシステム１の具体的適用例を示す説明図である。
図１０には、ジョブステップ１，３，４，・・・を含むメインジョブ１００１に、ジョブステップ２を含むサブジョブ１００２が追加（挿入）された例が示されている。また、ジョブステップ１の実行結果が、ローカルなテープ装置１（自コンピュータのテープ装置１００５）に出力される場合であって、サブジョブ１００２は、遠隔地の別コンピュータ１００６におけるテープ装置２（遠隔地のテープ装置１００７）にデータをバックアップする処理を行うためのジョブである。
【００６０】
メインジョブ１００１とは異なるプログラムであって、図２に示されたプログラム１０８ａ，１０８ｂに相当する運用管理プログラム１００４は、ジョブステップ１の完了を監視し、ジョブステップ１が完了したときにサブジョブ１００２を追加して起動させるプログラムである。
【００６１】
本実施例では、メインジョブのＪＣＬを変更することなく、新たな処理（テープバックアップ処理）を追加することができる。また、複数のメインジョブに同じ処理を追加する場合、各メインジョブのＪＣＬを変更する構成と比較すると、ＪＣＬ修正の煩わしさがないので、そのような追加は容易である。
【００６２】
また、追加される処理はサブジョブとして生成されるので、メインジョブにおける他のジョブステップと並列に動作させることができる。
【００６３】
また、図１０には、サブジョブ１００２のデリバリはメインジョブ１００１のデリバリにマージされてデリバリ１００３になることが示されている。
【実施例２】
【００６４】
図１１は、コンピュータシステム１の他の具体的適用例を示す説明図である。
図１１に示す例では、運用管理プログラム１１０４に、図１０に示された運用管理プログラム１００４が実現する処理に加えて、サブジョブ１００２の実行終了を待合せる処理が追加されている。また、サブジョブ１００２の終了状態を非同期で取得し、取得したサブジョブ１００２の終了状態を外部運用管理者に電子メールで通知する処理が追加されている。本実施例では、メインジョブ１００１の終了を待つことなく、メインジョブ１００１の終了前に、追加したサブジョブ１００２の処理結果を確認することができる。
【産業上の利用可能性】
【００６５】
本発明は、１つのジョブに含まれるジョブステップを並列に実行させることができる計算機システムに好適に適用される。
【図面の簡単な説明】
【００６６】
【図１】本発明による計算機システムの主要構成を示すブロック図である。
【図２】本発明による計算機システムの実施形態を示すブロック図である。
【図３】メインジョブ管理テーブルの具体例を示す説明図である。
【図４】サブジョブ管理テーブルの具体例を示す説明図である。
【図５】メインジョブ指定サブジョブ起動手段の動作を示すフローチャートである。
【図６】サブジョブ起動手段の動作を示すフローチャートである。
【図７】メインジョブ指定サブジョブ待合せ手段の動作を示すフローチャートである。
【図８】サブジョブ待合せ手段の動作を示すフローチャートである。
【図９】サブジョブ終了通知手段の動作を示すフローチャートである。
【図１０】コンピュータシステムの具体的適用例を示す説明図である。
【図１１】コンピュータシステムの他の具体的適用例を示す説明図である。
【図１２】特許文献１に記載されたコンピュータシステムの構成を示すブロック図である。
【符号の説明】
【００６７】
１      コンピュータシステム
１０１  メインジョブ指定サブジョブ起動手段
１０２  メインジョブ指定サブジョブ待合せ手段
１０３  メインジョブ検索手段
１０４  メインジョブ管理テーブル
１０５  サブジョブ管理テーブル
１０８ａ，１０８ｂ  プログラム
１０９  メインジョブ実行手段
１１０  サブジョブ実行手段
１１１  サブジョブデリバリ
１１２  メインジョブデリバリ
１１３  ジョブ制御言語格納ファイル
１０９１  ジョブ開始手段
１０９２  サブジョブ起動手段
１０９３  ジョブステップ実行手段
１０９４  サブジョブ待合せ手段
１０９５  ジョブ終了手段
１０９６  デリバリ連結手段
１１０１  ジョブ開始手段
１１０２  ジョブステップ実行手段
１１０３  ジョブ終了手段
１１０４  サブジョブ終了通知手段
【図１】
0004577343.tif 000002
【図２】
0004577343.tif 000003
【図３】
0004577343.tif 000004
【図４】
0004577343.tif 000005
【図５】
0004577343.tif 000006
【図６】
0004577343.tif 000007
【図７】
0004577343.tif 000008
【図８】
0004577343.tif 000009
【図９】
0004577343.tif 000010
【図１０】
0004577343.tif 000011
【図１１】
0004577343.tif 000012
【図１２】
0004577343.tif 000013