JP2011180649A - データ処理システム、データ処理方法およびデータ処理プログラム - Google Patents

データ処理システム、データ処理方法およびデータ処理プログラム Download PDF

Info

Publication number
JP2011180649A
JP2011180649A JP2010041706A JP2010041706A JP2011180649A JP 2011180649 A JP2011180649 A JP 2011180649A JP 2010041706 A JP2010041706 A JP 2010041706A JP 2010041706 A JP2010041706 A JP 2010041706A JP 2011180649 A JP2011180649 A JP 2011180649A
Authority
JP
Japan
Prior art keywords
unit
data
commit
file
processing
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
JP2010041706A
Other languages
English (en)
Other versions
JP5459613B2 (ja
Inventor
Yoshihiko Nishihata
義彦 西畑
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.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2010041706A priority Critical patent/JP5459613B2/ja
Priority to US13/022,965 priority patent/US8615769B2/en
Publication of JP2011180649A publication Critical patent/JP2011180649A/ja
Application granted granted Critical
Publication of JP5459613B2 publication Critical patent/JP5459613B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】プロセスを段階的に実行するシステムにおいて、処理の高速化を図るとともに、他のシステムとの連携を容易に実現する。
【解決手段】インメモリDB20およびディスク型DB30を参照/更新しながら業務処理を実行するAP実行部123と、業務処理の出力データをデータバッファ15に格納するバッファ格納部124と、業務処理の処理終了通知を発行する応答送信部122と、データバッファ15に格納された出力データを暫定ファイル52に格納する暫定ファイル格納部113と、ディスク型DB30のコミット要求を送信する要求送信部111と、制御テーブル31を更新してディスク型DB30をコミットするディスク型DBコミット部125と、暫定ファイル52を正規ファイル52に変更する正規ファイル格納部114と、インメモリDB20をコミットするインメモリDBコミット部115とを備える。
【選択図】図2

Description

本発明は、データ処理システム、データ処理方法およびデータ処理プログラムに関する。
例えば業務処理等のデータ処理を行うシステムの中には、システム内の処理を複数のプロセスに分割し、各プロセスを段階的に実行することでシステムに課せられた処理を遂行するものがある。このようなシステムでは、各プロセスに割り当てられた処理を実行するとともに、その処理結果として出力されたデータを後続のプロセスに提供することになる。後続のプロセスでは、先行するプロセスから提供されたデータを参照して処理を実行することになる。下記特許文献1には、システム内の処理を複数のサービス(プロセス)に分割し、サービス単位で段階的に処理を実行するシステムが開示されている。
特許第4140014号公報
業務処理等のデータ処理を行うシステムには、処理の高速化が要求されるため、プロセスごとの処理をより高速に実行する必要がある。また、業務が多様化しているため、例えば一つのシステムで処理されたデータを他のシステムでも参照することができるように、複数のシステム間でデータを連携させることも要求される。
本発明は、上述した課題を解決するためになされたものであり、プロセスを段階的に実行するシステムにおいて、処理の高速化を図るとともに、他のシステムとの連携を容易に実現することができるデータ処理システム、データ処理方法およびデータ処理プログラムを提供することを目的とする。
本発明のデータ処理システムは、データを主記憶装置に格納する第1のデータベースおよびデータを補助記憶装置に格納する第2のデータベースを参照/更新しながら一つのプロセス内で複数のアプリケーションを実行する実行部と、前記実行部によって実行される前記アプリケーションによる出力データを、前記アプリケーションごとに区別してバッファに格納するバッファ格納部と、前記アプリケーションによる処理が終了するごとに処理終了通知を発行する発行部と、前記バッファに格納された前記出力データのうち、前記処理終了通知が発行された前記アプリケーションに対応する前記出力データを、他のプロセスから参照不可能な第1のファイルに格納する第1の格納部と、前記処理終了通知が発行された前記アプリケーションに対して前記第2のデータベースをコミットするように要求するコミット要求部と、前記コミットが要求された場合に、前記アプリケーションごとに区別して前記第2のデータベースに格納されている処理進行状況を更新し、前記第2のデータベースをコミットする第1のコミット部と、前記第1のコミット部による前記コミットが全ての前記アプリケーションで完了した場合に、前記第1のファイルに格納されている前記出力データを、他のプロセスから参照可能な第2のファイルに格納する第2の格納部と、前記第1のファイルの前記出力データが前記第2のファイルに格納された場合に、前記第1のデータベースをコミットする第2のコミット部と、を備える。
本発明のデータ処理方法は、データを主記憶装置に格納する第1のデータベースおよびデータを補助記憶装置に格納する第2のデータベースを参照/更新しながら一つのプロセス内で複数のアプリケーションを実行する実行ステップと、前記実行ステップにおいて実行される前記アプリケーションによる出力データを、前記アプリケーションごとに区別してバッファに格納するバッファ格納ステップと、前記アプリケーションによる処理が終了するごとに処理終了通知を発行する発行ステップと、前記バッファに格納された前記出力データのうち、前記処理終了通知が発行された前記アプリケーションに対応する前記出力データを、他のプロセスから参照不可能な第1のファイルに格納する第1の格納ステップと、前記処理終了通知が発行された前記アプリケーションに対して前記第2のデータベースをコミットするように要求するコミット要求ステップと、前記コミットが要求された場合に、前記アプリケーションごとに区別して前記第2のデータベースに格納されている処理進行状況を更新し、前記第2のデータベースをコミットする第1のコミットステップと、前記第1のコミットステップにおける前記コミットが全ての前記アプリケーションで完了した場合に、前記第1のファイルに格納されている前記出力データを、他のプロセスから参照可能な第2のファイルに格納する第2の格納ステップと、前記第1のファイルの前記出力データが前記第2のファイルに格納された場合に、前記第1のデータベースをコミットする第2のコミットステップと、を含む。
本発明のデータ処理プログラムは、上記データ処理方法に含まれる各ステップをコンピュータに実行させる。
本発明によれば、プロセスを段階的に実行するシステムにおいて、処理の高速化を図るとともに、他のシステムとの連携を容易に実現することができる。
実施形態におけるデータ処理システムの概要構成を例示するブロック図である。 第1実施形態におけるサーバ装置の機能構成を例示するブロック図である。 データバッファ管理テーブルのデータ構成を例示する図である。 データバッファテーブルのデータ構成を例示する図である。 制御ファイルのデータ構成を例示する図である。 制御テーブルのデータ構成を例示する図である。 第1実施形態におけるデータ処理の処理手順を例示するフローチャートである。 第2実施形態におけるサーバ装置の機能構成を例示するブロック図である。 第2実施形態におけるデータ処理の処理手順を例示するフローチャートである(その1)。 第2実施形態におけるデータ処理の処理手順を例示するフローチャートである(その2)。
以下、添付図面を参照して、本発明に係るデータ処理システム、データ処理方法およびデータ処理プログラムの好適な実施形態について説明する。
[第1実施形態]
まず、図1を参照して、第1実施形態におけるデータ処理システムの概要構成について説明する。図1に示すように、データ処理システム1は、複数のサーバ装置10およびインメモリDB(Database)20をそれぞれに含む三つのノード5と、ディスク型DB30と、入力装置40と、ストレージ50と、を有する。インメモリDB20は、全てのデータを主記憶装置(例えば、RAM(Random Access Memory)等の半導体メモリ)に格納し、主記憶装置に全データを保持しながら動作するデータベースである。ディスク型DB30は、全てのデータを補助記憶装置(例えば、HDD(Hard Disk Drive)やストレージ)に格納し、補助記憶装置にデータを保持しながら動作するデータベースである。ディスク型DBとしては、例えば、RDB(Relational Database)が該当する。
ここで、本実施形態におけるデータ処理システム1は、システム内の処理を三つのプロセスに分割し、各プロセスを段階的に実行するシステムである。各プロセスは、そのプロセスに対応して設けられたノード5内のいずれかのサーバ装置10で実行される。なお、プロセスおよびノードは三つであることには限定されない。プロセスは、システム内の処理内容に応じて最適な数に適宜分割することができる。ノードは、分割したプロセスと同数設けることができる。
データ処理システム1におけるデータ処理の一例について説明する。データ処理としては、例えば、業務処理が該当する。以下においては、データ処理が業務処理である場合について説明する。例えば、最初に、第一のノード5に属するいずれかのサーバ装置10が、入力装置40から入力される入力データ41を用いて第一のプロセスに対応する業務処理を実行し、その業務処理の出力データをストレージ50のデータファイル52に格納する。第一のノード5に属するサーバ装置10は、第二のノード5に属するいずれかのサーバ装置10に第一のデータファイル52に関する情報を通知する。通知を受けた第二のノード5に属するサーバ装置10は、第一のデータファイル52に格納されたデータを用いて第二のプロセスに対応する業務処理を実行し、その業務処理の出力データをストレージ50の第二のデータファイル52に格納する。以下、同様にして、第三のノード5に属するサーバ装置10は、第二のデータファイル52に格納されたデータを用いて第三のプロセスに対応する業務処理を実行し、その業務処理の出力データをストレージ50の第三のデータファイル52に格納する。
図2を参照して、第1実施形態におけるサーバ装置10の機能構成について説明する。なお、図2に示すサーバ装置10の機能構成は、図1に示す各サーバ装置10において共通である。
ここで、サーバ装置10は、物理的には、例えば、CPU(Central Processing Unit)と、記憶装置と、入出力インターフェースとを含んで構成される。記憶装置には、例えば、CPUで処理されるプログラムやデータを記憶するROM(Read Only Memory)やHDD、主として制御処理のための各種作業領域として使用されるRAM(Random Access Memory)等が含まれる。これらの要素は、互いにバスを介して接続されている。CPUが、ROMに記憶されたプログラムを実行し、入出力インターフェースを介して受信されたメッセージや、RAMに展開されたデータを処理することで、後述するサーバ装置10の各部の機能を実現することができる。
図2に示すように、サーバ装置10は、機能的には、例えば、制御スレッド部11と、AP(Application Program)スレッド部12とを、有する。
制御スレッド部11は、要求送信部111と、応答受信部112と、暫定ファイル格納部113と、正規ファイル格納部114と、インメモリDBコミット部115と、を有する。
要求送信部111は、全てのAPスレッド部12に対して業務処理を開始するように要求する処理開始要求を送信する。要求送信部111は、全てのAPスレッド部12に対してディスク型DB30をコミットするように要求するコミット要求を送信する。応答受信部112は、APスレッド部12から送信されるコミット完了通知(後述)を受信する。
暫定ファイル格納部113は、後述するAPスレッド部12のバッファ格納部124によってデータバッファ15に格納された出力データを、他のプロセスから参照不可能なディレクトリにあるデータファイル(以下、「暫定ファイル」という。)52に格納する。
暫定ファイル格納部113は、制御ファイル51の処理進行状況を更新(例えばインクリメント)する。図3を参照して、制御ファイル51のデータ構成について説明する。制御ファイル51は、プロセス単位で業務処理の進行状況を管理するためのテーブルである。図3は、制御ファイル51のデータ構成を例示する図である。
図3に示すように、制御ファイル51は、データ項目として、例えば、処理進行状況項目を有する。処理進行状況項目は、一つの業務処理が全てのAPスレッド部12で終了するごとにインクリメントされるカウント情報を格納する。一つの業務処理は、処理開始要求を受信することで開始し、処理終了通知を送信することで終了する。
図2に示す正規ファイル格納部114は、APスレッド部12に送信した全てのコミット要求に対するコミット完了通知(後述)を受信した場合に、暫定ファイル52のディレクトリを、他のプロセスから参照可能なディレクトリに変更する。これにより、APスレッド部12からの出力データを、他のプロセスから参照可能なディレクトリにあるデータファイル(以下、「正規ファイル」という。)52に格納することができる。なお、正規ファイルにデータを格納する方法は、上述したディレクトリを変更する方法には限定されない。例えば、暫定ファイルと正規ファイルとを予め設けておき、暫定ファイルから正規ファイルにデータに格納する方法を採用することもできる。
インメモリDBコミット部115は、APスレッド部12からの出力データが正規ファイル52に格納された場合に、インメモリDB20をコミットする。
APスレッド部12は、要求受信部121と、応答送信部122と、AP実行部123と、バッファ格納部124と、ディスク型DBコミット部125と、を有する。
要求受信部121は、制御スレッド部11から送信される処理開始要求およびコミット要求を受信する。
AP実行部123は、インメモリDB20のデータテーブル21およびディスク型DB30のデータテーブル32を参照/更新しながら業務処理を行うアプリケーションプログラム(以下、「AP」という。)を実行する。インメモリDB20のデータテーブル21およびディスク型DB30のデータテーブル32は、同じデータ項目を設けて設計してもよいし、それぞれ異なるデータ項目を設けて設計してもよい。異なるデータ項目を設ける場合には、例えば、以下のようにデータ項目を設けることが好ましい。インメモリDB20のデータテーブル21は、業務処理に用いるデータのデータ項目を設ける。ディスク型DB30のデータテーブル32は、他のシステムとの連携に必要なデータのデータ項目を設ける。
バッファ格納部124は、業務処理の出力データを、APごとに区別してデータバッファ15に格納する。図4および図5を参照して、データバッファ15のデータ構成について説明する。データバッファ15には、バッファ管理テーブルおよびバッファテーブルが設けられている。バッファ管理テーブルは、データバッファ15に設けられるバッファ領域を管理するためのテーブルである。バッファテーブルは、バッファ領域に格納されるデータを管理するためのテーブルである。図4は、バッファ管理テーブルのデータ構成を例示する図である。図5は、バッファテーブルのデータ構成を例示する図である。
図4に示すように、バッファ管理テーブルは、データ項目として、例えば、バッファID項目、バッファサイズ項目、更新フラグ項目および使用フラグ項目を有する。バッファID項目は、バッファ領域を一意に特定するためのIDを格納する。バッファサイズ項目は、バッファ領域の大きさを格納する。更新フラグ項目および使用フラグ項目は、フラグ情報として、例えばON/OFFを格納する。
図5に示すように、バッファテーブルは、データ項目として、例えば、バッファID項目、ブロックID項目、AP識別子項目、有効フラグ項目およびデータ領域項目を有する。バッファID項目は、バッファ領域を一意に特定するためのIDを格納する。ブロックID項目は、バッファ領域をブロック単位に分割した分割ブロックを特定するためのIDを格納する。AP識別子項目は、分割ブロックにデータを格納したAPを一意に特定するための情報を格納する。有効フラグ項目は、フラグ情報として、例えばON/OFFを格納する。データ領域項目は、APに対応する業務処理の出力データを格納する。
図5に示す有効フラグ項目は、例えば、以下のように利用することができる。制御スレッド部11が、全てのAPスレッド部12から処理完了通知を受信した場合に、各APスレッド部12からの出力データを格納したバッファレコードの有効フラグをONにする。暫定ファイル格納部113は、有効フラグがONのバッファレコードのデータ領域に格納されているデータを暫定ファイル52に格納する。これにより、暫定ファイル格納部113が、各APスレッド部12のバッファ格納部124によってデータバッファ15に格納された出力データを暫定ファイル52に格納することができる。また、正規ファイル格納部114は、バッファレコードの各有効フラグをOFFにしてから、暫定ファイル52を正規ファイル52に変更して出力データを確定させる。これにより、次回の業務処理を実行する前に、有効フラグをリセットすることができる。
図2に示すディスク型DBコミット部125は、コミット要求を受信した場合に、APごとに区別してディスク型DB30の制御テーブル31に格納されている処理進行状況を更新(例えばインクリメント)し、ディスク型DB30をコミットする。図6を参照して、制御テーブル31のデータ構成について説明する。制御テーブル31は、AP単位で業務処理の進行状況を管理するためのテーブルである。図6は、制御テーブル31のデータ構成を例示する図である。
図6に示すように、制御テーブル31は、データ項目として、例えば、AP識別子項目および処理進行状況項目を有する。AP識別子項目は、業務処理を実行するAPを一意に特定するための情報を格納する。処理進行状況項目は、一つの業務処理がAPスレッド部12で終了するごとにインクリメントされるカウント情報を格納する。
図6に示す制御テーブル31の各処理進行状況と図3に示す制御ファイル51の処理進行状況は、業務処理が行われていないときに同時にリセットする。これにより、業務処理中に障害等が発生した場合に、それぞれの処理進行状況を確認することで、APごとの業務処理の進捗状況を把握することが可能となる。
図2に示す応答送信部122は、AP実行部123によって実行される業務処理が終了した場合に、業務処理が終了したことを示す処理終了通知を発行し、制御スレッド部11に送信する。応答送信部122は、ディスク型DBコミット部125によってディスク型DB30のコミットが完了した場合に、コミットが完了したことを示すコミット完了通知を発行し、制御スレッド部11に送信する。
次に、図7を参照して、第1実施形態におけるデータ処理システム1の動作について説明する。図7は、第1実施形態におけるデータ処理の処理手順を例示するフローチャートである。
最初に、制御スレッド部11は、入力装置40から入力データ41を読み込む(ステップS101)。
続いて、制御スレッド部11の要求送信部111は、全てのAPスレッド部12に対して業務処理を開始するように要求する処理開始要求を送信する(ステップS102)。これにより、各APスレッド部12の要求受信部121は、制御スレッド部11から送信された処理開始要求をそれぞれ受信する。
続いて、各APスレッド部12のAP実行部123は、インメモリDB20のデータテーブル21およびディスク型DB30のデータテーブル32を参照/更新しながら業務処理をそれぞれ実行する(ステップS103)。
続いて、各APスレッド部12のバッファ格納部124は、業務処理の出力データをそれぞれデータバッファ15に格納する(ステップS104)。
続いて、業務処理が終了したAPスレッド部12の応答送信部122は、業務処理が終了したことを示す処理終了通知を発行し、制御スレッド部11に送信する(ステップS105)。これにより、制御スレッド部11の応答受信部112は、各APスレッド部12から送信された処理終了通知を受信する。
続いて、制御スレッド部11は、業務処理を実行中のAPスレッド部12が存在するか否かを判定し(ステップS106)、この判定がNOである場合(ステップS106;NO)に、データバッファ15の各有効フラグをONにする(ステップS107)。
続いて、制御スレッド部11の暫定ファイル格納部113は、上記ステップS104でデータバッファ15に格納された出力データのうち、有効フラグがONのバッファレコードのデータ領域に格納されている出力データを、暫定ファイル52に格納する(ステップS108)。
続いて、制御スレッド部11の暫定ファイル格納部113は、制御ファイル51の処理進行状況を更新する(ステップS109)。
続いて、制御スレッド部11の要求送信部111は、全てのAPスレッド部12に対してディスク型DB30をコミットするように要求するコミット要求を送信する(ステップS110)。これにより、各APスレッド部12の要求受信部121は、制御スレッド部11から送信されたコミット要求をそれぞれ受信する。
続いて、各APスレッド部12のディスク型DBコミット部125は、ディスク型DB30の制御テーブル31に格納されている処理進行状況を更新し、ディスク型DB30をコミットする(ステップS111)。
続いて、各APスレッド部12の応答送信部122は、コミットが完了したことを示すコミット完了通知を発行し、制御スレッド部11に送信する(ステップS112)。これにより、制御スレッド部11の応答受信部112は、各APスレッド部12から送信されたコミット完了通知を受信する。
続いて、制御スレッド部11の正規ファイル格納部114は、データバッファ15の各有効フラグをOFFにする(ステップS113)。
続いて、制御スレッド部11の正規ファイル格納部114は、暫定ファイル52のディレクトリを他のプロセスから参照可能なディレクトリに変更することで、暫定ファイル52を正規ファイル52に変更し、出力データを確定する(ステップS114)。
続いて、制御スレッド部11は、後続のプロセスに出力データ情報を通知する(ステップS115)。出力データ情報には、例えば、正規ファイル52のディレクトリ情報等が含まれる。
続いて、制御スレッド部11のインメモリDBコミット部115は、インメモリDB20をコミットする(ステップS116)。これにより、一つのプロセスで実行される業務処理の出力データが確定する。
上述してきたように、第1実施形態におけるデータ処理システム1によれば、各APスレッド部12で業務処理を実行する際に、インメモリDB20を用いて処理することができるため、業務処理の高速化を図ることができる。また、各APスレッド部12で業務処理を実行する際に、ディスク型DB30を用いて処理することができるため、他のシステムとの連携を容易に実現することができる。
また、第1実施形態におけるデータ処理システム1によれば、APスレッド部12ごとに処理進行状況を管理し、この処理進行状況を格納する制御テーブル31と業務処理データを格納するディスク型DB30のデータテーブル32とを同時にコミットすることができ、さらに、このコミット完了時に他のプロセスに引き渡す正規ファイル52を確定し、業務処理データを格納するインメモリDB20のデータテーブル21をコミットすることができる。したがって、一つのプロセスに含まれる、ディスク型DB30のデータと、正規ファイル52のデータと、インメモリDB20のデータとの間の一貫性の有無を、業務処理単位で確実に把握することが可能となる。これにより、障害時のリカバリを簡易に行うことが可能となる。
[第2実施形態]
本発明の第2実施形態について説明する。第2実施形態におけるデータ処理システムは、例えば、業務処理を実行する一部のAPスレッド部12間でデッドロックが発生し、一部のAPスレッド部12から処理完了通知が送信されない事態に対処するための機能を有する点で、上述した第1実施形態におけるデータ処理システムと異なる。
図8は、第2実施形態におけるデータ処理システムのサーバ装置10の機能構成を例示する図である。第2実施形態におけるサーバ装置10は、制御スレッド部11にタイマ部116をさらに有する点で第1実施形態におけるサーバ装置10の機能構成と異なる。それ以外の構成は、第1実施形態における各構成と同様であるため、各構成要素には同一の符合を付しその説明は省略するとともに、以下においては、主に第1実施形態との相違点について説明する。
制御スレッド部11のタイマ部116は、APスレッド部12から送信されてくる処理終了通知を待機する時間(以下、「待機時間」という。)を計測する。待機時間は、任意に設定することができる。本実施形態における待機時間は、例えば、デッドロック等の障害が発生して一部の処理終了通知が送信されない、または大幅に遅延している、と見込める時間に設定する。
第2実施形態における制御スレッド部11の要求送信部111は、待機時間中に処理終了通知を発行したAPスレッド部12にのみ、コミット要求を送信する。
第2実施形態におけるAPスレッド部12のディスク型DBコミット部125は、ディスク型DB30の制御テーブル31に格納されている処理進行状況のうち、待機時間中に処理終了通知を発行したAPスレッド部12に対応する処理進行状況のみを更新する。
次に、図9および図10を参照して、第2実施形態におけるデータ処理システム1の動作について説明する。図9および図10は、第2実施形態におけるデータ処理の処理手順を例示するフローチャートである。
最初に、制御スレッド部11は、入力装置40から入力データ41を読み込む(ステップS201)。
続いて、制御スレッド部11の要求送信部111は、全てのAPスレッド部12に対して業務処理を開始するように要求する処理開始要求を送信する(ステップS202)。これにより、各APスレッド部12の要求受信部121は、制御スレッド部11から送信された処理開始要求をそれぞれ受信する。
続いて、制御スレッド部11のタイマ部116は、待機時間の計測を開始する(ステップS203)。
続いて、各APスレッド部12のAP実行部123は、インメモリDB20のデータテーブル21およびディスク型DB30のデータテーブル32を参照/更新しながら業務処理をそれぞれ実行する(ステップS204)。
続いて、各APスレッド部12のバッファ格納部124は、業務処理の出力データをそれぞれデータバッファ15に格納する(ステップS205)。
続いて、業務処理が終了したAPスレッド部12の応答送信部122は、業務処理が終了したことを示す処理終了通知を発行し、制御スレッド部11に送信する(ステップS206)。これにより、制御スレッド部11の応答受信部112は、一または複数のAPスレッド部12から送信された処理終了通知を受信する。
続いて、制御スレッド部11のタイマ部116は、待機時間がタイムアップしたか否かを判定し(ステップS207)、この判定がYESである場合(ステップS207;YES)に、今回の待機時間中に処理終了通知を発行したAPスレッド部12に対応するデータバッファ15の各有効フラグをONにする(ステップS208)。なお、上記ステップS207の判定で、待機時間がタイムアップする前に、全てのAPスレッド部12から処理終了通知を受信した場合には、待機時間の計測をキャンセルし、上記ステップS208に処理を移行することとしてもよい。
続いて、制御スレッド部11の暫定ファイル格納部113は、上記ステップS205でデータバッファ15に格納された出力データのうち、有効フラグがONのバッファレコードのデータ領域に格納されている出力データを、暫定ファイル52に格納する(ステップS209)。
続いて、制御スレッド部11の暫定ファイル格納部113は、初回の待機時間経過後である場合にのみ、制御ファイル51の処理進行状況を更新する(ステップS210)。
続いて、制御スレッド部11の要求送信部111は、今回の待機時間中に処理終了通知を発行したAPスレッド部12に対してディスク型DB30をコミットするように要求するコミット要求を送信する(ステップS211)。これにより、一または複数のAPスレッド部12の要求受信部121は、制御スレッド部11から送信されたコミット要求をそれぞれ受信する。
続いて、各APスレッド部12のディスク型DBコミット部125は、ディスク型DB30の制御テーブル31に格納されている処理進行状況のうち、今回の待機時間中に処理終了通知を発行したAPスレッド部12に対応する処理進行状況を更新し、ディスク型DB30をコミットする(ステップS212)。
続いて、各APスレッド部12の応答送信部122は、コミットが完了したことを示すコミット完了通知を発行し、制御スレッド部11に送信する(ステップS213)。これにより、制御スレッド部11の応答受信部112は、一または複数のAPスレッド部12から送信されたコミット完了通知を受信する。
続いて、制御スレッド部11の正規ファイル格納部114は、データバッファ15の各有効フラグをOFFにする(ステップS214)。
続いて、制御スレッド部11は、業務処理を実行中のAPスレッド部12が存在するか否かを判定し(ステップS215)、この判定がYESである場合(ステップS215;YES)には、上述したステップS203に処理を移行する。
一方、上記ステップS215の判定で業務処理を実行中のAPスレッド部12が存在しないと判定された場合(ステップS215;NO)に、制御スレッド部11の正規ファイル格納部114は、暫定ファイル52のディレクトリを他のプロセスから参照可能なディレクトリに変更することで、暫定ファイル52を正規ファイル52に変更し、出力データを確定する(ステップS216)。
なお、APスレッド部12が、例えばデッドロック等によってフリーズしたと判定できる場合には、当該APスレッド部12の業務処理を停止状態に設定することができる。この場合、上記ステップS215の判定でNOと判定されるため、処理を上記ステップS216以降に移行することができる。これにより、一部のAPスレッド部12が停止状態に陥ったとしても、正常に業務処理が完了したデータのみを後続のプロセスに提供することが可能となる。
続いて、制御スレッド部11は、後続のプロセスに出力データ情報を通知する(ステップS217)。
続いて、制御スレッド部11のインメモリDBコミット部115は、インメモリDB20をコミットする(ステップS218)。これにより、一つのプロセスで実行される業務処理の出力データが確定する。
上述してきたように、第2実施形態におけるデータ処理システム1によれば、上述した第1実施形態におけるデータ処理システム1の効果に加え、以下の効果を有する。デッドロック等の障害が発生して一部のAPスレッド部12が停止状態に陥った場合であっても、正常に業務処理を終了したAPスレッド部12から出力されたデータについては、正規ファイル52に格納することができる。これにより、障害が発生した場合に、リカバリを行う前に、一部の正常なデータを後続のプロセスに提供することが可能となる。
[変形例]
なお、上述した各実施形態は、単なる例示に過ぎず、各実施形態に明示していない種々の変形や技術の適用を排除するものではない。すなわち、本発明は、その趣旨を逸脱しない範囲で様々な形態に変形して実施することができる。
例えば、上述した各実施形態におけるサーバ装置10が、各APスレッド部12の状態を管理する状態管理テーブルと、この状態管理テーブルの内容に応じてリカバリを行うリカバリ部と、をさらに備えることとしてもよい。状態管理テーブルは、各APスレッド部12の状態を、例えば、処理待機中、処理実行中、処理正常完了、処理異常完了、コミット中、コミット成功、コミット失敗、ロールバック中、ロールバック失敗、ロールバック成功等の各種の状態で管理する。リカバリ部は、各APスレッド部の状態に応じて、ロールバックやコミット等を行うリカバリ処理を実行する。リカバリ処理としては、例えば、業務処理の途中で障害が発生したと判定できる場合にはロールバックを行い、業務処理が終了してから障害が発生したと判定できる場合にはコミットする等がある。なお、リカバリ部によるリカバリ処理は、従来の種々のリカバリ処理と同様の方法を採用することができる。
最後に、上記の各実施形態の一部または全部は、以下の付記のようにも記載され得るが、本発明を以下に限定するものではない。
(付記1) データを主記憶装置に格納する第1のデータベースおよびデータを補助記憶装置に格納する第2のデータベースを参照/更新しながら一つのプロセス内で複数のアプリケーションを実行する実行部と、前記実行部によって実行される前記アプリケーションによる出力データを、前記アプリケーションごとに区別してバッファに格納するバッファ格納部と、前記アプリケーションによる処理が終了するごとに処理終了通知を発行する発行部と、前記バッファに格納された前記出力データのうち、前記処理終了通知が発行された前記アプリケーションに対応する前記出力データを、他のプロセスから参照不可能な第1のファイルに格納する第1の格納部と、前記処理終了通知が発行された前記アプリケーションに対して前記第2のデータベースをコミットするように要求するコミット要求部と、前記コミットが要求された場合に、前記アプリケーションごとに区別して前記第2のデータベースに格納されている処理進行状況を更新し、前記第2のデータベースをコミットする第1のコミット部と、前記第1のコミット部による前記コミットが全ての前記アプリケーションで完了した場合に、前記第1のファイルに格納されている前記出力データを、他のプロセスから参照可能な第2のファイルに格納する第2の格納部と、前記第1のファイルの前記出力データが前記第2のファイルに格納された場合に、前記第1のデータベースをコミットする第2のコミット部と、を備えることを特徴とするデータ処理システム。
(付記2) 前記アプリケーションの処理開始要求が前記アプリケーションに付与されてから所定時間に到達するまでを計測するタイマ部をさらに備え、前記第1の格納部は、前記バッファに格納された前記出力データのうち、前記タイマ部により前記計測が行われている間に前記処理終了通知が発行された前記アプリケーションに対応する前記出力データを、前記第1のファイルに格納することを特徴とする付記1記載のデータ処理システム。
(付記3) 前記タイマ部は、前記コミットが要求された全ての前記アプリケーションにおいて前記コミットが完了した後に、処理中の前記アプリケーションが存在する場合に、前記所定時間の計測を再度行い、前記第1の格納部は、前記バッファに格納された前記出力データのうち、前記タイマ部により再度の前記計測が行われている間に前記処理終了通知が発行された前記アプリケーションに対応する前記出力データを、前記第1のファイルに格納することを特徴とする付記2記載のデータ処理システム。
(付記4) データを主記憶装置に格納する第1のデータベースおよびデータを補助記憶装置に格納する第2のデータベースを参照/更新しながら一つのプロセス内で複数のアプリケーションを実行する実行ステップと、前記実行ステップにおいて実行される前記アプリケーションによる出力データを、前記アプリケーションごとに区別してバッファに格納するバッファ格納ステップと、前記アプリケーションによる処理が終了するごとに処理終了通知を発行する発行ステップと、前記バッファに格納された前記出力データのうち、前記処理終了通知が発行された前記アプリケーションに対応する前記出力データを、他のプロセスから参照不可能な第1のファイルに格納する第1の格納ステップと、前記処理終了通知が発行された前記アプリケーションに対して前記第2のデータベースをコミットするように要求するコミット要求ステップと、前記コミットが要求された場合に、前記アプリケーションごとに区別して前記第2のデータベースに格納されている処理進行状況を更新し、前記第2のデータベースをコミットする第1のコミットステップと、前記第1のコミットステップにおける前記コミットが全ての前記アプリケーションで完了した場合に、前記第1のファイルに格納されている前記出力データを、他のプロセスから参照可能な第2のファイルに格納する第2の格納ステップと、前記第1のファイルの前記出力データが前記第2のファイルに格納された場合に、前記第1のデータベースをコミットする第2のコミットステップと、を含むことを特徴とするデータ処理方法。
(付記5) 付記4に記載の各ステップをコンピュータに実行させるためのデータ処理プログラム。
1…データ処理システム、5…ノード、10…サーバ装置、11…制御スレッド部、12…APスレッド部、15…データバッファ、20…インメモリDB、21…データテーブル、30…ディスク型DB、31…制御テーブル、32…データテーブル、40…入力装置、41…入力データ、50…ストレージ、51…制御ファイル、52…データファイル、111…要求送信部、112…応答受信部、113…暫定ファイル格納部、114…正規ファイル格納部、115…インメモリDBコミット部、116…タイマ部、121…要求受信部、122…応答送信部、123…AP実行部、124…バッファ格納部、125…ディスク型DBコミット部。

Claims (5)

  1. データを主記憶装置に格納する第1のデータベースおよびデータを補助記憶装置に格納する第2のデータベースを参照/更新しながら一つのプロセス内で複数のアプリケーションを実行する実行部と、
    前記実行部によって実行される前記アプリケーションによる出力データを、前記アプリケーションごとに区別してバッファに格納するバッファ格納部と、
    前記アプリケーションによる処理が終了するごとに処理終了通知を発行する発行部と、
    前記バッファに格納された前記出力データのうち、前記処理終了通知が発行された前記アプリケーションに対応する前記出力データを、他のプロセスから参照不可能な第1のファイルに格納する第1の格納部と、
    前記処理終了通知が発行された前記アプリケーションに対して前記第2のデータベースをコミットするように要求するコミット要求部と、
    前記コミットが要求された場合に、前記アプリケーションごとに区別して前記第2のデータベースに格納されている処理進行状況を更新し、前記第2のデータベースをコミットする第1のコミット部と、
    前記第1のコミット部による前記コミットが全ての前記アプリケーションで完了した場合に、前記第1のファイルに格納されている前記出力データを、他のプロセスから参照可能な第2のファイルに格納する第2の格納部と、
    前記第1のファイルの前記出力データが前記第2のファイルに格納された場合に、前記第1のデータベースをコミットする第2のコミット部と、
    を備えることを特徴とするデータ処理システム。
  2. 前記アプリケーションの処理開始要求が前記アプリケーションに付与されてから所定時間に到達するまでを計測するタイマ部をさらに備え、
    前記第1の格納部は、前記バッファに格納された前記出力データのうち、前記タイマ部により前記計測が行われている間に前記処理終了通知が発行された前記アプリケーションに対応する前記出力データを、前記第1のファイルに格納する
    ことを特徴とする請求項1記載のデータ処理システム。
  3. 前記タイマ部は、前記コミットが要求された全ての前記アプリケーションにおいて前記コミットが完了した後に、処理中の前記アプリケーションが存在する場合に、前記所定時間の計測を再度行い、
    前記第1の格納部は、前記バッファに格納された前記出力データのうち、前記タイマ部により再度の前記計測が行われている間に前記処理終了通知が発行された前記アプリケーションに対応する前記出力データを、前記第1のファイルに格納する
    ことを特徴とする請求項2記載のデータ処理システム。
  4. データを主記憶装置に格納する第1のデータベースおよびデータを補助記憶装置に格納する第2のデータベースを参照/更新しながら一つのプロセス内で複数のアプリケーションを実行する実行ステップと、
    前記実行ステップにおいて実行される前記アプリケーションによる出力データを、前記アプリケーションごとに区別してバッファに格納するバッファ格納ステップと、
    前記アプリケーションによる処理が終了するごとに処理終了通知を発行する発行ステップと、
    前記バッファに格納された前記出力データのうち、前記処理終了通知が発行された前記アプリケーションに対応する前記出力データを、他のプロセスから参照不可能な第1のファイルに格納する第1の格納ステップと、
    前記処理終了通知が発行された前記アプリケーションに対して前記第2のデータベースをコミットするように要求するコミット要求ステップと、
    前記コミットが要求された場合に、前記アプリケーションごとに区別して前記第2のデータベースに格納されている処理進行状況を更新し、前記第2のデータベースをコミットする第1のコミットステップと、
    前記第1のコミットステップにおける前記コミットが全ての前記アプリケーションで完了した場合に、前記第1のファイルに格納されている前記出力データを、他のプロセスから参照可能な第2のファイルに格納する第2の格納ステップと、
    前記第1のファイルの前記出力データが前記第2のファイルに格納された場合に、前記第1のデータベースをコミットする第2のコミットステップと、
    を含むことを特徴とするデータ処理方法。
  5. 請求項4に記載の各ステップをコンピュータに実行させるためのデータ処理プログラム。
JP2010041706A 2010-02-26 2010-02-26 データ処理システム、データ処理方法およびデータ処理プログラム Expired - Fee Related JP5459613B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010041706A JP5459613B2 (ja) 2010-02-26 2010-02-26 データ処理システム、データ処理方法およびデータ処理プログラム
US13/022,965 US8615769B2 (en) 2010-02-26 2011-02-08 Data processing system, data processing method, and data processing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010041706A JP5459613B2 (ja) 2010-02-26 2010-02-26 データ処理システム、データ処理方法およびデータ処理プログラム

Publications (2)

Publication Number Publication Date
JP2011180649A true JP2011180649A (ja) 2011-09-15
JP5459613B2 JP5459613B2 (ja) 2014-04-02

Family

ID=44506009

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010041706A Expired - Fee Related JP5459613B2 (ja) 2010-02-26 2010-02-26 データ処理システム、データ処理方法およびデータ処理プログラム

Country Status (2)

Country Link
US (1) US8615769B2 (ja)
JP (1) JP5459613B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017027216A (ja) * 2015-07-17 2017-02-02 キヤノン株式会社 システム、及びその方法
KR20180022075A (ko) * 2016-08-23 2018-03-06 전자부품연구원 실시간 데이터 처리를 위한 듀얼 인메모리 기반 데이터 저장 및 처리 시스템

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10225352B2 (en) * 2013-12-20 2019-03-05 Sony Corporation Work sessions

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0398136A (ja) * 1989-09-11 1991-04-23 Nec Corp ホスト間ファイル引継ぎの自動化方式
JPH08212119A (ja) * 1995-02-02 1996-08-20 Hitachi Ltd トランザクション処理システム及びトランザクションのコミット制御方法
JPH09231243A (ja) * 1995-09-30 1997-09-05 Alcatel Nv データ処理装置の連結方法、交換局の制御方法、データ処理装置、制御装置、および交換局
JP2003241981A (ja) * 2003-02-05 2003-08-29 Hitachi Ltd 計算機間のデータ引き継ぎ方法
WO2008105098A1 (ja) * 2007-02-28 2008-09-04 Fujitsu Limited メモリミラー化制御方法
JP2009026029A (ja) * 2007-07-19 2009-02-05 Nippon Telegr & Teleph Corp <Ntt> トランザクション制御装置、トランザクション制御方法、トランザクション制御プログラムおよびそのプログラムを記憶した記憶媒体

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6393537B1 (en) * 1998-01-06 2002-05-21 International Business Machines Corporation Host storage management control of outboard data movement
US6457021B1 (en) * 1998-08-18 2002-09-24 Microsoft Corporation In-memory database system
US7546364B2 (en) * 2002-05-16 2009-06-09 Emc Corporation Replication of remote copy data for internet protocol (IP) transmission
US7065623B2 (en) * 2003-11-20 2006-06-20 International Business Machines Corporation Bandwidth utilization in a PPRC system
JP2005284749A (ja) * 2004-03-30 2005-10-13 Kyushu Univ 並列処理コンピュータ
JP4140014B2 (ja) 2005-03-24 2008-08-27 日本電気株式会社 クライアントサーバシステムおよびクライアントサーバシステムのデータ処理方法
JP4997858B2 (ja) * 2006-07-20 2012-08-08 富士通株式会社 データ記録装置およびデータ記録プログラム
US8332858B2 (en) * 2006-12-28 2012-12-11 International Business Machines Corporation Lock suitability analysis during execution of computer program under test
JP4776571B2 (ja) * 2007-03-16 2011-09-21 富士通株式会社 実行制御プログラム,実行制御方法及び実行制御装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0398136A (ja) * 1989-09-11 1991-04-23 Nec Corp ホスト間ファイル引継ぎの自動化方式
JPH08212119A (ja) * 1995-02-02 1996-08-20 Hitachi Ltd トランザクション処理システム及びトランザクションのコミット制御方法
JPH09231243A (ja) * 1995-09-30 1997-09-05 Alcatel Nv データ処理装置の連結方法、交換局の制御方法、データ処理装置、制御装置、および交換局
JP2003241981A (ja) * 2003-02-05 2003-08-29 Hitachi Ltd 計算機間のデータ引き継ぎ方法
WO2008105098A1 (ja) * 2007-02-28 2008-09-04 Fujitsu Limited メモリミラー化制御方法
JP2009026029A (ja) * 2007-07-19 2009-02-05 Nippon Telegr & Teleph Corp <Ntt> トランザクション制御装置、トランザクション制御方法、トランザクション制御プログラムおよびそのプログラムを記憶した記憶媒体

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017027216A (ja) * 2015-07-17 2017-02-02 キヤノン株式会社 システム、及びその方法
KR20180022075A (ko) * 2016-08-23 2018-03-06 전자부품연구원 실시간 데이터 처리를 위한 듀얼 인메모리 기반 데이터 저장 및 처리 시스템

Also Published As

Publication number Publication date
US20110214130A1 (en) 2011-09-01
JP5459613B2 (ja) 2014-04-02
US8615769B2 (en) 2013-12-24

Similar Documents

Publication Publication Date Title
US11995066B2 (en) Multi-database log with multi-item transaction support
CN109683826B (zh) 用于分布式存储系统的扩容方法和装置
US9619544B2 (en) Distributed state management using dynamic replication graphs
US10296606B2 (en) Stateless datastore—independent transactions
AU2019200967B2 (en) Multi-database log with multi-item transaction support
US10282228B2 (en) Log-based transaction constraint management
US7702741B2 (en) Configuring or reconfiguring a multi-master information sharing environment
US9529882B2 (en) Coordinated suspension of replication groups
US10303795B2 (en) Read descriptors at heterogeneous storage systems
US20150378774A1 (en) Log-based concurrency control using signatures
JP5686034B2 (ja) クラスタシステム、同期制御方法、サーバ装置および同期制御プログラム
US10726042B2 (en) Replication control using eventually consistent meta-data
US20170161296A1 (en) Automatic Detection, Retry, and Resolution of Errors in Data Synchronization
JP5459613B2 (ja) データ処理システム、データ処理方法およびデータ処理プログラム
US8301750B2 (en) Apparatus, system, and method for facilitating communication between an enterprise information system and a client
JP5331050B2 (ja) データ同期システム、データ同期方法、情報処理装置、情報処理方法、およびプログラム
US9418097B1 (en) Listener event consistency points
JP5812512B2 (ja) データベースシステム、マスタースレーブ管理方法およびマスタースレーブ管理プログラム
JP2010224672A (ja) データ処理方法、システム、およびプログラム
US8838910B2 (en) Multi-part aggregated variable in structured external storage
CN115309528A (zh) 一种一主多从的数据源调度、管理装置
JP2011039595A (ja) ジョブ実行装置、ジョブ実行方法およびジョブ実行プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130111

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131212

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140102

R150 Certificate of patent or registration of utility model

Ref document number: 5459613

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees