(57)【特許請求の範囲】
【請求項１】
処理機能と当該処理機能によって使用されるポート番号とを対応付けて記憶する記憶部と、
通信の障害を検出する検出部と、
装置の内部に設けられた、各処理を実行する処理部位ごとに、前記処理部位を通過したメッセージの数を前記ポート番号ごとに計数する計数部と、
前記検出部によって障害が検出された場合に、前記計数部によって計数された各処理部位のメッセージの数を比較する比較部と、
前記比較部が比較した結果において、各処理部位を通過したメッセージの数に差異が生じている場合に、前記装置の内部を障害箇所と特定するとともに、前記差異が発生した処理部位を特定し、前記メッセージの数に差異が生じていない場合に、前記装置の外部を障害箇所と特定する特定部と、
前記特定部によって前記障害箇所として前記処理部位が特定された場合、前記差異が発生したポート番号と当該ポート番号を通過したメッセージの種別とに基づいて、前記処理部位において障害が発生した前記処理機能を特定し、当該処理機能に対して復旧作業を実行する実行部と
を有することを特徴とする通信装置。
【請求項２】
前記検出部は、前記装置に接続される接続先の装置に送信したメッセージの信号種別に対応する所定時間内に、前記接続先の装置から前記メッセージに対する応答を受信しなかった場合、または、前記接続先の装置から前記メッセージの再送要求を受信した場合に、前記通信の障害が発生したと検出することを特徴とする請求項１に記載の通信装置。
【請求項３】
前記比較部は、定期的に前記処理部位ごとのメッセージの数を比較し、
前記特定部は、前記各処理部位を通過したメッセージの数に差異が生じている比較結果が得られた場合に、前記装置の内部を障害箇所と特定することを特徴とする請求項１に記載の通信装置。
【請求項４】
前記特定部は、前記装置の内部を障害箇所と特定した場合、前記装置の内部の結線情報または前記メッセージの送受信経路を用いて、前記障害の要因となった処理部位を特定することを特徴とする請求項１に記載の通信装置。
【請求項５】
前記特定部によって特定された前記障害の要因となった処理部位、または、前記装置に接続される接続先の装置に対して、復旧制御を実行する復旧制御部をさらに有することを特徴とする請求項４に記載の通信装置。
【請求項６】
コンピュータが、
通信の障害を検出し、
前記コンピュータの内部に設けられた、各処理を実行する処理部位ごとに、前記処理部位を通過したメッセージの数をポート番号ごとに計数し、
障害を検出した場合に、計数した各処理部位のメッセージの数を比較し、
比較した結果において、各処理部位を通過したメッセージの数に差異が生じている場合に、前記コンピュータの内部を障害箇所と特定するとともに、前記差異が発生した処理部位を特定し、前記メッセージの数に差異が生じていない場合に、前記コンピュータの外部を障害箇所と特定し、
前記障害箇所として前記処理部位が特定された場合、処理機能と当該処理機能によって使用されるポート番号とを対応付けて記憶する記憶部を参照し、前記差異が発生したポート番号と当該ポート番号を通過したメッセージの種別とに基づいて、前記処理部位において障害が発生した前記処理機能を特定し、当該処理機能に対して復旧作業を実行する
処理を含んだことを特徴とする障害検出方法。
【請求項７】
コンピュータに、
通信の障害を検出し、
前記コンピュータの内部に設けられた、各処理を実行する処理部位ごとに、前記処理部位を通過したメッセージの数をポート番号ごとに計数し、
障害を検出した場合に、計数した各処理部位のメッセージの数を比較し、
比較した結果において、各処理部位を通過したメッセージの数に差異が生じている場合に、前記コンピュータの内部を障害箇所と特定するとともに、前記差異が発生した処理部位を特定し、前記メッセージの数に差異が生じていない場合に、前記コンピュータの外部を障害箇所と特定し、
前記障害箇所として前記処理部位が特定された場合、処理機能と当該処理機能によって使用されるポート番号とを対応付けて記憶する記憶部を参照し、前記差異が発生したポート番号と当該ポート番号を通過したメッセージの種別とに基づいて、前記処理部位において障害が発生した前記処理機能を特定し、当該処理機能に対して復旧作業を実行する
処理を実行させることを特徴とする障害検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、障害検出方法および障害検出プログラムに関する。
【背景技術】
【０００２】
従来、通信装置間で通信障害が発生した場合に、予備の通信経路に切り替えたり、迂回経路を選択したりすることで、接続先装置との通信路を確保することが行われている。このような手法では、障害を復旧させないで放置することになるので、予備の経路が存在しなくなった状態で通信障害が発生した場合には、経路切替も迂回経路選択もできず通信ができなくなる。
【０００３】
一方で、現在のように通信網が発達し、接続先装置までに複数の装置を経由するネットワークでは、障害箇所が自装置、接続先装置、通信経路、他の場所のいずれなのかを特定するのが難しい。このため、障害を検出した装置が、接続先装置に対して再起動などの復旧制御を実施する技術が知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−４９３３６号公報
【特許文献２】特開平０７−２５０１２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術では、障害箇所が不確かな状態で復旧作業を実施するので、復旧作業によって障害が悪化する場合もあるという問題がある。なお、この問題は、通信装置に限ったものではなく、シャーシに搭載されて、信号送信部や信号受信部を実行する中継カードについても同様に存在する。
【０００６】
例えば、障害の原因が自装置である場合でも、接続先装置に復旧制御を実施するので、復旧作業を実施し続けても障害が継続し、復旧作業が障害の原因を特定する阻害要因になる恐れもある。また、正常に動作する接続先装置に繰り返して復旧作業を実施するので、接続先装置の障害を誘発し、却って障害を悪化させることも起こり得る。
【０００７】
開示の技術は、上記に鑑みてなされたものであって、障害箇所を絞り込むことができる通信装置、障害検出方法および障害検出プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本願の開示する通信装置は、一つの態様において、通信の障害を検出する検出部と、装置の内部に設けられた、各処理を実行する処理部位ごとに、前記処理部位を通過したメッセージの数を計数する計数部とを有する。通信装置は、前記検出部によって障害が検出された場合に、前記計数部によって計数された各処理部位のメッセージの数を比較する比較部を有する。通信装置は、前記比較部が比較した結果において、各処理部位を通過したメッセージの数に差異が生じている場合に、前記装置の内部を障害箇所と特定し、前記メッセージの数に差異が生じていない場合に、前記装置の外部を障害箇所と特定する特定部を有する。
【発明の効果】
【０００９】
本願の開示する通信装置、障害検出方法および障害検出プログラムの一つの態様によれば、障害箇所を絞り込むことができるという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施例１に係る制御装置の構成例を示す図である。
【図２】図２は、実施例１に係るＦＢカードのハードウェア構成例を示す図である。
【図３】図３は、実施例１に係るＦＢカードの機能ブロックを示す図である。
【図４】図４は、信号種別テーブルに記憶される情報の例を示す図である。
【図５】図５は、通過数テーブルに記憶される情報の例を示す図である。
【図６】図６は、ポート設定テーブルに記憶される情報の例を示す図である。
【図７】図７は、カード内で送受信されるメッセージの例を示す図である。
【図８】図８は、実施例１に係るＦＢカードが実行する処理シーケンスを示す図である。
【図９】図９は、実施例１に係るＦＢカードが実行する障害箇所特定処理を示すフローチャートである。
【図１０】図１０は、通知信号を用いた障害検出の処理シーケンスを示す図である。
【図１１】図１１は、要求信号の送信処理を用いた障害検出の処理シーケンスを示す図である。
【図１２】図１２は、障害特定プログラムを実行するコンピュータのハードウェア構成の例を示す図である。
【発明を実施するための形態】
【００１１】
以下に、本願の開示する通信装置、障害検出方法および障害検出プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００１２】
［全体構成］
図１は、実施例１に係る制御装置の構成例を示す図である。図１に示すように、制御装置１は、管理装置２とシャーシ３とを有する装置であり、例えば基地局制御装置（RNC：Radio  Network  Controller）などの装置である。また、シャーシ３は、ＦＢ（Function  Block）カード１０とＦＢカード３０とがＳＷ（Switch）カード５を介して接続される。なお、ここで示したシャーシの数、カードの種別、ＦＢカードやＳＷカードの数は、あくまで例示であり、図示したものに限定されるものではない。
【００１３】
管理装置２は、制御装置１で実行される処理を司る管理装置であり、ＳＷカード５を介して、ＦＢカード１０とＦＢカード３０各々に接続される。例えば、管理装置２は、管理者の指示操作を受け付けて、ＦＢカード１０やＦＢカード３０に対して、電源制御、データ処理の開始や終了制御などの処理を実行する。
【００１４】
ＳＷカード５は、各カードの接続経路を含むスイッチング情報等を保持し、ＦＢカード１０、ＦＢカード３０、管理装置２各々を相互に接続する。図１の例では、ＳＷカード５は、ＦＢカード１０とＦＢカード３０との間を２経路で接続し、経路を冗長化している。
【００１５】
ＦＢカード１０とＦＢカード３０は、通信装置の一例であり、データを他のカード等に送信したり受信したりする。図１の例では、ＦＢカード１０とＦＢカード３０とは、２つの物理ポートで接続される。例えば、ＦＢカード１０は、他のカード等から受信したデータを接続先のＦＢカード３０に出力したり、変調処理を実行する他のカード等に出力する。なお、各ＦＢカードの接続先は、図示したようにＦＢカードに限ったものではなく、例えば変調を実行するカード、コーティングを実行するカード、無線端末にデータを送信するカード等であってもよい。
【００１６】
このようなＦＢカード１０またはＦＢカード３０は、通信の障害を検出する。また、ＦＢカード１０またはＦＢカード３０は、カードの内部に設けられた、各処理を実行する処理部位ごとに、処理部位を通過したメッセージの数を計数する。また、ＦＢカード１０またはＦＢカード３０は、障害が検出された場合に、計数された各処理部位のメッセージの数を比較する。そして、ＦＢカード１０またはＦＢカード３０は、比較した結果において、各処理部位を通過したメッセージの数に差異が生じている場合に、カードの内部を障害箇所と特定し、メッセージの数に差異が生じていない場合に、カードの外部を障害箇所と特定する。
【００１７】
このように、ＦＢカード１０またはＦＢカード３０は、対向装置との間で障害が発生した場合に、自カード内でメッセージが正常に送受信されているかを判定することができる。この結果、ＦＢカード１０またはＦＢカード３０は、障害箇所がカード内かカード外かを特定することができる。したがって、障害箇所を絞り込むことができる。
【００１８】
［ＦＢカードのハードウェア構成］
図２は、実施例１に係るＦＢカードのハードウェア構成例を示す図である。なお、図１に示したＦＢカード１０とＦＢカード３０とは同様の構成を有するので、ハードウェア構成および機能ブロック図については、ＦＢカード１０を例にして説明する。
【００１９】
図２に示すように、ＦＢカード１０は、コネクタ１０ａとＰＨＹ（Physical  Layer）１０ｂとＰＨＹ１０ｃとコネクタ１０ｄとＰＨＹ１０ｅとを有する。さらに、ＦＢカード１０は、ＦＰＧＡ（Field-Programmable  Gate  Array）１１とネットワークプロセッサ１２とメモリ１３とメモリコントローラ１４とＣＰＵ（Central  Processing  Unit）１５とを有する。なお、ここで示したハードウェアはあくまで例示であり、図示するハードウェア以外のハードウェアを有していてもよい。
【００２０】
コネクタ１０ａは、ＦＢカード１０のバックサイドに設けられたイーサコネクタなどであり、他のＦＢカードや管理装置２との間を接続するケーブルと繋がれる。ＰＨＹ１０ｂとＰＨＹ１０ｃとは、コネクタ１０ａとＦＰＧＡ１１との間を接続する回路などのハードウェアであり、コネクタ１０ａとＦＰＧＡ１１との間でやり取りされる通信を物理層レベルで制御する。
【００２１】
コネクタ１０ｄは、ＦＢカード１０のフロントサイドに設けられたイーサコネクタなどであり、ＦＢカード１０を操作するコンピュータ装置などと接続するケーブル等と繋がれる。ＰＨＹ１０ｅは、コネクタ１０ｄとメモリコントローラ１４との間を接続する回路などのハードウェアであり、コネクタ１０ｄとメモリコントローラ１４との間でやり取りされる通信を物理層レベルで制御する。
【００２２】
ＦＰＧＡ１１は、ＭＡＣ（Media  Access  Control）１１ａとＭＡＣ１１ｂとスイッチ１１ｃとを有し、これらによって、データ転送をスイッチングする集積回路である。ＭＡＣ１１ａは、ＰＨＹ１０ｂとスイッチ１１ｃとの間を接続する回路などのハードウェアであり、ＰＨＹ１０ｂとスイッチ１１ｃとの間でやり取りされる通信をデータリンク層レベルで制御する。同様に、ＭＡＣ１１ｂは、ＰＨＹ１０ｃとスイッチ１１ｃとの間を接続する回路などのハードウェアであり、ＰＨＹ１０ｃとスイッチ１１ｃとの間でやり取りされる通信をデータリンク層レベルで制御する。
【００２３】
スイッチ１１ｃは、ＭＡＣ１１ａとネットワークプロセッサ１２との間を接続するスイッチング回路であり、同様に、ＭＡＣ１１ｂとネットワークプロセッサ１２との間を接続するスイッチング回路である。スイッチ１１ｃは、ネットワークプロセッサ１２から入力されたパケットなどのメッセージを、宛先が接続されるＭＡＣ１１ａまたはＭＡＣ１１ｂに出力する。また、スイッチ１１ｃは、ＭＡＣ１１ａまたはＭＡＣ１１ｂから入力されたパケットなどのメッセージをネットワークプロセッサ１２に出力する。
【００２４】
ネットワークプロセッサ１２は、パケット転送などパケット処理に特化したプロセッサなどの電子回路であり、ＦＰＧＡ１１とメモリコントローラ１４との間のパケット転送を制御する。メモリ１３は、ＦＢカード１０が実行する各処理で用いられるデータやプログラム等を記憶する記憶装置である。
【００２５】
メモリコントローラ１４は、メモリ１３へのデータの書き込みやメモリ１３からのデータの読み出しを制御する集積回路などである。メモリコントローラ１４は、ネットワークプロセッサ１２とメモリ１３との間のデータ書き込みまたはデータ読み出しを制御する。同様に、メモリコントローラ１４は、ＣＰＵ１５とメモリ１３との間のデータ書き込みまたはデータ読み出しを制御する。同様に、メモリコントローラ１４は、コネクタ１０ｄに接続される装置とメモリ１３との間のデータ書き込みまたはデータ読み出しを制御する。
【００２６】
ＣＰＵ１５は、内部メモリ等を有し、ＦＢカード全体の制御を司る電子回路である。ＣＰＵ１５は、通信の障害の検出、障害箇所の特定、障害箇所の復旧制御等の各処理を実行する。
【００２７】
［ＦＢカードの機能ブロック図］
図３は、実施例１に係るＦＢカードの機能ブロックを示す図である。図３に示すように、ＦＢカード１０は、信号種別テーブル２０ａと通過数テーブル２０ｂとポート設定テーブル２０ｃとを有する。また、ＦＢカード１０は、送受信処理部２１と計数部２２と信号種別判定部２３と確認管理部２４と障害検出部２５と比較部２６と特定部２７と復旧制御部２８とを有する。
【００２８】
信号種別テーブル２０ａと通過数テーブル２０ｂとポート設定テーブル２０ｃとは、例えばメモリ１３に設けられる。送受信処理部２１と計数部２２と信号種別判定部２３と確認管理部２４と障害検出部２５と比較部２６と特定部２７と復旧制御部２８とは、ＣＰＵ１５が実行する処理部である。
【００２９】
信号種別テーブル２０ａは、信号種別ごとに設定されたタイマ値を記憶するテーブルである。ここで記憶される情報は、管理者等によって更新される。図４は、信号種別テーブルに記憶される情報の例を示す図である。図４に示すように、信号種別テーブル２０ａは、「MsgID、信号種別、応答／確認待ちタイマ値、障害検出待ちタイマ値」を対応付けて記憶する。
【００３０】
ここで記憶される「MsgID」は、メッセージの種別を識別する識別子であり、ＦＢカード間等で送受信されるメッセージに含まれる。「信号種別」は、MsgIDによって特定されるメッセージの種別である。「応答／確認待ちタイマ値」は、通常のメッセージ送信で用いられるタイマ値であり、メッセージを送信してから応答を受信するまでのタイマ値である。「障害検出待ちタイマ値」は、再送信号待ちタイマと同等の用途で用いられるタイマ値であり、応答メッセージを送信してから当該応答の再送を要求されるまでのタイマ値である。
【００３１】
図４の場合、「MsgID」が「1029」である要求メッセージを送信してから「400ms」経過するまでに、当該要求メッセージの応答を受信しなかった場合に、障害と判定されることを示す。また、「MsgID」が「1030」である応答メッセージを送信してから「600ms」経過するまでに、送信した応答メッセージの再送要求を受信した場合に、障害と判定されることを示す。また、「MsgID」が「1033」である定期報告メッセージは、「8640000ms」間隔で受信しなかった場合に、障害と判定されることを示す。
【００３２】
通過数テーブル２０ｂは、計数部２２によって計数された処理部位ごとのメッセージ通過数を記憶するテーブルである。ここで記憶される情報は、計数部２２によって更新される。図５は、通過数テーブルに記憶される情報の例を示す図である。図５に示すように、通過数テーブル２０ｂは、処理部位ごとに「ＵＤＰ（User  Datagram  Protocol）ポート番号、通過数」を対応付けて記憶する。ここで記憶される「ＵＤＰポート番号」は、通過したメッセージが使用するポート番号であり、メッセージから取得することができる。「通過数」は、通過したメッセージの数である。また、通過数テーブル２０ｂは、結線情報や予め設定されたメッセージの送受信経路にしたがって、処理部位の接続順にテーブルを設けてもよい。
【００３３】
図５の場合、ＣＰＵ１５、メモリコントローラ１４、ネットワークプロセッサ１２の順に結線されており、各処理部位についてメッセージの通過数が計数されていることを示す。例えば、ＣＰＵ１５については、ＵＤＰポート番号「1024」を「42」個のメッセージが通過し、ＵＤＰポート番号「1025」を「35」個のメッセージが通過したことを示す。また、ＣＰＵ１５について、ＵＤＰポート番号「1026」を「29」個のメッセージが通過し、ＵＤＰポート番号「1040」を「42」個のメッセージが通過したことを示す。
【００３４】
ポート設定テーブル２０ｃは、ＵＤＰポート番号と処理機能との対応付けを記憶するテーブルである。ここで記憶される情報は、管理者等によって設定される。図６は、ポート設定テーブルに記憶される情報の例を示す図である。図６に示すように、ポート設定テーブル２０ｃは、「ＵＤＰポート番号、処理機能部名」を対応付けて記憶する。ここで記憶される「ＵＤＰポート番号」は、メッセージが使用するＵＤＰのポート番号を示す。「処理機能部名」は、メッセージを送受信する機能や処理を示す。
【００３５】
図６の場合、ＵＤＰポート番号「1024」を使用するメッセージは、ＰＦＩＦ（Plat  Form  interface）でやり取りされる同期処理において必要なメッセージであることを示す。同様に、ＵＤＰポート番号「1040」を使用するメッセージは、配下カード間またはＭａｔｅ間でやり取りされる転送メッセージであることを示す。なお、Ｍａｔｅとは、例えば冗長構成をとるものであり、片系がＮ系、他方がＥ系で、どちらかがＡＣＴ系（ＡＣＴＩＶＥに運用している系）で、ＳＴＢＹ系（Ｓｔａｎｄｂｙしている退避系）を指す。例えば、Ｍａｔｅ間でのやりとりとは、ＡＣＴ系とＳＴＢＹ系との間でのデータのやりとりである。
【００３６】
送受信処理部２１は、他のカード等からメッセージを受信したり、他のカードにメッセージを送信したりする処理部である。例えば、送受信処理部２１は、メッセージを受信した場合に、受信したメッセージを信号種別判定部２３に出力する。また、送受信処理部２１は、信号種別判定部２３から指示されたメッセージを指示された宛先に送信する。
【００３７】
計数部２２は、ＦＢカード１０内部に設けられた、各処理を実行する処理部位ごとに、処理部位を通過したメッセージの数を計数する処理部である。例えば、計数部２２は、送受信処理部２１を介して、ＦＢカード１０内の各ハードウェアまたはＣＰＵ１５が実行する各処理機能を監視し、通過したメッセージを計数する。
【００３８】
ここで、ＦＢカード１０内で通過するメッセージの例を説明する。図７は、カード内で送受信されるメッセージの例を示す図である。図７に示すように、メッセージは、「送信元情報、送信先情報、送信元アドレス、送信先アドレス、送信元ＵＤＰポート番号、送信先ＵＤＰポート番号、送信元物理ポート番号、送信先物理ポート番号、メッセージ番号」などを有する。
【００３９】
例えば、「送信元情報」は、メッセージを送信したカードを特定する情報であり、マシン名やカード名などである。「送信先情報」は、メッセージの送信先であるカードを特定する情報であり、マシン名やカード名などである。「送信元アドレス」は、メッセージを送信したカードのアドレス情報であり、「送信先アドレス」は、メッセージの送信先であるカードのアドレス情報である。なお、アドレス情報としては、ＩＰ（Internet  Protocol）アドレスやＭＡＣアドレスを用いることができる。
【００４０】
「送信元ＵＤＰポート番号」および「送信先ＵＤＰポート番号」は、送信元の装置によって指定されたポート番号であり、メッセージの送受信において使用するＵＤＰポート番号である。「送信元物理ポート番号」および「送信先物理ポート番号」は、送信元の装置によって指定された送信経路となる物理ポート番号であり、メッセージが使用する物理的なインタフェースの番号である。「メッセージ番号」は、図４の「MsgID」に該当し、メッセージの種別を識別する識別子である。
【００４１】
通過数を計数する一例を挙げると、計数部２２は、ＣＰＵ１５を監視し、図７に示すフォーマットで記述されたメッセージがＣＰＵ１５から出力された場合、「送信元ＵＤＰポート番号」または「送信先ＵＤＰポート番号」からＵＤＰポート番号を抽出する。そして、計数部２２は、通過数テーブル２０ｂが保持するテーブルのうちＣＰＵ１５に対応付けられたテーブルにおいて、抽出された「ＵＤＰポート番号」の通過数をインクリメントする。
【００４２】
図３に戻り、信号種別判定部２３は、送受信処理部２１が受信したメッセージの種別を判定して確認管理部２４に通知する処理部である。また、信号種別判定部２３は、送受信処理部２１が送信したメッセージの種別を判定して確認管理部２４に通知する処理部である。
【００４３】
例えば、信号種別判定部２３は、送受信処理部２１から受信メッセージが入力された場合に、受信メッセージに含まれる「メッセージ番号」を抽出する。そして、信号種別判定部２３は、抽出した「メッセージ番号」に対応する「信号種別」を信号種別テーブル２０ａから特定して、確認管理部２４に通知する。一例を挙げると、信号種別判定部２３は、受信メッセージから「メッセージ番号」として「1029」を抽出した場合、「1029」に対応する「要求」を受信メッセージの信号種別として、確認管理部２４に通知する。
【００４４】
また、信号種別判定部２３は、送受信処理部２１からメッセージが送信される場合に、送信メッセージに含まれる「メッセージ番号」を抽出する。そして、信号種別判定部２３は、抽出した「メッセージ番号」に対応する「信号種別」を信号種別テーブル２０ａから特定して、確認管理部２４に通知する。一例を挙げると、信号種別判定部２３は、送信メッセージから「メッセージ番号」として「1030」を抽出した場合、「1030」に対応する「応答」を受信メッセージの信号種別として、確認管理部２４に通知する。
【００４５】
確認管理部２４は、信号種別判定部２３から通知された信号種別に対応するタイマを起動させる処理部である。例えば、確認管理部２４は、信号種別判定部２３から「信号種別」が「要求」であることを通知された場合にタイマを起動させる。そして、確認管理部２４は、タイマを起動させたことや、起動させたタイマの信号種別、起動時間等を障害検出部２５に通知する。また、確認管理部２４は、正常にメッセージが送受信された場合や障害検出部２５等によって指示された場合に、タイマを初期化する。
【００４６】
障害検出部２５は、通信の障害を検出する処理部である。例えば、障害検出部２５は、確認管理部２４によってタイマが起動されてから、設定されるタイマ値に到達するまでの間に所定のメッセージを受信できない場合に、障害が発生したと検出する。
【００４７】
一例を挙げると、障害検出部２５は、確認管理部２４から「信号種別＝要求」に対応するタイマを起動させたことが通知されたとする。この場合、障害検出部２５は、信号種別判定部２３から確認管理部２４に対して要求メッセージの応答が受信されたことが通知された時点のタイマの値を特定する。つまり、障害検出部２５は、送受信処理部２１によって要求メッセージが受信された時点のタイマ値を特定する。そして、障害検出部２５は、特定したタイマの値が「信号種別＝要求」のタイマ値「400ms」未満である場合に、正常にメッセージが送受信されたとして、タイマをリセットする。一方、障害検出部２５は、特定したタイマの値が「信号種別＝要求」のタイマ値「400ms」以上である場合に、障害が発生したと検出して比較部２６に通知する。
【００４８】
別例を挙げると、障害検出部２５は、確認管理部２４から「信号種別＝応答」に対応するタイマを起動させたことが通知されたとする。この場合、障害検出部２５は、「信号種別＝応答」のタイマ値「600ms」経過前に、信号種別判定部２３から確認管理部２４に対して応答メッセージの再送要求が受信されたことが通知された場合に、障害が発生したと検出して比較部２６に通知する。つまり、障害検出部２５は、タイマ値「600ms」経過前に再送要求を受信すると障害が発生したと検出する。
【００４９】
比較部２６は、障害検出部２５によって障害が検出された場合に、計数部２２によって計数された各処理部位のメッセージの数を比較する処理部である。例えば、比較部２６は、通過数テーブル２０ｂを参照し、各処理部位ごとに計数された通過数を比較する。
【００５０】
図５の場合、比較部２６は、ＣＰＵ１５のテーブルに記憶される各ＵＤＰポート番号の通過数とメモリコントローラ１４のテーブルに記憶される各ＵＤＰポート番号の通過数とを比較する。同様に、比較部２６は、メモリコントローラ１４のテーブルに記憶される各ＵＤＰポート番号の通過数とネットワークプロセッサ１２のテーブルに記憶される各ＵＤＰポート番号の通過数とを比較する。同様に、比較部２６は、ＣＰＵ１５のテーブルに記憶される各ＵＤＰポート番号の通過数とネットワークプロセッサ１２のテーブルに記憶される各ＵＤＰポート番号の通過数とを比較する。そして、比較部２６は、比較結果を特定部２７に出力する。
【００５１】
特定部２７は、比較部２６が比較した結果において、各処理部位を通過したメッセージの数に差異が生じている場合に、ＦＢカード１０の内部を障害箇所と特定する処理部である。また、特定部２７は、メッセージの数に差異が生じていない場合に、ＦＢカード１０の外部を障害箇所と特定する処理部である。特定部２７は、特定した障害情報を復旧制御部２８に出力する。
【００５２】
例えば図５の場合、特定部２７は、ＣＰＵ１５においてＵＤＰポート番号「1040」を通過した数が「42」であり、メモリコントローラ１４においてＵＤＰポート番号「1040」を通過した数が「0」であることから、通過数に差異が生じていると判定する。この場合、特定部２７は、ＣＰＵ１５とメモリコントローラ１４の間の経路、または、メモリコントローラ１４に障害が発生していると特定する。さらに、特定部２７は、ポート設定テーブル２０ｃを参照し、障害を検出したＵＤＰポート番号「1040」に対応する処理機能が「配下カード間またはＭａｔｅ間の転送メッセージ」であることを特定する。一方、特定部２７は、各処理部位を通過したメッセージの数に差異が生じていない場合には、ＦＢカード１０に接続される経路またはＦＢカード１０の接続先であるＦＢカード３０に障害が発生していると特定する。
【００５３】
復旧制御部２８は、特定部２７によって特定された障害の要因となった処理部位、または、ＦＢカード１０に接続される接続先の装置に対して、復旧制御を実行する処理部である。例えば、復旧制御部２８は、特定部２７から障害箇所がメモリコントローラ１４であると通知された場合、メモリコントローラ１４に対して、リセット処理、再起動処理、予め定められた復旧コマンドなどの処理を実行する。同様に、復旧制御部２８は、特定部２７から障害箇所がＦＢカード３０であると通知された場合、ＦＢカード３０に対して、リセット処理、再起動処理、予め定められた復旧コマンドなどの処理を実行する。
【００５４】
また、復旧制御部２８は、特定部２７から障害が発生している機能が「配下カード間またはＭａｔｅ間の転送メッセージ」であることと通知されたとする。この場合、復旧制御部２８は、ＣＰＵ１５に対して、この機能を提供するアプリケーションの再起動を要求することもできる。つまり、復旧制御部２８は、ＣＰＵ１５が実行する処理単位で復旧制御を実行することもできる。
【００５５】
［処理の流れ］
次に、図８と図９とを用いて、実施例１に係るＦＢカード１０が実行する処理の流れを説明する。ここでは、ＦＢカード１０とＦＢカード３０との間の通信を例にして、全体的な処理シーケンスと障害箇所特定処理について説明する。
【００５６】
（全体的な処理シーケンス）
図８は、実施例１に係るＦＢカードが実行する処理シーケンスを示す図である。図８に示すように、ＦＢカード３０は、信号種別が「要求」であるメッセージをＦＢカード１０に送信する（Ｓ１０１とＳ１０２）。
【００５７】
ＦＢカード１０の送受信処理部２１は、信号種別が「要求」であるメッセージを受信する（Ｓ１０３）。続いて、信号種別判定部２３が受信メッセージの信号種別が「要求」であることを特定し、送受信処理部２１は、「要求」に対応するメッセージとして、信号種別が「応答」であるメッセージをＦＢカード３０に送信する（Ｓ１０４とＳ１０５）。
【００５８】
そして、ＦＢカード１０の確認管理部２４は、信号種別テーブル２０ａを参照し、信号種別判定部２３が特定した送信メッセージの信号種別である「応答」に対応したタイマを起動させる（Ｓ１０６）。この場合、タイマ値は「600ms」となる。
【００５９】
その後、タイマ値経過前に、ＦＢカード３０は、信号種別が「要求」であるメッセージをＦＢカード１０に再送する（Ｓ１０７とＳ１０８）。ＦＢカード１０の信号種別判定部２３は、送受信処理部２１によって受信されたメッセージの信号種別が「要求」であることを特定する（Ｓ１０９）。
【００６０】
そして、ＦＢカード１０の障害検出部２５は、タイマ値「600ms」の経過前に、応答信号を送信したはずの要求信号の再送を受信したことから、障害が発生したと検出する（Ｓ１１０）。そして、障害検出部２５が確認管理部２４にタイマのリセット指示を送信し、確認管理部２４は、タイマをリセットする（Ｓ１１１）。なお、タイマのリセットは、図示したタイミングに限ったものではなく、障害箇所が特定された後や復旧後であってもよい。
【００６１】
続いて、ＦＢカード１０の比較部２６および特定部２７は、障害箇所特定処理を実行して障害箇所を特定する（Ｓ１１２）。そして、復旧制御部２８は、特定された障害箇所に復旧制御を実行する（Ｓ１１３）。このとき、復旧制御部２８は、必要に応じて、ＦＢカード３０に対しても復旧制御を実行する（Ｓ１１４）。
【００６２】
その後、復旧制御によって障害が復旧すると、ＦＢカード１０の送受信処理部２１は、ＦＢカード１０とＦＢカード３０を接続する物理ポートから疎通報告を実行して、接続状態が正常であることを確認する（Ｓ１１５とＳ１１６）。また、ＦＢカード３０は、ＦＢカード１０から正常に疎通報告を受信したことを示す疎通報告確認をＦＢカード１０に送信する（Ｓ１１７とＳ１１８）。このようにして、各ＦＢカードは、疎通が確認できる。
【００６３】
（障害箇所特定処理）
図９は、実施例１に係るＦＢカードが実行する障害箇所特定処理を示すフローチャートである。この処理は、図８のＳ１１２で実行される。
【００６４】
図９に示すように、ＦＢカード１０の計数部２２は、ＦＢカード１０内の各ハードウェアまたはＣＰＵ１５が実行する各処理機能を監視し、処理部位ごとに、入力されるメッセージを抽出する（Ｓ２０１）。続いて、計数部２２は、入力されるメッセージが抽出された場合（Ｓ２０２肯定）、処理部位ごとに、出力されるメッセージを抽出する（Ｓ２０３）。そして、計数部２２は、入力メッセージも出力メッセージも検出された処理部位について（Ｓ２０４肯定）、当該処理部位の通過数をカウントアップする（Ｓ２０５）。
【００６５】
一方、計数部２２は、入力メッセージまたは出力メッセージが検出されなかった処理部位について（Ｓ２０２否定またはＳ２０４否定）、通過数をカウントアップすることなく、Ｓ２０５を実行する。なお、図９では、Ｓ２０１からＳ２０５の計数処理を実行した後に、Ｓ２０６からＳ２１０の障害検出処理を実行する例を図示したがこれに限定されるものではない。例えば、計数処理と障害検出処理とを非同期で実行してもよい。
【００６６】
その後、障害検出部２５が障害を検出すると（Ｓ２０６肯定）、比較部２６は、通過数テーブル２０ｂを参照し、各処理部位の通過数を比較する（Ｓ２０７）。そして、特定部２７は、比較結果に基づいて通過数に差異があると判定した場合（Ｓ２０８肯定）、比較結果に基づいて障害箇所の処理部位を特定する（Ｓ２０９）。一方、特定部２７は、比較結果に基づいて通過数に差異がないと判定した場合（Ｓ２０８否定）、障害箇所を外部と特定する（Ｓ２１０）。
【００６７】
［効果］
このように、ＦＢカード１０は、ＦＢカード３０との間でやり取りされるメッセージの信号種別に基づいてタイマを設定し、設定したタイマを用いて障害を検出することができる。つまり、ＦＢカード１０は、信号種別を用いて、ＦＢカード３０との間でシーケンスが続かない場合に、障害を検出することができる。また、ＦＢカード１０は、カード内の処理部位を通過したメッセージを計数することで、障害箇所がカード内かカード外かを特定することができる。さらに、ＦＢカード１０は、障害が発生した処理部位や機能までも特定することができる。したがって、ＦＢカード１０は、障害箇所を絞り込むことができ、復旧制御にかかるリスクも軽減することができる。
【００６８】
また、自カード障害での故障部位の特定化が高められ、障害が発生しても他からその発生有無が判断できない障害であるサイレント障害の検出と復旧が可能となる。また、誤った相手側経路への制御が減ることにより、回線上の信号送受信号が減り、回線使用効率が高まる。また、上位装置との通信が一時確保できていなくても、障害復旧制御が可能である。また、地震時など遠隔地における障害が発生した場合でも、最低限度の回線が確保でき、サービス提供が可能となる。
【実施例２】
【００６９】
次に、図１０と図１１とを用いて、ＦＢカード１０が実行する障害検出の別例を説明する。図１０では、通知信号を受信した例、図１１では、要求信号を送信した例で、障害を検出する手法を説明する。
【００７０】
（通知信号）
図１０は、通知信号を用いた障害検出の処理シーケンスを示す図である。図１０に示すように、ＦＢカード３０は、信号種別が「通知」であるメッセージをＦＢカード１０に送信する（Ｓ３０１とＳ３０２）。
【００７１】
ＦＢカード１０の送受信処理部２１は、信号種別が「通知」であるメッセージを受信する（Ｓ３０３）。続いて、信号種別判定部２３が受信メッセージの信号種別が「通知」であることを特定し、送受信処理部２１は、「通知」に対応するメッセージとして、信号種別が「確認」であるメッセージをＦＢカード３０に送信する（Ｓ３０４とＳ３０５）。
【００７２】
そして、ＦＢカード１０の確認管理部２４は、信号種別テーブル２０ａを参照し、信号種別判定部２３が特定した送信メッセージの信号種別である「確認」に対応したタイマを起動させる（Ｓ３０６）。この場合、タイマ値は「200ms」となる。
【００７３】
その後、ＦＢカード１０は、タイマ値を経過するまで障害検出等の処理を保留する（Ｓ３０７）。この間に、ＦＢカード１０は、ＦＢカード３０から、信号種別が「通知」であるメッセージの再送を受信したとする（Ｓ３０８からＳ３１０）。すなわち、ＦＢカード３０は、ＦＢカード１０から確認信号を受信できていないとする。
【００７４】
そして、タイマ値経過後、ＦＢカード１０の障害検出部２５は、タイマ値「200ms」の経過前に、確認信号を送信したはずの通知信号の再送を受信したことから、障害が発生したと検出する（Ｓ３１１）。その後、ＦＢカード１０またはＦＢカード３０が実行するＳ３１２からＳ３１９までの処理は、図８で説明したＳ１１１からＳ１１８までの処理と同様なので、説明を省略する。
【００７５】
（要求信号）
図１１は、要求信号の送信処理を用いた障害検出の処理シーケンスを示す図である。図１１に示すように、ＦＢカード１０の送受信処理部２１は、信号種別が「要求」であるメッセージをＦＢカード３０に送信する（Ｓ４０１とＳ４０２）。
【００７６】
続いて、ＦＢカード１０の確認管理部２４は、信号種別テーブル２０ａを参照し、信号種別判定部２３が特定した送信メッセージの信号種別である「要求」に対応したタイマを起動させる（Ｓ４０３）。この場合、タイマ値は「400ms」となる。その後、ＦＢカード１０は、タイマ値が経過するまでに、ＦＢカード３０から「応答」を受信していないとする（Ｓ４０４）。
【００７７】
すると、タイマ経過後、ＦＢカード１０の障害検出部２５は、タイマ値「400ms」の経過前に、応答信号を受信していないことから、障害が発生したと検出する（Ｓ４０５）。その後、ＦＢカード１０またはＦＢカード３０が実行するＳ４０６からＳ４１３までの処理は、図８で説明したＳ１１１からＳ１１８までの処理と同様なので、説明を省略する。
【００７８】
（その他の手法）
また、上記した例以外にも様々な信号種別を用いて障害を検出することができる。例えば、ＦＢカード１０は、ＦＢカード３０から定期的に送信される定期報告を用いることもできる。この場合、ＦＢカード１０は、定期報告を8640000ms間隔で受信しなかった場合に、障害が発生したと検出することもできる。
【００７９】
別の手法では、ＦＢカード１０の比較部２６は、通過数テーブル２０ｂに記憶される処理部位ごとの通過数を定期的に比較し、通過数に差異が生じているという比較結果が得られた時点で、障害発生を検出することもできる。このように、ＦＢカード１０は、信号種別からだけでなく、自装置内のメッセージの通過状況からも障害を検出することができる。したがって、ＦＢカード１０は、タイマに左右されることもなく、内部障害を迅速に検出することができる。
【実施例３】
【００８０】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。
【００８１】
（適用装置）
上記実施例では、ＦＢカードを例にして説明したが、本願はこれに限定されるものではなく、例えばサーバや基地局などの通信装置にも適用することができる。例えば、一般的なアプリケーションサーバなどに図３と同様の機能を設けることで、他のサーバやクライアントとの通信における障害時に、障害箇所を絞り込むことができる。
【００８２】
（信号種別）
上記実施例で例示した信号種別、MsgID、タイマ値、ポート番号等はあくまで例示であり、上記実施例に限定されるものではなく、管理者等が任意に設定することができる。また、設定内容をポート設定テーブルに格納することで、上記実施例と同様の処理を実行することができる。また、上記実施例では、メッセージや信号といった表現で説明したが、これらに限定されるものではなく、パケットやフレームなど装置間でやり取りされる様々なデータに適用することができる。
【００８３】
（復旧制御）
上記実施例では、復旧制御として再起動やリセットを実行する例を説明したが、これに限定されるものではない。例えば、ＦＢカード１０は、自カードの上位装置にあたる管理装置２に対して、障害発生を報告してもよい。この際、ＦＢカード１０は、特定した障害箇所や機能等を通知することもできる。他には、ＦＢカード１０は、フロントサイドに接続されるディスプレイ等に障害内容を表示させてもよく、管理者等にメール等で通知することもできる。
【００８４】
（システム）
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００８５】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、確認管理部２４が、障害検出部２５、比較部２６、特定部２７が実行する各処理を実行するなどしてもよい。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００８６】
（プログラム）
ところで、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することができる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータシステムの一例を説明する。
【００８７】
図１２は、障害特定プログラムを実行するコンピュータのハードウェア構成の例を示す図である。図１２に示すように、コンピュータ１００は、ＣＰＵ１０２、入力装置１０３、出力装置１０４、通信インタフェース１０５、媒体読取装置１０６、ＨＤＤ（Hard  Disk  Drive）１０７、ＲＡＭ（Random  Access  Memory）１０８を有する。また、図１２に示した各部は、バス１０１で相互に接続される。
【００８８】
入力装置１０３は、マウスやキーボードであり、出力装置１０４は、ディスプレイなどであり、通信インタフェース１０５は、ＮＩＣなどのインタフェースである。ＨＤＤ１０７は、障害特定プログラム１０７ａとともに、図４から図６に示した各テーブル等を記憶する。記録媒体の例としてＨＤＤ１０７を例に挙げたが、ＲＯＭ（Read  Only  Memory）、ＲＡＭ、ＣＤ−ＲＯＭ等の他のコンピュータ読み取り可能な記録媒体に各種プログラムを格納しておき、コンピュータに読み取らせることとしてもよい。なお、記録媒体を遠隔地に配置し、コンピュータが、その記憶媒体にアクセスすることでプログラムを取得して利用してもよい。また、その際、取得したプログラムをそのコンピュータ自身の記録媒体に格納して用いてもよい。
【００８９】
ＣＰＵ１０２は、障害特定プログラム１０７ａを読み出してＲＡＭ１０８に展開することで、図３等で説明した各機能を実行する障害特定プロセス１０８ａを動作させる。すなわち、障害特定プロセス１０８ａは、図３に記載した送受信処理部２１と計数部２２と信号種別判定部２３と確認管理部２４と障害検出部２５と比較部２６と特定部２７と復旧制御部２８と同様の機能を実行する。このようにコンピュータ１００は、プログラムを読み出して実行することで障害特定方法を実行する情報処理装置として動作する。
【００９０】
また、コンピュータ１００は、媒体読取装置１０６によって記録媒体から障害特定プログラムを読み出し、読み出された障害特定プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、コンピュータ１００によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【符号の説明】
【００９１】
１  制御装置
２  管理装置
３  シャーシ
５  ＳＷカード
１０、３０  ＦＢカード
１０ａ、１０ｄ  コネクタ
１０ｂ、１０ｃ、１０ｅ  ＰＨＹ
１１  ＦＰＧＡ
１１ａ、１１ｂ  ＭＡＣ
１１ｃ  スイッチ
１２  ネットワークプロセッサ
１３  メモリ
１４  メモリコントローラ
１５  ＣＰＵ
２０ａ  信号種別テーブル
２０ｂ  通過数テーブル
２０ｃ  ポート設定テーブル
２１  送受信処理部
２２  計数部
２３  信号種別判定部
２４  確認管理部
２５  障害検出部
２６  比較部
２７  特定部
２８  復旧制御部
【図１】
0005790420.tif 000002
【図２】
0005790420.tif 000003
【図３】
0005790420.tif 000004
【図４】
0005790420.tif 000005
【図５】
0005790420.tif 000006
【図６】
0005790420.tif 000007
【図７】
0005790420.tif 000008
【図８】
0005790420.tif 000009
【図９】
0005790420.tif 000010
【図１０】
0005790420.tif 000011
【図１１】
0005790420.tif 000012
【図１２】
0005790420.tif 000013