(57)【要約】【課題】オンライン業務とバッチ業務が同一の資源をアクセス対象とする場合でも、オンライン業務運用中にオンライン業務の性能に影響を及ぼすことなく、バッチ業務を実行できるようにすることを目的としている。【解決手段】業務アプリケーション毎にアプリ種別情報を記憶し、データベース・アクセス要求のためのページが第一のバッファキャッシュ上でオンバッファであると、第一のバッファキャッシュから割り当て、第二のバッファキャッシュ上でオンバッファであると第二のバッファキャッシュから割り当て、何れのバッファキャッシュ上でもオンバッファでない場合には、アプリ種別情報に基づきバッチ業務用のアプリケーション・プログラムの場合には第二のバッファキャッシュから割り当て、そうではない場合には第一のバッファキャッシュから割り当てることにより、オンライン業務とバッチ業務が同一の資源をアクセス対象とする場合でも、オンライン業務運用中にオンライン業務の性能に影響を及ぼすことなく、バッチ業務の実行が可能となる。【選択図】      図１
2004303096.tif 000002
【特許請求の範囲】
【請求項１】
データベース・アクセス要求のためのページが、複数のオンライン業務アプリケーションが共用する第一のバッファキャッシュ上でオンバッファであることを検出すると、該当するページを前記第一のバッファキャッシュから割り当てるステップと、
データベース・アクセス要求のためのページが複数のバッチ業務アプリケーションが共用する第二のバッファキャッシュ上でオンバッファであることを検出すると、該当するページを前記第二のバッファキャッシュから割り当てるステップと、
前記データベース・アクセス要求のためのページが何れのバッファキャッシュ上でもオンバッファでないことを検出すると、前記データベース・アクセス要求した業務アプリケーションの種別を予め記憶装置に記憶されているアプリ種別情報に基づき判定し、バッチ業務用のアプリケーション・プログラムの場合には、該当するページを前記第二のバッファキャッシュから割り当て、そうではない場合には該当するページを前記第一のバッファキャッシュから割り当てるステップと
を有することを特徴とするジョブ管理方法。
【請求項２】
業務アプリケーション毎に、業務アプリケーションがオンライン業務用であるか、バッチ業務用であるかを識別するためのアプリ種別情報を記憶装置に記憶させるアプリ種別記憶手段と、
データベース・アクセス要求のためのページが、複数のオンライン業務アプリケーションが共用する第一のバッファキャッシュ上でオンバッファであることを検出すると、該当するページを前記第一のバッファキャッシュから割り当てる第一のページ割当手段と、
データベース・アクセス要求のためのページが複数のバッチ業務アプリケーションが共用する第二のバッファキャッシュ上でオンバッファであることを検出すると、該当するページを前記第二のバッファキャッシュから割り当てる第二のページ割当手段と、
前記データベース・アクセス要求のためのページが何れのバッファキャッシュ上でもオンバッファでないことを検出すると、前記データベース・アクセス要求した業務アプリケーションの種別を前記アプリ種別情報に基づき判定し、バッチ業務用のアプリケーション・プログラムの場合には、該当するページを前記第二のバッファキャッシュから割り当て、そうではない場合には該当するページを前記第一のバッファキャッシュから割り当てる第三のページ割当手段と
を有することを特徴とするジョブ管理装置。
【請求項３】
業務アプリケーション毎に、業務アプリケーションがオンライン業務用であるか、バッチ業務用であるかを識別するためのアプリ種別情報を記憶装置に記憶させるアプリ種別記憶手段と、
データベース・アクセス要求のためのページが、複数のオンライン業務アプリケーションが共用する第一のバッファキャッシュ上でオンバッファであることを検出すると、該当するページを前記第一のバッファキャッシュから割り当てる第一のページ割当手段と、
データベース・アクセス要求のためのページが複数のバッチ業務アプリケーションが共用する第二のバッファキャッシュ上でオンバッファであることを検出すると、該当するページを前記第二のバッファキャッシュから割り当てる第二のページ割当手段と、
前記データベース・アクセス要求のためのページが何れのバッファキャッシュ上でもオンバッファでないことを検出すると、前記データベース・アクセス要求した業務アプリケーションの種別を前記アプリ種別情報に基づき判定し、バッチ業務用のアプリケーション・プログラムの場合には、該当するページを前記第二のバッファキャッシュから割り当て、そうではない場合には該当するページを前記第一のバッファキャッシュから割り当てる第三のページ割当手段と
してコンピュータを機能させるジョブ管理プログラム。
【請求項４】
前記第二のページ割当手段は、前記第一のページ割当手段が前記第一のバッファキャッシュ上でオンバッファでないことを検出した時のみ実行する請求項３記載のジョブ管理プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、トランザクション処理プログラムに係わるジョブ管理に関し、特に、オンライン業務とバッチ業務が同一の資源（テーブル）をアクセスする場合においても、バッチ業務専用バッファキャッシュを新たに設けることにより、オンライン業務の性能を劣化させないための技術に関する。
【０００２】
【従来の技術】
従来のデータベースシステムにおいては、データベースをアクセスするためのバッファキャッシュが１つしか存在しないため、オンライン業務運用中にオンライン業務と同じデータベースをアクセスするバッチ業務を行うと、オンライン業務が使用していたバッファキャッシュ上のページがバッチ業務により追い出されることにより、オンライン業務のデータベースアクセスのためのディスクに対するＩ／Ｏ量が増加し、オンライン業務のレスポンスが悪化させる大きな原因となっている。
【０００３】
この問題に対して、オンライン業務とバッチ業務が同一の資源（テーブル）をアクセス対象としない場合は、予め資源毎にデータベースバッファキャッシュを必要な量だけ開設しておくことで問題は解決できている。しかしながら、同一の資源をアクセス対象とする場合、現状ではオンライン業務を一旦停止した後に、バッチ業務を実行する手順を取っており、２４時間３６５日連続運用性が損なわれている。
【０００４】
オンライン業務とバッチ業務が同一の資源をアクセス対象とする場合、他の方法としては、同一のデータベースバッファキャッシュ内で、オンライン業務とバッチ業務のそれぞれが使用するバッファキャッシュの量を管理する方法も考えられる。但し、この方法の場合は、資源毎にデータベースバッファキャッシュを開設するなど、複数のデータベースバッファキャッシュを使用しているシステムでは、個々のデータベースバッファキャッシュ毎に、オンライン業務とバッチ業務が使用するバッファキャッシュの量を管理しなければならず、管理コストが増大する。
【０００５】
また、バッチ処理を非トランザクションまたはバッチ処理全体で１つのトランザクションとして実行すると、エラーが発生したときにバッチ処理の最初から再実行しなければならず、処理に非常に時間がかかる。このようなことを防止するため、バッチ処理はトランザクションとして実行し、纏まった処理単位でトランザクションを区切って繰り返し実行することが一般的に行われている。これにより、エラーが発生しても、エラーが発生した時点からの再実行で済むようになるため、２４時間３６５日連続運用性対応などの運用として利用されている。
【０００６】
上記の問題点の改善策として、ファイルが格納されている記憶媒体と、このデータをアクセスするための拡張記憶装置を備えたファイル更新方法として、拡張記憶装置をオンライン業務から一時的に切離して、オンライン業務は記憶媒体のファイルを使用して参照業務を続行しながら、並行して、バッチ業務は拡張記憶装置を使用してレコードの更新を行い、バッチ業務終了後に拡張記憶装置上の更新レコードを一括して記憶媒体のファイルにリロードすることによりファイルを更新するファイルの更新方式が開示されている（例えば、特許文献１参照。）。
【０００７】
前記改善策により、拡張記憶装置を一時的にバッチ業務で占有して使用することが可能となり、オンライン業務とバッチ業務のリソースの競合をなくし、オンライン業務を続行したままオンライン業務に影響を与えない高速なバッチ業務を実行することが可能となった。
【０００８】
【特許文献１】
特開平６−１３９１２０号公報  （第２−３頁）
【０００９】
【発明が解決しようとする課題】
しかしながら上記の改善策では、オンライン業務がデータの更新処理を行わない場合には、オンライン業務とバッチ業務のリソースの競合をなくし、オンラインを続行したままオンライン業務に影響を与えない高速なバッチ業務を実行することが可能であるが、バッチ業務とオンライン業務が同じ資源を更新するような場合には、バッチ業務で更新した資源をオンライン業務が正しく認識できるように排他制御、データベースの更新のためのＩ／Ｏが必要となり、バッチ業務によるオンライン業務への影響は依然として残ることになる。
【００１０】
本発明は、上記のような事情に鑑みて提案されたものであり、オンライン業務とバッチ業務が同一の資源をアクセス対象（更新処理を含む）とする場合でも、オンライン業務運用中にオンライン業務の性能に影響を及ぼすことなく、バッチ業務を実行できるようにすることを目的としている。
【００１１】
【課題を解決するための手段】
図１は、本発明の実施の形態１の全体構成図を示すものである。本発明のジョブ管理プログラム１０はジョブ管理装置１として振る舞うコンピュータ上で実行され、業務アプリケーション毎に、業務アプリケーションがオンライン業務用であるか、バッチ業務（本発明においては、バッチ業務とはオンライン業務運用中にオンライン業務の性能に影響を及ぼすことなく実行するバッチ業務を指す。）用であるかを識別するためのアプリ種別情報を記憶装置に記憶させるアプリ種別記憶手段１１１を従来のトランザクション処理に関わるジョブ管理プログラム１０のアプリ環境開設部１１に追加し、データベース・アクセス要求のためのページが、複数のオンライン業務アプリケーションが共用する第一のバッファキャッシュ上でオンバッファであることを検出すると、該当するページを前記第一のバッファキャッシュから割り当てる第一のページ割当手段１２４と、データベース・アクセス要求のためのページが複数のバッチ業務アプリケーションが共用する第二のバッファキャッシュ上でオンバッファであることを検出すると、該当するページを前記第二のバッファキャッシュから割り当てる第二のページ割当手段１２５とを、従来のトランザクション処理に関わるジョブ管理プログラムのバッファ制御部１２３に追加する。
【００１２】
さらに、前記データベース・アクセス要求のためのページが何れのバッファキャッシュ上でもオンバッファでないことを検出すると、前記データベース・アクセス要求した業務アプリケーションの種別を前記アプリ種別情報に基づき判定し、バッチ業務用のアプリケーション・プログラムの場合には、該当するページを前記第二のバッファキャッシュから割り当て、そうではない場合には該当するページを前記第一のバッファキャッシュから割り当てる第三のページ割当手段１２６とを従来のトランザクション処理に関わるジョブ管理プログラムのバッファ制御部１２３に追加する。
【００１３】
バッチジョブは、第一のバッファキャッシュのオンバッファの部分（  オンラインジョブがアクセスするページ）  のみ共有し、第一のバッファキャッシュ上でオンバッファでない場合は、第二のバッファキャッシュから新規にページを切り出す。このようにバッチジョブは第一のバッファキャッシュから新規にページを切り出さないため、オンライン業務がアクセスしたページをバッチジョブが第一のバッファキャッシュ上から追い出してしまうことはなく、オンラインジョブの性能には影響を与えることがない。
【００１４】
更に、第一のバッファキャッシュはオンラインジョブが頻繁にアクセスするページがオンバッファになっているため、バッファキャッシュ上にオンバッファであるかどうかを確認する順序を第一のページ割当手段を先に実行し、第一のページ割当手段でオンバッファが検出できない場合のみ、第二のページ割当手段を実行させることにより、検索時間を最小にすることが可能となる。
【００１５】
【発明の実施の形態】
図１は本発明の実施の形態１の全体構成図を示してある。本発明のジョブ管理プログラム１０は、業務アプリケーション毎に、業務アプリケーションがオンライン業務用であるか、バッチ業務用であるかを識別するアプリ種別情報を図２で示すアプリ制御表に記憶させるアプリ種別記憶手段１１１を従来のトランザクション処理に関わるジョブ管理プログラム１０のアプリケーショに対して資源の割当などを行いアプリケーションを実行可能状態とするアプリ環境開設部１１に追加する。
【００１６】
また、外部記憶装置２上のデータベース２１に対するアクセス要求のためのページが、複数のオンライン業務アプリケーションが共用する第一のバッファキャッシュ１４（従来のデータベースバッファキャッシュ）上でオンバッファであることを検出すると、該当するページを前記第一のバッファキャッシュ１４から割り当てる第一のページ割当手段１２４と、データベース・アクセス要求のためのページが複数のバッチ業務アプリケーションが共用する第二のバッファキャッシュ１５上でオンバッファであることを検出すると、該当するページを前記第二のバッファキャッシュ１５から割り当てる第二のページ割当手段１２５とを、従来のトランザクション処理に関わるジョブ管理プログラムのデータベースバッファキャッシュを管理するバッファ制御部１２３に追加する。
【００１７】
さらに、前記データベース・アクセス要求のためのページが何れのバッファキャッシュ上でもオンバッファでないことを検出すると、前記データベース・アクセス要求した業務アプリケーションの種別を図２で示すアプリ制御表に基づき判定し、バッチ業務用のアプリケーション・プログラムの場合には、該当するページを前記第二のバッファキャッシュ１５から割り当て、そうではない場合には該当するページを前記第一のバッファキャッシュ１４から割り当てる第三のページ割当手段１２６を従来のトランザクション処理に関わるジョブ管理プログラムのバッファ制御部１２３に追加する。
【００１８】
以上により、オンライン業務運用中にオンライン業務の性能に影響を及ぼすことなく実行するバッチ業務用アプリに対しては、データベースバッファキャッシュとは別に、システムがバッチ業務専用のバッファキャッシュ（第二のバッファキャッシュ１５）を割り当てることにより、バッチ業務用アプリはオンライン業務が使用するデータベースバッファキャッシュを使用しないため、データベースバッファキャッシュのキャッシュヒット率が保証でき、オンライン業務の性能を保証することが可能となる。
【００１９】
第二のバッファキャッシュ１５は、Ｉ／Ｏの作業域としての役割を主とし、キャッシュヒット率は期待しない。図９で示すように第二のバッファキャッシュ１５はシステムに１つ存在し、バッチ業務用アプリ間で共用される。第二のバッファキャッシュ１５のサイズは、バッチ業務の多重度により動的に定まる。サイズは多重度が増加すると拡張され、多重度が減少すると縮小される。１バッチジョブ当たりのサイズは何も指定しない場合は１ＭＢ（メガバイト）であるが、外部パラメタで変更することが可能である。
【００２０】
なお、ジョブ管理プログラムについては、従来からある機能であるため、各処理部の詳細な説明については省略し、ジョブ管理プログラムを説明する上で必要最低限にとどめる。トランザクション開始処理部１２１は、トランザクションを開始しするために、排他制御、バッファ制御、ログ制御の動作環境を生成し、排他制御処理部１２２は、資源の占有、占有解除を行い、バッファ制御処理部１２３は、データベースのバッファキャッシュの管理を行う。
【００２１】
ログ制御処理部１２７は、トランザクションのリカバリ（  ロールバックまたはダウンリカバリまたはメディアリカバリ）  に備え、データベースの更新ログを採取し、トランザクション終了処理部１２８は、トランザクションを終了するために、トランザクションのロールバックまたはコミットを行い、排他制御、バッファ制御、ログ制御の動作環境を回収する。
【００２２】
バッファ制御処理部１２３は、バッファ検索／割当処理、バッファ参照／更新処理、バッファ返却処理から構成されている。従来のバッファ検索／割当処理は、データベースのバッファキャッシュ上のページ検索と割り当てを行い、存在しない場合は新規にバッファを割り当て、Ｉ／Ｏ（読み込み）  を行い、存在する場合はバッファの割り当てのみ行う。割り当てたバッファは、バックグラウンドで動作する空きバッファ生成処理によるバッファ追い出しの対象外になる。本発明の第一、第二、第三のページ割当手段は、この処理に対して機能追加したものである。
【００２３】
バッファ参照／更新処理は、割り当てたバッファをメモリ上で参照または更新し、Ｉ／Ｏ（書き込み）  はバックグラウンドで行う。バッファ返却処理は、割り当てたバッファを返却する。バッファを返却すると、バックグラウンドで動作する空きバッファ生成処理によるバッファ追い出しの対象となる。
図２は、アプリ制御表の例が示してある。この制御表は、従来からジョブを構成するアプリ実行体（データベースシステムのディスパッチの単位であり、複数のアプリ実行体が１つのスレッドを共有している。）毎に、例えばＣＰＵの割当数、ＣＰＵの割当比率などアプリ実行体を制御するために必要な情報が格納されている。本発明では、このアプリ制御表に、オンライン業務運用中にオンライン業務の性能に影響を及ぼすことなく実行するバッチ業務（本発明では、バッチ業務と記述する）用アプリであるかどうかの種別情報を追加する。
【００２４】
アプリ種別：次の種別のいずれかを示す。
−      オンライン業務
−      バッチ業務
図３は、オンバッファ判定用制御表の例が示してある。一度バッファ上に乗っかったページは、バッファ上から追い出されて再利用（  別のページで利用）  されるまで、ハッシュチェーンに存在する。ハッシュ値は資源コードから定め、同一のハッシュ値を持つバッファ（  ページ）  を同じハッシュエントリでチェーン管理している。バッファ検索では、検索対象ページのハッシュ値を算出し、対応するハッシュエントリからつながるハッシュチェーンをキュー検索し、存在した場合はオンバッファとして扱う。この制御表は従来からあるもので、特に本発明に係るものではないため詳細な説明については省略する。
【００２５】
図４は、トランザクション処理に係るジョブ処理全体の流れを示す概略フローチャートである。オンライン業務、又はバッチ業務のジョブがジョブ管理装置１に投入されると、ジョブ管理プログラム１０は、そのジョブを構成するアプリケーション・プログラムについて、資源の割当やアプリケーションを実行制御するための環境条件などを設定しアプリケーションを実行可能状態とする（Ｓ４０１）。トランザクションに関わる処理を要求回数行い（Ｓ４０２）、終了したアプリケーションの資源の解放などのアプリ環境の閉鎖処理を行う（Ｓ４０３）。
【００２６】
図５は、従来のアプリ環境開設処理に対する、本発明に係る追加処理の部分に関する処理の流れを示したフローチャートである。利用者が指定するアプリに対する環境パラメタなどに基づきアプリ制御表を作成するときに、外部パラメタでバッチ業務かオンライン業務かを指定させ、この情報をアプリ制御表に追加する（Ｓ５０１）。アプリ種別を判定し（Ｓ５０２）、バッチ業務の場合にはバッチ業務用のバッファキャッシュを拡張する（Ｓ５０３）。このバッチ業務用バッファキャッシュはキャッシュヒット率を要求するものではないため、例えば初期値が１メガバイトの大きさであり、多重に実行するアプリケーション・プログラムの数に応じて、新しいアプリケーション・プログラムを開設する度に１メガバイトずつ増加し、閉鎖時に回収するようにしたものである。
【００２７】
図６は、従来のアプリ環境閉鎖処理に対する、本発明に係る追加処理の部分に関する処理の流れを示したフローチャートである。アプリ制御表を参照し（Ｓ６０１）、アプリ種別がバッチ業務の場合には、バッチ業務用のバッファキャッシュの縮小を行う（Ｓ６０３）。
図７は、従来のジョブ管理プログラム１０のトランザクション処理部１２のバッファ制御処理部１２３（図１で説明したように、バッファ制御処理の中のバッファ検索／割当処理）に対する機能追加処理に係る処理の流れを示すフローチャートである。最初に第一（オンライン業務用）のバッファキャッシュを検索し、オンバッファであるかどうかを判定する（Ｓ７０１）。第一のバッファキャッシュでオンバッファの場合は該当するバッファを割当（Ｓ７０３）、そうでない場合には、第二（バッチ業務用）のバッファキャッシュを検索し、オンバッファであるかどうかを判定する（Ｓ７０２）。第二のバッファキャッシュでオンバッファの場合は該当するバッファを割当（Ｓ７０３）、そうでない場合には、図８で示すバッファ新規割当／読込処理を行う（Ｓ７０４）
図８は、バッファ新規割当／読込処理の流れを示すフローチャートである。先ずアプリ制御表からアプリ種別を参照し（Ｓ８０１）、アプリ種別がバッチ業務であるかどうか判定する（Ｓ８０２）。バッチ業務であれば第二のバッファキャッシュから該当ページを割り当て（Ｓ８０３）、そうでない場合には第一のバッファキャッシュから該当ページを割り当てる（Ｓ８０４）。次にデータベースから該当ページにデータの読込処理を行う（Ｓ８０５）。データの読込処理については従来の処理であり、本発明に係る部分でないため処理の詳細については省略する。
【００２８】
図９は、オンライン業務アプリケーションとバッチ業務アプリケーションとバッファキャッシュとの関連を示したものである。オンライン業務アプリケーションとバッチ業務アプリケーションでアクセスするページが競合する場合がある。オンライン業務アプリケーションとバッチ業務アプリケーションは共に、キャッシュヒット率を期待できるオンライン業務バッファキャッシュを先に検索し、次にバッチ業務用バッファキャッシュを検索する。どちらか一方のバッファキャッシュに当該ページが存在する可能性があり、存在した場合はそのバッファキャッシュを使用する（一時的にオンライン業務アプリケーションがバッチ業務用バッファキャッシュを、バッチ業務用アプリケーションがオンライン業務用バッファキャッシュを使用する場合がある）。どちらのバッファキャッシュにも存在しない場合は、オンライン業務アプリケーションはオンライン業務用バッファキャッシュから、バッチ業務用アプリケーションはバッチ業務用バッファキャッシュから新たにバッファを切り出して使用することが可能となり、同一の資源をアクセス対象とする場合でも、オンライン業務の性能を保証した上で、オンライン業務と平行してバッチ業務を行うことが可能となり、２４時間３６５日連続運用が実現可能となる。また、オンライン業務とバッチ業務が同一の資源をアクセス対象とするか否かを管理する必要がなくなり、管理コストも軽減させることが可能となる。
【００２９】
【発明の効果】
データベースシステムで、同一の資源をアクセス対象とする場合でも、オンライン業務の性能を保証した上で、オンライン業務と平行してバッチ業務を行うことが可能となり、２４時間３６５日連続運用が実現可能となる。
また、オンライン業務とバッチ業務が同一の資源をアクセス対象とするか否かを管理する必要がなくなり、管理コストも軽減させることが可能となる。
【図面の簡単な説明】
【図１】実施の形態１の全体構成図
【図２】アプリ制御表の例
【図３】オンバッファ判定用制御表の例
【図４】ジョブ処理全体の流れ
【図５】アプリ環境開設処理の流れ
【図６】アプリ環境閉鎖処理の流れ
【図７】バッファ検索／割当処理の流れ
【図８】バッファ新規割当／読込処理の流れ
【図９】業務アプリとバッファキャッシュとの関連図
【符号の説明】
１  ジョブ管理装置
２  外部記憶装置
１０  ジョブ管理プログラム
１１  アプリ環境開設部
１２  トランザクション処理部
１３  アプリ環境閉鎖部
１４  第一のバッファキャッシュ
１５  第二のバッファキャッシュ
１１１  辞書情報提供プログラム
１２１  トランザクション開始処理部
１２２  排他制御処理部
１２３  バッファ制御処理部
１２４  第一のページ割当手段
１２５  第二のページ割当手段
１２６  第三のページ割当手段
１２７  ログ制御処理部
１２８  トランザクション終了処理部
【図１】
2004303096.tif 000003
【図２】
2004303096.tif 000004
【図３】
2004303096.tif 000005
【図４】
2004303096.tif 000006
【図５】
2004303096.tif 000007
【図６】
2004303096.tif 000008
【図７】
2004303096.tif 000009
【図８】
2004303096.tif 000010
【図９】
2004303096.tif 000011