JP2012155634A - 情報処理プログラム、情報処理装置および情報処理方法 - Google Patents

情報処理プログラム、情報処理装置および情報処理方法 Download PDF

Info

Publication number
JP2012155634A
JP2012155634A JP2011015894A JP2011015894A JP2012155634A JP 2012155634 A JP2012155634 A JP 2012155634A JP 2011015894 A JP2011015894 A JP 2011015894A JP 2011015894 A JP2011015894 A JP 2011015894A JP 2012155634 A JP2012155634 A JP 2012155634A
Authority
JP
Japan
Prior art keywords
data
update
update data
record
latest
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.)
Pending
Application number
JP2011015894A
Other languages
English (en)
Inventor
Shuichi Tsubura
修一 螺良
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.)
Fujitsu Frontech Ltd
Original Assignee
Fujitsu Frontech Ltd
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 Fujitsu Frontech Ltd filed Critical Fujitsu Frontech Ltd
Priority to JP2011015894A priority Critical patent/JP2012155634A/ja
Publication of JP2012155634A publication Critical patent/JP2012155634A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】更新ログのデータ量を効率的に低減すること。
【解決手段】記憶手段1aは、データ項目2a,2b,2cを含むレコード2の初期設定と、データ項目2a,2b,2cに対する初期設定からの更新内容を示す第1の更新データ群3とを記憶する。特定手段1bは、記憶手段1aを参照して、データ項目2a,2b,2cのうち、最新の更新データによる設定が初期設定と同一でないデータ項目2a,2cにつき最新の更新データ3d,3eを特定する。処理手段1cは、特定手段1bにより特定された更新データ3d,3eを用いて、データ項目2a,2b,2cに対する1つの第2の更新データ4を生成して記憶手段1aに格納し、記憶手段1aから第1の更新データ群3を削除する。
【選択図】図1

Description

本発明は更新ログを処理する情報処理プログラム、情報処理装置および情報処理方法に関する。
従来、システムとしての可用性や信頼性を向上するため、構成部品を冗長化して運用する情報処理システムが利用されている。その1つとして、例えば、データベースを冗長化するものがある。具体的には、一方のデータベースを運用系として業務処理に用い、他方のデータベースを待機系として用いる。当該情報処理システムは運用系での更新内容を待機系にも反映して、両方のデータベースを同期する。そして、運用系の障害時には、運用系での業務処理を待機系に引き継がせる。
ここで、データベースを冗長化する場合、両方のデータベースでデータの同期を高速に行えることが、信頼性の観点からは望ましい。そこで、一方のデータベースでの差分を記録した差分ログを取得し、当該差分ログを複数の並列処理対象に振り分けて、当該並列処理対象の差分ログを他方のデータベースに適用する処理を並列に行うことで、差分ログを高速に処理する方法が提案されている(例えば、特許文献1参照)。
また、データベースの同じデータにアクセスする可能性のあるトランザクション同士を同じコネクションにまとめ、コネクションごとの複数のトランザクションを一まとめにしてコミットを実行することで、トランザクションの速度を高速化する方法も提案されている(例えば、特許文献2参照)。
国際公開第2004/090726号 特開2009−26029号公報
ところで、障害の起きたデータベースが復旧した場合に、当該復旧したデータベースにそれまでの更新内容を反映することが考えられる。そのために、運用中のもう一方のデータベースで、更新内容を記録した更新ログを取得することがある。
その場合、片方のデータベースのみによる運用時間が長いほど、更新ログに蓄積されるデータ量は増加する。このため、一方が障害から復旧して、差分を同期しようとする場合に、更新ログのデータ量の分だけ処理時間が長くなるという問題がある。また、更新ログの最大データ量が所定量に制限されていることもあり、当該所定量を超えた更新ログの取得が困難になるという問題がある。
本発明はこのような点に鑑みてなされたものであり、更新ログのデータ量を効率的に低減できる情報処理プログラム、情報処理装置および情報処理方法を提供することを目的とする。
コンピュータを記憶手段、特定手段および処理手段として機能させる情報処理プログラムが提供される。記憶手段は、複数のデータ項目を含むレコードの初期設定と、複数のデータ項目に対する初期設定からの更新内容を示す複数の第1の更新データとを記憶する。特定手段は、記憶手段を参照して、複数のデータ項目それぞれのうち、最新の更新データによる設定が初期設定と同一でないデータ項目につき最新の更新データを特定する。処理手段は、特定手段により特定された全てのデータ項目の最新の更新データを用いて、複数のデータ項目に対する1つの第2の更新データを生成して記憶手段に格納し、記憶手段から複数の第1の更新データを削除する。
また、情報処理プログラムを実行するコンピュータと同様の機能を有する情報処理装置が提供される。
また、コンピュータの情報処理方法が提供される。この情報処理方法では、コンピュータが、複数のデータ項目を含むレコードの初期設定と、複数のデータ項目に対する初期設定からの更新内容を示す複数の第1の更新データとを記憶する記憶手段を参照して、複数のデータ項目それぞれのうち、最新の更新データによる設定が初期設定と同一でないデータ項目につき最新の更新データを特定する。そして、特定した全てのデータ項目の最新の更新データを用いて、複数のデータ項目に対する1つの第2の更新データを生成して記憶手段に格納し、記憶手段から複数の第1の更新データを削除する。
上記情報処理プログラム、情報処理装置および情報処理方法によれば、更新ログのデータ量を効率的に低減できる。
第1の実施の形態の情報処理装置を示す図である。 第2の実施の形態の金融窓口システムを示す図である。 各装置の関係を示す図である。 振込ワークフローを例示する図である。 DBサーバのハードウェア構成を示す図である。 DBサーバの機能構成を示す図である。 伝票管理テーブルのデータ構造例を示す図である。 更新ログファイルのデータ構造例を示す図である。 最新レコードテーブルのデータ構造例を示す第1の図である。 最新レコードテーブルのデータ構造例を示す第2の図である。 更新ログ圧縮処理を示すフローチャートである。 圧縮処理後の更新ログファイルを例示する第1の図である。 圧縮処理後の更新ログファイルを例示する第2の図である。 圧縮処理後の更新ログファイルを例示する第3の図である。
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態の情報処理装置を示す図である。情報処理装置1は、データベース上のテーブル“table−A”に関する更新ログを管理する。更新ログは、冗長化されたデータベースにつき両方の同期を行うためのものである。情報処理装置1は、記憶手段1a、特定手段1bおよび処理手段1cを有する。
記憶手段1aは、レコード2の初期設定を記憶する。初期設定とは、更新ログの取得が開始された時点におけるレコード2の設定内容を示す。複数のレコードがある場合、初期設定はレコードごとに記憶される。当該レコードに複数のデータ項目があれば、初期設定は更にデータ項目ごとに記憶される。
レコード2は、複数のデータ項目を含む。例えば、データ項目2a,2b,2cを含むとする。ここで、データ項目2aは“data1”、データ項目2bは“data2”、データ項目2cは“data3”の項目名が付されている。初期設定は、データ項目2a,2b,2cの何れも“10”であるとする。
記憶手段1aは、データ項目2a,2b,2cに対する初期設定からの更新ログとして、第1の更新データ群3を記憶する。第1の更新データ群3は、例えば時系列の古い順に更新データ3a,3b,3c,3d,3e,3f,3gを有する。
特定手段1bは、記憶手段1aを参照して、データ項目2a,2b,2cそれぞれのうち、最新の更新データによる設定が初期設定と同一でないデータ項目につき最新の更新データを特定する。
例えば、データ項目2aに関する最新の更新データ3eは“12”への更新を示す。よって、初期設定“10”と同一でないので、特定手段1bは当該最新の更新データ3eを特定する。また、データ項目2bに関する最新の更新データ3gは“10”への更新を示す。よって、初期設定“10”と同一であるので、特定の対象外となる。また、データ項目2cに関する最新の更新データ3dは“20”への更新を示す。よって、初期設定“10”と同一でないので、特定手段1bは当該最新の更新データ3dを特定する。
処理手段1cは、特定手段1bにより特定された全てのデータ項目の最新の更新データを用いて、複数のデータ項目に対する1つの第2の更新データ4を生成して記憶手段1aに格納する。そして、処理手段1cは記憶手段1aから第1の更新データ群3を削除する。第2の更新データ4は、冗長化された両方のデータベースの同期を行うために、第1の更新データ群3に代えて用いることができる。
例えば、上述の例では特定手段1bは、データ項目2aに対して更新データ3eを、データ項目2cに対して更新データ3dを特定している。処理手段1cは、当該更新データ3d,3eを用いて、第2の更新データ4を生成する。第2の更新データ4は、データ項目2aを“12”に、データ項目2cを“20”に、それぞれ更新するためのデータである。そして、処理手段1cは記憶手段1aから第1の更新データ群3を削除する。
情報処理装置1によれば、特定手段1bにより、記憶手段1aが参照されて、データ項目2a,2b,2cそれぞれのうち、最新の更新データによる設定が初期設定と同一でないデータ項目2a,2cにつき最新の更新データ3d,3eが特定される。処理手段1cにより、特定手段1bが特定した更新データ3d,3eを用いて、データ項目2a,2b,2cに対する1つの第2の更新データ4が作成されて記憶手段1aに格納され、記憶手段1aから第1の更新データ群3が削除される。
これにより、更新ログのデータ量を効率的に低減できる。具体的には、データ項目2a,2b,2cそれぞれの最新の更新データを反映した第2の更新データ4を生成して、それ以外の更新データを削除するようにしたので、更新ログのデータ量を低減できる。ここで、データ項目2a,2b,2cそれぞれの最新の更新データのみから第2の更新データ4を生成できるのは、最新の更新データ以外の更新データが、最終的に新しい更新データによって別の設定に更新されるものだからである。このため、最新の更新データのみを参照することで、当該データ項目を同期させるために必要な情報を得ることができる。
特に、レコード2に対して、1つの新たな更新データ(第2の更新データ4)を生成するので、レコード2に対して複数存在していた更新データのデータ量を効率的に低減できる。
更に、最新の更新データによる設定が初期設定と異なるデータ項目2a,2cについて第2の更新データ4を生成することで、第2の更新データ4の中に初期設定と同一設定のデータ項目2bにつき無駄な更新コマンドを含めずに済む。
このため、第2の更新データ4を用いて冗長化したデータベースの同期を行えば、同期処理に掛かる時間を短縮できる。また、更新ログの最大データ量が所定量に制限されていても、第2の更新データ4の生成および第1の更新データ群3の削除を定期的に行うことで、更新ログの増加量を緩和できる。
以下に説明する第2の実施の形態では、情報処理装置1を金融窓口システムに適用する場合を例示して説明する。
[第2の実施の形態]
図2は、第2の実施の形態の金融窓口システムを示す図である。この金融窓口システムは、金融機関のセンタ10および営業店20における為替業務を支援する。ここで、以下では振込業務を例示して説明する。ただし、他の業務に関しても同様である。センタ10および営業店20には、金融窓口システムを構成するサーバ装置(以下、単にサーバということもある)や端末装置などの情報処理装置が設置されている。
この金融窓口システムは、DB(DataBase)サーバ100,100a、AP(Application)サーバ200、Webサーバ300、手続端末装置400、窓口端末装置500および承認端末装置600を含む。
DBサーバ100,100a、APサーバ200およびWebサーバ300はセンタ10内のネットワーク11に接続されている。手続端末装置400はセンタ10内のネットワーク12に接続されている。また、ネットワーク12はネットワーク11に接続されている。更に、窓口端末装置500および承認端末装置600は営業店20内のネットワーク21に接続されている。そして、ネットワーク11,21は、ネットワーク30を介して接続されている。ネットワーク30は、インターネット、イントラネットまたは当該金融窓口システムのための専用の通信網である。
DBサーバ100,100aは、金融窓口システムの処理に利用するデータを格納するためのサーバ装置である。DBサーバ100,100aは、冗長化(ミラーリング)されている。すなわち、DBサーバ100,100aは、一方(運用系)の更新内容を他方(待機系)へ同期する機能を有する。特に、DBサーバ100,100aは運用系が障害により運用継続できなくなると、待機系へ業務処理を引き継ぐ。例えば、DBサーバ100aが運用系であった場合に、DBサーバ100aで障害が発生し、運用継続できなくなると、待機系であるDBサーバ100に業務処理を引き継ぐ。その際、DBサーバ100は、DBサーバ100での更新内容を記録した更新ログを生成する。更新ログは、DBサーバ100aが復旧したときに、DBサーバ100での更新内容をDBサーバ100aに同期させるために用いる。
APサーバ200は、金融窓口システムの業務処理を実現するためのアプリケーションを実行するサーバ装置である。APサーバ200は、Webサーバ300から受け付けた要求に応じてDBサーバ100,100aを参照し、業務処理を実行する。
Webサーバ300は、手続端末装置400、窓口端末装置500および承認端末装置600から業務処理要求を受け付けるためのGUI(Graphical User Interface)を提供するサーバ装置である。手続端末装置400、窓口端末装置500および承認端末装置600の各オペレータは、各装置に設けられたブラウザによって当該GUIを利用できる。
手続端末装置400は、振込手続を行うための情報処理装置である。手続端末装置400は、センタ10に駐在する手続オペレータが操作する。
窓口端末装置500は、顧客が記入した振込伝票を受け付ける情報処理装置である。窓口端末装置500は、営業店20に駐在する窓口オペレータが操作する。
承認端末装置600は、振込手続の継続を承認するための情報処理装置である。承認端末装置600は、営業店20に駐在する承認者が操作する。
図3は、各装置の関係を示す図である。窓口端末装置500、承認端末装置600および手続端末装置400の各オペレータは、Webサーバ300にアクセスして業務処理要求を入力できる。窓口端末装置500、承認端末装置600および手続端末装置400はWebサーバ300のGUIをブラウザにより取得して表示する。
窓口端末装置500が表示するGUIは、振込伝票の受付完了の入力を受け付けるためのものである。
承認端末装置600が表示するGUIは、入力された振込伝票の情報に基づいて、振込手続を行ってもよい旨の承認を行うためのGUIである。
手続端末装置400が表示するGUIは、振込手続の確定の入力を行うためのGUIである。
Webサーバ300は、窓口端末装置500、承認端末装置600および手続端末装置400から取得した各業務処理要求に応じてAPサーバ200に対するリクエスト(APリクエストと称する)を生成し、APサーバ200に送信する。Webサーバ300は、APリクエストに応じた処理応答(APレスポンスと称する)をAPサーバ200から受信すると、当該APレスポンスに基づき業務処理応答を生成し、窓口端末装置500、承認端末装置600および手続端末装置400に送信する。
APサーバ200は、Webサーバ300から受信したAPリクエストに応じてDBサーバ100,100aに対するリクエスト(DBリクエストと称する)を生成し、DBサーバ100,100aに送信する。ここで、APサーバ200は、現在運用系のDBサーバに対してDBリクエストを送信する。例えば、DBサーバ100aが運用系であれば、DBサーバ100aにDBリクエストを送信する。すると、APサーバ200は、DBリクエストに応じた処理応答(DBレスポンスと称する)をDBサーバ100aから受信し、当該DBレスポンスに基づきAPレスポンスを生成してWebサーバ300に送信する。DBリクエストにはSQL文に対応する情報が含まれる。
DBサーバ100,100aは、APサーバ200から受信したDBリクエストに応じてデータ処理を行う。DBサーバ100,100aは、当該データ処理の結果に基づきAPサーバ200に対する応答を生成し、APサーバ200に送信する。ここで、DBサーバ100,100aのうち、運用系の一方が当該処理を行う。待機系の他方には、運用系で実行したデータ処理の結果が同期される。
以下の説明では、DBサーバ100aは障害により停止している場合を想定する。すなわち、金融窓口システムがDBサーバ100のみで縮退運用されている場合を想定する。ただし、DBサーバ100が障害で停止し、DBサーバ100aのみで縮退運用されている場合も以下の説明と同様である。
図4は、振込ワークフローを例示する図である。振込ワークフロー50は、金融窓口システムの振込処理の順序を示す。振込ワークフロー50には、各拠点(営業店20およびセンタ10)における、業務処理要求の発生元(要求元)の装置、当該要求に伴う処理および当該処理後の伝票状態が示されている。ここで、伝票状態は、DBサーバ100,100aで管理される振込伝票の状態を示す。振込ワークフロー50による処理順序は、次の通りである。
まず、顧客が金融機関に対して振込依頼を行うための振込伝票を作成する。振込ワークフロー50では、要求元が“(顧客)”、処理が“(振込依頼)”、伝票状態が“(作成)”と括弧で括られている。これは、当該手順が顧客によって行われるものであり、金融窓口システムが行う手順ではないためである。ただし、金融窓口システムによる処理の起点となる入力データは当該伝票に基づいて生成されるため、それが分かり易いように図示している。以下、それ以降の手順を説明する。なお、DBサーバ100の処理は、上述したようにWebサーバ300およびAPサーバ200を介したDBリクエストに基づき実行される。
(1)窓口端末装置500は、振込伝票の情報の登録要求をWebサーバ300に送信する。すると、DBサーバ100は当該伝票の情報を登録する。DBサーバ100は、伝票状態を“受付”に設定する。
(2)窓口端末装置500は、振込伝票による振込の承認依頼要求をWebサーバ300に送信する。すると、DBサーバ100は、伝票状態を“承認待ち”に設定する。これによって、承認端末装置600による承認が可能となる。
(3)承認端末装置600は、振込伝票の承認の設定要求をWebサーバ300に送信する。すると、DBサーバ100は伝票状態を“承認”に設定する。
(4)承認端末装置600は、振込伝票につき振込手続の委譲要求をWebサーバ300に送信する。すると、DBサーバ100は、伝票状態を“委譲”に設定する。
(5)手続端末装置400は、振込伝票による振込手続の実行要求をWebサーバ300に送信する。すると、DBサーバ100は、伝票状態を“手続中”に設定する。そして、APサーバ200により、他の支店や他の金融機関等との間で振込処理が実行される。
(6)APサーバ200は、振込処理が完了すると、その旨をDBサーバ100に通知する。すると、DBサーバ100は、伝票状態を“完了”に設定する。
以上の順序で振込処理が行われ、DBサーバ100上の電子伝票の状態が更新される。DBサーバ100は、このように順次変更される電子伝票の更新の履歴を更新ログとして記録する。DBサーバ100aが復旧した際に、当該更新ログを用いてデータの同期を図るためである。その際、DBサーバ100は、当該更新ログのデータ量を効率的に低減する。以下では、そのようなDBサーバ100の構成を詳細に説明する。まず、DBサーバ100が備えるデバイス(ハードウェア)の構成を説明する。
図5は、DBサーバのハードウェア構成を示す図である。DBサーバ100は、CPU(Central Processing Unit)101、ROM(Read Only Memory)102、RAM(Random Access Memory)103、HDD(Hard Disk Drive)104、グラフィック処理装置105、入力インタフェース106、記録媒体読取装置107および通信インタフェース108を有する。
CPU101は、OS(Operating System)プログラムやアプリケーションプログラムを実行して、DBサーバ100全体を制御する。
ROM102は、DBサーバ100の起動時に実行されるBIOS(Basic Input / Output System)プログラムなどの所定のプログラムを記憶する。ROM102は、書き換え可能な不揮発性メモリであってもよい。
RAM103は、CPU101が実行するOSプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、RAM103は、CPU101の処理に用いられるデータの少なくとも一部を一時的に記憶する。
HDD104は、OSプログラムやアプリケーションプログラムを記憶する。また、HDD104は、CPU101の処理に用いられるデータを記憶する。なお、HDD104に代えて(または、HDD104と併せて)、SSD(Solid State Drive)など他の種類の不揮発性の記憶装置を用いてもよい。
グラフィック処理装置105は、モニタ13に接続される。グラフィック処理装置105は、CPU101からの命令に従って、画像をモニタ13に表示させる。
入力インタフェース106は、キーボード14やマウス15などの入力デバイスに接続される。入力インタフェース106は、入力デバイスから送られる入力信号をCPU101に出力する。
記録媒体読取装置107は、記録媒体16に格納されたデータを読み取る読取装置である。記録媒体16には、例えば、DBサーバ100に実行させるプログラムが記録されている。DBサーバ100は、例えば、記録媒体16に記録された情報処理プログラムを実行することで、後述するような更新ログの圧縮機能を実現することができる。すなわち、情報処理プログラムはコンピュータ読み取り可能な記録媒体16に記録して配布することが可能である。
記録媒体16としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリを使用できる。磁気記録装置には、HDD、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、CD(Compact Disc)、CD−R(Recordable)/RW(ReWritable)、DVD(Digital Versatile Disc)、DVD−R/RW/RAMなどがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。半導体メモリには、USB(Universal Serial Bus)メモリなどのフラッシュメモリがある。
通信インタフェース108は、ネットワーク11に接続される。通信インタフェース108は、ネットワーク11を介してDBサーバ100a、APサーバ200、Webサーバ300、手続端末装置400、窓口端末装置500および承認端末装置600とデータ通信を行える。
なお、ネットワーク11やネットワーク30等に接続された他のサーバ装置(図示せず)に情報処理プログラムを格納しておいてもよい。その場合、DBサーバ100は、当該サーバ装置から情報処理プログラムをダウンロードして実行することもできる。
また、DBサーバ100a、APサーバ200、Webサーバ300、手続端末装置400、窓口端末装置500および承認端末装置600もDBサーバ100と同様のハードウェア構成により実現できる。
図6は、DBサーバの機能構成を示す図である。DBサーバ100は、伝票データベース110、トランザクションログ記憶部120、更新ログ記憶部130、最新レコード記憶部140、通信部150、データベース管理部160、解析処理部170、圧縮処理部180および同期処理部190を有する。これらのユニットの機能は、CPU101が情報処理プログラムを実行することによりDBサーバ100上に実現される。ただし、これらのユニットの機能の全部または一部を専用のハードウェアで実現してもよい。
伝票データベース110は、電子伝票を保存し、管理するための記憶領域である。伝票データベース110は、1つの電子伝票を、複数の設定項目を含む1つのレコードとして管理する。
トランザクションログ記憶部120は、トランザクションログを記憶する。トランザクションログは、伝票データベース110に対する全てのトランザクションを記録したものである。トランザクションログは、伝票データベース110に対する個別のトランザクションのロールバックやロールフォワードを行うために用いられる。
更新ログ記憶部130は、更新ログを記憶する。更新ログは、DBサーバ100aが障害により停止状態にあるときにデータベース管理部160により取得される。更新ログは、DBサーバ100aが障害から復旧した際に、DBサーバ100,100aで同期をとるために用いられる。
最新レコード記憶部140は、最新レコード管理データを記憶する。最新レコード管理データは、伝票データベース110に記録されたレコードに含まれる各設定項目につき、最新の状態を特定するために用いる情報である。
通信部150は、APサーバ200と通信する。通信部150は、APサーバ200から受信したDBリクエストをデータベース管理部160に出力する。通信部150は、データベース管理部160から取得したDBレスポンスをAPサーバ200に送信する。
データベース管理部160は、通信部150から取得したDBリクエストを解析してSQL文を取得(あるいは生成)する。データベース管理部160は、当該SQL文を実行して伝票データベース110を操作する。操作内容は、例えば、更新(UPDATE)、削除(DELETE)および挿入(INSERT)である。
解析処理部170は、更新ログ記憶部130に記憶された更新ログを参照して、最新レコード管理データを生成し、最新レコード記憶部140に格納する。
圧縮処理部180は、最新レコード記憶部140に記憶された最新レコード管理データを参照して更新ログの圧縮処理を行う。
同期処理部190は、DBサーバ100aが障害から復旧した際に、更新ログ記憶部130に記憶された更新ログを参照して、DBサーバ100aが備える伝票データベースを伝票データベース110に同期させる。
なお、DBサーバ100aもDBサーバ100と同様の機能構成である。
図7は、伝票管理テーブルのデータ構造例を示す図である。伝票管理テーブル111は、伝票データベース110に格納され、データベース管理部160によって更新される。伝票管理テーブル111は電子伝票を管理するためのデータである。伝票管理テーブル111には、レコード番号、エントリ店舗番号、伝票通番、伝票状態、取出中フラグおよびメディアファイルを示す項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つの電子伝票の情報を示す。
レコード番号の項目には、レコードを識別するための番号が設定される。エントリ店舗番号の項目には、営業店20を識別するための識別情報が設定される。伝票通番の項目には、電子伝票に付された通し番号が設定される。伝票状態の項目には、振込ワークフロー50上の伝票状態が設定される。取出中フラグの項目には、当該フラグがONまたはOFFの何れであるかを示す情報が設定される。ここで、取出中フラグとは、振込ワークフロー50における何れかの処理により利用を行っているため、他の処理によって更新できない状態(排他状態)であることを示すフラグである。このようなフラグは、排他フラグと呼ばれることもある。メディアファイルの項目には、振込伝票の記入内容を画像化したファイルが設定される(伝票管理テーブル111ではファイル名で示している)。
例えば、伝票管理テーブル111には、レコード番号が“1”、エントリ店舗番号が“E001”、伝票通番が“D0001”、伝票状態が“受付”、取出中フラグが“OFF”、メディアファイルが“D0001.dat”という情報が設定されている。
これは、当該電子伝票を示すレコード番号が“1”であること、営業店20で登録された伝票であること、伝票通番が“D0001”であること、伝票状態が振込ワークフロー50における“受付”の状態であることを示す。また、取出中フラグが“OFF”であるので、何れの処理にも用いられていないことを示す。更に、当該電子伝票に対応するメディアファイルが“D0001.dat”として、伝票管理テーブル111に格納されていることを示す。
また、例えば、伝票管理テーブル111には、レコード番号が“2”、エントリ店舗番号が“E001”、伝票通番が“D0002”、伝票状態が“承認待ち”、取出中フラグが“ON”、メディアファイルが“D0002.dat”という情報が設定される。
これは、当該電子伝票を示すレコード番号が“2”であること、営業店20で登録された伝票であること、伝票通番が“D0002”であること、伝票状態が振込ワークフロー50における“承認待ち”の状態であることを示す。また、取出中フラグが“ON”であるので、何れかの処理(ここでは、振込ワークフロー50における(2)または(3)の何れか)に利用されており、当該処理以外の処理には、更新が禁止された状態であることを示す。更に、当該電子伝票に対応するメディアファイルが“D0002.dat”として、伝票管理テーブル111に格納されていることを示す。
ここで、以下の説明では電子伝票を示すそれぞれのレコードを伝票管理レコードと称することとする。
図8は、更新ログファイルのデータ構造例を示す図である。更新ログファイル131は、データベース管理部160により生成され、更新ログ記憶部130に格納される。更新ログファイル131には、複数の更新データが記述される。更新ログファイル131では、更新データに対応付けて、当該更新データを識別するための項番を便宜的に表記している。項番は、時系列に昇順に付されており、番号が小さい程古く、番号が大きいほど新しい。なお、各更新データにつき、テーブル名は“伝票管理”の表記によって伝票管理テーブル111を指定しているとする。
更新データには、データベース管理部160による伝票データベース110の更新内容が記述される。更新ログファイル131では、1つの電子伝票に関する新たなレコードの挿入(INSERT)から始まって、振込ワークフロー50の(1)〜(6)(以下、単に“(1)の処理”等と表記する)に示した一連の処理に対応する更新データを例示している。
具体的には、新たな伝票の登録(レコードの挿入)は項番1の更新データに対応する。(1)の処理は項番2〜4の更新データに対応する。(2)の処理は項番5〜7の更新データに対応する。(3)の処理は項番8〜10の更新データに対応する。(4)の処理は項番11〜13の更新データに対応する。(5)の処理は項番14〜16の更新データに対応する。(6)の処理は項番17〜19の更新データに対応する。
ここで、(1)の処理に対応する項番2〜4の更新データが示す内容について説明する。更新対象のレコードのレコード番号は“1”とする。(1)の処理では、まず、項番2の更新データによって、取出中フラグが“ON”に設定される。これによって、当該レコードが排他状態となる。次に、項番3の更新データによって、伝票状態が“受付”に設定される。更に、項番4の更新データによって、取出中フラグが“OFF”に設定される。これによって、当該レコードの排他状態が解除される。
(2)〜(6)の処理に関しても(1)の処理と同様にして、伝票状態が更新される。すなわち、まず、当該レコードを排他状態にし、伝票状態を更新して、排他状態を解除する。
また、更新ログファイル131において、項番1の更新データは更新種別が“INSERT”(新規追加)であるから更新ログファイル131の取得を開始した時点におけるレコード番号“1”の伝票管理レコードの状態を示している。すなわち、当該項番1の更新データは当該レコードに含まれる各データ項目の初期設定である。
一方、項番1の更新データの更新種別が“UPDATE”である場合もある。その場合、項番1の更新データは“UPDATE”対象のデータ項目の初期設定を示すことになる。そして、他のデータ項目の初期設定は、当該他のデータ項目が最初に更新対象となったときに取得され記憶される。よって、この場合、初期設定を示す更新データは複数存在することになる。
図9は、最新レコードテーブルのデータ構造例を示す第1の図である。最新レコードテーブル141は、解析処理部170によって生成され、最新レコード記憶部140に格納される。最新レコードテーブル141a,141bは、解析処理部170による最新レコードテーブル141の更新の変遷を示すものである。最新レコードテーブルには、テーブル名、レコード番号、削除フラグおよび更新内容の項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つのレコードの最新の状態を示す。
テーブル名の項目には、テーブルの名称が設定される。レコード番号の項目には、テーブル内のレコードを識別するための番号が設定される。削除フラグの項目には、当該レコードが削除(DELETE)されたものか否かを示す削除フラグが設定される。削除フラグは、当該レコードが削除されたものであれば“ON”、それ以外では“OFF”が設定される。更新内容の項目には、データの項目名と当該データ項目の更新値が設定される。更新内容の項目は、データ項目名ごとに設けられる。このため、複数のデータ項目の更新値を管理する場合には、更新内容の項目も複数設けられる。最新レコードテーブル141a,141bでは、更新内容(A),(B)の項目を設けて、複数の更新内容を区別する。
以下、最新レコードテーブル141の更新の変遷について具体的に説明する。
最新レコードテーブル141は、更新ログファイル131の項番2の更新データに対応する。すなわち、最新レコードテーブル141は、伝票管理テーブル111のレコード番号“1”のレコードにつき、項目名“取出中フラグ”を更新値“ON”に設定した旨を記録したものである。
最新レコードテーブル141aは、更新ログファイル131の項番3の更新データに対応する。すなわち、最新レコードテーブル141aは、伝票管理テーブル111のレコード番号“1”のレコードにつき、項目名“伝票状態”を更新値“受付”に設定した旨を記録したものである。
最新レコードテーブル141bは、更新ログファイル131の項番4の更新データに対応する。すなわち、最新レコードテーブル141bは、伝票管理テーブル111のレコード番号“1”のレコードにつき、項目名“取出中フラグ”を更新値“OFF”に設定した旨を記録したものである。
以下、更新ログファイル131の項番5〜19についても、同様にして最新レコードテーブル141bを更新していく。
図10は、最新レコードテーブルのデータ構造例を示す第2の図である。最新レコードテーブル141nは、更新ログファイル131の項番19の更新データに対応する。すなわち、最新レコードテーブル141nは、伝票管理テーブル111のレコード番号“1”のレコードの最新の状態を特定したものである。
次に、以上の構成のDBサーバ100の処理手順を説明する。以下に示す処理は、例えば縮退運用時に定期的に実行される。
図11は、更新ログ圧縮処理を示すフローチャートである。以下、図11に示す処理をステップ番号に沿って説明する。
[ステップS1]解析処理部170は、更新ログ記憶部130に更新ログファイル131が有るか否かを判定する。更新ログファイル131が有る場合、処理をステップS2に進める。更新ログファイル131が無い場合、処理を終了する。
[ステップS2]解析処理部170は、更新ログファイル131から未処理の更新データのうち最も古い更新データを1つ取得する。
[ステップS3]解析処理部170は、更新データに記述された更新種別を判定する。“UPDATE”の場合、処理をステップS4に進める。“DELETE”の場合、処理をステップS5に進める。“INSERT”の場合、処理をステップS6に進める。
[ステップS4]解析処理部170は、最新レコード記憶部140に記憶された最新レコードテーブル141に更新内容を上書き記録する。
[ステップS5]解析処理部170は、最新レコード記憶部140に記憶された最新レコードテーブル141の削除フラグの項目を“ON”に設定する。
[ステップS6]解析処理部170は、更新ログファイル131に含まれる全ての更新データを処理済みであるか否かを判定する。全ての更新データを処理済みである場合、処理をステップS7に進める。なお、処理をステップS7に進める時点で最新レコード記憶部140には最新レコードテーブル141nが格納されているとする。未処理の更新データが有る場合、処理をステップS2に進める。
[ステップS7]圧縮処理部180は、最新レコードテーブル141nを参照して、レコードごとに単一の更新データを生成する。単一の更新データとは、当該レコードに対して1つの処理コマンド(“UPDATE”や“DELETE”)で、各データ項目の更新を行う更新データである。このとき、圧縮処理部180は最新レコードテーブル141nの更新値が初期設定と異なるデータ項目のみを、更新データに含める。レコードの更新を行う場合(削除フラグが“OFF”の場合)、更新種別“UPDATE”の更新データを生成する。レコードの削除を行う場合(削除フラグが“ON”の場合)、更新種別“DELETE”の更新データを生成する。圧縮処理部180は、生成した更新データを更新ログファイル131に記述する。
[ステップS8]圧縮処理部180は、更新ログ記憶部130に記憶されたステップS7で生成した更新データ以外の更新データ(初期設定の更新データを除く)を削除する。
このようにして、解析処理部170および圧縮処理部180は更新ログファイル131のデータ量を低減する。
図12は、圧縮処理後の更新ログファイルを例示する第1の図である。更新ログファイル131aは、更新ログファイル131および最新レコードテーブル141nに基づいて、圧縮処理部180により生成されたものであり、図11のステップS8の圧縮処理部180による処理後の更新ログである。更新ログファイル131と比較すると、項番20の更新データが追加されて、項番2〜19のデータが削除されていることが分かる。
特に、項番20の更新データでは、対象の伝票管理レコードにつき伝票状態を“完了”に更新する処理が記述されている。これは、最新レコードテーブル141nの更新内容(B)に対応する。一方、項番20の更新データでは、最新レコードテーブル141nの更新内容(A)に対応する処理は記述されていない。これは、項番1の更新データに示される取出中フラグ“OFF”と、最新レコードテーブル141nの更新内容(A)で特定された取出中フラグの最新の設定“OFF”と、が同一だからである。すなわち、更新の必要がないため、当該データ項目に関する処理の記述を省ける。
次に、最新レコードテーブル141nの他の例と、それに応じて圧縮処理部180により生成される更新ログファイル131aの他の例とを具体的に説明する。
図13は、圧縮処理後の更新ログファイルを例示する第2の図である。まず、最新レコードテーブル141xは、最新レコードテーブル141nの他の例を示す。具体的には、更新内容(C)の項目が追加されている。当該更新内容(C)の項目には、項目名“伝票通番”および更新値“D1001”が設定されている。これは、レコード番号“1”に対して、伝票通番が“D1001”に変更されていることを示す。更新内容(C)は、圧縮前の更新ログファイルから、更新内容(B)とは別個の更新データにより特定されたものである。
圧縮処理部180は、圧縮処理前の更新ログファイルと最新レコードテーブル141xとに基づいて更新ログファイル131bを生成する。ここで、圧縮処理前の更新ログファイルでは、初期設定(項番1)の更新データの更新種別が“INSERT”、取出中フラグが“OFF”、伝票状態が“完了”以外、伝票通番が“D1001”以外であったとする。この場合、更新種別が“UPDATE”なので、上述したように項番1の更新データも削除できる。
更新ログファイル131bには、項番1の更新データに加えて、項番31の更新データが記述されている。当該項番31の更新データでは、対象の伝票管理レコードにつき伝票状態を“完了”に、伝票通番を“D1001”に更新する処理が記述されている。これは、最新レコードテーブル141xの更新内容(B)、(C)に対応する。また、項番31の更新データでは最新レコードテーブル141xの更新内容(A)に対応する処理は記述されていない。これは、初期設定の取出中フラグ“OFF”と、最新レコードテーブル141xの更新内容(A)で特定された取出中フラグの最新の設定“OFF”と、が同一だからである。
このように、圧縮処理部180は圧縮処理前には複数の更新データで記述されていた複数の更新内容を単一の更新データにまとめて、更新ログファイルに記述する。そして、当該伝票管理レコードの更新内容を記述していた複数の更新データを圧縮前の更新ログファイルから削除する。その結果、更新ログファイル131bが生成される。
これにより、更新ログファイルのデータ量を効率的に低減できる。特に、複数の更新内容を単一の更新データにまとめる。このため、当該更新ログファイル131bを用いて同期処理を行えば、圧縮前の更新ログファイルを用いて同期を行う場合に比べて、更新処理の回数を低減できる。よって、同期処理を高速に行える。
このとき、初期設定と最新の設定とで相違がないデータ項目に関しては、更新データに更新処理を記述しない。よって、更新ログファイルのデータ量を一層低減できる。また、同期処理において当該データ項目に対する更新処理を行わずに済む。よって、同期処理を一層高速に行える。
このような制御は、更新ログファイル中に、取出中フラグなどの排他フラグのように、データ処理に用いる時だけ更新し、データ処理が完了すると元の設定に戻すようなデータ項目が含まれる場合に特に有効である。なぜなら、このような排他フラグは、一連のデータ処理において頻繁に更新されるにも関わらず、最終的には当初の設定値に戻される。したがって、これら全ての更新処理を同期処理の際に再現すると、処理に無駄が生じ易いためである。
図14は、圧縮処理後の更新ログファイルを例示する第3の図である。まず、最新レコードテーブル141yは、最新レコードテーブル141nの他の例を示す。具体的には、レコード番号“2”の伝票管理レコードに対して削除フラグが“ON”に設定されている。これは、レコード番号“2”に対して、“DELETE”の処理が行われたことを示す。なお、圧縮処理前の更新ログファイルには、レコード番号“2”の伝票管理レコードにつき、“UPDATE”の処理が複数記述されていたものとする。初期設定も“UPDATE”の更新種別を含む複数の更新データにより取得されていたものとする。
圧縮処理部180は、圧縮処理前の更新ログファイルと最新レコードテーブル141yとに基づいて、更新ログファイル131cを生成する。更新ログファイル131cには、項番41の更新データが記述されている。当該項番41の更新データでは、対象の伝票管理レコードを削除する処理が記述されている。
このように、圧縮処理部180は圧縮処理前には複数の更新データで複数の更新内容が記述されていたとしても、削除処理が行われた場合には当該削除処理を記述した更新データのみを生成し、他の更新データを削除する。削除処理を記述した更新データ以外の他の更新データを削除できるのは、削除された伝票管理レコードに対しては、その後新たな処理に用いられることは無いと考えられるからである。
これにより、更新ログファイルのデータ量を一層効率的に低減できる。具体的には、削除処理以外の処理を示す更新データを削除するので、当該削除した更新データ分のデータ量を低減できる。また、更新ログファイル131cを用いれば、同期処理において、当該伝票管理レコードに対する削除処理以外の処理を行わずに済む。よって、同期処理を一層高速に行える。
特に、レコードの削除処理用の更新データを生成する際には、更新ログファイル131cに示したように、更新種別“UPDATE”で記述された更新データを初期設定も含めて削除してもよい(更新種別“DELETE”で記述された更新データが残る)。削除されるレコードにつき同期時に更新処理を再現するのは無駄だからである。
また、以上に示した圧縮処理を定期的に行えば、更新ログファイルの増加量を緩和できる。よって、更新ログファイルの最大データ量が所定量に制限されていたとしても、当該ファイルのデータ量が所定量に達するまでに時間的な余裕が得られる。その結果、縮退運転の稼働時間や保守用の時間等を確保し易くなる。
以上、本発明の情報処理プログラム、情報処理装置および情報処理方法を図示の実施の形態に基づいて説明したが、これらに限定されるものではなく、各部の構成は同様の機能を有する任意の構成のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。更に、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
1 情報処理装置
1a 記憶手段
1b 特定手段
1c 処理手段
2 レコード
2a,2b,2c データ項目
3 第1の更新データ群
3a,3b,3c,3d,3e,3f,3g 第1の更新データ
4 第2の更新データ

Claims (5)

  1. コンピュータを、
    複数のデータ項目を含むレコードの初期設定と、前記複数のデータ項目に対する前記初期設定からの更新内容を示す複数の第1の更新データとを記憶する記憶手段、
    前記記憶手段を参照して、前記複数のデータ項目それぞれのうち、最新の更新データによる設定が前記初期設定と同一でないデータ項目につき前記最新の更新データを特定する特定手段、
    前記特定手段により特定された全てのデータ項目の前記最新の更新データを用いて、前記複数のデータ項目に対する1つの第2の更新データを生成して前記記憶手段に格納し、前記記憶手段から前記複数の第1の更新データを削除する処理手段、
    として機能させることを特徴とする情報処理プログラム。
  2. 前記処理手段は、前記特定手段により前記複数のデータ項目の何れかにつき前記最新の更新データとして前記レコードの削除が特定された場合、前記レコードを削除するための処理の記述を含む前記第2の更新データを生成する、
    ことを特徴とする請求項1記載の情報処理プログラム。
  3. 前記コンピュータを、
    前記記憶手段に記憶された前記第2の更新データを用いて前記レコードの設定と他のコンピュータが記憶するレコードの設定とを同期させる同期処理手段、
    として機能させることを特徴とする請求項1または2の何れか一項に記載の情報処理プログラム。
  4. 複数のデータ項目を含むレコードの初期設定と、前記複数のデータ項目に対する前記初期設定からの更新内容を示す複数の第1の更新データとを記憶する記憶手段と、
    前記記憶手段を参照して、前記複数のデータ項目それぞれのうち、最新の更新データによる設定が前記初期設定と同一でないデータ項目につき前記最新の更新データを特定する特定手段と、
    前記特定手段により特定された全てのデータ項目の前記最新の更新データを用いて、前記複数のデータ項目に対する1つの第2の更新データを生成して前記記憶手段に格納し、前記記憶手段から前記複数の第1の更新データを削除する処理手段と、
    を有することを特徴とする情報処理装置。
  5. コンピュータの情報処理方法であって、
    複数のデータ項目を含むレコードの初期設定と、前記複数のデータ項目に対する前記初期設定からの更新内容を示す複数の第1の更新データとを記憶する記憶手段を参照して、前記複数のデータ項目それぞれのうち、最新の更新データによる設定が前記初期設定と同一でないデータ項目につき前記最新の更新データを特定し、
    特定した全てのデータ項目の前記最新の更新データを用いて、前記複数のデータ項目に対する1つの第2の更新データを生成して前記記憶手段に格納し、前記記憶手段から前記複数の第1の更新データを削除する、
    ことを特徴とする情報処理方法。
JP2011015894A 2011-01-28 2011-01-28 情報処理プログラム、情報処理装置および情報処理方法 Pending JP2012155634A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011015894A JP2012155634A (ja) 2011-01-28 2011-01-28 情報処理プログラム、情報処理装置および情報処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011015894A JP2012155634A (ja) 2011-01-28 2011-01-28 情報処理プログラム、情報処理装置および情報処理方法

Publications (1)

Publication Number Publication Date
JP2012155634A true JP2012155634A (ja) 2012-08-16

Family

ID=46837274

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011015894A Pending JP2012155634A (ja) 2011-01-28 2011-01-28 情報処理プログラム、情報処理装置および情報処理方法

Country Status (1)

Country Link
JP (1) JP2012155634A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015064850A (ja) * 2013-09-26 2015-04-09 日本電気株式会社 データベース監視装置、データベース監視方法、並びにコンピュータ・プログラム
JP2017156950A (ja) * 2016-03-01 2017-09-07 日本電気株式会社 情報処理装置、情報処理方法、及び、情報処理プログラム
JP2018128881A (ja) * 2017-02-09 2018-08-16 富士通株式会社 差分ログ適用プログラム、差分ログ適用装置及び差分ログ適用方法
JP2018181042A (ja) * 2017-04-17 2018-11-15 富士通株式会社 レコード反映プログラム、レコード反映装置およびレコード反映方法
JP2021174065A (ja) * 2020-04-20 2021-11-01 富士通株式会社 情報処理装置、情報処理システム、及び情報処理プログラム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015064850A (ja) * 2013-09-26 2015-04-09 日本電気株式会社 データベース監視装置、データベース監視方法、並びにコンピュータ・プログラム
JP2017156950A (ja) * 2016-03-01 2017-09-07 日本電気株式会社 情報処理装置、情報処理方法、及び、情報処理プログラム
JP2018128881A (ja) * 2017-02-09 2018-08-16 富士通株式会社 差分ログ適用プログラム、差分ログ適用装置及び差分ログ適用方法
JP2018181042A (ja) * 2017-04-17 2018-11-15 富士通株式会社 レコード反映プログラム、レコード反映装置およびレコード反映方法
JP2021174065A (ja) * 2020-04-20 2021-11-01 富士通株式会社 情報処理装置、情報処理システム、及び情報処理プログラム
JP7428894B2 (ja) 2020-04-20 2024-02-07 富士通株式会社 情報処理装置、情報処理システム、及び情報処理プログラム

Similar Documents

Publication Publication Date Title
US11893041B2 (en) Data synchronization between a source database system and target database system
JP5124989B2 (ja) ストレージシステム及びデータ保護方法とプログラム
US7103619B1 (en) System and method for automatic audit data archiving within a remote database backup system
US8775386B2 (en) Device and method for generating copy of database
CN113396407A (zh) 用于利用区块链技术扩充数据库应用的系统和方法
JP4166056B2 (ja) データベース操作履歴管理装置、データベース操作履歴管理方法、およびデータベース操作履歴管理プログラム
US20100030824A1 (en) Statement logging in databases
CN102937931B (zh) 一种日志数据传输的方法和系统
JP2005301497A (ja) ストレージ管理装置、リストア方法及びそのプログラム
US20150263909A1 (en) System and method for monitoring a large number of information processing devices in a communication network
CN110209735A (zh) 数据库备份方法、数据库备份装置、计算设备和存储介质
CN103842969A (zh) 信息处理系统
US9135266B1 (en) System and method for enabling electronic discovery searches on backup data in a computer system
KR101693683B1 (ko) 가상 데이터베이스 되감기
KR20120140652A (ko) 플래시카피 캐스케이드내의 버퍼 디스크
US20120278429A1 (en) Cluster system, synchronization controlling method, server, and synchronization controlling program
US8762347B1 (en) Method and apparatus for processing transactional file system operations to enable point in time consistent file data recreation
CN102272751A (zh) 在数据库环境通过背景同步的数据完整性
JP6133396B2 (ja) 計算機システム、サーバ、及び、データ管理方法
JP2012155634A (ja) 情報処理プログラム、情報処理装置および情報処理方法
US11144574B2 (en) System and method for managing database
CN104750755A (zh) 一种数据库主备切换后的数据回补方法及系统
WO2023111910A1 (en) Rolling back database transaction
US20120011172A1 (en) Information management apparatus and computer product
US8074100B2 (en) Method and apparatus for restore management