(57)【要約】【課題】処理遅延の発生に応じたデータベースの切り替えに伴うデータ破壊を防止する管理プログラム、管理装置および管理方法を提供する。【解決手段】第１データベースの受け付けた処理要求に対する処理遅延の検知に応じて、第１データベースと第２データベースとの同期処理を停止させ、第１データベースにおいて実行中の処理に関するエラー通知を発行し、検知の後に受け付けた処理要求を第２データベースに振り分ける。【選択図】図６
2018181038.tif 000002
【特許請求の範囲】
【請求項１】
互いに同期した第１データベースおよび第２データベースを管理する管理装置に、
前記第１データベースの受け付けた処理要求に対する処理遅延の検知に応じて、前記第１データベースと前記第２データベースとの同期処理を停止させ、
前記第１データベースにおいて実行中の処理に関するエラー通知を発行し、
前記検知の後に受け付けた処理要求を前記第２データベースに振り分ける、
処理を実行させる管理プログラム。
【請求項２】
請求項１において、
前記エラー通知を発行する処理は、前記同期処理を停止させる処理の後に行われる、
管理プログラム。
【請求項３】
請求項１において、さらに、
前記第１データベースにおいて処理遅延が発生していない場合、前記処理要求を前記第２データベースよりも優先して前記第１データベースに振り分ける、
処理を前記管理装置に実行させる管理プログラム。
【請求項４】
請求項１において、
前記エラー通知を発行する処理では、記憶部に記憶された処理関連パラメータを参照し、前記第１データベースにおける処理遅延の検知を行い、さらに、
前記第１データベースの処理遅延の検知に応じて、前記第１データベースの処理遅延の発生状況に関する遅延情報を取得し、
取得した前記遅延情報に基づき、前記処理関連パラメータを更新する、
処理を前記管理装置に実行させる管理プログラム。
【請求項５】
請求項４において、
前記処理関連パラメータは、前記第１データベースにおける処理に対するタイムアウト時間を含み、
前記エラー通知を発行する処理では、前記第１データベースにおける処理が前記タイムアウト時間以内に完了しない場合、前記第１データベースにおいて処理遅延が発生したものと判定する、
管理プログラム。
【請求項６】
請求項５において、
前記遅延情報は、前記第１データベースにおける処理遅延の発生時間を含み、
前記処理関連パラメータを更新する処理では、取得した前記処理遅延の発生時間以上になるように前記タイムアウト時間を更新する、
管理プログラム。
【請求項７】
請求項４において、
前記遅延情報を取得する処理では、
前記第１データベースに対して監視用リクエストを送信し、
前記監視用リクエストに対して前記第１データベースから送信された前記遅延情報を取得する、
管理プログラム。
【請求項８】
請求項１において、
前記エラー通知を発行する処理では、検知した前記処理遅延に対応する処理要求の要求元のアプリケーションに対して前記エラー通知を発行し、
前記検知の後に受け付けた処理要求は、前記要求元のアプリケーションから前記エラー通知の発行に応じて再送された処理要求を含む、
管理プログラム。
【請求項９】
請求項３において、
前記処理要求を第１データベースに振り分ける処理では、前記第１データベースにおいて処理遅延が発生していない場合、記憶部に記憶された、前記処理要求を前記第２データベースよりも優先して前記第１データベースに振り分けることを示す振り分け情報を参照し、前記処理要求に対応する処理を前記第１データベースにおいて行い、さらに、
前記同期処理を停止させる処理の後、前記処理要求を前記第２データベースに振り分けることを示すように前記振り分け情報を更新する、
処理を前記管理装置に実行させ、
前記処理要求を第２データベースに振り分ける処理では、
前記検知の後に処理要求を受け付けた場合、更新された前記振り分け情報を参照し、前記検知の後に受け付けた処理要求を前記第２データベースに振り分ける、
管理プログラム。
【請求項１０】
請求項９において、
前記振り分け情報を更新する処理は、前記エラー通知を発行する処理の前に行われる、
管理プログラム。
【請求項１１】
請求項９において、
前記処理要求に対応する処理を第２データベースに振り分ける処理では、前記検知の後であって前記振り分け情報を更新する処理の前に処理要求を受け付けた場合、前記振り分け情報の更新が行われるまで待機する、
管理プログラム。
【請求項１２】
互いに同期した第１データベースおよび第２データベースを管理する管理装置であって、
前記第１データベースの受け付けた処理要求に対する処理遅延の検知に応じて、前記第１データベースと前記第２データベースとの同期処理を停止させる同期停止部と、
前記第１データベースにおいて実行中の処理に関するエラー通知を発行するエラー発行部と、
前記検知の後に受け付けた処理要求を前記第２データベースに振り分ける情報送信部と、を有する、
管理装置。
【請求項１３】
互いに同期した第１データベースおよび第２データベースを管理する管理装置による管理方法であって、
前記第１データベースの受け付けた処理要求に対する処理遅延の検知に応じて、前記第１データベースと前記第２データベースとの同期処理を停止させ、
前記第１データベースにおいて実行中の処理に関するエラー通知を発行し、
前記検知の後に受け付けた処理要求を前記第２データベースに振り分ける、
管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、管理プログラム、管理装置および管理方法に関する。
【背景技術】
【０００２】
データベースが利用される業務システム（以下、情報処理システムとも呼ぶ）において、例えば、利用者にサービスを提供する事業者（以下、単に事業者とも呼ぶ）は、利用者に対するサービスの提供に用いられるデータを格納するデータベースを含む業務システムの構築を行う。
【０００３】
上記のような業務システムでは、例えば、通常時において処理が行われる正系データベース（以下、第１データベースとも呼ぶ）の他に、副系データベース（以下、第２データベースとも呼ぶ）を有する。そして、業務システムは、例えば、正系データベースにおいて処理遅延が発生したことを検知した場合、正系データベースに代えて副系データベースによる処理を開始する。これにより、業務システムは、正系データベースに所定の異常が発生した場合であっても、利用者に対するサービスの提供を継続することが可能になる（例えば、特許文献１乃至３参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−２９３３２５号公報
【特許文献２】国際公開第２００７／０６３９４４号
【特許文献３】特開２０１６−０８５７５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記のように副系データベースによる処理を開始する場合、業務システムは、例えば、正系データベースを停止させる。具体的に、業務システムは、正系データベースを構成するハードウエアに対して割り込み命令を発行（送信）することで、正系データベースの停止を行う。これにより、業務システムは、正系データベースによる処理の再開（事業者が意図しない処理の再開）を防止することが可能になり、データ破壊の発生を防止することが可能になる。
【０００６】
しかしながら、例えば、正系データベースを構成するハードウエアが業務システムによって発行される割り込み命令に対応していない場合、業務システムは、ハードウエアに対する割り込み命令によって正系データベースを停止することができない。そのため、業務システムは、この場合、正系データベースを停止することなく副系データベースによる処理を開始する必要があり、データ破壊の発生を完全に防止することが困難になる場合がある。
【０００７】
そこで、一つの側面では、本発明は、処理遅延の発生に応じたデータベースの切り替えに伴うデータ破壊を防止する管理プログラム、管理装置および管理方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
実施の形態の一態様では、互いに同期した第１データベースおよび第２データベースを管理する管理装置に、前記第１データベースの受け付けた処理要求に対する処理遅延の検知に応じて、前記第１データベースと前記第２データベースとの同期処理を停止させ、前記第１データベースにおいて実行中の処理に関するエラー通知を発行し、前記検知の後に受け付けた処理要求を前記第２データベースに振り分ける、処理を実行させる。
【発明の効果】
【０００９】
一つの側面によれば、処理遅延の発生に応じたデータベースの切り替えに伴うデータ破壊を防止する。
【図面の簡単な説明】
【００１０】
【図１】図１は、情報処理システム１０の構成を示す図である。
【図２】図２は、情報処理システム１０の構成を示す図である。
【図３】図３は、情報処理システム１０の構成を示す図である。
【図４】図４は、管理装置１のハードウエア構成を示す図である。
【図５】図５は、管理装置１の機能ブロック図である。
【図６】図６は、第１の実施の形態におけるＤＢ管理処理の概略を説明するフローチャート図である。
【図７】図７は、第１の実施の形態におけるＤＢ管理処理の概略を説明する図である。
【図８】図８は、第１の実施の形態におけるＤＢ管理処理の概略を説明する図である。
【図９】図９は、第１の実施の形態におけるＤＢ管理処理の概略を説明する図である。
【図１０】図１０は、第１の実施の形態におけるＤＢ管理処理の概略を説明する図である。
【図１１】図１１は、第１の実施の形態におけるＤＢ管理処理の概略を説明する図である。
【図１２】図１２は、第１の実施の形態におけるＤＢ管理処理の概略を説明する図である。
【図１３】図１３は、第１の実施の形態におけるＤＢ管理処理の詳細を説明するフローチャート図である。
【図１４】図１４は、第１の実施の形態におけるＤＢ管理処理の詳細を説明するフローチャート図である。
【図１５】図１５は、第１の実施の形態におけるＤＢ管理処理の詳細を説明するフローチャート図である。
【図１６】図１６は、第１の実施の形態におけるＤＢ管理処理の詳細を説明するフローチャート図である。
【図１７】図１７は、振り分け情報１３１の具体例を説明する図である。
【図１８】図１８は、振り分け情報１３１の具体例を説明する図である。
【図１９】図１９は、第２の実施の形態におけるＤＢ管理処理の詳細を説明するフローチャート図である。
【図２０】図２０は、第２の実施の形態におけるＤＢ管理処理の詳細を説明するフローチャート図である。
【図２１】図２１は、第２の実施の形態におけるＤＢ管理処理の詳細を説明するフローチャート図である。
【図２２】図２２は、第２の実施の形態におけるＤＢ管理処理の詳細を説明するフローチャート図である。
【発明を実施するための形態】
【００１１】
［情報処理システムの構成］
初めに、情報処理システム１０の構成について説明を行う。図１から図３は、情報処理システム１０の構成を示す図である。図１から図３に示す情報処理システム１０は、例えば、管理装置１と、情報処理装置２と、第１データベース３ａと、第２データベース３ｂとを有する。
【００１２】
なお、以下、情報処理システム１０が第１データベース３ａと第２データベース３ｂとを有する場合について説明を行うが、情報処理システム１０は、３台以上のデータベースを有するものであってもよい。そして、この場合、情報処理システム１０は、３台以上のデータベースのうちの１台を正系データベースとして機能させ、正系データベース以外のデータベースを副系データベースとして機能させるものであってよい。
【００１３】
図１に示す例において、情報処理装置２は、１台以上の物理マシンによって構成され、事業者が利用者に対してサービスを提供するためのアプリケーションが動作する。そして、情報処理装置２は、例えば、図１に示すように、利用者に対するサービスの提供を行う際に、第１データベース３ａおよび第２データベース３ｂのうち、正系データベース（図１に示す例では第１データベース３ａ）に対して処理要求を送信する。具体的に、情報処理装置２が送信する処理要求は、例えば、第１データベース３ａに記憶されたデータに対する書き込み要求や読み込み要求である。
【００１４】
一方、第１データベース３ａは、情報処理装置２が送信した処理要求を受信した場合、図１に示すように、受信した処理要求に対応する処理を行う。そして、第１データベース３ａは、この場合、図１に示すように、処理要求に対応する処理を行うことによって更新されたデータ（差分データ）を第２データベース３ｂに送信することにより、第１データベース３ａに記憶されたデータと第２データベース３ｂ（副系データベース）に記憶されたデータとの同期処理を行う。
【００１５】
また、管理装置１は、第１データベース３ａおよび第２データベース３ｂの管理を行う。具体的に、管理装置１は、図１に示すように、例えば、第１データベース３ａ（正系データベース）に対して定期的にＰＩＮＧを送信することにより、第１データベース３ａの処理状態の監視（生存監視）を行う。
【００１６】
そして、管理装置１は、図２に示すように、第１データベース３ａにおいて処理遅延が発生していることを検知した場合、例えば、第１データベース３ａのハードウエアに対して割り込み命令を発行することによって、第１データベース３ａにおいて実行中の処理を中止する。また、管理装置１は、この場合、図２に示すように、第１データベース３ａのハードウエアに対して割り込み命令を発行することによって、第１データベース３ａを停止する。
【００１７】
これにより、管理装置１は、図３に示すように、第１データベース３ａにおいて発生した処理遅延を検知した後、情報処理装置２から送信された処理要求に対応する処理（図２において中止した処理要求に対応する処理を含む）を第２データベース３ｂに行わせることが可能になる。そのため、管理装置１は、第１データベース３ａにおける処理の再開（事業者が意図しない処理の再開）に伴うデータ破壊の発生を防止することが可能になる。したがって、管理装置１は、第１データベース３ａ（正系データベース）において処理遅延が発生した場合であっても、利用者に対するサービスの提供を継続させることが可能になる。
【００１８】
しかしながら、例えば、第１データベース３ａを構成するハードウエアが管理装置１によって発行される割り込み命令に対応していない場合、管理装置１は、ハードウエアに対する割り込み命令によって処理遅延が発生した第１データベース３ａを停止することができない。そのため、情報処理システム１０では、第１データベース３ａにおける処理遅延の発生を検知した場合であっても、第１データベース３ａを停止することなく第２データベース３ｂによる処理を開始する必要がある。したがって、情報処理システム１０では、第２データベース３ｂによる処理の開始後に第１データベース３ａが処理の再開（事業者が意図しない処理の再開）を行った場合、第１データベース３ａによる同期処理の実行等によって、データ破壊が発生する可能性がある。
【００１９】
そこで、本実施の形態における管理装置１は、第１データベース３ａ（正系データベース）の処理遅延の検知に応じて、第１データベース３ａと第２データベース３ｂ（副系データベース）との同期処理を停止させる。そして、管理装置１は、第１データベース３ａにおいて実行中の処理に関するエラー通知を発行（送信）する。さらに、管理装置１は、新たな処理要求を受け付けた場合、受け付けた新たな処理要求を第２データベース３ｂに振り分ける。
【００２０】
すなわち、管理装置１は、第１データベース３ａにおいて処理遅延が発生した際に、第１データベース３ａおよび第２データベース３ｂの同期処理を停止することで、第２データベース３ｂが処理を開始した後に同期処理が行われることを防止する。これにより、管理装置１は、第２データベース３ｂによる処理の開始後に第１データベース３ａが処理の再開を行った場合であっても、第１データベース３ａによって第２データベース３ｂとの間において同期処理が行われることを防止することが可能になり、データ破壊の発生を防止することが可能になる。
【００２１】
また、管理装置１は、第１データベース３ａにおいて実行中であった処理に関するエラー通知を情報処理装置２に対して発行することで、処理遅延の発生時において第１データベース３ａが実行していた処理（未完了の処理）の中止と、その処理に対応する処理要求の再送とを情報処理装置２に行わせる。これにより、管理装置１は、第１データベース３ａにおける処理遅延の発生後に情報処理装置２から送信された新たな処理要求に対応する処理だけでなく、第１データベース３ａにおける処理遅延の発生が検知された際に実行中であった処理を第２データベース３ｂに行わせることが可能になり、データ破壊の発生を防止することが可能になる。
【００２２】
さらに、管理装置１は、情報処理装置２と各データベースとの間に位置し、情報処理装置２が送信した処理要求を受信することで、第１データベース３ａにおける処理遅延の発生後に情報処理装置２から受信した処理要求（中止された処理に対応する処理要求の再送を含む）を、第２データベース３ｂ（副系データベース）に送信する。これにより、管理装置１は、第１データベース３ａが処理の再開を行った場合であっても、情報処理装置２から送信された新たな処理要求が第１データベース３ａに送信され、新たな処理要求に対応する処理が第１データベース３ａによって行われることを防止することが可能になり、データ破壊の発生を防止することが可能になる。
【００２３】
そのため、管理装置１は、第１データベース３ａにおいて処理遅延が発生した場合であっても、ハードウエアへの割り込み命令を発行することなく利用者に対するサービスの提供を継続することが可能になる。
【００２４】
［情報処理システムのハードウエア構成］
次に、情報処理システム１０のハードウエア構成について説明する。図４は、管理装置１のハードウエア構成を示す図である。
【００２５】
管理装置１は、プロセッサであるＣＰＵ１０１と、メモリ１０２と、外部インターフェース（Ｉ／Ｏユニット）１０３と、記憶媒体１０４とを有する。各部は、バス１０５を介して互いに接続される。
【００２６】
記憶媒体１０４は、例えば、記憶媒体１０４内のプログラム格納領域（図示しない）に、第１データベース３ａおよび第２データベース３ｂの管理を行う処理（以下、ＤＢ管理処理とも呼ぶ）を行うためのプログラム１１０を記憶する。また、記憶媒体１０４は、例えば、ＤＢ管理処理を行う際に用いられる情報を記憶する情報格納領域１３０（以下、記憶部１３０とも呼ぶ）を有する。
【００２７】
ＣＰＵ１０１は、プログラム１１０の実行時に、プログラム１１０を記憶媒体１０４からメモリ１０２にロードし、プログラム１１０と協働してＤＢ管理処理を行う。また、外部インターフェース１０３は、例えば、第１データベース３ａおよび第２データベース３ｂと通信を行う。
【００２８】
［情報処理システムの機能］
次に、情報処理システム１０の機能について説明する。図５は、管理装置１の機能ブロック図である。
【００２９】
管理装置１のＣＰＵ１０１は、プログラム１１０と協働することにより、例えば、情報受信部１１１と、情報送信部１１２と、生存監視部１１３と、同期停止部１１４と、エラー発行部１１５と、情報管理部１１６として動作する。また、情報格納領域１３０には、例えば、振り分け情報１３１と、タイムアウト情報１３２（以下、処理関連パラメータとも呼ぶ）とが記憶される。
【００３０】
情報受信部１１１は、情報処理装置２から送信された第１データベース３ａまたは第２データベース３ｂに対する処理要求を受信する。
【００３１】
情報送信部１１２は、情報受信部１１１が受信した処理要求を第１データベース３ａまたは第２データベース３ｂのいずれかに送信する。具体的に、情報送信部１１２は、情報格納領域１３０に記憶された振り分け情報１３１を参照し、第１データベース３ａおよび第２データベース３ｂのうち、振り分け情報１３１が示すデータベースに対して処理要求の送信を行う。振り分け情報１３１は、情報受信部１１１が受信した処理要求の送信先を示す情報である。
【００３２】
生存監視部１１３は、第１データベース３ａまたは第２データベース３ｂ（第１データベース３ａおよび第２データベース３ｂ）の生存監視を行う。具体的に、生存監視部１１３は、例えば、各データベースに対して定期的にＰＩＮＧの送信を行い、応答があったデータベースが起動（生存）しているものと判定する。一方、生存監視部１１３は、例えば、タイムアウト情報１３２が示す時間以内に応答がなかったデータベースが存在した場合、存在したデータベースが起動（生存）していないものと判定する。なお、タイムアウト情報１３２は、事業者によって予め情報格納領域１３０に記憶されるものであってよい。
【００３３】
同期停止部１１４は、第１データベース３ａ（正系データベース）の処理遅延の検知に応じて、第１データベース３ａと第２データベース３ｂとの同期処理を停止させる。具体的に、同期停止部１１４は、例えば、第２データベース３ｂが有するＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）テーブルを更新し、第２データベース３ｂにおける第１データベース３ａに向けたポートを遮断することにより、第１データベース３ａと第２データベース３ｂとの間の同期処理を停止させる。
【００３４】
エラー発行部１１５は、第１データベース３ａ（正系エータベース）において実行中の処理に関するエラー通知を情報処理装置２に対して発行する。
【００３５】
情報管理部１１６は、情報格納領域１３０に記憶された振り分け情報１３１の更新を行う。振り分け情報１３１の具体例については後述する。
【００３６】
［第１の実施の形態の概略］
次に、第１の実施の形態の概略について説明を行う。図６は、第１の実施の形態におけるＤＢ管理処理の概略を説明するフローチャート図である。図７から図１２は、第１の実施の形態におけるＤＢ管理処理の概略を説明する図である。
【００３７】
管理装置１は、図７に示すように、情報処理装置２が第１データベース３ａ（正系データベース）に対して処理要求を送信した場合、情報処理装置２から送信された処理要求を一旦受信し、現在の正系データベース（図７に示す例では第１データベース３ａ）に送信する。その後、管理装置１は、処理要求に対応する処理と、第２データベース３ｂとの間における同期処理とが完了した旨の通知（以下、完了通知とも呼ぶ）を第１データベース３ａから受信した場合、受信した完了通知を情報処理装置２に送信する。
【００３８】
また、管理装置１は、図１等で説明した場合と同様に、図７に示すように、第１データベース３ａ（正系データベース）の生存監視を行う。
【００３９】
一方、管理装置１は、図６に示すように、第１データベース３ａにおける処理遅延を検知するまで待機する（Ｓ１のＮＯ）。そして、第１データベース３ａにおける処理遅延を検知した場合（Ｓ１のＹＥＳ）、管理装置１は、図８に示すように、第１データベース３ａと第２データベース３ｂとの同期処理を停止させる（Ｓ２）。
【００４０】
すなわち、管理装置１は、第１データベース３ａにおいて処理遅延が発生した際に、第１データベース３ａおよび第２データベース３ｂの同期処理を停止することで、第２データベース３ｂが処理を開始した後に同期処理が行われることを防止する。これにより、管理装置１は、第２データベース３ｂによる処理の開始後に第１データベース３ａが処理の再開を行った場合であっても、第１データベース３ａによって第２データベース３ｂとの間において同期処理が行われることを防止することが可能になり、データ破壊の発生を防止することが可能になる。
【００４１】
続いて、管理装置１は、図９に示すように、第１データベース３ａにおいて実行中の処理に関するエラー通知を発行する（Ｓ３）。具体的に、管理装置１は、第１データベース３ａにおいて実行中の処理に対応する処理要求を送信した情報処理装置２に対してエラー通知を発行する。
【００４２】
すなわち、管理装置１は、第１データベース３ａにおいて実行中であった処理に関するエラー通知を情報処理装置２に対して発行することで、処理遅延の発生時において第１データベース３ａが実行していた処理（未完了の処理）の中止と、その処理に対応する処理要求の再送とを情報処理装置２に行わせる。これにより、管理装置１は、第１データベース３ａにおける処理遅延の発生後に情報処理装置２から送信された新たな処理要求に対応する処理だけでなく、第１データベース３ａにおける処理遅延の発生が検知された際に実行中であった処理を第２データベース３ｂに行わせることが可能になり、データ破壊の発生を防止することが可能になる。
【００４３】
その後、管理装置１は、情報処理装置２が送信した新たな処理要求を受け付けるまで待機する（Ｓ４のＮＯ）。具体的に、管理装置１は、通常の処理要求、または、Ｓ３の処理で情報処理装置２に対して発行したエラー通知に対応する処理要求（処理要求の再送）を受け付けるまで待機する。そして、新たな処理要求を受け付けた場合（Ｓ４のＹＥＳ）、管理装置１は、図１０に示すように、Ｓ４の処理で受け付けた新たな処理要求を第２データベース３ｂに振り分ける（Ｓ５）。
【００４４】
すなわち、管理装置１は、情報処理装置２と各データベースとの間に位置し、情報処理装置２が送信した処理要求を受信することで、第１データベース３ａにおける処理遅延の発生後に情報処理装置２から受信した処理要求（中止された処理に対応する処理要求の再送を含む）を、第２データベース３ｂ（副系データベース）に送信する。これにより、管理装置１は、第１データベース３ａが処理の再開を行った場合であっても、情報処理装置２から送信された新たな処理要求が第１データベース３ａに送信され、新たな処理要求に対応する処理が第１データベース３ａによって行われることを防止することが可能になり、データ破壊の発生を防止することが可能になる。
【００４５】
これにより、管理装置１は、第１データベース３ａにおいて処理遅延が発生した場合であっても、ハードウエアへの割り込み命令を発行することなく利用者に対するサービスの提供を継続することが可能になる。
【００４６】
なお、管理装置１、情報処理装置２、第１データベース３ａおよび第２データベース３ｂは、それぞれ物理マシンによって構成されるものであってもよく、物理マシン上に生成された仮想マシンによって構成されるものであってもよい。
【００４７】
また、情報処理システム１０は、図１１および図１２に示すように、図７等で説明した管理装置１に代えて、第１管理装置１ａおよび第２管理装置１ｂを有するものであってもよい。第１管理装置１ａは、図１１に示すように、図７等で説明した管理装置１が行う処理のうち、例えば、情報処理装置２から受信した処理要求や第１データベース３ａ等から受信した完了通知の送受信を行う。また、第２管理装置１ｂは、図１１に示すように、図７等で説明した管理装置１が行う処理のうち、例えば、第１データベース３ａ等の生存監視を行う。
【００４８】
そして、第２管理装置１ｂは、図１２に示すように、例えば、第１データベース３ａにおける処理遅延の発生を検知した場合、第１データベース３ａにおいて処理遅延が発生したことを示す通知を第１管理装置１ａに送信するものであってもよい。その後、第１管理装置１ａは、第１管理装置１ａから通知を受信したことに応じて、図６で説明したＳ２以降の処理を開始するものであってもよい（Ｓ１のＹＥＳ）。
【００４９】
［第１の実施の形態の詳細］
次に、第１の実施の形態の詳細について説明する。図１３から図１６は、第１の実施の形態におけるＤＢ管理処理の詳細を説明するフローチャート図である。また、図１７および図１８は、第１の実施の形態におけるＤＢ管理処理の詳細を説明する図である。図１３から図１６を参照しながら、図１７および図１８のＤＢ管理処理の詳細を説明する。
【００５０】
［情報振り分け処理］
初めに、情報処理装置２から受信した処理要求の振り分けを行う処理（以下、情報振り分け処理とも呼ぶ）について説明を行う。
【００５１】
管理装置１の情報受信部１１１は、図１３に示すように、情報処理装置２から送信された処理要求を受け付けるまで待機する（Ｓ２１のＮＯ）。そして、処理要求を受け付けた場合（Ｓ２１のＹＥＳ）、管理装置１の情報送信部１１２は、情報格納領域１３０に記憶された振り分け情報１３１を参照し、情報処理装置２から受信した処理要求の現在の振り分け先を特定する（Ｓ２２）。以下、振り分け情報１３１の具体例について説明を行う。
【００５２】
［振り分け情報の具体例］
図１７および図１８は、振り分け情報１３１の具体例を説明する図である。図１７および図１８に示す振り分け情報１３１は、振り分け情報１３１に含まれる各情報を識別する「項番」と、正系データベースのＩＰアドレスが設定される「正系ＤＢ」と、副系データベースのＩＰアドレスが設定される「副系ＤＢ」とを項目として有する。
【００５３】
具体的に、図１７に示す振り分け情報１３１には、「項番」が「１」である情報の「正系ＤＢ」として「１０．２．ＡＡ．ＢＢ」が設定され、「副系ＤＢ」として「１０．２．ＡＡ．ＣＣ」が設定される。
【００５４】
そして、情報送信部１１２は、Ｓ２２の処理において、例えば、図１７に示す振り分け情報１３１を参照し、情報処理装置２から受信した処理要求の現在の振り分け先として、「正系ＤＢ」に設定された「１０．２．ＡＡ．ＢＢ」を特定する。
【００５５】
図１３に戻り、情報送信部１１２は、Ｓ２１の処理で受け付けた処理要求を、Ｓ２２の処理で特定した振り分け先に送信する（Ｓ２３）。具体的に、Ｓ２２の処理で特定された振り分け先が「１０．２．ＡＡ．ＢＢ」である場合、情報送信部は、Ｓ２１の処理で受け付けた処理要求を、ＩＰアドレスが「１０．２．ＡＡ．ＢＢ」であるデータベースに対して送信する。
【００５６】
また、情報受信部１１１は、図１４に示すように、第１データベース３ａまたは第２データベース３ｂから処理要求に対する処理の完了通知を受け付けるまで待機する（Ｓ３１のＮＯ）。具体的に、情報受信部１１１は、Ｓ２３の処理において送信された処理要求に対する処理と、その処理が行われた後における同期処理（第１データベース３ａに記憶されたデータと第２データベース３ｂに記憶されたデータとの同期処理）とが完了したことを示す完了通知を受信するまで待機する。そして、完了通知を受け付けた場合（Ｓ３１のＹＥＳ）、情報送信部１１２は、受け付けた完了通知を情報処理装置２に送信する（Ｓ３２）。
【００５７】
これにより、情報処理装置２は、第１データベース３ａ等に送信した処理要求に対応する処理が完了したものと判定することが可能になる。
【００５８】
［ＤＢ管理処理の詳細］
次に、ＤＢ管理処理の詳細について説明を行う。なお、以下、第１データベース３ａが正系データベースであり、第２データベース３ｂが副系データベースであるものとして説明を行う。
【００５９】
管理装置１の生存監視部１１３は、図１５に示すように、生存監視タイミングまで待機する（Ｓ４１のＮＯ）。生存開始タイミングは、例えば、１分ごと等、定期的なタイミングであってよい。
【００６０】
そして、生存監視タイミングになった場合（Ｓ４１のＹＥＳ）、生存監視部１１３は、第１データベース３ａに対して生存監視を行う（Ｓ４２）。具体的に、生存監視部１１３は、例えば、第１データベース３ａに対してＰＩＮＧの送信を行う。
【００６１】
その後、生存監視部１１３は、第１データベース３ａにおける処理遅延を検知するまで待機する。具体的に、生存監視部１１３は、例えば、Ｓ４２の処理において第１データベース３ａに対するＰＩＮＧの送信を行ったにもかかわらず、情報格納領域１３０に記憶されたタイムアウト情報１３２が示す時間以内に第１データベース３ａから応答がなかった場合、第１データベース３ａにおいて処理遅延が発生しているものと判定する。
【００６２】
そして、第１データベース３ａにおける処理遅延を検知した場合（Ｓ４３のＹＥＳ）、管理装置１の同期停止部１１４は、第１データベース３ａと第２データベース３ｂとの同期処理を停止させる（Ｓ４４）。一方、第１データベース３ａにおける処理遅延を検知しなかった場合（Ｓ４３のＮＯ）、生存監視部１１３は、Ｓ４１以降の処理を再度行う。
【００６３】
続いて、管理装置１の情報管理部１１６は、図１６に示すように、Ｓ２１の処理で受け付けた処理要求を第２データベース３ｂに振り分けることを示すように、振り分け情報１３１を更新する（Ｓ５１）。具体的に、情報管理部１１６は、図１８に示すように、例えば、「項番」が「１」である情報の「正系ＤＢ」に、図１７で説明した振り分け情報１３１において「副系ＤＢ」に設定されていた「１０．２．ＡＡ．ＣＣ」を設定する。そして、情報管理部１１６は、図１８に示すように、例えば、「副系ＤＢ」に、情報が存在しないことを示す「−」を設定する。
【００６４】
これにより、管理装置１は、Ｓ４３の処理において新たな処理要求を受け付けた場合、受け付けた新たな処理要求を第２データベース３ｂに処理させることが可能になる。
【００６５】
そして、管理装置１のエラー発行部１１５は、第１データベース３ａにおいて実行中の処理に関するエラー通知を発行する（Ｓ５２）。具体的に、エラー発行部１１５は、例えば、Ｓ５２の処理が行われる時点において、第１データベース３ａから完了通知を受信していない処理要求に対応する処理を、第１データベース３ａが現在実行している処理であると判定する。すなわち、第１データベース３ａが現在実行している処理には、例えば、第１データベース３ａの処理遅延が検知された後に、情報処理装置２から第１データベース３ａに対して送信された処理要求に対応する処理が含まれるものであってもよい。そして、エラー発行部１１５は、第１データベース３ａにおいて現在実行している判定された処理を特定する情報を含むエラー通知を、情報処理装置２に対して発行する。
【００６６】
その後、情報管理部１１６は、第１データベース３ａが所定時間内に処理を再開したか否かを判定する（Ｓ５３）。所定時間は、例えば、１０分等であってよい。
【００６７】
その結果、第１データベース３ａが所定時間内に処理を再開したと判定した場合（Ｓ５３のＹＥＳ）、情報管理部１１６は、第１データベース３ａにおける処理遅延の発生状況に関する遅延情報を取得する（Ｓ５４）。遅延情報は、例えば、第１データベース３ａにおいて実際に発生した遅延時間であり、第１データベース３ａにおけるログ情報等から取得される情報である。
【００６８】
続いて、情報管理部１１６は、この場合、Ｓ５４の処理で取得した遅延情報が示す時間以上を示すように、情報格納領域１３０に記憶されたタイムアウト情報１３２を更新する（Ｓ５５）。
【００６９】
これにより、情報管理部１１６は、第１データベース３ａにおいて過去に発生した処理遅延と同程度の処理遅延が発生するごとに、正系データベースの切り替えが行われることを防止することが可能になる。
【００７０】
なお、情報管理部１１６は、第１データベース３ａに対して監視用リクエストを送信し、送信した監視用リクエストに対して第１データベース３ａから送信された遅延情報を取得するものであってよい。
【００７１】
そして、Ｓ５５の処理の後、または、Ｓ５３の処理において第１データベース３ａが所定時間内に処理を再開しなかったと判定した場合（Ｓ５３のＮＯ）、生存監視部１１３は、Ｓ４１以降の処理を再度行う。
【００７２】
このように、管理装置１は、第１データベース３ａ（正系データベース）の処理遅延の検知に応じて、第１データベース３ａと第２データベース３ｂ（副系データベース）との同期処理を停止させる。そして、管理装置１は、第１データベース３ａにおいて実行中の処理に関するエラー通知を発行する。さらに、管理装置１は、新たな処理要求を受け付けた場合、受け付けた新たな処理要求を第２データベース３ｂに振り分ける。
【００７３】
すなわち、管理装置１は、第１データベース３ａにおいて処理遅延が発生した際に、第１データベース３ａおよび第２データベース３ｂの同期処理を停止することで、第２データベース３ｂが処理を開始した後に同期処理が行われることを防止する。これにより、管理装置１は、第２データベース３ｂによる処理の開始後に第１データベース３ａが処理の再開を行った場合であっても、第１データベース３ａによって第２データベース３ｂとの間において同期処理が行われることを防止することが可能になり、データ破壊の発生を防止することが可能になる。
【００７４】
また、管理装置１は、第１データベース３ａにおいて実行中であった処理に関するエラー通知を情報処理装置２に対して発行することで、処理遅延の発生時において第１データベース３ａが実行していた処理（未完了の処理）の中止と、その処理に対応する処理要求の再送とを情報処理装置２に行わせる。これにより、管理装置１は、第１データベース３ａにおける処理遅延の発生後に情報処理装置２から送信された新たな処理要求に対応する処理だけでなく、第１データベース３ａにおける処理遅延の発生が検知された際に実行中であった処理を第２データベース３ｂに行わせることが可能になり、データ破壊の発生を防止することが可能になる。
【００７５】
さらに、管理装置１は、情報処理装置２と各データベースとの間に位置し、情報処理装置２が送信した処理要求を受信することで、第１データベース３ａにおける処理遅延の発生後に情報処理装置２から受信した処理要求（中止された処理に対応する処理要求の再送を含む）を、第２データベース３ｂ（副系データベース）に送信する。これにより、管理装置１は、第１データベース３ａが処理の再開を行った場合であっても、情報処理装置２から送信された新たな処理要求が第１データベース３ａに送信され、新たな処理要求に対応する処理が第１データベース３ａによって行われることを防止することが可能になり、データ破壊の発生を防止することが可能になる。
【００７６】
そのため、管理装置１は、第１データベース３ａにおいて処理遅延が発生した場合であっても、ハードウエアへの割り込み命令を発行することなく利用者に対するサービスの提供を継続することが可能になる。
【００７７】
［第２の実施の形態の詳細］
次に、第２の実施の形態の詳細について説明する。図１９から図２２は、第２の実施の形態におけるＤＢ管理処理の詳細を説明するフローチャート図である。
【００７８】
第１の実施の形態における管理装置１は、第１データベース３ａの処理遅延を検知した場合に、同期処理の停止の後に振り分け情報１３１の更新を行い、振り分け情報１３１の更新の後にエラー通知の発行を行う。これに対し、第２の実施の形態における管理装置１は、第１データベース３ａの処理遅延を検知した場合に、同期処理の停止の後にエラー通知の発行を行い、エラー通知の発行を行った後に振り分け情報１３１の更新を行う。
【００７９】
［第２の実施の形態における情報振り分け処理］
初めに、第２の実施の形態における情報振り分け処理について説明を行う。
【００８０】
情報受信部１１１は、図１９に示すように、情報処理装置２から送信された処理要求を受け付けるまで待機する（Ｓ６１のＮＯ）。
【００８１】
そして、処理要求を受け付けた場合（Ｓ６１のＹＥＳ）、情報送信部１１２は、第１データベース３ａにおける処理遅延の発生に伴って振り分け情報１３１が更新されているか否かを判定する（Ｓ６２）。具体的に、情報送信部１１２は、例えば、第１データベース３ａにおける処理遅延の発生に伴うエラー通知の送信が前回行われた後、振り分け情報１３１の更新が行われたか否かの判定を行う。
【００８２】
その結果、第１データベース３ａにおける処理遅延の発生に伴って振り分け情報１３１が更新されていると判定した場合（Ｓ６２のＹＥＳ）、情報送信部１１２は、Ｓ６３以降の処理を行う。一方、第１データベース３ａにおける処理遅延の発生に伴って振り分け情報１３１が更新されていないと判定した場合（Ｓ６２のＮＯ）、情報送信部１１２は、振り分け情報１３１が更新されるまで待機し、振り分け情報１３１の更新が行われた後、Ｓ６３以降の処理を行う。
【００８３】
すなわち、情報送信部１１２は、振り分け情報１３１の更新をエラー通知の発行よりも後に行う場合であっても、第１データベース３ａにおける処理遅延の発生以降に情報処理装置２から送信された処理要求（エラー発行部１１５が発行したエラー通知に対する処理要求を含む）の全てを、第２データベース３ｂに送信する必要がある。そのため、情報送信部１１２は、Ｓ６２の処理において、例えば、第１データベース３ａにおける処理遅延の発生に伴うエラー通知の送信が前回行われた後、振り分け情報１３１の更新が行われたか否かの判定を行う。
【００８４】
これにより、管理装置１は、振り分け情報１３１の更新をエラー通知の発行よりも後に行う場合であっても、データ破壊の発生を防止することが可能になる。
【００８５】
なお、Ｓ６２の処理は、例えば、第１データベース３ａにおける処理遅延の発生に伴うエラー通知の送信が行われてから、振り分け情報１３１の更新が行われるまでの間に限って行われるものであってもよい。
【００８６】
その後、情報管理部１１６は、情報格納領域１３０に記憶された振り分け情報１３１を参照し、情報処理装置２から受信した処理要求の現在の振り分け先を特定する（Ｓ６３）。そして、情報送信部１１２は、Ｓ６１の処理で受け付けた処理要求を、Ｓ６３の処理で特定した振り分け先に送信する（Ｓ６４）。
【００８７】
また、情報受信部１１１は、図２０に示すように、第１の実施の形態における場合と同様に、第１データベース３ａまたは第２データベース３ｂから処理要求に対する処理の完了通知を受け付けるまで待機する（Ｓ７１のＮＯ）。具体的に、情報受信部１１１は、Ｓ６４の処理において送信された処理要求に対する処理と、その処理が行われた後における同期処理（第１データベース３ａに記憶されたデータと第２データベース３ｂに記憶されたデータとの同期処理）とが完了したことを示す完了通知を受信するまで待機する。そして、完了通知を受け付けた場合（Ｓ７１のＹＥＳ）、情報送信部１１２は、第１の実施の形態における場合と同様に、Ｓ７１の処理で受け付けた完了通知を情報処理装置２に送信する（Ｓ７２）。
【００８８】
［第２の実施の形態におけるＤＢ管理処理］
次に、第２の実施の形態におけるＤＢ管理処理について説明を行う。なお、以下、第１データベース３ａが正系データベースであり、第２データベース３ｂが副系データベースであるものとして説明を行う。
【００８９】
生存監視部１１３は、図２１に示すように、生存監視タイミングまで待機する（Ｓ８１のＮＯ）。そして、生存監視タイミングになった場合（Ｓ８１のＹＥＳ）、生存監視部１１３は、第１の実施の形態における場合と同様に、第１データベース３ａに対して生存監視を行う（Ｓ８２）。
【００９０】
その後、同期停止部１１４は、第１データベース３ａにおける処理遅延を検知するまで待機する（Ｓ８３のＮＯ）。そして、第１データベース３ａにおける処理遅延を検知した場合（Ｓ４３のＹＥＳ）、同期停止部１１４は、第１の実施の形態における場合と同様に、第１データベース３ａと第２データベース３ｂとの同期処理を停止させる（Ｓ８４）。
【００９１】
続いて、エラー発行部１１５は、図２２に示すように、第１データベース３ａにおいて実行中の処理に関するエラー通知を発行する（Ｓ９１）。その後、情報管理部１１６は、Ｓ６１の処理で受け付けた処理要求を第２データベース３ｂに振り分けることを示すように、振り分け情報１３１を更新する（Ｓ９２）。
【００９２】
すなわち、第２の実施の形態における管理装置１は、振り分け情報１３１の更新の完了を待つことなく、情報処理装置２に対するエラー通知の発行を行う。そして、第２の実施の形態における管理装置１は、図１９で説明したように、第１データベース３ａにおける処理遅延が発生した場合、振り分け情報１３１の更新が行われるまで情報処理装置２から送信された処理要求の振り分けを行わない。
【００９３】
これにより、管理装置１は、振り分け情報１３１の更新前にエラー通知の発行を行うことによるデータ破壊の発生を防止しつつ、情報処理装置２に対するエラー通知の発行タイミングを早めることが可能になる。そのため、管理装置１は、第１データベース３ａにおいて発生した処理遅延によるサービス（事業者が利用者に対して提供するサービス）への影響をより抑えることが可能になる。
【００９４】
その後、情報管理部１１６は、第１の実施の形態における場合と同様に、第１データベース３ａが所定時間内に処理を再開したか否かを判定する（Ｓ９３）。
【００９５】
その結果、第１データベース３ａが所定時間内に処理を再開したと判定した場合（Ｓ９３のＹＥＳ）、情報管理部１１６は、第１の実施の形態における場合と同様に、第１データベース３ａにおける処理遅延の発生状況に関する遅延情報を取得する（Ｓ９４）。
【００９６】
続いて、情報管理部１１６は、この場合、第１の実施の形態における場合と同様に、Ｓ９４の処理で取得した遅延情報が示す時間以上を示すように、情報格納領域１３０に記憶されたタイムアウト情報１３２を更新する（Ｓ９５）。
【００９７】
そして、Ｓ９５の処理の後、または、Ｓ９３の処理において第１データベース３ａが所定時間内に処理を再開しなかったと判定した場合（Ｓ９３のＮＯ）、生存監視部１１３は、第１の実施の形態における場合と同様に、Ｓ８１以降の処理を再度行う。
【００９８】
以上の実施の形態をまとめると、以下の付記のとおりである。
【００９９】
（付記１）
互いに同期した第１データベースおよび第２データベースを管理する管理装置に、
前記第１データベースの受け付けた処理要求に対する処理遅延の検知に応じて、前記第１データベースと前記第２データベースとの同期処理を停止させ、
前記第１データベースにおいて実行中の処理に関するエラー通知を発行し、
前記検知の後に受け付けた処理要求を前記第２データベースに振り分ける、
処理を実行させる管理プログラム。
【０１００】
（付記２）
付記１において、
前記エラー通知を発行する処理は、前記同期処理を停止させる処理の後に行われる、
管理プログラム。
【０１０１】
（付記３）
付記１において、さらに、
前記第１データベースにおいて処理遅延が発生していない場合、前記処理要求を前記第２データベースよりも優先して前記第１データベースに振り分ける、
処理を前記管理装置に実行させる管理プログラム。
【０１０２】
（付記４）
付記１において、
前記エラー通知を発行する処理では、記憶部に記憶された処理関連パラメータを参照し、前記第１データベースにおける処理遅延の検知を行い、さらに、
前記第１データベースの処理遅延の検知に応じて、前記第１データベースの処理遅延の発生状況に関する遅延情報を取得し、
取得した前記遅延情報に基づき、前記処理関連パラメータを更新する、
処理を前記管理装置に実行させる管理プログラム。
【０１０３】
（付記５）
付記４において、
前記処理関連パラメータは、前記第１データベースにおける処理に対するタイムアウト時間を含み、
前記エラー通知を発行する処理では、前記第１データベースにおける処理が前記タイムアウト時間以内に完了しない場合、前記第１データベースにおいて処理遅延が発生したものと判定する、
管理プログラム。
【０１０４】
（付記６）
付記５において、
前記遅延情報は、前記第１データベースにおける処理遅延の発生時間を含み、
前記処理関連パラメータを更新する処理では、取得した前記処理遅延の発生時間以上になるように前記タイムアウト時間を更新する、
管理プログラム。
【０１０５】
（付記７）
付記４において、
前記遅延情報を取得する処理では、
前記第１データベースに対して監視用リクエストを送信し、
前記監視用リクエストに対して前記第１データベースから送信された前記遅延情報を取得する、
管理プログラム。
【０１０６】
（付記８）
付記１において、
前記エラー通知を発行する処理では、検知した前記処理遅延に対応する処理要求の要求元のアプリケーションに対して前記エラー通知を発行し、
前記検知の後に受け付けた処理要求は、前記要求元のアプリケーションから前記エラー通知の発行に応じて再送された処理要求を含む、
管理プログラム。
【０１０７】
（付記９）
付記３において、
前記処理要求を第１データベースに振り分ける処理では、前記第１データベースにおいて処理遅延が発生していない場合、記憶部に記憶された、前記処理要求を前記第２データベースよりも優先して前記第１データベースに振り分けることを示す振り分け情報を参照し、前記処理要求に対応する処理を前記第１データベースにおいて行い、さらに、
前記同期処理を停止させる処理の後、前記処理要求を前記第２データベースに振り分けることを示すように前記振り分け情報を更新する、
処理を前記管理装置に実行させ、
前記処理要求を第２データベースに振り分ける処理では、
前記検知の後に処理要求を受け付けた場合、更新された前記振り分け情報を参照し、前記検知の後に受け付けた処理要求を前記第２データベースに振り分ける、
管理プログラム。
【０１０８】
（付記１０）
付記９において、
前記振り分け情報を更新する処理は、前記エラー通知を発行する処理の前に行われる、
管理プログラム。
【０１０９】
（付記１１）
付記９において、
前記処理要求に対応する処理を第２データベースに振り分ける処理では、前記検知の後であって前記振り分け情報を更新する処理の前に処理要求を受け付けた場合、前記振り分け情報の更新が行われるまで待機する、
管理プログラム。
【０１１０】
（付記１２）
互いに同期した第１データベースおよび第２データベースを管理する管理装置であって、
前記第１データベースの受け付けた処理要求に対する処理遅延の検知に応じて、前記第１データベースと前記第２データベースとの同期処理を停止させる同期停止部と、
前記第１データベースにおいて実行中の処理に関するエラー通知を発行するエラー発行部と、
前記検知の後に受け付けた処理要求を前記第２データベースに振り分ける情報送信部と、を有する、
管理装置。
【０１１１】
（付記１３）
付記１２において、
前記情報送信部は、前記第１データベースにおいて処理遅延が発生していない場合、前記処理要求を前記第２データベースよりも優先して前記第１データベースに振り分ける、
管理装置。
【０１１２】
（付記１４）
互いに同期した第１データベースおよび第２データベースを管理する管理装置による管理方法であって、
前記第１データベースの受け付けた処理要求に対する処理遅延の検知に応じて、前記第１データベースと前記第２データベースとの同期処理を停止させ、
前記第１データベースにおいて実行中の処理に関するエラー通知を発行し、
前記検知の後に受け付けた処理要求を前記第２データベースに振り分ける、
管理方法。
【０１１３】
（付記１５）
付記１４において、さらに、
前記第１データベースにおいて処理遅延が発生していない場合、前記処理要求を前記第２データベースよりも優先して前記第１データベースに振り分ける、
管理方法。
【符号の説明】
【０１１４】
１：管理装置                  ２：情報処理装置
３ａ：第１データベース        ３ｂ：第２データベース
【図１】
2018181038.tif 000003
【図２】
2018181038.tif 000004
【図３】
2018181038.tif 000005
【図４】
2018181038.tif 000006
【図５】
2018181038.tif 000007
【図６】
2018181038.tif 000008
【図７】
2018181038.tif 000009
【図８】
2018181038.tif 000010
【図９】
2018181038.tif 000011
【図１０】
2018181038.tif 000012
【図１１】
2018181038.tif 000013
【図１２】
2018181038.tif 000014
【図１３】
2018181038.tif 000015
【図１４】
2018181038.tif 000016
【図１５】
2018181038.tif 000017
【図１６】
2018181038.tif 000018
【図１７】
2018181038.tif 000019
【図１８】
2018181038.tif 000020
【図１９】
2018181038.tif 000021
【図２０】
2018181038.tif 000022
【図２１】
2018181038.tif 000023
【図２２】
2018181038.tif 000024