[情報処理システムの構成]
図1から図4は、情報処理システム10の構成を示す図である。図1等に示す情報処理システム10は、クラスタを構成する情報処理装置1及び切換元装置2を有する。
切換元装置2は、例えば、利用者に対してサービスの提供を行うための処理を実行する1以上の物理マシンである。そして、切換元装置2のCPU(図示しない)は、例えば、テスト対象プログラムを含む各種プログラムと協働することによって、再送テストのテスト対象であるテスト対象部21(以下、第1テスト対象部21とも呼ぶ)及びテスト対象部22(以下、第2テスト対象部22とも呼ぶ)と、ネットワークドライバ23(以下、単にドライバ23とも呼ぶ)として動作する。
具体的に、第1テスト対象部21は、利用者に対してサービスの提供を行うための処理を行う。また、第2テスト対象部22は、第1テスト対象部21による処理の実行に応じて、情報処理装置1等との間において必要になったメッセージの送受信を制御する。さらに、ネットワークドライバ23は、例えば、第2テスト対象部22からの要求に応じて、情報処理装置1等との間においてメッセージの送受信を行う。
一方、情報処理装置1は、例えば、切換元装置2において所定の異常が発生したと判定した場合に、切換元装置2が実行していた処理を引き継いで実行する1以上の物理マシンである。そして、情報処理装置1のCPU(図示しない)は、例えば、テスト対象プログラムを含む各種プログラムと協働することによって、再送テストのテスト対象であるテスト対象部11(以下、第1テスト対象部11とも呼ぶ)及びテスト対象部12(以下、第2テスト対象部12とも呼ぶ)と、ネットワークドライバ13(以下、単にドライバ13とも呼ぶ)として動作する。
具体的に、第1テスト対象部11は、利用者に対してサービスの提供を行うための処理を行う。また、第2テスト対象部12は、第1テスト対象部11による処理の実行に応じて、切換元装置2等との間において必要になったメッセージの送受信を制御する。さらに、ネットワークドライバ13は、例えば、第2テスト対象部12からの要求に応じて、切換元装置2等との間においてメッセージの送受信を行う。
[情報処理システムにおける再送テストの具体例]
次に、情報処理システム10における再送テストの具体例について説明を行う。
切換元装置2の第1テスト対象部21は、図1に示すように、例えば、情報処理装置1の生存確認を行うためのPINGの実行要求を切換元装置2の第2テスト対象部22に送信する(図1の(1))。そして、第2テスト対象部22は、例えば、PINGの実行要求を第1テスト対象部21から受信した場合、情報処理装置1の生存確認を行うためのPINGを実行する(図1の(2))。
その結果、情報処理装置1が動作していると判定した場合、第1テスト対象部21は、図2に示すように、情報処理装置1において動作する第1テスト対象部11の生存確認を行うための生存確認要求を第2テスト対象部22に送信する(図2の(3))。そして、第2テスト対象部22は、第1テスト対象部21が送信した生存確認要求を受信した場合、第1テスト対象部11の生存確認を行うためのメッセージ(以下、問合せメッセージとも呼ぶ)の送信指示を切換元装置2のネットワークドライバ23に送信する。その後、ネットワークドライバ23は、第2テスト対象部22から問合せメッセージの送信指示を受信したことに応じて、情報処理装置1に対して問合せメッセージを送信する(図2の(4))。
一方、情報処理装置1のネットワークドライバ13は、問合せメッセージを切換元装置2から受信した場合、再送テストに用いられるセッションの状態がOPENであるか否かを判定する。その結果、図2に示すように、再送テストに用いられるセッションの状態がCLOSEであると判定した場合(図2の(5))、ネットワークドライバ13は、問合せメッセージを第1テスト対象部11に対して送信することができないと判定し、問合せメッセージの送信が失敗した旨の応答メッセージを切換元装置2に対して送信する(図2の(6))。
そして、ネットワークドライバ23は、問合せメッセージの送信が失敗した旨の応答メッセージを情報処理装置1から受信した場合、受信した応答メッセージを第2テスト対象部22に送信する(図2の(7))。その後、第2テスト対象部22は、問合せメッセージの送信が失敗した旨の応答メッセージを受信したことに応じて、問合せメッセージの送信が失敗した旨の通知を第1テスト対象部21に送信する(図2の(8))。
これにより、第1テスト対象部21は、問合せメッセージの送信が失敗した旨の通知を第2テスト対象部22から受信した場合(第2テスト対象部22からの通知が異常復帰した場合)に、問合せメッセージが情報処理装置1の第1テスト対象部11に到達していないものと判定することが可能になる。
続いて、第1テスト対象部21は、問合せメッセージの送信が失敗した旨の通知を第2テスト対象部22から受信した場合、図3に示すように、第1テスト対象部11の生存確認を行うための生存確認要求を第2テスト対象部22に再送する(図3の(9))。そして、第2テスト対象部22は、第1テスト対象部21が再送した生存確認要求を受信した場合、問合せメッセージの再送指示をネットワークドライバ23に送信する。その後、ネットワークドライバ23は、第2テスト対象部22から問合せメッセージの再送指示を受信したことに応じて、情報処理装置1に対して問合せメッセージを再送する(図3の(10))。
一方、ネットワークドライバ13は、問合せメッセージを切換元装置2から受信した場合、再送テストに用いられるセッションの状態がOPENであるか否かを判定する。その結果、図3に示すように、再送テストに用いられるセッションの状態がOPENであると判定した場合(図3の(11))、ネットワークドライバ13は、問合せメッセージを第2テスト対象部12に送信する。そして、第2テスト対象部12は、ネットワークドライバ13から問合せメッセージを受信したことに応じて、受信した問合せメッセージを第1テスト対象部11に対して送信する(図3の(12))。
また、ネットワークドライバ13は、再送テストに用いられるセッションの状態がOPENであると判定した場合(図3の(11))、問合せメッセージの送信が成功した旨の応答メッセージを切換元装置2に対して送信する(図3の(13))。
そして、ネットワークドライバ23は、問合せメッセージの送信が成功した旨の応答メッセージを情報処理装置1から受信した場合、受信した応答メッセージを第2テスト対象部22に対して送信する(図3の(14))。その後、第2テスト対象部22は、問合せメッセージの送信が成功した旨の応答メッセージを受信したことに応じて、問合せメッセージの送信が成功した旨の通知を第1テスト対象部21に送信する(図3の(15))。
これにより、第1テスト対象部21は、問合せメッセージの送信が成功した旨の通知を第2テスト対象部22から受信した場合(第2テスト対象部22からの通知が正常復帰した場合)に、問合せメッセージが第1テスト対象部11に到達したものと判定することが可能になる。そのため、第1テスト対象部21は、この場合、第1テスト対象部11の動作状態を示すメッセージが情報処理装置1から送信されるまで待機する。
さらに、第1テスト対象部11は、問合せメッセージを第2テスト対象部12から受信した場合、図4に示すように、例えば、第1テスト対象部11が正常に動作していることを示すメッセージを第2テスト対象部12に送信する(図4の(16))。その後、第1テスト対象部11が正常に動作していることを示すメッセージは、ネットワークドライバ13、ネットワークドライバ23及び第2テスト対象部22を介して第1テスト対象部21に送信される(図4の(17)及び(18))。そして、第1テスト対象部11は、例えば、第1テスト対象部11が正常に動作していることを示すメッセージを受信したことに応じて、切換元装置2から情報処理装置1に対して処理の切り換えを行うテストの実行を開始する。
これにより、事業者は、問合せメッセージについての再送テストを行うことが可能になる。すなわち、事業者は、問合せメッセージの送信が失敗した旨の応答メッセージが情報処理装置1から切換元装置2に送信された場合に、切換元装置2が情報処理装置1に対して問合せメッセージの再送を行うことの確認を行うことが可能になる。
ここで、上記のような再送テストは、例えば、情報処理装置1から問合せメッセージに対する応答がない状況下において行う必要がある。そのため、再送テストが行われる場合、例えば、ネットワークドライバ23は、第2テスト対象部22に対し、問合せメッセージの送信が失敗した旨の応答メッセージを送信する。これにより、事業者は、情報処理装置1において動作する各種プログラムの処理を実際に制限することなく、情報処理装置1から問い合わせメッセージに対する応答がない状態を疑似的に作り出すことが可能になる。
しかしながら、この場合、情報処理装置1の状態は、通常処理の実行を何ら制限されていない状態である。そのため、情報処理装置1は、再送テストの実施中であっても、例えば、切換元装置2の生存確認を行うメッセージの送信等を行う可能性がある。すなわち、上記のように、情報処理装置1から問い合わせメッセージに対する応答がない状態を疑似的に作り出した場合、問い合わせメッセージに対する応答がなかった情報処理装置1からメッセージの送信が行われるという状況(通常は発生し得ない状況)が発生する可能性がある。そのため、事業者は、意図していた状況下における再送テストを行うことができない場合がある。
そこで、本実施の形態における情報処理装置1のネットワークドライバ13は、第1テスト対象部11(以下、特定のソフトウエアのプロセスとも呼ぶ)に対する問合せメッセージを受信したことに応じて、第1テスト対象部11が動作中であるか否かを判定する。具体的に、ネットワークドライバ13は、第1テスト対象部11に対する問合せメッセージの受信に応じて、情報処理装置1と切換元装置2の間における再送テストに用いられるセッションの状態がOPENであるか否かを判定する。
その結果、第1テスト対象部11が動作中である場合、ネットワークドライバ13は、受信した問合せメッセージの第1テスト対象部11への送信を抑制する。そして、ネットワークドライバ13は、第1テスト対象部11の動作が終了したことに応じて、第1テスト対象部11が動作していないことを示すメッセージを切換元装置2(問合せメッセージの送信元)に送信する。具体的に、ネットワークドライバ13は、情報処理装置1と切換元装置2との間における再送テストに用いられるセッションの状態がCLOSEになったことに応じて、第1テスト対象部11が動作していないことを示すメッセージの送信を行う。
すなわち、本実施の形態における情報処理装置1のネットワークドライバ13は、第1テスト対象部11に対する問合せメッセージを受信した場合において、第1テスト対象部11が動作中であると判定した場合、第1テスト対象部11に対して問い合わせメッセージを引き渡すことなく待機する。そして、ネットワークドライバ13は、第1テスト対象部11の動作が実際に終了した場合に、第1テスト対象部11が動作していない旨のメッセージを切換元装置2に返信する。
これにより、ネットワークドライバ13は、問い合わせメッセージの送信時において第1テスト対象部11が動作中である場合であっても、第1テスト対象部11が動作中である旨のメッセージが切換元装置2に送信されることを防止することが可能になる。そのため、ネットワークドライバ13は、問い合わせメッセージの送信時における第1テスト対象部11の動作状態によらず、第1テスト対象部11が動作していない旨のメッセージが切換元装置2に対して送信される状況を作り出すことが可能になる。
また、ネットワークドライバ13は、第1テスト対象部11が動作していない旨のメッセージの送信を第1テスト対象部11の動作が実際に終了してから行うことで、例えば、第1テスト対象部11が動作していない旨のメッセージの送信直後に、情報処理装置1から切換元装置2に対するメッセージの送信が行われることを防止することが可能になる。
[情報処理システムのハードウエア構成]
次に、情報処理システム10のハードウエア構成について説明する。図5は、情報処理装置1のハードウエア構成を示す図である。
情報処理装置1は、プロセッサであるCPU101と、メモリ102と、外部インターフェース(I/Oユニット)103と、記憶媒体104とを有する。各部は、バス105を介して互いに接続される。
記憶媒体104は、例えば、再送テストを行うために適切な状況を作り出す処理(以下、制御処理とも呼ぶ)を行うためのプログラム110(以下、制御プログラム110とも呼ぶ)を記憶する。
CPU101は、図5に示すように、プログラム110の実行時に、プログラム110を記憶媒体104からメモリ102にロードし、プログラム110と協働して制御処理を行う。
また、記憶媒体104は、例えば、制御処理を行う際に用いられる情報を記憶する情報格納領域130(以下、記憶部130とも呼ぶ)を有する。
外部インターフェース103は、例えば、切換元装置2と通信を行う。
[情報処理システムの機能]
次に、情報処理システム10の機能について説明を行う。図6は、情報処理装置1の機能のブロック図である。
情報処理装置1は、CPU101やメモリ102等のハードウエアとプログラム110とが有機的に協働することにより、ネットワークドライバ13の機能として、図6に示すように、メッセージ受信部111と、動作判定部112と、メッセージ制御部113と、メッセージ送信部114と、トレース取得部115と、メッセージ保持部116と、対応判定部117と、トレース制御部118と、OPEN制御部119と、CLOSE制御部120と、受信依頼受付部121と、送信依頼受付部122とを含む各種機能を実現する。
そして、情報処理装置1は、図6に示すように、切換元情報131と、トレース情報132とを情報格納領域130に記憶する。
メッセージ受信部111は、切換元装置2から送信された各種メッセージを受信する。具体的に、メッセージ受信部111は、例えば、第1テスト対象部11に対して送信された問合せメッセージを受信する。
動作判定部112は、第1テスト対象部11に対して送信された問合せメッセージをメッセージ受信部111が受信した場合、第1テスト対象部11が動作中であるか否かを判定する。具体的に、動作判定部112は、情報処理装置1と切換元装置2との間における再送テストに用いられるセッションの状態がOPENであるか否かの判定を行う。
メッセージ制御部113は、第1テスト対象部11が動作中であると動作判定部112が判定した場合、メッセージ受信部111が受信した問合せメッセージのテスト対象部11への送信を抑制する。
メッセージ送信部114は、第1テスト対象部11の動作が終了したことに応じて、第1テスト対象部11が動作していないことを示すメッセージを切換元装置2に送信する。具体的に、メッセージ送信部114は、情報処理装置1と切換元装置2との間における再送テストに用いられるセッションの状態がCLOSEになったことに応じて、第1テスト対象部11が動作していないことを示すメッセージの送信を行う。
トレース取得部115は、情報処理装置1と切換元装置2との間におけるメッセージの送受信に伴う処理の内容を示すトレース情報132を生成する。そして、トレース取得部115は、生成したトレース情報132を情報格納領域130に記憶する。
メッセージ保持部116は、第1テスト対象部11に対して送信された問合せメッセージをメッセージ受信部111が受信した場合、その問い合わせメッセージを情報格納領域130に記憶する。
対応判定部117は、メッセージ受信部111が新たな問合せメッセージを受信したことに応じて、情報格納領域130に記憶された問合せメッセージ(メッセージ保持部116が記憶した問合せメッセージ)が新たな問合せメッセージに対応するか否かを判定する。具体的に、対応判定部117は、この場合、情報格納領域130に記憶された問合せメッセージの一部(例えば、問い合わせメッセージの先頭数バイトのデータ)の内容と新たな問合せメッセージの一部(例えば、新たな問い合わせメッセージの先頭数バイトのデータ)の内容とが一致しているか否かの判定を行う。
トレース制御部118は、情報格納領域130に記憶された問合せメッセージが新たな問合せメッセージに対応すると対応判定部117が判定した場合、情報格納領域130に対するトレース情報132の記憶を抑制する。
OPEN制御部119は、情報処理装置1と切換元装置2との間における再送テストに用いられるセッションのOPENに伴う処理を行う。また、CLOSE制御部120は、情報処理装置1と切換元装置2との間における再送テストに用いられるセッションのCLOSEに伴う処理を行う。
受信依頼受付部121は、第1テスト対象部11からメッセージの受信依頼を受け付けに伴う処理を行う。また、送信依頼受付部122は、第1テスト対象部11からメッセージの送信依頼を受け付けに伴う処理を行う。切換元情報131の具体例については後述する。
[第1の実施の形態]
次に、第1の実施の形態について説明する。図7は、第1の実施の形態における制御処理の概略を説明するフローチャート図である。また、図8及び図9は、第1の実施の形態における制御処理の概略を説明する図である。図8及び図9を参照しながら第1の実施の形態における制御処理について説明を行う。
ネットワークドライバ13は、図7に示すように、問合せメッセージを受信するまで待機する(S1のNO)。具体的に、ネットワークドライバ13は、切換元装置2から問合せメッセージを受信するまで待機する。
そして、問合せメッセージを受信した場合(S1のYES)、ネットワークドライバ13は、受信した問合せメッセージが第1テスト対象部11に対する問合せメッセージであるか否かを判定する(S2)。
その結果、受信した問合せメッセージが第1テスト対象部11に対する問合せメッセージであると判定した場合(S2のYES)、ネットワークドライバ13は、第1テスト対象部11が動作中であるか否かを判定する(S3)。具体的に、ネットワークドライバ13は、情報処理装置1と切換元装置2との間における再送テストに用いられるセッションの状態がOPENであるか否かの判定を行う。一方、受信した問合せメッセージが第1テスト対象部11に対する問合せメッセージでないと判定した場合(S2のNO)、ネットワークドライバ13は、S1以降の処理を再度行う。
そして、図8に示すように、第1テスト対象部11が動作中であると判定した場合(S3のYES)、ネットワークドライバ13は、S1の処理で受信した問合せメッセージの第1テスト対象部11への送信を抑制する(S4)。一方、第1テスト対象部11が動作中でないと判定した場合(S3のNO)、ネットワークドライバ13は、S1の処理を再度行う。
続いて、ネットワークドライバ13は、第1テスト対象部11の動作が終了するまで待機する(S5のNO)。具体的に、ネットワークドライバ13は、情報処理装置1と切換元装置2との間における再送テストに用いられるセッションの状態がCLOSEになるまで待機する。
その結果、図9に示すように、第1テスト対象部11の動作が終了した場合(S5のYES)、ネットワークドライバ13は、第1テスト対象部11が動作していないことを示すメッセージを問合せメッセージの送信元に送信する(S6)。具体的に、ネットワークドライバ13は、この場合、例えば、第1テスト対象部11が動作していないことを示すメッセージを切換元装置2に送信する。
すなわち、本実施の形態における情報処理装置1のネットワークドライバ13は、第1テスト対象部11に対する問合せメッセージを受信した場合において、第1テスト対象部11が動作中であると判定した場合、第1テスト対象部11に対して問い合わせメッセージを引き渡すことなく待機する。そして、ネットワークドライバ13は、第1テスト対象部11の動作が実際に終了した場合に、第1テスト対象部11が動作していない旨のメッセージを切換元装置2に返信する。
これにより、ネットワークドライバ13は、問い合わせメッセージの送信時において第1テスト対象部11が動作中である場合であっても、第1テスト対象部11が動作中である旨のメッセージが切換元装置2に送信されることを防止することが可能になる。そのため、ネットワークドライバ13は、問い合わせメッセージの送信時における第1テスト対象部11の動作状態によらず、第1テスト対象部11が動作していない旨のメッセージが切換元装置2に対して送信される状況を作り出すことが可能になる。
また、ネットワークドライバ13は、第1テスト対象部11が動作していない旨のメッセージの送信を第1テスト対象部11の動作が実際に終了してから行うことで、第1テスト対象部11が動作していない旨のメッセージの送信直後に、情報処理装置1から切換元装置2に対するメッセージの送信が行われることを防止することが可能になる。
[第1の実施の形態の詳細]
次に、第1の実施の形態の詳細について説明する。図10から図25は、第1の実施の形態における制御処理の詳細を説明するフローチャート図である。また、図26から図29は、第1の実施の形態における制御処理の詳細を説明する図である。図26から図29を参照しながら、図10から図25の制御処理の詳細を説明する。なお、以下、情報格納領域130に記憶された各フラグの初期値が「OFF」であるものとして説明を行う。
[受信処理]
初めに、情報処理装置1における制御処理のうち、メッセージの受信に伴う処理(以下、受信処理とも呼ぶ)について説明を行う。図10から図19は、受信処理について説明するフローチャート図である。
情報処理装置1のメッセージ受信部111は、図10に示すように、他の情報処理装置からメッセージを受信するまで待機する(S11のNO)。
そして、他の情報処理装置からメッセージを受信した場合(S11のYES)、メッセージ受信部111は、情報格納領域130に記憶された切換元情報131に、S11の処理で受信したメッセージの送信元を示す情報が含まれているか否かを判定する(S12)。
すなわち、メッセージ受信部111は、この場合、例えば、S11の処理で受信したメッセージが切換元装置2から送信されたメッセージであるか否かの判定を行う。以下、切換元情報131の具体例について説明を行う。
[切換元情報の具体例]
図26は、切換元情報131の具体例を説明する図である。
図26に示す切換元情報131は、切換元情報131に含まれる情報を識別する「項番」と、情報処理装置1と再送テストを行う切換元装置2を識別する「切換元ID」と、再送テストに用いられるポートを識別する「ポート」とを項目として有する。
具体的に、図26に示す切換元情報131において、「項番」が「1」である情報には、「切換元ID」として「host101」が設定され、「ポート」として「3132」が設定されている。
そのため、例えば、S11の処理で受信したメッセージの送信元を識別する情報が「host101」であった場合、メッセージ受信部111は、S11の処理で受信したメッセージの送信元が切換元装置2であると判定する。
図10に戻り、情報処理装置1に記憶された切換元情報131に、S11の処理で受信したメッセージの送信元を示す情報が含まれていると判定した場合(S13のYES)、メッセージ受信部111は、S11で受信したメッセージがPINGの実行に伴うメッセージであるか否かを判定する(S14)。
その結果、S11で受信したメッセージがPINGの実行に伴うメッセージであると判定した場合(S15のYES)、情報処理装置1のメッセージ制御部113は、図16に示すように、情報格納領域130に記憶されたテストフラグを「ON」に更新する(S71)。
そして、情報処理装置1のトレース取得部115は、情報格納領域130に含まれる領域のうち、トレース情報132を記憶する領域を初期化する(S72)。トレース情報132の具体例については後述する。
続いて、情報処理装置1のメッセージ送信部114は、S11の処理で受信したメッセージに対応する応答メッセージを、S11の処理で受信したメッセージの送信元に対して送信する(S73)。具体的に、メッセージ送信部114は、PINGの実行に伴うメッセージに対応する応答メッセージ(例えば、情報処理装置1が動作中であることを示すメッセージ)を切換元装置2に対して送信する。
さらに、情報処理装置1のトレース制御部118は、情報格納領域130に記憶されたトレースフラグを「ON」に更新する(S74)。トレースフラグは、現在時刻がトレース情報132の記憶を行う時間に含まれているか否かを示すフラグである。
その後、メッセージ制御部113は、トレース情報132の記憶を開始してから経過した時間を計測するためのタイマーをセットする(S75)。
これにより、情報処理装置1は、後述するように、トレース情報132の記憶を開始してから経過した時間が、トレース情報132の記憶を行う時間として予め定められた時間を経過したか否かの判定を行うことが可能になる。
そして、トレース取得部115は、S73の処理で送信したメッセージの内容を示す情報をトレース情報132に追加する(S76)。そして、情報処理装置1は、受信処理を終了する。
一方、S11の処理で受信したメッセージがPINGの実行に伴うメッセージでないと判定した場合(S15のNO)、メッセージ受信部111は、図11に示すように、情報格納領域130に記憶された切換元情報131に、S11の処理でメッセージを受信したポートを示す情報が含まれているか否かを判定する(S21)。すなわち、メッセージ受信部111は、この場合、S11の処理でメッセージを受信したポートが再送テストに用いられるポートであるか否かの判定を行う。
具体的に、図26で説明した切換元情報131における「ポート」には、「3132」が設定されている。そのため、例えば、S11の処理でメッセージを受信したポートを示す情報が「3132」である場合、メッセージ受信部111は、S11の処理でメッセージを受信したポートが再送テストに用いられるポートであると判定する。
そして、情報格納領域130に記憶された切換元情報131に、S11の処理でメッセージを受信したポートを示す情報が含まれていると判定した場合(S22のYES)、情報処理装置1の動作判定部112は、情報格納領域130に記憶されたテストフラグが「ON」であるか否かを判定する(S23)。テストフラグは、再送テストの実施中において問い合わせメッセージの再送待ちを行う前の状態であるか否かを示すフラグである。
その結果、情報格納領域130に記憶されたテストフラグが「ON」であると判定した場合(S23のYES)、動作判定部112は、情報格納領域130に記憶されたOPEN中フラグが「ON」であるか否かを判定する(S24)。OPEN中フラグは、再送テストに用いられるセッションの状態がOPENであるか否かを示すフラグである。
そして、情報格納領域130に記憶されたOPEN中フラグが「ON」であると判定した場合(S24のYES)、情報処理装置1のメッセージ保持部116は、S11の処理で受信したメッセージを情報格納領域130に記憶する(S25)。
さらに、メッセージ制御部113は、図12に示すように、S11の処理でメッセージの第2テスト対象部12に対する送信及びS11の処理で受信したメッセージの送信元に対する応答メッセージの送信を行うことなくスリープする(S31)。
すなわち、情報処理装置1は、S11の処理で受信したメッセージの送信元を示す情報とS11の処理でメッセージを受信したポートを示す情報とが切換元情報131に含まれており、S11の処理で受信したメッセージがPINGの実行に伴うメッセージではなく、テストフラグ及びOPEN中フラグが「ON」である場合、S11の処理で受信したメッセージが、再送テストの実施中であって再送テストに用いられるセッションの状態がOPENである間に送信された問い合わせメッセージ(再送テストの対象メッセージ)であると判定する。
そのため、メッセージ保持部116は、この場合、S11の処理で受信したメッセージと同じメッセージ(以下、再送メッセージとも呼ぶ)が送信されるか否かの判定を行うために、S11の処理で受信したメッセージを情報格納領域130に記憶する。また、メッセージ制御部113は、この場合、情報処理装置1から切換元装置2に対して問い合わせメッセージの送信が成功した旨の応答メッセージが送信されることを防止するために、S11の処理で受信したメッセージの第2テスト対象部12に対する送信や切換元装置2に対する応答を行うことなくスリープする。
続いて、トレース取得部115は、S11の処理で受信したメッセージの内容と、S11の処理で受信したメッセージの送信を抑制した旨を示す情報とを情報格納領域130に記憶されたトレース情報132に追加する(S32)。
その後、メッセージ制御部113は、情報処理装置1のCLOSE制御部120からスリープ解除通知を受信するまで待機する(S33のNO)。スリープ解除通知は、再送テストに用いられるセッションがCLOSEされたことに応じて行われる通知であり、S31の処理で行ったメッセージ制御部113のスリープを解除することを目的とした通知である。
そして、メッセージ制御部113がスリープ解除通知を受信した場合(S33のYES)、メッセージ送信部114は、例えば、メッセージ制御部113からの指示に応じて、S11の処理で受信したメッセージの送受信を行うセッション(再送テストに用いられるセッション)がCLOSEされていることを示す情報を、S11の処理で受信したメッセージの送信元に対して送信する(S34)。
すなわち、メッセージ送信部114は、スリープ解除通知の受信に応じて、切換元装置2から受信した問い合わせメッセージに対する応答を切換元装置2に対して送信する。具体的に、メッセージ送信部114は、この場合、再送テストに用いられるセッションがCLOSEされているため、問い合わせメッセージの送信が失敗した旨のメッセージを切換元装置2に対して送信する。
これにより、情報処理装置1は、切換元装置2から情報処理装置1に対して問い合わせメッセージが送信された際に、再送テストに用いられるセッションがOPENされていたか否かによらず、問い合わせメッセージの送信が失敗した旨のメッセージを切換元装置2に対して送信することが可能になる。
また、情報処理装置1は、この場合、再送テストに用いられるセッションを再度OPENするまでの間、再送テストに用いられるセッションを介した切換元装置2に対するメッセージの送信を行うことはない。そのため、情報処理装置1は、事業者が意図した状況下において再送テストを行うことが可能になる。
その後、トレース取得部115は、図13に示すように、情報格納領域130に記憶されたトレースフラグが「ON」であるか否かを判定する(S41)。
その結果、情報格納領域130に記憶されたトレースフラグが「ON」であると判定した場合(S41のYES)、トレース取得部115は、S34の処理で送信したメッセージの内容を示す情報をトレース情報132に追加する(S42)。一方、情報格納領域130に記憶されたトレースフラグが「OFF」である場合(S41のNO)、トレース取得部115は、S42の処理を行わない。
続いて、メッセージ制御部113は、情報格納領域130に記憶されたテストフラグを「OFF」に更新する(S43)。また、メッセージ制御部113は、情報格納領域130に記憶された再送フラグを「ON」に更新する(S44)。再送フラグは、再送テストの実施中において問い合わせメッセージの再送待ち(再送メッセージの送信待ち)を行っている状態であるか否かを示すフラグである。そして、情報処理装置1は、受信処理を終了する。
すなわち、情報処理装置1は、S25の処理において再送テストの対象メッセージ(問い合わせメッセージ)の記憶を行ったことに応じて、その対象メッセージの再送待ちを開始する。
一方、S23の処理において、情報格納領域130に記憶されたテストフラグが「OFF」であると判定した場合(S23のNO)、メッセージ送信部114は、図14に示すように、情報格納領域130に記憶された再送フラグが「ON」であるか否かを判定する(S51)。
その結果、情報格納領域130に記憶された再送フラグが「OFF」であると判定した場合(S51のNO)、メッセージ送信部114は、S11の処理でメッセージを受信したポートがCLOSEされているか否かを判定する(S52)。
すなわち、メッセージ送信部114は、テストフラグ及び再送フラグが「OFF」であると判定した場合、再送テストが行われていないと判定し、再送テストが行われていない場合の処理(通常の処理)の実行を開始する。
なお、メッセージ送信部114は、S13の処理において、情報処理装置1に記憶された切換元情報131に、S11の処理で受信したメッセージの送信元を示す情報が含まれていないと判定した場合も同様に(S13のNO)、S52の処理を行う。また、メッセージ送信部114は、S22の処理において、情報処理装置1に記憶された切換元情報131に、S11の処理でメッセージを受信したポートを示す情報が含まれていないと判定した場合も同様に(S22のNO)、S52の処理を行う。さらに、メッセージ送信部114は、S24の処理において、情報格納領域130に記憶されたOPEN中フラグが「OFF」であると判定した場合も同様に(S24のNO)、S52の処理を行う。
そして、S11の処理でメッセージを受信したポートがOPENされていると判定した場合(S52のNO)、メッセージ送信部114は、S11の処理で受信したメッセージを第2テスト対象部12に対して送信する(S53)。具体的に、メッセージ送信部114は、切換元装置2から送信された問い合わせメッセージを第2テスト対象部12に対して送信する。また、メッセージ送信部114は、この場合、問い合わせメッセージの送信に成功した旨を示す情報を切換元装置2に送信する。
一方、S11の処理でメッセージを受信したポートがCLOSEされていると判定した場合(S52のYES)、メッセージ保持部116は、S11の処理で受信したメッセージを情報格納領域130に記憶する(S54)。
すなわち、メッセージ保持部116は、S25の処理の場合と同様に、S11の処理で受信したメッセージが再送テストの対象メッセージ(問い合わせメッセージ)であると判定する。
続いて、メッセージ送信部114は、S11の処理でメッセージを受信したポートがCLOSEされていることを示す情報を、S11の処理で受信したメッセージの送信元に対して送信する(S55)。具体的に、メッセージ送信部114は、問い合わせメッセージの送信に失敗した旨を示す情報を切換元装置2に送信する。
その後、メッセージ保持部116は、図15に示すように、情報格納領域130に記憶されたトレースフラグが「ON」であるか否かを判定する(S61)。
その結果、情報格納領域130に記憶されたトレースフラグが「ON」である場合(S61のYES)、トレース取得部115は、S11の処理で受信したメッセージの内容を示す情報をトレース情報132に追加する(S62)。一方、情報格納領域130に記憶されたトレースフラグが「OFF」である場合(S61のNO)、トレース取得部115は、S62の処理を行わない。
続いて、トレース取得部115は、情報格納領域130に記憶されたテストフラグが「ON」であるか否かを判定する(S63)。
その結果、情報格納領域130に記憶されたテストフラグが「ON」であると判定した場合(S63のYES)、トレース取得部115は、S11の処理でメッセージを受信したポートが実際にCLOSEされているか否かを判定する(S64)。
そして、S11の処理でメッセージを受信したポートがCLOSEされていると判定した場合(S64のYES)、トレース取得部115は、S53またはS55の処理で送信したメッセージの内容を示す情報をトレース情報132に追加する(S65)。
その後、メッセージ制御部113は、情報格納領域130に記憶されたテストフラグを「OFF」に更新する(S66)。さらに、メッセージ制御部113は、情報格納領域130に記憶された再送フラグを「OFF」に更新する(S67)。
すなわち、テストフラグが「ON」であってOPEN中フラグが「OFF」である場合、S11の処理で受信したメッセージは、再送テストの対象メッセージ(問合せメッセージ)であると判断できる。そのため、情報処理装置1は、この場合においても、S62の処理において記憶したメッセージの再送待ちを開始する。
そして、情報処理装置1は、受信処理を終了する。また、情報処理装置1は、情報格納領域130に記憶されたテストフラグが「OFF」であると判定した場合も同様に(S63のNO)、受信処理を終了する。さらに、情報処理装置1は、S11の処理でメッセージを受信したポートがOPENされていると判定した場合も同様に(S64のNO)、受信処理を終了する。
一方、S51の処理において、情報格納領域130に記憶された再送フラグが「ON」であると判定した場合(S51のYES)、情報処理装置1の対応判定部117は、図17に示すように、S11の処理で受信したメッセージが情報格納領域130に記憶されたメッセージ(S25またはS54の処理で記憶されたメッセージ)に対応するか否かを判定する(S81)。具体的に、対応判定部117は、この場合、情報格納領域130に記憶された問合せメッセージの内容と新たな問合せメッセージの内容とが一致しているか否かの判定を行う。
その結果、S11の処理で受信したメッセージが情報格納領域130に記憶されたメッセージに対応すると判定した場合(S82のYES)、トレース取得部115は、情報格納領域130に記憶されたトレースフラグが「ON」であるか否かを判定する(S83)。
そして、情報格納領域130に記憶されたトレースフラグが「ON」であると判定した場合(S83のYES)、トレース取得部115は、新たなトレース情報132を記憶する領域が情報格納領域130に存在しているか否か(空き領域が存在しているか否か)を判定する(S84)。
すなわち、トレース取得部115は、S11の処理で受信したメッセージが再送メッセージであると判定した場合、事業者によって予め定められた数のトレース情報132の記憶のみを継続して行った後、トレース情報132の記憶を終了する。そのため、トレース取得部115は、S84の処理において、事業者によって予め定められた数のトレース情報132の記憶が既に完了しているか否かの判定を行う。そして、事業者によって予め定められた数のトレース情報132の記憶が既に完了していると判定した場合、トレース取得部115は、新たなトレース情報132を記憶する領域が存在しないと判定し、トレース情報132の記憶を終了する。
これにより、トレース取得部115は、問い合わせメッセージの再送が行われた前後に生成されたトレース情報132が、その後に生成されたトレース情報132によって上書きされることを防止することが可能になる。
そして、新たなトレース情報132を記憶する領域が情報格納領域130に存在していると判定した場合(S84のYES)、トレース取得部115は、S11の処理で受信したメッセージの内容を示す情報と、情報格納領域130に記憶されたメッセージが再送された旨を示す情報とをトレース情報132に追加する(S85)。
その後、メッセージ制御部113は、情報格納領域130に記憶された再送フラグを「OFF」に更新する(S86)。
すなわち、S11の処理で受信したメッセージが情報格納領域130に記憶されたメッセージに対応した場合、情報処理装置1は、情報格納領域130に記憶されたメッセージ(S25またはS54の処理で記憶したメッセージ)についての再送テストを終了する。
なお、メッセージ制御部113は、S83の処理において、情報格納領域130に記憶されたトレースフラグが「OFF」であると判定した場合についても同様に(S83のNO)、S86の処理を行う。また、メッセージ制御部113は、S84の処理において、新たなトレース情報132を記憶する領域が情報格納領域130に存在していないと判定した場合についても同様に(S84のNO)、S86の処理を行う。
一方、S82の処理において、S11の処理で受信したメッセージが情報格納領域130に記憶されたメッセージに対応しないと判定した場合(S82のNO)、トレース取得部115は、図18に示すように、情報格納領域130に記憶されたトレースフラグが「ON」であるか否かを判定する(S91)。
そして、情報格納領域130に記憶されたトレースフラグが「ON」であると判定した場合(S91のYES)、トレース取得部115は、新たなトレース情報132を記憶する領域が情報格納領域130に存在しているか否か(空き領域が存在しているか否か)を判定する(S92)。
これにより、トレース取得部115は、S84の処理の場合と同様に、問い合わせメッセージの再送が行われた前後に生成されたトレース情報132が、その後に生成されたトレース情報132によって上書きされることを防止することが可能になる。
その結果、新たなトレース情報132を記憶する領域が情報格納領域130に存在していると判定した場合(S92のYES)、トレース取得部115は、S11の処理で受信したメッセージの内容を示す情報をトレース情報132に追加する(S93)。
なお、トレース取得部115は、情報格納領域130に記憶されたトレースフラグが「OFF」であると判定した場合(S91のNO)、S93の処理を行わない。また、トレース取得部115は、新たなトレース情報132を記憶する領域が情報格納領域130に存在していないと判定した場合も同様に(S92のNO)、S93の処理を行わない。
そして、メッセージ送信部114は、図19に示すように、S11の処理でメッセージを受信したポートが実際にCLOSEされているか否かを判定する(S101)。なお、メッセージ送信部114は、S86の処理を行った場合も同様に、S101の処理を行う。
その結果、S11の処理でメッセージを受信したポートがCLOSEされていると判定した場合(S101のYES)、メッセージ送信部114は、S11の処理でメッセージを受信したポートがCLOSEされていることを示す情報を、S11の処理で受信したメッセージの送信元に対して送信する(S102)。具体的に、メッセージ送信部114は、この場合、問い合わせメッセージの送信に失敗した旨を示す情報を切換元装置2に送信する。
一方、S11の処理でメッセージを受信したポートがOPENされていると判定した場合(S101のNO)、メッセージ送信部114は、S11の処理で受信したメッセージを第2テスト対象部12に対して送信する(S103)。具体的に、メッセージ送信部114は、この場合、切換元装置2から送信された問い合わせメッセージを第2テスト対象部12に対して送信する。また、メッセージ送信部114は、この場合、問い合わせメッセージの送信に成功した旨を示す情報を切換元装置2に送信する。
そして、情報処理装置1は、S102またはS103の処理の後、受信処理を終了する。
[時間制御処理]
次に、情報処理装置1における制御処理のうち、トレース情報132の記憶が行われている時間を制御する処理(以下、時間制御処理とも呼ぶ)について説明を行う。図20は、時間制御処理について説明するフローチャート図である。
メッセージ制御部113は、図20に示すように、S75の処理でタイマーのセットが行われてから事業者が予め定めた所定時間が経過したか否かを判定する(S111のNO)。
そして、所定時間を経過したと判定した場合(S111のYES)、トレース制御部118は、情報格納領域130に記憶されたトレースフラグを「OFF」に更新する(S112)。
その後、トレース取得部115は、トレース情報132の取得が終了した旨を示す情報をトレース情報132に追加する(S113)。
これにより、メッセージ制御部113は、再送テストの実施に伴うトレース情報132の記憶が無制限に行われることを防止することが可能になる。
[OPEN処理]
次に、情報処理装置1における制御処理のうち、再送テストに用いられるセッションのOPEに伴って行われる処理(以下、OPEN処理とも呼ぶ)について説明を行う。図21は、OPEN処理について説明するフローチャート図である。
情報処理装置1のOPEN制御部119は、図21に示すように、第2テスト対象部12からOPEN通知を受信するまで待機する(S121のNO)。OPEN通知は、情報処理装置1と切換元装置2との間におけるセッションがOPENしたことを示す通知である。
そして、OPEN通知を受信した場合(S121のYES)、OPEN制御部119は、情報処理装置130に記憶された切換元情報131に、S121の処理で受信した通知に対応するポートを示す情報が含まれているか否かを判定する(S122)。
具体的に、OPEN制御部119は、この場合、情報処理装置130に記憶された切換元情報131に、OPENしたセッションに対応するポートを示す情報が含まれているか否かの判定を行う。すなわち、OPEN制御部119は、OPENしたセッションが再送テストに用いられるセッションであるか否かの判定を行う。
その結果、情報処理装置130に記憶された切換元情報131に、S121の処理で受信した通知に対応するポートを示す情報が含まれていると判定した場合(S123のYES)、OPEN制御部119は、情報格納領域130に記憶されたテストフラグが「ON」であるか否かを判定する(S124)。
そして、情報格納領域130に記憶されたテストフラグが「ON」であると判定した場合(S124のYES)、OPEN制御部119は、情報格納領域130に記憶されたOPEN中フラグを「ON」に更新する(S125)。
これにより、情報処理装置1は、再送テストに用いられるセッションがOPENしたことに応じて、OPEN中フラグを「ON」にすることが可能になる。
一方、情報格納領域130に記憶されたテストフラグが「OFF」であると判定した場合(S124のNO)、OPEN制御部119は、S125の処理を行わない。
続いて、OPEN制御部119は、S121の処理で受信した通知の内容を示す情報をトレース情報132に追加する(S126)。
その後、OPEN制御部119は、S121の処理で受信した通知に対応するセッションのOPENに伴う処理(通常処理)を行う(S127)。具体的に、OPEN制御部119は、S121の処理で受信した通知に対応するセッションによってメッセージを送受信するために必要な情報の設定等を行う。
なお、OPEN制御部119は、S123の処理において、情報処理装置130に記憶された切換元情報131に、S121の処理で受信した通知に対応するポートを示す情報が含まれていないと判定した場合も同様に(S123のNO)、S127の処理を行う。
[CLOSE処理]
次に、情報処理装置1における制御処理のうち、再送テストに用いられるセッションのCLOSEに伴って行われる処理(以下、CLOSE処理とも呼ぶ)について説明を行う。図22及び図23は、CLOSE処理について説明するフローチャート図である。
情報処理装置1のCLOSE制御部120は、図22に示すように、第2テスト対象部12からCLOSE通知を受信するまで待機する(S131のNO)。CLOSE通知は、情報処理装置1と切換元装置2との間におけるセッションがCLOSEしたことを示す通知である。
そして、CLOSE通知を受信した場合(S131のYES)、CLOSE制御部120は、情報処理装置130に記憶された切換元情報131に、S131の処理で受信した通知に対応するポートを示す情報が含まれているか否かを判定する(S132)。
具体的に、CLOSE制御部120は、この場合、情報処理装置130に記憶された切換元情報131に、CLOSEしたセッションに対応するポートを示す情報が含まれているか否かの判定を行う。すなわち、CLOSE制御部119は、CLOSEしたセッションが再送テストに用いられるセッションであるか否かの判定を行う。
その結果、情報処理装置130に記憶された切換元情報131に、S131の処理で受信した通知に対応するポートを示す情報が含まれていると判定した場合(S133のYES)、CLOSE制御部120は、情報処理装置130に記憶されたOPEN中フラグが「ON」であるか否かを判定する(S134)。
その結果、情報処理装置130に記憶されたOPEN中フラグが「ON」であると判定した場合(S134のYES)、CLOSE制御部120は、情報格納領域130に記憶されたOPEN中フラグを「OFF」に更新する(S135)。
そして、CLOSE制御部120は、S131の処理で受信した通知に対応するセッションのCLOSEに関する情報をトレース情報132に追加する(S136)。
続いて、CLOSE制御部120は、図23に示すように、CLOSE制御部120は、情報格納領域130に記憶されたテストフラグが「ON」であるか否かを判定する(S141)。
その結果、テストフラグが「ON」であると判定した場合(S141のYES)、CLOSE制御部120は、スリープ解除通知をメッセージ制御部113に対して送信する(S142)。
これにより、メッセージ制御部113は、再送テストに用いられるセッションがCLOSEしたことを検知することが可能になる。そのため、メッセージ制御部113は、S34以降の処理の実行を開始させることが可能になる。
一方、テストフラグが「OFF」であると判定した場合(S141のNO)、CLOSE制御部120は、S142の処理を行わない。
その後、CLOSE制御部120は、S131の処理で受信した通知に対応するセッションのCLOSEに伴う処理(通常処理)を行う(S143)。具体的に、CLOSE制御部120は、S131の処理で受信した通知に対応するセッションのCLOSEに伴う情報の設定等を行う。
なお、CLOSE制御部120は、S133の処理において、情報処理装置130に記憶された切換元情報131に、S131の処理で受信した通知に対応するポートを示す情報が含まれていないと判定した場合も同様に(S133のNO)、S143の処理を行う。また、CLOSE制御部120は、S134の処理において、情報処理装置130に記憶されたOPEN中フラグが「OFF」であると判定した場合も同様に(S134のNO)、S143の処理を行う。
[受信依頼受付処理]
次に、情報処理装置1における制御処理のうち、メッセージの受信依頼を第2テスト対象部12から受信した場合に行われる処理(以下、受信依頼受付処理とも呼ぶ)について説明を行う。図24は、受信依頼受付処理について説明するフローチャート図である。
情報処理装置1の受信依頼受付部121は、図24に示すように、第2テスト対象部12から受信依頼を受信するまで待機する(S151のNO)。
そして、受信依頼を受信した場合(S151のYES)、受信依頼受付部121は、S151の処理で受信した受信依頼に伴う処理(通常処理)を行う(S152)。具体的に、受信依頼受付部121は、他の情報処理装置(例えば、切換元装置2)からメッセージを受け取るために必要な情報の設定等を行う。
続いて、受信依頼受付部121は、情報処理装置130に記憶された切換元情報131に、S151の処理で受信した通知に対応するポートを示す情報が含まれているか否かを判定する(S153)。
具体的に、受信依頼受付部121は、この場合、情報処理装置130に記憶された切換元情報131に、受信依頼に対応するポートを示す情報が含まれているか否かの判定を行う。すなわち、受信依頼受付部121は、受信依頼に対応するポートが再送テストに用いられるポートであるか否かの判定を行う。
その結果、情報処理装置130に記憶された切換元情報131に、S151の処理で受信した通知に対応するポートを示す情報が含まれていると判定した場合(S154のYES)、受信依頼受付部121は、情報処理装置130に記憶されたトレースフラグが「ON」であるか否かを判定する(S155)。
そして、情報格納領域130に記憶されたトレースフラグが「ON」であると判定した場合(S155のYES)、受信依頼受付部121は、新たなトレース情報132を記憶する領域が情報格納領域130に存在しているか否か(空き領域が存在しているか否か)を判定する(S156)。
これにより、受信依頼受付部121は、S84の処理の場合と同様に、問い合わせメッセージの再送が行われた前後に生成されたトレース情報132が、その後に生成されたトレース情報132によって上書きされることを防止することが可能になる。
その結果、新たなトレース情報132を記憶する領域が情報格納領域130に存在していると判定した場合(S156のYES)、受信依頼受付部121は、S151で受信した受信依頼の内容を示す情報をトレース情報132に追加する(S157)。
そして、受信依頼受付部121は、受信依頼受付処理を終了する。なお、受信依頼受付部121は、情報格納領域130に記憶されたトレースフラグが「OFF」であると判定した場合も同様に(S155のNO)、受信依頼受付処理を終了する。また、受信依頼受付部121は、新たなトレース情報132を記憶する領域が情報格納領域130に存在していないと判定した場合(S156のNO)、受信依頼受付処理を終了する。
[送信依頼受付処理]
次に、情報処理装置1における制御処理のうち、メッセージの送信依頼を第2テスト対象部12から受信した場合に行われる処理(以下、送信依頼受付処理とも呼ぶ)について説明を行う。図25は、送信依頼受付処理について説明するフローチャート図である。
情報処理装置1の送信依頼受付部122は、図25に示すように、第2テスト対象部12から送信依頼を受信するまで待機する(S161のNO)。
そして、送信依頼を受信した場合(S161のYES)、送信依頼受付部122は、S161の処理で受信した送信依頼に伴う処理(通常処理)を行う(S162)。具体的に、送信依頼受付部122は、他の情報処理装置(例えば、切換元装置2)からメッセージを受け取るために必要な情報の設定等を行う。
続いて、送信依頼受付部122は、情報処理装置130に記憶された切換元情報131に、S161の処理で受信した通知に対応するポートを示す情報が含まれているか否かを判定する(S163)。
具体的に、送信依頼受付部122は、この場合、情報処理装置130に記憶された切換元情報131に、送信依頼に対応するポートを示す情報が含まれているか否かの判定を行う。すなわち、送信依頼受付部122は、送信依頼に対応するポートが再送テストに用いられるポートであるか否かの判定を行う。
その結果、情報処理装置130に記憶された切換元情報131に、S211の処理で受信した通知に対応するポートを示す情報が含まれていると判定した場合(S164のYES)、送信依頼受付部122は、情報処理装置130に記憶されたトレースフラグが「ON」であるか否かを判定する(S165)。
そして、情報格納領域130に記憶されたトレースフラグが「ON」であると判定した場合(S165のYES)、送信依頼受付部122は、新たなトレース情報132を記憶する領域が情報格納領域130に存在しているか否か(空き領域が存在しているか否か)を判定する(S166)。
これにより、送信依頼受付部122は、S84の処理の場合と同様に、問い合わせメッセージの再送が行われた前後に生成されたトレース情報132が、その後に生成されたトレース情報132によって上書きされることを防止することが可能になる。
その結果、新たなトレース情報132を記憶する領域が情報格納領域130に存在していると判定した場合(S166のYES)、送信依頼受付部122は、S211で受信した送信依頼に対応して送信されたメッセージの内容を示す情報をトレース情報132に追加する(S167)。
そして、送信依頼受付部122は、送信依頼受付処理を終了する。なお、送信依頼受付部122は、情報格納領域130に記憶されたトレースフラグが「OFF」であると判定した場合も同様に(S165のNO)、送信依頼受付処理を終了する。また、送信依頼受付部122は、新たなトレース情報132を記憶する領域が情報格納領域130に存在していないと判定した場合(S166のNO)、送信依頼受付処理を終了する。以下、トレース情報132の具体例を説明する図である。
[トレース情報の具体例]
図27から図29は、トレース情報132の具体例を説明する図である。
図27等に示すトレース情報132は、各トレース情報132を識別する「項番」と、各トレース情報132の取得日時が設定される「取得日時」と、各トレース情報132の内容が設定される「内容」とを項目として有する。
初めに、図27に示すトレース情報132について説明を行う。
図27に示すトレース情報132において、「項番」が「1」である情報には、「取得日時」として、S76の処理が行われた日時を示す「2017.11.21.11:11.10.121」が設定されており、「内容」として、S11の処理で受信したメッセージ(PINGの実行に伴って送信されたメッセージ)に対する応答メッセージの内容を示す情報である「PING応答」が設定されている。
また、図27に示すトレース情報132において、「項番」が「2」である情報には、「取得日時」として、S126の処理が行われた日時を示す「2017.11.21.11:11.11.381」が設定されており、「内容」として、S121の処理で第2テスト対象部12から受信したOPEN通知の内容を示す情報である「自ノード,0a01,open」が設定されている。「自ノード,0a01,open」は、情報処理装置1(自ノード)で動作するプロセスのうち、プロセスIDが「0a01」であるプロセス(第2テスト対象部12)からOPEN通知を受信したことを示している。
また、図27に示すトレース情報132において、「項番」が「3」である情報には、「取得日時」として、S157の処理が行われた日時を示す「2017.11.21.11:11.11.450」が設定されており、「内容」として、S151の処理で第2テスト対象部12から受信した受信依頼の内容を示す情報である「自ノード,0a01,rcv」が設定されている。「自ノード,0a01,rcv」は、情報処理装置1(自ノード)で動作するプロセスのうち、プロセスIDが「0a01」であるプロセス(第2テスト対象部12)から受信依頼を受信したことを示している。
また、図27に示すトレース情報132において、「項番」が「4」である情報には、「取得日時」として、S32の処理が行われた日時を示す「2017.11.21.11:11.11.825」が設定されており、「内容」として、S11の処理で受信したメッセージの内容(S25の処理で記憶した情報)と、そのメッセージの送信を抑制したことを示す情報とを合わせた情報である「相手ノード,受信,0xaa0036552168,保留させた」が設定されている。「相手ノード,受信,0xaa0036552168,保留させた」は、先頭のデータが「0xaa0036552168」であるメッセージを切換元装置2(相手ノード)から受信し、その受信したメッセージの送信を保留したことを示している。
また、図27に示すトレース情報132において、「項番」が「5」である情報には、「取得日時」として、S136の処理が行われた日時を示す「2017.11.21.11:11.12.006」が設定されており、「内容」として、S131の処理で第2テスト対象部12から受信したCLOSE通知の内容を示す情報である「自ノード,0a01,close」が設定されている。「自ノード,0a01,close」は、情報処理装置1(自ノード)で動作するプロセスのうち、プロセスIDが「0a01」であるプロセス(第2テスト対象部12)からCLOSE通知を受信したことを示している。
また、図27に示すトレース情報132において、「項番」が「6」である情報には、「取得日時」として、S42の処理が行われた日時を示す「2017.11.21.11:11.12.088」が設定されており、「内容」として、S34の処理で送信したメッセージ(問合せメッセージの送信に失敗した旨のメッセージ)の内容を示す情報である「相手ノード,送信,0x03」が設定されている。「相手ノード,送信,0x03」は、切換元装置2(相手ノード)に対してエラーIDが「0x03」であるエラー通知を送信したことを示している。
さらに、図27に示すトレース情報132において、「項番」が「9」である情報には、「取得日時」として、S113の処理が行われた日時を示す「2017.11.21.11:11.20.121」が設定されており、「内容」として、トレース情報132の取得を終了したことを示す情報である「トレース終了」が設定されている。図27に含まれる他の情報についての説明は省略する。
すなわち、図27に示すトレース情報132は、S11の処理においてPINGの実行に伴うメッセージを受信した後(S11のYES、S15のYES、S76)、再送テストに用いられるセッションがOPENし(S121のYES、S126)、問合せメッセージの受信依頼を第2テスト対象部12から受信したこと(S151のYES、S157)を示している。
そして、図27に示すトレース情報132は、その後、切換元装置2から問合せメッセージを受信した際に送信の抑制を行い(S11のYES、S15のNO、S32)、再送テストに用いられるセッションのCLOSEに応じて(S131のYES、S136)、問合せメッセージに対する応答(エラー通知)の送信が行われたこと(S33のYES、S42)を示している。
しかしながら、図27に示すトレース情報132には、問合せメッセージに対する応答の送信後、問合せメッセージの再送が行われたことを示す情報が含まれていない。そのため、事業者は、この場合、図27に示すトレース情報132を参照することで、例えば、切換元装置2の第2テスト対象部22に障害が含まれている可能性があることを認識することが可能になる。
次に、図28に示すトレース情報132について説明を行う。
図28に示すトレース情報132において、「項番」が「1」である情報には、「取得日時」として、S76の処理が行われた日時を示す「2017.11.21.15:32.33.777」が設定されており、「内容」として、S11の処理で受信したメッセージ(PINGの実行に伴って送信されたメッセージ)に対する応答メッセージの内容を示す情報である「PING応答」が設定されている。
また、図28に示すトレース情報132において、「項番」が「2」である情報には、「取得日時」として、S62の処理が行われた日時を示す「2017.11.21.15:32.34.023」が設定されており、「内容」として、S11の処理で受信したメッセージの内容(S54の処理で記憶した情報)を示す情報である「相手ノード,受信,0xaa0036552168」が設定されている。
また、図28に示すトレース情報132において、「項番」が「3」である情報には、「取得日時」として、S65の処理が行われた日時を示す「2017.11.21.15:32.34.075」が設定されており、「内容」として、S55の処理で送信したメッセージの内容を示す情報である「相手ノード,送信,0x03」が設定されている。
また、図28に示すトレース情報132において、「項番」が「4」である情報には、「取得日時」として、S126の処理が行われた日時を示す「2017.11.21.15:32.34.560」が設定されており、「内容」として、S121の処理で第2テスト対象部12から受信したOPEN通知の内容を示す情報である「自ノード,0a01,open」が設定されている。
また、図28に示すトレース情報132において、「項番」が「5」である情報には、「取得日時」として、S157の処理が行われた日時を示す「2017.11.21.15:32.34.631」が設定されており、「内容」として、S151の処理で第2テスト対象部12から受信した受信依頼の内容を示す情報である「自ノード,0a01,rcv」が設定されている。
さらに、図28に示すトレース情報132において、「項番」が「6」である情報には、「取得日時」として、S113の処理が行われた日時を示す「2017.11.21.15:32.43.777」が設定されており、「内容」として、トレース情報132の取得を終了したことを示す情報である「トレース終了」が設定されている。
すなわち、図28に示すトレース情報132は、切換元装置2から送信された問合せメッセージの受信が、再送テストに用いられるセッションのOPEN及び問合せメッセージの受信依頼の受信よりも先に行われたため、問合せメッセージに対する応答(エラー通知)の送信が行われたこと(S11のYES、S23のYES、S24のNO、S64のYES、S65)を示している。
しかしながら、図28に示すトレース情報132には、図27で説明したトレース情報132と同様に、問合せメッセージに対する応答の送信後、問合せメッセージの再送が行われたことを示す情報が含まれていない。そのため、事業者は、この場合、図28に示すトレース情報132を参照することで、例えば、切換元装置2の第2テスト対象部22に障害が含まれている可能性があることを認識することが可能になる。
次に、図29に示すトレース情報132について説明を行う。
図29に示すトレース情報132における「項番」が「1」から「8」である情報には、図27で説明したトレース情報132における「項番」が「1」から「8」である情報と同じ内容の情報が設定されている。
そして、図29に示すトレース情報132において、「項番」が「9」である情報には、「取得日時」として、S85の処理が行われた日時を示す「2017.11.25.10:21.09.878」が設定されており、「内容」として、S11の処理で受信したメッセージの内容(S25の処理で記憶した情報)と、そのメッセージが再送されたことを示す情報とを合わせた情報である「相手ノード,受信,0xaa0036552168,再送された」が設定されている。「相手ノード,受信,0xaa0036552168,再送された」は、先頭のデータが「0xaa0036552168」であるメッセージが切換元装置2(相手ノード)から再送されたことを示している。
また、図29に示すトレース情報132において、「項番」が「10」である情報には、「取得日時」として、S167の処理が行われた日時を示す「2017.11.25.10:21.10.006」が設定されており、「内容」として、S161の処理で受信した送信依頼に対応して送信されたメッセージの内容を示す情報である「自ノード,0a01,send,0x0001aaaa0101」が設定されている。「自ノード,0a01,send,0x0001aaaa0101」は、例えば、情報処理装置1(自ノード)で動作するプロセスのうち、プロセスIDが「0a01」であるプロセス(第2テスト対象部12)から、先頭のデータが「0x0001aaaa0101」であるメッセージが送信されたことを示している。
また、図29に示すトレース情報132において、「項番」が「11」である情報には、「取得日時」として、S93の処理が行われた日時を示す「2017.11.25.10:21.10.720」が設定されており、「内容」として、S11の処理で切換元装置2から受信したメッセージの内容を示す情報である「相手ノード,受信,0x2688dd00abab」が設定されている。「相手ノード,受信,0x2688dd00abab」は、先頭のデータが「0x2688dd00abab」であるメッセージを切換元装置2(相手ノード)から受信したことを示している。
また、図29に示すトレース情報132において、「項番」が「12」である情報には、「取得日時」として、S167の処理が行われた日時を示す「2017.11.25.10:21.10.731」が設定されており、「内容」として、S161の処理で受信した送信依頼に対応して送信されたメッセージの内容を示す情報である「自ノード,0a01,send,0x1122eeee1100」が設定されている。
さらに、図29に示すトレース情報132において、「項番」が「38」である情報には、「取得日時」として、S113の処理が行われた日時を示す「2017.11.25.10:21.18.320」が設定されており、「内容」として、トレース情報132の取得を終了したことを示す情報である「トレース終了」が設定されている。図28に含まれる他の情報についての説明は省略する。
すなわち、図29に示すトレース情報132は、図27で説明したトレース情報132における「項番」が「1」から「8」に対応する情報の後に、問合せメッセージが切換元装置2から再送されたこと(S11のYES、S23のNO、S51のYES、S85)を示している。また、図29に示すトレース情報132は、その後、情報処理装置1と切換元装置2との間においてメッセージの送受信が複数回行われたことを示している。
そのため、事業者は、この場合、図29に示すトレース情報132を参照することで、問合せメッセージの再送が正常に行われることの確認を行うことが可能になる。
このように、本実施の形態における情報処理装置1のネットワークドライバ13は、第1テスト対象部11に対する問合せメッセージを受信したことに応じて、第1テスト対象部11が動作中であるか否かを判定する。具体的に、ネットワークドライバ13は、第1テスト対象部11に対する問合せメッセージの受信に応じて、情報処理装置1と切換元装置2との間における再送テストに用いられるセッションの状態がOPENであるか否かを判定する。
その結果、第1テスト対象部11が動作中である場合、ネットワークドライバ13は、受信した問合せメッセージの第1テスト対象部11への送信を抑制する。そして、ネットワークドライバ13は、第1テスト対象部11の動作が終了したことに応じて、第1テスト対象部11が動作していないことを示すメッセージを切換元装置2(問合せメッセージの送信元)に送信する。具体的に、ネットワークドライバ13は、情報処理装置1と切換元装置2との間における再送テストに用いられるセッションの状態がCLOSEになったことに応じて、第1テスト対象部11が動作していないことを示すメッセージの送信を行う。
すなわち、本実施の形態における情報処理装置1のネットワークドライバ13は、第1テスト対象部11に対する問合せメッセージを受信した場合において、第1テスト対象部11が動作中であると判定した場合、第1テスト対象部11に対して問い合わせメッセージを引き渡すことなく待機する。そして、ネットワークドライバ13は、第1テスト対象部11の動作が実際に終了した場合に、第1テスト対象部11が動作していない旨のメッセージを切換元装置2に返信する。
これにより、ネットワークドライバ13は、問い合わせメッセージの送信時において第1テスト対象部11が動作中である場合であっても、第1テスト対象部11が動作中である旨のメッセージが切換元装置2に送信されることを防止することが可能になる。そのため、ネットワークドライバ13は、問い合わせメッセージの送信時における第1テスト対象部11の動作状態によらず、再送テストを行う際の状況として適切な状況(第1テスト対象部11が動作していない旨のメッセージが切換元装置2に対して送信される状況)を作り出すことが可能になる。
また、ネットワークドライバ13は、第1テスト対象部11が動作していない旨のメッセージの送信を第1テスト対象部11の動作が実際に終了してから行うことで、例えば、第1テスト対象部11が動作していない旨のメッセージの送信直後に、情報処理装置1から切換元装置2に対するメッセージの送信が行われることを防止することが可能になる。
以上の実施の形態をまとめると、以下の付記のとおりである。
(付記1)
特定のソフトウエアのプロセスに対する問合せメッセージを受信したことに応じて、前記プロセスが動作中であるか否かを判定し、
前記プロセスが動作中である場合、受信した前記問合せメッセージの前記プロセスへの送信を抑制し、
前記プロセスの動作が終了したことに応じて、前記プロセスが動作していないことを示すメッセージを前記問合せメッセージの送信元に送信する、
処理をコンピュータに実行させることを特徴とする制御プログラム。
(付記2)
付記1において、
前記判定する処理では、前記プロセスと前記送信元との間においてセッションが開始されているか否かを判定し、
前記抑制する処理では、前記セッションが開始されている場合に、前記問合せメッセージの送信を抑制し、
前記送信する処理では、前記セッションが終了した場合に、前記セッションが開始されていないことを示すメッセージを前記送信元に送信する、
ことを特徴とする制御プログラム。
(付記3)
付記1において、
前記問合せメッセージは、前記プロセスの死活監視に関するメッセージである、
ことを特徴とする制御プログラム。
(付記4)
付記1において、さらに、
前記問合せメッセージの送信元との間におけるメッセージの送受信に伴う処理の内容を記憶部に記憶し、
前記問い合わせメッセージを受信することに応じて、前記問い合わせメッセージを記憶部に記憶し、
前記問合せメッセージの受信後、新たな問合せメッセージを受信したことに応じて、記憶した前記問い合わせメッセージが前記新たな問合せメッセージに対応するか否かを判定し、
記憶した前記問い合わせメッセージが前記新たな問合せメッセージに対応すると判定した場合、前記問合せメッセージの送信元との間におけるメッセージの送受信に伴う処理の内容の記憶を抑制する、
処理をコンピュータに実行させることを特徴とする制御プログラム。
(付記5)
付記4において、
前記新たな問い合わせメッセージに対応するか否かを判定する処理では、記憶した前記問い合わせメッセージの所定位置における内容と、前記新たな問合せメッセージの前記所定位置における内容とが一致するか否かを判定する、
ことを特徴とする制御プログラム。
(付記6)
付記5において、
前記記憶を抑制する処理では、記憶した前記問い合わせメッセージが前記新たな問合せメッセージに対応すると判定した場合、前記問合せメッセージの送信元との間における所定数のメッセージの送受信に伴う処理の内容の記憶した後に、前記問合せメッセージの送信元との間におけるメッセージの送受信に伴う処理の内容の記憶を抑制する、
ことを特徴とする制御プログラム。
(付記7)
特定のソフトウエアのプロセスに対する問合せメッセージを受信したことに応じて、前記プロセスが動作中であるか否かを判定する動作判定部と、
前記プロセスが動作中である場合、受信した前記問合せメッセージの前記プロセスへの送信を抑制するメッセージ制御部と、
前記プロセスの動作が終了したことに応じて、前記プロセスが動作していないことを示すメッセージを前記問合せメッセージの送信元に送信するメッセージ送信部と、を有する、
ことを特徴とする情報処理装置。
(付記8)
付記7において、
前記動作判定部は、前記プロセスと前記送信元との間においてセッションが開始されているか否かを判定し、
前記メッセージ制御部は、前記セッションが開始されている場合に、前記問合せメッセージの送信を抑制し、
前記メッセージ送信部は、前記セッションが終了した場合に、前記セッションが開始されていないことを示すメッセージを前記送信元に送信する、
ことを特徴とする情報処理装置。
(付記9)
付記7において、さらに、
前記問合せメッセージの送信元との間におけるメッセージの送受信に伴う処理の内容を記憶部に記憶するメッセージ保持部と、
前記問い合わせメッセージを受信することに応じて、前記問い合わせメッセージを取得して記憶部に記憶するトレース取得部と、
前記問合せメッセージの受信後、新たな問合せメッセージを受信したことに応じて、記憶した前記問い合わせメッセージが前記新たな問合せメッセージに対応するか否かを判定する対応判定部と、
記憶した前記問い合わせメッセージが前記新たな問合せメッセージに対応すると判定した場合、前記問合せメッセージの送信元との間におけるメッセージの送受信に伴う処理の内容の記憶を抑制するトレース制御部と、を有する、
ことを特徴とする情報処理装置。
(付記10)
特定のソフトウエアのプロセスに対する問合せメッセージを受信したことに応じて、前記プロセスが動作中であるか否かを判定し、
前記プロセスが動作中である場合、受信した前記問合せメッセージの前記プロセスへの送信を抑制し、
前記プロセスの動作が終了したことに応じて、前記プロセスが動作していないことを示すメッセージを前記問合せメッセージの送信元に送信する、
ことを特徴とする制御方法。
(付記11)
付記10において、
前記判定する工程では、前記プロセスと前記送信元との間においてセッションが開始されているか否かを判定し、
前記抑制する工程では、前記セッションが開始されている場合に、前記問合せメッセージの送信を抑制し、
前記送信する工程では、前記セッションが終了した場合に、前記セッションが開始されていないことを示すメッセージを前記送信元に送信する、
ことを特徴とする制御方法。
(付記12)
付記10において、さらに、
前記問合せメッセージの送信元との間におけるメッセージの送受信に伴う処理の内容を記憶部に記憶し、
前記問い合わせメッセージを受信することに応じて、前記問い合わせメッセージを記憶部に記憶し、
前記問合せメッセージの受信後、新たな問合せメッセージを受信したことに応じて、記憶した前記問い合わせメッセージが前記新たな問合せメッセージに対応するか否かを判定し、
記憶した前記問い合わせメッセージが前記新たな問合せメッセージに対応すると判定した場合、前記問合せメッセージの送信元との間におけるメッセージの送受信に伴う処理の内容の記憶を抑制する、
ことを特徴とする制御方法。