(57)【特許請求の範囲】
【請求項１】
複数のデータを、複数のデータ間の処理順序に従って、それぞれ複数の状態に遷移させ、データごとに各状態への状態遷移時刻を通知するデータ遷移部と、
前記データ遷移部により通知されたデータごとの各状態への状態遷移時刻を記憶する通知記憶部と、
前記通知記憶部に記憶されているデータごとの状態遷移時刻に基づいて、複数のデータの状態遷移が前記処理順序に従っているか否かを判定する判定部とを有することを特徴とするデータ処理装置。
【請求項２】
前記判定部は、
複数のデータの状態遷移時刻を状態ごとに比較し、前記処理順序において先の順序にあるデータの特定の状態への状態遷移時刻が前記処理順序において後の順序にあるデータの前記特定の状態への状態遷移時刻よりも後の時刻となっている場合に、複数のデータの状態遷移が前記処理順序に従っていないと判定することを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記判定部は、
前記通知記憶部に記憶されているデータごとの各状態への状態遷移時刻に基づいて、データごとにそれぞれの状態遷移が所定の制限時間内に行われているか否かを判定することを特徴とする請求項１に記載のデータ処理装置。
【請求項４】
前記データ遷移部は、
各データを所定の遷移順序に従って複数の状態に遷移させ、各データについて状態ごとに当該状態への未到、当該状態が継続中、当該状態を通過済みのいずれかを示すフラグを設定し、各状態のフラグの内容を通知し、
前記通知記憶部は、
前記データ遷移部により通知された各データの各状態のフラグ内容を記憶し、
前記判定部は、
前記通知記憶部に記憶されている各データの各状態のフラグ内容に基づいて、データごとに状態遷移が前記遷移順序に従っているか否かを判定することを特徴とする請求項１に記載のデータ処理装置。
【請求項５】
前記データ遷移部は、
各データについて状態ごとに当該状態への未到、当該状態が継続中、当該状態を通過済みのいずれかを示すフラグを設定し、各状態のフラグの内容を通知し、
前記通知記憶部は、
前記データ遷移部により通知された各データの各状態のフラグ内容を記憶し、
前記判定部は、
前記通知記憶部に記憶されている各データの各状態のフラグ内容に基づいて、単一のデータに対して複数の状態が同時継続しているか否かを判定することを特徴とする請求項１に記載のデータ処理装置。
【請求項６】
前記データ遷移部は、
各データについて状態ごとに当該状態への未到、当該状態が継続中、当該状態を通過済みのいずれかを示すフラグを設定し、各状態のフラグの内容を通知し、
前記通知記憶部は、
前記データ遷移部により通知された各データの各状態のフラグ内容を記憶し、
前記判定部は、
前記通知記憶部に記憶されている各データの各状態のフラグ内容に基づいて、いずれかのデータが消失しているか否かを判定することを特徴とする請求項１に記載のデータ処理装置。
【請求項７】
複数のデータを、複数のデータ間の処理順序に従って、それぞれ複数の状態に遷移させ、データごとに各状態への状態遷移時刻を通知するデータ遷移装置に接続され、
前記データ遷移装置から、データごとの各状態への状態遷移時刻を受信する通知受信部と、
前記通知受信部により受信されたデータごとの各状態への状態遷移時刻を記憶する通知記憶部と、
前記通知記憶部に記憶されているデータごとの状態遷移時刻に基づいて、複数のデータの状態遷移が前記処理順序に従っているか否かを判定する判定部とを有することを特徴とするデータ処理装置。
【請求項８】
前記判定部は、
複数のデータの状態遷移時刻を状態ごとに比較し、前記処理順序において先の順序にあるデータの特定の状態への状態遷移時刻が前記処理順序において後の順序にあるデータの前記特定の状態への状態遷移時刻よりも後の時刻となっている場合に、複数のデータの状態遷移が前記処理順序に従っていないと判定することを特徴とする請求項７に記載のデータ処理装置。
【請求項９】
前記データ処理装置は、更に、
前記判定部の判定結果を表示する表示部を有することを特徴とする請求項１〜８のいずれかに記載のデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、データを複数の状態に遷移させるシステムにおける障害検出に関し、例えばデータを受信→集信→仕分→統合→配信の順に状態遷移させるＥＤＩ（Ｅｌｅｃｔｒｏｎｉｃ  Ｄａｔａ  Ｉｎｔｅｒｃｈａｎｇｅ）システムにおける障害検出に関する。
【背景技術】
【０００２】
図１５は、特開平１０−２７１１９号公報に示される従来のＥＤＩシステムにおけるデータフローを示した図である。ユーザからのデータを受信したＥＤＩシステムは、集信ファイルとしてメールボックスに保存する。ＥＤＩシステムにおける仕分プロセスは、集信ファイルを宛先ごとに分割し、仕分ファイルを作成する。ＥＤＩシステムにおける統合プロセスは、仕分ファイルを宛先ごとに結合して、配信ファイルを作成し、宛先のメールボックスに保存する。ユーザは、配信ファイルをＥＤＩシステムから受信する。あるいは、ＥＤＩシステムは、保管期限までにユーザが受信しない場合に、配信ファイルを削除する。
【０００３】
図１６は、図１５に示した従来のデータフローの実現に用いられる集信ファイル管理ＤＢ，管理情報ＤＢ、配信ファイル管理ＤＢである。ＥＤＩシステムは、受信されたファイルから集信ファイルが作成されたタイミングで、集信ファイルに対応する集信ファイルＩＤを新たに採番し、集信ファイル管理ＤＢに記録する。ＥＤＩシステムは、集信されたファイルから仕分が行われ、仕分ファイルが作成されたタイミングで、仕分ファイルに対応する仕分ファイルＩＤを新たに採番し、仕分けファイル管理ＤＢに記録する。ＥＤＩシステムは、仕分ファイル間で統合を行い、配信ファイルが作成されるタイミングで、配信ファイルに対応する配信ファイルＩＤを新たに採番し、配信ファイル管理ＤＢに記録する。
【０００４】
図１５および図１６により構築されたシステムでは、図１７のように障害検出が行われる。
【０００５】
個々のデータの障害は、データの存在の異常、データ消失、集信異常、仕分異常、統合異常、配信異常、受信処理フロー異常、集信処理フロー異常、仕分処理フロー異常、統合処理フロー異常、複数のデータ間における処理順序異常に分類できる。
【０００６】
データの存在の異常とは、あるデータについて、複数の状態（受信と集信など）が、継続中であることを意味する。
【０００７】
データの消失とは、あるデータについて、集信ファイル管理ＤＢ，管理情報ＤＢ、配信ファイル管理ＤＢのいずれかにＩＤが記録されているのにファイルの実体を失うことである。
集信異常とは、集信時の異常である。
仕分異常とは、仕分時の異常である。
統合異常とは、統合時の異常である。
配信異常とは、配信時の異常である。
受信処理フロー異常とは、受信が行われた後、集信が行われず他の処理がおこなわれる異常である。
集信処理フロー異常とは、集信が行われた後、仕分が行われず他の処理がおこなわれる異常である。
仕分処理フロー異常とは、仕分が行われた後、統合が行われず他の処理がおこなわれる異常である。
統合処理フロー異常とは、統合が行われた後、配信が行われず他の処理がおこなわれる異常である。
【０００８】
複数のデータ間における処理順序異常とは、ファイルが作成された順序が保たれない異常である。つまり、複数のデータ間の処理順序に従って、状態遷移が行われていない場合であり、具体的には、データ間の追い越し（任意の２つのデータについて、一方のデータが、他方のデータより、ある状態に先に遷移し、以降の状態には、他方のデータが一方のデータより先に遷移すること）が起こっている場合である。
【０００９】
これらの異常に対して、従来技術では、集信異常、仕分異常、統合異常、配信異常は検出できるが、その他の異常については、検出ができなかった。
【特許文献１】特開平１０−２７１１９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
従来技術においては、ファイルの状態で障害検出を行うため、複数のデータ間における処理順序異常が生じた場合にも、この障害を検出することができなかった。
【００１１】
また、同様に、ファイルの状態で障害検出を行うため、データの存在の異常、受信処理フロー異常などデータの状態遷移に異常が発生した場合などにおいて、障害検出が行えず、障害検出範囲が狭かったという問題があった。例としては、仕分ファイルができた後、統合せずに、メールボックスに直接データを出力してしまうようなケースでは、正常に扱われてしまう。
【００１２】
この発明は上記のような問題点を解決することを主な目的とし、複数のデータを、複数のデータ間の処理順序に従って、それぞれ複数の状態に遷移させる場合に、複数のデータの状態遷移が処理順序に従っているか否かを判定可能な仕組みを実現することを主な目的とする。
【課題を解決するための手段】
【００１３】
本発明に係るデータ処理装置は、
複数のデータを、複数のデータ間の処理順序に従って、それぞれ複数の状態に遷移させ、データごとに各状態への状態遷移時刻を通知するデータ遷移部と、
前記データ遷移部により通知されたデータごとの各状態への状態遷移時刻を記憶する通知記憶部と、
前記通知記憶部に記憶されているデータごとの状態遷移時刻に基づいて、複数のデータの状態遷移が前記処理順序に従っているか否かを判定する判定部とを有することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、データごとの各状態への状態遷移時刻に基づいて障害を検出するため、ファイルが生成されないケースを含め、複数のデータの状態遷移が処理順序に従っていない障害を有効に検出することができる。
【発明を実施するための最良の形態】
【００１５】
実施の形態１．
本実施の形態では、ＥＤＩシステム上で、障害管理のために、データの状態をＥＤＩにおける状態（受信、集信、仕分、統合、配信の５つの状態）として定義し、データの状態をデータ毎に記録し、データ毎の状態記録から、データの流れの異常、複数のデータ間における処理順序異常などを検出する。
【００１６】
図１は、本実施の形態に係るＥＤＩシステム１（データ処理装置）の構成図である。
【００１７】
図１において、ＥＤＩ処理部２はＥＤＩシステムにおける状態遷移を実行する。ＥＤＩ処理部２は、ＥＤＩシステムにおける各状態に対応させて受信処理部２１、集信処理部２２、仕分処理部２３、統合処理部２４、配信処理部２５を備えている。
【００１８】
ＥＤＩ処理部２は、複数のデータ（データＸ１〜データＸｎ）を受信し、データの状態が遷移するタイミングで、それぞれのデータについてイベント通知を行う。イベントの内容は、データ名およびデータが遷移した状態、遷移した時刻である。ＥＤＩ処理部２が、実行するデータの状態を図３に示す。すなわち、状態Ｐ１が受信状態であり、状態Ｐ２が集信状態であり、状態Ｐ３が仕分状態であり、状態Ｐ４が統合状態であり、状態Ｐ５が配信状態である。ＥＤＩ処理部２は、このように受信→集信→仕分→統合→配信という遷移順序に従って各データの状態遷移を行う。
【００１９】
また、ＥＤＩ処理部２は、複数のデータに対して、所定の処理順序に従って状態の遷移を行う。例えば、本実施の形態では、Ｘ１→Ｘ２→Ｘ３・・・Ｘｎという処理順序となり、ＥＤＩ処理部２はこの処理順序に従って、Ｘ１→Ｘ２→Ｘ３・・・Ｘｎという順序で状態遷移を実行する。
【００２０】
なお、ＥＤＩ処理部２は、データ遷移部の例である。
【００２１】
状態記録部３は、ＥＤＩ処理部２からのイベント通知を受信し、受信したイベント通知の内容をデータ毎状態記録部４に記憶させる。
【００２２】
データ毎状態記録部４は、状態記録部３からの指示に従い、ＥＤＩ処理部２からのイベント通知の内容を記憶する。データ毎状態記録部４は、通知記憶部の例である。
【００２３】
状態遷移処理時間マスタ５には、状態遷移に許容される最大時間が示される。例えば、状態遷移処理時間マスタ５は、図４のように設定される。すなわち、受信状態から集信状態への遷移には、最大Ｔ１＿２［ｓｅｃ］の時間がかかることを許容する。集信状態から仕分状態への遷移には、最大Ｔ２＿３［ｓｅｃ］の時間がかかることを許容する。仕分状態から統合状態への遷移には、最大Ｔ３＿４［ｓｅｃ］の時間がかかることを許容する。統合状態から配信状態への遷移には、最大Ｔ４＿５［ｓｅｃ］の時間がかかることを許容する。
【００２４】
障害検出部１０は、データ毎状態記録部４に記憶されている各データのイベント通知の内容と状態遷移処理時間マスタ５の状態遷移に許容される最大時間とに基づき、各データの障害を検出する。障害検出部１０は、判定部の例である。
【００２５】
次に、本実施の形態１に係るＥＤＩシステムのハードウェア構成例を図２に示す。
【００２６】
図２において、２０１は、装置内部のシステムバスである。２０２はプログラムを実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。２０３はＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。ＲＭＡ２０３は、揮発性メモリの一例である。２０４はハードディスクドライブである。ハードディスクドライブ２０４は、不揮発性メモリの一例である。２０５は、ＦＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｃ）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）メモリ等の記憶媒体のインタフェースとなる記憶媒体Ｉ／Ｆである。２０６はディスプレイインタフェースを介して接続されるＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）等の表示装置である。２０７はキーボード等の入力Ｉ／Ｆである。
【００２７】
ハードディスクドライブ２０４には、オペレーティングシステム（ＯＳ）、ウィンドウシステム、プログラム群、ファイル群などが記憶されている。プログラム群は、ＣＰＵ２０２、ＯＳ、ウィンドウシステムにより実行される。
【００２８】
上記プログラム群として、図１に「〜部」として説明する機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵにより読み出され実行される。
【００２９】
また、ファイル群として、データ毎状態記録テーブル、状態遷移処理時間マスタなどが記憶されている。
【００３０】
また、実施の形態の説明において「〜部」として説明するものは、図示していないＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、ハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。
【００３１】
また、ＥＤＩシステム１を実現するプログラムは、また、磁気ディスク装置、ＦＤ、光ディスク、ＣＤ（コンパクトディスク）、ＭＤ（ミニディスク）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のその他の記憶媒体による記録装置を用いて記憶されても構わない。
【００３２】
次に、状態記録部３が保持するデータ毎状態記録テーブルについて説明する。
【００３３】
図５は、データ毎状態記録テーブルの例を示す。状態記録部３は、データが遷移した状態がＰ１であった際に、データ毎状態記録テーブル上に、新規にレコードを作成する。該データにおけるＰ１の時刻をイベント通知により通知された状態遷移時刻にセットし、状態フラグを１にセットする。Ｐ２〜Ｐ５の時刻は空白にセットし、Ｐ２〜Ｐ５の状態フラグは０にセットする。
【００３４】
データ毎状態記録テーブルの状態フラグの値の意味を図６に示す。すなわち、状態フラグ＝０とは、該当の状態に至らないこと（該当の状態に未到）を意味する。状態フラグ＝１とは、該当の状態であること（該当の状態の継続）を意味する。状態フラグ＝２とは、該当の状態を通過したこと（該当の状態を通過済み）を意味する。
【００３５】
次に、図８を用いて、本実施の形態に係るＥＤＩシステムの動作を概説する。
【００３６】
まず、Ｓ８０１において、ＥＤＩ処理部２が、複数のデータ（データＸ１〜データＸｎ）に対してＥＤＩ処理を行う（データ遷移ステップ）。つまり、複数のデータに対して受信、集信、仕分、統合、配信の各処理を行い、各状態への状態遷移時刻を計時するとともに、各状態の状態フラグを設定する。
【００３７】
次に、Ｓ８０２において、ＥＤＩ処理部２は、データ遷移があったタイミングにおいて、状態遷移時刻、状態フラグの内容などをイベント通知として通知する（通知ステップ）。
【００３８】
次に、Ｓ８０３において、データ毎状態記録部４が、イベント通知の内容をデータ毎状態記録テーブルに記録する（通知記憶ステップ）。
【００３９】
次に、Ｓ８０４において、障害検出部１０が、データ毎状態記録テーブルに記録されているイベント通知に基づき、障害検出を行う（判定ステップ）。検出する障害内容は、図７に示すとおりである。
【００４０】
次に、図９に沿って、障害検出部１０の動作を説明する。障害検出部１０では、データ毎状態記録テーブルをチェックすることにより障害を検出する。
【００４１】
先ず、データのカウンタｉに１をセットする（ステップＳ１１０１）。ここで、カウンタｉは、図１及び図５に示すＸ１〜Ｘｎをカウントするためのカウンタである。そして、データのカウンタｉがデータ数ｎ以下の場合にステップＳ１１０３へ進む。ｉがデータ数ｎよりも大きい場合には、終了する（ステップＳ１１０２）。
【００４２】
データのカウンタｉがデータ数ｎ以下の場合に、状態のカウンタｍに１をセットする（ステップＳ１１０３）。この状態のカウンタｍは、図３及び図５に示す状態Ｐ１〜Ｐ５をカウントするためのカウンタである。
【００４３】
次に、あるデータにおける処理中状態の数ｋ＝０をセットする（ステップＳ１１０４）。この処理中状態の数ｋは、状態フラグの値が１（状態が継続中）である状態の数をカウントするためのカウンタである。
【００４４】
次に、状態のカウンタｍが４以下であるか否かを判断し、ｍが４以下の場合、ステップＳ１１０６へ進む。ｍが４より大きい場合、ステップＳ１１１６へ進む（ステップＳ１１０５）。
【００４５】
次に、状態フラグＶｉｍの値が１（状態が継続中）であるかどうかを判断し、Ｖｉｍの値が１ではない時、ステップＳ１１０８へ進む。Ｖｉｍの値が１の時、ステップＳ１１０７へ進む（ステップＳ１１０６）。
【００４６】
Ｓ１１０６においてＶｉｍの値が１の時、処理中状態の数ｋをインクリメントする（ステップＳ１１０７）。
【００４７】
次に、Ｔｉｍ＋１がＴｉｍ＋Ｔｍ＿ｍ＋１以下であるかを判断し、Ｔｉｍ＋１がＴｉｍ＋Ｔｉｍ＿ｍ＋１以下の場合にステップＳ１１１０へ進む。Ｔｉｍ＋１の値がＴｉｍ＋Ｔｍ＿ｍ＋１より大きい場合、ステップＳ１１０９へ進む（ステップＳ１１０８）。ここで、Ｔｉｍ＋１及びＴｉｍは、データ毎状態記録テーブルに示されている状態遷移時刻（図５）であり、Ｔｍ＿ｍ＋１は、状態遷移処理時間マスタ５に示されている状態遷移に許容される最大時間（図４）である。例えば、ｉ＝１、ｍ＝２の場合、Ｔ１３がＴ１２＋Ｔ２＿３以下であるかどうかを判断する。
【００４８】
Ｓ１１０８において、Ｔｉｍ＋１の値がＴｉｍ＋Ｔｍ＿ｍ＋１より大きい場合（Ｙｅｓの場合）、ｍ＝１であれば、集信異常を検出したことになる。ｍ＝２であれば、仕分異常を検出したことになる。ｍ＝３であれば、統合異常を検出したことになる。ｍ＝４であれば、配信異常を検出したことになる（ステップＳ１１０９）。
【００４９】
一方、Ｓ１１０８において、Ｔｉｍ＋１の値がＴｉｍ＋Ｔｍ＿ｍ＋１以下の場合、ｉが１以下であるかどうかを判断し、ｉが１以下の場合、ステップＳ１１１３へ進む。ｉが１より大きい場合には、ステップＳ１１１１へ進む（ステップＳ１１１０）。
【００５０】
次に、Ｓ１１１０においてｉが１より大きい場合、ＴｉｍがＴｉ−１ｍ以上であるかどうかを判断し、ＴｉｍがＴｉ−１ｍ以上の場合には、ステップＳ１１１３へ進む。ＴｉｍがＴｉ−１ｍよりも小さい場合には、ステップＳ１１１２へ進む（ステップＳ１１１１）。
【００５１】
Ｓ１１１１でＴｉｍがＴｉ−１ｍよりも小さい場合は、複数のデータ間における処理順序異常を検出したことになる（ステップＳ１１１２）。つまり、ＴｉｍがＴｉ−１ｍよりも小さい場合は、処理順序において先の順序にあるデータ（例えばＸ２）の特定状態（例えばＰ３）への状態遷移時刻（例えばＴ２３）が処理順序において後の順序にあるデータ（例えばＸ３）の当該状態（例えばＰ３）への状態遷移時刻（Ｔ３３）よりも後の時刻であるため、状態遷移が処理順序に従っていないことになり、複数のデータ間における処理順序異常を検出したことになる（ステップＳ１１１２）。
【００５２】
一方、Ｓ１１１１においてＴｉｍがＴｉ−１ｍ以上の場合には、状態フラグＶｉｍがＶｉｍ＋１以上であるかどうかを判断し、ＶｉｍがＶｉｍ＋１以上の場合、ステップＳ１１１４へ進む。ＶｉｍがＶｉｍ＋１よりも小さい場合には、ステップＳ１１１５へ進む（ステップＳ１１１３）。
【００５３】
Ｓ１１１３においてＶｉｍがＶｉｍ＋１よりも小さい場合は、遷移順序において先の状態が未到であるにもかかわらず遷移順序において後の状態が継続中又は通過済みである場合、又は遷移順序において先の状態が継続中であるにもかかわらず遷移順序において後の状態が通過済みである場合なので、処理フロー異常となる。そして、ｍ＝１の場合、受信処理フロー異常を検出したことになる。ｍ＝２の場合、集信処理フロー異常を検出したことになる。ｍ＝３の場合、仕分処理フロー異常を検出したことになる。ｍ＝４の場合、統合処理フロー異常を検出したことになる（ステップＳ１１１４）。
【００５４】
一方、Ｓ１１１３においてＶｉｍがＶｉｍ＋１以上の場合は、ｍをインクリメントする（ステップＳ１１１５）。
【００５５】
また、Ｓ１１０５においてｍが４よりも大きい場合は、ｋが１より大きいかどうかを判断し、ｋが１より大きい場合、ステップＳ１１１７へ進む。ｋが１以下の場合、ステップＳ１１１８へ進む（ステップＳ１１１６）。
【００５６】
Ｓ１１１６においてｋが１より大きい場合、データの存在の異常を検出したことになる（ステップＳ１１１７）。つまり、単一のデータについて複数の状態が同時継続していることになるため、データの存在の異常が検出される。
【００５７】
一方、Ｓ１１１６においてｋが１以下の場合、ｋが０であるかどうかを判断し、ｋが０の場合、ステップＳ１１１９へ進む。ｋが０以外の場合、ステップＳ１１２０へ進む（ステップＳ１１１８）。
【００５８】
Ｓ１１１８においてｋが０の場合、現在継続している状態がないので、データの消失を検出したことになる（ステップＳ１１１９）。
【００５９】
Ｓ１１１８においてｋが０以外の場合、ｉをインクリメントし、ステップＳ１１０２へ戻る（ステップＳ１１２０）。
【００６０】
このように本実施の形態では、ＥＤＩシステムにおいて、ＥＤＩシステムのデータに対して、受信、集信、仕分、統合、配信の５つのデータの状態を定め、データ間の追い越し（システム上の任意の２つのデータについて、一方のデータが、他方のデータより、ある状態に先に遷移し、以降の状態には、他方のデータが一方のデータより先に遷移すること）が起こっていないこと、をチェックすることにより個々のデータの障害検出を行うことを特徴とする。
【００６１】
また、本実施の形態では、更に、データがＥＤＩシステムにおけるデータの状態を一つ持っていることと、データが設定時間内に状態遷移していることと、データが受信→集信→仕分→統合→配信の順に状態遷移していることと、をチェックすることにより個々のデータの障害検出を行うことを特徴とする。
【００６２】
以上のように、本実施の形態によればＥＤＩシステムにおいて、ログが出力されないケースを含め個々のデータに関する障害が発生した場合に検出を可能にする、という効果がある。
【００６３】
つまり、複数のデータの状態遷移が処理順序に従っていない障害（データ間の追い越し）や状態遷移が遷移順序に従っていないという障害などを有効に検出することができ、このため、受信、集信、仕分、統合、配信における処理の誤りを回避することができ、この結果、正当な送信元から正当な送信先への通信を確実に行うことができ、データの誤送を防止することができる。
【００６４】
実施の形態２．
図１０は、本実施の形態に係るＥＤＩシステム１００（データ遷移装置）と監視端末１１０（データ処理装置）の構成図である。
【００６５】
図１０において、ＥＤＩ処理部２は図１に示したものと同様である。通信部６は、ＥＤＩ処理部からのイベント通知を監視端末１１０に送信する。また、状態記録部３、データ毎状態記録部４、状態遷移処理時間マスタ５は図１に示したものと同様である。障害検出部１２は図１に示した障害検出部１０と一部の動作が異なるが、大部分において動作は共通する。
【００６６】
通信部７は、通信部６からイベント通知を受信する。障害表示部８は、障害検出部１２の障害検出結果を表示する。状態遷移処理時間設定部９は、監視端末１１０のユーザからの指示に従って状態遷移処理時間マスタ５の状態遷移に許容される最大時間を設定する。
【００６７】
図１１に、異常コードテーブルを示す。すなわち、異常コード１とはデータ消失がＥＤＩシステム上で発生していることを示す。異常コード２とは、データ存在の異常がＥＤＩシステム上で発生していることを示す。異常コード３とは、集信異常、仕分異常、統合異常、配信異常のいずれかがＥＤＩシステム上で発生していることを示す。異常コード４とは、受信処理フロー異常、集信処理フロー異常、仕分処理フロー異常、統合処理フロー異常のいずれかがＥＤＩシステム上で発生していることを示す。異常コード５とは、複数のデータ間における処理順序異常持たない異常現象がＥＤＩシステム上で発生していることを示す。
【００６８】
状態記録部３の動作を説明する。状態記録部３は、ＥＤＩシステム１００において、データの状態遷移が発生したタイミングでイベント通知により、通信部６および通信部７を介して、ＥＤＩ処理部２からデータ名、データの状態、時刻、状態フラグを渡される。状態記録部３は、データ毎状態記録テーブルに渡されたデータをセットする。
【００６９】
次に、図１２に沿って、障害検出部１２の動作を説明する。
【００７０】
なお、本実施の形態の障害検出部１２の動作は、Ｓ１１０３の処理の内容が異なる点、Ｓ１１２１、Ｓ１１２２、Ｓ１１２３、Ｓ１１２４、Ｓ１１２５の処理が追加されている点を除くと、図９と同じである。
【００７１】
本実施の形態においても、障害検出部１２は、データ毎状態記録部４をチェックすることにより障害を検出する。
【００７２】
先ず、Ｓ１１０１〜Ｓ１１２０について説明する。
【００７３】
最初に、障害検出部１２は、データのカウンタｉに１をセットする（ステップＳ１１０１）。
【００７４】
ｉがデータ数ｎ以下の場合にステップＳ１１０３へ進む。ｉがデータ数ｎよりも大きい場合には、終了する（ステップＳ１１０２）。
【００７５】
状態のカウンタｍに１をセットする（ステップＳ１１０３）。
【００７６】
あるデータにおける処理中状態の数ｋ＝０をセットする（ステップＳ１１０４）。
【００７７】
ｍが４以下の場合、ステップＳ１１０６へ進む。
【００７８】
ｍが４より大きい場合、ステップＳ１１１６へ進む（ステップＳ１１０５）。
【００７９】
Ｖｉｍの値が１ではない時、ステップＳ１１０８へ進む。Ｖｉｍの値が１の時、ステップＳ１１０７へ進む（ステップＳ１１０６）。
【００８０】
ｋをインクリメントする（ステップＳ１１０７）。
【００８１】
Ｔｉｍ＋１がＴｉｍ＋Ｔｉｍ＿ｍ＋１以下の場合、ステップＳ１１１０へ進む。Ｔｉｍ＋１の値がＴｉｍ＋Ｔｉｍ＿ｍ＋１より大きい場合、ステップＳ１１０９へ進む（ステップＳ１１０８）。
【００８２】
ｍ＝１であれば、集信異常を検出したことになる。ｍ＝２であれば、仕分異常を検出したことになる。ｍ＝３であれば、統合異常を検出したことになる。ｍ＝４であれば、配信異常を検出したことになる（ステップＳ１１０９）。
【００８３】
ｉが１以下の場合、ステップＳ１１１３へ進む。ｉが１より大きい場合には、ステップＳ１１１１へ進む（ステップＳ１１１０）。
【００８４】
ＴｉｍがＴｉ−１ｍ以上の場合には、ステップＳ１１１３へ進む。ＴｉｍがＴｉ−１ｍよりも小さい場合には、ステップＳ１１１２へ進む（ステップＳ１１１１）。
【００８５】
複数のデータ間における処理順序異常を検出したことになる（ステップＳ１１１２）。
【００８６】
ＶｉｍがＶｉｍ＋１以上の場合、ステップＳ１１１４へ進む。ＶｉｍがＶｉｍ＋１よりも小さい場合には、ステップＳ１１１５へ進む（ステップＳ１１１３）。
【００８７】
ｍ＝１の場合、受信処理フロー異常を検出したことになる。ｍ＝２の場合、集信処理フロー異常を検出したことになる。ｍ＝３の場合、仕分処理フロー異常を検出したことになる。ｍ＝４の場合、統合処理フロー異常を検出したことになる（ステップＳ１１１４）。
【００８８】
ｍをインクリメントする（ステップＳ１１１５）。
【００８９】
ｋが１より大きい場合、ステップＳ１１１７へ進む。ｋが１以下の場合、ステップＳ１１１８へ進む（ステップＳ１１１６）。
【００９０】
データの存在の異常を検出したことになる（ステップＳ１１１７）。
【００９１】
ｋが０の場合、ステップＳ１１１９へ進む。ｋが０以外の場合、ステップＳ１１２０へ進む（ステップＳ１１１８）。
【００９２】
データの消失を検出したことになる（ステップＳ１１１９）。
【００９３】
ｉをインクリメントし、ステップＳ１１０２へ戻る（ステップＳ１１２０）。
【００９４】
そして、障害が検知された場合には、Ｓ１１２１〜Ｓ１１２５の処理を行う。
【００９５】
Ｓ１１１７でデータの存在の異常が検出された場合は、ｈ［］およびｉおよび原因コード２を障害表示部８にイベント通知する（ステップＳ１１２１）。
【００９６】
また、Ｓ１１０９で、集信異常、仕分異常、統合異常、配信異常のいずれかが検出された場合は、ｍおよびｉおよび原因コード３を障害表示部８にイベント通知する（ステップＳ１１２２）。
【００９７】
また、Ｓ１１１４において、受信処理フロー異常、集信処理フロー異常、仕分処理フロー異常、統合処理フロー異常のいずれかが検知された場合は、ｍおよびｉおよび原因コード４を障害表示部８にイベント通知する（ステップＳ１１２３）。
【００９８】
また、Ｓ１１１２において、複数のデータ間における処理順序異常が検出された場合は、ｍおよびｉおよび原因コード５を障害表示部８にイベント通知する（ステップＳ１１２４）。
また、Ｓ１１１９において、データの消失が検出された場合は、ｉおよび原因コード１を障害表示部８にイベント通知する（ステップＳ１１２５）。
【００９９】
次に、図１３に沿って、状態遷移処理時間設定部９の流れを説明する。
【０１００】
状態遷移処理時間設定部９は、任意のタイミングでユーザにより起動される。
【０１０１】
受信状態→集信状態遷移に許容される最大時間Ｔ１＿２をユーザが入力する（ステップＳ１２０１）。
【０１０２】
集信状態→仕分状態遷移に許容される最大時間Ｔ２＿３をユーザが入力する（ステップＳ１２０２）。
【０１０３】
仕分状態→統合状態遷移に許容される最大時間Ｔ３＿４をユーザが入力する（ステップＳ１２０３）。
【０１０４】
統合状態→配信状態遷移に許容される最大時間Ｔ４＿５をユーザが入力する（ステップＳ１２０４）。
【０１０５】
状態遷移処理時間マスタ５の状態間遷移「受信状態→集信状態遷移」のレコードをオープンし、遷移に許容される最大時間にＴ１＿２をセットする（ステップＳ１２０５）。
【０１０６】
状態遷移処理時間マスタ５の状態間遷移「集信状態→仕分状態遷移」のレコードをオープンし、遷移に許容される最大時間にＴ２＿３をセットする（ステップＳ１２０６）。
【０１０７】
状態遷移処理時間マスタ５の状態間遷移「仕分状態→統合状態遷移」のレコードをオープンし、遷移に許容される最大時間にＴ３＿４をセットする（ステップＳ１２０７）。
【０１０８】
状態遷移処理時間マスタ５の状態間遷移「仕分状態→統合状態遷移」のレコードをオープンし、遷移に許容される最大時間にＴ４＿５をセットする（ステップＳ１２０８）。
【０１０９】
次に、図１４に沿って、障害表示部８の動作を説明する。
【０１１０】
障害表示部８は、障害検出部１２が障害を検出したタイミングでイベント通知が行われ、理由コードｊおよび状態保持配列ｈ［］、状態のカウンタｍおよびデータのカウンタｉの全てあるいは一部を受け取る（ステップＳ１３０１）。
【０１１１】
理由コードｊが１であった場合（ステップＳ１３０２）、データｉが状態を持たない旨を表示する（ステップＳ１３０３）。
【０１１２】
理由コードｊが２であった場合（ステップＳ１３０４）、配列カウンタｋを１にセットする（ステップＳ１３０５）。
【０１１３】
ｈ［ｋ］が１であった場合（ステップＳ１３０６）、データｉが状態Ｐｊを持つ旨を表示する（ステップＳ１３０７）。
【０１１４】
ｋをインクリメントする（ステップＳ１３０８）。
【０１１５】
ｋが４以下である場合には、ステップＳ１３０６に進む（ステップＳ１３０９）。
【０１１６】
理由コードｊが３であった場合（ステップＳ１３１０）、ｍの値を判定する。
【０１１７】
ｍ＝１の場合（ステップＳ１３１１）、データが設定時間内に受信→集信間遷移しなかった旨を表示する（ステップＳ１３１２）。ｍ＝２の場合（ステップＳ１３１３）、データが設定時間内に集信→仕分間遷移しなかった旨を表示する（ステップＳ１３１４）。ｍ＝３の場合（ステップＳ１３１５）、データが設定時間内に仕分→統合間遷移しなかった旨を表示する（ステップＳ１３１６）。ｍの値がいずれでもない場合には、データが設定時間内に統合→配信間遷移しなかった旨を表示する（ステップＳ１３１７）。
【０１１８】
理由コードｊが４であった場合（ステップＳ１３１８）、ｍの値を判定する。
【０１１９】
ｍ＝１の場合（ステップＳ１３２０）、データｉが受信→集信遷移を行わなかった旨を表示する（ステップＳ１３２０）。ｍ＝２の場合（ステップＳ１３２１）、データｉが集信→仕分遷移を行わなかった旨を表示する（ステップＳ１３２２）。ｍ＝３の場合（ステップＳ１３２３）、データｉが仕分→統合遷移を行わなかった旨を表示する（ステップＳ１３２４）。ｍの値がいずれでもない場合には、データが統合→配信遷移を行わなかった旨を表示する（ステップＳ１３２５）。
【０１２０】
理由コードｊがいずれでもなかった場合には、データｉとデータｉ−１間で状態遷移の追い越しがあったことを表示する（ステップＳ１３２６）。
【０１２１】
このように、本実施の形態では、ＥＤＩシステムを監視する監視端末において、ＥＤＩシステムのデータに対して、受信、集信、仕分、統合、配信の５つの状態を定め、個々のデータの状態の変化を、データがＥＤＩシステムにおけるデータの状態を一つ持っていることと、データが設定時間内に状態遷移していることと、データが受信→集信→仕分→統合→配信の順に状態遷移していることと、データ間の追い越し（システム上の任意の２つのデータについて、一方のデータが、他方のデータより、ある状態に先に遷移し、以降の状態には、他方のデータが一方のデータより先に遷移すること）が起こっていないこと、をチェックすることにより個々のデータの障害検出を行うことを特徴とする。
【０１２２】
また、受信→集信、集信→仕分、仕分→統合、統合→配信のそれぞれの状態遷移が行われるまでに許容される最大時間を変更することにより、障害の検出頻度を調整する手段を有することを特徴とする。
【０１２３】
また、データがＥＤＩシステムにおけるデータの状態を持たなかった場合に、該当するデータを画面上に表示する障害表示手段を有することを特徴とする。
【０１２４】
データがＥＤＩシステムにおけるデータの状態を複数持った場合に、該当するデータと該当するデータの有する状態を画面上に表示する障害表示手段を有することを特徴とする。
【０１２５】
また、データが設定時間内に、状態遷移が行われなかった場合に、該当するデータと該当するデータがどの状態からどの状態へ遷移することができなかったかを画面上に表示する障害表示手段を有することを特徴とする。
【０１２６】
また、データが受信→集信→仕分→統合→配信の順に、状態遷移が行われなかった場合に、該当するデータと該当するデータがどの状態からどの状態へ遷移したかを画面上に表示する障害表示手段を有することを特徴とする。
【０１２７】
また、データの追い越しが発生した場合に、該当するデータと該当するデータがどの状態からどの状態へ遷移する段階で追い越しが発生したかを画面上に表示する障害表示手段を有することを特徴とする。
【０１２８】
また、障害検出が行われたデータについて、データを送ったユーザおよびユーザへの連絡先を表示する障害表示手段を有することを特徴とする。
【０１２９】
このように、本実施の形態によれば、状態遷移に許容される最大時間をユーザが設定することにより、障害の検出頻度を調整することができる、という効果がある。また、どのデータのどの状態において異常を検出したかを表示することができる、という効果がある。
【０１３０】
なお、本実施の形態における障害表示部８及び状態遷移処理時間設定部９を実施の形態１に示したＥＤＩシステムの構成に組み込むことも可能である。
【図面の簡単な説明】
【０１３１】
【図１】本発明の実施の形態１におけるＥＤＩシステムの構成例を示すブロック図である。
【図２】本発明の実施の形態１におけるＥＤＩシステムのハードウェア構成例を示すブロック図である。
【図３】本発明の実施の形態１および実施の形態２において、ＥＤＩシステム上でのデータの状態と状態変数とのマッピングを示すテーブルである。
【図４】本発明の実施の形態１および実施の形態２におけるＥＤＩシステム上の状態間の遷移までに許容される最大時間を設定した状態遷移処理時間マスタを示すテーブルである。
【図５】本発明の実施の形態１および形態２におけるＥＤＩシステム上のデータ毎状態記録テーブルである。
【図６】本発明の実施の形態１および形態２におけるＥＤＩシステム上のデータ毎状態記録の状態フラグとして記録される値とその意味を示す状態フラグテーブルである。
【図７】本発明の実施の形態１および形態２における障害検出方法を示す図である。
【図８】本発明の実施の形態１におけるＥＤＩシステムの動作例を概説するフローチャート図である。
【図９】本発明の実施の形態１における障害検出アルゴリズムを示すフローチャート図である。
【図１０】本発明の実施の形態２におけるＥＤＩシステムにおける監視方式を示すブロック図である。
【図１１】本発明の実施の形態２における異常コードと異常コードが意味する異常現象を示した異常コードテーブルである。
【図１２】本発明の実施の形態２における障害検出アルゴリズムを示すフローチャート図である。
【図１３】本発明の実施の形態２におけるＥＤＩシステム上の状態遷移に許容される最大時間設定アルゴリズムを示すフローチャート図である。
【図１４】本発明の実施の形態２におけるＥＤＩシステム上の障害の表示アルゴリズムを示すフローチャート図である。
【図１５】従来例におけるデータフローを示す図である。
【図１６】従来例におけるデータ管理方式を示す図である。
【図１７】従来例における障害検出方法を示す図である。
【符号の説明】
【０１３２】
１  ＥＤＩシステム、２  ＥＤＩ処理部、３  状態記録部、４  データ毎状態記録部、５  状態遷移処理時間マスタ、６  通信部、７  通信部、８  障害表示部、９  状態遷移処理時間設定部、１０  障害検出部、１２  障害検出部、２１  受信処理部、２２  集信処理部、２３  仕分処理部、２４  統合処理部、２５  配信処理部、１００  ＥＤＩシステム、１１０  監視端末。
【図１】
0004728082.tif 000002
【図２】
0004728082.tif 000003
【図３】
0004728082.tif 000004
【図４】
0004728082.tif 000005
【図５】
0004728082.tif 000006
【図６】
0004728082.tif 000007
【図７】
0004728082.tif 000008
【図８】
0004728082.tif 000009
【図９】
0004728082.tif 000010
【図１０】
0004728082.tif 000011
【図１１】
0004728082.tif 000012
【図１２】
0004728082.tif 000013
【図１３】
0004728082.tif 000014
【図１４】
0004728082.tif 000015
【図１５】
0004728082.tif 000016
【図１６】
0004728082.tif 000017
【図１７】
0004728082.tif 000018