(57)【特許請求の範囲】
【請求項１】
他装置とネットワークを介して通信する通信装置と、
所定業務に関して所定装置間で授受される各電文に、当該業務で一意の通番を付与し、当該電文をメッセージキューイングによって仲介処理するに際し、当該業務のトランザクションにて送信予定の電文に対する所定処理の実行に伴い、当該業務に関して所定テーブルで管理する通番をインクリメントし、当該電文に関する情報をリカバリキューに格納する処理と、前記業務のトランザクション開始時に当該業務の電文に関して保持している情報をリカバリ情報として記憶装置に格納する処理と、本トランザクション制御システムでの障害発生に際し、前記テーブルで保持する通番と前記リカバリキューで保持する通番とを照合し、前記通番の照合の結果、前記テーブルで保持する通番が前記リカバリキューで保持する通番より大きいことが判明した場合、前記記憶装置で保持するリカバリ情報に基づいて、前記テーブルをロールバックする処理と、を実行する演算装置と、
を備えることを特徴とするトランザクション制御システム。
【請求項２】
前記演算装置は、
前記通番の照合の結果、前記テーブルで保持する通番と前記リカバリキューで保持する通番とが一致した場合、前記テーブルにおいて当該トランザクションに関して保持するステータスを電文送信済に更新するものである、
ことを特徴とする請求項１に記載のトランザクション制御システム。
【請求項３】
前記演算装置は、
前記通番の照合の結果、前記テーブルで保持する通番が前記リカバリキューで保持する通番より小さいことが判明した場合、所定のエラー通知を所定装置に出力するものである、  ことを特徴とする請求項１に記載のトランザクション制御システム。
【請求項４】
他装置とネットワークを介して通信する通信装置を備えた情報処理システムが、
所定業務に関して所定装置間で授受される各電文に、当該業務で一意の通番を付与し、当該電文をメッセージキューイングによって仲介処理するに際し、当該業務のトランザクションにて送信予定の電文に対する所定処理の実行に伴い、当該業務に関して所定テーブルで管理する通番をインクリメントし、当該電文に関する情報をリカバリキューに格納する処理と、
前記業務のトランザクション開始時に当該業務の電文に関して保持している情報をリカバリ情報として記憶装置に格納する処理と、
本トランザクション制御システムでの障害発生に際し、前記テーブルで保持する通番と前記リカバリキューで保持する通番とを照合し、前記通番の照合の結果、前記テーブルで保持する通番が前記リカバリキューで保持する通番より大きいことが判明した場合、前記記憶装置で保持するリカバリ情報に基づいて、前記テーブルをロールバックする処理と、
を実行することを特徴とするトランザクション制御方法。
【請求項５】
前記情報処理システムが、
前記通番の照合の結果、前記テーブルで保持する通番と前記リカバリキューで保持する通番とが一致した場合、前記テーブルにおいて当該トランザクションに関して保持するステータスを電文送信済に更新する、
ことを特徴とする請求項４に記載のトランザクション制御方法。
【請求項６】
前記情報処理システムが、
前記通番の照合の結果、前記テーブルで保持する通番が前記リカバリキューで保持する通番より小さいことが判明した場合、所定のエラー通知を所定装置に出力する、
ことを特徴とする請求項４に記載のトランザクション制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、トランザクション制御システムおよびトランザクション制御方法に関するものであり、具体的には、データベースとメッセージキューのステータスに不整合が生じる状況に対応し、効率的かつ的確な障害回復処理を可能とする技術に関する。
【背景技術】
【０００２】
証券の決済機関システムと、これに接続する証券会社/取引所のシステムとの間におい
て、チャネルの接続制御や電文の変換・中継といった処理を担うゲートウェイが存在する。  このゲートウェイは、上述の決済機関システム及び業務システムとの間で授受する電文をメッセージキューにより適宜に管理する。また、制御に必要な情報はデータベースに保持している。
【０００３】
こうしたメッセージキューイングに関連する従来技術としては、例えば、所定の業務を実行する業務システムであって、前記業務の実行を要求する要求情報であるメッセージを一時的に記憶するキューを複数のサーバが共用するクラスタ構成の業務システムにおいて、前記メッセージを入力するプログラムと、前記メッセージを管理するプログラムと、前記メッセージに従い業務を実行するプログラムとを保持する手段と、前記複数のサーバのうち特定のサーバに障害が発生したことを検知する手段と、前記障害が発生した特定のサーバが管理していた前記メッセージを前記複数のサーバのうち障害が発生していない特定のサーバが引き継ぐ手段とを有することを特徴とするクラスタ構成の業務システム（特許文献１参照）などが提案されている。
【０００４】
また、同じ名称の複数のキューからメッセージの取得を行う複数のノードを備えたクラスタ構成のメッセージキューイングシステムにおける障害時のキュー制御方法であって、障害ノードのキューと同じ名称のキューを持つノードが引継ぎノードとして前記障害ノードのメッセージ処理を引継ぎ、前記障害ノードが持つキューのメッセージを前記引継ぎノードが持つキューのメッセージと合わせて前記引継ぎノードの管理下に置く他ノードキュー情報取得制御ステップと、前記引継ぎノードのユーザアプリケーションからメッセージの取得要求があったとき、前記引継ぎノードの管理下にあるメッセージの中から取得したメッセージを前記ユーザアプリケーションに渡すメッセージ取得制御ステップとを備えることを特徴とする障害時におけるキュー制御方法（特許文献２参照）なども提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−１３３７９５号公報
【特許文献２】特開２００４−８６５４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述したゲートウェイにおいて、トランザクションの管理対象はメッセージキューおよびデータベースとなる。こうした構成においてシステム障害が発生した場合、データベースとメッセージキューの２つのトランザクションの間で整合性を保った回復処理を行う必要がある。
【０００７】
ところが、或るトランザクションに関して、例えば、データベースではコミットに成功し、メッセージキューではコミットに失敗した、という状況が生じた場合、問題が生じる
。
【０００８】
この場合、当該トランザクションに関し、データベースにおいては電文中継に成功したステータスを保持することになる。一方、メッセージキューでは、当該トランザクションに関して、コミット失敗に伴いロールバックして電文中継前のステータスに戻ることになる。
【０００９】
そのため、データベースとメッセージキューのステータスに不整合が生じる。またこの時、データベースはコミットされているため、データベースの機能を使用して自動的にロールバックすることはできない。
【００１０】
そこで本発明の目的は、データベースとメッセージキューのステータスに不整合が生じる状況に対応し、効率的かつ的確な障害回復処理を可能とする技術を提供することにある。
【課題を解決するための手段】
【００１１】
上記課題を解決する本発明のトランザクション制御システムは、他装置とネットワークを介して通信する通信装置と、所定業務に関して所定装置間で授受される各電文に、当該業務で一意の通番を付与し、当該電文をメッセージキューイングによって仲介処理するに際し、当該業務のトランザクションにて送信予定の電文に対する所定処理の実行に伴い、当該業務に関して所定テーブルで管理する通番をインクリメントし、当該電文に関する情報をリカバリキューに格納する処理と、前記業務のトランザクション開始時に当該業務の電文に関して保持している情報をリカバリ情報として記憶装置に格納する処理と、本トランザクション制御システムでの障害発生に際し、前記テーブルで保持する通番と前記リカバリキューで保持する通番とを照合し、前記通番の照合の結果、前記テーブルで保持する通番が前記リカバリキューで保持する通番より大きいことが判明した場合、前記記憶装置で保持するリカバリ情報に基づいて、前記テーブルをロールバックする処理と、を実行する演算装置と、を備えることを特徴とする。
【００１２】
また、本発明のトランザクション制御方法は、他装置とネットワークを介して通信する通信装置を備えた情報処理システムが、所定業務に関して所定装置間で授受される各電文に、当該業務で一意の通番を付与し、当該電文をメッセージキューイングによって仲介処理するに際し、当該業務のトランザクションにて送信予定の電文に対する所定処理の実行に伴い、当該業務に関して所定テーブルで管理する通番をインクリメントし、当該電文に関する情報をリカバリキューに格納する処理と、前記業務のトランザクション開始時に当該業務の電文に関して保持している情報をリカバリ情報として記憶装置に格納する処理と、本トランザクション制御システムでの障害発生に際し、前記テーブルで保持する通番と前記リカバリキューで保持する通番とを照合し、前記通番の照合の結果、前記テーブルで保持する通番が前記リカバリキューで保持する通番より大きいことが判明した場合、前記記憶装置で保持するリカバリ情報に基づいて、前記テーブルをロールバックする処理と、を実行することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、データベースとメッセージキューのステータスに不整合が生じる状況に対応し、効率的かつ的確な障害回復処理が可能となる。
【図面の簡単な説明】
【００１４】
【図１】本実施形態のトランザクション制御システムを含むネットワーク構成図である。
【図２】本実施形態におけるトランザクション制御システムのハードウェア構成例を示す図である。
【図３】本実施形態の処理通番管理テーブルのデータ構成例を示す図である。
【図４】本実施形態の通番管理テーブルのデータ構成例を示す図である。
【図５】本実施形態の送信ステータス管理テーブルのデータ構成例を示す図である。
【図６】本実施形態のトランザクション制御方法のフロー例１を示す図である。
【図７】本実施形態のトランザクション制御方法のフロー例２を示す図である。
【発明を実施するための形態】
【００１５】
−−−ネットワーク構成−−−
以下に本発明の実施形態について図面を用いて詳細に説明する。図１は、本実施形態のトランザクション制御システム１００を含むネットワーク構成図である。図１に示すトランザクション制御システム１００は、データベースとメッセージキューのステータスに不整合が生じる状況に対応し、効率的かつ的確な障害回復処理を可能とするコンピュータシステムである。
【００１６】
本実施形態のトランザクション制御システム１００は、ネットワーク１０を介し、業務システム２００と証券決済機関システム３００との間で、業務に係る電文を適宜に変換、仲介するゲートウェイである。このうち、業務システム２００は、証券会社や機関投資家が、株式売買注文を行う際に用いるシステムである。また、証券決済機関システム３００は、上述の証券会社や機関投資家の株式売買注文の決済処理を行うシステムである。
【００１７】
勿論、トランザクション制御システム１００を適用するネットワーク構成は、本実施形態の例に限定されない。電文をメッセージキューイングで仲介するゲートウェイが含まれるネットワークで、メッセージキューとデータベースのトランザクション管理を行う構成であれば、いずれの構成でも適用出来る。
【００１８】
なお、上述のように、ゲートウェイたるトランザクション制御システム１００と、業務システム２００および証券決済機関システム３００とは、それぞれにメッセージキューイングの仕組みによって電文をやりとりする。
【００１９】
このメッセージキューイングとは、装置間で電文を交換して連携動作させる際に、送信する電文をメッセージキューにいったん保管しておき、相手側の処理の完了を待つことなく次の処理を行う方式である。つまり、このメッセージキューイングの仕組みを導入したシステムであれば、送信側の装置は相手側の装置の都合に無関係に、電文をキュー領域に格納するだけで、確実にメッセージを送り届けることができる。一時的に装置間の通信環境が途絶するとしても、電文は確実に届く。
【００２０】
このため、業務システム２００、当該トランザクション制御システム１００、および、証券決済機関システム３００のそれぞれは、受信用メッセージキューと送信用メッセージキューを各自の記憶装置にて有している。
【００２１】
このうち、業務システム２００が有するものは、請求経路向け送信用メッセージキュー２５０と通知経路向け受信用メッセージキュー２５１である。また、トランザクション制御システム１００が有するものは、受信用メッセージキュー１５０と送信用メッセージキュー１５５である。同様に、証券決済機関システム３００が有するものは、請求経路向け受信用メッセージキュー３５０と通知経路向け送信用メッセージキュー３５１である。
【００２２】
更に、トランザクション制御システム１００における受信用メッセージキュー１５０と送信用メッセージキュー１５５は、それぞれ請求経路向けの受信用メッセージキュー１５１と送信用メッセージキュー１５６、通知経路向けの受信用メッセージキュー１５２と送信用メッセージキュー１５７、が存在する。
【００２３】
なお、請求経路とは、業務システム２００から証券決済機関システム３００に宛てた決済要求に伴う電文の処理経路であり、業務システム２００から送信された電文を当該トランザクション制御システム１００で取得・変換し、証券決済機関システム３００に向けた送信用のメッセージキューにＰＵＴする際の一連の経路である。
【００２４】
また、通知経路とは、証券決済機関システム３００から業務システム２００に宛てた決
済結果の通知に伴う電文の処理経路であり、証券決済機関システム３００から得た電文を当該トランザクション制御システム１００で取得・変換し、業務システム２００に向けた送信用のメッセージキューにＰＵＴする際の一連の経路である。
【００２５】
また、本実施形態のトランザクション制御システム１００は、上述のキューの他に、各請求経路向けのリカバリキュー１６０、１６１も保持している。このリカバリキュー１６０、１６１は、通番管理テーブル１２６で通番をインクリメントした、当該業務のトランザクションにおける電文の情報を格納するキューである。
【００２６】
また、各送信用メッセージキューには、特に図示しないが、伝送キューが付帯しており、更にこの伝送キューを介して、証券決済機関システム３００または業務システム２００に送信する電文をＰＵＴするものとする。
【００２７】
−−−ハードウェア構成−−−
また、トランザクション制御システム１００のハードウェア構成は図２に示す如くとなる。本実施形態のトランザクション制御システム１００は、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）やハードディスクドライブなど適宜な不揮発性記憶素子で構成される記憶装置１０１、ＲＡＭなど揮発性記憶素子で構成されるメモリ１０３、記憶装置１０１に保持されるプログラム１０２をメモリ１０３に読み出すなどして実行し装置自体の統括制御を行なうとともに各種判定、演算及び制御処理を行なうＣＰＵなどの演算装置１０４、ネットワーク１０と接続し他装置との通信処理を担う通信装置１０５、を備える。
【００２８】
なお、記憶装置１０１またはメモリ１０３には、本実施形態のトランザクション制御システム１００として必要な機能を実装する為のプログラム１０２の他、処理通番管理テーブル１２５、通番管理テーブル１２６、および送信ステータス管理テーブル１２７が格納されたデータベース１１０を保持する。これらテーブルの具体的な構成については後述する。
【００２９】
また、記憶装置１０１ないしメモリ１０３における所定の記憶領域には、業務システム２００および証券決済機関システム３００との間でやりとりする電文を、一旦格納するためのメッセージキューが確保されている。
【００３０】
−−−データ構造例−−−
続いて、本実施形態のトランザクション制御システム１００が用いるテーブルについて説明する。図３に、本実施形態における処理通番管理テーブル１２５の一例を示す。
【００３１】
本実施形態の処理通番管理テーブル１２５は、ゲートウェイたるトランザクション制御システム１００が各業務のトランザクションに関し、電文を取得・処理した履歴を管理するテーブルである。この処理通番管理テーブル１２５で履歴管理の対象となる電文は、トランザクション制御システム１００でのフォーマット変換等の所定処理に成功したか否かに関わらず、全ての電文が対象となる。
【００３２】
そのデータ構造は、業務システム２００から決済要求を受けた該当業務（のトランザクション）を一意に特定する業務ＩＤをキーとして、経路種別、および処理通番といったデータから成るレコードの集合体である。
【００３３】
このうち経路種別は、当該業務のトランザクションが、電文を業務システム２００ないし証券決済機関システム３００に向け送信する経路（すなわち送信経路）か、当該電文を業務システム２００ないし証券決済機関システム３００から受信する経路（すなわち受信経路）、のいずれに対応するか示す値である（図１も併せて参照）。
【００３４】
また、処理通番は、当該業務のトランザクションに関して当該電文をメッセージキューから取得（ＧＥＴ）した際に、トランザクション制御システム１００がインクリメントする通番である。従って、トランザクション制御システム１００が、メッセージキューから該当業務の電文を取得するごとに１つ値が大きくなる。
【００３５】
また図４に、本実施形態の通番管理テーブル１２６の一例を示す。本実施形態の通番管理テーブル１２６は、トランザクション制御システム１００が各業務のトランザクションに関して電文を取得・処理した際に、フォーマット変換等の所定処理に成功した場合の履歴を管理するテーブルである。
【００３６】
そのデータ構造は、上述の処理通番管理テーブル１２５と共通する業務ＩＤをキーとして、経路種別、送信日付、請求経路の管理通番、および通知経路の管理通番といったデータから成るレコードの集合体である。
【００３７】
このうち、送信日付は当該業務のトランザクションにおいて、送信用のメッセージキューに、直近で当該電文を格納（ＰＵＴ）した日付となる。
【００３８】
また、請求経路の管理通番は、業務システム２００から証券決済機関システム３００に宛てた決済要求に伴う電文を、当該トランザクション制御システム１００で取得・変換し、証券決済機関システム３００に向けた送信用のメッセージキューにＰＵＴする一連のトランザクションでの通番である。
【００３９】
また、通知経路の管理通番は、証券決済機関システム３００から業務システム２００に宛てた決済結果の通知に伴う電文を、当該トランザクション制御システム１００で取得・変換し、業務システム２００に向けた送信用のメッセージキューにＰＵＴする一連のトランザクションでの通番である。
【００４０】
また図５に、本実施形態の送信ステータス管理テーブル１２７の一例を示す。本実施形態の送信ステータス管理テーブル１２７は、上述の通番管理テーブル１２６で処理の履歴を管理しているトランザクションに関して、受信用のメッセージキューから当該電文をＧＥＴした時点（仕掛中）と、当該電文を処理して送信用のメッセージキューにＰＵＴした時点（送信済）とで、当該電文のメッセージキューでのコミット状況を管理するテーブルである。
【００４１】
そのデータ構造は、上述の処理通番管理テーブル１２５および通番管理テーブル１２６と共通する業務ＩＤをキーとして、経路種別、送信ステータス、およびリカバリ情報といったデータから成るレコードの集合体である。
【００４２】
このうち、送信ステータスは、上述のＧＥＴ事象に応じた「仕掛中」とＰＵＴ事象に応じた「送信済」のいずれかの値となる。また、リカバリ情報は、上述のＰＵＴ処理に先立ち、当該業務のトランザクションに関して通番管理テーブル１２６で保持している情報を格納したものである。
【００４３】
−−−フロー例１−−−
以下、本実施形態におけるトランザクション制御方法の実際手順について図に基づき説明する。以下で説明するトランザクション制御方法に対応する各種動作は、トランザクション制御システム１００がメモリ等に読み出して実行するプログラムによって実現される。そして、このプログラムは、以下に説明される各種の動作を行うためのコードから構成されている。
【００４４】
図６は、本実施形態におけるトランザクション制御方法のフロー例１を示す図である。ここでは、ゲートウェイたるトランザクション制御システム１００が実行する、通常の処理フローについて説明する。一方、障害発生に伴う処理についてはフロー例２で示すものとする。
【００４５】
例えば、業務システム２００から決済要求の電文が、請求経路たるチャネルを介して、請求経路の受信用メッセージキュー１５１に格納されたとする。こうしたチャネルを介した電文の授受自体は既存のメッセージキューイング技術を適宜に採用する。この場合、トランザクション制御システム１００は、当該受信用メッセージキューでの電文格納事象に伴い、当該業務システム２００の決済要求業務に関するトランザクションを開始する（ｓ１００）。ここで開始するトランザクションは、受信用メッセージキュー１５０、送信用メッセージキュー１５５、およびデータベース１１０の更新管理に関するトランザクションである。
【００４６】
次にトランザクション制御システム１００は、上述の受信用メッセージキュー１５１から電文をＧＥＴする（ｓ１０１）。
【００４７】
また、トランザクション制御システム１００は、当該業務のトランザクションに関して、処理通番管理テーブル１２５、通番管理テーブル１２６、および送信ステータス管理テーブル１２７の各テーブルが現時点で保持する情報を抽出し、当該情報を、送信ステータス管理テーブル１２７の当該レコードのリカバリ情報欄に格納する（ｓ１０２）。
【００４８】
続いてトランザクション制御システム１００は、当該業務のトランザクションに関して、処理通番管理テーブル１２５の当該レコードの処理通番をインクリメントする（ｓ１０３）。
【００４９】
またトランザクション制御システム１００は、当該電文に対して、証券決済機関システム３００向けの電文フォーマットに変換する処理を実行して、当該業務のトランザクションに関して、通番管理テーブル１２６の当該レコードの処理通番をインクリメントする（ｓ１０４）。ここでは、上述の変換処理に成功する形態を想定してフローを説明するものとする。
【００５０】
次にトランザクション制御システム１００は、当該業務のトランザクションに関して、送信ステータス管理テーブル１２７の送信ステータス欄を「仕掛中」に更新する（ｓ１０５）。
【００５１】
また、トランザクション制御システム１００は、上述のｓ１０４で通番管理テーブル１２６の処理通番をインクリメントした対象電文に関して、処理通番と共に業務、経路種別、といった情報を、（この場合は請求経路向けの）リカバリキュー１６０に格納する（１０６）。
【００５２】
また、トランザクション制御システム１００は、当該電文を、請求経路向け送信用メッセージキュー１５６にＰＵＴする（ｓ１０７）。
【００５３】
トランザクション制御システム１００は、上述のＰＵＴの実行に伴い、データベース１１０に関するトランザクションをコミットする（ｓ１０８）。また同様に、トランザクション制御システム１００は、メッセージキュー１５０、１５５に関するトランザクションをコミットする（ｓ１０９）。トランザクションとは、当該トランザクションの「開始」処理から「コミット／ロールバック」処理に至る間の、データベース１１０およびメッセ
ージキュー１５０、１５５に対する複数の操作が全て完了（「コミット」）するか、全てキャンセル（「ロールバック」）されることを保証するものである。よって、コミットとは、当該トランザクションがコミットされると、データベース１１０およびメッセージキュー１５０、１５５に加えられた更新内容が恒久的なものとなる。
【００５４】
上述のコミットを実行したトランザクション制御システム１００は、当該業務に関して新たなトランザクションとして、送信ステータス管理テーブル１２７の更新業務を開始する（ｓ１１０）。
【００５５】
この場合、トランザクション制御システム１００は、送信ステータス管理テーブル１２７の当該業務に関する送信ステータス欄を「送信済」に更新する（ｓ１１１）。
【００５６】
また、トランザクション制御システム１００は、上述の送信ステータス欄の更新に伴い、当該トランザクションに関してコミットし（ｓ１１２）、処理を終了する。
【００５７】
−−−フロー例２−−−
次に、当該トランザクション制御システム１００にて障害が発生した場合の対応処理について図に基づき説明する。図７は、本実施形態におけるトランザクション制御方法のフロー例２を示す図である。
【００５８】
この場合、トランザクション制御システム１００は、自身が或いは他装置が備える障害監視機能から、障害発生の通知を受けたとする（ｓ２００）。
【００５９】
トランザクション制御システム１００は、この通知を受けた時点が、上述のフロー例１のうち、ｓ１００〜ｓ１０８の間であった場合（ｓ２０１：ｙ）、メッセージキュー１５０、１５５に関してロールバック処理を実行する（ｓ２０２）。また同様に、トランザクション制御システム１００は、データベース１１０に関してロールバック処理を実行する（ｓ２０３）。こうしたロールバックは、従来のロールバックと同様、当該トランザクション開始前の状態に関する情報（例：送信ステータス管理テーブル１２７のリカバリ情報）に基づくリストア処理となる。
【００６０】
一方、上述の通知を受けた時点が、上述のフロー例１のうち、ｓ１０８〜ｓ１１２の間であった場合（ｓ２０１：ｎ）、トランザクション制御システム１００は、通番管理テーブル１２６で当該業務のトランザクションに関して保持する処理通番と、リカバリキュー１６０で保持する情報が示す処理通番とを照合する（ｓ２０４）。
【００６１】
上述の照合の結果、通番管理テーブル１２６で保持する処理通番がリカバリキュー１６０で保持する処理通番より大きいことが判明した場合（ｓ２０５：大）、トランザクション制御システム１００は、送信ステータス管理テーブル１２７で当該業務のトランザクションに関して保持するリカバリ情報に基づいて、データベース１１０に含まれる各テーブル１２５〜１２７をロールバックし（ｓ２０６）、当該フローを終了する。
【００６２】
この処理は、上述のデータベース１１０において当該トランザクションをコミットしたタイミング（ｓ１０８）から、メッセージキュー１５０、１５５において当該トランザクションをコミット（ｓ１０９）するまでの間に、当該トランザクション制御システム１００（ゲートウェイ）に何らかの障害が発生した状況に対応したものとなる。
【００６３】
こうした状況は、障害発生に応じてメッセージキュー１５０、１５５においてロールバックが生じて当該トランザクションの開始時まで処理通番が戻されている一方、データベース１１０においてはロールバックが生じておらず、処理通番は最新のステータスのまま
、という状況である。つまり、データベース１１０とメッセージキュー１５０、１５５のステータスに不整合が生じた状況である。当該トランザクション制御システム１００は、こうした状況において、データベース１１０に関してロールバックを実行し、そのステータスを、メッセージキュー１５０、１５５におけるステータスと一致させることとなる。
【００６４】
一方、上述の照合の結果、通番管理テーブル１２６で保持する処理通番とリカバリキュー１６０で保持する処理通番とが一致した場合（ｓ２０５：一致）、トランザクション制御システム１００は、送信ステータス管理テーブル１２７において当該業務のトランザクションに関して保持する送信ステータスを「送信済」に更新し（ｓ２０７）、当該フローを終了する。
【００６５】
この場合、上述のデータベース１１０およびメッセージキュー１５０、１５５の各々において当該トランザクションがコミットした後に障害が発生した状況に対応し、当該トランザクションに関する送信ステータスを更新する対応のみ実行し、ロールバック等の処理を回避可能である。
【００６６】
他方、上述の照合の結果、通番管理テーブル１２６で保持する処理通番がリカバリキュー１６０で保持する処理通番より小さいことが判明した場合（ｓ２０５：小）、トランザクション制御システム１００は、所定のエラー通知を、システム管理者用の端末など所定装置に出力し（ｓ２０８）、当該フローを終了する。
【００６７】
この状況は、通常の障害では起こりえない状況であるため、その旨をシステム管理者等に迅速かつ確実に通知し、ひいては、効率的かつ的確な障害回復処理を可能とする。
【００６８】
以上、本発明を実施するための最良の形態などについて具体的に説明したが、本発明はこれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
【００６９】
こうした本実施形態によれば、データベースとメッセージキューのステータスに不整合が生じる状況に対応し、効率的かつ的確な障害回復処理が可能となる。
【００７０】
本明細書の記載により、少なくとも次のことが明らかにされる。すなわち、本実施形態のトランザクション制御システムにおいて、前記演算装置は、前記業務のトランザクション開始時に当該業務の電文に関して保持している情報をリカバリ情報として記憶装置に格納する処理を更に実行し、前記通番の照合の結果、前記テーブルで保持する通番が前記リカバリキューで保持する通番より大きいことが判明した場合、前記記憶装置で保持するリカバリ情報に基づいて、前記テーブルをロールバックするものであるとしてもよい。
【００７１】
この場合、上述のテーブルにおいて当該トランザクションをコミットしたタイミングから、メッセージキューにおいて当該トランザクションをコミットするまでの間に、当該システム（ゲートウェイ）に何らかの障害が発生した状況に対応可能となる。こうした状況は、障害発生に応じてメッセージキューにおいてロールバックが生じて当該トランザクションの開始時まで通番等のステータスが戻されている一方、テーブルにおいてはロールバックが生じておらず通番等は最新のステータスのまま、という状況である。つまり、テーブル（を格納したデータベース）とメッセージキューのステータスに不整合が生じた状況である。当該トランザクション制御システムは、こうした状況において、テーブルに関してロールバックを実行し、そのステータスを、メッセージキューにおけるステータスと一致させることが可能となる。従って、効率的かつ的確な障害回復処理が可能となる。
【００７２】
また、本実施形態のトランザクション制御システムにおいて、前記演算装置は、前記通番の照合の結果、前記テーブルで保持する通番と前記リカバリキューで保持する通番とが
一致した場合、前記テーブルにおいて当該トランザクションに関して保持するステータスを電文送信済に更新するものである、としてもよい。
【００７３】
この場合、上述のテーブルおよびメッセージキューの各々において当該トランザクションがコミットした後に障害が発生した状況に対応し、当該トランザクションに関する送信ステータスを更新する対応のみ実行し、ロールバック等の処理を回避可能である。ひいては、効率的かつ的確な障害回復処理が可能となる。
【００７４】
また、本実施形態のトランザクション制御システムにおいて、前記演算装置は、前記通番の照合の結果、前記テーブルで保持する通番が前記リカバリキューで保持する通番より小さいことが判明した場合、所定のエラー通知を所定装置に出力するものであるとしてもよい。
【００７５】
この状況は、通常の障害では起こりえない状況であるため、その旨をシステム管理者等に迅速かつ確実に通知し、ひいては、効率的かつ的確な障害回復処理を可能とする。
【００７６】
本実施形態のトランザクション制御方法において、前記情報処理システムが、前記業務のトランザクション開始時に当該業務の電文に関して保持している情報をリカバリ情報として記憶装置に格納する処理を更に実行し、前記通番の照合の結果、前記テーブルで保持する通番が前記リカバリキューで保持する通番より大きいことが判明した場合、前記記憶装置で保持するリカバリ情報に基づいて、前記テーブルをロールバックするとしてもよい。
【００７７】
本実施形態のトランザクション制御方法において、前記情報処理システムが、前記通番の照合の結果、前記テーブルで保持する通番と前記リカバリキューで保持する通番とが一致した場合、前記テーブルにおいて当該トランザクションに関して保持するステータスを電文送信済に更新するとしてもよい。
【００７８】
本実施形態のトランザクション制御方法において、前記情報処理システムが、前記通番の照合の結果、前記テーブルで保持する通番が前記リカバリキューで保持する通番より小さいことが判明した場合、所定のエラー通知を所定装置に出力するとしてもよい。
【符号の説明】
【００７９】
１０  ネットワーク
１００  トランザクション制御システム
１０１  記憶装置
１０２  プログラム
１０３  メモリ
１０４  演算装置
１０５  通信装置
１１０  データベース
１２５  処理通番管理テーブル
１２６  通番管理テーブル
１２７  送信ステータス管理テーブル
１５０  受信用メッセージキュー
１５１  （請求経路向け）受信用メッセージキュー
１５２  （通知経路向け）受信用メッセージキュー
１５５  送信用メッセージキュー
１５６  （請求経路向け）送信用メッセージキュー
１５７  （通知経路向け）送信用メッセージキュー
１６０  （請求経路向け）リカバリキュー
１６１  （通知経路向け）リカバリキュー
２００  業務システム
２５０  （請求経路向け）送信用メッセージキュー
２５１  （通知経路向け）受信用メッセージキュー
３００  証券決済機関システム
３５０  （請求経路向け）受信用メッセージキュー
３５１  （通知経路向け）送信用メッセージキュー
【図１】
0006530337.tif 000002
【図２】
0006530337.tif 000003
【図３】
0006530337.tif 000004
【図４】
0006530337.tif 000005
【図５】
0006530337.tif 000006
【図６】
0006530337.tif 000007
【図７】
0006530337.tif 000008