(57)【要約】      （修正有）【課題】通信によってデータを複数の処理装置で順に処理する分散処理システムにおいて、処理装置に障害が発生した際、処理装置毎に高速に再処理（トランザクションリカバリ）を実行できる。【解決手段】ネットワークを介する通信によってデータ１００を複数の処理装置２で順に処理を行うシステムにおいて、処理装置２間のデータ１００受け渡しとデータ１００の処理状態管理に不揮発記憶装置１を用いることで処理装置２の故障等に伴う再処理（トランザクションリカバリ）を実行する。【選択図】図２
2006285576.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークと、
前記ネットワークに接続される処理装置と、
前記ネットワークを介して前記処理装置に接続される記憶装置とを備え、
前記処理装置は、入力される第１の入力データを処理し、前記処理結果として第１の出力データを前記記憶装置に格納し、他の処理装置に対し前記第１の出力データの処理依頼を発行し、
前記他の処理装置は、前記処理依頼に応答して前記記憶装置から前記第１の出力データを第２の入力データとして抽出して処理し、処理結果を第２の出力データとして出力し、
前記処理装置は、前記第１の入力データの処理状況を示す管理情報を作成して保持し、前記管理情報を前記記憶装置に格納する
分散処理システム。
【請求項２】
請求項１に記載の分散処理システムにおいて、
前記記憶装置は、前記第１の出力データが格納される記憶領域である第１の出力コンテナを有し、
前記処理装置は、入力される第１の入力データを格納するための記憶領域である入力コンテナを有し、前記第１の入力コンテナ内の前記第１の入力データを処理し、前記処理結果を第１の出力データとして前記記憶装置の前記第１の出力コンテナに格納し、前記他の処理装置に対し前記第１の出力コンテナを読み取り可能にして、前記第１の出力コンテナ内に格納された前記第１の出力データの処理依頼を前記他の処理装置に発行し、
前記他の処理装置は、前記処理依頼に応答して前記第１の出力コンテナから前記第１の出力データを第２の入力データとして、第２の入力コンテナに格納して、前記第２の入力データを処理する
分散処理システム。
【請求項３】
請求項２に記載の分散処理システムにおいて、
前記処理装置は、一定量の入力データを前記記憶装置から取得して、複数の入力コンテナに格納し、前記複数の入力コンテナを入力コンテナ群として関連付け、前記入力コンテナ群に関連付けられた前記複数の入力コンテナ内の入力データを処理し、処理結果である出力データを前記記憶装置の複数の出力コンテナに格納し、前記複数の出力コンテナを前記入力コンテナ群に関連付け、前記入力データの処理状況である管理情報を前記入力コンテナ群に対応付けて保持し、前記入力コンテナ群に対応付けて前記管理情報を前記記憶装置に格納する
分散処理システム。
【請求項４】
請求項３に記載の分散処理システムにおいて、
前記処理装置は、入力された入力データを示す識別子を前記管理情報に含めて保持し、前記管理情報を前記記憶装置に格納する
分散処理システム。
【請求項５】
請求項３又は４に記載の分散処理システムにおいて、
前記処理装置は、前記他の処理装置に対して読み取り可能にした出力コンテナを示す識別子を前記管理情報に含めて保持し、前記管理情報を前記記憶装置に格納する
分散処理システム。
【請求項６】
請求項３から５いずれか１項に記載の分散処理システムにおいて、
前記処理装置は、前記入力コンテナ群に対応する全ての出力データを、前記出力コンテナ群に対応する全ての出力コンテナに格納すると、前記管理情報に処理完了フラグを含めて保持し、前記管理情報を前記記憶装置に格納する
分散処理システム。
【請求項７】
請求項６に記載の分散処理システムにおいて、
処理装置は、障害からの復旧後、前記処理装置から見て出力側の記憶装置の管理情報を参照し、前記管理情報に前記処理完了フラグがない場合、前記管理情報に対応する前記入力コンテナ群に関連付けられた出力コンテナ群内の全ての出力データを前記記憶装置から削除し、前記入力コンテナ群に対応する全ての入力データを処理する
分散処理システム。
【請求項８】
請求項６に記載の分散処理システムにおいて、
処理装置は、障害からの復旧後、前記処理装置から見て出力側の記憶装置の管理情報を参照し、前記管理情報に前記処理完了フラグがある場合、前記管理情報に対応する入力コンテナ群に関連付けられた全ての入力データを削除し、前記記憶装置の管理情報を削除し、前記他の処理装置に前記入力コンテナ群に関連付けられた出力データの処理依頼を発行する
分散処理システム。
【請求項９】
請求項３から８いずれか１項に記載の分散処理システムにおいて、
前記記憶装置は、前記管理情報が格納されるＧｒｐ情報コンテナ（現）と、Ｇｒｐ情報コンテナ（履歴）を有し、前記入力コンテナ群に対応する全ての出力データが前記出力コンテナ群に対応する全ての出力コンテナに格納されると、前記Ｇｒｐ情報コンテナ（現）に格納された前記管理情報を、履歴情報としてＧｒｐ情報コンテナ（履歴）に格納し、前記Ｇｒｐ情報コンテナ（現）から前記管理情報を削除する
分散処理システム。
【請求項１０】
請求項９に記載の分散処理システムにおいて、
前記処理装置は、障害からの復旧後、前記処理装置から見て出力側の記憶装置のＧｒｐコンテナ（現）を検索し、前記管理情報がない場合、前記記憶装置のＧｒｐコンテナ（履歴）内の履歴情報を参照して、前記履歴情報に関連付けられた出力コンテナに格納されている出力データの処理依頼を前記他の処理装置に対し発行する
分散処理システム。
【請求項１１】
請求項１から１０いずれか１項に記載の分散処理システムにおいて、
前記処理装置に対し入力側の記憶装置に障害が発生した場合、前記処理装置は、正常な他の記憶装置から入力データを取得して処理を行い、前記記憶装置の復旧後、前記記憶装置から入力データを取得して処理を実行する
分散処理システム。
【請求項１２】
請求項６から１１に記載の分散システムにおいて、
前記処理装置に対し出力側の記憶装置に障害が発生し、前記記憶装置内の管理情報に処理完了フラグがない場合、前記処理装置は、入力データの処理を中断し、処理中であった入力コンテナ群に対応する全ての入力データの再処理を実行し、再処理結果である出力データを他の記憶装置の出力コンテナ群の出力コンテナに格納する
分散処理システム。
【請求項１３】
請求項６から１１に記載の分散システムにおいて、
前記処理装置に対し出力側の記憶装置に障害が発生し、前記記憶装置内の管理情報に処理完了フラグがある場合、
前記他の処理装置は、前記記憶装置の復旧後、前記処理装置の出力コンテナに格納された出力データを入力データとして取得して処理する
分散処理システム。
【請求項１４】
請求項３から１３いずれか１項に記載の分散処理システムにおいて、
前記ネットワークを介して前記処理装置に接続される退避装置を更に具備し、
前記処理装置は、前記入力コンテナ群に対応する全ての入力データを取得すると、前記管理情報を前記退避装置に格納し、
障害が発生した前記処理装置は、障害復旧後、前記退避装置から前記管理情報を取得する
分散処理システム。
【請求項１５】
処理装置が、前記処理装置に入力される第１の入力データを処理して第１の出力データを出力するステップと、
ネットワークを介して、前記処理装置に接続された記憶装置に、前記第１の出力データを格納するステップと、
前記処理装置が、前記第１の出力データの処理依頼を、ネットワークを介して前記処理装置に接続される他の処理装置に発行するステップと、
前記他の処理装置が、前記処理依頼に応答して前記記憶装置から前記第１の出力データを第２の入力データとして抽出するステップと、
前記他の処理装置が、前記第２の入力データを処理して第２の出力データを出力するステップと、
前記処理装置が、前記第１の入力データの処理状況を示す管理情報を作成して保持するステップと、
前記処理装置が、前記管理情報を前記記憶装置に格納するステップとを具備する
分散処理方法。
【請求項１６】
請求項１５に記載の分散処理方法において、
前記処理装置が、入力される第１の入力データを格納するための記憶領域である第１の入力コンテナ内の前記第１の入力データを処理すし、第１の出力データを出力するステップと、
前記第１の出力データを、前記記憶装置の有する前記第１の出力コンテナに格納するステップと、
前記他の処理装置に対し前記第１の出力コンテナを読み取り可能にして、
前記第１の出力コンテナ内に格納された前記第１の出力データの処理依頼を前記他の処理装置に発行するステップと、
前記処理依頼に応答して前記第１の出力コンテナから前記第１の出力データを第２の入力データとして、第２の入力コンテナに格納するステップと、
前記第２の入力データを処理するステップとを具備する
分散処理方法。
【請求項１７】
請求項１６に記載の分散処理方法において、
一定量の入力データを取得して、複数の入力コンテナに格納するステップと、
前記複数の入力コンテナを入力コンテナ群として関連付けるステップと、
前記入力コンテナ群に関連付けられた前記複数の入力コンテナ内の入力データを処理し、出力データを出力するステップと、
前記記憶装置の複数の出力コンテナに前記出力データを格納するステップと、
前記複数の出力コンテナを前記入力コンテナ群に関連付けるステップと、
前記入力データの処理状況である管理情報を前記入力コンテナ群に対応付けて保持するステップと、
前記入力コンテナ群に対応付けて前記管理情報を前記記憶装置に格納するステップとを具備する
分散処理方法。
【請求項１８】
請求項１７に記載の分散処理方法において、
前記入力コンテナ群に対応する全ての出力データを前記出力コンテナ群に対応する全ての出力コンテナに格納すると、前記管理情報に、処理完了フラグを加えるステップを更に具備する
分散処理方法。
【請求項１９】
請求項１８に記載の分散処理方法において、
前記処理装置が、障害から復旧するステップと、
前記処理装置に対して出力側の記憶装置の管理情報を参照し、前記処理完了フラグがないと判定するステップと、
前記管理情報に対応する入力コンテナ群に関連付けられた出力コンテナ群内の全ての出力データを前記記憶装置から削除するステップと、
前記入力コンテナ群に対応する全ての入力データを処理するステップとを具備する
分散処理方法。
【請求項２０】
請求項１８に記載の分散処理方法において、
前記処理装置が、障害から復旧するステップと、
前記処理装置に対して出力側の記憶装置の管理情報を参照し、前記処理完了フラグを有すると判定するステップと、
前記管理情報に対応する入力コンテナ群に関連付けられた全ての入力データを削除するステップと、
前記入力コンテナ群に対応する全ての入力データを処理するステップと、
前記記憶装置の管理情報を削除するステップと、
前記入力コンテナ群に関連付けられた出力データの処理依頼を発行するステップとを具備する
分散処理方法。
【請求項２１】
請求項１５から２０いずれか１項に記載の分散処理方法において、
前記入力コンテナ群に対応する全ての出力データが前記出力コンテナ群に対応する全ての出力コンテナに格納するステップと、
前記記憶装置における前記管理情報を、履歴情報として格納し、前記管理情報を削除するステップとを備える
分散処理方法。
【請求項２２】
請求項２１に記載の分散処理方法において、
前記処理装置が、障害から復旧するステップと、
前記処理装置に対して出力側の記憶装置の前記履歴情報を参照して、前記履歴情報に関連付けられた出力コンテナに格納されている出力データの処理依頼を前記他の処理装置に発行するステップとを具備する
分散処理方法。
【請求項２３】
請求項１５から２２いずれか１項に記載の分散処理方法において、
前記処理装置に対し入力側の記憶装置に障害が発生した場合、
前記処理装置が、正常な他の記憶装置から入力データを取得して処理を行うステップと、
前記記憶装置の復旧後、前記記憶装置から入力データを取得して処理を実行するステップとを具備する
分散処理方法。
【請求項２４】
請求項１８から２３いずれか１項に記載の分散処理方法において、
前記処理装置に対し出力側の記憶装置に障害が発生した場合、
前記記憶装置内の管理情報を参照し、処理完了フラグがないと判定するステップと、
前記処理装置が、入力データの処理を中断するステップと、
前記処理中であった入力コンテナ群に対応する全ての入力データの再処理を実行するステップと、
再処理結果である出力データを他の記憶装置の出力コンテナ群の出力コンテナに格納するステップとを具備する
分散処理方法。
【請求項２５】
請求項１８から２３いずれか１項に記載の分散方法において、
前記処理装置に対し出力側の記憶装置に障害が発生した場合、
前記記憶装置内の管理情報を参照し、処理完了フラグが有ると判定するステップと、
前記他の処理装置が、前記記憶装置の復旧後、前記処理装置の出力コンテナに格納された出力データを入力データとして取得して処理する
分散処理方法。
【請求項２６】
請求項１５から２５いずれか１項に記載の分散処理方法において、
前記処理装置が、前記入力コンテナ群に対応する全ての入力データを取得した後に、前記管理情報を、ネットワークを介して接続される退避装置に格納するステップと、
障害から復旧した処理装置が、前記退避装置から前記管理情報を取得するステップとを更に具備する
分散処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信によってデータを複数の処理装置で順に処理する分散処理システム、及びその分散システムにおける再処理（トランザクションリカバリ）方法に関する。
【背景技術】
【０００２】
企業の経理などの金銭に関わる業務や、電子商取引などを支える基幹システムに誤りや中断、セキュリティ上の問題が発生すると、業務の中断だけでなく巨額の損失の発生や信用の失墜を招く危険性がある。このため、このような業務に使用されるシステムには、極めて高い信頼性や耐障害性、障害発生時に被害を最小に食い止める様々な機能、万全のサポート体制などが必要となる。
【０００３】
２４時間３６５日、止まらないことを要求される業務を遂行のために使用されるコンピュータシステムでは、極めて高い信頼性や耐障害性、障害発生時に被害を最小に食い止めるミッションクリティカル性が重要視されている。このため、この種のコンピュータシステムでは、障害等による業務停止の極小化、業務停止範囲の局所化によってサービスを中断させない技術が強く求められている。
【０００４】
ネットワークに接続され、複数の処理装置に各種データの処理を実行させるコンピュータシステムにおいて、障害が発生した場合の再処理方式として、バッチ処理などで使用されるチェックポイント・リスタート方式や、ＯＬＴＰ（Ｏｎ−Ｌｉｎｅ  Ｔｒａｎｓａｃｔｉｏｎ  Ｐｒｏｃｅｓｓｉｎｇ）処理などで使用されるコミット・ロールバック方式がある。
【０００５】
チェックポイント・リスタート方式では、処理対象の一連の処理を複数の処理単位に論理的に分割し、分割した処理単位で処理完了／未完了の管理を行う。この方式の場合、処理の途中で処理装置に故障が発生すると、該当する処理単位を対象に処理済の結果を破棄し、再実行を行う必要があった。このため、再処理に長時間がかかるという問題があった。
【０００６】
また、コミット・ロールバック方式では、多くの場合１件または数件程度の入力データ（電文）をトランザクションとして処理状態を管理する。処理装置の故障が発生した場合は、個々のトランザクションについてコミットが完了しているか未完了かを判断する。この際、未完了のトランザクションがある場合は処理途中の結果をロールバックするなどのリカバリを行った後に再処理を行う必要があった。このため、多くのトランザクションを対象にリカバリ処理が必要となるため、オーバヘッドが大きくなり手順が複雑になるという問題があった。
【０００７】
（開示例１）
開示例１として、ネットワークを介して互いに接続された複数の計算機上で処理プログラムからなるジョブの一連の処理を容易に且つ確実に実行するバッチジョブ制御システムが、特開２００２−０７３５７６号公報に開示されている（特許文献１参照）。
【０００８】
開示例１のバッチジョブ制御システムは、ジョブ中の各処理プログラムの実行順序及び実行先となる計算機を管理する管理サーバと、ジョブ中の各処理プログラムを実行する複数の実行サーバ２と、管理サーバに接続された管理端末とを備える。管理サーバと各実行サーバとはネットワークを介して接続され、管理サーバ及び各実行サーバはそれぞれ非同期のメッセージ通信を行うためのメッセージキューイング機構を有し、管理サーバと各実行サーバとの間でメッセージキューイング機構を介してジョブ中の各処理プログラムの実行要求をメッセージとしてやり取りし、各処理プログラムを連携する。開示例１では、次の処理を実行する計算機を特定するため、管理サーバのような専用サーバが必要となる。
【０００９】
（開示例２）
開示例２として、メッセージキューイングシステムにおいて、キューファイルファイル障害の回復時間の短縮を実現するメッセージキューファイル回復制御装置が、特開２００３−２５６２５５号公報に開示されている（特許文献２参照）。
【００１０】
開示例２では、任意の時点でログ取得位置を示す情報をメモリ上に記憶しておき、その時点以前にキューファイルに格納されたメッセージが全て取り出された状態のときに、当該ログ位置情報を回復用ログ位置情報としてファイルに出力する。キューファイル障害時は、回復用ログ位置情報以降のログ情報を、再作成した空のキューファイルに反映してキューファイルを回復する。
【００１１】
開示例３として、データの非同期処理を実行する分散処理システムにおいて、実行情報、障害情報、非同期処理の親子の関係を一元管理し、その情報から障害が起こった場合でもリトライが容易に行える技術が、特開２００４−１５７７７６号公報に開示されている（特許文献３参照）。
【００１２】
開示例３では、リレーショナルデータベースを用いて、データ処理の処理状況や障害情報、コミット／ロールバック情報を一元管理している。このため、リレーショナルデータベースに障害が発生すると、各処理状態の管理ができなくなるため、すべての処理装置に影響が出るという問題がある。
【００１３】
尚、障害の発生した装置のデータリカバリに関する技術が、特開２００２−１０８６４０号公報（特許文献４参照）、特開平０８−２６３３５１号公報に開示されている（特許文献５参照）。
【特許文献１】特開２００２−０７３５７６号公報
【特許文献２】特開２００３−２５６２５５号公報
【特許文献３】特開２００４−１５７７７６号公報
【特許文献４】特開２００２−１０８６４０号公報
【特許文献５】特開平０８−２６３３５１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
本発明の目的は、通信によってデータを複数の処理装置で順に処理する分散処理システムにおいて、処理装置に障害が発生した際、処理装置毎に容易に再処理（トランザクションリカバリ）を実行できる分散処理システム及び再処理方法を提供することにある。
【００１５】
本発明の他の目的は、前記処理装置の障害に伴う再処理（トランザクションリカバリ）を高速に実行できる分散シテム及び再処理方法を提供することにある。
【課題を解決するための手段】
【００１６】
以下に、［発明を実施するための最良の形態］で使用される番号・符号を括弧付きで用いて、［課題を解決するための部］を説明する。この番号・符号は、［特許請求の範囲］の記載と［発明を実施するための最良の形態］の記載との対応関係を明らかにするために付加されたものであるが、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【００１７】
本発明による分散処理システムは、ネットワーク（３）と、ネットワーク（３）に接続される処理装置（２）と、ネットワーク（３）を介して処理装置（２）に接続される記憶装置（１）とを具備する。処理装置（２）は、入力される第１の入力データ（１１１）を処理し、処理結果として第１の出力データ（１２３）を記憶装置（１）に格納し、他の処理装置（２）に対し第１の出力データ（１２３）の処理依頼を発行する。処理依頼を受け付けた他の処理装置（２）は、処理依頼に応答して記憶装置（１）から第１の出力データ（１２３）を第２の入力データ（１１１）として抽出して処理し、処理結果を第２の出力データ（１２３）として出力する。この際、処理装置（２）は、第１の入力データ（１１１）の処理状況を示す管理情報（１０５）を作成して保持し、その管理情報（１０５）を記憶装置（１）に格納する。
【００１８】
記憶装置（１）は、第１の出力データ（１２３）が格納される記憶領域である第１の出力コンテナ（１０２）を有し、処理装置（２）は、入力される第１の入力データ（１１１）を格納するための記憶領域である入力コンテナ（１０１）を有し、第１の入力コンテナ（１０１）内の第１の入力データ（１１１）を処理して、第１の出力データ（１２３）を出力して、記憶装置（１）の第１の出力コンテナ（１０２）に格納する。この際、他の処理装置（２）に対し第１の出力コンテナ（１０２）を読み取り可能にして、第１の出力コンテナ（１０２）内に格納された第１の出力データ（１２３）の処理依頼を他の処理装置（２）に発行する。処理依頼を受け付けた他の処理装置（２）は、処理依頼に応答して第１の出力コンテナ（１０２）から第１の出力データ（１２３）を第２の入力データ（１１１）として、第２の入力コンテナ（１０１）に格納して、第２の入力データ（１１１）を処理する。
【００１９】
処理装置（２）は、一定量の入力データ（１１１）を記憶装置（１）から取得して、複数の入力コンテナ（１０１）に格納し、複数の入力コンテナ（１０１）を入力コンテナ群（１０３）として関連付け、入力コンテナ群（１０３）に関連付けられた複数の入力コンテナ（１０１）内の入力データ（１１１）を処理し、処理結果である出力データ（１２３）を記憶装置（１）の複数の出力コンテナ（１０２）に格納し、複数の出力コンテナ（１０２）を入力コンテナ群（１０３）に関連付け、入力データ（１１１）の処理状況である管理情報（１０５）を入力コンテナ群（１０３）に対応付けて保持し、入力コンテナ群（１０３）に対応付けてその管理情報（１０５）を記憶装置（１）に格納する。
【００２０】
又、処理装置（２）は、入力された入力データ（１１１）を示す識別子（１５２）や他の処理装置（２）に対して読み取り可能にした出力コンテナ（１０２）を示す識別子（１５３）を管理情報（１０５）に含めて保持し、その管理情報（１０５）を記憶装置（１）に格納する。
【００２１】
処理装置（２）は、入力コンテナ群（１０３）に対応する全ての出力データ（１２３）を、出力コンテナ群（１０４）に対応する全ての出力コンテナ（１０２）に格納すると、管理情報（１０５）に処理完了フラグを含めて保持し、その管理情報（１０５）を記憶装置（１）に格納する。
【００２２】
処理装置（２）に障害が発生した場合、処理装置（２）は、障害からの復旧後、処理装置（２）から見て出力側の記憶装置（１）に格納した管理情報（１６４）を参照し、管理情報（１６４）に処理完了フラグがない場合、管理情報（１６４）に対応する入力コンテナ群（１０３）に関連付けられた出力コンテナ群（１０４）内の全ての出力データ（１２３）を記憶装置（１）から削除し、入力コンテナ群（１０３）に対応する全ての入力データ（１１１）を処理する。
【００２３】
又、処理装置（２）から見て出力側の記憶装置（１）の管理情報（１６４）を参照し、管理情報（１６４）に処理完了フラグがある場合、管理情報（１６４）に対応する入力コンテナ群（１０３）に関連付けられた全ての入力データ（１１１）を削除し、記憶装置（１）の管理情報（１０６）を削除し、他の処理装置（２）に入力コンテナ群（１０３）に関連付けられた出力データ（１２３）の処理依頼を発行する。
【００２４】
記憶装置（１）は、管理情報が格納されるＧｒｐ情報コンテナ（現）（１０６）と、Ｇｒｐ情報コンテナ（履歴）（１０７）を有し、入力コンテナ群（１０３）に対応する全ての出力データ（１２３）が出力コンテナ群（１０４）に対応する全ての出力コンテナ（１０２）に格納されると、Ｇｒｐ情報コンテナ（現）（１０６）に格納された管理情報を、履歴情報としてＧｒｐ情報コンテナ（履歴）（１０７）に格納し、Ｇｒｐ情報コンテナ（現）（１０６）から管理情報を削除する。
【００２５】
処理装置（２）において、入力コンテナ群（１０３）に対応する全ての入力データ（１１１）を処理したが、履歴情報をまだ作成していない時に障害が発生した場合、処理装置（２）は、障害からの復旧後、処理装置（２）から見て出力側の記憶装置（１）のＧｒｐコンテナ（現）（１０６）を検索し、該当する管理情報がない場合、記憶装置（１）のＧｒｐコンテナ（履歴）内の履歴情報を参照して、履歴情報に関連付けられた出力コンテナ（１０２）に格納されている出力データ（１２３）の処理依頼を他の処理装置（２）に対し発行する。
【００２６】
処理装置（２）に対し入力側の記憶装置（１）に障害が発生した場合、処理装置（２）は、正常な他の記憶装置（１）から入力データ（１１１）を取得して処理を行い、記憶装置（１）の復旧後、記憶装置（１）から入力データ（１１１）を取得して処理を実行する。
【００２７】
処理装置（２）に対し出力側の記憶装置（１）に障害が発生し、記憶装置（１）内の管理情報（１６４）に処理完了フラグがない場合、処理装置（２）は、入力データ（１１１）の処理を中断し、処理中であった入力コンテナ群（１０３）に対応する全ての入力データ（１１１）の再処理を実行し、再処理結果である出力データ（１２３）を他の記憶装置（１）の出力コンテナ群（１０４）の出力コンテナ（１０２）に格納する。
【００２８】
処理装置（２）に対し出力側の記憶装置（１）に障害が発生し、記憶装置（１）内の管理情報に処理完了フラグがある場合、他の処理装置（２）は、記憶装置（１）の復旧後、処理装置（２）の出力コンテナ（１０２）に格納された出力データ（１２３）を入力データ（１１１）として取得して処理する。
【００２９】
又、本発明による分散処理システムは、ネットワーク（３）を介して処理装置（２）に接続される退避装置（４）を更に具備する。処理装置（２）は、入力コンテナ群（１０３）に対応する全ての入力データ（１１１）を取得すると、管理情報を退避装置（４）に格納し、  障害が発生した処理装置（２）は、障害復旧後、退避装置（４）から管理情報を取得する。
【００３０】
このように、本発明による分散処理システムによれば、ネットワーク（３）を介する通信によって入力データ（１１１）を複数の処理装置（２）で順に処理を行うシステムにおいて、処理装置（２）間のデータ（１００）受け渡しとデータ（１００）の処理状態管理に不揮発記憶装置（１）を用いることで処理装置（２）の故障等に伴う再処理（トランザクションリカバリ）を容易に、かつ高速に実現することができる。
【発明の効果】
【００３１】
本発明による分散処理システム及び再処理方法によれば、処理装置に障害が発生した際、処理装置毎に容易に再処理（トランザクションリカバリ）を実行できる。
【００３２】
又、処理装置の障害に伴う再処理（トランザクションリカバリ）を高速に実行できる。
【発明を実施するための最良の形態】
【００３３】
以下、添付図面を参照して、本発明による分散処理システム及び再処理方法の実施の形態が説明される。本発明による分散処理システムは、通信によってデータ１００を複数の処理装置２で順に処理を行うシステムであり、トランザクション処理を実行する分散処理システムが好適である。例えば、ミッションクリティカル性の高い、電子商取引や企業内システムで利用されるオープンシステムプラットフォームへの利用が好適である。
【００３４】
（構成）
図１は、本発明による分散システムの構成図である。本発明による分散システムは、ネットワーク３を介して相互に接続された複数の不揮発記憶装置１（１−Ａ〜Ｎ）と、各種データを処理するサーバ等のコンピュータ装置である処理装置２（２−Ａ〜Ｎ）と、処理装置２で作成されるデータの処理状況を含む情報を保管する退避装置４と、不揮発記憶装置１に障害が発生した際に不揮発記憶装置として使用される予備不揮発記憶装置５とを具備する。退避装置４や予備不揮発記憶装置５は、複数であることが好ましい。ここで、処理装置２に対応する退避装置４の数は、処理装置２の個々に対して１つ以上でも、複数の処理装置２に対して１つでも良い。又、不揮発記憶装置１に対応する予備不揮発装置５は、不揮発記憶装置１の個々に対して１つ以上でも、複数の不揮発記憶装置１に対して１つでも良い。尚、予備不揮発記憶装置５は、不揮発記憶装置１が使用可能の場合は使用されず、不揮発記憶装置１に障害等が発生して使用不可能になった場合に使用される。
【００３５】
図２は、本発明による分散処理システムの分散処理の概念図である。
図２を参照して、データ１００の処理内容に対応するサービス単位で、処理装置２が分割される。この分割単位を処理ステージ１０と定義する。すなわち、データ１００Ａ〜Ｆを処理する処理装置２−Ａ〜Ｃを処理ステージ１０Ａとし、データ１００Ｇ〜Ｉを処理する処理装置２−Ｄ〜Ｅを処理ステージ１０Ａとする。処理ステージ１０Ａでは、不揮発記憶装置１−Ａ上のデータ１００Ａ〜Ｃを処理装置２−Ａで、データ１００Ｄを処理装置２−Ｂで、データ１００Ｅ、Ｆを処理装置２−Ｃで、それぞれ入力データ１１１として取得し、それぞれの処理装置２で処理を実行する。処理結果は、各処理装置２から出力データ１２３としてデータ１００Ｇ〜Ｉがそれぞれ出力され、不揮発記憶装置１−Ｃに格納される。この際、各処理装置２から出力される出力データ１２３は、次の処理ステージ１０Ｂで処理を行う処理装置２毎にまとめられる。又、処理ステージ１０Ａの各処理装置２が出力した出力データ１２３の格納が完了すると、処理装置２−Ａ〜Ｃの各々は、それぞれのデータの出力が完了したことを不揮発記憶装置１−Ｃ上の管理情報１６４Ａ〜Ｃのそれぞれに記録し、出力データ１２３の次の処理先（処理ステージ１０Ｂ）の処理装置２−Ｄ及びＥに処理依頼を行う。処理ステージ１０Ｂの処理装置２−Ｄは、処理依頼を受信した後に不揮発記憶装置１−Ｃに格納されたデータ１００Ｇ及びＨを入力データ１１１として取得して処理し、出力データ１２３としてデータ１００Ｊを不揮発記憶装置１−Ｄに格納する。同様に、処理装置２−Ｅは、データ１００Ｉを処理してデータ１００Ｋを不揮発記憶装置１−Ｄに格納する。又、処理装置２−Ｄ及びＥは、それぞれ出力完了したことを管理情報１６４Ｄ及び１６４Ｅに記録する。以降に複数のステージ１０が存在した場合も上記と同様に処理を行う。
【００３６】
本発明に係る不揮発記憶装置１は、好ましくは、高速で複数の処理装置２で共有可能なＮＡＳストレージである。特に、各種コンポーネントの冗長化とクラスタ構成が可能な製品が有効である。本実施の形態における不揮発記憶装置１はクラスタ構成が可能なＮＡＳストレージを使用することを一例に説明される。
【００３７】
図３を参照して、不揮発記憶装置１は、ネットワーク３を介して処理装置２に接続されるデータ制御部１１と、次に処理を実施するステージ１０（以下、次ステージと呼ぶ）の処理装置２（ここでは、処理装置２−Ａ）において処理されるデータ１００が格納されるデータ記憶部１２と、処理中のステージ１０（以下、現ステージと呼ぶ）の処理装置２において処理中のデータ１００の処理状況を示すＧｐｒ情報（現）１０６が格納されるＧｒｐ情報（現）記憶部１３と、現ステージの処理装置２で処理が完了したデータの処理履歴を示すＧｒｐ情報（履歴）１０７が格納されるＧｒｐ情報（履歴）記憶部１４とを具備する。
【００３８】
データ制御部１１は、処理装置２の処理部２１からの各種信号や各種データに応じて、データ記憶部１２の入力コンテナ１０１からのデータ１００の抽出や、出力コンテナ１０２に対するデータ１００の格納を行う。又、Ｇｒｐ情報（現）記憶部１３のＧｒｐ情報コンテナ（現）１０６や、Ｇｒｐ情報（履歴）記憶部１３のＧｒｐ情報コンテナ（履歴）１０７への各種情報の更新・削除を行う。更に、抽出した各種データを処理装置２に対し転送する。
【００３９】
ステージ間（処理装置２間）の入力データ１１１や出力データ１２３の受け渡しは、全て不揮発記憶装置１のデータ記憶部１１内における記憶領域であるコンテナを介して行われる。図４は、本発明に係るコンテナ及びコンテナ群の構造図である。
【００４０】
データ記憶部１１は、入力データ１１１が格納される領域として入力コンテナ１０１と、出力データ１２３が格納される領域として出力コンテナ１０２とを具備する。入力コンテナ１０１には、入力コンテナ１０１を識別するための入力コンテナＩＤ１１０と対応付けられて、次ステージの各処理装置２が処理するための複数のデータ１００が入力データ１１１として格納される。又、出力コンテナ１０２には、出力コンテナ１０２を識別するための出力コンテナＩＤ１２１と対応付けられて、現ステージの各処理装置２の処理結果である複数のデータ１００が出力データ１２３として格納される。
【００４１】
次ステージの各処理装置２は、一定量のデータ量に相当する複数の入力コンテナ１０１を取得し、これらの入力コンテナ１０１に含まれる入力データ１１１を処理する。このように、各処理装置２に入力される複数の入力コンテナ１０１を、入力コンテナ群１０３と定義し、各処理装置２の処理単位とする。入力コンテナ群１０３を特定するため、処理装置２が処理する複数の入力コンテナ１０１に、入力コンテナ群１０１を識別するコンテナ群ＩＤ１３１が対応付けられる。尚、入力コンテナ群１０３に対応する入力コンテナ１０１は、１つの不揮発記憶装置１から処理装置２に入力される入力コンテナ１０１でも良いし、複数の不揮発記憶装置１から処理装置２に入力される入力コンテナ１０１でも良い。
【００４２】
出力コンテナ１０２には、宛て先（次に処理を行う処理装置２）毎に複数の出力データ１２３が格納される。出力コンテナ１０２には、出力コンテナ１０２を識別するための出力コンテナＩＤ１２１と、宛て先の処理装置２を特定するための宛て先ＩＤ１２２と、現ステージの処理装置２の処理によって出力された出力データ１２３と、出力コンテナの処理が完了したか否かのフラグが書き込まれる処理情報１２４とが関連付けられて格納される。又、各処理装置２に入力される入力コンテナ群１０３の処理結果（出力データ１２３）に対応する複数の出力コンテナ１４２を出力コンテナ群１０４として定義する。このため、出力コンテナ群１０４は、入力コンテナ群１０３の持つコンテナ群ＩＤ１３１と同じコンテナ群ＩＤ１４１が付けられ、処理装置２毎に、入力コンテナ群１０３と出力コンテナ群１０４が対応付けられる。
【００４３】
現ステージの各処理装置２は、処理中の入力コンテナ群１０３と、その入力コンテナ群１０３に対応する出力コンテナ群１０４の情報や、入力コンテナ群１０３の処理が完了しているか未完了かの状態を、処理装置２上のＧｒｐ情報メモリ２３と不揮発記憶装置１上のＧｒｐ情報（現）記憶部１３に記録する。又、入力コンテナ群１０３の全ての処理が完了すると、その完了情報は、Ｇｒｐ情報（履歴）記憶部１４に記録される。Ｇｒｐ情報（現）記憶部１３は、入力コンテナ群１０３毎に、その処理状況を示す管理情報１６４を格納するためのＧｒｐ情報コンテナ（現）１０６を備える。又、Ｇｒｐ情報（履歴）記憶部１４は、入力コンテナ群１０３毎に、その処理の完了情報を格納するためのＧｒｐ情報コンテナ（履歴）１０７を備える。図５は、Ｇｒｐ情報コンテナ（現）１０６と、Ｇｐ情報コンテナ（履歴）１０７の構造図である。
【００４４】
Ｇｒｐ情報記憶部１３のＧｒｐ情報コンテナ（現）１０６には、処理装置２への入力コンテナ１０１の読み込み状況（読み込み完了／未完了）、次ステージの処理装置２に対する出力コンテナ１０２のオープン状況（オープン完了／未完了）、入力コンテナ群１０３内の入力コンテナ１０１の処理状況（処理完了／未完了）が、入力コンテナ群１０３に対応付けられて格納される。例えば、Ｇｒｐ情報コンテナ（現）１０６は、読み込みコンテナＩＤ１６２と、オープンコンテナＩＤ１６３と、管理情報１６４とが入力コンテナ群１０３のコンテナ群ＩＤ１３１と同じコンテナ群ＩＤ１６１に対応付けられて格納される。ここで、読み込みコンテナＩＤ１６２は、現ステージの処理装置２に読み込まれた入力コンテナ１０１の入力コンテナＩＤ１１０であり、オープンコンテナＩＤ１６３は、当該処理装置２によって次ステージの処理装置２に対してオープンされた出力コンテナ１０２の出力コンテナＩＤ１２１である。又、管理情報１６４は、読み込まれた入力コンテナ１０１の処理状況（処理完了／未完了）を示す情報であり、例えば処理完了フラグが書き込まれる。
【００４５】
Ｇｒｐ情報コンテナ（履歴）１０７には、現ステージにおける処理装置２において処理が完了した入力コンテナ群１０３に対応する出力コンテナ１０３の情報が関連付けられて格納される。例えば、Ｇｒｐ情報コンテナ（履歴）１０７には、処理完了コンテナＩＤ１７２と、出力コンテナＩＤ１７３と、当該入力コンテナ群１０３のコンテナ群ＩＤ１３１と同じコンテナ群ＩＤ１７１に関連付けられて格納される。ここで、処理完了コンテナＩＤ１７２は、処理が完了した入力コンテナ１０１の入力コンテナＩＤ１１０であり、出力コンテナＩＤ１７３は、この入力コンテナ１０１の処理結果である出力コンテナ１０２の出力コンテナＩＤ１２１である。
【００４６】
図３を参照して、処理装置２（ここでは、処理装置２−Ａ）は、不揮発記憶装置１（ここでは、不揮発記憶装置１−Ａ）から入力コンテナ群１０３が入力される入力部２２と、前のステージの処理装置２からの処理依頼に応じて、入力部２２から入力される入力データ１１１を処理し、出力データ１２３を不揮発記憶装置１（ここでは、不揮発記憶装置１−Ｃ）に出力する処理部２１と、処理部２１で作成されるデータの処理状況を示すＧｒｐ情報を格納するＧｐｒ情報メモリとを具備する。
【００４７】
処理部２１はＣＰＵやメモリで構成され、入力部２２が取得した入力コンテナ１０１内の入力データ１１１を処理し、その処理状況（処理完了／未完了）を、Ｇｒｐ情報メモリ２３に格納する。又、出力データ１２３を次の不揮発記憶装置１（ここでは、不揮発記憶装置１−Ａ）の出力コンテナ１０２に格納し、当該出力コンテナ１０２をオープンにして、次ステージの処理装置２の処理部２１に処理依頼を発行する。この際、出力コンテナ１０２に対する処理状況（オープン処理完了／未完了）をＧｒｐ情報メモリ２３に格納する。更に、Ｇｒｐ情報メモリ２３に格納した入力コンテナ１０１及び出力コンテナ１０２の処理状況と同じ情報を退避装置４のＧｒｐ情報メモリ４１に格納する。
【００４８】
入力部２２は、メモリやハードディスク等の記憶装置と入力制御装置を具備し、処理部２２からの各種信号に応じて不揮発記憶装置１から入力コンテナ１０１を一定量まで入力し、入力コンテナ群１０３として保持する。又、入力された入力コンテナ１０１を処理部に転送する。
【００４９】
Ｇｒｐ情報メモリ２３は、入力コンテナ１０１及び出力コンテナ１０２の処理状況を管理するためのＧｒｐ情報１０５が格納される。図６は、Ｇｒｐ情報１０５の構成図である。Ｇｒｐ情報１０５は、入力コンテナ１０１が入力部２２に入力されたか否かを示す読み込み状況（読み込み完了／未完了）と、次ステージの処理装置２に対する出力コンテナ１０２のオープン状況（オープン完了／未完了）と、入力コンテナ群１０３内の入力コンテナ１０１のデータ処理状況（処理完了／未完了）とを含み、不揮発記憶装置１（ここでは、不揮発記憶装置１−Ａ）から入力される入力コンテナ群１０３を識別するためのコンテナ群ＩＤ１５１に関連付けられている。例えば、Ｇｒｐ情報１０５には、入力コンテナ群１０３のコンテナ群ＩＤ１３１と同じコンテナ群ＩＤ１５１と、読み込みコンテナＩＤ１５２と、オープンコンテナＩＤ１５３と、管理情報１５４とが対応付けられて格納される。ここで、読み込みコンテナＩＤ１５２は、処理装置２の入力部２２に読み込まれた入力コンテナ１０１の入力コンテナＩＤ１１０であり、オープンコンテナＩＤ１６３は、当該処理装置２によってオープンされた出力コンテナ１０２の出力コンテナＩＤ１２１である。又、管理情報１５４は、読み込まれた入力コンテナ１０１の処理状況（処理完了／未完了）や出力コンテナを示す情報である。又、処理部２２は、退避装置４にもＧｒｐ情報（現）１０５を格納し、処理装置２において処理する入力コンテナ群１０３の処理状況等の管理情報を退避装置４に退避する。尚、処理部２１は、出力コンテナ１０４の出力先となる不揮発記憶装置１（ここでは、不揮発記憶装置１−Ｃ）のデータ制御部１１（ここでは、データ制御部１１−Ｃ）を制御して、当該Ｇｒｐ情報１０５と同じ情報を、Ｇｒｐ情報（現）記憶部１３（ここでは、Ｇｒｐ情報（現）記憶部１３−Ｃ）のＧｒｐ情報コンテナ（現）１０６に格納する。
【００５０】
以上の構成により、障害復旧後の処理装置２の処理部２１は、Ｇｒｐ情報メモリ２３のＧｒｐ情報１０５を確認することによって、処理が未完了となっているデータの有無を判定し、未完了のデータがあった場合は該当する入力コンテナ群１０３を再処理することで、入力データ１１１の再実行を実現できる。従って、本再実行処理は、故障した処理装置２内のみで実行することができ、他の処理装置２やデータ処理に影響を与えることがなくなる。
【００５１】
（動作）
図３、図７から図１３を参照して、本発明による分散処理システムの実施の形態における動作が説明される。以下、本発明における分散処理システムについて、上位のステージ１０から処理依頼を受けた処理装置２−Ａにおける分散処理動作、及び障害復旧時の再処理動作について説明される。又、処理装置２−Ａに対して入力側の不揮発記憶装置１−Ａ、及び出力側の不揮発記憶装置１−Ｃに障害が発生した場合の障害回避動作が説明される。
【００５２】
（分散処理動作）
図３は、本発明による分散処理システムの実施の形態における「分散処理」の機能ブロック図である。
【００５３】
先ず、データ１００を分散処理するため、上位のステージ１０から、データ処理の依頼が処理装置２−Ａに発行される。処理依頼には、処理装置２−Ａが処理すべき入力コンテナ１０１の格納場所である不揮発記憶装置１（ここでは、不揮発記憶装置１−Ａ）の識別子（アドレス等）と、当該入力コンテナ１０１の入力コンテナＩＤ１１０が含まれている。処理依頼を受け付けた処理装置２−Ａの処理部２１は、処理依頼に従って不揮発記憶装置１−Ａのデータ制御部１１−Ａに対し、入力コンテナＩＤ１１０を含んだ入力コンテナ１０１の転送要求を発行する（Ｓ１）。データ制御部１１−Ａは、転送要求に含まれる入力コンテナＩＤ１１０に対応する入力コンテナ１０１をデータ記憶部から抽出し（Ｓ３）、転送要求元の処理装置２−Ａに転送する（Ｓ５）。
【００５４】
入力部２２に入力コンテナ１０１が入力されると、処理部２１は、Ｇｒｐ情報メモリ２３を初期化し、処理単位となる入力コンテナ群１０３を一意に特定するためのコンテナ群ＩＤ１３１を、コンテナ群ＩＤ１５１としてＧｒｐ情報１０５に書き込む（Ｓ７）。又、同時に、処理部２１は、出力側の不揮発記憶装置１−Ｃのデータ制御部１１−Ｃに対し、Ｇｒｐ情報コンテナ（現）１０６の初期化命令を発行し、同様に、処理単位となる入力コンテナ群１０３を一意に特定するためのコンテナ群ＩＤ１３１を、コンテナ群ＩＤ１６１としてＧｒｐ情報コンテナ（現）１０６に書き込む（Ｓ９及びＳ１１）。以後、処理部２１は、Ｇｒｐ情報１０５とＧｒｐ情報コンテナ（現）１０６が常に同一状態となるように更新を行う。Ｇｒｐ情報コンテナ（現）１０６を更新する場合、処理部２１は、データ制御部１１−Ｃに更新命令を発行して更新する（Ｓ９及びＳ１１）。
【００５５】
処理部２１は、処理依頼に基づき入力コンテナ１０３を順次読み込み、処理を行う（Ｓ１、Ｓ５、Ｓ１３）。この際、処理部２１は、入力部２２に入力された入力コンテナ１０３の入力コンテナＩＤ１１０を、読み込みコンテナＩＤ１５２としてＧｒｐ情報１０５に順次記録し、又、同様に入力部２２に入力された入力コンテナ１０３の入力コンテナＩＤ１０３を読み込みコンテナＩＤ１６１としてＧｒｐ情報コンテナ（現）１０６に順次記録する（Ｓ７、Ｓ９及びＳ１１）。
【００５６】
処理部２１は、入力コンテナ１０１内の入力データ１１１の処理結果である複数の出力データ１２３を、データ制御部１１−Ｃを介して、データ記憶部１１−Ｃの出力コンテナ１０２に格納する（Ｓ９、Ｓ１５）。この際、出力データ１２３は、出力コンテナＩＤ１２１と、次のステージ１０の処理装置２に対応する宛て先ＩＤ１２２とに関連付けられて出力コンテナ１０２に格納される。又、個々の出力コンテナ１０２にはＧｒｐ情報メモリ２３とＧｒｐ情報コンテナ（現）１０５に書き込んだコンテナ群ＩＤと同じコンテナ群ＩＤ１４１が対応付けられる。すなわち出力コンテナ１０２は、入力コンテナ群１０３に対応する出力コンテナ群１０４に対応付けられる。これにより、Ｇｒｐ情報１０５のコンテナ群ＩＤ１５１とＧｒｐ情報コンテナ（現）に付与されたコンテナ群ＩＤ１６１とに対応する出力コンテナ１０５の特定が可能となる。
【００５７】
出力コンテナ１０２は、処理部２１からのオープン指令に基づき、宛て先ＩＤ１２２（宛て先処理装置）毎にオープンされる（Ｓ９、Ｓ１５）。処理部２１は、オープンが完了した出力コンテナ１０３の出力コンテナＩＤ１２１を、Ｇｒｐ情報１０５のオープンコンテナＩＤ１５３としてＧｒｐ情報メモリ２３、及びＧｒｐ情報記憶部１３−ＣのＧｒｐ情報コンテナ（現）１０６に順次書き込む（Ｓ７、Ｓ９及びＳ１１）。
【００５８】
入力部２２２に入力される入力コンテナ１０１のデータ量が一定量に達すると、一旦不揮発記憶装置１−Ａからの入力処理を中断する。ここまでの入力コンテナ１０１が処理単位の入力コンテナ群１０３となる。入力コンテナ群１０３の入力処理が全て完了すると処理部２１は、Ｇｒｐ情報メモリ２３内のＧｒｐ情報１０５を退避装置４へ転送する（Ｓ７、Ｓ１７）。このとき退避装置４のＧｒｐ情報メモリ４１には上書きせずに、上書き準備状態とする。又、入力処理がすべて終了すると、処理部２１は、記憶装置１−Ａのデータ制御部１１−Ａに削除指令を発行し、入力部２２に入力された入力データ１１１を記憶装置１−Ａのデータ記憶部１２−Ａから削除させる。
【００５９】
処理部２１は、入力コンテナ群１０３の全ての入力コンテナ１０１の処理を終了すると、データ記憶部１２−Ｃ内の出力コンテナ群１０４に対応するすべての出力コンテナ１０２の処理情報１２４に処理完了フラグを書き込む（Ｓ９、Ｓ１５）。次にＧｒｐ情報１０５の管理情報１５４とＧｒｐ情報コンテナ（現）１０６の管理情報１６４に完了フラグを書き込む（Ｓ７、Ｓ９及びＳ１１）。このように、入力コンテナ群１０３のデータ処理の完了／未完了の状況を、処理装置２−Ａ及び出力側の不揮発記憶装置１−Ｃに記録することができる。すべての管理情報１５４及び１６４に完了フラグを書き込むと、処理部２１は、退避装置４へ転送したＧｒｐ情報１０５の上書き指示を発行し、Ｇｒｐ情報メモリ４１にＧｒｐ情報（現）１０５を書き込む（上書きする）。このように、処理装置２の入力部に入力コンテナ群１０３内の入力データが全て入力されたことを示すＧｒｐ情報（現）１０５が、入力コンテナ群１０３の全ての処理を完了した後に、退避装置４へ転送される。
【００６０】
退避装置４にＧｒｐ情報１０５を書き込むと、処理部２１は、入力部２２に対し削除指令を発行し、入力部２２にある入力コンテナ群１０３を削除する（Ｓ１３）。又、処理部２１はデータ制御部１１−Ｃに対し、Ｇｒｐ情報（履歴）作成指令を発行し（Ｓ９）、データ制御部１１−Ｃは、Ｇｒｐ情報（履歴）作成指令に基づき、Ｇｒｐ情報コンテナ（現）１０６内の処理状況を示す情報をＧｒｐ情報（履歴）記憶部１４−ＣのＧｒｐ情報コンテナ（履歴）１０７に転送する（Ｓ１１、Ｓ１９）。又、転送後、Ｇｒｐ情報コンテナ（現）１０６内の情報を削除する。この際、Ｇｒｐ情報コンテナ（履歴）１０７には、管理情報１６４の完了フラグが立てられた読み込みコンテナＩＤ１６２及びオープンコンテナＩＤ１６７を、それぞれ処理完了コンテナＩＤ１７２及び出力完了ＩＤ１７３として格納される。
【００６１】
Ｇｒｐ情報（履歴）作成指令を発行した処理部２１は、Ｇｒｐ情報コンテナ（履歴）１０７に記録された出力完了ＩＤ１７３に対応する出力コンテナ１０２の処理依頼を次のステージの処理装置２（例えば、図２に示される処理装置２−Ｄ）に発行する（Ｓ２２１）。
【００６２】
以上のように、本発明による分散システムは、処理装置２毎においてデータ１００を入力コンテナ群単位で処理し、その処理状況を管理することができるため、チェックポイント・リスタート方式のように各ステージで処理済みの大量データを破棄し、チェックポイントからやりなおす必要がない。また、コミット・ロールバック方式のような入力データ単位で処理状態を管理する方式と比べてコミット制御のオーバヘッドが少なくなる。更に、処理装置２が故障した場合、他の正常な処理装置２は、障害による影響を受けることなくデータ処理を継続して行えるため、影響範囲の局所化が可能となる。
【００６３】
（処理装置２における障害後の再処理動作）
次に、図７から図１０を参照して、本発明にかかる処理装置２に故障が発生した場合の、分散処理システムの再処理動作について説明される。尚、処理装置２の再処理動作は、障害が発生した処理装置２の復旧後に行われる。
【００６４】
図７は、処理装置２の再処理動作のフロー図である。図８は、処理装置２−Ａの再処理動作において、出力側の不揮発記憶装置１−Ｃに、完了フラグが書き込まれたＧｒｐ情報コンテナ（現）１０６が存在する場合の機能ブロック図である。図７及び図８を参照して、完了フラグが書き込まれたＧｒｐ情報コンテナ（現）１０６が存在する場合の再処理動作が説明される。障害から復旧した処理装置２−Ａの処理部２１は、不揮発記憶装置１−Ｃのデータ制御部１１−Ｃを介してＧｒｐ情報（現）記憶部１３−Ｃを参照し、Ｇｒｐ情報コンテナ（現）１０６の有無を確認する（ステップＡ１、Ｓ２２、Ｓ２４）。又、Ｇｒｐ情報コンテナ（現）１０６がある場合、管理情報１６４を参照して処理完了フラグが書き込まれているかを確認する（ステップＡ２、Ｓ２２、Ｓ２４）。ステップＡ２において、処理完了フラグが書き込まれている場合、処理部２１は退避装置４のＧｒｐ情報メモリ４１からＧｒｐ情報（現）１０５を抽出し、リカバリを実行する処理装置２−ＡのＧｒｐ情報メモリ２３に転送及び格納する（ステップＡ３、Ｓ２６、Ｓ２８）。本実施例では、再処理する処理装置２−Ａとして、復旧後の処理装置２−Ａを用いるが、リカバリ用の他の処理装置２を用意して、その処理装置２に再処理を実行させても構わない。
【００６５】
次に、処理部２１は、入力部２２にコンテナ群ＩＤ１３１を含む削除指令を発行し、現在入力部２２に格納されている入力コンテナ群１０３（当該コンテナ群ＩＤ１３１に対応）を削除する（ステップＡ４、Ｓ３０）。又、処理部２１はデータ制御部１１−Ｃに対し、Ｇｒｐ情報コンテナ（履歴）作成指令を発行し（Ｓ２２）、データ制御部１１−Ｃは、Ｇｒｐ情報コンテナ（履歴）作成指令に基づき、Ｇｒｐ情報コンテナ（現）１０６内の処理状況を示す情報を、Ｇｒｐ情報（履歴）記憶部１４−ＣのＧｒｐ情報コンテナ（履歴）１０７に転送する（Ｓ２４、Ｓ３２）。又、転送後、Ｇｒｐ情報コンテナ（現）１０６内の情報を削除する。この際、Ｇｒｐ情報コンテナ（履歴）１０７には、完了フラグが立てられた読み込みコンテナＩＤ１６２及びオープンコンテナＩＤ１６７が、それぞれ処理完了コンテナＩＤ１７２及び出力コンテナＩＤ１７３として格納される。Ｇｒｐ情報コンテナ（履歴）作成指令を発行した処理部２１は、作成したＧｒｐ情報コンテナ（履歴）１０７を参照し、出力コンテナＩＤ１７３に対応する出力コンテナ１０２の処理依頼を、次のステージの処理装置２（例えば、図２に示される処理装置２−Ｄ）に発行する（ステップＡ６、Ｓ３４）。
【００６６】
図９は、処理装置２の再処理動作において、不揮発記憶装置１−Ｃに、完了フラグか書き込まれていないＧｒｐ情報コンテナ（現）１０６が存在する場合の機能ブロック図である。図７及び図９を参照して、不揮発記憶装置１−Ｃに、完了フラグか書き込まれていないＧｒｐ情報コンテナ（現）１０６が存在する場合の再処理動作が説明される。ステップＡ２において、Ｇｒｐ情報コンテナ（現）１０６の管理情報１６４に処理完了フラグが書き込まれていない場合、処理部２１は、不揮発記憶装置１−Ｃに対し出力途中であった出力コンテナ１０２を削除するため、削除対象となる出力コンテナＩＤ１２１を含む削除指令を発行する（ステップＡ７、Ｓ３６）。データ制御部１１−Ｂは、削除指令に含まれる出力コンテナＩＤ１２１に対応する出力コンテナ１０２をデータ記憶部１２−Ｃ内から全て削除する（ステップＡ７、Ｓ３８）。次に、処理部２１は退避装置４のＧｒｐ情報メモリ４１からＧｒｐ情報（現）１０５を抽出し、リカバリを実行する処理装置２のＧｒｐ情報メモリ２３に転送及び格納する（ステップＡ８、Ｓ４０、Ｓ４２）。処理部２１はデータ制御部１１−Ｃに対し、当該Ｇｒｐ情報（現）１０５のコンテナ群ＩＤ１５１を含むＧｒｐ情報コンテナ（現）の削除指令を発行する（Ｓ３６）。データ制御部１１−Ｃは、Ｇｒｐ情報コンテナ（現）作成指令に含まれるコンテナ群ＩＤ１５１と同じコンテナ群ＩＤ１６１に対応するＧｒｐ情報コンテナ（現）１０６を、Ｇｒｐ情報（現）記憶部１１−Ｃから消去する（ステップＡ９、Ｓ４４）。処理部２１は、ステップＡ８においてＧｒｐ情報メモリ２３に格納されたＧｒｐ情報１０５のコンテナ群ＩＤ１５１と同じコンテナ群ＩＤ１３１を持つ入力コンテナ群１０３を、入力部２２から抽出して再処理を実行する（ステップＡ１０、Ｓ４６）。尚、再処理後の動作は、通常の処理動作と同じである。
【００６７】
図１０は、処理装置２の再処理動作において、出力側の不揮発記憶装置１−ＣにＧｒｐ情報コンテナ（現）１０６がない場合の機能ブロック図である。図７及び図１０を参照して、不揮発記憶装置１−ＣにＧｒｐ情報コンテナ（現）１０６がない場合の再処理動作が説明される。ステップＡ１において、不揮発記憶装置１−ＣのＧｒｐ情報（現）記憶部１３−ＣにＧｒｐ情報コンテナ（現）１０６がない場合、処理装置２−Ａの処理部２１は、退避装置４のＧｒｐ情報メモリ４１からＧｒｐ情報（現）１０５を抽出し、リカバリを実行する処理装置２−ＡのＧｒｐ情報メモリ２３に転送及び格納する（ステップＡ１１、Ｓ４８、Ｓ５０）。次に処理部２１は、データ制御部１１−Ｃを介してＧｒｐ情報（履歴）記憶部１４−Ｃ内を参照し、Ｇｒｐ情報コンテナ（履歴）１０７に含まれる全ての出力コンテナＩＤ１７３を検索し、次ステージの処理装置２−Ｄで処理されずに残っていないかを確認する（ステップＡ１２、Ｓ５２〜Ｓ５６）。
【００６８】
ステップＡ１２において、未処理の出力コンテナ１０２がある場合、次ステージ１０の処理装置２−Ｄへの処理依頼が完了していない可能性があるため、処理部２１は、該当する出力コンテナ１０２の処理依頼を処理装置２−Ｄに対し発行する（ステップＡ１３、Ｓ５８）。ステップＡ１２において、未処理の出力コンテナ１０２がない場合、処理部２１はデータ制御部１１−Ｃを介して参照したＧｒｐ情報（履歴）記憶部１４−Ｃ内のＧｒｐ情報コンテナ（履歴）１０７を削除する（ステップＡ１４、Ｓ５２、Ｓ５４）。
【００６９】
本発明による分散処理システムは、処理装置２間（ステージ１０間）において直接データ１００の送受信は行わず、不揮発記憶装置１を介して、データ１００の送受信を行っている。このため、処理装置２が故障した場合でも、他の処理装置２は不揮発記憶装置からデータの読み込みと処理を継続することが可能となる。
【００７０】
又、処理装置の故障時に実行中であったデータ１００の特定とリカバリ処理は、故障した処理装置２でのみ行えばよいため、他の正常な処理装置２における当該リカバリに伴う特別な処理は不要となる。  
【００７１】
（不揮発記憶装置１の障害発生時の処理動作）
図１１から図１３を参照して、不揮発記憶装置１に障害が発生した場合における分散処理システムの再処理動作が説明される。
【００７２】
図１１は、本発明による分散処理システムの通常の分散処理動作の概念図である。図１１を参照して、処理装置２−Ａは、不揮発記憶装置１−Ａ及び１−Ｂに格納される入力コンテナ１０１−Ａ〜Ｎを入力コンテナ群１０３としてデータ処理を実行する。又、処理装置２−Ａは処理結果である出力データ１２３を不揮発記憶装置１−Ｃの出力コンテナ１０２−Ａ〜Ｎに格納する。更に、処理状況を示すＧｒｐ情報（現）１０５を退避装置４に格納し、Ｇｒｐ情報（現）と同じ情報を、不揮発記憶装置１−ＣのＧｒｐコンテナ（現）１０６ーＡに格納する。又、分散処理システムは、通常動作では用いられない予備不揮発記憶装置５を具備している。
【００７３】
不揮発記憶装置１は、クラスタ構成が可能なＮＡＳストレージを採用することを想定しており、各コンポーネントの故障が発生した場合でも出力データ１２３が保護され、クラスタ制御機構によるノード切り替え完了後に処理の継続が可能となる。
【００７４】
不揮発記憶装置１に障害が発生した場合は、そのコミット状態と故障した不揮発記憶装置１が入力コンテナ側か、出力コンテナ側かにより動作が異なる。以下では、入力コンテナ側の不揮発記憶装置１−Ａに故障が発生した場合と、出力コンテナ側の不揮発記憶装置２−Ｄに故障が発生した場合に分類して動作が説明される。
【００７５】
（入力コンテナ側の不揮発記憶装置２の障害発生時の処理動作）
図１２は、図１１に示される分散処理動作を行う分散システムにおいて、処理装置２−Ａから見て入力コンテナ側の不揮発記憶装置１−Ａに障害が発生した場合の処理動作の概念図である。
【００７６】
処理装置２−Ａの処理部２１は、処理中の入力コンテナ１０１−Ａ〜Ｃの入力処理及びデータ処理を保留し、正常な不揮発記憶装置１−Ｂから入力される入力コンテナ１０１−Ｎの処理を先行して行う。保留した入力コンテナ１０１−Ａ〜Ｃの処理は、不揮発記憶装置１−Ａのクラスタ制御機構により復旧した後に処理を再開する。      
【００７７】
（出力コンテナ側の不揮発記憶装置２の障害発生時の処理動作）
図１３は、図１１に示される分散処理動作を行う分散システムにおいて、処理装置２−Ａから見て出力コンテナ側の不揮発記憶装置１−Ｃに障害が発生した場合の処理動作の概念図である。
【００７８】
不揮発記憶装置１−Ｃに障害が発生した場合、処理装置２−Ａの処理部２１は、現処理に対応するＧｒｐ情報（現）１０５を参照して、管理情報１５４に処理完了フラグが書き込まれているか否かを確認する。この際、処理完了フラグが書き込まれていない場合、すなわち、処理完了フラグが書き込まれる前に不揮発記憶装置１−Ｃに故障が発生した場合、処理装置２−Ａの処理部２１は、実行中の処理を中断し、Ｇｒｐ情報メモリ２３内のＧｒｐ情報（現）１０５を削除した後、予備不揮発記憶装置５を使用して該当入力コンテナ群１０３の処理を再実行する。
【００７９】
Ｇｒｐ情報（現）１０５の管理情報１５４に処理完了フラグが書き込まれていた場合（例えば出力コンテナ１０２−Ａに対応するオープンコンテナＩＤ１５３に処理完了フラグが書き込まれている場合）、不揮発記憶装置１−Ｃに出力済みの出力コンテナ１０２−Ａは故障した不揮発記憶装置のクラスタ制御機構により復旧した後に次ステージの先処理装置２−Ｄで処理が継続される。又、処理装置２−Ａへ入力される後続の入力コンテナ１０２−Ｂ〜Ｎについては、予備不揮発記憶装置５を使用して処理が継続される。
【００８０】
以上のように、本発明による分散処理システムによれば、障害が発生した場合、処理装置２は該当するＧｒｐ情報（現）１０５、Ｇｒｐ情報コンテナ（現）１０６、Ｇｒｐ情報コンテナ（履歴）１０７のいずれかを確認することで再処理の要否を判断できる。このため、処理装置２が故障した場合における再実行の要否の判断が容易となり、高速に再処理することができる。又、チェックポイント・リスタート方式のように大量の処理済データの破棄と再処理が不要であり、コミット・ロールバック方式のように入力データ（電文）単位でのコミット制御が不要で複数の入力データをまとめた入力コンテナ群単位で再実行の要否を管理できるという利点がある。
【００８１】
又、処理装置２間に不揮発記憶装置１等を設けずに直接データの送受信を行う方式の場合は、サーバ故障が発生すると上位の処理装置（データ入力元）や下位の処理装置（データ出力先）と連携して実行途中の処理の同期等を行う必要があり、再処理方式が複雑になる。本発明によれば、処理装置２間に不揮発記憶装置１を相互に接続し、データの送受信や処理状態の管理に利用することで正常な処理装置２と連携することなく容易に処理の再開が可能となり、処理装置２の故障が発生した場合でも該当処理装置２のみでリカバリ処理を実行することができる。
【００８２】
以上、本発明の実施の形態を詳述してきたが、具体的な構成は上記実施の形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。
【図面の簡単な説明】
【００８３】
【図１】図１は、本発明による分散処理システムの構成図である。
【図２】図２は、本発明による分散処理システムのデータの分散処理動作の概念図である。
【図３】図３は、本発明による分散処理システムの実施の形態における「分散処理」の機能ブロック図である。
【図４】図４は、本発明に係るコンテナ及びコンテナ群の実施の形態における構造図である。
【図５】図５は、本発明に係るＧｒｐ情報コンテナ（現）と、Ｇｐ情報コンテナ（履歴）の実施の形態における構造図である。
【図６】図６は、本発明に係るＧｒｐ情報の実施の形態における構成図である。
【図７】図７は、本発明に係る処理装置の実施の形態における再処理動作のフロー図である
【図８】図８は、本発明に係る処理装置の実施の形態における再処理動作において、出力側の不揮発記憶装置に、完了フラグが書き込まれたＧｒｐ情報コンテナ（現）が存在する場合の機能ブロック図である。
【図９】図９は、本発明に係る処理装置の実施の形態における再処理動作において、出力側の不揮発記憶装置に、完了フラグか書き込まれていないＧｒｐ情報コンテナ（現）が存在する場合の機能ブロック図である。
【図１０】図１０は、処理装置の実施の形態における再処理動作において、出力側の不揮発記憶装置にＧｒｐ情報コンテナ（現）がない場合の機能ブロック図である。
【図１１】図１１は、本発明による分散処理システムの実施の形態における通常時の分散処理動作の概念図である。
【図１２】図１２は、本発明による分散システムの実施の形態における、入力側の不揮発記憶装置に障害が発生した場合の処理動作の概念図である。
【図１３】図１３は、本発明による分散システムの実施の形態における、出力側の不揮発記憶装置に障害が発生した場合の処理動作の概念図である。
【符号の説明】
【００８４】
１、１−Ａ〜Ｎ：不揮発記憶装置
２、２−Ａ〜Ｎ：処理装置
３：ネットワーク
４：退避装置
５：予備不揮発記憶装置
１１、１１−Ａ、１１−Ｃ：データ制御部
１２、１２−Ａ、１２−Ｃ：データ記憶部
１３、１３−Ａ、１３−Ｃ：Ｇｒｐ情報（現）記憶部
１４、１４−Ａ，１４−Ｃ：Ｇｒｐ情報（履歴）記憶部
２１：処理部
２２：入力部
２３、４１：Ｇｒｐ情報メモリ
１００：データ
１０１：入力コンテナ
１０２：出力コンテナ
１０３：入力コンテナ群
１０４：出力コンテナ群
１０５：Ｇｒｐ情報（現）
１０６：Ｇｒｐ情報コンテナ（現）
１０７：Ｇｒｐ情報コンテナ（履歴）
【図１】
2006285576.tif 000003
【図２】
2006285576.tif 000004
【図３】
2006285576.tif 000005
【図４】
2006285576.tif 000006
【図５】
2006285576.tif 000007
【図６】
2006285576.tif 000008
【図７】
2006285576.tif 000009
【図８】
2006285576.tif 000010
【図９】
2006285576.tif 000011
【図１０】
2006285576.tif 000012
【図１１】
2006285576.tif 000013
【図１２】
2006285576.tif 000014
【図１３】
2006285576.tif 000015