(57)【要約】【課題】  簡単な構成により、不適切なアクセスを排除して、正しい確定処理を行って、適切なロング・トランザクション処理が行われるようガードする。【解決手段】  仮実行された項目を記憶する仮実行データベース１０１と、確定された項目を記憶する確定データベース１０２と、検索要求により上記仮実行データベース中のこの要求された項目を検索する最新データ参照機能部１４と、仮実行要求により上記仮実行データベース中のこの要求された項目を更新する更新仮実行機能部１１と、確定要求により上記確定データベース中のこの要求された項目に上記仮実行データベースの対応項目のデータをコピーする更新確定機能部１２と、取消要求により上記仮実行データベース中のこの要求された項目に上記確定データベースの対応項目のデータをコピーする更新取消機能部１３と、を備えた。【選択図】        図１
2006268389.tif 000002
【特許請求の範囲】
【請求項１】
仮実行された項目を記憶する仮実行データベースと、確定された項目を記憶する確定データベースと、
検索要求により上記仮実行データベース中の該要求された項目を検索する最新データ参照機能部と、
仮実行要求により上記仮実行データベース中の該要求された項目を更新する更新仮実行機能部と、
確定要求により上記確定データベース中の該要求された項目に上記仮実行データベースの対応項目のデータをコピーする更新確定機能部と、
取消要求により上記仮実行データベース中の該要求された項目に上記確定データベースの対応項目のデータをコピーする更新取消機能部と、を備えたことを特徴とするロング・トランザクション管理装置。
【請求項２】
更新仮実行機能部は、要求された仮実行データベース中の項目と、確定データベース中の対応する項目とを比較して、不一致であればエラーとして仮実行データベースの更新は行わないことを特徴とする請求項１記載のロング・トランザクション管理装置。
【請求項３】
更新確定機能部は、要求された仮実行データベース中の項目と、確定データベース中の対応する項目とを比較して、一致していればエラーとして確定データベースの更新は行わないことを特徴とする請求項１記載のロング・トランザクション管理装置。
【請求項４】
検索要求により仮実行データベース中の該要求された項目を検索する最新データ参照ステップと、
仮実行要求により上記仮実行データベース中の該要求された項目を更新する更新仮実行ステップと、
確定要求により確定データベース中の該要求された項目に上記仮実行データベースの対応項目のデータをコピーする更新確定ステップと、
取消要求により上記仮実行データベース中の該要求された項目に上記確定データベースの対応項目のデータをコピーする更新取消ステップと、を備えたことを特徴とするロング・トランザクション管理方法。
【請求項５】
計算機が実行可能なプログラムを記録した記録媒体であって、
検索要求により仮実行データベース中の該要求された項目を検索する最新データ参照ステップと、
仮実行要求により上記仮実行データベース中の該要求された項目を更新する更新仮実行ステップと、
確定要求により確定データベース中の該要求された項目に上記仮実行データベースの対応項目のデータをコピーする更新確定ステップと、
取消要求により上記仮実行データベース中の該要求された項目に上記確定データベースの対応項目のデータをコピーする更新取消ステップと、を計算機に実行させるプログラムとして記録したことを特徴とする計算機読み取り可能なロング・トランザクション管理プログラム記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オンライン情報処理システムにおけるデータベースシステムへの問合せ、内容変更に関するものであり、特にロング・トランザクションと称される処理の信頼性向上に関するものである。
【背景技術】
【０００２】
Ｗｅｂサービスなどの普及より、疎結合型の分散処理が広まるにつれ、従来のＡＣＩＤ特性を備えたトランザクションだけでは現実的な処理が難しくなっている。このため、処理時間が長い（数分〜数日）業務処理を「ロング・トランザクション」と呼んで、短いアトミックなトランザクションと別の方法で処理することが一般的になりつつある。
標準的なロング・トランザクション処理技術として非特許文献１の「ＢＴＰによるトランザクション管理」によれば、ロング・トランザクション処理は、処理確定までの時間が長いトランザクションを処理するための方式であり、いったんトランザクションを「仮実行」としてコミット（委託実行）してしまい、処理が確定した時点で「確定」処理を行う。そして後でトランザクションをコミットできない理由が発生した場合、元のトランザクションの効果を打ち消す「補償トランザクション」を実行して「取消」を行う。こうすることで、トランザクション確定までの間、そのトランザクションが使用するリソースを占有し続けることを回避している。
【０００３】
また例えば特許文献１のデータベースアクセス方法」によれば、主にホスト計算機の負荷軽減を目的として、更新前イメージを保持するデータベースと更新後イメージを保持するデータベースを記憶装置サブシステムが管理する方法を提案している。そして、より短い処理時間のトランザクションに対して、先行する読み込みトランザクションがあっても後続の更新トランザクションが即時に実行可能にする方法が示されている。
【特許文献１】特開２００２−１３２５５４号公報
【非特許文献１】ｈｔｔｐ：／／ｗｗｗ．ｘｍｌｃｏｎｓｏｒｔｉｕｍ．ｏｒｇ／ｗｅｂｓｖ／ｋａｉｓｅｔｓｕ／Ｃ１６／ｍａｉｎ．ｈｔｍｌｃ  ＸＭＬコンソーシアム、小山和也  著「ＢＴＰによるトランザクション管理」
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来のロング・トランザクション処理技術は上記のように構成されており、以下のような課題がある。
第１に、仮実行の後に不適切な後続処理が行われないように、業務／アプリケーションでガードが必要である。例えば、座席予約に対して確定前に発券を行わないなどのチェックが必要である。
第２に、補償トランザクションは一般には各トランザクション毎に作成する必要があり煩雑である。
【０００５】
この発明は上記の課題を解決するためになされたもので、簡単な構成により、不適切なアクセスを排除して、正しい確定処理を行って、適切なロング・トランザクション処理が行われるようガードすることを目的とする。
【課題を解決するための手段】
【０００６】
この発明に係るロング・トランザクション管理装置は、仮実行された項目を記憶する仮実行データベースと、確定された項目を記憶する確定データベースと、
検索要求により上記仮実行データベース中のこの要求された項目を検索する最新データ参照機能部と、
仮実行要求により上記仮実行データベース中のこの要求された項目を更新する更新仮実行機能部と、
確定要求により上記確定データベース中のこの要求された項目に上記仮実行データベースの対応項目のデータをコピーする更新確定機能部と、
取消要求により上記仮実行データベース中のこの要求された項目に上記確定データベースの対応項目のデータをコピーする更新取消機能部と、を備えた。
【発明の効果】
【０００７】
この発明によれば、仮実行や確定など、通常のロング・トランザクションに必要な機能のみを用いているので、余分なガード機能が必要で無く、また補償トランザクション等も必要無く、システムが簡単になるという効果がある。
【発明を実施するための最良の形態】
【０００８】
実施の形態１．
図１はこの発明の実施の形態１におけるトランザクション管理装置を示すシステム構成図であり、またその機能の内容を示す図である。この図において、以下の各機能は、具体的な例として図示しないプロセッサと、各機能を記述したプログラムを記憶したメモリと、内部バスとで構成されるハードウェアにより、上記プロセッサがこの機能記述プログラムを読み取って、プログラム内容を実行して得られる。即ち各機能部は、ハードウェアとしてはプログラムを記載したメモリであり、その上に書かれたプログラムをプロセッサが読み取って実行することで機能が得られる。こうしたハードウェア構成はよく知られているので、ここでは詳述しない。
先ず図１において、ロング・トランザクション管理装置１は全体を示し、その中に本構成において重要で新規な構成要素として、更新仮実行機能部１１と、更新確定機能部１２と、更新取消機能部１３と、未確定データを含めた最新データ参照機能部１４を備えている。その他に確定データ参照機能部１５も備えている。
【０００９】
またロング・トランザクション管理装置１からアクセスされるデータベースとして、座席予約についての仮実行ＤＢ（データベース）１０１と、同じく確定ＤＢ（データベース）１０２がある。
また外部の端末３からロング・トランザクション管理装置１を経由して仮実行ＤＢ１０１や確定ＤＢ１０２にアクセスする機能部の例として図では、座席予約アプリケーション１  ３１１、座席予約アプリケーション２  ３１２、予約確認アプリケーション１  ３２１、予約確認アプリケーション２  ３２２、発券手配アプリケーション３３１がある。これらの端末３の機能（アプリケーション）も、ロング・トランザクション管理装置１での構成のように、端末３のメモリに書かれたプログラムを図示しないプロセッサで読み取って実行することで得られる。そして図中の矢印を含む線と引出説明部は、該当する機能部が行う動作を説明する説明文である。
【００１０】
次に図１に示すロング・トランザクション管理装置１の動作を図１と、図２に示す装置の動作フローチャートに基いて説明する。
まず端末３が座席予約アプリケーション１  ３１１により、Ａ氏のための空きを検索して座席を確保しようとする。この際、ロング・トランザクション管理装置１のうち、最新データ参照機能部１４を用いて、Ｓ２０３で空いている座席を見つける。こうして座席１が見つかったとする。
次に、この座席予約アプリケーションにより、更新仮実行機能部１１を用いて、Ｓ２０４とＳ２０７で、その座席１の予約を仮実行する。この結果、座席予約仮実行ＤＢ１０１のみ更新され、座席予約確定ＤＢ１０２は更新されない。この場合に本実施の形態においては、仮実行は必ず更新仮実行機能部１１のみが受付を行い、上記動作を行う。
ついで、端末３から座席予約アプリケーション２によりＳ２０３で空きを検索して座席を確保しようとする。この際にロング・トランザクション管理装置１では、最新データ参照機能部１４を用いて、確定していなくても予約が仮に入っているものは選ばないようにして検索する。この結果、上記の座席１は除かれ、座席２を見つけ、上記座席予約アプリケーション３１１を起動とする動作と同様にＳ２０７で、これの予約を仮実行する。
【００１１】
一定の時日が経過するなど、業務的な要件に沿って端末３から予約確認アプリケーション１  ３２１により確認動作が起動する。この際、Ａ氏は座席１の予約を取消す意思はないのものとする。予約確認アプリケーション１はＳ２０８とＳ２１１で、更新確定機能部１２を経由して座席１の更新を確定する。この際、更新確定機能部１２によって、座席予約仮実行ＤＢ１０１の座席１に関するレコードが、座席予約確定ＤＢ１０２の座席１に関するレコードに複写される。
同じく、予約確認アプリケーション２  ３２２により座席２の予約について確認するが、Ｂ氏は予約を取消したとする。予約確認アプリケーション２は更新取消機能部１３によってＳ２１２とＳ２１３で仮実行された座席２の予約を取消す。この際、更新取消機能部１３によって、座席予約確定ＤＢ１０２の座席２に関するレコードが、座席予約仮実行ＤＢ１０１の座席２に関するレコードに複写される。
業務担当者は随時、発券手配アプリケーションを動作させて予約が確定した座席についてＳ２１５で対応処理、つまりこの場合は発券をする。発券手配アプリケーション３３１は、確定データ参照機能部１５を用いて発券対象をＳ２１４で検索する。確定データ参照機能部１５は座席予約確定ＤＢ１０２を検索するので、上述の予約確認アプリケーション１によって予約が確定するまでは何も検索されない。また座席２については座席予約確定ＤＢ１０２に反映されることはないので、検索されない。
【００１２】
以上のように、このロング・トランザクション管理装置１では、仮実行、確定、取消に必要な機能を別々の専用のアクセス窓口となる機能部とし、データベースを仮実行ＤＢ１０１と確定ＤＢ１０２とで別のデータを記憶する二つのデータベース構成として、確定・取消のための内部処理をアプリケーションレベルで意識することなく実行できるようにしている。
従ってアプリケーションは、このロング・トランザクション管理装置の機能を使い分ける以外は、不適切な処理をガードするための処理は不要であり、また取消処理を行いたい場合は更新取消機能部を用いるだけでよく、個別の補償トランザクションの作成が不要である。
【００１３】
実施の形態２．
実施の形態１においては、アプリケーションからの予約と確認の順序が正しい場合を説明した。しかしこうした確定までの順序が異なる不正な命令順序に対してもシステムをガードする構成と動作を説明する。
図３はこの実施の形態におけるロング・トランザクション管理装置のシステム構成と機能を示す図である。また図４は、本実施の形態におけるロング・トランザクション管理装置１ｂ中の、更新仮実行機能部２１の処理動作を示すフローチャートである。即ち図２の動作フローチャートにおいて、実施の形態１では触れなかったＳ２０６の照合１の動作詳細を示す図である。
図３において、更新仮実行機能部２１は、図４で説明する動作を行う。またその動作を説明するために、図３では正しい検索を行わずに更新仮実行を行おうとする不正な命令順序で処理を行おうとするアプリケーション３４１を示している。その他の構成要素は実施の形態１の図１と同様である。
【００１４】
次に動作について説明する。
座席予約アプリケーション１  ３１１と座席予約アプリケーション２  ３１２、予約確認アプリケーション１  ３２１、予約確認アプリケーション２  ３２２、発券手配アプリケーション３３１の動作と、それに伴うロング・トランザクション管理装置の動作は実施の形態１と同様とする。
いま、座席予約アプリケーション１、２の動作後で予約確認アプリケーション１、２が動作する前のタイミングで、不正アプリケーション３４１が動作し、座席１の予約を仮実行しようとしたとする。つまり最新データ参照機能部１４の受付を済まさない状態でいきなり更新仮実行を要求する。これは例えば確定データ参照機能部１５による動作を終えた直後に最新データ参照機能部１４を飛ばして更新仮実行機能部２１で動作を実行する場合等である。この際、実施の形態１のロング・トランザクション管理装置では、既に予約が仮実行されている座席１について不正アプリケーションが二重更新してデータベースを不整合な状態にしてしまうことを検知できない。
【００１５】
しかしこの実施の形態においては、更新仮実行機能部２１が専ら仮実行要求を受けつけるので、座席１は座席予約仮実行ＤＢ１０１と座席予約確定ＤＢ１０２の内容が異なっていることを図４のステップＳ３０１で比較し、不一致により仮実行の対象とならず、エラーが返される。正しい順序の仮実行処理の場合のみ、Ｓ３０２で仮実行処理がなされる。
以上のように、更新仮実行機能部の使い方を誤った場合でも仮実行ＤＢ１０１と確定ＤＢ１０２の不整合を回避できる。
【００１６】
実施の形態３．
本実施の形態においては、他の不正アプリケーションからのアクセスをエラーとする構成と動作を説明する。
図５はこの実施の形態におけるロング・トランザクション管理装置１ｃの構成と機能を示す図である。また図６は、図５におけるロング・トランザクション管理装置１ｃ中の、更新確定機能部３２の処理動作を示すフローチャートであり、図１における照合２の詳細を示す図である。
図５において、本実施の形態の更新確定機能部３２は、図６に示す動作を行い、正しい仮実行を踏まえずに更新確定を行おうとする不正な命令使用順序で処理を行おうとするアプリケーション３５１を用いて、その動作を説明する。その他の構成要素は、実施の形態１、図１と同様である。
【００１７】
次に動作について説明する。
座席予約アプリケーション１、２と、予約確認アプリケーション１、２と、発券手配アプリケーションの動作、及びそれに伴うロング・トランザクション管理装置の動作は実施の形態１と同様とする。
いま、予約確認アプリケーション２が動作した後に、不正アプリケーション３５１が動作し、座席２の予約を確定しようとしたとする。この際、実施の形態１のロング・トランザクション管理装置では、データの実体は同一なので確定の実質的効果はないにもかかわらず正常に処理が完了する。
しかし本実施の形態における更新確定機能部３２によれば、図６の動作フローに従って動作し、ステップＳ５０１において、座席２はその前に予約確認アプリケーション２によって取消が行われて、座席予約仮実行ＤＢ１０１と座席予約確定ＤＢ１０２の内容が既に同一に戻っていることから警告が返される。正しい順序で仮実行がなされると、Ｓ５０２つまりＳ２１１の複写が実行されて正常報告が戻され、後に発券手配がされる。
以上のように、更新確定機能部の使い方を誤った場合にプログラム誤りを検知できる。
この方式は、更新取消機能部にも適用できる。
【００１８】
実施の形態４．
上記各実施の形態では、ロング・トランザクション管理装置は各機能部が対応する機能プログラムを持つ専用の装置であるとして説明した。しかしこの主旨はそうした専用装置に限定されることは無く、汎用の計算機に図２に示す動作フロー図を実現する機能を持たせるようにしても同様の効果が得られる。
即ち図１に示して実施の形態１と図２で機能を説明した、最新データ参照機能部１４、更新仮実行機能部２１、更新確定機能部３２、更新取消機能部１３をプログラムとして記憶して、図２の動作を行わせるようにしてもよい。
また更に、図２の動作を行うプログラムを計算機が読み取り可能な記録媒体に記録して保存し、この記録媒体を汎用計算機が読み取って図１、図３、図５の機能を実現するようにしてもよい。
【図面の簡単な説明】
【００１９】
【図１】この発明の実施の形態１におけるロング・トランザクション管理装置の構成と、その各機能の内容を示す図である。
【図２】実施の形態１におけるトランザクション管理装置の動作を示すフロー図である。
【図３】この発明の実施の形態２におけるロング・トランザクション管理装置の構成と、その各機能の内容を示す図である。
【図４】実施の形態２における更新仮実行機能部２１の動作を示すフロー図である。
【図５】この発明の実施の形態３におけるロング・トランザクション管理装置の構成と、その各機能の内容を示す図である。
【図６】実施の形態３における更新確定機能部３２の動作を示すフロー図である。
【符号の説明】
【００２０】
１，１ｂ，１ｃ  ロング・トランザクション管理装置、３  端末、１１  更新仮実行機能部、１２  更新確定機能部、１３  更新取消機能部、１４  最新データ参照機能部、１５  確定データ参照機能部、２１  更新仮実行機能部、３２  更新確定機能部、１０１  座席予約仮実行データベース（ＤＢ）、１０２  座席予約確定データベース（ＤＢ）、Ｓ２０３  空き座席検索ステップ、Ｓ２０６  照合１ステップ、Ｓ２０７  予約仮実行ＤＢ更新ステップ、Ｓ２１０  照合２ステップ、Ｓ２１１  確定ＤＢに仮実行ＤＢからコピーするステップ、Ｓ２１３  仮実行ＤＢに確定ＤＢからコピーするステップ。
【図１】
2006268389.tif 000003
【図２】
2006268389.tif 000004
【図３】
2006268389.tif 000005
【図４】
2006268389.tif 000006
【図５】
2006268389.tif 000007
【図６】
2006268389.tif 000008