(57)【要約】【課題】ロールバックに起因する処理のやり直しを抑制することを可能とするデータ処理プログラム、データ処理装置及びデータ処理方法を提供する。【解決手段】複数のデータのうちの何れかのデータの加工済データの生成後であって、加工済データの送信前に、何れかのデータより前の受信順序に対応付けられて記憶部に記憶された他のデータのロールバックを検出すると、何れかのデータの加工済データを記憶部とは異なる他の記憶部に記憶するとともに、何れかのデータの加工済データの識別情報を、何れかのデータに対応付けて記憶部に記憶する。【選択図】図１１
2018147451.tif 000002
【特許請求の範囲】
【請求項１】
受信した複数のデータを前記複数のデータそれぞれの受信順序に対応付けて記憶部に記憶すると共に、前記複数のデータそれぞれの加工済データを生成して、生成した前記加工済データを前記受信順序に従って送信する処理をコンピュータに実行させるデータ処理プログラムにおいて、
前記複数のデータのうちの何れかのデータの加工済データの生成後であって、該加工済データの送信前に、前記何れかのデータより前の受信順序に対応付けられて前記記憶部に記憶された他のデータのロールバックを検出すると、前記何れかのデータの加工済データを前記記憶部とは異なる他の記憶部に記憶するとともに、前記何れかのデータの加工済データの識別情報を、前記何れかのデータに対応付けて前記記憶部に記憶する、
処理を前記コンピュータに実行させることを特徴とするデータ処理プログラム。
【請求項２】
請求項１において、
前記識別情報を記憶する処理では、前記ロールバックを検出した場合において、前記他のデータの加工済データが生成されている場合、前記他のデータの加工済データを前記他の記憶部に記憶するとともに、前記他のデータの加工済データの識別情報を、前記他のデータに対応付けて前記記憶部に記憶する、
ことを特徴とするデータ処理プログラム。
【請求項３】
請求項１において、
前記加工済データを生成する処理では、前記他の記憶部に前記複数のデータに含まれる特定のデータの加工済データが記憶されている場合、前記複数のデータのうち、前記特定のデータ以外のデータの加工済データの生成を行う、
ことを特徴とするデータ処理プログラム。
【請求項４】
請求項１において、
前記加工済データを送信する処理では、前記他の記憶部に記憶された加工済データが存在する場合、生成した前記加工済データ及び前記他の記憶部に記憶された加工済データそれぞれを、前記受信順序に従って送信先に送信する、
ことを特徴とするデータ処理プログラム。
【請求項５】
請求項１において、さらに、
前記ロールバックを検出した後に、前記他の記憶部に記憶された特定のデータの加工済データが生成された場合、前記特定のデータの加工済データを前記他の記憶部に記憶するとともに、前記特定のデータの加工済データの識別情報を、前記特定のデータに対応付けて前記記憶部に記憶する、
ことを特徴とするデータ処理プログラム。
【請求項６】
第１記憶部に記憶された複数のデータを前記複数のデータそれぞれの受信順序に対応付けて第２記憶部に記憶すると共に、前記複数のデータそれぞれの加工済データを生成して、生成した前記加工済データを前記受信順序に従って送信する処理をコンピュータに実行させるデータ処理プログラムにおいて、
前記複数のデータのうちの何れかのデータの加工済データの生成後であって、該加工済データの送信前に、前記何れかのデータより前の受信順序に対応付けられて前記第１及び第２記憶部に記憶された他のデータのロールバックを検出すると、前記何れかのデータの加工済データを第３記憶部に記憶するとともに、前記何れかのデータの加工済データの識別情報を、前記何れかのデータに対応付けて前記第２記憶部に記憶する、
処理を前記コンピュータに実行させることを特徴とするデータ処理プログラム。
【請求項７】
第１記憶部に記憶された複数のデータと前記複数のデータそれぞれの受信順序とを対応付けた情報を参照して前記複数のデータそれぞれの加工済データを生成し、生成した前記加工済データを前記受信順序に従って送信する処理をコンピュータに実行させるデータ処理プログラムにおいて、
前記複数のデータのうちの何れかのデータの加工済データの生成後であって、該加工済データの送信前に、前記何れかのデータより前の受信順序に対応付けられて前記第１記憶部に記憶された他のデータのロールバックを検出すると、前記何れかのデータの加工済データの識別情報を、前記何れかのデータに対応付けて第２記憶部に記憶するとともに、前記何れかのデータの加工済データを第３記憶部に記憶する、
処理をコンピュータに実行させることを特徴とするデータ処理プログラム。
【請求項８】
受信した複数のデータを前記複数のデータそれぞれの受信順序に対応付けて記憶部に記憶すると共に、前記複数のデータそれぞれの加工済データを生成して、生成した前記加工済データを前記受信順序に従って送信するデータ処理装置において、
前記複数のデータのうちの何れかのデータの加工済データの生成後であって、該加工済データの送信前に、前記何れかのデータより前の受信順序に対応付けられて前記記憶部に記憶された他のデータのロールバックを検出すると、前記何れかのデータの加工済データを前記記憶部とは異なる他の記憶部に記憶するとともに、前記何れかのデータの加工済データの識別情報を、前記何れかのデータに対応付けて前記記憶部に記憶する情報管理部を有する、
ことを特徴とするデータ処理装置。
【請求項９】
受信した複数のデータを前記複数のデータそれぞれの受信順序に対応付けて記憶部に記憶すると共に、前記複数のデータそれぞれの加工済データを生成して、生成した前記加工済データを前記受信順序に従って送信するデータ処理方法において、
前記複数のデータのうちの何れかのデータの加工済データの生成後であって、該加工済データの送信前に、前記何れかのデータより前の受信順序に対応付けられて前記記憶部に記憶された他のデータのロールバックを検出すると、前記何れかのデータの加工済データを前記記憶部とは異なる他の記憶部に記憶するとともに、前記何れかのデータの加工済データの識別情報を、前記何れかのデータに対応付けて前記記憶部に記憶する、
ことを特徴とするデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理プログラム、データ処理装置及びデータ処理方法に関する。
【背景技術】
【０００２】
利用者に対してサービスを提供する事業者（以下、単に事業者とも呼ぶ）は、利用者に対して各種サービスの提供を行うために、例えば、用途に応じた業務システムを構築して稼働させる。このような業務システムには、例えば、複数の情報処理装置間で送受信される処理の実行要求（メッセージ）を管理するメッセージキューシステムが含まれる。
【０００３】
メッセージキューシステムは、例えば、各情報処理装置が他の情報処理装置に対して送信したメッセージを、キューにおいて格納するシステムである。具体的に、メッセージキューシステムと連携する各情報処理装置は、他の情報処理装置に対するメッセージの送信を行う場合、メッセージキューシステム（メッセージキューシステムが動作する情報処理装置）に対してのみメッセージの送信を行う。そして、メッセージを受信したメッセージキューシステムは、受信したメッセージの送信先である情報処理装置（例えば、複数の情報処理装置）に対してメッセージの送信を行う。これにより、各情報処理装置は、複数の情報処理装置に対してメッセージの送信を行う場合であっても、送信先である全ての情報処理装置に対してメッセージの送信を行う必要がなくなる。そのため、メッセージキューシステムは、例えば、メッセージの送受信を行う各情報処理装置の処理負担を抑えることが可能になる（例えば、特許文献１乃至３参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−３８５６４号公報
【特許文献２】特開平６−２８１９９号公報
【特許文献３】特開２０１０−１７６３０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記のようなメッセージキューシステムでは、例えば、各情報処理装置に対するメッセージの送信を、キューにおけるメッセージの受信順序に従って行う。そのため、メッセージキューシステムは、例えば、メッセージの送信前に行うメッセージの加工処理（例えば、文字コードの変換）を複数のメッセージについて並行して行う場合であっても、メッセージの送信がメッセージの受信順序に従って行われるように制御する。
【０００６】
また、例えば、メッセージの送信時において異常が発生した場合、メッセージキューシステムは、異常が発生したメッセージよりも受信順序が後であるメッセージを全てキューに戻す（以下、これをロールバックとも呼ぶ）。これにより、メッセージキューシステムは、異常が発生したメッセージよりも受信順序が後であるメッセージが、異常が発生したメッセージよりも先に送信先の情報処理装置に送信されることを防止することが可能になる。
【０００７】
ここで、異常が発生したメッセージよりも受信順序が後であるメッセージは、例えば、加工処理の進捗等に依らず、送信元の情報処理装置から送信された際の状態（キューに最初に格納された際の状態）でキューに戻される。しかしながら、メッセージを格納するキューは、メッセージの付加情報等を記憶する機能を有していない場合がある。そのため、メッセージキューシステムは、この場合、キューに戻されたメッセージ（キューに最初に格納された状態のメッセージ）と、加工処理が完了した状態のメッセージ（以下、加工済メッセージとも呼ぶ）とを対応付ける情報をキューに記憶させることができない。したがって、メッセージキューシステムは、この場合、キューに戻されたメッセージの再送を行う際に、メッセージがキューに戻される前に生成された加工済メッセージ（キューに戻されたメッセージから生成された加工済メッセージ）を特定することができない。そのため、メッセージキューシステムは、ロールバックの発生に伴ってメッセージがキューに戻される毎に、加工済メッセージを再度生成する必要がある場合がある。
【０００８】
そこで、一つの側面では、本発明は、ロールバックに起因する処理のやり直しを抑制することを可能とするデータ処理プログラム、データ処理装置及びデータ処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
実施の形態の一態様では、受信した複数のデータを前記複数のデータそれぞれの受信順序に対応付けて記憶部に記憶すると共に、前記複数のデータそれぞれの加工済データを生成して、生成した前記加工済データを前記受信順序に従って送信する処理をコンピュータに実行させるデータ処理プログラムにおいて、前記複数のデータのうちの何れかのデータの加工済データの生成後であって、該加工済データの送信前に、前記何れかのデータより前の受信順序に対応付けられて前記記憶部に記憶された他のデータのロールバックを検出すると、前記何れかのデータの加工済データを前記記憶部とは異なる他の記憶部に記憶するとともに、前記何れかのデータの加工済データの識別情報を、前記何れかのデータに対応付けて前記記憶部に記憶する、処理を前記コンピュータに実行させる。
【発明の効果】
【００１０】
一つの側面によれば、ロールバックに起因する処理のやり直しを抑制することを可能とする。
【図面の簡単な説明】
【００１１】
【図１】図１は、情報処理システム１０の全体構成を示す図である。
【図２】図２は、中継装置１における動作について説明する図である。
【図３】図３は、中継装置１における動作について説明する図である。
【図４】図４は、中継装置１における動作について説明する図である。
【図５】図５は、中継装置１における動作について説明する図である。
【図６】図６は、中継装置１における動作について説明する図である。
【図７】図７は、中継装置１のハードウエア構成を説明する図である。
【図８】図８は、図７の中継装置１の機能ブロック図である。
【図９】図９は、図７の中継装置１が有する情報のブロック図である。
【図１０】図１０は、第１の実施の形態におけるデータ管理処理の概略を説明するフローチャート図である。
【図１１】図１１は、第１の実施の形態におけるデータ管理処理の概略を説明するフローチャート図である。
【図１２】図１２は、第１の実施の形態におけるデータ管理処理の概略を説明する図である。
【図１３】図１３は、第１の実施の形態におけるデータ管理処理の概略を説明する図である。
【図１４】図１４は、第１の実施の形態におけるデータ管理処理の概略を説明する図である。
【図１５】図１５は、第１の実施の形態におけるデータ管理処理の詳細を説明するフローチャート図である。
【図１６】図１６は、第１の実施の形態におけるデータ管理処理の詳細を説明するフローチャート図である。
【図１７】図１７は、第１の実施の形態におけるデータ管理処理の詳細を説明するフローチャート図である。
【図１８】図１８は、受信順序情報１３２の具体例について説明する図である。
【図１９】図１９は、識別情報１４１の具体例について説明する図である。
【図２０】図２０は、識別情報１４１の具体例について説明する図である。
【図２１】図２１は、識別情報１４１の具体例について説明する図である。
【図２２】図２２は、第２の実施の形態におけるデータ管理処理の詳細を説明するフローチャート図である。
【図２３】図２３は、第２の実施の形態におけるデータ管理処理の詳細を説明するフローチャート図である。
【図２４】図２４は、第２の実施の形態におけるデータ管理処理の詳細を説明する図である。
【図２５】図２５は、第２の実施の形態におけるデータ管理処理の詳細を説明する図である。
【発明を実施するための形態】
【００１２】
［メッセージキューシステムの構成］
図１は、メッセージキューシステム１０（以下、情報処理システム１０とも呼ぶ）の全体構成を示す図である。図１に示すメッセージキューシステム１０は、中継装置１（以下、データ処理装置１とも呼ぶ）と、情報処理装置１１ａ、１１ｂ、１１ｃ及び１１ｄ（以下、これらを総称して情報処理装置１１とも呼ぶ）とからなる。なお、メッセージキューシステム１０は、４台以外の台数の情報処理装置１１を含むものであってもよい。
【００１３】
情報処理装置１１ａ、１１ｂ、１１ｃ及び１１ｄは、例えば、それぞれ１台以上の物理マシンからなり、事業者が利用者に対してサービスを提供するための業務システムがそれぞれ稼働する。
【００１４】
中継装置１は、情報処理装置１１が他の情報処理装置１１に対して送信したメッセージを受信し、キューにおいて一時的に格納する。そして、中継装置１は、例えば、キューに格納されたメッセージをキューに格納された順に取り出し、送信先の情報処理装置１１に対して順次送信する。
【００１５】
また、中継装置１は、例えば、キューからメッセージを取り出した後であって、送信先の情報処理装置１１にメッセージを送信する前に、メッセージに対する加工処理を行う。以下、中継装置１における動作について説明を行う。
【００１６】
［中継装置における動作］
図２から図６は、中継装置１における動作について説明する図である。中継装置１は、図２に示すように、送信元装置（送信元の情報処理装置１１）から送信されたメッセージをメッセージキュー１ａ（以下、単にキュー１ａとも呼ぶ）に格納する。具体的に、図２に示す例において、キュー１ａには、メッセージ（１）から（４）（以下、それぞれＭＧ（１）から（４）とも呼ぶ）が格納されている。
【００１７】
そして、中継装置１の処理部１２０は、図３に示すように、キュー１ａに格納されたメッセージのうち、最初にキュー１ａに格納されたメッセージであるＭＧ（１）を取り出し、メッセージの加工処理を行う。そして、処理部１２０は、ＭＧ（１）に対して加工処理が行われた加工済メッセージ（１）（以下、加工済ＭＧ（１）とも呼ぶ）を、送信先装置（送信先の情報処理装置１１）に対して送信する。
【００１８】
また、中継装置１は、例えば、図４に示すように、送信先装置に対するメッセージの送信をメッセージの受信順序に従って行うという条件の下、メッセージの加工処理を複数のメッセージについて並行して行う。具体的に、中継装置１は、図４に示すように、例えば、キュー１ａに格納されたメッセージのうち、ＭＧ（１）、ＭＧ（２）及びＭＧ（３）の加工処理を並列に行い、加工済ＭＧ（１）、加工済ＭＧ（２）及び加工済ＭＧ（３）を生成する。これにより、中継装置１は、メッセージの加工処理を効率的に行うことが可能になる。そして、中継装置１は、生成された加工済ＭＧ（１）、加工済ＭＧ（２）及び加工済ＭＧ（３）を、キュー１ａにおける受信順序に従って送信先装置に送信する。
【００１９】
そして、中継装置１は、例えば、メッセージの送信において異常が発生した場合、図５に示すように、異常が発生したメッセージよりも受信順序が後であるメッセージのロールバックを行う場合がある。この場合、異常が発生したメッセージよりも受信順序が後であるメッセージは、加工処理の進捗等に依らず、送信元の情報処理装置１１から送信された際の状態（キューに最初に格納された際の状態）でキュー１ａに戻される。
【００２０】
具体的に、図６に示すように、加工済ＭＧ（１）の送信時に発生した異常に起因してロールバックが発生した場合、中継装置１は、ＭＧ（１）をキュー１ａに戻す。また、中継装置１は、この場合、加工済ＭＧ（２）及び加工済ＭＧ（３）を生成するための加工処理の進捗状況に依らず、ＭＧ（１）よりも受信順序が後であるＭＧ（２）及びＭＧ（３）をキュー１ａに戻す。
【００２１】
この場合において、例えば、キュー１ａがメッセージの付加情報を記憶する機能を有していない場合、中継装置１は、ロールバックに伴ってキュー１ａに戻されたＭＧ（１）、ＭＧ（２）及びＭＧ（３）と、加工済ＭＧ（１）、加工済ＭＧ（２）及び加工済ＭＧ（３）とをそれぞれ対応付けるための情報をキュー１ａに記憶させることができない。そのため、中継装置１は、例えば、加工済ＭＧ（１）の再送を行う際に、メッセージがキュー１ａに戻される前に生成された加工済ＭＧ（１）を特定することができない。同様に、中継装置１は、例えば、加工済ＭＧ（２）の送信を行う際に、メッセージがキュー１ａに戻される前に生成された加工済ＭＧ（２）を特定することができない。したがって、中継装置１は、ロールバックの発生に伴ってメッセージがキュー１ａに戻される毎に、そのメッセージの加工処理を再度実行する必要がある場合がある。
【００２２】
そこで、本実施の形態では、中継装置１は、送信元の情報処理装置１１から受信した複数のメッセージ（以下、単にデータとも呼ぶ）を、複数のメッセージそれぞれの受信順序に対応付けて記憶部に記憶するとともに、複数のメッセージそれぞれの加工済メッセージ（以下、加工済データとも呼ぶ）を生成する。そして、中継装置１は、生成した加工済メッセージそれぞれを受信順序に従って送信先に送信する。
【００２３】
その後、中継装置１は、複数のメッセージに含まれるメッセージ（以下、特定のメッセージとも呼ぶ）の加工済メッセージの生成後であって加工済メッセージの送信前に、特定のメッセージより前の受信順序に対応付けられて記憶部に記憶された他のメッセージのロールバックを検出する。そして、中継装置１は、ロールバックを検出すると、特定のメッセージの加工済メッセージを他の記憶部に記憶するとともに、特定のメッセージの加工済メッセージの識別情報を特定のメッセージに対応付けて記憶部に記憶する。
【００２４】
すなわち、中継装置１は、送信元の情報処理装置１１からメッセージを受信した場合、受信したメッセージを、メッセージの識別情報を記憶することができるキュー（記憶部）に記憶する。そして、中継装置１は、他のメッセージのロールバックの発生に伴って特定のメッセージをキューに戻す必要が生じた場合、特定のメッセージの加工済メッセージの識別情報を対応付けた状態の特定のメッセージを、メッセージの識別情報を記憶することができるキューに戻す。また、中継装置１は、この場合、例えば、特定のメッセージを戻した記憶部と異なる他の記憶部に、特定のメッセージの加工済メッセージを記憶する。
【００２５】
これにより、他のメッセージのロールバックが発生した場合において、特定のメッセージの加工済メッセージが既に生成されている場合、中継装置１は、特定のメッセージを特定のメッセージの加工済メッセージと対応付けた状態でキューに戻すことが可能になる。そのため、中継装置１は、キューに格納されたメッセージの加工済メッセージが既に生成されている場合、キューに記憶された識別情報を参照することにより、各メッセージに対応する加工済メッセージを識別することが可能になる。したがって、中継装置１は、加工済メッセージが繰り返し生成されることを防止することが可能になる。
【００２６】
［中継装置のハードウエア構成］
次に、中継装置１のハードウエア構成について説明する。図７は、中継装置１のハードウエア構成を説明する図である。
【００２７】
中継装置１は、プロセッサであるＣＰＵ１０１と、メモリ１０２と、外部インターフェース（Ｉ／Ｏユニット）１０３と、記憶媒体（ストレージ）１０４とを有する。各部は、バス１０５を介して互いに接続される。
【００２８】
記憶媒体１０４は、記憶媒体１０４内のプログラム格納領域（図示しない）に、情報処理装置１１が他の情報処理装置１１に対して送信したメッセージ（データ）を格納する処理（以下、データ管理処理とも呼ぶ）を行うためのプログラム１１０（以下、データ処理プログラム１１０とも呼ぶ）を記憶する。
【００２９】
ＣＰＵ１０１は、図７に示すように、プログラム１１０の実行時に、プログラム１１０を記憶媒体１０４からメモリ１０２にロードし、プログラム１１０と協働してデータ管理処理を行う。
【００３０】
記憶媒体１０４は、例えば、データ管理処理を行う際に用いられる情報を記憶する情報格納領域１３０（以下、記憶部１３０または第１記憶部１３０とも呼ぶ）及び情報格納領域１４０（以下、記憶部１４０または第２記憶部１４０とも呼ぶ）を有する。また、記憶媒体１０４は、例えば、データ管理処理を行う際に用いられる情報を記憶する情報格納領域１５０（以下、記憶部１５０または第３記憶部１５０とも呼ぶ）を有する。
【００３１】
外部インターフェース１０３は、例えば、ネットワークＮＷを介して、情報処理装置１１と通信を行う。
【００３２】
[中継装置のソフトウエア構成]
次に、中継装置１のソフトウエア構成について説明する。図８は、図７の中継装置１の機能ブロック図である。また、図９は、図７の中継装置１が有する情報のブロック図である。
【００３３】
ＣＰＵ１０１は、プログラム１１０と協働することにより、図８に示すように、メッセージ受信部１１１と、メッセージ加工部１１２と、メッセージ送信部１１３と、ロールバック検出部１１４と、情報管理部１１５として動作する。
【００３４】
また、情報格納領域１３０には、図９に示すように、メッセージ１３１と、受信順序情報１３２とが記憶される。そして、情報格納領域１４０には、メッセージ１３１と、受信順序情報１３２と、識別情報１４１とが記憶される。さらに、情報格納領域１５０には、加工済メッセージ１３３が記憶される。
【００３５】
メッセージ受信部１１１は、送信元の情報処理装置１１から送信されたメッセージ１３１を受信する。そして、メッセージ受信部１１１は、送信元の情報処理装置１１から受信したメッセージ１３１を、メッセージ１３１それぞれの受信順序を示す情報である受信順序情報１３２に対応付けて情報格納領域１３０に記憶する。また、メッセージ受信部１１１は、送信元の情報処理装置１１から受信したメッセージ１３１を、受信順序情報１３２に対応付けて情報格納領域１４０にも記憶する。
【００３６】
情報格納領域１３０は、送信元の情報処理装置１１から送信されたメッセージ１３１が最初に記憶される記憶領域であり、例えば、メッセージ１３１と受信順序情報１３２以外の情報（例えば、識別情報１４１）を記憶することができない記憶領域である。また、情報格納領域１４０は、例えば、メッセージ１３１と受信順序情報１３２以外の情報を記憶することができる記憶領域である。具体的に、情報格納領域１３０は、例えば、事業者が管理していない記憶領域であるため、改修等を行うことができない記憶領域である。また、情報格納領域１４０は、例えば、事業者が管理している記憶領域であるため、改修等を行うことができる記憶領域である。
【００３７】
すなわち、メッセージ受信部１１１は、例えば、情報格納領域１３０が識別情報１４１を記憶することができない場合、情報格納領域１３０だけでなく、識別情報１４１を記憶することができる情報格納領域１４０に対してもメッセージ１３１及び受信順序情報１３２の記憶を行う。そして、メッセージ加工部１１２は、後述するように、情報格納領域１４０からメッセージ１３１の取り出しを行う。これにより、情報管理部１１５は、後述するように、ロールバックの発生に伴ってメッセージ１３１を情報格納領域１４０に戻す必要が生じた場合に、メッセージ１３１と加工済メッセージ１３３とを対応付ける識別情報１４１についても情報格納領域１４０に記憶することが可能になる。
【００３８】
メッセージ加工部１１２は、情報格納領域１４０に格納されたメッセージ１３１を取り出し、取り出したメッセージ１３１を加工し、加工済のメッセージ１３１（以下、加工済メッセージ１３３とも呼ぶ）を生成する。具体的に、メッセージ加工部１１２は、例えば、メッセージ１３１に対して文字コードの変換を行うことにより、加工済メッセージ１３３の生成を行う。なお、メッセージ加工部１１２は、例えば、受信順序情報１３２を参照し、受信順序が先であるメッセージ１３１から順に加工処理を行うものであってもよい。
【００３９】
メッセージ送信部１１３は、受信順序情報１３２を参照し、受信順序が先であるメッセージ１３１の加工済メッセージ１３３から順に、送信先の情報処理装置１１に対して送信を行う。
【００４０】
ロールバック検出部１１４は、情報格納領域１４０から取り出されたメッセージ１３１に対する処理（メッセージ１３１の加工処理や送信処理）に異常が発生したことにより、メッセージ１３１に対する処理のロールバックが発生した場合に、これを検出する。メッセージ１３１に対する処理のロールバックは、情報格納領域１４０から取り出されて処理が行われているメッセージ１３１であって、加工済メッセージ１３３が送信先の情報処理装置１１に送信されていないメッセージ１３１を情報格納領域１４０に戻す処理である。
【００４１】
情報管理部１１５は、ロールバック検出部１１４がメッセージ１３１に対する処理のロールバックを検出した場合、ロールバック対象のメッセージ１３１（以下、メッセージ１３１ａとも呼ぶ）よりも受信順序が後であるメッセージ１３１を特定する。そして、情報管理部１１５は、特定したメッセージ１３１のうち、加工済メッセージ１３３が生成済であって送信先の情報処理装置１１に対して送信が行われる前の状態であるメッセージ１３１（以下、メッセージ１３１ｂとも呼ぶ）を特定する。
【００４２】
その後、情報管理部１１５は、特定したメッセージ１３１ｂの加工済メッセージ１３３を情報格納領域１５０に記憶する。また、情報管理部１１５は、メッセージ１３１ｂを情報格納領域１４０に戻す際に、メッセージ１３１ｂの加工済メッセージ１３３を識別するための識別情報１４１を対応付けて情報格納領域１４０に記憶する。
【００４３】
なお、メッセージ１３１ａに対する処理のロールバックが検出された場合において、メッセージ１３１ａの加工済メッセージ１３３が生成されている場合、情報管理部１１５は、メッセージ１３１ａの加工済メッセージ１３３についても情報格納領域１５０に記憶する。また、情報管理部１１５は、この場合、メッセージ１３１ａを情報格納領域１４０に戻す際に、メッセージ１３１ａの加工済メッセージ１３３を識別するための識別情報１４１を対応付けて情報格納領域１４０に記憶する。
【００４４】
[第１の実施の形態の概略］
次に、第１の実施の形態の概略について説明する。図１０及び図１１は、第１の実施の形態におけるデータ管理処理の概略を説明するフローチャート図である。また、図１２から図１４は、第１の実施の形態におけるデータ管理処理の概略を説明する図である。図１２から図１４を参照しながら、図１０及び図１１のデータ管理処理について説明を行う。
【００４５】
中継装置１は、図１０に示すように、送信元の情報処理装置１１からメッセージ１３１を受信するまで待機する（Ｓ１のＮＯ）。そして、メッセージ１３１を受信した場合（Ｓ１のＹＥＳ）、中継装置１は、Ｓ１の処理で受信したメッセージ１３１を、メッセージ１３１それぞれの受信順序に対応付けて情報格納領域１４０に記憶する（Ｓ２）。具体的に、中継装置１は、図１２に示すように、例えば、情報処理装置１１から送信されたＭＧ（１）からＭＧ（４）を情報格納領域１３０に記憶した場合、情報格納領域１３０に記憶されたＭＧ（１）からＭＧ（４）を情報格納領域１４０にも記憶する。
【００４６】
すなわち、送信元の情報処理装置１１から送信されたメッセージが最初に格納される情報格納領域１３０は、メッセージの付加情報（例えば、識別情報１４１）を記憶することができない領域である場合がある。この場合、情報格納領域１３０から取り出されたメッセージがロールバックの発生に伴って情報格納領域１３０に戻される場合、情報格納領域１３０は、メッセージ１３１と加工済メッセージ１３３とを対応付けた情報である識別情報１４１を記憶することができない。そのため、中継装置１は、ロールバックが発生する毎に、加工済メッセージ１３３の生成を再度行う必要がある。
【００４７】
そこで、本実施の形態における中継装置１は、例えば、送信元の情報処理装置１１から受信したメッセージ１３１が情報格納領域１３０に記憶された場合、情報格納領域１３０に記憶されたメッセージ１３１を、識別情報１４１を記憶することができる情報格納領域１４０に記憶する。そして、中継装置１は、後述するように、情報格納領域１４０からメッセージ１３１の取り出しを行い、メッセージ１３１の加工処理等を行う。
【００４８】
これにより、中継装置１は、ロールバックの発生に伴ってメッセージ１３１を情報格納領域１４０に戻す場合に、既に生成されている加工済メッセージ１３３に対応する識別情報１４１を情報格納領域１４０に記憶することが可能になる。そのため、中継装置１は、情報格納領域１４０に戻されたメッセージ１３１の取り出しが再度行われる際に、識別情報１４１を参照することにより、取り出されたメッセージ１３１の加工済メッセージ１３３を識別することが可能になる。したがって、中継装置１は、ロールバックが発生する毎に、同じ加工済メッセージ１３３の生成が繰り返し行われることを防止することが可能になる。
【００４９】
そして、中継装置１は、Ｓ１の処理で受信したメッセージ１３１の加工済メッセージ１３３を生成する（Ｓ３）。その後、中継装置１は、Ｓ３の処理で生成した加工済メッセージ１３３を受信順序に従って送信先の情報処理装置１１に送信する（Ｓ４）。
【００５０】
具体的に、中継装置１は、図１３に示すように、例えば、情報格納領域１４０に格納されたＭＧ（１）からＭＧ（３）を取り出す。そして、中継装置１は、取り出したＭＧ（１）からＭＧ（３）から、加工済ＭＧ（１）から加工済ＭＧ（３）をそれぞれ生成する。その後、中継装置１は、生成した加工済ＭＧ（１）から加工済ＭＧ（３）を、受信順序に従って送信先の情報処理装置１１にそれぞれ送信する。
【００５１】
一方、中継装置１は、図１１に示すように、メッセージ１３１に対する処理に伴うロールバックを検出するまで待機する（Ｓ１１のＮＯ）。具体的に、中継装置１は、メッセージ１３１ｂの加工済メッセージ１３３の生成後であって送信先への送信前において、メッセージ１３１ｂよりも受信順序が前であるメッセージ１３１ａ（他のメッセージ１３１ａ）に対する処理のロールバックが発生するまで待機する。そして、ロールバックを検出した場合（Ｓ１１のＹＥＳ）、中継装置１は、メッセージ１３１ｂの加工済メッセージ１３３を情報格納領域１５０に記憶する（Ｓ１２）。また、中継装置１は、Ｓ１２の処理で記憶した加工済メッセージ１３３の識別情報１４１を、メッセージ１３１ｂに対応付けて情報格納領域１４０に記憶する（Ｓ１３）。
【００５２】
具体的に、ＭＧ（１）のロールバックが発生した場合、中継装置１は、図１４に示すように、ＭＧ（１）のみでなく、ＭＧ（２）及びＭＧ（３）を情報格納領域１４０に戻す。そして、この場合、中継装置１は、ＭＧ（１）からＭＧ（３）に、既に生成されている加工済ＭＧ（１）から加工済ＭＧ（３）のそれぞれの識別情報１４１を対応付けた状態で情報格納領域１４０に記憶する。また、中継装置１は、図１４に示すように、加工済ＭＧ（１）から加工済ＭＧ（３）のそれぞれを情報格納領域１５０に記憶する。
【００５３】
これにより、中継装置１は、ロールバックの発生に伴って情報格納領域１４０に戻されたメッセージ１３１の取り出しが再度行われた場合に、識別情報１４１を参照することで、情報格納領域１４０から取り出されたメッセージ１３１の加工済メッセージ１３３を識別することが可能になる。そして、中継装置１は、情報格納領域１５０に記憶された加工済メッセージ１３３のうち、情報格納領域１４０から取り出されたメッセージ１３１から生成された加工済メッセージ１３３を取得し、送信先の情報処理装置１１に対して送信することが可能になる。これにより、中継装置１は、ロールバックが発生する毎に、同じ加工済メッセージ１３３の生成が繰り返し行われることを防止することが可能になる。
【００５４】
このように、本実施の形態における中継装置１は、送信元から受信した複数のメッセージ１３１を複数のメッセージ１３１のそれぞれの受信順序に対応付けて記憶部１４０に記憶するとともに、複数のメッセージ１３１のそれぞれの加工済メッセージ１３３を生成する。そして、中継装置１は、生成した加工済メッセージ１３３のそれぞれを受信順序に従って送信先に送信する。
【００５５】
その後、中継装置１は、複数のメッセージ１３１のうちのメッセージ１３１ｂの加工済メッセージ１３３の生成後であって、その加工済メッセージ１３３の送信前に、メッセージ１３１ｂより前の受信順序に対応付けられて記憶部１４０に記憶されたメッセージ１３１ａのロールバックを検出する。そして、中継装置１は、ロールバックを検出すると、メッセージ１３１ｂの加工済メッセージ１３３を記憶部１５０に記憶するとともに、メッセージ１３１ａの加工済メッセージ１３３の識別情報１４１をメッセージ１３１ａに対応付けて記憶部１４０に記憶する。
【００５６】
これにより、中継装置１は、ロールバックの発生に伴ってメッセージ１３１をキューに戻す毎に、加工済メッセージ１３３の生成を繰り返し行う必要がなくなる。
【００５７】
[第１の実施の形態の詳細]
次に、第１の実施の形態の詳細について説明する。図１５から図１７は、第１の実施の形態におけるデータ管理処理の詳細を説明するフローチャート図である。また、図１８から図２１は、第１の実施の形態におけるデータ管理処理の詳細を説明する図である。図１８から図２１を参照しながら、図１５から図１７のデータ管理処理を説明する。
【００５８】
[Ｓ１２及びＳ１３の処理の詳細］
初めに、Ｓ１２及びＳ１３の処理の詳細について説明を行う。図１５及び図１６は、Ｓ１２及びＳ１３の処理の詳細を説明する図である。
【００５９】
ロールバック検出部１１４は、図１１で説明したように、メッセージ１３１に対する処理に伴うロールバックを検出するまで待機する（Ｓ１１のＮＯ）。具体的に、メッセージ１３１ｂの加工済メッセージ１３３の生成後であって送信先の情報処理装置１１への送信前に、メッセージ１３１ｂよりも前の受信順序に対応付けられて情報格納領域１４０に記憶されたメッセージ１３１ａに対する処理のロールバックを検出するまで待機する。
【００６０】
そして、ロールバックを検出した場合（Ｓ１１のＹＥＳ）、情報管理部１１５は、図１５に示すように、メッセージ１３１ａの加工済メッセージ１３３が生成済であるか否かを判定する（Ｓ２１）。その結果、メッセージ１３１ａの加工済メッセージ１３３が生成済である場合（Ｓ２１のＹＥＳ）、情報管理部１１５は、メッセージ１３１ａの加工済メッセージ１３３を情報格納領域１５０に記憶する（Ｓ２２）。また、情報管理部１１５は、Ｓ２２の処理で記憶した加工済メッセージ１３３の識別情報１４１をメッセージ１３１ａに対応付けて情報格納領域１４０に記憶する（Ｓ２３）。
【００６１】
すなわち、メッセージ１３１ａのロールバックが検出された場合において、メッセージ１３１ａの加工済メッセージ１３３が既に生成されている場合がある。そのため、情報管理部１１５は、メッセージ１３１ａの加工済メッセージ１３３が既に生成されていると判定した場合、情報格納領域１４０に戻されるメッセージ１３１ａと、メッセージ１３１ａの加工済メッセージ１３３とを対応付ける識別情報１４１の記憶を行う。なお、識別情報１４１の具体例については後述する。
【００６２】
続いて、情報管理部１１５は、図１６に示すように、メッセージ１３１ｂの加工済メッセージ１３３を情報格納領域１５０に記憶する（Ｓ３１）。すなわち、情報管理部１１５は、情報格納領域１４０に記憶された受信順序情報１３２を参照し、ロールバックが発生した原因であるメッセージ１３１ａよりも受信順序が後であるメッセージ１３１ｂの加工済メッセージ１３３を情報格納領域１５０に記憶する。
【００６３】
そして、情報管理部１１５は、Ｓ３１の処理で記憶したメッセージ１３１ｂの加工済メッセージ１３３の識別情報１４１を、メッセージ１３１ｂに対応付けて情報格納領域１４０に記憶する（Ｓ３２）。以下、受信順序情報１３２の具体例について説明を行う。
【００６４】
[受信順序情報の具体例]
図１８は、受信順序情報１３２の具体例について説明する図である。図１８に示す受信順序情報１３２は、受信順序情報１３２に含まれる各情報を識別する「項番」と、各メッセージ１３１を識別するメッセージ識別情報が設定される「メッセージ識別情報」と、各メッセージ１３１の受信順序が設定される「受信順序」とを項目として有する。
【００６５】
具体的に、図１８に示す受信順序情報１３２において、「項番」が「１」である情報には、「メッセージ識別情報」として、情報処理装置１１ａから送信されたメッセージ１３１のうち、１番目のメッセージ１３１であることを示す「ＭＧ−Ａ−１」が設定されている。そして、図１８に示す受信順序情報１３２において、「項番」が「１」である情報には、「受信順序」として、中継装置１が受信したメッセージ１３１のうち、１番目のメッセージ１３１であることを示す「１」が設定されている。
【００６６】
また、図１８に示す受信順序情報１３２において、「項番」が「５」である情報には、「メッセージ識別情報」として、情報処理装置１１ｂから送信されたメッセージ１３１のうち、３番目のメッセージ１３１であることを示す「ＭＧ−Ｂ−３」が設定されている。そして、図１８に示す受信順序情報１３２において、「項番」が「５」である情報には、「受信順序」として、中継装置１が受信したメッセージ１３１のうち、６番目のメッセージ１３１であることを示す「６」が設定されている。図１８に含まれる他の情報については説明を省略する。
【００６７】
図１６に戻り、情報管理部１１５は、メッセージ１３１ａの加工済メッセージ１３３の送信が行われるまでの間に、受信順序がメッセージ１３１ｂよりも後である新たなメッセージ１３１（以下、メッセージ１３１ｃとも呼ぶ）の加工済メッセージ１３３が生成されたか否かを判定する（Ｓ３３）。そして、メッセージ１３１ｃの加工済メッセージ１３３が生成されたと判定した場合（Ｓ３３のＹＥＳ）、情報管理部１１５は、メッセージ１３１ｃの加工済メッセージ１３３を情報格納領域１５０に記憶する（Ｓ３４）。また、情報管理部１１５は、Ｓ３４の処理で記憶したメッセージ１３１ｃの加工済メッセージ１３３の識別情報１４１を、メッセージ１３１ｃに対応付けて情報格納領域１４０に記憶する（Ｓ３５）。
【００６８】
すなわち、メッセージ加工部１１２は、メッセージ１３１ａに対する処理に伴うロールバックが発生した場合であっても、情報格納領域１４０からメッセージ１３１の取り出しを行い、加工済メッセージ１３３の生成を継続することが可能である。そのため、メッセージ１３１ａに対する処理に伴うロールバックが発生し、メッセージ１３１ａの送信が行われる前（例えば、ロールバックの原因となった異常が解消する前）であっても、加工済メッセージ１３３（メッセージ１３１ｃの加工済メッセージ１３３）が生成される場合がある。
【００６９】
したがって、情報管理部１１５は、メッセージ１３１ｃの加工済メッセージ１３３が生成された場合、メッセージ１３１ｃの加工済メッセージ１３３を情報格納領域１５０に記憶する。また、情報管理部１１５は、メッセージ１３１ｃとメッセージ１３１ｃの加工済メッセージ１３３とを対応付ける識別情報１４１を情報格納領域１４０に記憶する。
【００７０】
一方、メッセージ１３１ｂの加工済メッセージ１３３の送信が行われるまでの間に、新たなメッセージ１３１ｃの加工済メッセージ１３３が生成されない場合（Ｓ３３のＮＯ）、情報管理部１１５は、Ｓ３４及びＳ３５の処理を実行しない。
【００７１】
なお、情報管理部１１５は、メッセージ１３１ｃの加工済メッセージ１３３の送信が行われるまでの間において、メッセージ１３１ｃの加工済メッセージ１３３が生成されたことを検知する毎に、Ｓ３４及びＳ３５の処理を実行するものであってもよい。
【００７２】
[Ｓ３及びＳ４の処理の詳細］
次に、Ｓ３及びＳ４の処理の詳細について説明を行う。図１７は、Ｓ３及びＳ４の処理の詳細を説明する図である。
【００７３】
メッセージ受信部１１１は、図１０で説明したように、送信元の情報処理装置１１からメッセージ１３１を受信するまで待機する（Ｓ１のＮＯ）。そして、メッセージ１３１を受信した場合（Ｓ１のＹＥＳ）、メッセージ受信部１１１は、Ｓ１の処理で受信したメッセージ１３１を、メッセージ１３１それぞれの受信順序に対応付けて情報格納領域１４０に記憶する（Ｓ２）。
【００７４】
その後、メッセージ加工部１１２は、図１７に示すように、加工済メッセージ生成タイミングまで待機する（Ｓ４１のＮＯ）。加工済メッセージ生成タイミングは、所定の時間間隔（例えば、１０秒）毎であってよい。また、加工済メッセージ生成タイミングは、Ｓ２の処理が行われた後のタイミングであってもよい。さらに、加工済メッセージ生成タイミングは、加工済メッセージ１３３の生成が行われている数が、メッセージ加工部１１２が並行して加工済メッセージ１３３の生成を行うことができる最大数未満になったタイミングであってもよい。
【００７５】
そして、加工済メッセージ生成タイミングになった場合（Ｓ４１のＹＥＳ）、Ｓ１の処理で受信したメッセージ１３１を取得する（Ｓ４２）。具体的に、メッセージ加工部１１２は、メッセージ１３１の受信順序に従うように、情報格納領域１４０に記憶されているメッセージ１３１の取得を行う。なお、メッセージ加工部１１２は、Ｓ４２の処理において、例えば、加工済メッセージ１３３の生成が行われる数が並行して加工済メッセージ１３３の生成を行うことができる最大数になるまで、メッセージ１３１の取得を行うものであってよい。
【００７６】
その後、メッセージ加工部１１２は、Ｓ４２の処理で取得したメッセージ１３１の加工済メッセージ１３３が情報格納領域１５０に記憶されていない場合（Ｓ４３のＮＯ）、メッセージ加工部１１２は、Ｓ４１の処理で取得したメッセージ１３１の加工済メッセージ１３３を生成する（Ｓ４４）。一方、Ｓ４２の処理で取得したメッセージ１３１の加工済メッセージ１３３が情報格納領域１５０に記憶されている場合（Ｓ４３のＹＥＳ）、メッセージ加工部１１２は、Ｓ４２の処理を実行しない。
【００７７】
すなわち、情報管理部１１５は、メッセージ１３１ａに対する処理に伴うロールバックが発生した場合、既に生成された加工済メッセージ１３３を参照可能な状態で情報格納領域１５０に記憶する。そのため、Ｓ４２の処理で取得したメッセージの加工済メッセージ１３３は、ロールバックが行われる前に既に生成され、情報管理部１１５によって情報格納領域１５０に記憶された加工済メッセージ１３３である場合がある。
【００７８】
したがって、メッセージ加工部１１２は、Ｓ４２の処理で取得したメッセージ１３１の加工済メッセージ１３３が情報格納領域１５０に記憶されている場合、加工済メッセージ１３３の生成を行わない。これにより、メッセージ加工部１１２は、ロールバックの発生に伴って、同じ加工済メッセージ１３３の生成が繰り返し行われることを防止することが可能になる。
【００７９】
そして、メッセージ送信部１１３は、加工済メッセージ送信タイミングまで待機する（Ｓ４５のＮＯ）。加工済メッセージ送信タイミングは、送信待ちの加工済メッセージ１３３が情報格納領域１５０に記憶されているタイミングであってよい。また、加工済メッセージ生成タイミングは、Ｓ４４の処理が行われた後のタイミングであってもよい。
【００８０】
その後、加工済メッセージ送信タイミングになった場合（Ｓ４５のＹＥＳ）、メッセージ送信部１１３は、情報格納領域１５０に記憶された加工済メッセージ１３３またはＳ４４の処理で生成された加工済メッセージ１３３を受信順序に従って送信する（Ｓ４６）。すなわち、メッセージ送信部１１３は、Ｓ４３の処理において、情報格納領域１５０に記憶された加工済メッセージ１３３が存在した場合、Ｓ４４の処理で生成された加工済メッセージ１３３だけでなく、情報格納領域１５０に記憶された加工済メッセージ１３３についても送信を行う。具体的に、メッセージ送信部１１３は、この場合、情報格納領域１５０に記憶された加工済メッセージ１３３とＳ４４の処理で生成された加工済メッセージ１３３とのそれぞれを、受信順序に従って順次送信する。
【００８１】
なお、情報格納領域１５０に記憶された加工済メッセージ１３３が送信先の情報処理装置１１に送信された場合、情報管理部１１５は、情報格納領域１４０に記憶された識別情報１４１のうち、送信された加工済メッセージ１３３に対応する情報を削除するものであってもよい。以下、識別情報１４１の具体例について説明を行う。
【００８２】
[識別情報の具体例］
図１９から図２１は、識別情報１４１の具体例について説明する図である。図１９から図２１に示す識別情報１４１は、識別情報１４１に含まれる各情報を識別する「項番」と、各メッセージ１３１の識別情報が設定される「メッセージ識別情報」と、各加工済メッセージ１３３の識別情報が設定される「加工済メッセージ識別情報」とを項目として有する。
【００８３】
初めに、ロールバックが発生した際の識別情報１４１の具体例について説明を行う。図１９は、ロールバックが発生した際の識別情報１４１の具体例を説明する図である。
【００８４】
図１８で説明した受信順序情報１３２は、メッセージ受信部１１１が、ＭＧ−Ａ−１、ＭＧ−Ｂ−１、ＭＧ−Ｂ−２、ＭＧ−Ａ−２、ＭＧ−Ｃ−１及びＭＧ−Ｂ−３の順にメッセージ１３１の受信が行われたことを示している。この場合において、例えば、ＭＧ−Ｂ−１の加工済メッセージ１３３の送信中に発生した異常によってロールバックが発生した場合、情報管理部１１５は、例えば、ＭＧ−Ｂ−１及びＭＧ−Ｂ−２を情報格納領域１４０に戻す。
【００８５】
そして、情報管理部１１５は、この場合、図１９に示すように、「メッセージ識別情報」に「ＭＧ−Ｂ−１」が設定された情報（「項番」が「１」である情報）の「加工済メッセージ識別情報」に、ＭＧ−Ｂ−１の加工済メッセージ１３３の識別情報である「ＤＴ−１」を設定する。また、情報管理部１１５は、この場合、「メッセージ識別情報」に「ＭＧ−Ｂ−２」が設定された情報（「項番」が「２」である情報）の「加工済メッセージ識別情報」に、ＭＧ−Ｂ−２の加工済メッセージ１３３の識別情報である「ＤＴ−２」を設定する。これにより、情報管理部１１５は、ロールバックが発生した場合において、ロールバックの発生前に既に生成されていた加工済メッセージ１３３を識別するための識別情報１４１を作成することが可能になる。
【００８６】
次に、ロールバックが発生した原因となったメッセージ１３１の加工済メッセージ１３３の送信が完了した際の識別情報１４１の具体例、すなわち、ロールバックが発生した原因となった異常が解消された場合の識別情報１４１の具体例について説明を行う。図２０及び図２１は、ロールバックが発生した原因となったメッセージの加工済メッセージの送信（再送）が完了した際の識別情報１４１の具体例を説明する図である。
【００８７】
情報管理部１１５は、この場合、ロールバックが発生した原因となったメッセージ１３１ａについての情報を識別情報１４１から削除する。具体的に、情報管理部１１５は、例えば、図２０に示すように、ロールバックが発生した原因となったメッセージ１３１ａであるＭＧ−Ｂ−１についての情報（図１９における「項番」が「１」である情報）を削除する。
【００８８】
また、ロールバックの発生後、ロールバックが発生した原因となった加工済メッセージの送信が完了するまでの間において、メッセージ１３１ｃの加工済メッセージ１３３が生成された場合、情報管理部１１５は、メッセージ１３１ｃについての情報を識別情報１４１に追加する。具体的に、情報管理部１１５は、例えば、図２０に示すように、ＭＧ−Ａ−２についての情報（図２０における「項番」が「３」である情報）を追加する。
【００８９】
その後、情報管理部１１５は、メッセージ１３１ｃの加工済メッセージ１３３が送信先の情報処理装置１１に送信される毎に、送信されたメッセージ１３１ｃについての情報を識別情報１４１から削除する。具体的に、情報管理部１１５は、例えば、図２１に示すように、送信先の情報処理装置１１に送信されたメッセージ１３１ｃであるＭＧ−Ｂ−２についての情報（図２０における「項番」が「２」である情報）を削除する。
【００９０】
このように、本実施の形態における中継装置１は、送信元から受信した複数のメッセージ１３１を複数のメッセージ１３１のそれぞれの受信順序に対応付けて記憶部１４０に記憶するとともに、複数のメッセージ１３１のそれぞれの加工済メッセージ１３３を生成する。そして、中継装置１は、生成した加工済メッセージ１３３のそれぞれを受信順序に従って送信先に送信する。
【００９１】
さらに、中継装置１は、複数のメッセージ１３１のうちのメッセージ１３１ｂの加工済メッセージ１３３の生成後であって加工済メッセージ１３３の送信前に、メッセージ１３１ｂより前の受信順序に対応付けられて記憶部１４０に記憶されたメッセージ１３１ａのロールバックを検出する。そして、中継装置１は、ロールバックを検出すると、メッセージ１３１ｂの加工済メッセージ１３３を記憶部１５０に記憶するとともに、メッセージ１３１ａの加工済メッセージ１３３の識別情報１４１をメッセージ１３１ａに対応付けて記憶部１４０に記憶する。
【００９２】
これにより、中継装置１は、ロールバックの発生に伴ってメッセージ１３１をキューに戻す毎に、加工済メッセージ１３３の生成を繰り返し行う必要がなくなる。
【００９３】
[第２の実施の形態］
次に、第２の実施の形態におけるデータ管理処理について説明を行う。図２２及び図２３は、第２の実施の形態におけるデータ管理処理の詳細を説明するフローチャート図である。また、図２４及び図２５は、第２の実施の形態におけるデータ管理処理の詳細を説明する図である。図２４及び図２５を参照しながら、図２２及び図２３のデータ管理処理を説明する。
【００９４】
第１の実施の形態における中継装置１は、情報格納領域１３０にメッセージが記憶されたことに応じて、情報格納領域１３０に記憶されたメッセージを情報格納領域１４０にも記憶する。これに対して、第２の実施の形態における中継装置１は、情報格納領域１３０に記憶されたメッセージを情報格納領域１４０に記憶しない。そして、第２の実施の形態における中継装置１は、情報格納領域１３０からメッセージ１３１の取り出しを行って加工等を行う。その後、第２の実施の形態における中継装置１は、ロールバックが発生した場合、戻す必要があるメッセージ１３１を、情報格納領域１３０ではなく情報格納領域１４０に記憶する。
【００９５】
これにより、第２の実施の形態における中継装置１は、情報格納領域１４０に記憶されるメッセージのデータ量を抑制することが可能になる。以下、第２の実施の形態におけるデータ管理処理のフローチャート図について説明を行う。
【００９６】
中継装置１は、図２２に示すように、送信元の情報処理装置１１からメッセージ１３１を受信するまで待機する（Ｓ１０１のＮＯ）。そして、メッセージ１３１を受信した場合（Ｓ１０１のＹＥＳ）、中継装置１は、Ｓ１０１の処理で受信したメッセージ１３１の加工済メッセージ１３３を生成する（Ｓ１０２）。
【００９７】
具体的に、中継装置１は、図２４に示すように、例えば、情報処理装置１１から送信されたＭＧ（１）からＭＧ（４）が情報格納領域１３０に記憶された場合、そのメッセージ１３１を情報格納領域１４０に記憶しない。そして、中継装置１は、例えば、情報格納領域１３０に格納されたＭＧ（１）、ＭＧ（２）及びＭＧ（３）の取り出しを行う。その後、中継装置１は、取り出したＭＧ（１）、ＭＧ（２）及びＭＧ（３）から、加工済ＭＧ（１）、加工済ＭＧ（２）及び加工済ＭＧ（３）をそれぞれ生成する。
【００９８】
続いて、中継装置１は、Ｓ１０２の処理で生成した加工済メッセージ１３３を受信順序に従って送信先の情報処理装置１１に送信する（Ｓ１０３）。具体的に、中継装置１は、図２４に示すように、生成した加工済ＭＧ（１）、加工済ＭＧ（２）及び加工済ＭＧ（３）を送信先の情報処理装置１１に対してそれぞれ送信する。
【００９９】
一方、中継装置１は、図２３に示すように、メッセージ１３１ｂに対する処理に伴うロールバックを検出するまで待機する（Ｓ１１１のＮＯ）。そして、ロールバックを検出した場合（Ｓ１１１のＹＥＳ）、中継装置１は、第１の実施の形態の場合と同様に、メッセージ１３１ａの加工済メッセージ１３３を情報格納領域１５０に記憶する（Ｓ１１２）。また、中継装置１は、第１の実施の形態の場合と同様に、Ｓ１１２の処理で記憶した加工済メッセージ１３３の識別情報１４１を、メッセージ１３１ｂに対応付けて情報格納領域１４０に記憶する（Ｓ１１３）。
【０１００】
具体的に、図２４に示すように、加工済ＭＧ（１）から加工済ＭＧ（３）が既に生成されている場合において、ＭＧ（１）のロールバックが発生した場合、中継装置１は、図２５に示すように、ＭＧ（１）のみでなく、ＭＧ（２）及びＭＧ（３）を情報格納領域１３０ではなく情報格納領域１４０に戻す。そして、中継装置１は、この場合、ＭＧ（１）からＭＧ（３）のそれぞれと加工済ＭＧ（１）から加工済ＭＧ（３）のそれぞれとを対応付ける識別情報１４１を情報格納領域１４０に記憶する。
【０１０１】
これにより、第２の実施の形態における中継装置１は、第１の実施の形態の場合と同様に、ロールバックの発生に伴ってメッセージ１３１をキューに戻す毎に、加工済メッセージ１３３の生成を繰り返し行う必要がなくなる。また、第２の実施の形態における中継装置１は、情報格納領域１４０に記憶されるメッセージのデータ量を抑制することが可能になる。
【０１０２】
以上の実施の形態をまとめると、以下の付記のとおりである。
【０１０３】
（付記１）
受信した複数のデータを前記複数のデータそれぞれの受信順序に対応付けて記憶部に記憶すると共に、前記複数のデータそれぞれの加工済データを生成して、生成した前記加工済データを前記受信順序に従って送信する処理をコンピュータに実行させるデータ処理プログラムにおいて、
前記複数のデータのうちの何れかのデータの加工済データの生成後であって、該加工済データの送信前に、前記何れかのデータより前の受信順序に対応付けられて前記記憶部に記憶された他のデータのロールバックを検出すると、前記何れかのデータの加工済データを前記記憶部とは異なる他の記憶部に記憶するとともに、前記何れかのデータの加工済データの識別情報を、前記何れかのデータに対応付けて前記記憶部に記憶する、
処理を前記コンピュータに実行させることを特徴とするデータ処理プログラム。
【０１０４】
（付記２）
付記１において、
前記他のデータは、該他のデータの加工済データが送信先に送信される前の状態のデータである、
ことを特徴とするデータ処理プログラム。
【０１０５】
（付記３）
付記１において、
前記識別情報を記憶する処理では、前記ロールバックを検出した場合において、前記他のデータの加工済データが生成されている場合、前記他のデータの加工済データを前記他の記憶部に記憶するとともに、前記他のデータの加工済データの識別情報を、前記他のデータに対応付けて前記記憶部に記憶する、
ことを特徴とするデータ処理プログラム。
【０１０６】
（付記４）
付記１において、
前記加工済データを生成する処理では、前記他の記憶部に前記複数のデータに含まれる特定のデータの加工済データが記憶されている場合、前記複数のデータのうち、前記特定のデータ以外のデータの加工済データの生成を行う、
ことを特徴とするデータ処理プログラム。
【０１０７】
（付記５）
付記１において、
前記加工済データを送信する処理では、前記他の記憶部に記憶された加工済データが存在する場合、生成した前記加工済データ及び前記他の記憶部に記憶された加工済データそれぞれを、前記受信順序に従って送信先に送信する、
ことを特徴とするデータ処理プログラム。
【０１０８】
（付記６）
付記１において、さらに、
前記ロールバックを検出した後に、前記他の記憶部に記憶された特定のデータの加工済データが生成された場合、前記特定のデータの加工済データを前記他の記憶部に記憶するとともに、前記特定のデータの加工済データの識別情報を、前記特定のデータに対応付けて前記記憶部に記憶する、
処理を前記コンピュータに実行させることを特徴とするデータ処理プログラム。
【０１０９】
（付記７）
第１記憶部に記憶された複数のデータを前記複数のデータそれぞれの受信順序に対応付けて第２記憶部に記憶すると共に、前記複数のデータそれぞれの加工済データを生成して、生成した前記加工済データを前記受信順序に従って送信する処理をコンピュータに実行させるデータ処理プログラムにおいて、
前記複数のデータのうちの何れかのデータの加工済データの生成後であって、該加工済データの送信前に、前記何れかのデータより前の受信順序に対応付けられて前記第１及び第２記憶部に記憶された他のデータのロールバックを検出すると、前記何れかのデータの加工済データを第３記憶部に記憶するとともに、前記何れかのデータの加工済データの識別情報を、前記何れかのデータに対応付けて前記第２記憶部に記憶する、
処理を前記コンピュータに実行させることを特徴とするデータ処理プログラム。
【０１１０】
（付記８）
第１記憶部に記憶された複数のデータと前記複数のデータそれぞれの受信順序とを対応付けた情報を参照して前記複数のデータそれぞれの加工済データを生成し、生成した前記加工済データを前記受信順序に従って送信する処理をコンピュータに実行させるデータ処理プログラムにおいて、
前記複数のデータのうちの何れかのデータの加工済データの生成後であって、該加工済データの送信前に、前記何れかのデータより前の受信順序に対応付けられて前記第１記憶部に記憶された他のデータのロールバックを検出すると、前記何れかのデータの加工済データの識別情報を、前記何れかのデータに対応付けて第２記憶部に記憶するとともに、前記何れかのデータの加工済データを第３記憶部に記憶する、
処理をコンピュータに実行させることを特徴とするデータ処理プログラム。
【０１１１】
（付記９）
受信した複数のデータを前記複数のデータそれぞれの受信順序に対応付けて記憶部に記憶すると共に、前記複数のデータそれぞれの加工済データを生成して、生成した前記加工済データを前記受信順序に従って送信するデータ処理装置において、
前記複数のデータのうちの何れかのデータの加工済データの生成後であって、該加工済データの送信前に、前記何れかのデータより前の受信順序に対応付けられて前記記憶部に記憶された他のデータのロールバックを検出すると、前記何れかのデータの加工済データを前記記憶部とは異なる他の記憶部に記憶するとともに、前記何れかのデータの加工済データの識別情報を、前記何れかのデータに対応付けて前記記憶部に記憶する情報管理部を有する、
ことを特徴とするデータ処理装置。
【０１１２】
（付記１０）
第１記憶部に記憶された複数のデータを前記複数のデータそれぞれの受信順序に対応付けて第２記憶部に記憶すると共に、前記複数のデータそれぞれの加工済データを生成して、生成した前記加工済データを前記受信順序に従って送信するデータ処理装置において、
前記複数のデータのうちの何れかのデータの加工済データの生成後であって、該加工済データの送信前に、前記何れかのデータより前の受信順序に対応付けられて前記第１及び第２記憶部に記憶された他のデータのロールバックを検出すると、前記何れかのデータの加工済データを第３記憶部に記憶するとともに、前記何れかのデータの加工済データの識別情報を、前記何れかのデータに対応付けて前記第２記憶部に記憶する情報管理部を有する、
ことを特徴とするデータ処理装置。
【０１１３】
（付記１１）
第１記憶部に記憶された複数のデータと前記複数のデータそれぞれの受信順序とを対応付けた情報を参照して前記複数のデータそれぞれの加工済データを生成し、生成した前記加工済データを前記受信順序に従って送信するデータ処理装置において、
前記複数のデータのうちの何れかのデータの加工済データの生成後であって、該加工済データの送信前に、前記何れかのデータより前の受信順序に対応付けられて前記第１及び第２記憶部に記憶された他のデータのロールバックを検出すると、前記何れかのデータの加工済データを第３記憶部に記憶するとともに、前記何れかのデータの加工済データの識別情報を、前記何れかのデータに対応付けて前記第２記憶部に記憶する情報管理部を有する、
ことを特徴とするデータ処理装置。
【０１１４】
（付記１２）
受信した複数のデータを前記複数のデータそれぞれの受信順序に対応付けて記憶部に記憶すると共に、前記複数のデータそれぞれの加工済データを生成して、生成した前記加工済データを前記受信順序に従って送信するデータ処理方法において、
前記複数のデータのうちの何れかのデータの加工済データの生成後であって、該加工済データの送信前に、前記何れかのデータより前の受信順序に対応付けられて前記記憶部に記憶された他のデータのロールバックを検出すると、前記何れかのデータの加工済データを前記記憶部とは異なる他の記憶部に記憶するとともに、前記何れかのデータの加工済データの識別情報を、前記何れかのデータに対応付けて前記記憶部に記憶する、
ことを特徴とするデータ処理方法。
【０１１５】
（付記１３）
第１記憶部に記憶された複数のデータを前記複数のデータそれぞれの受信順序に対応付けて第２記憶部に記憶すると共に、前記複数のデータそれぞれの加工済データを生成して、生成した前記加工済データを前記受信順序に従って送信するデータ処理方法において、
前記複数のデータのうちの何れかのデータの加工済データの生成後であって、該加工済データの送信前に、前記何れかのデータより前の受信順序に対応付けられて前記第１及び第２記憶部に記憶された他のデータのロールバックを検出すると、前記何れかのデータの加工済データを第３記憶部に記憶するとともに、前記何れかのデータの加工済データの識別情報を、前記何れかのデータに対応付けて前記第２記憶部に記憶する、
ことを特徴とするデータ処理方法。
【０１１６】
（付記１４）
第１記憶部に記憶された複数のデータと前記複数のデータそれぞれの受信順序とを対応付けた情報を参照して前記複数のデータそれぞれの加工済データを生成し、生成した前記加工済データを前記受信順序に従って送信するデータ処理方法において、
前記複数のデータのうちの何れかのデータの加工済データの生成後であって、該加工済データの送信前に、前記何れかのデータより前の受信順序に対応付けられて前記第１記憶部に記憶された他のデータのロールバックを検出すると、前記何れかのデータの加工済データの識別情報を、前記何れかのデータに対応付けて第２記憶部に記憶するとともに、前記何れかのデータの加工済データを第３記憶部に記憶する、
ことを特徴とするデータ処理方法。
【符号の説明】
【０１１７】
１：中継装置                    １１ａ：情報処理装置
１１ｂ：情報処理装置            １１ｃ：情報処理装置
１１ｄ：情報処理装置            ＮＷ：ネットワーク
【図１】
2018147451.tif 000003
【図２】
2018147451.tif 000004
【図３】
2018147451.tif 000005
【図４】
2018147451.tif 000006
【図５】
2018147451.tif 000007
【図６】
2018147451.tif 000008
【図７】
2018147451.tif 000009
【図８】
2018147451.tif 000010
【図９】
2018147451.tif 000011
【図１０】
2018147451.tif 000012
【図１１】
2018147451.tif 000013
【図１２】
2018147451.tif 000014
【図１３】
2018147451.tif 000015
【図１４】
2018147451.tif 000016
【図１５】
2018147451.tif 000017
【図１６】
2018147451.tif 000018
【図１７】
2018147451.tif 000019
【図１８】
2018147451.tif 000020
【図１９】
2018147451.tif 000021
【図２０】
2018147451.tif 000022
【図２１】
2018147451.tif 000023
【図２２】
2018147451.tif 000024
【図２３】
2018147451.tif 000025
【図２４】
2018147451.tif 000026
【図２５】
2018147451.tif 000027