JP2015060343A - データベース管理方法およびデータベース管理システム - Google Patents

データベース管理方法およびデータベース管理システム Download PDF

Info

Publication number
JP2015060343A
JP2015060343A JP2013192644A JP2013192644A JP2015060343A JP 2015060343 A JP2015060343 A JP 2015060343A JP 2013192644 A JP2013192644 A JP 2013192644A JP 2013192644 A JP2013192644 A JP 2013192644A JP 2015060343 A JP2015060343 A JP 2015060343A
Authority
JP
Japan
Prior art keywords
update information
update
transaction
database
serial number
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
JP2013192644A
Other languages
English (en)
Other versions
JP6047472B2 (ja
Inventor
仁 宮繁
Hitoshi Miyashige
仁 宮繁
俊一 長瀬
Shunichi Nagase
俊一 長瀬
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2013192644A priority Critical patent/JP6047472B2/ja
Publication of JP2015060343A publication Critical patent/JP2015060343A/ja
Application granted granted Critical
Publication of JP6047472B2 publication Critical patent/JP6047472B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

【課題】現用系システムと待機系システムの間において、高精度の整合性が確保された引継ぎ処理を実行し、無停止運転を達成する。【解決手段】現用系システム100が、データベース116の更新要求が示す更新情報のヘッダにトランザクション中の通番を設定し、更新要求毎に通番をインクリメントして以降の更新情報のヘッダに設定し、各更新情報を記憶装置に格納する第1処理と、記憶装置に格納した更新情報を所定タイミングで待機系システム200に送信する第2処理を実行し、待機系システム200が、現用系システム100から更新情報を受信しキュー228に登録する第3処理と、登録された更新情報のうち同トランザクションに関するものを抽出し、ヘッダが示す通番に基づいてソートしてトランザクション中の処理順序に整合させた更新情報群を生成する第4処理と、更新情報群に基づいてデータベース226を更新する第5処理を実行する。【選択図】図1

Description

本発明は、データベース管理方法およびデータベース管理システムに関するものであり、具体的には、クリティカルな運用形態となる現用系システムとその待機系システムの間において、高精度の整合性が確保された引継ぎ処理を実行し、無停止運転を達成する技術に関する。
金融機関における勘定系システムなど、広く社会基盤となっているシステムについては、その重要性から無停止運転が求められており、対応する各種技術が提案されている。例えば、現用系システムとこれに同期する待機系システムとを合わせて運用し、現用系システムのメンテナンス時等にはシームレスに待機系システムが処理を引き継ぎ、利用者から見た無停止状態達成を目指す技術がある。
このような技術としては、例えば、本番システムで処理されたトランザクションについての少なくとも1の更新データを含むデータが格納されている前記本番システムの記憶部から、静止点前であってトランザクションがコミットされた最後の時点における、前記少なくとも1の更新データを含む前記データを取得し、該取得したデータを前記代行システムの記憶部にコピーする復元部と、前記更新データと該更新データのそれぞれに関連付けられ且つ前記静止点を識別可能にする情報とを蓄積するメッセージ・キューから、前記静止点を識別可能にする情報を用いて選択され且つ前記静止点以降にコミットされたところの更新データを前記代行システムの記憶部にコピーするコピー部と、前記選択された更新データのコピーが終了することに応じて、トランザクションの処理を受け付ける受付キューから少なくとも1のトランザクションを取得し、そして該取得したトランザクションの処理を開始するトランザクション処理部とからなる代行システム(特許文献1参照)などが提案されている。
特開2010−33398号公報
しかしながら実際の現場においては、膨大な頻度で実行される各種処理によるフラグメントの解消や、金融機関における店舗統廃合によるDB構成変更、ハード・ソフトの不良対策など、システム停止が回避しにくい様々な状況を考慮せざるを得ず、システム停止日を設ける措置がとられることも多い。このことは、従来技術が示すような処理の引継ぎ対応を行うとしても、現用系システムで扱っているデータについて、トランザクションにおける順序等も含めて確かな整合性を確保した上で、待機系システムに引き継ぐことが実際には困難であることに起因している。
そこで本発明の目的は、クリティカルな運用形態となる現用系システムとその待機系システムの間において、高精度の整合性が確保された引継ぎ処理を実行し、無停止運転を達成する技術を提供することにある。
上記課題を解決する本発明のデータベース管理方法は、非同期で待機系システムと接続された現用系システムが、所定トランザクションを実行中のアプリケーションからデータベースの更新要求を受けた際、当該更新要求に応じてデータベースの更新処理を実行すると共に、前記更新要求が示す更新情報のヘッダにトランザクション中の通番を設定し、前記トランザクションに関する更新要求を受ける毎に前記通番をインクリメントして、以降の更新情報のヘッダに設定し、各更新情報を記憶装置に格納する第1処理と、前記記憶装置に格納した前記更新情報を、所定タイミングで待機系システムに送信する第2処理を実行し、前記待機系システムが、前記現用系システムから前記更新情報を受信して、当該更新情報をキューに登録する第3処理と、前記キューに登録された更新情報のうち、同じトランザクションに関するものを抽出し、当該抽出した更新情報を、ヘッダが示す前記通番に基づいてソートして、トランザクション中の処理順序に整合させた更新情報群を生成する第4処理と、前記生成した更新情報群に基づいて、当該待機系システムにおけるデータベースを更新する第5処理を実行することを特徴とする。
また、本発明のデータベース管理システムは、非同期で互いに接続された現用系システム及び待機系システムを含むシステムであり、前記現用系システムが、所定トランザクションを実行中のアプリケーションからデータベースの更新要求を受けた際、当該更新要求に応じてデータベースの更新処理を実行すると共に、前記更新要求が示す更新情報のヘッダにトランザクション中の通番を設定し、前記トランザクションに関する更新要求を受ける毎に前記通番をインクリメントして、以降の更新情報のヘッダに設定し、各更新情報を記憶装置に格納する第1処理と、前記記憶装置に格納した前記更新情報を、所定タイミングで待機系システムに送信する第2処理を実行するものであり、前記待機系システムが、前記現用系システムから前記更新情報を受信して、当該更新情報をキューに登録する第3処理と、前記キューに登録された更新情報のうち、同じトランザクションに関するものを抽出し、当該抽出した更新情報を、ヘッダが示す前記通番に基づいてソートして、トランザクション中の処理順序に整合させた更新情報群を生成する第4処理と、前記生成した更新情報群に基づいて、当該待機系システムにおけるデータベースを更新する第5処理を実行するものであることを特徴とする。
本発明によれば、クリティカルな運用形態となる現用系システムとその待機系システムの間において、高精度の整合性が確保された引継ぎ処理を実行し、無停止運転を達成できる。
本実施形態のデータベース管理システムを含むネットワーク構成図である。 本実施形態のデータベース管理システムにおけるプライマリセンタの構成例を示すブロック図である。 本実施形態のデータベース管理システムにおけるセカンダリセンタの構成例を示すブロック図である。 本実施形態における更新情報テーブルのデータ構造例を示す図である。 本実施形態におけるDB定義テーブルのデータ構造例を示す図である。 本実施形態におけるユーザ定義テーブルのデータ構造例を示す図である。 本実施形態におけるAPP定義テーブルのデータ構造例を示す図である。 本実施形態における製品情報テーブルのデータ構造例を示す図である。 本実施形態におけるAPP定義テーブル(セカンダリセンタ側)のデータ構造例を示す図である。 本実施形態におけるDBキュー情報テーブルのデータ構造例を示す図である。 本実施形態におけるユーザ定義テーブル(セカンダリセンタ側)のデータ構造例を示す図である。 本実施形態におけるデータベース管理方法の処理手順例1を示すフロー図である。 本実施形態におけるデータベース管理方法の処理手順例2を示すフロー図である。 本実施形態におけるデータベース管理方法の処理手順例3を示すフロー図である。
−−−システム構成−−−
以下に本発明の実施形態について図面を用いて詳細に説明する。図1は、本実施形態のデータベース管理システム10を含むネットワーク構成図である。図1に示すデータベース管理システム10は、クリティカルな運用形態となる現用系システムとその待機系システムの間において、高精度の整合性が確保された引継ぎ処理を実行し、無停止運転を達成するコンピュータシステムである。本実施形態におけるデータベース管理システム10は、図1にて示すように、現用系システムたるプライマリセンタ15と、その待機系システムたるセカンダリセンタ20とを含む構成となっている。
こうしたデータベース管理システム10は、一例として金融機関における勘定系システムに適用された状況を想定できる。その場合、プライマリセンタ15は、勘定系の処理に伴うトランザクションに応じて、例えば預金残高等の各種顧客情報を管理しているデータベース116のデータ更新を行うこととなる。プライマリセンタ15においてこうした処理を実行するのは送信側サーバ100である。この送信側サーバ100は、DKC(ディスクコントローラ)115の配下にある上述のデータベース116にアクセスし、そのデータ更新を行うと共に、当該更新情報を送信側ジャーナル117に格納する処理を実行するものとなる。
一方、プライマリセンタ15とネットワーク50を介して接続され、待機系システムとして稼働するのがセカンダリセンタ20である。このセカンダリセンタ20は、プライマリセンタ15における送信側サーバ100で生じた更新情報を非同期(例:バッチ処理等)で取得して、データベース226をプライマリセンタ15のデータベース116と同内容とすべくデータ更新を行うこととなる。セカンダリセンタ20においてこうした処理を実行するのは受信側サーバ群200であり、第1の受信側サーバ210および第2の受信側サーバ250で構成される。この受信側サーバ群200は、DKC(ディスクコントローラ)225の配下にある受信側ジャーナル227から更新情報(送信側ジャーナル117から送られたもの)を取得して適宜な処理を施した上で、DBキュー228に登録し、更には、このDBキュー228に登録した情報に基づいて上述のデータベース226のデータ更新を行うものとなる。
図2は本実施形態のデータベース管理システム10におけるプライマリセンタ15の構成例を示すブロック図である。データベース管理システム10を構成する各装置のうち、プライマリセンタ15を構成する送信側サーバ100のハードウェア構成は以下の如くとなる。送信側サーバ100は、主記憶装置101、ハードディスクドライブなどで構成される補助記憶装置を含むDKC115、主記憶装置101に保持されるプログラム102のうちOS108に基づいてアプリケーション110を読み出すなどして実行し装置自体の統括制御を行なうとともに各種判定、演算及び制御処理を行なうCPU(演算装置)104、ユーザからのキー入力や音声入力を受け付ける入力装置105、処理データの表示を行うディスプレイ等の出力装置106、ネットワーク50と接続しDKC115を介してセカンダリセンタ20との通信処理を担う通信装置107、を備える。勿論、入力装置105、出力装置106は必要に応じて備えるとすれば良く、最少構成としては具備しない形態であってもよい。また、送信側サーバ100がデータベース116の更新や送信側ジャーナル117への更新情報の格納を行う際には、DKC115への指示を行って該当処理を行うものとする。
なお、主記憶装置101内(補助記憶装置たるDKC配下の記憶装置であっても勿論よい)には、本実施形態のデータベース管理システムとして必要な機能を実装する為のOS108やアプリケーション110を含むプログラム102に他に、DB定義テーブル126、ユーザ定義テーブル127、APP定義テーブル128、及び製品情報テーブル129が少なくとも記憶されている。また、DKC配下の送信側ジャーナル117には更新情報テーブル125が格納されている。これらのテーブル125〜129の詳細については後述する。また、上述のアプリケーション110は、ユーザ部111、APP112、製品113から構成されている。製品113は、OpenTP1(登録商標)などの、オープンシステム上でオンライントランザクション処理を実行するミドルウェアであり、この製品113をベースに勘定系処理に必要な機能を付与するプログラムがAPP112(アプリケーションパッケージ)であり、更に、このAPP112を金融機関(すなわちユーザ)ごとの仕様、機能に応じてカスタマイズした部分がユーザ部111となる。
他方、セカンダリセンタ20の構成は以下のとおりである。図3は本実施形態のデータベース管理システム10におけるセカンダリセンタ20の構成例を示すブロック図である。セカンダリセンタ20は、第1の受信側サーバ200および第2の受信側サーバ250で構成されている。セカンダリセンタ20における第1および第2の各受信側サーバ210、250とも、プライマリセンタ15の待機系システムとして稼働するものである為、上述した送信側サーバ100の構成と同様の構成を備えている。そこでここでは、送信側サーバ100と異なる構成についてのみ説明する。
この場合、第1の受信側サーバ210は、プライマリセンタ15における送信側サーバ100とは異なるAPP定義テーブル235およびDBキュー情報テーブル236を主記憶装置211にて備えている(いずれも詳細は後述)。また、第2の受信側サーバ250は、送信側サーバ100とは異なるユーザ定義テーブル265を主記憶装置251にて備えている。また、これら第1および第2の受信側サーバ210、250は、それぞれ補助記憶装置のDKC225に命じて、受信側ジャーナル227、DBキュー228、およびデータベース226にアクセスすることが可能である。
続いて、本実施形態のデータベース管理システム10における上述の各サーバらが備える機能について説明する。上述したように、以下に説明する機能は、例えばデータベース管理システム10を構成する各サーバ100、210、250らがそれぞれ備えるプログラムを各々実行することで実装される機能と言える。
プライマリセンタ15の送信側サーバ100は、所定トランザクションを実行中のアプリケーション110からデータベース116の更新要求を受けた際、当該更新要求に応じてDKC115配下のデータベース116の更新処理を実行すると共に、更新要求が示す更新情報のヘッダにトランザクション中の通番を設定し、トランザクションに関する更新要求を受ける毎に通番をインクリメントして、以降の更新情報のヘッダに設定し、各更新情報を更新情報テーブル125(送信側ジャーナル117が保持)に格納する機能を備えている。
なお、上述の送信側サーバ100は、上述の通番のインクリメントに際し、更新情報のヘッダに設定した最新の通番を、該当トランザクションに関して主記憶装置101のAPP定義テーブル128にて格納する処理を更に実行し、インクリメントに際して、このAPP定義テーブル128に格納した最新の通番からインクリメントを行うものとする。
また、上述の送信側サーバ100は、送信側ジャーナル117における更新情報テーブル125に保持する更新情報を、所定タイミングでセカンダリセンタ20に送信する機能を備えている。
一方、セカンダリセンタ20の第1の受信側サーバ210は、プライマリセンタ15の送信側サーバ100から上述の更新情報を受信して受信側ジャーナル227に格納すると共に、当該更新情報をDBキュー228に登録する機能を備えている。
また、セカンダリセンタ20の第2の受信側サーバ250は、上述のDBキュー228に登録された更新情報のうち、同じトランザクションに関するものをトランザクションID等に基づいて抽出し、当該抽出した更新情報を、ヘッダが示す通番に基づいてソートして、トランザクション中の処理順序に整合させた更新情報群を生成する機能を備えている。 また、上述の第2の受信側サーバ250は、生成した更新情報群に基づいて、当該セカンダリセンタ20におけるデータベース226を更新する機能を備えている。
なお、送信側サーバ100が、上述した更新要求に応じた処理において、アプリケーション110からの更新要求が示す更新情報のユーザ定義領域に、ユーザ定義の通番を設定し、トランザクションに関する更新要求を受ける毎にユーザ定義の通番をインクリメントして、以降の更新情報のユーザ定義領域に設定する機能を更に備える場合、セカンダリセンタ20の第2の受信側サーバ250は、以下の機能を備えている。
すなわち第2の受信側サーバ250は、送信側サーバ100から第1の受信側サーバ210が受信してDBキュー228に格納した更新情報より、ユーザ定義の通番を参照し、これを主記憶装置251のユーザ定義テーブル265に格納する機能を備えている。
また、第2の受信側サーバ250は、DBキュー228に登録された更新情報のうち、同じトランザクションに関するものをトランザクションID等をキーに抽出し、当該抽出した更新情報における最新のユーザ定義の通番が、ユーザ定義テーブル265に格納してあるユーザ定義の通番より1つ大きいとの条件を満たすか判定する機能を更に備えている。この処理を実行した第2の受信側サーバ250は、上述の条件が満たされなかった場合、所定時間待機して、第1の受信側サーバ210による上述の処理(更新情報をDBキュー228に登録する処理)の実行を待ち、上述した処理(更新情報を、ヘッダが示す通番に基づいてソートして、トランザクション中の処理順序に整合させた更新情報群を生成する処理)を再実行する。
また、第2の受信側サーバ250は、上述の更新情報群に基づいてデータベース226を更新する際に、プライマリセンタ15におけるデータベース116の構成変更処理に対応した、当該セカンダリセンタ20におけるデータベース226の構成変更処理の完了通知を、入力装置255ないし通信可能に結ばれた外部端末から受け付け済みである場合に、構成変更処理後のデータベース226の構成に対応する形式に、更新情報群の各更新情報を修正して、当該修正した更新情報群に基づいてデータベース226を更新する機能を更に備えている。
−−−データ構造例−−−
次に、本実施形態のデータベース管理システム10が用いるテーブルにおけるデータ構造例について説明する。図4は本実施形態における更新情報テーブル125のデータ構造例を示す図である。更新情報テーブル125は、送信側ジャーナル117に格納されているテーブルであり、プライマリセンタ15におけるデータベース116の更新情報を格納したテーブルである。更新情報テーブル125におけるレコードすなわち1つの更新情報は、データベース116に対する更新が発生する毎に格納される、すなわちアプリケーション110によるトランザクションの1つ1つに対応している。
こうしたレコードは、APPヘッダ、更新レコード情報、およびユーザ情報から構成されている。更新情報のヘッダたるAPPヘッダには、APP通番(トランザクション中の通番)、トランザクション最終フラグ(一連のトランザクション中の最終のものに付与されるフラグ)、およびトランザクションID(不図示)の各データが少なくとも含まれている。また、更新レコード情報は、データベース116の更新情報の実体部分であり、更新対象となるDB名称およびレコード名称の各データが少なくとも含まれている。また、ユーザ情報は、例えばプライマリセンタ15におけるユーザ部111で更新情報に関して定義した、ユーザ定義領域(ユーザが任意に値を設定できる予備的な領域)に、更新情報毎に付与される通番、すなわちファイル通番の値を少なくとも含んでいる。
図4で示す例においては、プライマリセンタ15の送信側サーバ100による処理が進む毎に、この更新情報テーブル125の所定レコードの、APP通番、トランザクション最終フラグ、およびファイル通番が書き換えられていく様子を表している。アプリケーション110から更新要求を受けただけの時点では、更新情報テーブル125に格納された更新情報は、図4における「第1段階」にて示すように、APP通番、トランザクション最終フラグ、およびファイル通番はいずれも「NULL」となっている。また、ユーザ定義テーブル127のファイル通番(例:“7”)からインクリメントさせた値“8”を得た処理の後においては、「第2段階」にて示すように、ファイル通番は「8」となっている。また、APP定義128のAPP通番(例:“1”)からインクリメントさせた値“2”を得た処理の後においては、「第3段階」にて示すように、APP通番は「2」となっている。また、製品情報テーブル129の最終フラグから値“1”(一連のトランザクション中で最終のものを示す値)を得た処理の後においては、「第4段階」にて示すように、トランザクション最終フラグは「1」となっている。
また、図5は本実施形態におけるDB定義テーブル126のデータ構造例を示す図である。このDB定義テーブル126は、プライマリセンタ15におけるデータベース116を構成するデータベースの情報を定義したテーブルである。DB定義テーブル126は、DB名称、その構成情報(DBが格納するデータの実体)、ユーザ保有領域の各データを少なくとも含んだレコードの集合体となっている。このうちユーザ保有領域は、該当データベースにおいて上述したユーザ定義領域が設定されているか否かを示すフラグを格納する領域であり、ユーザ定義領域が設定されている場合、“1”のフラグが格納されている。このDB定義テーブル126は、適宜な管理者等が予め生成して格納したものである。
また、図6は本実施形態におけるユーザ定義テーブル127のデータ構造例を示す図である。ユーザ定義テーブル127は、上述した更新情報におけるユーザ定義領域に設定されたファイル通番がデータベース毎に格納されたテーブルである。
また、図7は本実施形態におけるAPP定義テーブル128のデータ構造例を示す図である。APP定義テーブル128は、データベース116に含まれている各DBについて、その構成情報、リモートDBのフラグ(セカンダリセンタ20への更新反映対象か否かを示す値)、およびAPP通番の各データを少なくとも含んだレコードの集合体となっている。
また、図8は本実施形態における製品情報テーブル129のデータ構造例を示す図である。製品情報テーブル129は、アプリケーション110の処理で生じたトランザクションに関する情報を格納したテーブルであり、トランザクション番号(トランザクションID)、トランザクション種別(例:入金、出金、振込、など)、最終フラグ(トランザクション最終フラグ)の各データを少なくとも含んだレコードの集合体となっている。
また、図9は本実施形態におけるAPP定義テーブル235(セカンダリセンタ側)のデータ構造例を示す図である。セカンダリセンタ20における第1の受信側サーバ210が備えるAPP定義テーブル235は、データベース116に含まれている各DB(セカンダリセンタ20で更新反映するもの)について、そのDB名称、レコード情報(構成情報)、およびサービス名(トランザクション種別と同様)の各データを少なくとも含んだレコードの集合体となっている。
また、図10は本実施形態におけるDBキュー情報テーブル236のデータ構造例を示す図である。DBキュー情報テーブル236は、DBキュー228に格納された、プライマリセンタ15由来の更新情報に関する情報を格納したテーブルである。このDBキュー情報テーブル236は、更新情報が含んでいるAPPヘッダ、更新レコード情報、およびユーザ情報に加えて、DBキューヘッダを備えたレコードの集合体となっている。このDBキューヘッダは、本実施形態のデータベース管理方法の処理対象、すなわち、プライマリセンタ15におけるデータベース116からセカンダリセンタ20におけるデータベース226更新反映処理の対象となっているトランザクションかを示すフラグを格納する領域となる。更新反映処理の対象となっている場合、フラグ「1」が格納されている。
また、図11は本実施形態におけるユーザ定義テーブル265(セカンダリセンタ側)のデータ構造例を示す図である。このユーザ定義テーブル265は、プライマリセンタ15由来の更新情報におけるユーザ定義領域に設定されたファイル通番と、構成変更後フラグ(セカンダリセンタ20におけるデータベース226での構成変更処理の完了未済を示すフラグ)が、データベース毎に格納されたテーブルである。
−−−処理手順例1−−−
以下、本実施形態におけるデータベース管理方法の実際手順について図に基づき説明する。以下で説明するデータベース管理方法に対応する各種動作は、データベース管理システム10を構成するプライマリセンタ15の送信側サーバ100、セカンダリセンタ20を構成する第1の受信側サーバ210、および第2の受信側サーバ250が実行するプログラムによって実現される。そして、このプログラムは、以下に説明される各種の動作を行うためのコードから構成されている。
図12は、本実施形態におけるデータベース管理方法の処理手順例1を示すフロー図である。ここではまず、プライマリセンタ15の送信側サーバ100における処理について説明する。この場合、送信側サーバ100のアプリケーション110におけるユーザ部111は、所定サービスの実行に応じてデータベース116の更新をAPP112に対して要求する(s100)。
APP112は、この要求を受けて、上述の要求が含む更新情報を一旦、主記憶装置101にて1レコードとして格納する(後に、送信側ジャーナル117の更新情報テーブル125に格納する)と共に、DB定義テーブル126において該当要求が示すDBに関するレコードを参照し、該当レコードにおけるユーザ保有領域フラグの有無を判定する(s101)。つまり、上述の要求の対象となったDBの各レコードにユーザ定義領域が設定されているか判定することになる。なお、このステップs101の処理により更新情報テーブル125に格納されたレコードの状態は、図4にて「第1段階」として示した通りである。
上述のステップs101での判定により、該当レコードにてユーザ保有領域フラグ“1”が設定されていた場合、すなわち該当DBのレコードにユーザ定義領域が設定されていたことが判明した場合(s101:YES)、APP112はこの旨をユーザ部111に返す。他方、該当レコードにてユーザ保有領域フラグ“1”が設定されていなかった場合、すなわち該当DBのレコードにユーザ定義領域が設定されていないことが判明した場合(s101:NO)、APP112は処理をステップs103に進める。
一方、ユーザ部111は、ステップs101の結果として、該当DBのレコードにユーザ定義領域が設定されていた旨をAPP112から受けたならば、ユーザ定義テーブル127におけるファイル通番の値を参照し、この値をインクリメントして更新した上で、主記憶装置101に一旦格納してある該当レコード(ステップs101で格納したもの)のファイル通番を同値で更新する(s102)。このステップs102の処理後における該当レコードの状態は、図4にて「第2段階」として示した通りである。
ユーザ部111における上述のステップs102の処理完了を受けたAPP112は、ユーザ部110からの更新要求が示す更新情報に応じて、データベース116における該当DBの更新処理を製品113に対して要求する(s103)。製品113は、この要求を受けて、該当更新情報に基づいてDKC115に更新要求を指示することで、データベース116における該当DBの更新を行う(s104)。こうした更新処理は、アプリケーション110で処理データが生じ、データベース116における対応データを更新する必要が生じるごとに発生する。
一方、製品113による更新処理を受けたAPP112は、APP定義テーブル128における該当DBのレコードを参照し、リモートDBフラグとして“1”が設定されているか判定する(s105)。この判定の結果、該当DBに関してリモートDBフラグとして“1”が設定されていなかった場合(s105:NO)、APP112はその旨をユーザ部111に返し、ユーザ部111は当該トランザクションを終了する。すなわち、上述のステップs104でデータベースの更新処理を行ったトランザクションは、セカンダリセンタ20におけるデータベース226の反映更新を必要としないものであったと認識して処理を終了するのである。
他方、上述のステップs105の判定の結果、該当DBに関してリモートDBフラグとして“1”が設定されていた場合(s105:YES)、APP112は、APP定義テーブル128における該当DBのレコードを参照して、APP通番の値を抽出してインクリメントして更新した上で、この値を、主記憶装置101に格納してある該当レコードのAPP通番に設定する(s106)。このステップs106の処理後における該当レコードの状態は、図4にて「第3段階」として示した通りである。
また、APP112は、製品情報テーブル129におけるレコードがトランザクション最終フラグ“1”を保有しているか判定する(s107)。該当レコードが、トランザクション最終フラグ“1”を保有していなかった場合(s107:NO)、APP112は、その旨を製品113に通知して処理をステップs109に進める。他方、該当レコードが、トランザクション最終フラグ“1”を保有していた場合(s107:YES)、APP112は、このトランザクション最終フラグ“1”を主記憶装置101に格納してある該当レコードのAPPヘッダのうちトランザクション最終フラグ欄に格納する(s108)。
上述のステップs107で、該当レコードが、トランザクション最終フラグ“1”を保有していなかった場合(s107:NO)、および、上述のステップs108の処理を受けた製品113は、主記憶装置101に一旦格納していた上述のレコードを、送信側ジャーナル117における更新情報テーブル125のレコードとして登録する(s109)。
なお、上述の各ステップを例えば1時間、或いは1日などの所定期間繰り返し実行し、所定時刻が到来した時点で、製品113は、送信側ジャーナル117に蓄積された更新情報テーブル125のデータを、セカンダリセンタ20における第1の受信側サーバ210に送信するものとする。この時、送信側ジャーナル117のデータを受信した第1の受信側サーバ210は、DKC225に命じて、その配下にある受信側ジャーナル227に該当データの格納を行う。こうして、非同期にて、送信側ジャーナル117のデータによって受信側ジャーナル227の格納データが更新される。
−−−処理手順例2−−−
次に、セカンダリセンタ20の第1の受信側サーバ210における、DBキュー228へのデータ登録処理について図に基づき説明する。図13は、本実施形態におけるデータベース管理方法の処理手順例2を示すフロー図である。
この場合、セカンダリセンタ20の第1の受信側サーバ210における製品223は、受信側ジャーナル227にデータが格納されているか判定し(s200)、データが格納されていなかった場合(s200:NO)、例えば10秒間スリープして、再びステップs200を実行する。一方、受信側ジャーナル227にデータが格納されていた場合(s200:YES)、製品223は、受信側ジャーナル227よりデータを取得し(s201)、該当データをAPP222に引き渡す。
APP222は、製品223から引き渡された受信側ジャーナル227のデータ、すなわち更新情報を受けて、当該更新情報が含むDB名称及びレコード名称の値を、APP定義テーブル235に照合して該当サービスを決定し、ここで決定したサービスに対応して主記憶装置211にて設けた処理キューへ登録する(s202)。
一方、製品223は、APP222による上述のステップ202の処理を受けて、該当処理キューより更新情報のデータを引きだし(s203)、APP222に引き渡す。APP222は、これを受けて、DBキュー情報テーブル236に生成したレコード(該当更新情報を含むレコード)に反映トランザクションフラグ“1”を設定し、DBキュー228に登録する(s204)。
−−−処理手順例3−−−
次に、セカンダリセンタ20の第2の受信側サーバ250が実行する処理について図に基づき説明する。図14は、本実施形態におけるデータベース管理方法の処理手順例3を示すフロー図である。この場合、第2の受信側サーバ250における製品263は、上述のステップs204にて登録されているデータを、DBキュー228より取り出し(s300)、該当データをAPP262に引き渡す。
一方、APP262は、製品263から引き渡されたデータ、すなわちDBキュー228に登録されていた更新情報に関して、DBキュー情報テーブル236の該当レコードに反映トランザクションフラグ“1”が設定されているか判定する(s301)。該当レコードに反映トランザクションフラグ“1”が設定されていなかった場合(s301:NO)、APP262は、DBキュー228より取り出した更新情報はセカンダリセンタ20におけるデータベース226に反映させる必要のないものであると認識して、通常トランザクションとして起動し、以降のフローを終了する。他方、上述のステップs301の結果、該当レコードに反映トランザクションフラグ“1”が設定されていた場合(s301:YES)、APP262は、DBキュー228から更新情報によるデータベース226の更新、すなわち、反映トランザクションを起動する(s302)。
ステップs302に続いてAPP262は、該当更新情報におけるAPPヘッダにトランザクション最終フラグ“1”が含まれているか判定する(s303)。該当更新情報におけるAPPヘッダにトランザクション最終フラグ“1”が含まれていなかった場合(s303:NO)、APP262は、主記憶装置211に設けた所定のバッファへ、該当更新情報のデータを退避させ、次トランザクションを待つ(s304)。これを受けた製品263はトランザクションを終了する(s305)。
他方、ステップs303の判定の結果、該当更新情報におけるAPPヘッダにトランザクション最終フラグ“1”が含まれていた場合(s303:YES)、APP262は、バッファ(これより前のいずれかのタイミングで主記憶装置211に設けられているもの)へ退避した更新情報のデータがあるか判定する(s306)。この判定の結果、バッファへ退避した更新情報のデータが無かった場合(s306:NO)、APP262はその旨をユーザ部261に通知し、処理をステップ308に進める。
他方、ステップs306の結果、バッファへ退避した更新情報のデータがあった場合(s306:YES)、APP262は、同じトランザクションIDが付与されている更新情報(s300で取り出したもの由来)に関し、各更新情報が含むAPP通番の値に基づいて更新情報のソート処理を実行し、トランザクション中の処理順序に整合させた更新情報群を生成し(s307)、ユーザ部261に引き渡す。
ステップs307の処理結果を受けたユーザ部261は、APP262から引き渡された更新情報より、例えば値が最も大きいファイル通番の値を参照し、該当値が、ユーザ定義テーブル265の該当DBに関するレコードのファイル通番の値の次の値、すなわち1つインクリメントされた値になっているか判定する(s308)。
この判定の結果、APP262から引き渡された更新情報におけるファイル通番の値が、ユーザ定義テーブル265の該当DBに関するレコードのファイル通番の値の次の値でなかった場合(s308:NO)、ユーザ部261は、該当更新情報のデータをバッファへ退避させ、次トランザクションを待つ(s309)。これを受けた製品263はトランザクション終了する(s310)。
他方、ステップs308の判定の結果、APP262から引き渡された更新情報におけるファイル通番の値が、ユーザ定義テーブル265の該当DBに関するレコードのファイル通番の値の次の値であった場合(s308:YES)、ユーザ部261は、上述のバッファへ退避した更新情報のデータがあるか判定する(s311)。
この判定の結果、バッファへ退避した更新情報のデータがあった場合(s311:YES)、ユーザ部261は、バッファに退避してあった更新情報(ステップs307で生成した更新情報群)に関し、各更新情報が含むファイル通番の値に基づいて更新情報のソート処理をあらためて実行し、トランザクション中の処理順序に整合させる、すなわちファイル通番に基づく通番補正処理を実行する(s312)。
上述のステップs312に続いて、或いは、ステップs311の判定結果がバッファへ退避した更新情報のデータがなかった場合(s311:NO)、ユーザ部261は、ユーザ定義テーブル265における該当DBのレコードを参照し、構成変更後フラグに“1”が設定されているか、すなわち、データベース226における該当DBに関して構成変更が完了しているか判定する(s313)。
この判定の結果、データベース226における該当DBに関して構成変更が完了していた場合(s313:YES)、ユーザ部261は、DBの構成変更によるデータ構造の変化、例えば所定データのデータ長変化(例えば、構成変更前は4バイトであったのが、6バイトに変化)に対応すべく、ここまでのステップで得ている更新情報群の該当データのデータ長を修正する(例:2バイトの領域を付加)といった対応処理を実行する(s314)。
上述のステップs314に続いて、或いは、ステップs313の判定結果が該当DBに関して構成変更が完了していなかった場合(s313:NO)、ユーザ部261は、上述の更新情報群の各更新情報のレコードにて、データベース更新には不要な項目(APPヘッダやユーザ情報)を削除する処理、すなわちレコード編集処理を実行する(s315)。
また、上述のステップs315の処理完了を受けて、ユーザ部261は、APP262に対してDB更新要求を行う(s316)。これを受けたAPP262は、DB更新要求を製品263に実行し(s317)、これを受けた製品263は、要求が示す更新情報に基づいてデータベース226における該当DBの更新を実行する(s318)。
このように、セカンダリセンタ20におけるデータベース226に関し、プライマリセンタ15のデータベース116に対してなされる構成変更と同様の構成変更を施し、なおかつ、データベース116の更新に由来する更新情報によって更新した上で、プライマリセンタ15での処理を引き継いでオンラインシステムとして稼働開始させた後、プライマリセンタ15の停止と構成変更を実行し、その後の所定のタイミングにて、セカンダリセンタ20のデータベース226を、プライマリセンタ15のデータベース116にコピーしてプライマリセンタ15のオンライン復帰を行う。こうした処理は、すなわち、現用系システムたるプライマリセンタ15と、その待機系システムたるセカンダリセンタ20の間において、高精度の整合性が確保された引継ぎ処理を実行し、無停止運転を達成することとなる。
以上、本発明を実施するための最良の形態などについて具体的に説明したが、本発明はこれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
こうした本実施形態によれば、クリティカルな運用形態となる現用系システムとその待機系システムの間において、高精度の整合性が確保された引継ぎ処理を実行し、無停止運転を達成することが出来る。
本明細書の記載により、少なくとも次のことが明らかにされる。すなわち、本実施形態のデータベース管理方法において、前記現用系システムが、前記第1処理において、前記更新情報のヘッダに設定した最新の通番を該当トランザクションに関して記憶装置に格納する処理を更に実行し、前記インクリメントに際して、前記記憶装置に格納した最新の通番からインクリメントを行うとしてもよい。
これによれば、上述の通番のインクリメントに際しベースとなる通番の値を確実に管理することが可能となる。
また、本実施形態のデータベース管理方法において、前記現用系システムが、前記第1処理において、前記更新要求が示す更新情報のユーザ定義領域に、ユーザ定義の通番を設定し、前記トランザクションに関する更新要求を受ける毎に前記ユーザ定義の通番をインクリメントして、以降の更新情報のユーザ定義領域に設定する処理を更に実行し、前記待機系システムが、前記第3処理において、前記現用系システムから前記更新情報を受信した際、当該更新情報が示すユーザ定義の通番を記憶装置に格納する処理を更に実行し、前記第4処理において、前記キューに登録された更新情報のうち、同じトランザクションに関するものを抽出し、当該抽出した更新情報における最新のユーザ定義の通番が、前記第3処理にて前記記憶装置に格納してあるユーザ定義の通番より1つ大きいとの条件を満たすか判定する処理を更に実行し、前記条件を満たさなかった場合、所定時間待機して前記第3処理及び第4処理を再実行するとしてもよい。
これによれば、ヘッダに設定した通番に基づいて、更新情報をトランザクション中の処理順序に整合させる処理に加えて、ユーザ定義領域に設定したユーザ定義の通番に基づく更新情報の順序性を確保することも可能となり、更に高精度の整合性が確保された引継ぎ処理を実行することが出来る。
また、本実施形態のデータベース管理方法において、前記待機系システムが、前記第5処理において、前記現用系システムにおけるデータベースの構成変更処理に対応した、当該待機系システムにおけるデータベースの構成変更処理の完了通知を、入力装置ないし通信可能に結ばれた外部端末から受け付け済みである場合に、前記構成変更処理後のデータベースの構成に対応する形式に、前記更新情報群の各更新情報を修正して、当該修正した更新情報群に基づいて、当該待機系システムにおけるデータベースを更新するとしてもよい。
これによれば、現用系システムでのデータベースの構成変更処理に先立ち、該当構成変更処理の内容に応じて待機系システムのデータベースの構成変更処理を行い、その上で現用系システムから処理の引継ぎを行うことが可能である。その場合、現用系システムでのデータベースの構成変更処理が完了した時点で、オンラインシステムを待機系システムから現用系システムへ復帰させることも、トランザクション中での更新情報の順序性を高精度に確保しつつ、円滑かつ確実に実行できる。
10 データベース管理システム
15 プライマリセンタ
20 セカンダリセンタ
50 ネットワーク
100 送信側サーバ(現用系システム)
101 記憶装置
102 プログラム
103 主記憶装置
104 演算装置
105 入力装置
106 出力装置
107 通信装置
108 OS
110 アプリケーション
111 ユーザ部
112 APP
113 製品
115 DKC
116 データベース
117 送信側ジャーナル
125 更新情報テーブル
126 DB定義テーブル
127 ユーザ定義テーブル
128 APP定義テーブル
129 製品情報テーブル
200 受信側サーバ群(待機系システム)
210 第1の受信側サーバ
211 記憶装置
212 プログラム
213 主記憶装置
214 演算装置
215 入力装置
216 出力装置
217 通信装置
218 OS
210 アプリケーション
221 ユーザ部
222 APP
223 製品
225 DKC
226 データベース
227 受信側ジャーナル
228 DBキュー
235 APP定義テーブル
236 DBキュー情報テーブル
250 第2の受信側サーバ
251 記憶装置
252 プログラム
253 主記憶装置
254 演算装置
255 入力装置
256 出力装置
257 通信装置
258 OS
260 アプリケーション
261 ユーザ部
262 APP
263 製品
265 ユーザ定義テーブル

Claims (5)

  1. 非同期で待機系システムと接続された現用系システムが、
    所定トランザクションを実行中のアプリケーションからデータベースの更新要求を受けた際、当該更新要求に応じてデータベースの更新処理を実行すると共に、前記更新要求が示す更新情報のヘッダにトランザクション中の通番を設定し、前記トランザクションに関する更新要求を受ける毎に前記通番をインクリメントして、以降の更新情報のヘッダに設定し、各更新情報を記憶装置に格納する第1処理と、
    前記記憶装置に格納した前記更新情報を、所定タイミングで待機系システムに送信する第2処理を実行し、
    前記待機系システムが、
    前記現用系システムから前記更新情報を受信して、当該更新情報をキューに登録する第3処理と、
    前記キューに登録された更新情報のうち、同じトランザクションに関するものを抽出し、当該抽出した更新情報を、ヘッダが示す前記通番に基づいてソートして、トランザクション中の処理順序に整合させた更新情報群を生成する第4処理と、
    前記生成した更新情報群に基づいて、当該待機系システムにおけるデータベースを更新する第5処理を実行する、
    ことを特徴とするデータベース管理方法。
  2. 前記現用系システムが、
    前記第1処理において、前記更新情報のヘッダに設定した最新の通番を該当トランザクションに関して記憶装置に格納する処理を更に実行し、前記インクリメントに際して、前記記憶装置に格納した最新の通番からインクリメントを行う、
    ことを特徴とする請求項1に記載のデータベース管理方法。
  3. 前記現用系システムが、
    前記第1処理において、前記更新要求が示す更新情報のユーザ定義領域に、ユーザ定義の通番を設定し、前記トランザクションに関する更新要求を受ける毎に前記ユーザ定義の通番をインクリメントして、以降の更新情報のユーザ定義領域に設定する処理を更に実行し、
    前記待機系システムが、
    前記第3処理において、前記現用系システムから前記更新情報を受信した際、当該更新情報が示すユーザ定義の通番を記憶装置に格納する処理を更に実行し、
    前記第4処理において、前記キューに登録された更新情報のうち、同じトランザクションに関するものを抽出し、当該抽出した更新情報における最新のユーザ定義の通番が、前記第3処理にて前記記憶装置に格納してあるユーザ定義の通番より1つ大きいとの条件を満たすか判定する処理を更に実行し、前記条件を満たさなかった場合、所定時間待機して前記第3処理及び第4処理を再実行する、
    ことを特徴とする請求項2に記載のデータベース管理方法。
  4. 前記待機系システムが、
    前記第5処理において、前記現用系システムにおけるデータベースの構成変更処理に対応した、当該待機系システムにおけるデータベースの構成変更処理の完了通知を、入力装置ないし通信可能に結ばれた外部端末から受け付け済みである場合に、前記構成変更処理後のデータベースの構成に対応する形式に、前記更新情報群の各更新情報を修正して、当該修正した更新情報群に基づいて、当該待機系システムにおけるデータベースを更新することを特徴とする請求項3に記載のデータベース管理方法。
  5. 非同期で互いに接続された現用系システム及び待機系システムを含むシステムであり、
    前記現用系システムが、
    所定トランザクションを実行中のアプリケーションからデータベースの更新要求を受けた際、当該更新要求に応じてデータベースの更新処理を実行すると共に、前記更新要求が示す更新情報のヘッダにトランザクション中の通番を設定し、前記トランザクションに関する更新要求を受ける毎に前記通番をインクリメントして、以降の更新情報のヘッダに設定し、各更新情報を記憶装置に格納する第1処理と、
    前記記憶装置に格納した前記更新情報を、所定タイミングで待機系システムに送信する第2処理を実行するものであり、
    前記待機系システムが、
    前記現用系システムから前記更新情報を受信して、当該更新情報をキューに登録する第3処理と、
    前記キューに登録された更新情報のうち、同じトランザクションに関するものを抽出し、当該抽出した更新情報を、ヘッダが示す前記通番に基づいてソートして、トランザクション中の処理順序に整合させた更新情報群を生成する第4処理と、
    前記生成した更新情報群に基づいて、当該待機系システムにおけるデータベースを更新する第5処理を実行するものである、
    ことを特徴とするデータベース管理システム。
JP2013192644A 2013-09-18 2013-09-18 データベース管理方法およびデータベース管理システム Active JP6047472B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013192644A JP6047472B2 (ja) 2013-09-18 2013-09-18 データベース管理方法およびデータベース管理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013192644A JP6047472B2 (ja) 2013-09-18 2013-09-18 データベース管理方法およびデータベース管理システム

Publications (2)

Publication Number Publication Date
JP2015060343A true JP2015060343A (ja) 2015-03-30
JP6047472B2 JP6047472B2 (ja) 2016-12-21

Family

ID=52817835

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013192644A Active JP6047472B2 (ja) 2013-09-18 2013-09-18 データベース管理方法およびデータベース管理システム

Country Status (1)

Country Link
JP (1) JP6047472B2 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03250257A (ja) * 1990-02-28 1991-11-08 Hitachi Ltd 高信頼性オンラインシステム
JP2013054439A (ja) * 2011-09-01 2013-03-21 Nec Corp レプリケーションシステム及びレプリケーション方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03250257A (ja) * 1990-02-28 1991-11-08 Hitachi Ltd 高信頼性オンラインシステム
JP2013054439A (ja) * 2011-09-01 2013-03-21 Nec Corp レプリケーションシステム及びレプリケーション方法

Also Published As

Publication number Publication date
JP6047472B2 (ja) 2016-12-21

Similar Documents

Publication Publication Date Title
EP3726365B1 (en) Data processing method and device
US20090183145A1 (en) Techniques for reducing down time in updating applications with metadata
US20200104404A1 (en) Seamless migration of distributed systems
CN111459640B (zh) 跨平台批量作业调度方法及系统
US11816163B2 (en) Systems and methods for improved transactional mainframes
CN112347111A (zh) 数据更新的方法和装置
CN113127564A (zh) 一种参数同步方法和装置
US20210149870A1 (en) Method, apparatus, and computer program product for improved tracking of state data
US11157690B2 (en) Techniques for asynchronous execution of computationally expensive local spreadsheet tasks
JP2012089049A (ja) 計算機システム及びサーバ
JP6047472B2 (ja) データベース管理方法およびデータベース管理システム
CN112988775B (zh) 处理批量交易的方法、计算设备和存储介质
CN113806312A (zh) 文件处理方法、装置、电子设备和存储介质
US11500857B2 (en) Asynchronous remote calls with undo data structures
CN110532108B (zh) 简历投递任务的处理方法、装置、服务器和系统
CN110765148B (zh) 一种业务数据处理方法及装置
CN115907358B (zh) 待办任务的处理方法、装置、系统及电子设备
US20240176658A1 (en) Data movement and monitoring system
CN113868278B (zh) 一种数据处理方法、装置及设备
US20230244859A1 (en) System and method for automatically sharing verified user information across remote systems
CN115408360A (zh) 存储数据的方法、装置、设备和计算机可读介质
CN116302032A (zh) 组态数据发布的方法、装置、存储介质以及电子设备
CN116756246A (zh) 一种数据同步方法、装置、设备及存储介质
CN114840544A (zh) 数据发布方法、数据更新方法、装置、设备及存储介质
TWM657273U (zh) 線上理賠設備

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160122

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160930

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20161025

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161121

R150 Certificate of patent or registration of utility model

Ref document number: 6047472

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150