JP4267094B2 - 2重更新を行うデータベースを有するクライアントサーバーシステム - Google Patents

2重更新を行うデータベースを有するクライアントサーバーシステム Download PDF

Info

Publication number
JP4267094B2
JP4267094B2 JP22729198A JP22729198A JP4267094B2 JP 4267094 B2 JP4267094 B2 JP 4267094B2 JP 22729198 A JP22729198 A JP 22729198A JP 22729198 A JP22729198 A JP 22729198A JP 4267094 B2 JP4267094 B2 JP 4267094B2
Authority
JP
Japan
Prior art keywords
database
server
primary
processing
message queue
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.)
Expired - Fee Related
Application number
JP22729198A
Other languages
English (en)
Other versions
JP2000057030A (ja
Inventor
木 彰 柿
藤 健 山
岸 敏 一 高
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.)
Nomura Research Institute Ltd
Original Assignee
Nomura Research Institute 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 Nomura Research Institute Ltd filed Critical Nomura Research Institute Ltd
Priority to JP22729198A priority Critical patent/JP4267094B2/ja
Publication of JP2000057030A publication Critical patent/JP2000057030A/ja
Application granted granted Critical
Publication of JP4267094B2 publication Critical patent/JP4267094B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

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

Description

【0001】
【発明の属する技術分野】
本発明は、データベースマネージメントシステム(DBMS)を有するクライアントサーバーシステムに係り、特にハードウェアやデータベースシステムの障害に対して短時間でシステムを復元する障害回復処理を行うクライアントサーバーシステムに関する。
【0002】
また、本発明は、24時間連続稼動することができるクライアントサーバーシステムに関する。
【0003】
なお、本発明は、クライアントのリクエストによりサーバーがDBMSを介してデータベースの参照・更新を行うものであればよく、オンライントランザクション処理システムに限られないが、以下の説明ではオンライントランザクション処理システムとして使用した場合にその機能が理解しやすいことが多いため、必要に応じてオンライントランザクション処理システムを例に説明する。
【0004】
【従来の技術】
一般に、オンライントランザクション処理(OLTP)を行うクライアントサーバーシステムは、サーバーに複数のクライアントがオンライン接続し、クライアントからサーバーに処理のためのメッセージを送り、そのメッセージにしたがってサーバーで一連のデータベースアクセス等の処理を行い、その処理結果を即座にクライアントに送り返す処理を行う。
【0005】
ここで、オンライントランザクション処理は、クライアントからサーバーに送る1回のメッセージに対する処理を指し、1回のメッセージに対する処理は通常複数のデータベース操作を含み、1つの論理処理単位を形成する。たとえば、データベース内のあるテーブルの値を変更する処理の場合、そのテーブルに関連する他のテーブルの値も変更しなければならない場合には、必要なデータの変更全体が1つトランザクション処理を形成する。このように1つのトランザクション処理が、複数のデータテーブルの値の変更に関係することが多いので、データの値の整合性を確保するため、トランザクション処理は全体として完全に行われるか全く行われないかのいずれかでなければならない。
【0006】
また、オンライントランザクション処理を行うクライアントサーバーシステムの場合は、複数のクライアントから不定期にメッセージを受けて上述したトランザクション処理を行う。このため、複数のクライアントから同時に処理要求があった場合には、複数のトランザクション処理を同時に実行しなければならない。このような複雑な処理を行うオンライントランザクション処理システムは、多数のトランザクション処理を高速、かつ、データ間の矛盾が生じないように高い信頼性の下で処理することが求められる。
【0007】
上述した処理に対する高速・高信頼性の要求により、従前はオンライントランザクション処理システムは汎用機からなることが主であった。
【0008】
汎用機によるオンライントランザクション処理システムでは、使用環境を特化し、種々の処理状態を想定して繰り返しテストすることにより、ハードウェアとソフトウェアの双方においてエラーの発生を最小限にとどめるようにしていた。このため、汎用機によるオンライントランザクション処理システムでは、システム障害が発生する確率がそもそも低いために障害回復処理が必要とされることが少なかった。万一システム障害が発生した場合には、従来の汎用機システムでは予め用意された手順によってシステム回復を図っていたが、その回復処理は通常比較的長い時間を要していた。
【0009】
これに対して、最近ではネットワークコンピューティングを制御するOS(オペレーティングシステム)によってもオンライントランザクション処理システムを構築できるようになった。ネットワークコンピューティングによるオンライントランザクション処理システムは、汎用機に比べて比較的小型のコンピュータを複数接続してネットワークを構築し、OSの管理の下でトランザクション処理を行うものである。
【0010】
上記OSの下で構築したオンライントランザクション処理システムにおいても、汎用機同様の処理の高速性と高信頼性が要求される。しかし、ネットワークコンピューティングの処理を管理するOSは、OSとしての汎用性や多機能性を追求するために、トランザクション処理における特定の使用条件における繰返しテストを行うことはできない。このため、通常のOSには、一般的な障害回復処理の手段が機能として用意されている。一般的な障害回復処理の手段の代表的なものは一部のハードウェアの2重化があり、たとえば、ハードディスクの2重化、SCSIバスの2重化などである。ハードウェアの2重化は基本的なハードウェア障害対策といえる。
【0011】
これに対して、AT&Tベル研究所の開発によるOSである「UNIX」(UNIXは商品名)はさらに進んでハードウェア(コンピュータ)全体の2重化を想定し、ハードウェア切替用のハイアベイラビリティ機構(HA機構)を用意している。
【0012】
このHA機構は、サーバーに正系ノード(ノードはクライアントサーバーシステムを構成する論理的単位をいうものとする)と待機系ノードを用意している場合に、正系のノードでLANボード障害や、たとえばマザーボードやCPU障害のようなサーバー本体の全面障害や、データベースシステムなどのプロセスダウン(プロセスダウンとはシステムとしての機能を失うような全体的なシステムダウンをいうものとする)が発生したときに、待機系ノードは障害発生時に正系ノードで処理を行っていたプログラムを起動し、自動的に待機系ノードによって正系ノードの処理を引き継ぐことによってシステムを回復させる機能である。なお、このHA機構による正系と待機系の切り替えは瞬時のうちに行うことができる。
【0013】
上記HA機構によれば、UNIXによる2重化ハードウェアを有するトランザクション処理システムにおいて、上述したようなハードウェア障害、またはプログラムの異常な処理に伴うシステムのシャットダウンなどに対して、瞬時にノードを切り替え、素早い障害回復処理を行うことができる。
【0014】
この他に、以上のUNIXのHA機構が、システムのノード自体のハードウェア障害を回復するのに対して通信ネットワークの障害に対してシステムを回復するクライアントサーバーシステム(特開平7−302237号)も提案されている。これもハードウェア面におけるシステムの信頼性向上のための提案の一つと言える。
【0015】
この特開平7−302237号が開示するシステムは、クライアントとサーバーを接続するLANを2重化し、通信経路を選択することができるプロセスをそれぞれクライアントとサーバーに置き、一つの通信経路(LAN)に障害があった場合に、他の通信経路(LAN)によって通信を行えるようにしたものである。
【0016】
このシステムによれば、一方の通信ネットワークに障害が発生した場合にも、残る健全な通信ネットワークを選択することにより通信処理を行うことができる。
【0017】
【発明が解決しようとする課題】
しかし、従来のクライアントサーバーシステムでは、ハードウェア自体の障害やソフトウェアプログラムのプロセスダウンに伴うハードウェア障害に対しては上述したようにハードウェアの切替えによってシステムの回復を図ることができたが、データベースシステム関連のファイルが破損しているなどのソフトウェアの深刻な障害が生じた場合には、障害回復処理を行うことができなかった。
【0018】
たとえば、上述したUNIXのHA機構は、正系ノードでOLTPのプロセスダウンが発生したときに、正系ノードで処理を行っていたデータベースシステムを待機系ノードで起動することにより、待機系ノードによってシステム回復を図るようにしている。しかし、データベースシステムがもともとプログラムエラー(バグ)を有している場合や、プロセスダウンした時にデータベースの関連ファイルが破損してしまった場合には、これらのデータ検索等を行うプログラム(データベースシステム)を起動した待機系ノードでも、結局データベースシステムを使用することができず、システムを回復することができなかった。
【0019】
ところで、上述したようなプログラムエラーやプロセスダウンなどのソフトウェア障害は、通常多数のトランザクション処理を同時に実行している場合に、処理のタイミングによって発生することが多いことが経験上知られている。この場合に、同時実行数が少ないなどトランザクション処理の条件が緩やかになれば、プログラムエラーが発生せずに同一のトランザクション処理をすることができることが多いことも知られている。
【0020】
そごで、本発明は、「常時」最新の状態に更新されるデータベースとそのデータベースシステム(データベースのデータを参照、更新するプログラム)を2重に有していれば、一方のデータベースシステムが破損した場合にも、他方のデータベースとデータベースシステムとによってシステムを回復し継続して処理を行うことができる可能性に着目し、2重のデータベースを常時更新するシステムを提供しようとするものである。
【0021】
ただし、オンライン処理自体は、通常一つのデータベースに対して参照や更新を行うものであるため、一対(2重)のデータベースを常時更新するためには、オンライン処理を実際に行っているシステム以外のシステムが、オンライン処理を行っているシステムの処理結果を常時追随し、かつ、障害発生時のシステム切替えに伴うデータベース間のデータの矛盾が生じないようにシステム構成する必要がある。このようにオンライン処理システムにおいて2重化されたデータベースをほぼ同時に更新するシステムは従来存在していなかった。
【0022】
すなわち、本発明が解決しようとする課題は、ソフトウェア自体の破損、特にデータベースシステムの破損が生じた場合にも、極めて短い時間の間にソフトウェア障害発生前の状態にシステムを回復することができるクライアントサーバーシステムを提供することにある。
【0023】
なお、上述したように、ここで、「システムの回復」というのは、システムとして作動が可能になったことのみならず、障害発生時に完了していなかった処理についてユーザーが受け取ったメッセージとシステムのデータベースの値が互い整合した状態に回復し、また、障害発生時の処理と処理再開後の処理でデータ上矛盾が生じないようにするシステム回復も含むものとする。
【0024】
さらに、本発明が解決しようとする他の課題として、24時間稼動できるオンライン処理システムを提供することがある。
【0025】
24時間稼動できるオンライン処理システムは、ハードウェアを2重化し、正系システムと副系システムのデータの内容を整合させて、極めて短い時間の間に正系システムと副系システムを切り替えることによって実現されるが、正副両系のデータ内容を整合させること、および極めて短い時間の間に正系システムと副系システムを切り替えることは、技術的には上述した障害回復処理を行うクライアントサーバーシステムと共通である。
【0026】
ただし、24時間稼動できるためには、上述したような正系・副系システムの迅速な切替えのほかに、2重化したデータベースのそれぞれにおいてデータの整理・再登録の処理が必要であり、このための解決手段が必要である。本発明による24時間稼動できるオンライン処理システムは、正系システムと副系システムを切れ目なく切り替えることかでき、かつ、その間に各データベースでデータの整理・再登録をすることができるようにしたものである。
【0027】
すなわち、本発明が解決しようとする他の課題は、障害回復処理を行うクライアントサーバーシステムの延長として24時間稼動することができるオンライン処理システムを提供することにある。
【0028】
【課題を解決するための手段】
本願請求項1に係る2重更新を行うデータベースを有するクライアントサーバーシステムは、
少なくとも1つのクライアントと、前記クライアントの接続サーバーを切り替えるゲートウェイと、同一の構成を有する正系サーバーと副系サーバーと、前記正系サーバーと副系サーバーとによってそれぞれ参照および更新される一対のデータベースと、を有するクライアントサーバーシステムにおいて、
前記正系サーバーと副系サーバーはともに、前記クライアントのメッセージに対してオンライン処理を行うオンラインアプリケーション手段と、データベースの参照と更新を行うデータベースシステムと、自系のデータベースに対するデータベース変更メッセージを一時的に蓄積して他系に送出するメッセージキュー送出手段と、他系のデータベースに対するデータベース変更メッセージを自系に受け入れて一時的に蓄積するメッセージキュー受入手段と、前記オンラインアプリケーション手段がデータベース変更メッセージを受けてデータベースに対して行う処理と同一の処理を行うように構成され、前記メッセージキュー受入手段から他系のデータベースのデータベース変更メッセージを入力し、前記データベースシステムを介して自系のデータベースを更新するメッセージキュー起動アプリケーション手段とを有し、
通常の処理においては前記正系サーバーは、そのオンラインアプリケーション手段によってオンライン処理を行い、必要に応じて正系のデータベースシステムを介して正系のデータベースを変更するとともに、正系のデータベースに対するデータベース変更メッセージを正系のメッセージキュー送出手段に送り、
前記副系サーバーは、副系のメッセージキュー受入手段が正系のメッセージキュー送出手段から正系のデータベースに対するデータベース変更メッセージを逐次受け入れ、副系のメッセージキュー起動アプリケーション手段が副系のメッセージキュー受入手段から正系のデータベースに対するデータベース変更メッセージを入力し、副系のデータベースシステムを介して副系のデータベースを更新し、
前記正系サーバーにファイルの破損が発生したときは、前記ゲートウェイの切替えによって処理要求のあった前記クライアントを前記副系サーバーに接続し、副系のオンラインアプリケーション手段によってオンライン処理を行い、必要に応じて副系のデータベースシステムを介して副系のデータベースを変更するとともに、副系のデータベースに対するデータベース変更メッセージを逐次副系のメッセージキュー送出手段に送り、
前記正系サーバーは機能が回復した後に、正系のメッセージキュー受入手段が副系のメッセージキュー送出手段から副系処理中の副系のデータベースに対するデータベース変更メッセージを受け入れ、正系のメッセージキュー起動アプリケーション手段が正系のメッセージキュー受入手段から副系のデータベースに対するデータベース変更メッセージを入力し、正系のデータベースシステムを介して正系のデータベースを更新することを特徴とするものである。
【0029】
本願請求項2に係る2重更新を行うデータベースを有するクライアントサーバーシステムは、請求項1のクライアントサーバーシステムにおいて、
前記正系および副系のメッセージキュー起動アプリケーション手段は、起動用アプリケーション制御手段を有し、この起動用アプリケーション手段の起動メッセージによって起動し、前記メッセージキュー受入手段から他系のデータベースに対するデータベース変更メッセージを入力して前記データベースシステムを介して自系のデータベースを更新するように構成されていることを特徴とするものである。
【0030】
本願請求項3に係る2重更新を行うデータベースを有するクライアントサーバーシステムは、請求項1または2に記載のクライアントサーバーシステムにおいて、
前記副系サーバーは、副系のメッセージキュー受入手段と平行して正系のデータベースに対するデータベース変更メッセージを入力する予備メッセージキュー受入手段を有することを特徴とするものである。
【0031】
本願請求項4に係る2重更新を行うデータベースを有するクライアントサーバーシステムは、請求項1ないし3のいずれかのクライアントサーバーシステムにおいて、
前記正系サーバーあるいは副系サーバーと同一のハードウェア構成を有し、前記正系サーバーがサーバー全体の機能停止を伴うハードウェア障害またはプロセスダウンを生じたときに、前記正系サーバーで起動されていたプログラムを起動して前記正系サーバーが行っていた処理を継続して行う待機系サーバーを有することを特徴とするものである。
【0032】
本願請求項5に係る2重更新を行うデータベースを有するクライアントサーバーシステムは、請求項4のクライアントサーバーシステムにおいて、
前記待機系サーバーは、起動後に正系のデータベースの破損によって処理不能であるときは、前記正系のデータベースに対するデータベース変更メッセージを副系のメッセージキュー受入手段に送出し、
前記副系サーバーは、そのメッセージキュー起動アプリケーション手段が副系のメッセージキュー受入手段から前記正系のデータベースに対するデータベース変更メッセージを入力し、副系のデータベースシステムを介して副系のデータベースを更新した後に、副系のオンラインアプリケーション手段によってオンライン処理を行うことを特徴とするものである。
【0033】
本願請求項6に係る2重更新を行うデータベースを有するクライアントサーバーシステムは、請求項1ないし請求項5のいずれかのクライアントサーバーシステムにおいて、
前記正系サーバーがオンライン処理した所定期間中の正系のデータベースのデータを集約してデータベースファイルの形式で一時的に記憶する中間ボリューム記憶装置と、
前記副系サーバーがオンライン処理した所定期間中の副系のデータベースに対するデータベース変更メッセージを一時的に記憶しておく副系メッセージキュー手段とを有し、
前記正系サーバーと前記副系サーバーとが交互に切り替わって切れ目なくオンライン処理を行い、切替えによって前記正系サーバーがオンライン処理を開始すると、副系サーバーにおいて、前記中間ボリューム記憶装置に記憶された切替え前の処理期間の開始時点のデータを集約したデータベースファイルを副系のデータベースに上書きし、続いて前記副系メッセージキュー手段に記憶された切替え前の処理期間のデータベース変更メッセージによって副系のデータベースを更新し、次にオンライン処理に伴って生じる正系のデータベースに対するデータベース変更メッセージを逐次入力して副系のデータベースを最新のデータ状態に更新し、
切替えによって前記副系サーバーがオンライン処理を開始すると、正系サーバーにおいて、切替え前の処理期間中に変更された正系データベースのデータの集約と再登録と前記中間ボリューム記憶装置への複写を行うバッチ処理を行い、前記バッチ処理終了後は、オンライン処理に伴って生じる副系のデータベースに対するデータベース変更メッセージを逐次入力して正系のデータベースを最新のデータ状態に更新することにより、24時間連続稼動するように構成したことを特徴とするものである。
【0034】
【発明の実施の形態】
次に本発明の実施の形態について説明する。
図1ないし図4に本発明による「2重更新を行うデータベースを有するクライアントサーバーシステム」の一実施形態の構成と、通常の処理(図1)、正系システムにハードウェア障害が発生したときの処理(図2)、サーバー全体の機能停止を伴わないソフトウェア障害が発生したときの処理(図3)、および、サーバー全体の機能停止を伴うプロセスダウンが発生しかつデータベース関連ファイルが破損した場合の処理(図4)の流れを示す。
【0035】
図1は、本発明の一実施形態による「2重更新を行うデータベースを有するクライアントサーバーシステム」の構成とその通常処理の流れを示している。
【0036】
図1において、2重更新を行うデータベースを有するクライアントサーバーシステム1は、クライアント2a,2b,…,2nと、ゲートウェイ3と、正系サーバー4aと、副系サーバー4bと、正系サーバー4aによって参照・更新される正系データベース5aと、副系サーバー4bによって参照・更新される副系データベース5bと、待機系サーバー6とを有している。
【0037】
クライアント2a,2b,…,2nは、ユーザーの入力により、正系サーバー4aまたは副系サーバー4bに接続し、正系サーバー4aまたは副系サーバー4bに対して所定の処理を要求し、その処理の結果をユーザーに表示しまたは出力する端末装置である。
【0038】
ゲートウェイ3は、クライアント2a,2b,…,2nのいずれかから接続要求があったときに、システムの状態により接続先サーバー(正系サーバー4aまたは副系サーバー4b)を切り替えて接続する装置である。
【0039】
正系サーバー4aは、通常処理を行っている時にクライアント2a,2b,…,2nからの処理要求(メッセージ)を処理するサーバーである。正系サーバー4aの内部構成については後述する。正系サーバー4aは、クライアント2a,2b,…,2nの要求に応じて、正系データベース5aのデータをクライアント2a,2b,…,2nに返送したり、必要なデータ処理を行った後に処理結果をクライアント2a,2b,…,2nに返送する装置である。正系サーバー4aの内部構成については後述する。
【0040】
正系データベース5aは、上記正系サーバー4aによって参照・更新されるデータベースである。正系データベース5aは、物理的に正系サーバー4aから独立した存在でもよく、また、正系サーバー4a付属の記憶装置内に形成されていてもよい。
【0041】
副系サーバー4bは、正系サーバー4aが何らかの原因によって機能停止したときに、正系サーバー4aの代替として作動し、クライアントサーバーシステム1としての機能を回復するサーバーである。
【0042】
副系サーバー4bは正系サーバー4aとほぼ同一の構成(内部の処理手段)を有し、この副系サーバー4bの内部構成については後述する。
【0043】
副系データベース5bは、上記副系サーバー4bによって参照・更新されるデータベースである。副系データベース5bは、後述する処理により、非同期であるが継続的に正系データベース5aの変更を追随して更新し、かつ、正系サーバー4a障害時には正系データベース5aと同一内容によって、回復したシステムのデータベースとして機能する。なお、副系データベース5bは副系サーバー4bから独立した存在でもよく、また、副系サーバー4b付属のものでもよいことは、正系データベース5aと同様である。
【0044】
待機系サーバー6は、正系サーバー4aや副系サーバー4bと同一のハードウェアを有し、通常はオペレーティングシステムのみが起動した状態でなんら処理を行わないが、正系サーバー4aが障害によって機能停止したときに、正系サーバー4aで処理を行っていたプログラムをメモリーに読み込んで実行し、障害発生時に正系サーバー4aが行っていた処理を継続して行うサーバーである。なお、上記サーバーの機能停止時に予備システムがそのプログラムを起動して処理を継続するシステム構成は、UNIXにおいてはHA機構と呼ばれ、汎用機の分野ではホットスタンバイと呼ばれている機能である。本発明は、UNIXと同様の機能を有するOSに適用可能であるが、理解容易のためにUNIXにおける「HA機構」を用語として使用する。
【0045】
次に正系サーバー4aと副系サーバー4bの内部構成について説明する。
【0046】
正系サーバー4aは、オンラインアプリケーション手段7aと、メッセージキュー起動アプリケーション手段8a(図においてMQ起動アプリケーション手段と表示する)と、データベースシステム9aと、メッセージキュー送出手段10a(図においてMQ送出手段と表示する)と、メッセージキュー受入手段11a(図においてMQ受入手段と表示する)と、起動用アプリケーション制御手段12aとを有している。
【0047】
副系サーバー4bは正系サーバー4aとほぼ同様の構成を有している。すなわち、副系サーバー4bは、オンラインアプリケーション手段7bと、メッセージキュー起動アプリケーション手段8b(図においてMQ起動アプリケーション手段と表示する)と、データベースシステム9bと、メッセージキュー送出手段10b(図においてMQ送出手段と表示する)と、メッセージキュー受入手段11b(図においてMQ受入手段と表示する)と、起動用アプリケーション制御手段12bとを有している。ただし、正系サーバー4aと異なる点として、本実施形態では副系サーバー4bは予備メッセージキュー受入手段13(図において予備MQ受入手段と表示する)を有している。
【0048】
オンラインアプリケーション手段7a,7bは、クライアント2a,2b,…,2nと接続してクライアント2a,2b,…,2nのメッセージに対してオンライン処理を行う手段である。オンラインアプリケーション手段7a,7bはその処理において、クライアント2a,2b,…,2nの要求に応じてデータベースシステム9a,9bを介してデータベース5a,5bにアクセスし、そのデータをそのままクライアント2a,2b,…,2nのユーザーに送って示したり、そのデータを使用して所定の処理を行い、データベースシステム9a,9bのデータ更新行ったりする。オンラインアプリケーション手段7a,7bは好ましくは、オブジェクト指向プログラミングにおけるオブジェクトであり、メッセージにより所定の処理を行い、メッセージ発信元に処理結果を返信するように構成される。
【0049】
なお、オンラインアプリケーション手段7a,7bがデータベース5a,5bの更新を行うときは、たとえば所定のテーブルのデータを更新するために関連するすべてのテーブルのデータを矛盾なく更新するものとする。なお、オンラインアプリケーション手段7a,7bは、処理の内容に応じてそれぞれ複数種類存在する。また、正系と副系のオンラインアプリケーション手段7a,7bは同一の内容を有し、同一の処理を行えるようにする。
【0050】
メッセージキュー起動アプリケーション手段8a,8bは、メッセージキュー受入手段11a,11bに格納された他系のデータベースに対するデータベース変更メッセージにしたがってデータベースシステム9a,9bを介して自系のデータベース5a,5bを変更する手段である。
【0051】
メッセージキュー起動アプリケーション手段8a,8bは、独自のプログラミングと制御により、単独で上述したようにメッセージキュー受入手段11a,11bからデータベース5a,5bの変更メッセージを入力し、データベース5a,5bの変更を行うようにしてもよいが、好ましくは図1に示すように、起動用アプリケーション制御手段12a,12bを有し、オンラインアプリケーション手段7a,7bと同一の処理行うようにする。
【0052】
このように構成することにより、メッセージキュー起動アプリケーション手段8a,8bは実質的にはオンラインアプリケーション手段7a,7bの複写で簡単に形成でき、これに起動を制御する簡単な起動用アプリケーション制御手段12a,12bを付加するだけで上記機能を果たすことができるのである。
【0053】
すなわち、オンラインアプリケーション手段7a,7bを複写することにより、メッセージキュー起動アプリケーション手段8a,8bはデータベース5a,5bに対してオンラインアプリケーション手段7a,7bとまったく同一の処理を行うことができる。このように、メッセージキュー起動アプリケーション手段8a,8bがオンラインアプリケーション手段7a,7bと同様の処理を行うことができることにより、他系のデータベースの変更部分を自系のデータベースに反映でき、同期(データを一致させること)を取ることができるのである。
【0054】
データベースシステム9a,9bは、オンラインアプリケーション手段7a,7bの要求(データベースに対する処理要求メッセージ)を受け、データベースのデータを操作する手段である。データベースシステム9a,9bは、広い意味における「データベース」に含まれているので、データベース5a,5bの一部になっている場合も本発明のシステムに含まれる。
【0055】
メッセージキュー送出手段10a,10bは、自系のデータベースに対するデータベース変更メッセージを一時的に蓄積して他系に送出する手段である。
【0056】
メッセージキュー受入手段11a,11bは、他系のメッセージキュー送出手段10a,10bから上述した他系のデータベースに対するデータベース変更メッセージを受け入れて一時的に蓄積する手段である。
【0057】
起動用アプリケーション制御手段12a,12bは、既述したように、メッセージキュー起動アプリケーション手段8a,8bに起動メッセージを送ってこれらを起動するための手段である。既述したようにメッセージキュー起動アプリケーション手段8a,8bがオンラインアプリケーション手段7a,7bの複写からなるときは、起動用アプリケーション制御手段12a,12bはオンラインアプリケーション手段7a,7bに対する起動メッセージと同様な起動メッセージをメッセージキュー起動アプリケーション手段8a,8bに送ってこれらを起動する。
【0058】
予備メッセージキュー受入手段13は、正系データベース5aと副系データベース5bが何らかの原因によって同時に障害発生した時に備え、正系データベース5aに対するデータベース変更メッセージを記録しておく手段である。
【0059】
以上が正系サーバー4aと副系サーバー4bの内部の構成であったが、以下に通常の処理における諸構成手段の処理について説明する。
【0060】
図1にクライアントサーバーシステム1の通常の処理の流れを示す。通常の処理においては、正系サーバー4aがクライアント2a,2b,…,2nとオンライン接続して処理を行う。正系サーバー4aでは、オンラインアプリケーション手段7aが、クライアント2a,2b,…,2nの要求に応じてオンライン処理を行い、必要に応じて正系のデータベースシステム9aを介して正系データベース5aを変更するとともに、正系データベース5aに対するデータベース変更メッセージを逐次正系のメッセージキュー送出手段10aに送る。
【0061】
一方正系サーバー4aがオンライン処理を行う間、副系サーバー4bでは、ディファードオンライン処理で正系データベース5aの変更部分を副系データベース5bに反映して更新する。
【0062】
すなわち、副系サーバー4bでは、副系のメッセージキュー受入手段11bが正系のメッセージキュー送出手段10aから正系データベース5aの変更部分を(データベース変更メッセージとして)逐次受け入れ、副系のメッセージキュー起動アプリケーション手段8bがその副系のメッセージキュー受入手段11bから正系データベース5aに対するデータベース変更メッセージを入力し、副系のデータベースシステム9bを介して副系データベース5bを更新する。
【0063】
上記処理により、正系サーバー4aでクライアント2a,2b,…,2nの要求に応じて正系データベース5aの変更を行った場合には、そのデータベースの変更が、送出用メッセージキュー蓄積手段10a(正系)と、受入用メッセージキュー蓄積手段11b(副系)と、メッセージキュー起動アプリケーション手段8b(副系)と、データベースシステム9b(副系)とを経て、極めて短い時間の後に副系データベース5bに反映される。これにより、副系データベース5bを正系データベース5aはほぼ同時に同期(データベースの内容を一致させること)され、正系データベース5aと副系データベース5bの内容はデータベース変更メッセージを送受信するための時間を除き、ほぼ常時最新の状態に一致される。
【0064】
次に、この2重更新を行うデータベースを有するクライアントサーバーシステム1において、正系サーバー4aにハードウェア障害を生じた場合の障害回復処理について図2を用いて以下に説明する。
【0065】
図2に正系サーバー4aがハードウェア障害を生じた場合の障害回復処理を示す。なお図2において、正系サーバー4aのハードウェア障害(データベースシステム9a等は健全な状態)を表すために正系サーバー4aに破線の対角線を付す。
【0066】
正系サーバー4aがサーバー全体の機能停止を伴うハードウェア障害を生じた場合には、HA機構(「HA機構」はUNIXの場合の呼称であって、他のOSによる場合はUNIXのHA機構に相当する機能)により、待機系サーバー6がハードウェア障害時に正系サーバー4aで起動されていたプログラムを起動し、継続処理のために障害発生時のデータファイルを参照する。この処理により待機系サーバー6には、オンラインアプリケーション手段7a,メッセージキュー起動アプリケーション手段8a,データベースシステム9a,メッセージキュー送出手段10a,メッセージキュー受入手段11a,起動用アプリケーション制御手段12aとそれぞれ同一のオンラインアプリケーション手段7a’,メッセージキュー起動アプリケーション手段8a’,データベースシステム9a’,メッセージキュー送出手段10a’,メッセージキュー受入手段11a’,起動用アプリケーション制御手段12a’が形成される。
【0067】
待機系サーバー6は正系サーバー4aで行っていた処理を継続して行い、データベースシステム9a’により、継続して正系データベース5aに対して参照及び更新を行う。
【0068】
図2に表す場合の正系サーバー4aのハードウェア障害は、ハードウェア上の障害であってプログラムやデータは健全であるので、上記オンラインアプリケーション手段7a’,メッセージキュー起動アプリケーション手段8a’,データベースシステム9a’,メッセージキュー送出手段10a’,メッセージキュー受入手段11a’,起動用アプリケーション制御手段12a’はそれぞれ健全に機能し、待機系サーバー6は正系サーバー4aとまったく同一の処理を行うことができるようになる。
【0069】
待機系サーバー6が正系サーバー4aと同様の処理を行うサーバーとして起動した後は、ゲートウェイ3は、要求処理のあったクライアント2a,2b,…,2nを待機系サーバー6に接続し、待機系サーバー6によりオンライン処理を継続することができる。
【0070】
上記正系サーバー4aから待機系サーバー6への切替えは極めて短い時間内、かつ、自動的にハードウェア障害を検出して行うことかできる。このため、正系サーバー4aのハードウェア障害に対しては、HA機構により短時間の切替処理の経過後にシステムとして障害回復をすることができるのである。
【0071】
なお、上記正系サーバー4aのハードウェア障害発生時の副系データベース5bのデータ更新は、正系サーバー4aが待機系サーバー6に切り替わっただけで副系サーバー4bにおける処理は何ら変わらない。すなわち、メッセージキュー送出手段10aに蓄積された正系データベース5aの変更メッセージは、そのまま待機系サーバー6のメッセージキュー送出手段10a’に継承され、システムの障害回復後に当該データベース変更メッセージはメッセージキュー送出手段10a’からメッセージキュー受入手段11bと予備メッセージキュー受入手段13に送られ、メッセージキュー起動アプリケーション手段8bとデータベースシステム9bとによって副系データベース5bに反映され、副系データベース5bが正系データベース5aと同一内容になるように更新される。
【0072】
以上は、正系サーバー4aのサーバー機能停止を伴うハードウェア障害に対するシステムの障害回復処理であったが、次に正系サーバー4aのサーバーとして機能は損なわれないが、正系データベース5aをはじめとするデータベース関連のファイル破損が発生した場合処理について図3を用いて以下に説明する。
【0073】
図3に正系サーバー4aの正系データベース5aが破損した場合の障害回復処理の流れを示す。図3において、正系データベース5aの破損を示すために正系データベース5aに破線の対角線を付す。
【0074】
正系サーバー4aの正系データベース5aが破損した場合は、正系データベース5aのデータの参照及び更新が不可能になるので、副系サーバー4bに切り替えてオンライン処理を行い、必要に応じて副系データベース5bの参照及び更新を行う。正系データベース5aの機能回復後は、副系サーバー4bのオンライン処理間に生じた副系データベース5bの変更を正系データベース5aに反映して、正系データベース5aを更新する。
【0075】
具体的には、正系サーバー4aの正系データベース5a等が破損したときは、ゲートウェイ3の切り替えによって、処理要求のあったクライアント2a,2b,…,2nを副系サーバー4bに接続する。副系サーバー4bは、図1で説明したように、副系データベース5bが正系データベース5aと一致するように常時更新されているので、直ちにあるいは副系データベース5bと正系データベース5aの同期を確認する極めて短い時間の経過後に副系データベース5bを使用してオンライン処理を開始することができる。正系サーバー4aから副系サーバー4bへの切替え自体は極めて短い時間の間に行うことができる。このようにして副系サーバー4bの処理を開始することにより、2重更新を行うデータベースを有するクライアントサーバーシステム1としては機能が回復し、見かけ上障害回復処理が実現することができるのである。
【0076】
副系サーバー4bによるオンライン処理では、オンラインアプリケーション手段7bはオンラインアプリケーション手段7aと同一の処理を行うことができるので、クライアント2a,2b,…,2nの要求に応じてデータベースシステム9bを介して必要に応じて副系データベース5bを参照及び更新する。副系データベース5bのデータを変更する場合には、そのデータベース変更メッセージをデータベースシステム9bとともに副系のメッセージキュー送出手段10bにも出力する。
【0077】
上記副系のオンラインアプリケーション手段7bは正系のオンラインアプリケーション手段7aと同一の処理を行うができ、かつ、ゲートウェイ3による正系副系の切替えは瞬時に行われるので、ユーザーは、正系サーバー4aと副系サーバー4bの切り替えを意識することなく、オンライン処理をすることができるのである。
【0078】
副系サーバー4bによってオンライン処理を行っている間に、システムエンジニアにより正系サーバー4aの障害を回復するようにする。たとえば、破損した正系データベース5aを破棄し、障害発生前の健全な状態のデータベースに置き換え、障害発生までのデータの変更を追跡更新するなどの作業を行うことができる。
【0079】
上述したような正系サーバー4aの回復作業により正系サーバー4aの機能が回復した後は、副系サーバー4bの処理中に副系データベース5bに生じたデータベースの変更部分を正系データベース5aに反映させなければならない。具体的には、データベースシステム9aが回復した後に、正系のメッセージキュー受入手段11aが、副系のメッセージキュー送出手段10bから副系処理中の副系データベース5bのデータベース変更メッセージを入力する。次に、正系のメッセージキュー起動アプリケーション手段8aが、起動用アプリケーション制御手段12aの起動メッセージによって起動し、メッセージキュー受入手段11aから副系データベース5bのデータベース変更メッセージを入力し、正系のデータベースシステム9aを介して、正系データベース5aを更新する。これにより、正系データベース5aは、障害発生中のデータベースに対する変更を反映し、最新の状態である副系データベース5bと同期することができる。
【0080】
正系データベース5aが更新された後は、再びゲートウェイ3の切り替えにより、それ以降に処理要求があったクライアント2a,2b,…,2nを正系サーバー4aに接続し、通常の処理の流れに戻すことができる。
【0081】
以上はサーバー機能停止を伴わないがデータベース関連ファイルが破損した時の障害回復処理であったが、次にサーバー全体の機能停止を伴うソフトウェア障害が生じた場合の障害回復処理について図4を用いて以下に説明する。
【0082】
図4にサーバー全体の機能停止およびデータベース関連ファイルの破損が発生した場合の障害回復処理の流れを示す。なお図4において、サーバー全体の機能停止およびデータベース関連ファイルの破損を表すために、正系サーバー4aと正系データベース5aにそれぞれ破線の対角線を付す。なお、サーバー全体の機能停止を伴うソフトウェア障害としては、ハードウェア障害に伴ってデータベース関連のファイルも破損したような場合や、データベースシステムのプログラム上の不具合(バグ)等により処理中に全面的なファイル破損が生じたような場合などがある。
【0083】
正系サーバー4aがソフトウェア障害によってサーバーとしての機能がダウンしたときは、既述したようにHA機構がこれを検知して作動し、待機系サーバー6に障害発生時の正系サーバー4aの処理プログラムを起動させ、待機系サーバー6が自動起動する。HA機構により、オンラインアプリケーション手段7a、メッセージキュー起動アプリケーション手段8a、データベースシステム9a、メッセージキュー送出手段10a、メッセージキュー受入手段11a、起動用アプリケーション制御手段12aは、それぞれ待機系サーバー6にオンラインアプリケーション手段7a’、メッセージキュー起動アプリケーション手段8a’、データベースシステム9a’、メッセージキュー送出手段10a’、メッセージキュー受入手段11a’、起動用アプリケーション制御手段12a’として起動される。
【0084】
しかし、この場合は起動されたデータベースシステム9a’が参照する正系データベース5aも破損しているので、待機系サーバー6が正系サーバー4aとして機能することができない。
【0085】
そこで、待機系サーバー6からさらに副系サーバー4bに切り替えて、副系サーバー4bによってシステムの回復を図る必要がある。
【0086】
ここで、副系サーバー4bによってシステムを回復するには、その前に待機系サーバー6に滞留している正系データベース5aのデータベース変更メッセージを副系サーバー4bに送り出し、副系データベース5bを更新して障害発生時の正系データベース5aと同一内容としなければならない。この滞留したデータベース変更メッセージの送出と副系データベース5bの更新の処理の流れを図4で一点鎖線の矢印によって示す。
【0087】
上記滞留したデータベース変更メッセージを副系サーバー4bに送出して副系データベース5bを更新するには、短時間ではあるがオンライン処理を一時的に中止する。しかる後に、メッセージキュー送出手段10aを起動したメッセージキュー送出手段10a’から副系のメッセージキュー受入手段11bへデータベース変更メッセージを送出する。
【0088】
次に、副系のメッセージキュー起動アプリケーション手段8aは、起動用アプリケーション制御手段12bによって起動し、メッセージキュー受入手段11bから正系データベース5aに対するデータベース変更メッセージ(メッセージキュー送出手段10a’の滞留分)を入力し、副系のデータベースシステム9bを介して副系データベース5bを更新する。この更新により、副系データベース5bは、障害発生直前の正系データベース5aと同一の内容になり、これを使用してオンライン処理が可能な状態になる。
【0089】
以上の準備の後、システムはオンライン処理を再開し、ゲートウェイ3の切替えにより、処理要求があったクライアント2a,2b,…,2nを副系サーバー4bに接続する。
【0090】
副系サーバー4bにおいては、オンラインアプリケーション手段7bがクライアント2a,2b,…,2nの要求に応じて、必要によりデータベースシステム9bを介して副系データベース5bを参照しあるいは更新する。副系データベース5bは、処理開始時には障害発生直前の正系データベース5aと同一内容に更新されているので、データに矛盾を生じることなくオンライン処理を再開することができるのである。
【0091】
副系処理中に副系データベース5bのデータを更新する場合には、オンラインアプリケーション手段7bはデータベース変更メッセージをデータベースシステム9bとメッセージキュー送出手段10bの双方に同時に送るようにする。
【0092】
副系サーバー4bによって以上のようなオンライン処理を行う間に、システムエンジニア等により、正系サーバー4aの機能回復を別途図るようにする。正系サーバー4aの機能が回復した後は、正系のメッセージキュー受入手段11aが副系のメッセージキュー送出手段10bから、副系サーバー4b処理中の副系データベース5bに対するデータベース変更メッセージを入力する。次に、正系のメッセージキュー起動アプリケーション手段8aが起動用アプリケーション制御手段12aの起動メッセージによって起動し、正系のメッセージキュー受入手段11aから副系処理中の副系データベース5bに対するデータベース変更メッセージを入力し、データベースシステム9aを介して正系データベース5aを更新する。これにより、正系データベース5aは、最新のデータ内容である副系データベース5bと同期される。
【0093】
正系データベース5aと副系データベース5bの同期をとった後は、正系データベース5aはオンライン処理が可能な状態になるので、ゲートウェイ3の切替えによって、通常の処理に戻すことができるのである。
【0094】
従来の汎用機を使用したトランザクション処理システムは、テストを繰り返すことによりシステム停止を伴うソフトウェア障害が発生しないようにしていたが、万一深刻なソフトウェア障害によってシステム機能の全体がダウンした場合には、長時間システムを停止し、全面的な復旧をしなければならなかった。また、従来のUNIXのHA機構を利用した障害回復機能を有するシステムは、単にハードウェアの2重化を図ったものであり、ハードウェア障害時に予備のシステムが起動するが、ハードウェア障害に伴ってデータベース関連ファイルのような重要なソフトウェアに障害が発生した場合は、起動した予備システムによっても結局システムの機能を回復することができず、汎用機の場合と同様にシステムの回復まで長い時間がかかることになった。
【0095】
これら従来のシステムに対し、本発明による「2重更新を行うデータベースを有するクライアントサーバーシステム1」によれば、ハードウェアのみの障害(図2の場合)、データベース破損等のソフトウェア障害(図3の場合)、ハードウェア障害およびデータベースは損等のソフトウェア障害(図4の場合)のいずれに対しても、迅速にシステムを回復することができ、これによって安価なシステムによって高い信頼性を有するトランザクション処理システムを実現することができるのである。
【0096】
すなわち、本発明の「2重更新を行うデータベースを有するクライアントサーバーシステム1」によれば、UNIXのような汎用的なオペレーションシステムによって、汎用機に比較して小型・廉価のコンピュータを組み合わせてオンライン処理システムを構築でき、かつ、上述したように2重化したデータベースの双方をほぼ常時最新の状態に維持することができることにより、片方のサーバーにハードウェア障害やソフトウェア障害が発生した時に他方のサーバーに切り替えて継続して処理でき、高い信頼性のオンライン処理システムを得ることかできるのである。
【0097】
なお、極めて稀なことではあるが、正系サーバー4aと副系サーバー4bが同時にもっとも深刻なソフトウェア障害を伴うハードウェア障害となった場合でも、データベース変更メッセージを貯留した予備メッセージキュー受入手段13とゲートウェイ3の内部の電文トレースにより、システムを回復することができる。この場合は、上述した正系・副系の切替えによるシステム回復より長い時間を必要とするが、正系サーバー4aと副系サーバー4bが同時に機能しないケースは非常に稀であるので回復に多少時間がかかる点はやむを得ないものとする。
【0098】
以上は障害回復処理を迅速に行うクライアントサーバーシステムについて説明したが、次に24時間連続稼動するクライアントサーバーシステムをについて以下に説明する。
【0099】
一般的に24時間連続稼動するオンライン処理システムは、同一システムを長期間使用した場合のオペレーティングシステムの不安定な動作、データベースファイルのフラグメンテーション、インデックスツリーの変形による処理性能の劣化等の問題を解決しつつ、24時間連続稼動することができるようにしなければならない。
【0100】
図1〜図4において説明した2重更新データベースを使用するクライアントサーバーシステム1は、2重化したシステム(正系サーバーと副系サーバー)を有し、一方のシステムによってオンライン処理でき、必要なときにオンライン処理を行うシステムを切り替えることができる。この図1〜図4のクライアントサーバーシステムは、一方のシステムが稼動中に他方のシステムについて種々の保守が可能である点で24時間連続稼動するオンライン処理システムとしての基本的な機能を有している、ということができる。
【0101】
ただし、図1〜図4のクライアントサーバーシステムは、一方のシステムのデータベースの変更を逐一他方のシステムのデータベースに反映するようにしているので、「データの洗い換え」の処理を行っていない。以下に説明する24時間連続稼動するオンライン処理システムは、すでに説明した「2重更新データベースを使用するクライアントサーバーシステム」にデータの洗い換えをするための中間ボリューム記憶装置を付加し、データの洗い換えという処理を行うようにしたものである。
【0102】
「データの洗い換え」の処理は、同一のデータに対する複数回の処理を集計し、不要な途中のデータを整理することによってデータ量を圧縮する処理である。
たとえば、銀行預金を管理するオンライン処理システムにおいては、あるユーザーが自分の口座から引出しをするのに、小額の預金を多数回引き出すことがしばしばみられる。この場合、預金を管理するデータベースでは、預金の引出し回数と同じ回数の取引データが記録され、データベースが管理するデータ数が増加する。
【0103】
しかし、預金を管理するデータベースとして必要なデータは、最新の残高である場合が多いので、途中の取引経過を整理し、最新の残高データのみを登録しておけばよいことがある。このような場合に、途中の取引経過を集計し、データ量を圧縮して最新の残高のみを登録する処理が「データの洗い換え」の処理である。銀行預金を管理するデータベースに限られず、一般にオンライン処理を行うシステムでも、データベースの無限な膨張を防止するために、一定の期間ごとにデータを整理し、再登録する処理(データの洗い換え処理)を行うことが必要となる。本発明による24時間連続稼動するオンライン処理システムでは、上記「データの洗い換え」の処理を正系サーバーと副系サーバーの切替え中に行うようにしている。
【0104】
まず、本発明による24時間連続稼動するオンライン処理システムの構成について説明する。
【0105】
図5,6に2重更新を行うデータベースを有しオンライン処理を行う本発明による24時間連続稼動するクライアントサーバーシステム21(以下簡単に指し示す場合は24時間連続稼動オンライン処理システム21または単にオンライン処理システム21と略称する)の一実施形態の構成と、正系サーバー稼動時の処理の流れ(図5)と、副系サーバー稼動時の処理の流れ(図6)を示す。なお、理解容易のために図5と図6において図1〜図4と同一部分については同一符号を付して示し、重複する説明を省略する。
【0106】
図5に示すように、本実施形態による24時間連続稼動オンライン処理システム21は、図1〜図4の2重更新データベースを使用するクライアントサーバーシステム1とほぼ同一の構成を有している。ただし、本実施形態による24時間連続稼動オンライン処理システム21は、図1〜図4に示した2重更新データベースを使用するクライアントサーバーシステム1の構成に追加して中間ボリューム記憶装置22と副系メッセージキュー手段23(図5において正系サーバー4a中に副系MQ手段23と示す)とを有している。なお、図5において、図1〜図4に示したクライアントサーバーシステム1の待機系サーバー6と予備受入用メッセージキュー蓄積手段13を示していないが、これはこれらの諸手段を除かなくてはならないという意味ではなく、単に装置を簡潔に示すためであり、無論これらの諸手段を含んでいてもよい。
【0107】
中間ボリューム記憶装置22は、システム構成上正系データベース5aと副系データベース5bの中間に位置し、正系サーバー4aが稼動した所定期間中の正系データベース5aの更新部分を集約してデータベースファイルの形で一時的に記憶し、それを副系サーバー4bに受け渡すための記憶装置である。
【0108】
副系メッセージキュー手段23は、副系サーバー4bが稼動した所定期間中の副系データベース5bへのデータベース変更メッセージを一時的に記憶しておく手段である。本実施形態では、副系メッセージキュー手段23は、副系サーバー4bの内部に設けられている。
【0109】
次に、図7を用いて本実施形態による24時間連続稼動オンライン処理システム21の全体の処理の流れを説明する。
【0110】
図7は、正系サーバー4aと副系サーバー4bの稼動の切替えのタイムチャートを示している。図7において、横軸は時間経過を示し、縦に正系サーバー4aと中間ボリューム記憶装置22と副系サーバー4bを配列して示している。
【0111】
図7の期間0〜3はそれぞれ適当に定めた期間であり、各期間0〜3の移行ごとに正系サーバー4aまたは副系サーバー4bのいずれかが切り替ってオンライン処理を行う。図7の例では期間0は副系サーバー4b、期間1は正系サーバー4a、期間2は副系サーバー4b、期間3は正系サーバー4aがオンライン処理をしている。サーバー間の切替えはユーザーがシステムの停止を感じることがないほど極めて短い時間のうちに行われる。
【0112】
正系サーバー4aがオンライン処理をしている間(期間1,3,…)は、副系サーバー4bは、バッチ的に行うデータの洗い換えと更新と、正系データベース5aの変更に追随して行う更新(この追随更新を便宜上キャッチアップという)を行っている。
【0113】
今、期間2に注目すると、期間2ではオンライン処理が副系サーバー4bに切り替わり、副系サーバー4bがオンライン処理を行い、正系サーバー4aではその前の期間1のオンライン処理中に生じた正系データベース5a(図示せず)のデータ変更を集約し(洗い換え処理をし)これを中間ボリューム記憶装置22に複写するバッチ処理を行う(処理▲4▼)。その後、正系サーバー4aは副系サーバー4bのオンライン処理に伴い副系データベース5b(図示せず)の変更を追随し、キャッチアップする(処理▲5▼)。
【0114】
次に、期間2から期間3に移行すると、オンライン処理が正系サーバー4aに切り替わり、正系サーバー4aがオンライン処理を行う。正系サーバー4aは、期間2中にその正系データベース5a(図示せず)が常に副系データベース5bの更新に追随して更新しているので、期間3の開始時点において最新のデータの状態でオンライン処理を開始することができ、オンライン処理の切替えに障害が生じることがない。
【0115】
一方期間3中、副系サーバー4bは、データの洗い換えと最新状態への更新を行う。オンライン処理サーバーの切替え直後から、副系サーバー4bは、先に期間2で正系サーバー4aが中間ボリューム記憶装置22に複写したデータベースファイルを副系データベース5b(図示せず)に上書きする(処理▲1▼)。この上書きされるデータは、期間1までのデータを洗い換え、すなわち集約して再登録したものであるので、処理▲1▼が完了した状態では、副系データベース5b(図示せず)は、期間1の終了時点のデータ状態になる。次に、副系データベース5bには、期間2の副系サーバー4bによるオンライン処理のデータ変更部分を追加して更新する(処理▲2▼)。この処理▲2▼が完了した状態では、副系データベース5b(図示せず)は、期間1の変更データについては洗い換え処理をしていないものの、期間1の終了時点のデータ状態になる。処理▲2▼が完了後、副系サーバー4bは、正系サーバー4aのオンライン処理に伴い、正系データベース5aに生じたデータ変更部分を逐次的に入力し、副系データベース5bを正系データベース5aに追随して更新する(処理▲3▼)。この処理▲3▼により、副系データベース5bは、極めて短い時間をおいて正系データベース5aの変更を追随し、ほぼ常時最新のデータ状態に更新される。
【0116】
以上が24時間連続稼動オンライン処理システム21のオンライン処理サーバーの切替え、データベースの2重更新の処理であったが、次にこれらの処理が正系サーバー4aと副系サーバー4b等の構成手段間でどのように処理されるかについて図5と図6を用いて以下に説明する。なお、理解を容易にするために図5と図6においてデータベースの更新処理についは図7と同一の符号▲1▼〜▲5▼を付す。
図5は、正系サーバー4aがオンライン処理をしている状態を示している。オンライン処理が正系サーバー4aに切り替わった直後から、中間ボリューム記憶装置22のデータベースファイルが副系データベース5bに上書きされる(処理▲1▼)。処理▲1▼により、副系データベース5bは、その前の処理期間(注目している期間の前の副系サーバー4bがオンライン処理を行った期間)の当初のデータ状態になる。ただし、データは洗い換え処理を完了した状態に整理されている。処理▲1▼の完了後は、中間ボリューム記憶装置22と副系データベース5bの接続が切り離される。
【0117】
次に、副系メッセージキュー手段23に蓄積されたデータベース変更メッセージにより、副系データベース5bのデータが更新される(処理▲2▼)。副系メッセージキュー手段23に蓄積されたデータベース変更メッセージは、後に説明するように、切替え前の処理期間(注目している期間の前の副系サーバー4bがオンライン処理を行った期間)に副系データベース5bに対するデータベース変更メッセージを蓄積したものである。処理▲2▼により、副系データベース5bは、切替え前の処理期間(注目している期間の前の副系サーバー4bがオンライン処理を行った期間)の終了時点のデータ状態になる。
【0118】
次に、副系サーバー4bは、正系サーバー4aのオンライン処理に伴って生じるデータベース変更メッセージを逐次入力して、正系データベース5aの更新を追随して極めて短い時間の経過後副系データベース5bのデータを更新する(処理▲3▼)。処理▲3▼により、副系データベース5bは、ほぼ常時最新のデータ状態を維持することができる。
【0119】
上記処理▲3▼で副系データベース5bの更新に使用されるデータベース変更メッセージは、図5に示すように、正系の送出用メッセージキュー蓄積手段10aから副系の受入用メッセージキュー蓄積手段11bへ送られ、副系のメッセージキュー起動アプリケーション手段8bが起動用アプリケーション制御手段12bによって起動して受入用メッセージキュー蓄積手段11bから入力し、データベースシステム9bを介して副系データベース5bを更新するのに使用されるものである。
【0120】
この間オンライン処理を行っている正系サーバー4aでは、オンライン処理の切替え後から、オンラインアプリケーション手段7aがオンライン処理を行い、データベースシステム9aを介して正系データベース5aにアクセスし、正系データベース5aを変更する場合は、そのデータベース変更メッセージを自系のデータベースシステム9aとともに送出用メッセージキュー蓄積手段10aにも送る。送出用メッセージキュー蓄積手段10aに送られたこれらのデータベース変更メッセージが上述したように副系データベース5bの更新に使用され、これによって副系データベース5bが最新のデータ状態に維持されるのである。
【0121】
なお、オンライン処理切替え直後に副系データベース5bは、洗い換えをしたデータをバッチ的に複写する間は上記正系サーバー4aのデータベース変更メッセージによって更新することができないが、データをバッチ的に複写する時間は比較的短いので、この間に生じたデータベース変更メッセージは一時的に正系の送出用メッセージキュー蓄積手段10aあるいは副系の受入用メッセージキュー蓄積手段11bに蓄積され、洗い換えしたデータの複写後に副系データベース5bの更新に使用される。
【0122】
図5のオンライン処理期間が終了すると、オンライン処理が副系サーバー4bに切り替わって図6の状態になる。
【0123】
図6に示すように、オンライン処理が副系サーバー4bに切り替わると、クライアント2a,2b,…,2nのいずれかから処理要求が発せられるとゲートウェイ3の作動によりそのクライアント(図6の例ではクライアント2a)は副系サーバー4bに接続され、副系のオンラインアプリケーション手段7bがオンライン処理を行う。オンラインアプリケーション手段7bは、必要に応じて副系データベース5bにアクセスし、副系データベース5bを変更する場合は、データベースシステム9bを介して副系データベース5bを変更するとともに、そのデータベース変更メッセージを副系の送出用メッセージキュー蓄積手段10bと副系メッセージキュー手段23の双方に送出する。副系メッセージキュー手段23は、副系サーバー4bのオンライン処理期間中のすべてのデータベース変更メッセージを蓄積する。一方、副系の送出用メッセージキュー蓄積手段10bに送られた副系データベース5bに対するデータベース変更メッセージは正系の受入用メッセージキュー蓄積手段11aに送られ、正系データベース5aのバッチ処理終了後に正系データベース5aの更新に使用される。
【0124】
一方、正系サーバー4aにおいては、オンライン処理が副系サーバー4bに切り替わった直後から、正系データベース5aのデータの洗い換えと中間ボリューム記憶装置22への複写のバッチ処理が行われる(処理▲4▼)。バッチ処理▲4▼により、切替え前の処理期間(正系サーバー4aがオンライン処理を行った期間)の終了時点のデータが集約され、データベースファイルの形で中間ボリューム記憶装置22に複写される。バッチ処理▲4▼の終了後、正系データベース5aと中間ボリューム記憶装置22の接続は切り離され、中間ボリューム記憶装置22は、次の切替えによって副系データベース5bに複写されるまでアクセスから絶縁された状態になる。
【0125】
処理▲4▼が終了すると、正系のメッセージキュー起動アプリケーション手段8aが起動用アプリケーション制御手段12aによって起動し、受入用メッセージキュー蓄積手段11aに蓄積された副系データベース5bに対するデータベース変更メッセージを入力し、データベースシステム9aを介して正系データベース5aを更新する(処理▲5▼)。処理▲5▼は逐次行われ、正系データベース5aは副系データベース5bの変更から極めて短い時間経過後更新され、ほぼ常時最新のデータ状態に維持される。これにより、次にオンライン処理が正系サーバー4aに切り替えられたときに、最新のデータ状態である正系データベース5aを参照することができる。この次に正系サーバー4aにオンライン処理が切り替わった状態は図5に示すところであり、以降は図5と図6の状態を交互に繰り返すことになる。上記「24時間連続稼動オンライン処理システム21」によれば、オンライン処理をするサーバーを切り替えても直ちに最新のデータ状態のデータベースを使用してオンライン処理を行うことができ、かつ、24時間の切れ目のない運転を行う中で正副両系のデータベースのデータの洗い換え処理、すなわちデータの集約・再登録を行うことができ、不要なデータによるデータ量の膨大化を防止することができるのである。さらに、24時間連続稼動オンライン処理システム21は、図1ないし図4に示した2重更新データベースを使用するクライアントサーバーシステム1の機能をそのまま有しているので、不測のハードウェア障害やソフトウェア障害が発生したときにも、瞬時に健全なシステムに切り替えられ、システムの回復を実現することができるのである。
【0126】
【発明の効果】
以上の説明から明らかなように、本願発明による2重更新を行うデータベースを有するクライアントサーバーシステムによれば、従来、ハードウェアを2重化し、障害発生時に障害が発生したシステムのソフトウェアを残るシステムで起動し、起動したシステムを実行することによって障害回復を図るようにしたクライアントサーバーシステムにおいて、データベース等が破損している場合には障害回復することができなかったのに対し、本願発明のクライアントサーバーシステムは常に2重に更新されるデータベースを備えることにより、一方のデータベースならびにその関連ファイルが破損した場合であっても、残る健全なデータベースを参照・更新することにより、直ちにシステムの機能を回復することができる。
【0127】
また、正系サーバーがオンライン処理した所定期間中の正系のデータベースのデータを集約してデータベースファイルの形式で一時的に記憶する中間ボリューム記憶装置と、副系サーバーがオンライン処理した所定期間中の副系のデータベースに対するデータベース変更メッセージを一時的に記憶しておく副系メッセージキュー手段とを備えることにより、正系サーバーと副系サーバーを交互に切替えられ、かつ、正系および副系のデータベースの双方をほぼ常時最新のデータ状態に維持するとともに、定期的に正系サーバーのオンライン処理期間中のデータを集約してデータ量を圧縮できる。これにより、切れ目なく連続運転でき、かつ、ハードウェア障害は言うに及ばず、深刻なソフトウェア障害に対しても直ちに障害回復することができる2重更新を行うデータベースを有するクライアントサーバーシステムを得ることができる。
【図面の簡単な説明】
【図1】本発明の一実施形態による2重更新データベースを使用するクライアントサーバーシステムの構成とその通常の処理の流れを示したブロック図。
【図2】本発明の一実施形態による2重更新データベースを使用するクライアントサーバーシステムの構成とハードウェア障害が発生した時の処理の流れを示したブロック図。
【図3】本発明の一実施形態による2重更新データベースを使用するクライアントサーバーシステムの構成とシステムの機能停止を伴わないがデータベース関連ファイルが破損した時の処理の流れを示したブロック図。
【図4】本発明の一実施形態による2重更新データベースを使用するクライアントサーバーシステムの構成とシステムの機能停止を伴うデータベース関連ファイルが破損した時の処理の流れを示したブロック図。
【図5】24時間連続稼動するように構成した本発明の一実施形態による2重更新データベースを使用するクライアントサーバーシステムの構成と、正系サーバーがオンライン処理をしている状態の処理の流れを示したブロック図。
【図6】24時間連続稼動するように構成した本発明の一実施形態による2重更新データベースを使用するクライアントサーバーシステムの構成と、副系サーバーがオンライン処理をしている状態の処理の流れを示したブロック図。
【図7】24時間連続稼動するように構成した本発明の一実施形態による2重更新データベースを使用するクライアントサーバーシステムのオンライン処理の切替えと、データベースの更新処理を示したタイムチャート。
【符号の説明】
1 クライアントサーバーシステム
2 クライアント
3 ゲートウェイ
4a 正系サーバー
4b 副系サーバー
5a 正系データベース
5b 副系データベース
6 待機系サーバー
7a 正系のオンラインアプリケーション手段
7b 副系のオンラインアプリケーション手段
8a 正系のメッセージキュー起動アプリケーション手段
8b 副系のメッセージキュー起動アプリケーション手段
9a 正系のデータベースシステム
9b 副系のデータベースシステム
10a 正系のメッセージキュー送出手段
10b メッセージキュー送出手段
11a 正系のメッセージキュー受入手段
11b 副系のメッセージキュー受入手段
12a 正系の起動用アプリケーション制御手段
12b 副系の起動用アプリケーション制御手段
13 予備メッセージキュー受入手段
21 24時間連続稼動する2重更新を行うデータベースを有するクライアントサーバーシステム
22 中間ボリューム記憶装置
23 副系メッセージキュー手段

Claims (6)

  1. 少なくとも1つのクライアントと、前記クライアントの接続サーバーを切り替えるゲートウェイと、同一の構成を有する正系サーバーと副系サーバーと、前記正系サーバーと副系サーバーとによってそれぞれ参照および更新される一対のデータベースと、を有するクライアントサーバーシステムにおいて、
    前記正系サーバーと副系サーバーはともに、前記クライアントのメッセージに対してオンライン処理を行うオンラインアプリケーション手段と、データベースの参照と更新を行うデータベースシステムと、自系のデータベースに対するデータベース変更メッセージを一時的に蓄積して他系に送出するメッセージキュー送出手段と、他系のデータベースに対するデータベース変更メッセージを自系に受け入れて一時的に蓄積するメッセージキュー受入手段と、前記オンラインアプリケーション手段がデータベース変更メッセージを受けてデータベースに対して行う処理と同一の処理を行うように構成され、前記メッセージキュー受入手段から他系のデータベースのデータベース変更メッセージを入力し、前記データベースシステムを介して自系のデータベースを更新するメッセージキュー起動アプリケーション手段とを有し、
    通常の処理においては前記正系サーバーは、そのオンラインアプリケーション手段によってオンライン処理を行い、必要に応じて正系のデータベースシステムを介して正系のデータベースを変更するとともに、正系のデータベースに対するデータベース変更メッセージを正系のメッセージキュー送出手段に送り、
    前記副系サーバーは、副系のメッセージキュー受入手段が正系のメッセージキュー送出手段から正系のデータベースに対するデータベース変更メッセージを逐次受け入れ、副系のメッセージキュー起動アプリケーション手段が副系のメッセージキュー受入手段から正系のデータベースに対するデータベース変更メッセージを入力し、副系のデータベースシステムを介して副系のデータベースを更新し、
    前記正系サーバーにファイルの破損が発生したときは、前記ゲートウェイの切替えによって処理要求のあった前記クライアントを前記副系サーバーに接続し、副系のオンラインアプリケーション手段によってオンライン処理を行い、必要に応じて副系のデータベースシステムを介して副系のデータベースを変更するとともに、副系のデータベースに対するデータベース変更メッセージを逐次副系のメッセージキュー送出手段に送り、
    前記正系サーバーは機能が回復した後に、正系のメッセージキュー受入手段が副系のメッセージキュー送出手段から副系処理中の副系のデータベースに対するデータベース変更メッセージを受け入れ、正系のメッセージキュー起動アプリケーション手段が正系のメッセージキュー受入手段から副系のデータベースに対するデータベース変更メッセージを入力し、正系のデータベースシステムを介して正系のデータベースを更新することを特徴とする2重更新を行うデータベースを有するクライアントサーバーシステム。
  2. 前記正系および副系のメッセージキュー起動アプリケーション手段は、起動用アプリケーション制御手段を有し、この起動用アプリケーション手段の起動メッセージによって起動し、前記メッセージキュー受入手段から他系のデータベースに対するデータベース変更メッセージを入力して前記データベースシステムを介して自系のデータベースを更新するように構成されていることを特徴とする請求項1に記載の2重更新を行うデータベースを有するクライアントサーバーシステム。
  3. 前記副系サーバーは、副系のメッセージキュー受入手段と平行して正系のデータベースに対するデータベース変更メッセージを入力する予備メッセージキュー受入手段を有することを特徴とする請求項1または2に記載の2重更新を行うデータベースを有するクライアントサーバーシステム。
  4. 前記正系サーバーあるいは副系サーバーと同一のハードウェア構成を有し、前記正系サーバーがサーバー全体の機能停止を伴うハードウェア障害またはプロセスダウンを生じたときに、前記正系サーバーで起動されていたプログラムを起動して前記正系サーバーが行っていた処理を継続して行う待機系サーバーを有することを特徴とする請求項1ないし3のいずれかに記載の2重更新を行うデータベースを有するクライアントサーバーシステム。
  5. 前記待機系サーバーは、起動後に正系のデータベースの破損によって処理不能であるときは、前記正系のデータベースに対するデータベース変更メッセージを副系のメッセージキュー受入手段に送出し、
    前記副系サーバーは、そのメッセージキュー起動アプリケーション手段が副系のメッセージキュー受入手段から前記正系のデータベースに対するデータベース変更メッセージを入力し、副系のデータベースシステムを介して副系のデータベースを更新した後に、副系のオンラインアプリケーション手段によってオンライン処理を行うことを特徴とする請求項4に記載の2重更新を行うデータベースを有するクライアントサーバーシステム。
  6. 前記正系サーバーがオンライン処理した所定期間中の正系のデータベースのデータを集約してデータベースファイルの形式で一時的に記憶する中間ボリューム記憶装置と、
    前記副系サーバーがオンライン処理した所定期間中の副系のデータベースに対するデータベース変更メッセージを一時的に記憶しておく副系メッセージキュー手段とを有し、
    前記正系サーバーと前記副系サーバーとが交互に切り替わって切れ目なくオンライン処理を行い、切替えによって前記正系サーバーがオンライン処理を開始すると、副系サーバーにおいて、前記中間ボリューム記憶装置に記憶された切替え前の処理期間の開始時点のデータを集約したデータベースファイルを副系のデータベースに上書きし、続いて前記副系メッセージキュー手段に記憶された切替え前の処理期間のデータベース変更メッセージによって副系のデータベースを更新し、次にオンライン処理に伴って生じる正系のデータベースに対するデータベース変更メッセージを逐次入力して副系のデータベースを最新のデータ状態に更新し、
    切替えによって前記副系サーバーがオンライン処理を開始すると、正系サーバーにおいて、切替え前の処理期間中に変更された正系データベースのデータの集約と再登録と前記中間ボリューム記憶装置への複写を行うバッチ処理を行い、前記バッチ処理終了後は、オンライン処理に伴って生じる副系のデータベースに対するデータベース変更メッセージを逐次入力して正系のデータベースを最新のデータ状態に更新することにより、24時間連続稼動するように構成したことを特徴とする請求項1ないし5のいずれかに記載の2重更新を行うデータベースを有するクライアントサーバーシステム。
JP22729198A 1998-08-11 1998-08-11 2重更新を行うデータベースを有するクライアントサーバーシステム Expired - Fee Related JP4267094B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP22729198A JP4267094B2 (ja) 1998-08-11 1998-08-11 2重更新を行うデータベースを有するクライアントサーバーシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP22729198A JP4267094B2 (ja) 1998-08-11 1998-08-11 2重更新を行うデータベースを有するクライアントサーバーシステム

Publications (2)

Publication Number Publication Date
JP2000057030A JP2000057030A (ja) 2000-02-25
JP4267094B2 true JP4267094B2 (ja) 2009-05-27

Family

ID=16858520

Family Applications (1)

Application Number Title Priority Date Filing Date
JP22729198A Expired - Fee Related JP4267094B2 (ja) 1998-08-11 1998-08-11 2重更新を行うデータベースを有するクライアントサーバーシステム

Country Status (1)

Country Link
JP (1) JP4267094B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3685007B2 (ja) * 2000-06-13 2005-08-17 日本電気株式会社 中継切替方法及び中継切替システム
JP4593750B2 (ja) * 2000-09-28 2010-12-08 株式会社ビジュアルジャパン Posサーバ、店端末、posシステム及び記録媒体
JP2003022209A (ja) * 2001-07-05 2003-01-24 Nri & Ncc Co Ltd 分散サーバーシステム
JP4277873B2 (ja) 2006-05-23 2009-06-10 日本電気株式会社 トランザクション処理装置、トランザクション処理方法
JP5209293B2 (ja) * 2007-12-21 2013-06-12 株式会社野村総合研究所 業務継続システム
JP5283970B2 (ja) * 2008-05-22 2013-09-04 株式会社野村総合研究所 耐障害業務情報システム
KR101265388B1 (ko) * 2009-07-02 2013-05-20 엔에이치엔비즈니스플랫폼 주식회사 고가용성 데이터베이스 관리 시스템 및 이를 이용한 데이터베이스 관리 방법
JP5808828B2 (ja) * 2014-01-10 2015-11-10 アルカテル−ルーセント 非同期的にファイルを二重バックアップするための方法

Also Published As

Publication number Publication date
JP2000057030A (ja) 2000-02-25

Similar Documents

Publication Publication Date Title
US8214612B1 (en) Ensuring consistency of replicated volumes
US6934877B2 (en) Data backup/recovery system
CN107870829B (zh) 一种分布式数据恢复方法、服务器、相关设备及系统
EP3121722B1 (en) Match server for a financial exchange having fault tolerant operation
US8209282B2 (en) Method, system, and article of manufacture for mirroring data at storage locations
EP2049995B1 (en) Fault tolerance and failover using active copy-cat
US7882286B1 (en) Synchronizing volumes for replication
US7925633B2 (en) Disaster recovery system suitable for database system
US7653668B1 (en) Fault tolerant multi-stage data replication with relaxed coherency guarantees
US7650369B2 (en) Database system management method and database system
US20040010502A1 (en) In-memory database for high performance, parallel transaction processing
US20070220059A1 (en) Data processing node
US20040260899A1 (en) Method, system, and program for handling a failover to a remote storage location
JP4461147B2 (ja) リモートデータミラーリングを用いたクラスタデータベース
US20080140963A1 (en) Methods and systems for storage system generation and use of differential block lists using copy-on-write snapshots
US20040107381A1 (en) High performance transaction storage and retrieval system for commodity computing environments
MXPA06005797A (es) Sistema y metodo para la recuperacion en caso de fallas.
EP1771789A2 (en) Method of improving replica server performance and a replica server system
JP4267094B2 (ja) 2重更新を行うデータベースを有するクライアントサーバーシステム
WO2017122060A1 (en) Parallel recovery for shared-disk databases
JP2007293821A (ja) データベースシステム管理方法及びデータベースシステム
JPH04299435A (ja) データベース等価方式
EP0806008A1 (en) Tracking the state of transactions
WO2017023244A1 (en) Fault tolerant computing
JPH02153437A (ja) 出力メッセージ回復方式

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060120

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060322

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060602

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060802

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20060913

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

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20070406

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: 20090218

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120227

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130227

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140227

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees