JP2003345609A - トランザクション処理装置、同装置のトランザクション処理方法、トランザクション処理プログラムおよび同プログラムを記録したコンピュータ読み取り可能な記録媒体 - Google Patents

トランザクション処理装置、同装置のトランザクション処理方法、トランザクション処理プログラムおよび同プログラムを記録したコンピュータ読み取り可能な記録媒体

Info

Publication number
JP2003345609A
JP2003345609A JP2002152928A JP2002152928A JP2003345609A JP 2003345609 A JP2003345609 A JP 2003345609A JP 2002152928 A JP2002152928 A JP 2002152928A JP 2002152928 A JP2002152928 A JP 2002152928A JP 2003345609 A JP2003345609 A JP 2003345609A
Authority
JP
Japan
Prior art keywords
transaction
processing
scenario
execution
history
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2002152928A
Other languages
English (en)
Other versions
JP4262932B2 (ja
Inventor
Daishiro Yokozeki
大子郎 横関
Shunsuke Miyata
俊介 宮田
Koji Tokumaru
浩二 徳丸
Masataka Suzuki
将貴 鈴木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2002152928A priority Critical patent/JP4262932B2/ja
Publication of JP2003345609A publication Critical patent/JP2003345609A/ja
Application granted granted Critical
Publication of JP4262932B2 publication Critical patent/JP4262932B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】たとえば業務レベル等でのデータの一貫性を確
保するための打消処理を効率的に実行することを可能と
したトランザクション処理装置を提供する。 【解決手段】この発明のトランザクション処理装置は、
入れ子トランザクションにおける親と子のトランザクシ
ョンの履歴情報を関連付けることにより、親のトランザ
クションにおける障害時に、子のトランザクションまで
遡って打消処理を実行することを可能とする。そして、
この子トランザクションに対して打消処理を関連付ける
ことにより、当該子トランザクションを構成する複数の
処理を一括して効率的に打ち消すことを可能とする(処
理21,22を打消処理2’、処理31,32を打消処
理3’で一括して打ち消すことを可能とする)。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、処理手順を記述
したシナリオに従って、一連の複数の処理から構成され
るトランザクションを処理するトランザクション処理装
置、同装置のトランザクション処理方法、トランザクシ
ョン処理プログラムおよび同プログラムを記録したコン
ピュータ読み取り可能な記録媒体に係り、特に、たとえ
ば業務レベル等でのデータの一貫性を確保するための打
消処理を効率的に実行することを可能としたトランザク
ション処理装置、同装置のトランザクション処理方法、
トランザクション処理プログラムおよび同プログラムを
記録したコンピュータ読み取り可能な記録媒体に関す
る。
【0002】
【従来の技術】近年、コンピュータの処理能力の向上や
ネットワーク環境の整備等に伴い、様々な業種で数多く
の業務処理が電算化されている。そして、この業務処理
の電算化に関し、データの更新を伴う一連の不可分な処
理を実行する技術として、ACIDベースのトランザク
ションが広く知られている。
【0003】このACIDトランザクションは、該当リ
ソースに対するロックを基本とした同期的なトランザク
ション処理が適用領域である。したがって、処理効率の
観点から見ると、非同期的な処理を含むトランザクショ
ンには適していない。なぜなら、本方式では、該当デー
タにロックを行い、他のトランザクションからのアクセ
スを妨げてしまうからである。たとえば、「在庫管理シ
ステムから在庫を引き当て、この引き当てに成功した場
合に、配送管理システムに対して配送要求を非同期的に
要求し、この配送の予約結果が(非同期的に)返却され
た時点で、処理の成功とみなす。」といった例を考えて
みる。
【0004】この例で言うと、本方式の場合、在庫管理
システムへのアクセス開始から配送管理システムより非
同期に到着する結果が来るまでの間、在庫情報はロック
されることになる。そのため、ある在庫引当完了から配
送の非同期の予約結果を待つ間、その在庫情報にアクセ
スする他のトランザクションが待たされることになって
しまう。
【0005】つまり、ACIDベースのトランザクショ
ンは、データの更新を伴う一連の不可分なトランザクシ
ョン処理を実行する場合、処理の開始時点から終了時点
まで該データに対してロックを取得し続ける必要があ
り、そのために、一連の処理手順中に非同期的な処理等
を含む場合、そのトランザクションと同一データにアク
セスを行う他のトランザクションに実行が妨げられ、処
理効率が落ちるという問題があった。このように、本方
式は、非同期的な処理などを含む長期間に渡る可能性の
あるトランザクションに適していない。
【0006】一方、このような非同期処理を含む場合の
トランザクション保証技術として、SAGAが知られて
いる(トランザクション処理技術入門(フィリップ・A
・バーンスタイン、エリック・ニューカマー著、日経B
P社、ISBN 4−8222−8026−8))。
【0007】このSAGAにおいては、トランザクショ
ンを構成する各処理(アクティビティ)の実行の時のみ
更新対象のデータに対してロックをかけ、トランザクシ
ョンの途中で処理が失敗した場合には、データを元の状
態に戻す打消し処理を起動する。先の例で言うと、本方
式の場合、在庫管理システムからロックをかけずに在庫
引き当てる時に更新対象の在庫情報にロックをかけ、在
庫引き当てに成功した場合、ロックを解除し、配送管理
システムに対して同様に予約を行う。この場合、あるト
ランザクションが配送管理システムからの結果を待って
いる間、他のトランザクションは待たされることはな
く、その処理効率はACIDトランザクションに比べて
向上していると言える。
【0008】また、そのために、このSAGAは、トラ
ンザクションを構成する各処理の実行履歴情報をリスト
として管理する。そして、障害発生時には、この実行履
歴情報のリストを実行順序の逆順に辿り、各処理を打ち
消す補償処理を逐次実行していく。このように、本方式
は、データをロックしないため、並行に動作している別
のトランザクションが待たされるという問題は発生しな
い。
【0009】一方、たとえば在庫引当処理というトラン
ザクションが複数実行されている状況において、あるト
ランザクションで障害が発生した場合、そのトランザク
ションの打消処理が実行されるまでの間、在庫は引き当
てられたままになり、別のトランザクションでは、その
トランザクションによって引き当てられた在庫が利用で
きない状況が続くことになる。このため、障害が発生し
た場合、速やかに打消処理の実行が完了することが必要
である。
【0010】
【発明が解決しようとする課題】ところで、このSAG
Aにおいては、リスト構造で管理された履歴に従って打
消処理を実現していくが、一連の複数の処理を一括して
消すことが可能である場合には、この履歴に従って一つ
ずつ打消処理を実行する方法は効率が悪い。そして、こ
のSAGAは、実行履歴を一次元のリスト構造により管
理しており、たとえば図12に示す在庫引当処理(21,2
2)や配送予約処理(31,32)等、まとまった処理の単位を
管理する機構を持たない。そのため、履歴中のある部分
を一括して効率的に打ち消すといったことを行うことが
できなかった。
【0011】この発明は、このような事情を考慮してな
されたものであり、たとえば業務レベル等でのデータの
一貫性を確保するための打消処理を効率的に実行するこ
とを可能としたトランザクション処理装置、同装置のト
ランザクション処理方法、トランザクション処理プログ
ラムおよび同プログラムを記録したコンピュータ読み取
り可能な記録媒体を提供することを目的とする。
【0012】
【課題を解決するための手段】前述した目的を達成する
ために、この発明は、処理手順を記述したシナリオに従
って、一連の複数の処理から構成される各種トランザク
ションを処理するトランザクション処理装置において、
いずれかのシナリオで記述されたトランザクション中の
一処理として別のシナリオで記述されたトランザクショ
ンが呼び出された際、そのトランザクションに対する実
行履歴を参照するための情報を前記呼び出し元のトラン
ザクション中の該処理に対応する実行履歴要素として記
録することにより、同一の階層構造を構成する複数のト
ランザクションの実行履歴を階層的に管理する履歴管理
手段と、いずれかの処理において障害が発生したとき
に、その処理を含むトランザクション区間に対応する前
記履歴管理手段により階層的に管理された実行履歴を最
後尾から辿り、その実行履歴で示される各処理に予め対
応づけられた打消処理を逆順に実行する打消処理手段と
を具備することを特徴とする。
【0013】また、この発明は、前記履歴管理手段が、
各々の要求メッセージおよび応答メッセージの少なくと
も一方を各処理の実行履歴要素として記録することを特
徴とする。
【0014】また、この発明は、前記打消処理手段が、
前記別のシナリオで記述されたトランザクションを構成
する各処理を、前記呼び出し元のトランザクション内の
一処理に予め対応づけられた打消処理により一括して打
ち消すことを特徴とする。
【0015】この発明においては、あるトランザクショ
ン実行中に別のトランザクションを呼び出すことを可能
とするために、トランザクションを構成する各アクティ
ビティ毎の実行履歴情報の一要素として、各々の要求メ
ッセージおよび応答メッセージと子履歴情報を参照する
ための情報とを保持する。
【0016】より具体的には、たとえばある(親)トラ
ンザクション実行中の処理(アクティビティ)として別
のシナリオを呼び出し、(子)トランザクションを実現
する場合、親の履歴情報の該アクティビティに対応する
履歴要素として、要求メッセージ、応答メッセージ、子
の履歴情報を参照するための情報を書き込む。
【0017】このように、この発明では、入れ子トラン
ザクションにおける親と子のトランザクションの履歴情
報を関連付けることにより、まず、親のトランザクショ
ンにおける障害時に、子のトランザクションまで遡って
打消処理を実行することを可能とする。
【0018】そして、この発明は、これら履歴情報を階
層的に管理することにより、トランザクション区間を階
層的に設定可能とする。すなわち、このトランザクショ
ン区間に対して打消処理を関連付けることにより、一括
して処理の打消しを行えるようにし、起動する打消処理
の数を削減して、処理効率の向上を実現する。
【0019】
【発明の実施の形態】以下、図面を参照してこの発明の
一実施形態を説明する。図1は、この発明の実施形態に
係るシナリオ制御システムの構成を示す図である。
【0020】この実施形態のシナリオ制御システムは、
業務処理手順が記述されたシナリオに従って、一連の複
数の処理から構成されるトランザクションを処理するも
のであり、図1に示すように、要求受付プログラム10
1、受信アダプタ102、メッセージ管理プログラム1
03、シナリオ制御プログラム104および送信アダプ
タ105の各処理部と、シナリオ管理用DBMS121
およびシナリオリポジトリ122の各データ部とを有し
ている。また、図中のサーバ130は、それぞれこのシ
ナリオ制御システムにより連携を行う対象である既存の
サーバシステムである。
【0021】要求受付プログラム101は、サーバ13
0から処理の要求メッセージを受け付け、この要求メッ
セージの中に含まれる識別子に応じて、適切な受信アダ
プタ102を選択し、その要求メッセージを選択した受
信アダプタ102に渡すプログラムである。一般に、要
求メッセージの中には、Service、Action等の識別子が
埋め込まれており、要求受付プログラム101は、この
識別子に応じた対応テーブル等により、受信アダプタ1
02を選択する。つまり、受信したメッセージの種別に
応じて、適切な受信アダプタ102が選択、起動され
る。
【0022】受信アダプタ102は、サーバ130から
送信されたメッセージを要求受付プログラム101より
受け取り、プロトコル変換等の処理を行った後、シナリ
オの起動要求や実行要求をメッセージ管理プログラム1
03経由でシナリオ制御プログラム104に送信するプ
ログラムである。この受信アダプタ102は、一般に複
数存在し、要求受付プログラム101によって起動され
る。なお、ここでシナリオとは、前述した通り、業務処
理の手順を記述した文書であり、シナリオは、名前によ
り一意に特定することが可能である。
【0023】メッセージ管理プログラム103は、一般
に、MQ(Messaging Queue)として知られるプログラ
ムであり、送信されたメッセージを一時的に蓄積し、F
IFO(First In First Out)の順番で、指定された宛
先に送信するプログラムである。
【0024】シナリオ制御プログラム104は、このシ
ナリオ制御システム100の中核を担うプログラムであ
り、シナリオ・リポジトリ122にアクセスしてシナリ
オの記述情報を取得し、シナリオ実行に際して、使用さ
れる作業エリアであるシナリオ・インスタンス情報(以
下、インスタンス情報という)の管理やシナリオの起
動、実行、終了処理を行う。また、このシナリオ制御プ
ログラム104は、アクティビティ管理プログラム10
6、履歴管理プログラム107および打消処理制御プロ
グラム108を有している。
【0025】アクティビティ管理プログラム106は、
トランザクションを構成する各処理(以下、アクティビ
ティという)を指し示す識別子と具体的に起動するプロ
グラムの物理名との対応を保持するプログラムである。
【0026】履歴管理プログラム107は、アクティビ
ティ毎の実行履歴情報を、後述するインスタンスIDと
関連付けて保持するプログラムである。実行履歴情報
は、アクティビティに対して送信する要求メッセージや
結果として受け取った応答メッセージ、子履歴情報を参
照するための情報、履歴通番、シナリオ上での実行位置
(シナリオ名、状態名)から構成される。また、履歴通
番とは、各アクティビティの実行順序を示す番号であ
る。
【0027】打消処理制御プログラム108は、履歴管
理プログラム107から取得した履歴情報を評価し、打
消処理を実行していくプログラムである。
【0028】そして、送信アダプタ105は、サーバ1
30との間の通信を司るプログラムであり、一般に複数
存在する。この送信アダプタ105は、サーバ130の
プロトコルに合わせたプロトコル変換等を行い、該サー
バ130に対して処理の依頼を行う。また、処理が同期
型の場合、処理結果である応答メッセージを取得する処
理も行う。
【0029】前述したように、従来のSAGAにおいて
は、実行履歴を一次元のリスト構造により管理してお
り、まとまった処理の単位を管理する機構を持たないた
め、履歴中のある部分を一括して効率的に打ち消すとい
ったことを行うことができなかった。そこで、このシナ
リオ制御システム100では、たとえば図2(A)に示
すように、処理手順を階層化する。また、これに合わせ
て、トランザクションも入れ子構成が可能となるよう、
図2(B)に示すように、トランザクションを構成する
各アクティビティに対する実行履歴要素として、該アク
ティビティに対する入力である要求メッセージ、出力で
ある応答メッセージ、子シナリオの履歴情報を参照する
ための情報を持ち、実行履歴情報を階層的に管理する。
そして、階層構造を構成する各トランザクション毎に一
括打消処理(図2の2’,3’)を関連付けることによ
り、履歴に従わない一括した処理の打消を可能とする。
【0030】図3は、本実施形態において使用する業務
処理手順を記述したシナリオの例である。
【0031】図中、各丸は状態を表す。この状態は、具
体的なアクティビティと関連付けられる。また、状態の
実行とは、状態に関連付けられたアクティビティの実行
を意味する。シナリオは、複数の状態から構成され、シ
ナリオ制御プログラム104により解釈、実行されてい
く。
【0032】シナリオには、業務処理における手順(順
次、選択、反復)や、各アクティビティに対して送信さ
れる要求メッセージ、あるいは結果として受け取った応
答メッセージの評価方法が記述される。そして、応答メ
ッセージの評価の結果、次に実行するべき状態が決定
し、これらの繰り返しにより、一連の業務処理手順が達
成されていく。
【0033】この例では、はじめにシナリオF1の状態
S1が実行される。状態S1は、シナリオF2を起動す
るアクティビティと結び付けられている。次に、シナリ
オF2が起動され、状態S21,S22,S23の順に
起動される。また、状態S22は、シナリオF3を起動
するアクティビティと関連づけられており、シナリオF
3のS31,S32の順で実行される。その後、S23
が実行される。
【0034】また、シナリオでは、各状態に対応させて
打消処理の定義が可能である。打消処理とは、処理の内
容を取り消す処理である。例えば、入金処理に対する打
消処理は出金処理であり、また、在庫引当処理に対する
打消処理は在庫差し戻し処理である。そして、この例で
は、この打消処理自体も状態として与えられる。
【0035】さらに、各状態には、関連付けられたアク
ティビティを同期型で実行するか、非同期型で実行する
かを示す属性が定義されている。ここでは、特に断らな
い限り、属性は全て「非同期」とする。
【0036】次に、処理の要求メッセージがサーバ13
0から到達した場合についての説明を行う。なお、特に
注意がない場合を除き、各プログラム間の情報の伝達
は、メッセージ管理プログラム103を経由して行われ
るものとする。
【0037】(1)要求受付 要求受付プログラム101は、サーバ130から処理の
要求メッセージを受け付け、その要求メッセージの中に
含まれる識別子に応じて、適切な受信アダプタ102を
選択する。
【0038】(2)シナリオ起動要求 選択された受信アダプタ102は、シナリオ制御プログ
ラム104に対して、シナリオ名を入力とし、シナリオ
起動要求を行う。一方、シナリオ制御プログラム104
は、そのシナリオを実行する際の作業領域であるインス
タンス情報を確保する。この時、受信アダプタ102に
は、シナリオ起動要求の結果として、現在実行中のイン
スタンス情報に参照するための情報であるコンテキスト
IDが返却される。
【0039】(3)シナリオ起動 シナリオ制御プログラム104は、業務処理手順が記述
してあるシナリオの解釈を行い、シナリオの起動、停
止、実行等、シナリオの実行状態を管理する。シナリオ
起動要求を受けた場合、シナリオ制御プログラム104
は、シナリオを実行する際の作業領域であるインスタン
ス情報を確保する。このインスタンス情報は、図4に示
すテーブル(インスタンス情報テーブル)に保持され
る。以下、このインスタンス情報テーブルにおける各列
の意味を説明する。
【0040】インスタンスIDa1は、インスタンスを
一意に識別する識別子であり、シナリオ名a2、状態名
a3は、この組で現在のシナリオの実行位置を示す。実
行状態a4は、シナリオの状態を表す値として、「待
機」、「実行中」のいずれかを取り、初期値として「待
機」が設定される。正常異常種別a5は、現在インスタ
ンスが正常処理実行中か、または、なんらかの障害が発
生したため、異常処理実行中かを示し、初期値として
「正常」が設定される。
【0041】また、このシナリオ制御システム100で
は、図5に示すテーブル(カレント・インスタンス管理
テーブル)に、コンテキストIDとインスタンスIDと
の対応付けを保存する。ここに、各コンテキストは、現
在実行中のインスタンスIDに参照するための情報を格
納し、プロキシとして動作する。つまり、シナリオ制御
プログラム104にアクセスするプログラムは、そのコ
ンテキストIDをキーとしてアクセスすることで、常に
現在実行中のインスタンス情報にアクセス可能となる。
【0042】シナリオ制御プログラム104は、シナリ
オ・リポジトリ122よりそのシナリオに関する情報を
取得し、一番最初に実行する状態を取得する。その後、
インスタンス情報テーブルにシナリオ名とその状態名を
書き込む。図3の例の場合、シナリオ名としてF1、状
態名としてS1が、それぞれインスタンス情報テーブル
に書き込まれる。また、シナリオ制御プログラム104
は、図6に示すテーブル(親子シナリオ管理テーブル)
に、シナリオの親子関係を記述する。最上位のシナリオ
生成時は、この処理は行わない。
【0043】また、シナリオ制御プログラム104は、
履歴管理プログラム107にインスタンスIDを渡して
本初期状態SIに対する実行履歴要素の作成を要求し、
結果として、実行履歴要素に付与された通番を取得す
る。この段階で、シナリオ制御プログラム104は、図
7に示すテーブル(履歴管理テーブル)に、インスタン
スID、通番のみを書き込む。また、図8に示すテーブ
ル(カレント通番位置管理テーブル)は、最後に書き込
んだ履歴通番を保持するテーブルであり、シナリオ制御
プログラム104は、この段階で、インスタンスIDに
対応させて通番1を書き込む。
【0044】(4)シナリオ実行 受信アダプタ102は、シナリオ実行要求として、コン
テキストIDと、サーバ130の処理結果や要求を含む
メッセージとをシナリオ制御プログラム104に送信す
る。
【0045】一方、このシナリオ実行要求を受けたシナ
リオ制御プログラム104は、カレント・インスタンス
管理テーブルから、コンテキストIDをキーにして、現
在実行中のインスタンスIDを取得する。また、シナリ
オ制御プログラム104は、このインスタンスIDをキ
ーとして、今度は、インスタンス情報テーブルからシナ
リオ実行情報を取得し、現在の実行状態を調べる。実行
状態が「待機」以外である場合、エラーを返却したり、
その実行要求メッセージをキューの最後尾にまわす等の
処理が考えられる。ここで、図9を参照して、実行状態
が「待機」である場合のシナリオ制御プログラム104
の動作を説明する。
【0046】a.まず、受信したメッセージが障害情報
を含むものであるか判定する(ステップA1)。このメ
ッセージが障害情報を含むものである場合は、処理の失
敗を表し、トランザクションのロールバック契機とな
る。
【0047】b.障害情報を含むものである場合(ステ
ップA1のYES)、インスタンス実行情報テーブルの
正常異常種別を「異常」に書き換える(ステップA
2)。
【0048】c.インスタンス実行情報テーブルの正常
異常種別が「異常」の場合(ステップA3のNO)、打
消処理を実行する(ステップA4)。この打消処理の詳
細は後述する。
【0049】d.カレント通番位置管理テーブルを参照
し、現在のインスタンスIDに対応した通番Nを取得す
る。そして、履歴管理テーブルの現在のインスタンスI
D、通番=Nの行にメッセージを書き込む(ステップA
5)。
【0050】e.シナリオリポジトリ122から該当す
るシナリオFを取得し、そのシナリオFの記述に従っ
て、メッセージを評価し、条件分岐などの処理を行う。
この結果、次に実行するべき状態名が決定する。そし
て、この状態名をインスタンス情報テーブルに書き込む
と共に、現在の履歴通番位置に対し、シナリオ名、状態
名を書き込む(ステップA6)。
【0051】f.選択した次状態が、本シナリオの終了
を示し、親シナリオへの復帰を表すものである場合(ス
テップA7のYES)、親インスタンスに対し、フロー
の終了を通知する。この時、通知された親シナリオの実
行情報テーブルの実行状態を「待機」に変更し、また、
コンテキストIDに対応したインスタンスIDを親イン
スタンスIDのものに変更する。そして、コンテキスト
IDに対し、子シナリオからの処理結果を送信し、本処
理を終了する(ステップA8)。ただし、本シナリオが
最上位のシナリオである場合(親が存在しない場合)、
この処理は行わない。
【0052】g.履歴管理プログラム107に対し、イ
ンスタンスIDを渡し、本実行状態に対する実行履歴要
素の作成を要求し、結果として、実行履歴要素に付与さ
れた通番を取得する(ステップA9)。この段階で、履
歴管理テーブルには、インスタンスID、通番のみが書
き込まれる。
【0053】h.シナリオ実行情報テーブルをインスタ
ンスIDをキーにして検索し、シナリオの名前F、状態
名Sを取得する(ステップA10)。
【0054】i.シナリオの記述情報から該当するシナ
リオF内の状態名Sで指し示される状態に対応するプロ
グラム識別子を取得する(ステップA11)。
【0055】j.インスタンスID、通番情報をキーと
して、メッセージを実行履歴要素に書き込む(ステップ
A12)。
【0056】k.コンテキストID、インスタンスI
D、通番情報、プログラム識別子、メッセージを引数と
して、アクティビティ実行プログラムを起動する(ステ
ップA13)。
【0057】なお、履歴管理テーブルにおいて通番と
は、アクティビティの実行順序を管理する番号であり、
インスタンスIDに対して一意な番号であり、データに
は、上記要求メッセージや応答メッセージ、打消処理を
実行するに際して必要な情報等が書き込まれる。
【0058】(5)アクティビティ実行 シナリオ制御プログラム104は、プログラム識別子を
アクティビティ管理プログラム106に渡し、具体的な
アクティビティ情報を取得する。
【0059】シナリオ制御プログラム104は、実行す
るプログラムが、「シナリオ起動」の場合、以下の処理
を行う。
【0060】a.シナリオ起動処理で記述した処理を起
動し、子シナリオのインスタンスIDを結果として取得
する。
【0061】b.インスタンスIDと、子シナリオのイ
ンスタンスIDの対応関係を親子シナリオ管理テーブル
に書き込む。
【0062】c.履歴管理プログラム107に、(親)
インスタンスID、通番、子のインスタンスIDを入力
として渡し、親の履歴情報要素に対し、子インスタンス
IDを参照するための情報を書き込む。
【0063】d.シナリオ制御プログラムに対し、実行
要求を送信する。
【0064】なお、実行するプログラムが、送信アダプ
タ105の場合、送信アダプタ105を起動する。この
場合、応答メッセージを取得する場合もある。
【0065】以上の処理の結果、図3に示すシナリオF
2において、たとえばS23実行中における履歴管理テ
ーブルは、図10に示す通りとなる。図示のように、処
理の実行が完了していない(インスタンスID、通番)
=(1,1),(2,3)の実行履歴情報要素に対する
シナリオ名、状態名は空値になっている。
【0066】(6)障害発生時の処理 次に、図3に示すシナリオF2の状態S23に関連付け
られたアクティビティ実行中、たとえば通信障害等の障
害が発生した場合にシナリオ制御プログラム104が実
行する打消処理の動作を図11を用いて説明する。
【0067】なお、障害情報を含むメッセージは、サー
バ130からメッセージとして、送信アダプタ105、
受信アダプタ102に通知される。通信障害等の場合
は、例外情報を含むメッセージをアダプタが生成する場
合もある。アダプタは、シナリオ制御プログラム104
に該障害情報を含むメッセージを送信する。以下、障害
情報を含むメッセージを単に例外と呼ぶ。そして、例外
は、トランザクション処理中の失敗を表し、トランザク
ション処理のロールバック契機となる。
【0068】前述したように、例外が通知された場合、
シナリオ制御プログラム104は、インスタンス情報テ
ーブルの正常異常種別を「異常」に変更し、打消処理を
実行する(図9のステップA1〜A4)。そして、この
時、シナリオ制御プログラム104は、インスタンスI
D(Fid)の打消処理を行う打消処理制御プログラム
108を起動する。
【0069】打消処理制御プログラム108は、履歴管
理テーブルの該インスタンスIDに対応した通番を検索
し、その最大値maxを取得する。また、履歴通番上の現
在の実行位置を参照する情報として、カレント通番位置
テーブルにインスタンスID701=Fidに対応する
通番e1としてmax+1を書き込む。この場合、インス
タンスID=2においては、通番3が最大値であるの
で、4を通番に書き込む(ステップB1)。
【0070】次に、通番のFidに対応する通番から1
を検索し、履歴管理テーブルのインスタンスID=Fi
dに対応するシナリオ名F、状態名Sを検索する(ステ
ップb4)。ここでは、シナリオ名、状態名は共に定義
されていない。
【0071】シナリオ名、状態名が所得できない場合、
つまり空値の場合(ステップB6のNO)、該状態に関
連付けられたアクティビティは、現在実行中であること
を示している。この場合、子シナリオに対する打消処理
の起動を試みる。そこで、履歴管理テーブルにおいて、
インスタンスID=Fidに対応した子インスタンスI
Dd5の取得を試みる。この例においては、定義されて
いない。
【0072】上記子インスタンスIDが定義されていな
い場合(ステップB7のNO)、次に、履歴管理テーブ
ルから、(インスタンスID,通番)=(2,2)の行
を取得する。該行におけるシナリオ名F(F2)、状態
名S(S22)を取得し、その状態に対する逆状態が定
義されているかを調べる(ステップB6)。この例では
状態S22’が定義されている。もし、子インスタンス
IDが取得できた場合には、再帰的にインスタンスID
=3の履歴情報に対し、履歴に基づく打消処理の実行を
行う。
【0073】そこで、打消処理制御プログラム108
は、子インスタンスに対する打消処理を履歴情報に基づ
かずに、逆状態S22’に関連付けられたアクティビテ
ィA22により、一括して処理の打消しを行う(ステッ
プB8)。
【0074】以下、S21の逆状態、S21’に対応し
た打消処理A21が実行され、親のインスタンスIDを
引数として、打消処理完了として例外を通知する。
【0075】例外が通知された親インスタンスは、図9
に示すフローに従い、処理が継続される。なお、現在、
該インスタンス実行情報の正常異常識別は「異常」に設
定されているので、再び親インスタンスID=2に対す
る打消処理が起動される。
【0076】このように、このシナリオ制御システム1
00においては、従来のように、履歴情報に従い一つず
つ打消処理を起動することに代え、一括してある処理群
を束ねて、それらに対して一括打消処理を起動すること
が可能となる。もちろん、処理群の途中で障害が発生し
た場合には、従来と同様、履歴による打消し処理も可能
である。
【0077】その理由は、従来のように、実行履歴の管
理を一次元のリスト構造で管理するのではなく、入れ子
トランザクションの実現のために、各処理の履歴情報に
付いて、子履歴情報を参照するための情報を持たせるこ
とにより、履歴情報を階層的に管理することを可能と
し、一連の処理群を束ねて管理できるようにして、一括
打消しの範囲を管理できるようになったからである。
【0078】なお、本願発明は、前記実施形態に限定さ
れるものではなく、実施段階ではその要旨を逸脱しない
範囲で種々に変形することが可能である。更に、前記実
施形態には種々の段階の発明が含まれており、開示され
る複数の構成要件における適宜な組み合わせにより種々
の発明が抽出され得る。たとえば、実施形態に示される
全構成要件から幾つかの構成要件が削除されても、発明
が解決しようとする課題の欄で述べた課題が解決でき、
発明の効果の欄で述べられている効果が得られる場合に
は、この構成要件が削除された構成が発明として抽出さ
れ得る。
【0079】
【発明の効果】以上のように、この発明によれば、入れ
子トランザクションにおける親と子のトランザクション
の履歴情報を関連付けることにより、まず、親のトラン
ザクションにおける障害時に、子のトランザクションま
で遡って打消処理を実行することを可能とする。
【0080】そして、この発明は、これら履歴情報を階
層的に管理することにより、トランザクション区間を階
層的に設定可能とする。すなわち、このトランザクショ
ン区間に対して打消処理を関連付けることにより、一括
して処理の打消しを行えるようにし、起動する打消処理
の数を削減して、処理効率の向上を実現する。
【図面の簡単な説明】
【図1】この発明の実施形態に係るシナリオ制御システ
ムの構成を示す図。
【図2】同実施形態のシナリオ制御システムにおける一
括した打消処理の概要を説明するための概念図。
【図3】同実施形態において使用する業務処理手順を記
述したシナリオの例。
【図4】同実施形態のシナリオ制御システムが備えるイ
ンスタンス情報テーブルを示す図。
【図5】同実施形態のシナリオ制御システムが備えるカ
レント・インスタンス管理テーブルを示す図。
【図6】同実施形態のシナリオ制御システムが備える親
子シナリオ管理テーブルを示す図。
【図7】同実施形態のシナリオ制御システムが備える履
歴管理テーブルを示す図。
【図8】同実施形態のシナリオ制御システムが備えるカ
レント通番位置管理テーブルを示す図。
【図9】同実施形態のシナリオ制御システムにおいて実
行状態が「待機」である場合のシナリオ制御プログラム
の動作手順を示すフローチャート。
【図10】図3に示すシナリオF2において、S23実
行中における履歴管理テーブルを示す図。
【図11】図3に示すシナリオF2の状態S23に関連
付けられたアクティビティ実行中に障害が発生した場合
にシナリオ制御プログラムが実行する打消処理の動作を
説明するためのフローチャート。
【図12】従来の打消処理の概要を説明するための概念
図。
【符号の説明】
100…シナリオ制御システム 101…要求受付プログラム 102…受信アダプタ 103…メッセージ管理プログラム 104…シナリオ制御プログラム 105…送信アダプタ 121…シナリオ管理用DBMS 122…シナリオリポジトリ 130…サーバ
フロントページの続き (72)発明者 徳丸 浩二 東京都千代田区大手町二丁目3番1号 日 本電信電話株式会社内 (72)発明者 鈴木 将貴 東京都千代田区大手町二丁目3番1号 日 本電信電話株式会社内 Fターム(参考) 5B085 AC11 AC14 BA07 BG03 BG04 5B098 GA04 GC16 JJ02 JJ07 JJ08

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】 処理手順を記述したシナリオに従って、
    一連の複数の処理から構成されるトランザクションを処
    理するトランザクション処理装置において、 いずれかのシナリオで記述されたトランザクション内の
    一処理として別のシナリオで記述されたトランザクショ
    ンが呼び出された際、そのトランザクションに対する実
    行履歴を参照するための情報を前記呼び出し元のトラン
    ザクション中の該処理に対応する実行履歴要素として記
    録することにより、同一の階層構造を構成する複数のト
    ランザクションの実行履歴を階層的に管理する履歴管理
    手段と、いずれかの処理において障害が発生したとき
    に、その処理を含むトランザクション区間に対応する前
    記履歴管理手段により階層的に管理された実行履歴を最
    後尾から辿り、その実行履歴で示される各処理に予め対
    応づけられた打消処理を逆順に実行する打消処理手段と
    を具備することを特徴とするトランザクション処理装
    置。
  2. 【請求項2】 前記履歴管理手段は、各々の要求メッセ
    ージおよび応答メッセージの少なくとも一方を各処理の
    実行履歴要素として記録することを特徴とする請求項1
    記載のトランザクション処理装置。
  3. 【請求項3】 前記打消処理手段は、前記別のシナリオ
    で記述されたトランザクションを構成する各処理を、前
    記呼び出し元のトランザクション内の一処理に予め対応
    づけられた打消処理により一括して打ち消すことを特徴
    とする請求項1または2記載のトランザクション処理装
    置。
  4. 【請求項4】 処理手順を記述したシナリオに従って、
    一連の複数の処理から構成されるトランザクションを処
    理するトランザクション処理装置のトランザクション処
    理方法において、 いずれかのシナリオで記述されたトランザクション内の
    一処理として別のシナリオで記述されたトランザクショ
    ンが呼び出された際、そのトランザクションに対する実
    行履歴を参照するための情報を前記呼び出し元のトラン
    ザクション中の該処理に対応する実行履歴要素として記
    録することにより、同一の階層構造を構成する複数のト
    ランザクションの実行履歴を階層的に管理する履歴管理
    ステップと、 いずれかの処理において障害が発生したときに、その処
    理を含むトランザクション区間に対応する前記履歴管理
    ステップにより階層的に管理された実行履歴を最後尾か
    ら辿り、その実行履歴で示される各処理に予め対応づけ
    られた打消処理を逆順に実行する打消処理ステップとを
    具備することを特徴とするトランザクション処理方法。
  5. 【請求項5】 前記履歴管理ステップは、各々の要求メ
    ッセージおよび応答メッセージの少なくとも一方を各処
    理の実行履歴要素として記録することを特徴とする請求
    項4記載のトランザクション処理方法。
  6. 【請求項6】 前記打消処理ステップは、前記別のシナ
    リオで記述されたトランザクションを構成する各処理
    を、前記呼び出し元のトランザクション内の一処理に予
    め対応づけられた打消処理により一括して打ち消すこと
    を特徴とする請求項4または5記載のトランザクション
    処理方法。
  7. 【請求項7】 処理手順を記述したシナリオに従って、
    一連の複数の処理から構成されるトランザクションを処
    理するトランザクション処理装置に適用されるプログラ
    ムであって、 前記トランザクション処理装置を、 いずれかのシナリオで記述されたトランザクション内の
    一処理として別のシナリオで記述されたトランザクショ
    ンが呼び出された際、そのトランザクションに対する実
    行履歴を参照するための情報を前記呼び出し元のトラン
    ザクション中の該処理に対応する実行履歴要素として記
    録することにより、同一の階層構造を構成する複数のト
    ランザクションの実行履歴を階層的に管理する履歴管理
    手段、 いずれかの処理において障害が発生したときに、その処
    理を含むトランザクション区間に対応する前記履歴管理
    手段により階層的に管理された実行履歴を最後尾から辿
    り、その実行履歴で示される各処理に予め対応づけられ
    た打消処理を逆順に実行する打消処理手段として機能さ
    せるためのプログラム。
  8. 【請求項8】 前記履歴管理手段に、各々の要求メッセ
    ージおよび応答メッセージの少なくとも一方を各処理の
    実行履歴要素として記録させることを特徴とする請求項
    7記載のプログラム。
  9. 【請求項9】 前記打消処理手段に、前記別のシナリオ
    で記述されたトランザクションを構成する各処理を、前
    記呼び出し元のトランザクション内の一処理に予め対応
    づけられた打消処理により一括して打ち消させることを
    特徴とする請求項7または8記載のプログラム。
  10. 【請求項10】 処理手順を記述したシナリオに従っ
    て、一連の複数の処理から構成されるトランザクション
    を処理するトランザクション処理装置に適用されるプロ
    グラムであって、 前記トランザクション処理装置を、 いずれかのシナリオで記述されたトランザクション内の
    一処理として別のシナリオで記述されたトランザクショ
    ンが呼び出された際、そのトランザクションに対する実
    行履歴を参照するための情報を前記呼び出し元のトラン
    ザクション中の該処理に対応する実行履歴要素として記
    録することにより、同一の階層構造を構成する複数のト
    ランザクションの実行履歴を階層的に管理する履歴管理
    手段、 いずれかの処理において障害が発生したときに、その処
    理を含むトランザクション区間に対応する前記履歴管理
    手段により階層的に管理された実行履歴を最後尾から辿
    り、その実行履歴で示される各処理に予め対応づけられ
    た打消処理を逆順に実行する打消処理手段として機能さ
    せるためのプログラムを記録したコンピュータ読み取り
    可能な記録媒体。
  11. 【請求項11】 前記プログラムは、前記履歴管理手段
    に、各々の要求メッセージおよび応答メッセージの少な
    くとも一方を各処理の実行履歴要素として記録させるこ
    とを特徴とする請求項10記載のコンピュータ読み取り
    可能な記録媒体。
  12. 【請求項12】 前記プログラムは、前記打消処理手段
    に、前記別のシナリオで記述されたトランザクションを
    構成する各処理を、前記呼び出し元のトランザクション
    内の一処理に予め対応づけられた打消処理により一括し
    て打ち消させることを特徴とする請求項10または11
    記載のコンピュータ読み取り可能な記録媒体。
JP2002152928A 2002-05-27 2002-05-27 トランザクション処理装置、同装置のトランザクション処理方法、トランザクション処理プログラムおよび同プログラムを記録したコンピュータ読み取り可能な記録媒体 Expired - Lifetime JP4262932B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002152928A JP4262932B2 (ja) 2002-05-27 2002-05-27 トランザクション処理装置、同装置のトランザクション処理方法、トランザクション処理プログラムおよび同プログラムを記録したコンピュータ読み取り可能な記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002152928A JP4262932B2 (ja) 2002-05-27 2002-05-27 トランザクション処理装置、同装置のトランザクション処理方法、トランザクション処理プログラムおよび同プログラムを記録したコンピュータ読み取り可能な記録媒体

Publications (2)

Publication Number Publication Date
JP2003345609A true JP2003345609A (ja) 2003-12-05
JP4262932B2 JP4262932B2 (ja) 2009-05-13

Family

ID=29770139

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002152928A Expired - Lifetime JP4262932B2 (ja) 2002-05-27 2002-05-27 トランザクション処理装置、同装置のトランザクション処理方法、トランザクション処理プログラムおよび同プログラムを記録したコンピュータ読み取り可能な記録媒体

Country Status (1)

Country Link
JP (1) JP4262932B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009245319A (ja) * 2008-03-31 2009-10-22 Fujitsu Ltd 情報処理装置及びそのログ収集プログラム
JP2010086137A (ja) * 2008-09-30 2010-04-15 Fujitsu Ltd メッセージキューイング方法及びプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009245319A (ja) * 2008-03-31 2009-10-22 Fujitsu Ltd 情報処理装置及びそのログ収集プログラム
JP2010086137A (ja) * 2008-09-30 2010-04-15 Fujitsu Ltd メッセージキューイング方法及びプログラム

Also Published As

Publication number Publication date
JP4262932B2 (ja) 2009-05-13

Similar Documents

Publication Publication Date Title
US7328213B2 (en) Transaction processing method, transaction control apparatus and program thereof
US8015151B2 (en) Method and system for managing and modifying time dependent data structures
US8938421B2 (en) Method and a system for synchronizing data
US6014673A (en) Simultaneous use of database and durable store in work flow and process flow systems
US8418191B2 (en) Application flow control apparatus
CN107818431B (zh) 一种提供订单轨迹数据的方法和系统
US7669074B2 (en) Method for fault handling in a co-operative workflow environment
JP5006324B2 (ja) サーバ側のプロジェクトマネージャ
US20120221605A1 (en) Linking framework for information technology management
US9189303B2 (en) Shadow queues for recovery of messages
CN104793988A (zh) 跨数据库分布式事务的实现方法和装置
JP2000163372A (ja) トランザクション処理方法及びその実施装置並びにその処理プログラムを記録した媒体
JP4246176B2 (ja) トランザクション処理方法及びその実施装置並びにその処理プログラムを記録した媒体
US20090094294A1 (en) Associating Database Log Records into Logical Groups
CN112114894A (zh) 基于Activiti流程引擎的流程处理方法、装置及电子设备
JP2006338197A (ja) トランザクション制御プログラム、トランザクション制御方法及びトランザクション処理システム
US8060885B2 (en) Creating task queries for concrete resources using alias selection fields specifying formal resources and formal relationships
US20050027620A1 (en) Method, system, and computer-readable medium for updating inventory data in an inventory management system
CN102597995A (zh) 同步数据库和非数据库资源
US20080178182A1 (en) Work state returning apparatus, work state returning method, and computer product
KR101888131B1 (ko) Dds-dbms 연동 도구의 실시간 변경 데이터 발간 서비스 수행 방법
JP4262932B2 (ja) トランザクション処理装置、同装置のトランザクション処理方法、トランザクション処理プログラムおよび同プログラムを記録したコンピュータ読み取り可能な記録媒体
US10728323B2 (en) Method and apparatus for operating infrastructure layer in cloud computing architecture
CN113448493B (zh) 用于备份数据的方法、电子设备和计算机可读介质
CN112685142A (zh) 分布式数据处理系统

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050719

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050802

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051003

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060418

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060619

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20060725

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20060731

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20070105

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20070119

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081225

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090210

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120220

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 4262932

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120220

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130220

Year of fee payment: 4

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

EXPY Cancellation because of completion of term