JP2010286889A - 通信制御装置 - Google Patents

通信制御装置 Download PDF

Info

Publication number
JP2010286889A
JP2010286889A JP2009138235A JP2009138235A JP2010286889A JP 2010286889 A JP2010286889 A JP 2010286889A JP 2009138235 A JP2009138235 A JP 2009138235A JP 2009138235 A JP2009138235 A JP 2009138235A JP 2010286889 A JP2010286889 A JP 2010286889A
Authority
JP
Japan
Prior art keywords
component
output
log
operation data
communication
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2009138235A
Other languages
English (en)
Other versions
JP5377094B2 (ja
Inventor
Yasuhiko Uehara
康彦 上原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2009138235A priority Critical patent/JP5377094B2/ja
Publication of JP2010286889A publication Critical patent/JP2010286889A/ja
Application granted granted Critical
Publication of JP5377094B2 publication Critical patent/JP5377094B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

【課題】コンポーネントの効果的な障害解析と、システム全体の動作データ出力量の抑制を両立させる。
【解決手段】コンポーネント102が動作中に出力する動作データ104は、動作データ記憶機能部107によってデータ列108に記憶される。このデータ列108から通信相手記憶機能部109によってコンポーネント102の通信相手たるコンポーネント103が抽出され、記憶される。システムの動作中に、データ列108と、コンポーネント特定機能部106によって特定されたコンポーネント102の出力する動作データ104が動作データ比較機能部110によって比較される。そして、比較結果に応じて、コンポーネント102に対しては出力レベル制御機能部111が、コンポーネント103に対しては関連コンポーネント出力レベル制御機能部112が、動作データの出力レベルを制御する。
【選択図】図1

Description

本発明は、複数のソフトウェアコンポーネントが相互に通信しながら動作する通信制御装置に関する。特に、コンポーネントの動作状況を表す動作データの出力を効率的に行うことによって、定常運転時の動作データ出力量の抑制と、システム障害の原因調査に必要となる詳細な動作データの出力とを両立させることができる通信制御装置に関する。
近年、ソフトウェアシステム開発においては、ソフトウェアを相互に依存度の低い部品(コンポーネント)単位に分割し、コンポーネント同士が相互に通信を行いながら動作するソフトウェアのコンポーネント化が推進されている。
さらに、コンポーネント間の通信では、通信制御を統一的に行う通信ミドルウェアを導入し、通信のインターフェイスを統一することによって、システムの保守性向上やコンポーネントの再利用による生産性向上が目指されている。
また、システムにソフトウェア障害が発生したときの原因究明手法としては、以下の手法が一般的である。即ち、各ソフトウェアコンポーネントがそれぞれ自身の動作状況を表すデータをメモリあるいはディスク装置に出力しておき、システムの管理者あるいは開発者が出力された動作データを精査・解析して障害の原因を推定する手法である。
出力された動作データからソフトウェア障害の原因を調査するためには一定以上詳細な動作データが必要になる。しかし、システムに異常が発生する前の定常運転時から詳細な動作データを出力していると、動作データの保存場所となるメモリやディスク装置の容量を圧迫し、システムの動作に支障をきたすこともある。そのため、通常は出力の詳細レベルを必要に応じて上下する制御を行う。
具体的には、重要な動作データのみを出力するモード、詳細な動作データを含めて出力するモードのように複数段階の出力の詳細レベルを制御できる機能を実装しておき、定常運転時には重要な動作データのみを出力するようにしておく。システムにソフトウェア障害が発生したら、詳細な動作データを出力する設定に変更した上で障害発生時と同様の操作を行い、ソフトウェア障害の再現を待って出力された詳細な動作データの解析を行う。
これらの背景技術に関しては、先行技術として特許文献1や特許文献2などが提案されている。
特許文献1には、システムの定常運転時にソフトウェアの動作データであるログの出力状況を監視し、繰り返しなどのパターンが現れたら適宜ログの圧縮処理を行うことで、ログ量を抑制する技術が開示されている。
特許文献2には、同様に、システムの定常運転時にCPU、メモリ、ディスク装置などのコンピュータ資源を監視し、資源の不足など障害が起きると思われる状況になると、システムを監視モードに切り替えて障害を早期に検知する技術が開示されている。
特開平10−275101号公報 特開2008−59102号公報
半導体露光装置などの大規模システムにおいては、システムを構成するコンポーネントは非常に多数に上り、またコンポーネントが複数のマシンノードに分散していることもある。同時に、半導体露光装置では、数週間〜数ヶ月に渡ってシステムが動作し続けることもある。また、このようなシステムにおいては、各コンポーネントが自身の動作データとしてログを主にディスク装置に出力している。
このような状況下では、システムにソフトウェア障害が発生し、原因の解析のために障害を再現させるとき、障害が再現するまでに長期間システムを動作させる必要がある場合が多い。その場合、多数のコンポーネントが長期間に渡ってログを出力することから解析対象となるログの出力量が膨大なものとなり、ログの保存場所となるメモリやディスク装置の領域を圧迫すると同時に、膨大なログの解析が困難になるという問題が生じる。
また、多数のコンポーネントが並列に動作して各々ログを出力することからシステム全体における単位時間当たりのログの出力量が非常に多くなる。結果として、ログ出力処理がシステムの計算資源を圧迫し、障害発生時とシステムの動作状況が変わってしまって障害の再現ができなくなることがある。
上記特許文献1では、保存されるログの総量を抑制することは可能であるが、詳細ログを出力して障害の再現を行う際には、システム全体に渡って詳細なログが出力されてしまい、ログ出力処理が計算資源を圧迫してしまう問題は解決できない。また、ログの圧縮処理を行うことでさらに計算資源を圧迫してしまう。
また、上記特許文献2では、出力ログも含むシステム状態を監視して、異常が起きると思われる状況になった場合のみ特別なモードに移行することで効率的にログを出力することが可能になる。しかし、監視モードに移行した際には、やはりシステム全体に渡って詳細なログが出力されてしまい、同様にログ出力処理が計算資源を圧迫してしまう。
本発明の目的は、コンポーネントの効果的な障害解析と、システム全体の動作データ出力量の抑制を両立させることができる通信制御装置を提供することにある。
上記目的を達成するために、請求項1記載の通信制御装置は、複数のコンポーネント間の通信を制御する通信制御装置において、監視対象となる特定コンポーネントにおける、実行時の動作データを記憶しておく動作データ記憶手段と、前記動作データ記憶手段に記憶されたデータ列から、前記特定コンポーネントの通信相手のコンポーネントを特定する通信相手特定手段と、前記動作データ記憶手段に記憶された所定動作状態におけるデータ列と、前記特定コンポーネントが実行時に出力するデータとを比較する比較手段と、前記比較手段による比較結果に応じて、前記特定コンポーネントと前記通信相手特定手段によって特定された通信相手のコンポーネントに対して、動作データ出力の詳細レベルを制御する出力レベル制御機能手段とを備えることを特徴とする。
本発明の通信制御装置によれば、コンポーネントの効果的な障害解析と、システム全体の動作データ出力量の抑制を両立させることができる。
本発明の実施の形態に係る通信制御装置のシステム構成を示すブロック図である。 図1の通信制御装置における同一マシン内の通信時のシステム構成図である。 図1の通信制御装置における異なるマシンに配置されたコンポーネント間の通信を行う際のシステム構成図である。 図1の通信制御装置における定常運転時の第1の実施の形態のシステム構成図である。 図1の通信制御装置における障害再現時の第1の実施の形態のシステム構成図である。 図1の通信制御装置におけるログ出力レベルの例を示す図表である。 図1の通信制御装置における定常運転時に、重要なログのみが出力されている状態のイメージ図である。 図1の通信制御装置における障害再現時に重要なログのみが詳細に出力され、その他のログは重要なものだけが出力されている状態のイメージ図である。 障害再現時に図5の通信ミドルウェアが行う障害再現実行処理の手順を示すフローチャートである。 ログ配列の比較方法を示すイメージ図である。 図1の通信制御装置における定常運転時の第2の実施の形態のシステム構成図である。 図1の通信制御装置における障害再現時の第2の実施の形態のシステム構成図である。 図12の通信ミドルウェアが行うジョブ実行処理の手順を示すフローチャートである。
以下、本発明を図面を参照しながら詳細に説明する。
図1は、本発明の実施の形態に係る通信制御装置のシステム構成を示すブロック図である。
以下、その構成を動作と併せて説明する。
図1において、通信ミドルウェア101は、動作データ記憶機能部107、データ列108、通信相手記憶機能部(通信相手特定手段)109、動作データ比較機能部110、出力レベル制御機能部111、関連コンポーネント出力レベル制御機能部112を備える。出力レベル制御機能部111は、コンポーネントによる動作データの出力レベルをコンポーネント毎に任意に制御する。
通信ミドルウェア101上に複数のコンポーネント102、103が動作している。コンポーネント102は動作データ104を出力し、出力された動作データ104は動作データ保存機能部105によって任意の場所に保存される。
ここで、コンポーネント102は、動作しているコンポーネントのうち、コンポーネント特定機能部106により、実行時の動作データを監視する対象となるコンポーネントとして特定されたコンポーネントである。
コンポーネント102が動作中に出力する動作データ104は、動作データ記憶機能部107によってデータ列108に記憶される。このデータ列108から通信相手記憶機能部109によってコンポーネント102の通信相手たるコンポーネントが抽出され、記憶される。ここでコンポーネント(コンポーネント群)103は通信相手記憶機能部109によって記憶されたコンポーネントである。
システムの動作中においては、データ列108と、コンポーネント特定機能部106によって特定されたコンポーネント102の出力する動作データ104が動作データ比較機能部110によって比較される。
そして、比較結果に応じて、コンポーネント102に対しては出力レベル制御機能部111が、コンポーネント103に対しては関連コンポーネント出力レベル制御機能部112が、それぞれ動作データの出力レベル(動作データ出力の詳細レベル)を制御する。
また、コンポーネント特定機能部106は、システムのソフトウェア異常発生時に異常の発生したコンポーネントを特定コンポーネントとする。また、動作データ記憶機能部107は、異常発生時の近傍の、異常発生コンポーネントにおける動作データを記憶する。
また、関連コンポーネント出力レベル制御機能部112は、動作データ比較機能部110によって現在実行中の出力が異常発生時の出力と類似していると判定された場合には、以下のように制御する。即ち、関連コンポーネント出力レベル制御機能部112は、異常発生コンポーネントと通信相手記憶機能部109によって記憶された通信相手のコンポーネントに対して動作データの出力の詳細レベルを上昇させる。
また、動作データ比較機能部110によって現在実行中の出力が異常発生時の出力と類似していないと判定された場合には、関連コンポーネント出力レベル制御機能部112は、以下のように制御する。即ち、関連コンポーネント出力レベル制御機能部112は、異常発生コンポーネントと通信相手記憶機能部109によって記憶された通信相手のコンポーネントに対して動作データ出力の詳細レベルを下降させる。
また、関連コンポーネント出力レベル制御機能部112は、動作データ比較機能部110によって現在実行中の出力が正常動作時(所定動作状態)の出力と異なると判定された場合には、以下のように制御する。即ち、関連コンポーネント出力レベル制御機能部112は、異なる動作データを出力したコンポーネントと通信相手記憶機能部109によって記憶された通信相手のコンポーネントに対して動作データの出力の詳細レベルを上昇させる。
また、動作データ比較機能部110によって現在実行中の実行状態が正常状態と等しくなったと判定された場合には、関連コンポーネント出力レベル制御機能部112は、以下のように制御する。即ち、当該コンポーネントと通信相手記憶機能部109によって記憶された通信相手のコンポーネントに対して動作データ出力の詳細レベルを下降させる。
また、出力レベル制御機能部111は、特定コンポーネント、特定コンポーネントの通信相手コンポーネント以外の事前に指定されたコンポーネントに対しても、特定コンポーネントの出力レベル上昇及び下降に連動して出力レベル制御を行う。即ち、出力レベル制御機能部111は、個別指定出力レベル制御機能を有する。
図2は、図1の通信制御装置における同一マシン内の通信時のシステム構成図である。
尚、図2以下において、通信ミドルウェア、コンポーネントは、図番に対応した符号を付すものとする。
マシンA201上に通信ミドルウェア202が動作しており、通信ミドルウェア202上に配置されたコンポーネント203とコンポーネント204が通信を行っている。この通信は、具体的には共有メモリを用いたプロセス間通信や、ヒープ等を用いたプロセス内の通信に相当する。
図3は、図1の通信制御装置における異なるマシンに配置されたコンポーネント間の通信を行う際のシステム構成図である。
マシンA301とマシンB302が通信路303によって接続されており、このシステム上に通信ミドルウェア304が動作している。通信路303の具体例としては、TCP/IPによるネットワークや、PCIのようなローカルバスが考えられる。
このような状況下で、マシンA301上に配置されたコンポーネント305とマシンB302上に配置されたコンポーネント306が通信ミドルウェア304を介して通信を行っている。この通信は実際には通信路303を使って実現されている。
図4は、図1の通信制御装置における定常運転時の第1の実施の形態のシステム構成図である。
通信ミドルウェア401を介してソフトウェアコンポーネント402や403が相互に通信を行うことによって、本システムは動作している。
コンポーネント402は、動作時にはコンポーネントの動作状況を表すログ404をディスク装置上のファイルとして出力している。コンポーネント402にソフトウェア障害が発生すると、ログ記憶機能部405によって障害発生時点近傍のログは障害発生時ログ配列406として通信ミドルウェア401内に記憶される。障害の原因を調査するために、コンポーネント402を再び動作させて障害の原因を調査する。
図5は、図1の通信制御装置における障害再現時の第1の実施の形態のシステム構成図である。
コンポーネント502は、障害が発生したコンポーネントである。コンポーネント502は、通信ミドルウェア501を介してコンポーネント503と通信を行っている。ここでは、障害発生時近傍のログ配列中に存在する通信ログにおいて、コンポーネント502の通信相手として記録されているコンポーネントを、コンポーネント502と通信を行っているコンポーネントと定義している。同時にシステムには、コンポーネント502と直接通信は行わないコンポーネント(コンポーネント群)504も存在している。
再現動作時には、コンポーネント502及びコンポーネント503はログ505をそれぞれディスク装置上のファイルとして出力している。ここで、通信ミドルウェア501には、障害発生時の近傍における障害発生時ログ配列506が記憶されている。
システムが動作を開始したら、ログ比較機能部507は、障害が発生したコンポーネント502が出力するログ505と、障害発生時の近傍ログ配列506をリアルタイムに比較し、コンポーネント502が障害発生時の状態に近いかどうかを判定する。具体的な本実施の形態の動作アルゴリズムについては、図9で後述する。
判定の結果、現在出力中のログ505が障害発生時のログに近似していることが判明したら、ログレベル制御機能部508がコンポーネント502のログ出力レベルを上昇させ、詳細なログを出力するようにする。同時に、ログ比較機能部507は、ログレベル制御機能部508を用いてコンポーネント502の通信相手であるコンポーネント503のログ出力レベルを上昇させる。
同様に、判定の結果、現在出力中のログ505が障害発生時のログに近似していないことが判明したら、ログレベル制御機能部508がコンポーネント502のログ出力レベルを下降させ、重要なログのみを出力するようにする。同時に、ログレベル制御機能部508は、コンポーネント502の通信相手であるコンポーネント503のログ出力レベルを下降させる。
図6は、図1の通信制御装置におけるログ出力レベルの例を示す図表である。
詳細度レベル「LOG」601は、最も重要なログであり、コンポーネント間の通信など、システム全体の動作状態を記録しておくためのログである。本発明において、異常時に近傍の通信相手記憶機能部109が通信相手を抽出するために使用する通信ログはこのレベルに含まれる。
詳細度レベル「FATAL」602は、次に重要なログであり、OSのカーネル資源不足などに起因する、システムコールのエラーなどソフトウェアコンポーネントでは復帰不能なエラーを記録しておくログである。
詳細度レベル「ERROR」603は、3番目に重要なログであり、通信路のエラーなど、ソフトウェアコンポーネントで復帰処理を行わなければならない、異常系を表すログである。
詳細度レベル「WARNING」604は、4番目に重要なログであり、排他処理のタイムアウトなど、正常系の処理でも起こりうるエラーを記録しておくログである。
詳細度レベル「DEBUG」605は、最も詳細なログであり、内部関数のエラーや、関数呼び出し時の引数の出力など、障害調査やデバッグを行う際の情報を出力するためのログである。
図7は、図1の通信制御装置における定常運転時に、重要なログのみが出力されている状態のイメージ図である。
通信ミドルウェア701上にはコンポーネントA702、コンポーネントB703、コンポーネントC704及びその他のコンポーネント(コンポーネント群)705が存在し、それぞれが自身の動作状態を表すログ706、707、708、709を出力している。
本実施の形態においては、コンポーネント特定機能として、障害が発生したコンポーネントを特定コンポーネントとして扱う。
図7においては、コンポーネントA702が障害の発生したコンポーネントである。コンポーネントA702においてソフトウェア障害が発生すると、図4のログ記憶機能部405によってコンポーネントA702の障害発生時近傍でのログ配列が障害発生時ログ配列406に記憶される。
ここで、コンポーネントA702が出力したログ706のうちコンポーネント間通信を行ったログに着目する。図7においては、コンポーネントA702からB703への通信を通信A→B、コンポーネントC704からA702への通信を通信C→Aと表記している。
この場合、障害発生時ログ配列におけるコンポーネントA702の通信相手はコンポーネントB703及びコンポーネントC704となる。これら2つのコンポーネントが図5における障害発生コンポーネント502の通信相手コンポーネント503に該当することになる。
図8は、図1の通信制御装置における障害再現時に重要なログのみが詳細に出力され、その他のログは重要なものだけが出力されている状態のイメージ図である。
図7と同様に、通信ミドルウェア801上にはコンポーネントA802、コンポーネントB803、コンポーネントC804及びその他のコンポーネント(コンポーネント群)805が存在する。そして、それぞれが自身の動作状態を表すログ806、807、808、809を出力している。
障害発生コンポーネントに当たるコンポーネントA802、及び通信相手コンポーネントに当たるコンポーネントB803、C804においては、障害発生時の近傍で詳細なログ806、807、808が出力される。その他のコンポーネント805では定常運転時と同じく重要なログ809のみが出力されている。
このように本実施の形態によって、障害再現後にログによる解析を行う際に重要な、障害発生コンポーネント及びその通信相手コンポーネントの障害発生時点近傍での詳細なログを取得することができる。
さらに、解析に重要でないと考えられる障害発生コンポーネントと通信を行わない多数のコンポーネント群に関しては、定常運転時と同様に重要なログのみを出力させることができる。従って、効果的な障害解析と、システム全体のログ出力量の抑制を両立させることができる。
図9は、障害再現時に図5の通信ミドルウェアが行う障害再現実行処理の手順をフローチャートである。以下、このフローチャートに沿って、実際の運用時の制御フローを説明する。
まず、障害の再現実行が開始されると(ステップS901)、この時点では障害発生コンポーネントは重要なログのみを出力している(ステップS902)。
ログが出力され始めると、ログ比較機能部507によって、障害発生コンポーネントが出力したログと通信ミドルウェア内に記憶されている障害発生時ログ配列506とが比較される(ステップS903)。
この比較では、ある閾値Xを予め設定しておき、障害発生コンポーネントが最近出力したログX個と、障害発生時ログ配列506の先頭X個のログを比較し、一致していたら近似していると判定する。
図10は、図9のステップS903におけるログ配列の比較方法を示すイメージ図である。
図10では、閾値Xを3とおき、障害発生コンポーネントから最近出力された3つのログ「ABC」「DEF」「GHI」と障害発生時近傍ログの先頭3つのログ「ABC」「DEF」「GHI」を比較している。これらのログが一致しているため、出力中のログが障害発生時のログに近似していると判定している例である。
図9の説明に戻る。ステップS903において、出力中のログが障害発生時のログと近似していないと判定されたら、ステップS902に戻って実行を継続する。近似していると判定されたなら、障害発生コンポーネントのログ出力レベルを上昇させ、詳細なログを出力するようにする(ステップS904)。同時に、障害発生時近傍ログに含まれる通信相手コンポーネントに対してログ出力レベルを上昇させる要求を行う(ステップS905)。
ログ出力レベルが上昇した状態では、コンポーネントは重要なログだけでなく詳細なログも出力する(ステップS906)。この状態では、ログが出力されるたびに、定常運転時と同じ障害が発生したかどうか障害発生コンポーネントを監視する(ステップS907)。障害が再現したならば、これまでに出力された詳細なログを解析して障害の原因を調査することになり、本処理は終了である。
障害が発生したことを判定する方法としては、前回障害発生時に障害発生のログが明確に出力されていた場合は同じ障害発生ログが出力されることで判定する方法がある。あるいは、システムが異常終了する、システムが停止してしまうなどの状況に陥ってしまい人間が障害再現を判定する場合も考えられる。
障害が発生しない間は、障害発生コンポーネントは変わらずログを出力し続ける(ステップS908)。フローチャートでは便宜上重要ログと記載してあるが、このタイミングで詳細ログが出力されることも当然ありうる。
ステップS908のように、障害が発生しない状態で重要ログが出力された場合、ステップS903と同様の比較を行い、出力中のログが障害発生時のログと近似しているかを判定する(ステップS909)。
ここで判定に使用する閾値Yは、事前に設定した閾値に、ログ出力レベル上昇中(ステップS903〜ステップS909)に出力された重要ログの数を足した値である。該区間において重要ログが3つ出力されていたならば、ステップS909における閾値YはX+3に等しい。
ステップS909において、出力中のログが障害発生時のログと近似していると判定されたら、ログレベルを上昇させたまま実行を継続する。即ち、ステップS906に戻る。逆に、ステップS909において、出力中のログと障害発生時のログが近似していないと判定された場合は、障害発生コンポーネントのログ出力レベルを下降させ、重要なログのみを出力する状態に戻す(ステップS910)。
同時に、障害発生時近傍ログに含まれる通信相手コンポーネントに対しても、ログ出力レベルを下降させる要求を行い(ステップS911)、再びステップS902に戻って障害再現を続行する。
以上のように、障害が発生したコンポーネントの障害原因を解析するために、該当コンポーネント及びその通信相手のコンポーネントにおいて必要な期間のみ詳細なログを出力し、それ以外の期間・それ以外のコンポーネントでは重要なログのみを出力する。これにより、効果的な障害解析と、システム全体のログ出力量の抑制とを両立させることができる。
本実施の形態では、動作データとしてディスク装置上のファイルに出力されるログを仮定したが、本発明の実施については、揮発性メモリ上に出力されるログ、あるいは動作履歴などの出力手段を用いても構わない。
また、本実施の形態では、ステップS905及びステップS911において、通信相手コンポーネントに対してログ出力レベルの変更を要求していた。しかし、通信相手コンポーネント以外の、予め指定しておいた特定コンポーネントに対してもログ出力レベルの変更を要求しても構わない。これは、障害発生コンポーネントと直接通信を行ってはいないが、システムの動作にとって特に重要なコンポーネントが予めわかっている場合には有用である。
図11は、図1の通信制御装置における定常運転時の第2の実施の形態のシステム構成図である。
図11においては、ログ記憶機能として異常が発生した場合のログを記憶しておくのではなく、正常に動作している場合のログを記憶する。
通信ミドルウェア1101を介してソフトウェアコンポーネント1102や1103が相互に通信を行うことによって、本システムは動作している。
コンポーネント1102は、システム全体の動作にとって特に重要なコンポーネントであって、本発明による監視対象となる特定コンポーネントとして指定されているものとする。動作時にはコンポーネントの動作状況を表すログ1104をディスク装置上のファイルとして出力している。
まず、コンポーネント1102を一定期間に亘って動作させる。そこでシステムが正常に動作したと判定された場合は、出力されたログはログ記憶機能部1105によって正常動作時ログ配列1106として通信ミドルウェア1101内に記憶される。
図12は、図1の通信制御装置における障害再現時の第2の実施の形態のシステム構成図である。
図12においては、ログ比較機能は、ログ記憶機能によって記憶された障害発生時のログと比較するのではなく、正常動作時のログと比較を行う。
コンポーネント1202は、監視の対象となる特定コンポーネントである。コンポーネント1202は、通信ミドルウェア1201を介してコンポーネント1203と通信を行っている。
ここでは、正常動作時のログ配列中に存在する通信ログにおいて、コンポーネント1202の通信相手として記録されているコンポーネントを、コンポーネント1202と通信を行っているコンポーネントと定義している。システムには、コンポーネント1202と直接通信は行わないコンポーネント(コンポーネント群)1204も存在している。
再現動作時には、コンポーネント1202及びコンポーネント1203はログ1205をそれぞれディスク装置上のファイルとして出力している。ここで、通信ミドルウェア1201には正常動作時における正常動作時ログ配列1206が記憶されている。
システムが動作を開始したら、ログ比較機能部1207は特定のコンポーネント1202が出力するログ1205と、正常動作時ログ配列1206をリアルタイムに比較し、コンポーネント1202が正常動作時の状態と等しいかどうかを判定する。
判定の結果、現在出力中のログ1205が正常動作時のログと異なっていることが判明したら、ログレベル制御機能部1208がコンポーネント1202のログ出力レベルを上昇させ、詳細なログを出力するようにする。さらに、ログ比較機能部1207は、ログレベル制御機能部1208を用いてコンポーネント1202の通信相手であるコンポーネント1203のログ出力レベルを上昇させる。
同様に、判定の結果、現在出力中のログ1205が正常動作時のログに等しいことが判明したら、ログレベル制御機能部1208がコンポーネント1202のログ出力レベルを下降させ、重要なログのみを出力するようにする。さらに、ログレベル制御機能部1208は、コンポーネント1202の通信相手であるコンポーネント1203のログ出力レベルを下降させる。
図13は、図12の通信ミドルウェアが行うジョブ実行処理の手順を示すフローチャートである。以下、このフローチャートに沿って、実際の運用時の制御フローを説明する。
まず、ジョブの実行が開始されると(ステップS1301)、この時点では特定コンポーネントは重要なログのみを出力している(ステップS1302)。
この時点でジョブの実行が終了したら(ステップS1303)、本処理は終了である。
ログが出力され始めると、ログ比較機能部1207によって、特定コンポーネントが出力したログと通信ミドルウェア内に記憶されている正常動作時ログ配列1206とが比較される(ステップS1304)。この比較では、ある閾値Xを予め設定しておき、障害発生コンポーネントが最近出力したログX個と、正常動作時ログ配列1206の先頭X個のログを比較し、一致していたら近似していると判定する。
ここで、出力中のログが正常動作時のログと一致していると判定されたら、ステップS1302に戻って実行を継続する。異なっていると判定されたなら、特定コンポーネントのログ出力レベルを上昇させ、詳細なログを出力するようにする(ステップS1305)。同時に、正常動作時ログ配列1206に含まれる通信相手コンポーネントに対してログ出力レベルを上昇させる要求を行う(ステップS1306)。
ログ出力レベルが上昇した状態では、コンポーネントは重要なログだけでなく詳細なログも出力する(ステップS1307)。この状態では、ログが出力されるたびに、ソフトウェアに何らかの障害が発生したかどうかを監視する(ステップS1308)。
障害が発生したならば、これまでに出力された詳細なログを解析して障害の原因を調査することになり、本処理は終了である。障害が発生したことを判定する方法としては、コンポーネントが出力するログ中に障害発生を表すログが明確に出力される、あるいはシステムが異常終了する、システムが停止してしまうなどの状況に陥ってしまい人間が障害再現を判定する方法などが考えられる。
障害が発生しない間は、コンポーネントは変わらずログを出力し続ける(ステップS1309)。フローチャートでは便宜上重要ログと記載してあるが、このタイミングで詳細ログが出力されることも当然ありうる。
ステップS1309のように障害が発生しない状態で重要ログが出力された場合、ステップS1304と同様の比較を行い、出力中のログが正常運転時のログと一致しているかを判定する(ステップS1310)。
ステップS1310において、出力中のログが正常運転時のログと異なっていると判定されたらステップS1307に戻り、ログレベルを上昇させたまま実行を継続する。
逆に、ステップS1310の判定の結果、出力中のログと正常時のログが一致していると判定された場合は、コンポーネントのログ出力レベルを下降させ、重要なログのみを出力する状態に戻す(ステップS1311)。同時に、正常動作時ログ配列1206に含まれる通信相手コンポーネントに対しても、ログ出力レベルを下降させる要求を行い(ステップS1312)、再びステップS1302に戻ってジョブの実行を続行する。
以上のように、あるジョブの実行時においてソフトウェアの障害が発生した場合に、当該ジョブが正常に実行された場合のログ配列と異なったログが出力されている期間のみ詳細なログを出力し、それ以外の期間では重要なログのみを出力する。これにより、効果的な障害解析と、システム全体のログ出力量の抑制を両立させることができる。
101 通信ミドルウェア
102 コンポーネント
103 コンポーネント群
104 動作データ
105 動作データ保存機能部
106 コンポーネント特定機能部
107 動作データ記憶機能部
108 データ列

Claims (4)

  1. 複数のコンポーネント間の通信を制御する通信制御装置において、
    監視対象となる特定コンポーネントにおける、実行時の動作データを記憶しておく動作データ記憶手段と、
    前記動作データ記憶手段に記憶されたデータ列から、前記特定コンポーネントの通信相手のコンポーネントを特定する通信相手特定手段と、
    前記動作データ記憶手段に記憶された所定動作状態におけるデータ列と、前記特定コンポーネントが実行時に出力するデータとを比較する比較手段と、
    前記比較手段による比較結果に応じて、前記特定コンポーネントと前記通信相手特定手段によって特定された通信相手のコンポーネントとに対して、動作データ出力の詳細レベルを制御する出力レベル制御手段と、
    を備えることを特徴とする通信制御装置。
  2. システムのソフトウェア異常発生時に異常の発生したコンポーネントを前記特定コンポーネントとして特定するコンポーネント特定手段を有し、
    前記動作データ記憶手段は、異常発生時の近傍の、異常発生コンポーネントにおける動作データを記憶し、
    前記出力レベル制御手段は、前記比較手段によって異常発生時と現在実行中の出力が類似していると判定された場合には、異常発生コンポーネントと前記通信相手特定手段によって特定された通信相手のコンポーネントに対して動作データの出力の詳細レベルを上昇させ、前記比較手段によって異常発生時と現在実行中の出力が類似していないと判定された場合には、異常発生コンポーネントと前記通信相手特定手段によって記憶された通信相手のコンポーネントに対して動作データ出力の詳細レベルを下降させることを特徴とする請求項1記載の通信制御装置。
  3. 前記動作データ記憶手段は、システムの正常動作時における動作データを記憶し、
    前記出力レベル制御機能手段は、前記比較手段によって正常動作時と現在実行中の出力が異なると判定された場合には、異なる動作データを出力したコンポーネントと前記通信相手特定手段によって特定された通信相手のコンポーネントに対して動作データの出力の詳細レベルを上昇させ、前記比較手段によって現在実行中の実行状態が正常状態と等しくなったと判定された場合には、当該コンポーネントと前記通信相手特定手段によって特定された通信相手のコンポーネントに対して動作データ出力の詳細レベルを下降させることを特徴とする請求項1記載の通信制御装置。
  4. 前記出力レベル制御手段は、特定コンポーネント及び特定コンポーネントの通信相手コンポーネント以外の事前に指定されたコンポーネントに対しても、前記特定コンポーネントの出力レベル上昇及び下降に連動して出力レベル制御を行うことを特徴とする請求項1記載の通信制御装置。
JP2009138235A 2009-06-09 2009-06-09 通信制御装置 Expired - Fee Related JP5377094B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009138235A JP5377094B2 (ja) 2009-06-09 2009-06-09 通信制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009138235A JP5377094B2 (ja) 2009-06-09 2009-06-09 通信制御装置

Publications (2)

Publication Number Publication Date
JP2010286889A true JP2010286889A (ja) 2010-12-24
JP5377094B2 JP5377094B2 (ja) 2013-12-25

Family

ID=43542570

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009138235A Expired - Fee Related JP5377094B2 (ja) 2009-06-09 2009-06-09 通信制御装置

Country Status (1)

Country Link
JP (1) JP5377094B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013206117A (ja) * 2012-03-28 2013-10-07 Fujitsu Ltd ログ出力装置、ログ出力方法およびログ出力プログラム
CN104123334A (zh) * 2013-04-24 2014-10-29 波音公司 监管链信息中的异常检测
JP2016057971A (ja) * 2014-09-11 2016-04-21 富士ゼロックス株式会社 情報処理システム、プログラム及び情報処理装置
WO2016098142A1 (ja) * 2014-12-18 2016-06-23 三菱電機株式会社 産業コントローラおよび産業コントローラシステム
JP2019041247A (ja) * 2017-08-25 2019-03-14 Kddi株式会社 情報処理装置、情報処理方法、及び情報処理プログラム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11327965A (ja) * 1998-05-19 1999-11-30 Nissin Electric Co Ltd アプリケーションのログレベルの動的変更方法
JP2003108406A (ja) * 2001-09-27 2003-04-11 Nippon Telegr & Teleph Corp <Ntt> ログ制御方法及びログ制御プログラム及びログ制御プログラムを組み込んだアプリケーションプログラムを格納した記憶媒体
JP2006236231A (ja) * 2005-02-28 2006-09-07 Canon Inc エラーログの詳細度自動変更装置
JP2007257613A (ja) * 2006-12-19 2007-10-04 Nec Corp 障害影響範囲特定システム、プロセスインスタンス動作追跡方法、障害影響範囲特定方法及びそのプログラム
JP2009110156A (ja) * 2007-10-29 2009-05-21 Sharp Corp ログ出力装置及びログ出力プログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11327965A (ja) * 1998-05-19 1999-11-30 Nissin Electric Co Ltd アプリケーションのログレベルの動的変更方法
JP2003108406A (ja) * 2001-09-27 2003-04-11 Nippon Telegr & Teleph Corp <Ntt> ログ制御方法及びログ制御プログラム及びログ制御プログラムを組み込んだアプリケーションプログラムを格納した記憶媒体
JP2006236231A (ja) * 2005-02-28 2006-09-07 Canon Inc エラーログの詳細度自動変更装置
JP2007257613A (ja) * 2006-12-19 2007-10-04 Nec Corp 障害影響範囲特定システム、プロセスインスタンス動作追跡方法、障害影響範囲特定方法及びそのプログラム
JP2009110156A (ja) * 2007-10-29 2009-05-21 Sharp Corp ログ出力装置及びログ出力プログラム

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013206117A (ja) * 2012-03-28 2013-10-07 Fujitsu Ltd ログ出力装置、ログ出力方法およびログ出力プログラム
CN104123334A (zh) * 2013-04-24 2014-10-29 波音公司 监管链信息中的异常检测
JP2014216018A (ja) * 2013-04-24 2014-11-17 ザ・ボーイング・カンパニーTheBoeing Company 連鎖管理情報内の異常検出
CN104123334B (zh) * 2013-04-24 2019-05-28 波音公司 监管链信息中的异常检测
JP2016057971A (ja) * 2014-09-11 2016-04-21 富士ゼロックス株式会社 情報処理システム、プログラム及び情報処理装置
WO2016098142A1 (ja) * 2014-12-18 2016-06-23 三菱電機株式会社 産業コントローラおよび産業コントローラシステム
JP2019041247A (ja) * 2017-08-25 2019-03-14 Kddi株式会社 情報処理装置、情報処理方法、及び情報処理プログラム

Also Published As

Publication number Publication date
JP5377094B2 (ja) 2013-12-25

Similar Documents

Publication Publication Date Title
US7398514B2 (en) Test automation stack layering
CN107948744B (zh) 接口检测方法、接口检测设备及计算机可读存储介质
JP5377094B2 (ja) 通信制御装置
CN108459951B (zh) 测试方法和装置
CN109388622B (zh) 一种日志信息处理方法、装置、设备及可读存储介质
CN104572422A (zh) 一种基于Linux系统开关机下内存监测实现方法
CN111522703B (zh) 监控访问请求的方法、设备和计算机程序产品
CN104246714A (zh) 软件缺陷验证
KR100937689B1 (ko) 사용자 환경 프로파일링에 기반을 두어 테스트 대상소프트웨어의 테스트를 지원하는 시뮬레이션 방법
CN112115038A (zh) 一种应用测试方法、装置和存储介质
US20160203037A1 (en) Second Failure Data Capture in Co-Operating Multi-Image Systems
CN107516546B (zh) 一种随机存储器的在线检测装置及方法
US8762781B2 (en) Method and apparatus useful in manufacturing test case operations
JP2010256997A (ja) フィールドトラブルのエラー再現システム、エラー再現調査方法およびシナリオ実行プログラム
CN110908903B (zh) 一种基于可编辑yaml文件的测试方法
CN107844395B (zh) 一种reboot测试控制方法及系统
JP2007207213A (ja) ワイヤレスデバイスのリアルタイム診断に適用する診断情報収集手法
CN115391110A (zh) 存储设备的测试方法、终端设备及计算机可读存储介质
CN115757138A (zh) 脚本异常原因的确定方法、装置、存储介质以及电子设备
KR101166128B1 (ko) 소프트웨어 테스트 장치 및 그 방법
CN110489286B (zh) 一种box节点机电源均流测试方法及系统
JP2007328447A (ja) ソフトウェア試験項目選択装置、ソフトウェア試験項目選択プログラム、ソフトウェア試験項目選択プログラムが格納された記憶媒体およびソフトウェア試験項目選択方法
JP5432674B2 (ja) 監視装置及び対象システムコールを呼び出している関数の抽出方法
CN111666168B (zh) 一种自动记录测试异常的方法及终端
CN117312037A (zh) 内存修复方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120608

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130821

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130827

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130924

R151 Written notification of patent or utility model registration

Ref document number: 5377094

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees