(57)【要約】【課題】  通信システム異常検出で一般的に使われている方法は、ハートビートを定期的に送信するサーバと応答クライアントが必要で、無駄な通信負荷が発生し、通信システムのノード数が増えれば増えるほど、システムの通信性能に影響を与えてしまう問題がある。また、ハートビートサーバが異常になると、通信システム異常検出できない、または、サーバ処理の代行処理が必要となるなどシステムが複雑となる問題がある。【解決手段】  送信処理を開始と同時にタイマを起動する送信プログラムと受信処理を開始と同時にタイマを停止する受信プログラムと、タイマがタイムアウトする時間を設定することができるプログラムと、タイマのタイムアウトを受けて異常を識別・通知する異常処理プログラムを計算機システムに具備し、これらのプログラム群をアプリケーションが通常必要なＣＰＵ間通信に使うだけで通信システム異常検出が可能となる。【選択図】  図１
2005267051.tif 000002
【特許請求の範囲】
【請求項１】
送信処理およびこの送信処理の開始と略同時にタイマを起動する送信ステップと、
受信処理およびこの受信処理の開始と略同時にタイマを停止する受信ステップと、
上記タイマがタイムアウトする時間を設定するタイムアウト設定ステップと、
上記タイムアウト設定ステップのタイムアウト結果を受けて異常を識別して通知する異常処理ステップと、
所定のアプリケーションを実行するアプリケーションステップと、
通信路との通信を行う通信ステップと、
を具備した複数のプロセッサ相互の通信異常を検出する通信システム異常検出方法において、
上記アプリケーションステップが必要とするプロセッサ間通信について、上記送信ステップ、上記受信ステップ、上記タイムアウト設定ステップ、上記異常処理ステップの各ステップ群により、上記タイムアウトする時間が経過しても上記受信ステップがデータを受信できない場合に、通信相手プロセッサまたは上記通信路が異常であることを検知する様にしたことを特徴とする通信システム異常検出方法。
【請求項２】
送信処理およびこの送信処理の開始と略同時にタイマを起動する送信手段と、
受信処理およびこの受信処理の開始と略同時にタイマを停止する受信手段と、
上記タイマがタイムアウトする時間を設定するタイムアウト設定手段と、
上記タイムアウト設定手段のタイムアウト結果を受けて異常を識別して通知する異常処理手段と、
所定のアプリケーションを実行するアプリケーション手段と、
通信路との通信を行う通信手段と、
を具備した複数のプロセッサ相互の通信異常を検出する計算機システムにおいて、
上記アプリケーション手段が必要とするプロセッサ間通信について、上記送信手段、上記受信手段、上記タイムアウト設定手段、上記異常処理手段の各手段群により、上記タイムアウトする時間が経過しても上記受信手段がデータを受信できない場合に、通信相手プロセッサまたは上記通信路が異常であることを検知する様にしたことを特徴とする計算機システム。
【請求項３】
送信処理およびこの送信処理の開始と略同時にタイマを起動し、送信先からの応答パケットを受けると、このタイマを停止する送信ステップと、
上記タイマがタイムアウトする時間を設定するタイムアウト設定ステップと、
常に受信待機し、受信する受信データを通常データ或いはＡＣＫデータに識別し、上記応答パケットを送信元に返送する受信ステップと、
上記タイムアウト設定ステップのタイムアウト結果を受けて異常を識別して通知する異常処理ステップと、
所定のアプリケーションを実行するアプリケーションステップと、
通信路との通信を行う通信ステップと、
を具備した複数のプロセッサ相互の通信異常を検出する通信システム異常検出方法において、
上記アプリケーションステップが必要とするＣＰＵ間通信について、上記送信ステップ、上記受信ステップ、上記タイムアウト設定ステップ、上記異常処理ステップの各ステップ群により、上記設定したタイムアウトする時間が経過しても、上記ＡＣＫデータが上記受信ステップで受信されない場合に、通信相手プロセッサ、または上記通信路が異常であることを検知できる様にしたことを特徴とする通信システム異常検出方法。
【請求項４】
送信処理およびこの送信処理の開始と略同時にタイマを起動し、送信先からの応答パケットを受けると、このタイマを停止する送信手段と、
上記タイマがタイムアウトする時間を設定するタイムアウト設定手段と、
常に受信待機し、データを受信すると、上記応答パケットを送信元に返送する受信手段と、
上記タイムアウト設定手段のタイムアウト結果を受けて異常を識別して通知する異常処理手段と、
所定のアプリケーションを実行するアプリケーション手段と、
通信路との通信を行う通信手段と、
を具備した複数のプロセッサ相互の通信異常を検出する計算機システムにおいて、
上記アプリケーション手段が必要とするＣＰＵ間通信について、上記送信手段、上記受信手段、上記タイムアウト設定手段、上記異常処理手段の各手段群により、上記設定したタイムアウトする時間が経過しても、上記ＡＣＫデータが上記受信手段で受信されない場合に、通信相手プロセッサ、または上記通信路が異常であることを検知できる様にしたことを特徴とする計算機システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、プログラムによる通信システム異常を検出可能な通信システム異常検出方法および計算機システムに関するものである。
【背景技術】
【０００２】
信頼性を要求するマルチプロセッサシステムでは、Ｈ／Ｗを冗長構成とするか、Ｈ／Ｗ対称性をもたせて縮退処理を行なうことができるような設計が行なわれる。このようなシステムでは、プロセッサやプロセッサ間の通信システム異常を検出する方法として、ハートビートを送信、監視するサーバを通信システムに具備し、各通信ノードとハートビート監視サーバ間で、正常情報のやりとりが途絶えると異常を検出する従来技術が知られている（例えば、特許文献１参照）。
【０００３】
【特許文献１】特許第３４１９９７９号公報（第１図）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明は、通信システム異常検出でハートビートを使うと、定期的にハートビートを送信するサーバと応答クライアントが必要で、無駄な通信負荷が発生し、通信システムのノード数が増えれば増えるほど、システムの通信性能に影響を与えてしまう課題と、ハートビートサーバが異常になると、通信システム異常検出できない、または、サーバ処理の代行処理が必要となりシステムが複雑となる課題を解決する手段を提供するものである。
【課題を解決するための手段】
【０００５】
本発明による通信システム異常検出方法は、送信処理およびこの送信処理の開始と略同時にタイマを起動する送信ステップと、受信処理およびこの受信処理の開始と略同時にタイマを停止する受信ステップと、上記タイマがタイムアウトする時間を設定するタイムアウト設定ステップと、上記タイマのタイムアウトを受けて異常を識別して通知する異常処理ステップと、所定のアプリケーションを実行するアプリケーションステップと、通信路との通信を行う通信ステップとを具備した複数のプロセッサ相互の通信異常を検出する通信システム異常検出方法において、上記アプリケーションステップが必要とするプロセッサ間通信について、上記送信ステップ、上記受信ステップ、上記タイムアウト設定ステップ、上記異常処理ステップの各ステップ群により、通信相手プロセッサまたは上記通信路が異常であることを検知する様したものである。
【０００６】
本発明による計算機システムは、送信処理およびこの送信処理の開始と略同時にタイマを起動する送信手段と、受信処理およびこの受信処理の開始と略同時にタイマを停止する受信手段と、上記タイマがタイムアウトする時間を設定するタイムアウト設定手段と、上記タイマのタイムアウトを受けて異常を識別して通知する異常処理手段と、所定のアプリケーションを実行するアプリケーション手段と、通信路との通信を行う通信手段とを具備した複数のプロセッサ相互の通信異常を検出する計算機システムにおいて、上記アプリケーション手段が必要とするプロセッサ間通信について、上記送信手段、上記受信手段、上記タイムアウト設定手段、上記異常処理手段の各手段群により、通信相手プロセッサまたは上記通信路が異常であることを検知する様にしたものである。
【発明の効果】
【０００７】
本発明は、アプリケーションがデータ送信してからデータ受信するまでの所要時間を把握することで、アプリケーションが通常必要とするデータ送受信を行なっているだけあり、プロセッサまたは通信路異常を検出することが可能となり、ハートビート監視のために余計な処理や装置を必要としない。
【０００８】
また、アプリケーションがデータ送信からＡＣＫ情報を受信するまでの時間を把握することで、アプリケーションが通常必要とするデータ送信を行なっているだけであり、プロセッサまたは通信路の異常を検出することが可能となり、ハートビート監視のために余計な処理や装置を必要としない。
【発明を実施するための最良の形態】
【０００９】
実施の形態１．
以下、図を用いて、この発明に係る実施の形態１について説明する。図１は、実施の形態１による通信システム構成を示している。複数のプロセッサ１が通信装置２と通信路３を介して、複数接続されている。アプリケーション４は、送信プログラム５と受信プログラム６を介して他のプロセッサとＣＰＵ間通信を行なう。アプリケーション４は、データ送信とデータ受信を１つの単位として実行するものとする。
【００１０】
つまり、データ送信を行なうと、データ処理結果を受けるために、データ受信を行なう。または、逆にデータ受信によって受けたデータを処理した結果をデータ送信する。このデータのやりとりにかかる時間は、一定の時間を超えることがないように設計されている時、この送受信にかかる最大所要時間をタイムアウト時間と定義し、このタイムアウト時間を設定することができるタイムアウト設定プログラム７を具備する。また、タイマ１０のタイムアウト発生時に異常プロセッサを識別し、アプリケーション４への異常通知手段を有する、異常処理プログラム８を具備する。
【００１１】
図２は、各プログラムとアプリケーション４、通信装置２との関係を示した図である。
図２を使って、各プログラムの動作を個別に説明する。タイムアウト設定プログラム７は、アプリケーション４からタイムアウト時間を受けて（９）、タイマ１０にタイムアウト時間設定を行なう（１１）。送信プログラム５は、アプリケーション４から送信要求を受けて（１２）、データを通信装置２に送出（１３）すると同時に、タイマ１０の動作開始を指示する（１４）。受信プログラム６は、通信装置２からデータを受信（１５）するとタイマ１０の動作停止を指示し（１６）、受信したデータをアプリケーション４に渡す（１７）。異常処理プログラム８は、タイマ１０がタイムアウトを検出すると処理が呼び出され（１８）、異常が発生していることをアプリケーション４に通知する（１９）。
【００１２】
図３は、アプリケーション４が図２で示したプログラム群を使って、異常検出を行なう方法の一例を示したフローチャートである。アプリケーション４は、マスタとスレーブで別れているものとし、双方がお互いの異常を検出することができる必要があるものとする。
【００１３】
始めに、マスタのフローチャートを説明する。マスタが処理開始すると、タイムアウト設定プログラム７を呼び出して、タイムアウト時間を設定する（Ｍ１）。次に、送信プログラム５を呼び出して、スレーブにデータを送信する（Ｍ２）。次に、受信プログラム６を呼び出して、スレーブから処理済のデータを受信できるようにする（Ｍ３）。次に、受信したデータを処理する（Ｍ４）。次に、送信プログラム５を呼び出して、スレーブにデータを送信する（Ｍ５）。以下、（Ｍ３）から（Ｍ５）までの一連の処理を繰り返す（Ｃ〜Ｄ間）。
【００１４】
次に、スレーブのフローチャートを説明する。スレーブが処理開始すると、タイムアウト設定プログラム７を呼び出して、タイムアウト時間を設定する（Ｓ１）。次に、受信プログラム６を呼び出して、マスタからデータを受信できるようにする（Ｓ２）。次に、データを受信したらデータ処理を行なう（Ｓ３）。次に、送信プログラム５を呼び出して、マスタに処理結果を送信する（Ｓ４）。以下、（Ｓ２）から（Ｓ４）までの一連の処理を繰り返す（Ａ〜Ｂ間）。ここでマスタとスレーブで設定するタイムアウト時間は次のようになる。
【００１５】
マスタのタイムアウト時間は、（Ｍ２）開始から（Ｍ３）完了までにかかる時間であるが、これはスレーブでのＡからＢまでの通信にかかる時間とデータ処理にかかる時間の合計である。同様に、スレーブのタイムアウト時間は、（Ｓ４）開始から（Ｓ２）完了までにかかる時間であるが、これはマスタでのＣからＤまでの通信にかかる時間とデータ処理にかかる時間の合計である。もし、設定したタイムアウト時間が経過しても受信プログラムがデータを受信できないときは、タイマ１０がタイムアウトを検出することにより異常処理プログラム８が起動されて、アプリケーション４に異常が発生していることが通知される。
【００１６】
このように、アプリケーション４は、データを送信してからデータを受信するまでの所要時間を把握することで、アプリケーション４が通常必要と想定するデータ送受信を行なっているだけで、プロセッサまたは通信路の通信異常を検出することが可能となり、ハートビート監視のために余計な処理や装置を必要としない。
【００１７】
実施の形態２．
以下、図を用いてこの発明に係る実施の形態２について説明する。図４は、実施の形態２による受信プログラム６の構成を示している。通信装置２からデータを受ける（１５）と、受信プログラム６は受信データをデータ識別処理２０において通常データ或いはＡＣＫデータに識別する。受信データが通常データの場合は、通常データ受信処理２１がデータ受信処理と同時に、ＡＣＫ情報を送信元に送信（２２）する。受信データがＡＣＫデータの場合は、ＡＣＫ受信処理２３がタイマ１０を停止する。
【００１８】
図５は、２つのプロセッサ構成を例に、プロセッサ１ａがプロセッサ１ｂにデータ送信するときの処理の流れを説明した図である。図５では、処理の説明に必要なブロックのみ記述しているが、プロセッサ１ａと１ｂは同じ構成をしている。プロセッサ１ａの送信プログラム５が通信装置２ａにデータを送信すると、通信路３を経由してデータが通信装置２ｂに届く。
【００１９】
受信プログラム６ｂは、通信装置２ｂから受信（１５ｂ）したデータを通常データとして識別し、ＡＣＫ情報を送信元に対して送信する（２２ｂ）。ＡＣＫ情報は、同様に通信路３を経由してプロセッサ１ａの受信プログラム６ａに受信（１５ａ）される。受信プログラム６ａは、ＡＣＫ情報を識別すると、タイマを停止する。もし、設定したタイムアウト時間が経過しても、ＡＣＫ情報がプロセッサ１ａの受信プログラム６ａで受信されなければ、タイマ１０がタイムアウトして、異常処理プログラム８が異常を検知する。
【００２０】
図６は、アプリケーション４が図５で示したプログラム群を使って、異常検出を行なう方法の一例を示したフローチャートである。アプリケーション４は、マスタとスレーブで別れているものとし、データのやりとりはマスタからスレーブの一方向のみとする。ここでは、マスタのフローチャートのみ説明する。マスタが処理開始すると、タイムアウト設定プログラム７を呼び出して、タイムアウト時間を設定する（Ｎ１）。
【００２１】
次に、送信プログラム５を呼び出して、スレーブにデータを送信する（Ｎ２）。次に任意のデータ処理を行なう（Ｎ３）。以下、（Ｎ２）と（Ｎ３）を繰り返す。実施の形態２によるタイムアウト時間は、送信プログラムが送信を開始してから、ＡＣＫ情報を受信するまでの所要時間である。スレーブの受信プログラム６は、データを受信するとすぐにＡＣＫ信号を送信する。受信側アプリケーションの状態によらないため、タイムアウト時間は、ほぼ一定となる。
【００２２】
このように、アプリケーション４は、データ送信からＡＣＫ情報を受信するまでの時間を把握することで、アプリケーション４が通常必要と想定するデータ送信を行なっているだけで、プロセッサまたは通信路の通信異常を検出することが可能となり、ハートビート監視のために余計な処理や装置を必要としない。
つまり、実施の形態２による形態では実施の形態１のように、アプリケーション４が送受信の両方を行なわない場合でも異常の検出が可能となる。
【図面の簡単な説明】
【００２３】
【図１】この発明による実施の形態１における計算機システム構成図である。
【図２】この発明による実施の形態１における各プログラムとアプリケーション、通信装置との関係を示した図である。
【図３】この発明による実施の形態１におけるアプリケーションのフローチャートを示した図である。
【図４】この発明による実施の形態２における受信プログラムの構成を示した図である。
【図５】この発明による実施の形態２における各プログラムとアプリケーション、通信装置との関係関係を示した図である。
【図６】この発明による実施の形態２におけるアプリケーションのフローチャートを示した図である。
【符号の説明】
【００２４】
１  プロセッサ、  ２  通信装置、  ３  通信路、  ４  アプリケーション、  ５  送信プログラム、  ６  受信プログラム、  ７  タイムアウト設定プログラム、  ８  異常処理プログラム、  １０  タイマ、  ２０  データ識別処理、  ２１  通常データ受信処理、  ２３  ＡＣＫ受信処理。
【図１】
2005267051.tif 000003
【図２】
2005267051.tif 000004
【図３】
2005267051.tif 000005
【図４】
2005267051.tif 000006
【図５】
2005267051.tif 000007
【図６】
2005267051.tif 000008