(57)【要約】【課題】データの参照からデータ更新までの間のデータ整合性を保証できる業務排他管理装置を得る。【解決手段】業務排他管理装置９の伝票制御部１０は、本業務プログラム１からデータ更新に先立って複数の伝票データの参照権の確保を一括して要求された場合に、他業務プログラム６によって更新権が確保されていない伝票データの参照権を、本業務プログラム１に対して確保するように参照権管理部１２に指示し、この参照権確保以降に他業務プログラム６によって当該伝票データの更新権の確保が行われた場合には、本業務プログラム１に対する伝票データの参照権を失効させ、さらに、本業務プログラム１からの要求に基づき、本業務プログラム１によって参照権が確保された伝票データについて、本業務プログラム１に対する更新権を確保するように更新権管理部１１に指示する。【選択図】図１
2010277347.tif 000002
【特許請求の範囲】
【請求項１】
データベースに格納された伝票データを業務プログラムによって更新するときの排他制御を行う業務排他管理装置であって、
記憶装置に形成され、上記伝票データを参照するための参照権を管理する参照権管理テーブル、
上記記憶装置に形成され、上記伝票データを排他的に更新するための更新権を管理する更新権管理テーブル、
上記参照権管理テーブルで管理される上記伝票データの参照権を上記業務プログラムに対して確保及び開放する参照権管理部、
上記更新権管理テーブルで管理される上記伝票データの更新権を上記業務プログラムに対して確保及び開放する更新権管理部、
上記業務プログラムからの要求により、他の業務プログラムによって更新権が確保されていない上記伝票データの参照権の確保を上記参照権管理部に指示するとともに、上記業務プログラムからの要求により、上記参照権が確保された上記伝票データの更新権の確保を上記更新権管理部に指示する伝票制御部を備えたことを特徴とする業務排他管理装置。
【請求項２】
上記業務プログラムは、第一の業務プログラム及び第二の業務プログラムを有し、
上記伝票制御部は、上記第一の業務プログラムから、データ更新に先立って複数の伝票データの参照権の確保を一括して要求された場合に、上記第二の業務プログラムによって更新権が確保されていない伝票データについて、上記第一の業務プログラムに対する参照権を確保するように上記参照権管理部に指示することを特徴とする請求項１記載の業務排他管理装置。
【請求項３】
上記伝票制御部は、上記第一の業務プログラムに対して確保した上記伝票データの参照権を、上記参照権確保以降に上記第二の業務プログラムによって当該伝票データの更新権の確保が行われた場合には、上記第一の業務プログラムに対する上記伝票データの参照権を失効させることを特徴とする請求項２記載の業務排他管理装置。
【請求項４】
上記伝票制御部は、上記第一の業務プログラムからの要求に基づき、上記第一の業務プログラムに対する上記参照権が失効していない伝票データについて、上記第一の業務プログラムに対する上記伝票データの更新権を確保するように上記更新権管理部に指示することを特徴とする請求項３記載の業務排他管理装置。
【請求項５】
第一の業務プログラムから、データ更新に先立って複数の伝票データの参照権の確保を一括して要求された場合に、第二の業務プログラムによって更新権が確保されていない伝票データについて、上記第一の業務プログラムに対する参照権を確保し、記憶装置に記憶する第一の動作ステップ、
この第一の動作ステップにより確保された上記第一の業務プログラムに対する上記伝票データの参照権を、上記参照権確保以降に上記第二の業務プログラムによって当該伝票データの更新権確保が行われた場合に、失効させる第二の動作ステップ、
上記記憶装置を参照し、上記第二の動作ステップにより失効されていない上記第一の業務プログラムに対する参照権を有する上記伝票データについて、上記第一の業務プログラムからの要求に基づき、上記第一の業務プログラムに対する更新権を確保する第三の動作ステップをコンピュータに実行させることを特徴とする業務排他管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、コンピュータによって複数の業務が並行して処理される業務システムにおいて、データの不整合を起こさないようにする業務排他管理装置及び業務排他管理プログラムに関するものである。
【背景技術】
【０００２】
調達手続きのように、購入依頼、複数業者への見積依頼・見積結果の評価・業者との契約・納入完了時の検収手続き・契約納期の変更手続き・契約内容の追加・削除手続き・契約の取消手続きなどの多段階の業務手続が同時に並行して処理される業務システムでは、データ更新を行う場合にデータの不整合が発生しやすい。
このため、例えば特許文献１に記載された従来のカスタマイズ対応テーブルデータ更新処理装置では、同時に実行される伝票書込処理におけるデータ整合性を保持するため、各伝票書込処理単位での排他制御を行う同時実行制限手段を具備し、伝票書込処理において、同時に複数の書込みを行わないように排他制御をしている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００１−８４３１３号公報（第４〜５頁、図１）
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載の従来のカスタマイズ対応テーブルデータ更新処理装置は、以上のように構成されているので、同時に書込処理を行う場合は、排他制御が可能であるが、書込み前にデータ読み込みし、内容を変更し、変更結果を書き込む場合には、データの整合性を保証するために、データの読み込みからデータの書込みまでの長時間にわたって当該データの排他制御を継続する必要がある。
このため、大量のデータを読み込んで、後から更新を行うバッチ処理においては、多数のデータに排他制御が行われて、他の編集処理を実行できない状態となるため、大量データの更新処理は、通常の編集処理と平行して実施することができないという問題があった。
また、画面上に編集候補対象データを一覧表示し、一覧上から１つのデータを選択、編集の実施、書込みの実施の手順で処理する場合は、編集候補対象データ全ての排他を行うと前項と同様に大量データの排他制御が行われ、他の業務を阻害するため、排他制御はデータ選択完了後まで実施することができない。このため、一覧表示時点からデータ選択のタイミングまでの間にデータの修正が行われていないことの保証は、個々の業務処理の中で実装する必要があり、個々の業務処理の開発量が増大する等の問題があった。
また、バッチ処理のデータ取得及び一覧表示のデータ取得から、取得データ編集後のデータ更新時までのデータ整合性を保証する処理は、個別の業務処理毎に実装されるため、方式の統一性が取れておらず、実装の漏れや実装者間での方式の相違による業務処理不整合等による品質低下の問題があった。
【０００５】
この発明は、上述のような課題を解決するためになされたものであり、データの参照からデータ更新までの間のデータ整合性を保証できる業務排他管理装置及び業務排他管理プログラムを得ることを目的とする。
【課題を解決するための手段】
【０００６】
この発明に係わる業務排他管理装置においては、
データベースに格納された伝票データを業務プログラムによって更新するときの排他制御を行う業務排他管理装置であって、
記憶装置に形成され、伝票データを参照するための参照権を管理する参照権管理テーブル、
記憶装置に形成され、伝票データを排他的に更新するための更新権を管理する更新権管理テーブル、
参照権管理テーブルで管理される伝票データの参照権を業務プログラムに対して確保及び開放する参照権管理部、
更新権管理テーブルで管理される伝票データの更新権を業務プログラムに対して確保及び開放する更新権管理部、
業務プログラムからの要求により、他の業務プログラムによって更新権が確保されていない伝票データの参照権の確保を参照権管理部に指示するとともに、業務プログラムからの要求により、参照権が確保された伝票データの更新権の確保を更新権管理部に指示する伝票制御部を備えたものである。
【発明の効果】
【０００７】
この発明は、以上説明したように、データベースに格納された伝票データを業務プログラムによって更新するときの排他制御を行う業務排他管理装置であって、
記憶装置に形成され、伝票データを参照するための参照権を管理する参照権管理テーブル、
記憶装置に形成され、伝票データを排他的に更新するための更新権を管理する更新権管理テーブル、
参照権管理テーブルで管理される伝票データの参照権を業務プログラムに対して確保及び開放する参照権管理部、
更新権管理テーブルで管理される伝票データの更新権を業務プログラムに対して確保及び開放する更新権管理部、
業務プログラムからの要求により、他の業務プログラムによって更新権が確保されていない伝票データの参照権の確保を参照権管理部に指示するとともに、業務プログラムからの要求により、参照権が確保された伝票データの更新権の確保を更新権管理部に指示する伝票制御部を備えたので、データの参照からデータ更新までの間のデータ整合性を保証することができる。
【図面の簡単な説明】
【０００８】
【図１】この発明の実施の形態１による業務排他管理装置及び関連ソフトウェアを示す構成図である。
【図２】この発明の実施の形態１による業務排他管理装置における参照権取得時の動作概要を示す図である。
【図３】この発明の実施の形態１による業務排他管理装置における参照権取得時の伝票制御部の動作の詳細を示すフローチャートである。
【図４】この発明の実施の形態１による業務排他管理装置における参照権取得時の参照権管理部（参照権登録）の動作の詳細を示すフローチャートである。
【図５】この発明の実施の形態１による業務排他管理装置における参照権取得時の更新権管理部（参照権無効判定）の動作の詳細を示すフローチャートである。
【図６】この発明の実施の形態１による業務排他管理装置における参照権取得時の参照権管理部（参照権状態更新）の動作の詳細を示すフローチャートである。
【図７】この発明の実施の形態１による業務排他管理装置における参照権の失効管理の更新権管理部の動作概要を示す図である。
【図８】この発明の実施の形態１による業務排他管理装置における参照権の失効管理の伝票制御部の動作の詳細を示すフローチャートである。
【図９】この発明の実施の形態１による業務排他管理装置における参照権の失効管理の更新権管理部（更新権登録）の動作の詳細を示すフローチャートである。
【図１０】この発明の実施の形態１による業務排他管理装置における参照権の失効管理の参照権管理部（参照権失効）の動作の詳細を示すフローチャートである。
【図１１】この発明の実施の形態１による業務排他管理装置における参照権を前提とする更新権確保（参照型更新権確保）の参照権管理部の動作概要を示す図である。
【図１２】この発明の実施の形態１による業務排他管理装置における参照権を前提とする更新権確保（参照型更新権確保）の伝票制御部の動作の詳細を示すフローチャートである。
【図１３】この発明の実施の形態１による業務排他管理装置における参照権を前提とする更新権確保（参照型更新権確保）の参照権管理部（参照権状態取得）の動作の詳細を示すフローチャートである。
【図１４】この発明の実施の形態１による業務排他管理装置における参照権を前提とする更新権確保（参照型更新権確保）の更新権管理部（参照権の更新権への移行）の動作の詳細を示すフローチャートである。
【図１５】この発明の実施の形態１による業務排他管理装置における更新権開放処理の伝票制御部の動作概要を示す図である。
【図１６】この発明の実施の形態１による業務排他管理装置における更新権開放処理の伝送制御部の動作の詳細を示すフローチャートである。
【図１７】この発明の実施の形態１による業務排他管理装置における更新権開放処理の更新権管理部（更新権開放）の動作の詳細を示すフローチャートである。
【図１８】この発明の実施の形態１による業務排他管理装置における参照権管理テーブルの構造と設定内容を示す図である。
【図１９】この発明の実施の形態１による業務排他管理装置における更新権管理テーブルの構造を示す図である。
【発明を実施するための形態】
【０００９】
実施の形態１．
以下、この発明の実施の形態１を図に基づいて説明する。
図１は、この発明の実施の形態１による業務排他管理装置及び関連ソフトウェアを示す構成図である。
図１において、業務排他管理装置９は、コンピュータによって構成され、同時並行して動作する複数の業務プログラムが参照中のデータ、更新中のデータを管理し、データの整合性保証を行う。データベース１３は、複数の業務プログラムによって読み書きされる記憶装置に設けられ、複数の業務プログラムが処理する伝票データ１４を格納する。
本業務プログラム１と、他の業務の処理を行う他業務プログラム６は、並行して動作される。業務排他管理装置９は、同時並行して動作する本業務プログラム１と他業務プログラム６が参照中のデータ、更新中のデータを管理し、データの整合性保証を行う。データベース１３には、本業務プログラム１または他業務プログラム２が更新対象とする伝票データ１４を格納されている。
本発明では、本業務プログラム１は、大量の伝票データの更新処理を行うように形成され、他業務プログラム６より優先度の低い更新処理を行い、本業務プログラム１が、更新目的でデータ加工を行った場合でも、他業務プログラム６が更新を行った場合は、他業務プログラム６の更新が優先され、本業務プログラム１の更新は無効とされる。
【００１０】
業務排他管理装置９は、次のように構成されている。
伝票制御部１０は、業務プログラムとの伝票データに関する更新権や参照権に係わる情報のやりとりに基づき、更新権管理部１１と参照権管理部１２を制御する。更新権管理部１１は、伝票制御部１０の配下として動作し、業務プログラムへの伝票データの更新権を管理する。参照権管理部１２は、伝票制御部１０の配下として動作し、業務プログラムへの伝票データの参照権を管理する。
なお、伝票制御部１０と更新権管理部１１と参照権管理部１２は、プログラムにより形成されている。
【００１１】
本業務プログラム１は、次のような処理により伝票データの更新を行う。
更新候補伝票参照権取得処理２は、将来的にデータ更新を行う可能性のある複数伝票データを検索し、検索されたデータを保持して参照権を確保する。更新対象伝票選択処理３は、取得した複数伝票データの一部を更新対象データとして選択し、データの修正を行う。参照型更新権取得処理４は、更新対象となったデータの更新権を取得し、排他制御を行う。業務データ更新処理５は、修正結果の伝票データをデータベース１３内の伝票データ１４に反映する。更新権開放処理１５は、更新権を開放する。
【００１２】
他業務プログラム６は、本業務プログラム１と独立して動作し、本業務プログラム１で参照権を確保している伝票データに対して更新を行う。このため、更新候補伝票参照権取得処理２によって参照権が取得された伝票データに対する更新権を取得する更新権取得処理７と、更新権を取得して伝票データを更新し、データベース１３の伝票データ１４に反映させる業務データ更新処理８を有している。
【００１３】
図２は、この発明の実施の形態１による業務排他管理装置における参照権取得時の動作概要を示す図である。
図２において、９〜１２は図１におけるものと同一のものである。更新権管理テーブル２１は、更新権管理部１１によって読み書きされ、伝票データの更新権を管理するテーブルである。参照権管理テーブル２２は、参照権管理部１２によって読み書きされ、伝票データの参照権を管理するテーブルである。業務プログラム２００は、参照権を取得するプログラムである。
【００１４】
図３は、この発明の実施の形態１による業務排他管理装置における参照権取得時の伝票制御部の動作の詳細を示すフローチャートである。
図４は、この発明の実施の形態１による業務排他管理装置における参照権取得時の参照権管理部（参照権登録）の動作の詳細を示すフローチャートである。
図５は、この発明の実施の形態１による業務排他管理装置における参照権取得時の更新権管理部（参照権無効判定）の動作の詳細を示すフローチャートである。
図６は、この発明の実施の形態１による業務排他管理装置における参照権取得時の参照権管理部（参照権状態更新）の動作の詳細を示すフローチャートである。
【００１５】
図７は、この発明の実施の形態１による業務排他管理装置における参照権の失効管理の更新権管理部の動作概要を示す図である。
図７において、９〜１２、２１、２２は図２におけるものと同一のものである。業務プログラム４００は、図２の業務プログラム２００とは独立して非同期に実行するプログラムである。
【００１６】
図８は、この発明の実施の形態１による業務排他管理装置における参照権の失効管理の伝票制御部の動作の詳細を示すフローチャートである。
図９は、この発明の実施の形態１による業務排他管理装置における参照権の失効管理の更新権管理部（更新権登録）の動作の詳細を示すフローチャートである。
図１０は、この発明の実施の形態１による業務排他管理装置における参照権の失効管理の参照権管理部（参照権失効）の動作の詳細を示すフローチャートである。
【００１７】
図１１は、この発明の実施の形態１による業務排他管理装置における参照権を前提とする更新権確保（参照型更新権確保）の参照権管理部の動作概要を示す図である。
図１１において、９〜１２、２１、２２は図２におけるものと同一のものである。業務
プログラム６００は、図２の業務プログラム２００で確保した参照権確保済のデータに対して、参照権確保を前提とする更新トランザクション（継承型更新トランザクション）を実施する業務プログラムである。
【００１８】
図１２は、この発明の実施の形態１による業務排他管理装置における参照権を前提とする更新権確保（参照型更新権確保）の伝票制御部の動作の詳細を示すフローチャートである。
図１３は、この発明の実施の形態１による業務排他管理装置における参照権を前提とする更新権確保（参照型更新権確保）の参照権管理部（参照権状態取得）の動作の詳細を示すフローチャートである。
図１４は、この発明の実施の形態１による業務排他管理装置における参照権を前提とする更新権確保（参照型更新権確保）の更新権管理部（参照権の更新権への移行）の動作の詳細を示すフローチャートである。
【００１９】
図１５は、この発明の実施の形態１による業務排他管理装置における更新権開放処理の伝票制御部の動作概要を示す図である。
図１５において、９〜１１、２２は図２におけるものと同一のものである。業務プログラム８００は、図１１の業務プログラム６００と同じプログラムである。
【００２０】
図１６は、この発明の実施の形態１による業務排他管理装置における更新権開放処理の伝送制御部の動作の詳細を示すフローチャートである。
図１７は、この発明の実施の形態１による業務排他管理装置における更新権開放処理の更新権管理部（更新権開放）の動作の詳細を示すフローチャートである。
図１８は、この発明の実施の形態１による業務排他管理装置における参照権管理テーブルの構造と設定内容を示す図である。
図１８（ａ）は、参照権管理テーブルの構造を示す図、図１８（ｂ）は、参照権管理テーブルの初期状態を示す図、図１８（ｃ）は、一部失効となった参照権管理テーブルの例を示す図である。
図１８において、各図はキー部として、トランザクションＮｏと伝票ＩＤの項目、データ部として、確保または失効を示す状態の項目を設けている。
図１９は、この発明の実施の形態１による業務排他管理装置における更新権管理テーブルの構造を示す図である。
図１９において、キー部として、トランザクションＮｏと伝票ＩＤの項目、データ部として、登録者ＩＤ、状態、開放トランザクションＮｏの項目を設けている。
【００２１】
次に、動作について説明する。
本発明の業務排他管理装置は、データ更新時の排他制御をするために、データの更新権管理に加え、将来的なデータ更新を目的とするデータの参照権管理をし、将来的なデータ更新が、通常の更新権確保を阻害しないようにしたものである。
まず、本業務プログラム１の動作について概要を説明する。
本業務プログラム１の更新候補伝票参照権取得処理２では、複数の伝票データの参照権を、業務排他管理装置９の伝票制御部１０の配下で動作する参照権管理部１２を使用して取得する。この本業務プログラム１の参照権は、他業務プログラム６から、更新権取得処理７を実行すると無効となる。他業務プログラム６の更新権取得処理７は、業務排他管理装置９の伝票制御部１０の配下で動作する更新権管理部１１を使用して実施される。
続いて、本業務プログラム１の更新対象伝票選択処理３により、更新対象となる伝票の選択と更新データの生成を行う。
続いて、本業務プログラム１のデータ更新処理を開始するが、開始に先立ち、参照型更新権取得処理４で、更新候補伝票参照権取得処理２により確保した参照権を保持する伝票データについて、更新権を確保する。この更新権の確保は、業務排他管理装置９の伝票制
御部１０の配下で動作する更新権管理部１１と参照権管理部１２を使用して行う。
続いて、本業務プログラム１の業務データ更新処理５を実施し、データベース１３の伝票データ１４を更新し、この更新が完了した時点で、更新権開放処理１５を実施する。
【００２２】
次に、業務排他管理装置９の処理について具体的に説明する。
業務排他管理装置９の処理は、大きく３つの動作ステップより成り立っている。
動作ステップ１は、業務プログラム（本業務プログラム１）における更新候補伝票取得時の参照権取得を行うものであり、図２に参照権取得時の動作の概要を、図３〜図６に動作の詳細を示す。なお、図２における参照トランザクションＮｏの取得２０３から、図１１における参照型更新権取得要求６００の間の参照権の管理を行う。
【００２３】
動作ステップ２は、参照権取得を行った業務プログラム（本業務プログラム１）とは別の業務プログラム（他業務プログラム６）による更新権取得を行うものであり、図７に更新権管理の動作の概要を、図８〜図１０に動作の詳細を示す。
【００２４】
動作ステップ３は、参照権取得を行った業務プログラム（本業務プログラム１）が、データ更新を行う時の更新権取得と、業務プログラムによる更新終了後の更新権の開放を行うものであり、図１１に参照型更新権管理の動作の概要を、図１２〜図１４に動作の詳細を示す。また、図１５に更新権開放の動作の概要を、図１６〜図１７に動作の詳細を示す。
【００２５】
次に、動作ステップ１の概要について説明する。
図２において、業務プログラム２００は、Ｏｒａｃｌｅ（登録商標）のシーケンス機能等のシステム内で連番を取得する機能を利用して、当該要求をシステムで一意に識別するトランザクションＮＯ（以下、参照トランザクションＮｏと呼ぶ）を取得２０３し、参照権を確保したい伝票を検索し、参照トランザクションＮｏとその伝票を一意に識別するＩＤ（以下、伝票ＩＤと呼ぶ）のリストを、入力値２０１として伝票制御部１０に引き渡す。
伝票制御部１０は、参照トランザクションＮｏと伝票ＩＤのリストを参照権管理部１２に引渡し、参照権管理部１２は、参照権管理テーブル２２上に参照権確保２０４を行う。続いて、伝票制御部１０は、伝票ＩＤのリストを１件ずつ更新権管理部１１に引渡し、対象伝票データの更新権状態の取得２０７を、更新権管理部１１により更新権管理テーブル２１を読み込むことで行い、次に取得した更新権状態反映２１０を、参照権管理部１２を通じて、参照権管理テーブル２２に対して行う。
全ての伝票ＩＤの処理を完了したら、２０３で確保した参照トランザクションＮｏと、参照権管理テーブル２２の伝票ＩＤと参照権確保状態のリストを業務プログラム２００に返す。
【００２６】
次に、動作ステップ１の各部の制御動作に関して説明する。
図３は、図２における伝票制御部１０の動作の詳細を示すフローチャートである。
図３のステップ３１０１で、参照トランザクションＮｏを取得し、ステップ３１０２で、参照トランザクションＮｏと伝票ＩＤのリストを、参照権管理部１２に引き渡す。図２における参照権管理部１２の動作は図４に示す。
【００２７】
図４のステップ３２０１、３２０２、３２０３の制御動作の中で、引き渡された伝票ＩＤを１件ずつ、参照管理テーブル２２に登録する。参照権管理テーブル２２の構造は、図１８（ａ）に示すとおり、トランザクションＮｏ１０１０１と伝票ＩＤ１０１０２をキーとしており、必ず参照権管理テーブル２２内で一意となることが保証できるので、複数の業務プログラムの競合を考慮する必要はない。
なお、図１８のデータの状態１０１０３については、必ず確保を設定する。従って、参
照権管理テーブル２２の初期状態は、図１８（ｂ）に示す通りとなる。
【００２８】
図３に戻り、確保済の参照権に対して、すでに更新権の確保が行われており、無効とする必要のあるものを判定する。無効判定は参照権単位に実施し、図２における参照トランザクションＮｏを取得２０３以降に更新権確保要求を発行したトランザクション、または、図２における参照トランザクションＮｏを取得２０３以降に更新権開放を行ったトランザクションが存在した場合に、参照権を無効とする。すなわち、図３のステップ３１０３、３１０４、３１０８の制御動作の中で、引き渡された伝票ＩＤを１件ずつ、ステップ３１０５にて参照権の無効化を問合せ、無効となったものについて、ステップ３１０７で参照権を無効にする。
【００２９】
参照権の無効化を問合せは、ステップ３１０５で、１件の伝票ＩＤと参照トランザクションＮｏを更新権管理部１１に受け渡す。更新権管理部１１では、図５のように、受け渡された伝票ＩＤと同一伝票ＩＤを保持する更新権管理テーブル２１のレコードを全て取得し（ステップ３３０１）、参照トランザクションより大きい更新権確保時点でのトランザクションＮｏ（以下、確保トランザクションＮｏと呼ぶ）を持つ更新権管理テーブルが存在するか（ステップ３３０２）、または、参照トランザクションより大きい更新権開放時点でのトランザクションＮｏ（以下、開放トランザクションＮｏと呼ぶ）を持つ更新権管理テーブルが存在する場合（ステップ３３０３）に、戻り値を参照権無効に設定する（ステップ３３０５）。他の場合には、戻り値に参照権有効を設定する（ステップ３３０４）。
【００３０】
参照権を無効にする処理は、参照権管理部１２にて実施し、図６のステップ３４０１にて参照トランザクションＮｏと伝票ＩＤを元に参照権管理テーブル２２の検索を行い、ステップ３４０２にて、該当する参照権管理テーブル２２の内容を失効に設定する。参照権管理テーブル２２の一部を失効に設定した参照件管理テーブル２２の例を図１８（ｃ）に示す。
【００３１】
次に、動作ステップ２の概要について説明する。
図７において、業務プログラム４００は、図２の業務プログラム２００とは独立して非同期に実行するプログラムである。業務プログラム４００より、更新権を確保したい伝票ＩＤ４０１が伝票制御部１０に引き渡されると、伝票制御部１０は、更新権確保４０２を、更新権管理部１１を通じて、更新権管理テーブル２１に対して行う。更新権の確保に成功した場合は、続いて、参照権状態の更新を行うために、伝票ＩＤ４０１と同じ伝票ＩＤを持つレコードを、参照権管理部１２を通じ、参照権管理テーブル２２より検索し、当該レコードの参照権を失効に設定する。最後に、更新権の確保に成功したか、失敗したかの更新権確保結果４０９を業務プログラム４００に応答４０８する。
【００３２】
次に、動作ステップ２の各部の制御動作に関して説明する。
図８は、図７における伝票制御部１０の動作の詳細を示すフローチャートである。
図８のステップ５１０２にて、伝票ＩＤ４０１が更新権管理部１１に引き渡されると、更新権管理部１１は、図９のステップ５２００にて、更新権確保時点でのトランザクションＮｏ（確保トランザクションＮｏ）を、参照トランザクションＮｏと連番となるように同じ方法で取得する。続いて、ステップ５２０１にて確保トランザクションＮｏ、伝票ＩＤ、確保状態を確保に設定したレコードを更新権管理テーブル２１に挿入する。
続いて、ステップ５２０２にて、更新権管理テーブル２１をコミットする。続いて、ステップ５２０３とステップ５２０４にて、同一伝票ＩＤに対する更新権確保が２件以上行われていないかを確認する。ステップ５２０２前に実行すると、非同期で実行する他の業務プログラムとコミットしていない更新権管理レコードを同時に生成する可能性があるため、更新権の確保状態は、ステップ５２０２の後で実施する必要がある。
続いて、更新権の確保に成功した場合は、ステップ５２０８にて、戻り値を更新権取得済に設定する。更新権確保に失敗した場合は、ステップ５２０５にて、ステップ５２０１で作成したレコードを削除し、ステップ５２０６で、更新権管理テーブル２１をコミットし、ステップ５２０７で、戻り値に更新権未取得を設定する。
【００３３】
図８に戻り、伝票制御部１０は、ステップ５１０３〜ステップ５１０４にて、更新権確保済の場合の参照権の失効処理を行う。参照権の失効処理は、参照権管理部１２により、図１０のステップ５３０１〜ステップ５３０２にて、伝票ＩＤ４０１を持ち参照権が確保である全ての参照権管理レコードの状態を実行にすることで行う。ステップ５３０１では、当該伝票ＩＤをもち、参照権が失効していない参照権管理テーブルを検索する。ステップ５３０２で、条件に合致する全てのレコードの状態を失効に設定する。ステップ５３６０３で、参照権管理テーブルをコミットする。
【００３４】
次に、動作ステップ３の概要について説明する。
図１１において、業務プログラム６００は、図２の業務プログラム２００で確保した参照権確保済のデータに対して、参照権確保を前提とする更新トランザクション（継承型更新トランザクション）を実施する業務プログラムである。業務プログラム６００は、参照型更新権を確保した後、更新権を確保した伝票データを更新する。データ更新を完了したら、続いて、図１５の更新権開放を行う。図１５の業務プログラム８００は、業務プログラム６００と同じプログラムであり、図１１の処理に引き続き、図１５の処理を実施する。
【００３５】
伝票制御部１０による参照型更新権の確保は、図１１において、参照権管理部１２を通し、参照権の現在の状態の取得６０２を実施する。続いて、参照権を確保できているデータについて参照権の更新権への移行６０５を実施し、伝票ＩＤの各々について、更新権への移行結果を状態として保持する。続いて、参照権を再度取得６１１し、処理６０２〜処理６０５の間で他の業務プログラムが実施した更新権確保により、更新権確保以降で失効した参照権がないかどうかをチェックする。
参照権を失効している更新権については、不整合更新権の開放６１２で、更新権を開放する。続いて、参照権管理部１２を使用して、参照トランザクションＮｏで確保中の参照権の開放６１１を実施する。続いて、更新権取得結果応答６０８として、業務プログラムに対して、伝票ＩＤ毎の移行結果としての状態を戻り値６０９として応答する。
【００３６】
続いて、業務プログラムにて、更新権を確保した伝票に対してデータ更新を行った後、更新の開放を行う。図１５において、業務プログラム８００より、入力値８０１として、確保トランザクションＮｏと伝票ＩＤを受け渡されたら、伝票制御部１０は、更新権管理部１１を通じて、当該確保トランザクションＮｏと伝票ＩＤに相当する更新権管理テーブル２１上の更新権を開放８０２し、業務プログラムに対して、戻り値８０６に更新権開放結果が設定された更新権開放応答８０５を行う。
【００３７】
次に、動作ステップ３の各部の制御動作に関して説明する。
図１２は、図１１における伝票制御部１０の詳細を示すフローチャートである。ステップ７１０１にて参照トランザクションＮｏ６０１を受け取り、参照権管理部１２にて、図１３のステップ７２０１〜ステップ７２０３の処理で、参照権管理テーブル２２を検索し、検索結果を伝票管理部１０に対して戻す。戻り値は、複数の伝票ＩＤ、参照権状態を持つリストの形式となる。
図１３のステップ７２０１では、参照トランザクションＮｏと一致する参照権管理テーブルを検索する。ステップ７２０２で、検索結果をメモリ上のテーブルに設定する。次いで、ステップ７２０３で、参照権管理テーブルの検索結果を戻り値に設定する。
【００３８】
図１２に戻り、伝票管理部１０において、ステップ７１０３〜ステップ７１１２の処理で、取得した伝票ＩＤについて１件ずつ、参照権状態を評価し、ステップ７１０８にて参照権確保状態である伝票ＩＤについて、更新権の確保を試みる。更新権が確保できた場合は、ステップ７１１０にて、当該伝票の更新権を確保済に設定する。参照権確保状態でない場合（ステップ７１０６）や、更新権が確保できなかった場合（ステップ７１０９）は、ステップ７１１１にて更新権を未確保に設定する。更新権の確保については、更新権管理部１１により、図１４のステップ７３０１で行うが、これは図９とまったく同じ処理である。
【００３９】
続いて、参照権を前提とする更新権確保の過程で参照権の失効が発生していないかどうかをチェックする。ステップ７１１３にて再度参照権の状態を取得し、ステップ７１１４〜ステップ７１２１の制御処理により、全ての参照権について、ステップ７１１７で参照権が確保されていない状態（開放状態）となっているかどうかをチェックし、ステップ７１１８で参照権が開放状態の伝票について、更新権を確保していないかどうかをチェックする。双方のチェックを満足した伝票は、参照権開放状態で更新権を確保しているため、ステップ７１１９で更新権を開放し、ステップ７１２０で戻り値を更新権未確保に設定し直す。
【００４０】
以上の処理により、参照権の更新権への移行を完了するので、続いて業務プログラムにて伝票データの更新処理を行い、更新を完了後に、更新権の開放を行う。
更新権の開放は図１６のように行われる。
伝票制御部１０は、図１６のステップ９１０１で、対象となる確保トランザクションＮｏと伝票ＩＤを業務プログラムより受領する。ステップ９１０２で、更新権管理部１１を呼び出す。ステップ９１０３で、更新権管理部１１は、更新権確保結果を設定する。
【００４１】
更新権管理部の更新権の開放の制御ロジックは、図１７に示すとおりである。
図１７で、更新権管理部１１は、ステップ９２０１で、確保トランザクションＮｏと当該伝票ＩＤを持つ更新権管理テーブルを検索する。次いで、ステップ９２０２で、対象の更新権管理レコードの状態を失効に設定する。
【００４２】
上述のように本発明は、更新処理を排他するための更新権管理に加えて、伝票の排他制御処理に対して、データの参照からそのデータを更新するまでのデータの一貫性を管理する参照権管理を追加した。このため、伝票データの参照から排他処理を行うまでの間の他の業務プログラムによるデータ更新を検知することができ、誤ったデータ更新を避けることができ、トランザクション処理の信頼性が向上できる。
また、データの保証処理を共通プログラムで実現するため、個別の業務プログラムの生産量を減らすことができる。
【００４３】
実施の形態１によれば、大量データの参照整合性保証を実現するように構成したので、大量データ更新処理を通常の編集処理と平行して実施することが可能となる。
また、更新可能性のあるデータの一覧取得である更新権取得までの間のデータ整合性保証を行うため、業務プログラムとしての実装は不要となり、開発効率が向上する。
さらに、全ての業務プログラムとして、統一した方式で実現するため、ソフトウェアの品質が向上する。
【符号の説明】
【００４４】
１  本業務プログラム
２  更新候補伝票参照権取得処理
３  更新対象伝票選択処理
４  参照型更新権取得処理
５  業務データ更新処理
６  他業務プログラム
７  更新権取得処理
８  業務データ更新処理
９  業務排他管理装置
１０  伝票制御部
１１  更新権管理部
１２  参照権管理部
１３  データベース
１４  伝票データ
１５  更新権開放処理
２１  更新権管理テーブル
２２  参照権管理テーブル
【図１】
2010277347.tif 000003
【図２】
2010277347.tif 000004
【図３】
2010277347.tif 000005
【図４】
2010277347.tif 000006
【図５】
2010277347.tif 000007
【図６】
2010277347.tif 000008
【図７】
2010277347.tif 000009
【図８】
2010277347.tif 000010
【図９】
2010277347.tif 000011
【図１０】
2010277347.tif 000012
【図１１】
2010277347.tif 000013
【図１２】
2010277347.tif 000014
【図１３】
2010277347.tif 000015
【図１４】
2010277347.tif 000016
【図１５】
2010277347.tif 000017
【図１６】
2010277347.tif 000018
【図１７】
2010277347.tif 000019
【図１８】
2010277347.tif 000020
【図１９】
2010277347.tif 000021