JP2010152838A - 画像形成装置、制御方法、およびプログラム - Google Patents
画像形成装置、制御方法、およびプログラム Download PDFInfo
- Publication number
- JP2010152838A JP2010152838A JP2008332903A JP2008332903A JP2010152838A JP 2010152838 A JP2010152838 A JP 2010152838A JP 2008332903 A JP2008332903 A JP 2008332903A JP 2008332903 A JP2008332903 A JP 2008332903A JP 2010152838 A JP2010152838 A JP 2010152838A
- Authority
- JP
- Japan
- Prior art keywords
- log
- memory
- recording
- unit
- failure
- 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.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
【課題】本発明は、MFPの性能にほとんど影響を及ぼすことなく、障害解析に最低限必要なログを確実に記録することができる画像形成装置、制御方法、およびプログラムを提供することを目的とする。
【解決手段】ログをその重要度によって分類し、重要度が高いログはハードディスクに直接記録する一方、重要度が低いログについては、メモリ上に循環して記録させる2種類の記録方式を採用する。また、システム内で障害が発生した場合、障害に関連するプロセスに係るログのみをメモリから読み出し、これをハードディスクに書き出す。このような構成を採用することによって、平常時のログ記録は、処理速度の速いメモリ記録であるためMFPの性能にほとんど影響を与えず、障害発生時には、障害解析に必要なデバッグレベルのログが確実に保存される。
【選択図】図1
【解決手段】ログをその重要度によって分類し、重要度が高いログはハードディスクに直接記録する一方、重要度が低いログについては、メモリ上に循環して記録させる2種類の記録方式を採用する。また、システム内で障害が発生した場合、障害に関連するプロセスに係るログのみをメモリから読み出し、これをハードディスクに書き出す。このような構成を採用することによって、平常時のログ記録は、処理速度の速いメモリ記録であるためMFPの性能にほとんど影響を与えず、障害発生時には、障害解析に必要なデバッグレベルのログが確実に保存される。
【選択図】図1
Description
本発明は、画像形成装置のログデータ管理に関し、より詳細には、画像形成装置の性能を低下することなく、障害解析に最低限必要なログを確実に記録することができる画像形成装置、制御方法、およびプログラムに関する。
近年、MFP(Multi Function Peripheral)の高性能化・高機能化に伴って、障害時の解析のための多大なデバッグログが短時間に出力されるようになった。従来、このようなログは、MFPの印刷ジョブ等の基本処理を妨害しないように、記録速度が速いRAM等のメモリに記録されることが多い。しかし、一般にRAM等のメモリは記憶容量が小さいことから、ログの記録処理は循環式を採用しており、メモリ上の古いログが新しいログによって順次上書き消去されてしまっていた。このため、仮に、このように上書き消去されたログの中に、障害に係る重大な情報が含まれていた場合、障害時の解析ができなくなってしまうという問題があった。
この点につき、特開2000−148430号公報(特許文献1)は、プリンタのメモリに格納したログファイルを、大記憶容量かつ長期保存が可能なハードディスク装置に書き換えることにより、大量のログファイルの保存を可能にしたプリンタメンテナンスシステムを開示する。
しかし、このような構成をMFPに適用した場合、メモリに格納したログをハードディスクに記録する処理をMFPの基本処理よりも優先させると、そのタイミングによっては、MFPの性能に大きな影響を及ぼしてしまう。一方、MFPの印刷出力制御のリアルタイム性を担保すべく、ログの書き出しよりもMFPの基本処理を優先させると、今度は、その間に古いログが上書きされてしまい、ログデータのとりこぼしが発生するという二律背反が生じてしまう。
この点につき、特開2008−166899号公報(特許文献2)は、メモリ上のログをハードディスクに書き換える際、MFPの基本処理と競合する場合には、そのログを不揮発メモリであるNVRAMに一時的に退避した後、基本処理が終了した後に改めてハードディスクに書き換えることにより、MFPの印刷パフォーマンスを低下させることなく、ログをもれなく保存することのできる装置を開示する。
しかし、特許文献2が開示する構成においても、仮に、MFPの基本処理と競合するタイミングでNVRAMの容量を超える多量のログ書き出しが実行された場合には、特許文献1に開示された構成と同様に、ログの一部が上書き消去されて失われる可能性が依然として残るものであった。
また、特許文献1および特許文献2は、いずれも、全てのログを無選別にハードディスクに書き換える構成を採用しているため、障害解析時に、ハードディスク装置に記録された大量のログの中から障害解析に必要なログを探し出すことは、多大な労力を要する作業であった。
特開2000−148430号公報
特開2008−166899号公報
本発明は、上記従来技術における課題に鑑みてなされたものであり、本発明は、MFPの性能にほとんど影響を及ぼすことなく、障害解析に最低限必要なログを確実に記録することができる画像形成装置、制御方法、およびプログラムを提供することを目的とする。
本発明者は、MFPの性能にほとんど影響を及ぼすことなく、障害解析に最低限必要なログを確実に記録することができる画像形成装置につき鋭意検討した結果、ログをその重要度によって分類し、重要度が高いログはハードディスクに直接記録する一方、重要度が低いログについては、メモリ上に循環して記録させるという二種類の記録方式を採用し、さらに、循環メモリに記録されるログのうち、障害に関連するプロセスに係るログのみをハードディスクに書き出す構成を見出し、本発明に至ったのである。
本発明においては、ログに重要度を付与し、その重要度が高いものについては基本的にハードディスクに記録する。これらのログは少量であるため、MFPの性能にほとんど影響を与えない。一方、重要度の低いログについては、プロセスごとに設けられた循環メモリに記録する。システム内でエラーが発生した場合、エラーに関連するプロセスに係るログのみをメモリから読み出し、これをハードディスクに書き出す。このような構成を採用することによって、平常時のログ記録は、処理速度の速いメモリ記録であるためMFPの性能にほとんど影響を与えず、障害発生時には、障害解析に必要なデバッグレベルのログが確実に保存される。さらに、障害解析に必要なログしか記録しないため、後の障害解析時において必要なログを探し出す労力を大幅に軽減することが可能となる。
すなわち、本発明によれば、装置のジョブ履歴をログデータとして保存するログ保存手段を備える画像形成装置であって、前記ログ保存手段は、装置内で実行される各プロセスから重要度の高低が予め定義されたログの記録要求を受信するログ受信部と、高重要度が定義されたログについては記録先としてハードディスクを選択し、低重要度が定義されたログについては記録先としてメモリを選択するログ記録先振分部と、前記ハードディスクが記録先として選択された前記ログをハードディスクに記録するハードディスク記録部と、前記メモリが記録先として選択された前記ログをプロセス毎にメモリに記録するメモリ記録部と、前記装置内で障害が発生したプロセスを特定して通知する障害発生プロセス通知部と、前記通知に応答して、前記障害が発生したプロセスおよび該プロセスと依存関係にあるプロセスのログのみを前記メモリから読み出し、当該読み出されたログを前記ハードディスクに書き出すログ移管部とを含む、画像形成装置が提供される。本発明においては、前記ログ保存手段は、さらに、前記装置内で実行されるプロセス間通信を監視し、該プロセス間通信の呼び手と受け手とを対応付けて記憶するためのプロセス間通信管理部を含むことができ、さらに、前記障害が発生したプロセスおよび該プロセスと依存関係にあるプロセスのリストを作成するプロセス間依存リスト作成部を含むことができる。本発明においては、前記メモリは、プロセス毎に割り当てられたログ記憶領域を備え、前記メモリ記録部は、前記ログ記憶領域をメモリ上に割り当てるためのメモリ管理テーブルを作成するメモリ管理部を含むことができ、前記メモリ管理テーブルは、前記ログ記憶領域のメモリサイズとプロセス名を対応付けて格納するテーブルとすることができる。さらに、本発明においては、前記ログ移管部は、前記プロセス間依存リストと前記メモリ管理テーブルとを照合して、前記障害が発生したプロセスおよび該プロセスと依存関係にあるプロセスを特定し、特定したプロセスに係るログを前記メモリから読み出すことができる。
また、本発明によれば、画像形成装置に対して、装置のジョブ履歴をログデータとして保存する処理を実行させるためのコンピュータ実行可能な制御方法であって、該方法は、画像形成装置に対して、装置内で実行される各プロセスから重要度の高低が予め定義されたログの記録要求を受信するステップと、高重要度が定義されたログについては記録先としてハードディスクを選択し、低重要度が定義されたログについては記録先としてメモリを選択するステップと、前記ハードディスクが記録先として選択された場合には、前記ログをハードディスクに記録し、前記メモリが記録先として選択された場合には、前記ログをプロセス毎にメモリに記録するステップとを実行させ、前記装置内で障害が発生したプロセスを特定する通知を受領した場合には、障害が発生したプロセスおよび該プロセスと依存関係にあるプロセスのログを前記メモリから全て読み出し、当該読み出されたログを前記ハードディスクに書き出すログ移管ステップを実行させる、制御方法が提供される。本発明においては、前記装置内で実行されるプロセス間通信を監視し、該プロセス間通信の呼び手と受け手とを対応付けて記憶するステップをさらに含むことができ、前記障害が発生したプロセスおよび該プロセスと依存関係にあるプロセスのリストを作成するステップをさらに含むことができる。本発明においては、前記メモリは、プロセス毎に割り当てられたログ記憶領域を備え、前記メモリに記録するステップは、前記ログ記憶領域をメモリ上に割り当てるためのメモリ管理テーブルを作成するステップを含むことができ、前記メモリ管理テーブルは、前記ログ記憶領域のメモリサイズとプロセス名を対応付けて格納するテーブルとすることができる。また、本発明においては、前記ログ移管ステップは、前記プロセス間依存リストと前記メモリ管理テーブルとを照合して、前記障害が発生したプロセスおよび該プロセスと依存関係にあるプロセスを特定し、特定したプロセスに係るログを前記メモリから読み出すステップを含むことができる。
さらに、本発明によれば、コンピュータに対して、上記制御方法のステップを実行させるためのプログラムが提供される。
以下、本発明を、実施形態をもって説明するが、本発明は後述する実施形態に限定されるものではない。
本実施形態の画像形成装置は、CPU、RAM、ROM、ハードディスク装置を含んで構成されており、UNIX(登録商標)、LINUX(登録商標)などのOSにより制御され、操作パネルからのユーザ指令に応答して、コピー、ファクシミリ、イメージ・スキャナなどの機能をユーザに提供し、また、外部コンピュータからの入力に応答してネットワーク・プリンタやファクシミリとしても機能するMFPとして構成することができる。以下の説明においては、本実施形態の画像形成装置をMFPとして参照する。本実施形態のMFPは、上記複数の機能を提供するためのアプリケーション層を備えており、さらに、当該アプリケーション層から各ジョブに係るログの記録要求を受付け、障害解析に必要なログを確実に保存するためのログ保存手段を備えている。
図1は、本実施形態のMFPが備えるログ保存手段10の機能ブロック図を示す。本実施形態のログ保存手段10は、ログ受信部12、ログ記録先振分部14、メモリ記録部16、ハードディスク記録部18、プロセス間通信管理部20、障害発生通知部22、プロセス間依存リスト作成部24、およびログ移管部26を含んで構成されている。
まず、図1〜図4を参照して、本実施形態のログ保存手段10が実行するログ記録処理について、以下説明する。
ログ受信部12は、MFPのアプリケーション層からプロセス毎に送信されるログ記録要求を受信する。なお、本実施形態においては、各プロセスがログの重要度を指定し、当該ログの重要度を示す情報とログ本文とを記述したログ記録要求をログ受信部12に対して送信する。本実施形態においては、例えば、システム動作状態、ユーザ操作、通信状態等のプロセスに係るログなど、障害解析のために使用する蓋然性の高いログについては、その重要度を「高」として定義し、各モジュールのデバッグ専用ログ等については、その重要度を「低」として定義して指定することができる。ログ受信部12は、各プロセスからログ記録要求を受信すると、当該プロセスについてOSが割り当てたプロセスIDをログ記録要求に付加した上で、これをログ記録先振分部14に送信する。なお、本実施形態においては、ログ保存手段10に「プロセス名/重要度」の対応関係を記述したテーブルを設け、ログ受信部12が各プロセスからログ記録要求を受信する度に、上記テーブルを参照し、プロセス名に対応する重要度をログ記録要求に付加するという構成を採用することもできる。また、本実施形態においては、ログ記録要求をログ記録先振分部14に送信する前に、後の障害解析の便宜を図ってログのフォーマットを整形することが好ましい。
ログ記録先振分部14は、ログ記録要求の記述内容からそのログの重要度を判断し、その重要度に基づいて記録先を決定する。具体的には、ログ記録先振分部14は、重要度が「低」と記述されたログ記録要求をメモリ記録部16に送信し、重要度が「高」と記述されたログ記録要求をハードディスク記録部18に送信する。ログ記録先振分部14からログ記録要求を受信したハードディスク記録部18は、ログ記録要求からログ本文を取り出し、これをハードディスク28内に設けられたログ記憶領域に記録する。一方、ログ記録先振分部14からログ記録要求を受信したメモリ記録部16は、ログ記録要求からログ本文を取り出し、これをメモリ30内に設けられたログ記憶領域に記録する。以上、説明したログの記録処理について、図2を参照してより詳細に説明する。
図2は、本実施形態のMFPにおけるログ保存手段10が実行するログ記録処理のフローチャートを示す。まず、ステップ101において、MFPのアプリケーション層で実行されるプロセスからログ記録要求を受信すると、ステップ102に進み、受信したログ記録要求に当該プロセスのプロセスIDを付加する。次にステップ103において、ログ記録要求に含まれる情報に基づいてログの重要度が判定される。ステップ103において、ログの重要度が「高」と判定された場合には、ステップ104に進み、ハードディスク28のログ記憶領域にログ本文が記録される。なお、本実施形態においては、限定した一部のプロセスに係るログについてのみ、重要度を「高」と定義するので、ハードディスク28に直接書き込まれるログはごく少量であり、また、バッファなどのロギング機構を用いることによってMFPの基本処理と競合する時間を無視できるほど小さくすることができるので、MFPの性能にほとんど影響を与えない。
一方、ステップ103において、ログの重要度が「低」と判定された場合には、ステップ105に進み、メモリ30のログ記憶領域にログ本文が記録される。メモリ30は、高速なアクセスが可能な揮発性記憶媒体であるため、ステップ105の処理もMFPの性能にほとんど影響を与えない。なお、本実施形態におけるメモリ記録部16は、さらにメモリ管理部32を含む。メモリ管理部32は、メモリ管理テーブル34を管理し、メモリ管理テーブル34を使用して、メモリ30上にプロセス毎のログ記憶領域を割り当てる。
図3は、本実施形態におけるメモリ管理テーブル34を例示する。図3(a)に示されるように、メモリ管理テーブル34は、「プロセスID」、「プロセス名」、「メモリキー」、「メモリサイズ」の4つのフィールドを備えており、デフォルトでは、プロセス名とこれに対応するメモリサイズが格納されている。図3(a)に示される例においては、「プロセスXXX」に係るログについて割り当てられるメモリ30上のログ記憶領域のサイズが「500byte」であり、「プロセスYYY」に係るログについて割り当てられるメモリ30上のログ記憶領域のサイズが「100byte」であることが予め規定されている。なお、本実施形態においては、メモリ管理テーブル34は頻繁にアクセスされるためメモリ等の主記憶にキャッシュされることが好ましく、また、テーブルそのものを環境変数として設定することもできる。
以下、メモリ管理部32を含むメモリ記録部16が実行するログの記録処理について、図4に示すフローチャートをもとに、適宜、図3に示すメモリ管理テーブル34を参照しながら説明する。
図4は、本実施形態におけるメモリ記録部16が実行するログ記録処理のフローチャートを示す。メモリ記録部16がログ記録先振分部14からログ記録要求を受信すると、ステップ201において、メモリ管理部32がログ記録要求に記述されたプロセス名に基づき、メモリ管理テーブル34を参照する。次にステップ202において、プロセス名がメモリ管理テーブル34に存在しているか否かが判断される。例えばここで、ログ記録要求が仮に「プロセスZZZ」に係るものであった場合、プロセス名「ZZZ」はメモリ管理テーブル34しないと判断され(ステップ202、No)、ステップ203に進んで、そのログ記録要求は破棄された後、図2に示すメイン処理に戻って処理を終了する。上述したように、本実施形態によれば、全てのログについて自動的に記録するのではなく、必要なプロセスのみをメモリ管理テーブル34に登録することによって、そのログを選択的に保存することができる。
一方、例えば、ログ記録要求が「プロセスXXX」に係るものであった場合、ステップ202において、プロセス名「XXX」はメモリ管理テーブル34すると判断され(ステップ202、Yes)、ステップ204に進む。ステップ204においては、「プロセスXXX」についてログ記憶領域が割り当てられているか否かが判断される。図3(a)に示すデフォルトの状態においては、「プロセスXXX」についてログ記憶領域が割り当てられていないので(ステップ204、No)、ステップ205に進む。ステップ205においては、図3(b)に示すように、ログ記録要求に含まれるプロセスID(この例においては「50」)がメモリ管理テーブル34の「プロセスID」フィールドに格納されるとともに、当該プロセスに一意のメモリキー(この例においては「abcdefgh」)が設定され「メモリキー」フィールドに格納される。次に、ステップ206において、設定されたメモリキー(「abcdefgh」)が示すメモリ上の領域を「プロセスXXX」のログ記憶領域として割り当てる。
図3(c)は、さらに、「プロセスYYY」に係るログ記録要求を受信した場合のメモリ管理テーブル34を示す。図3(c)に示すように、「プロセスID」フィールドに「プロセスYYY」のプロセスID(この例においては「80」)が格納され、当該プロセスに一意のメモリキー(この例においては「opqrstuv」)が設定されている。その後、ステップ207に進み、上述した手順でプロセス毎に設定されたログ記憶領域に、該当するプロセスのログ記録要求に含まれるログ本文を記憶した後、図2に示すメイン処理に戻って処理を終了する。例えば、この後、さらに、「プロセスXXX」に係るログ記録要求を受信した場合には、既に「プロセスXXX」についてログ記憶領域が割り当てられているので(ステップ204、Yes)、図3(d)に示すように、メモリ管理テーブル34を更新することなく、そのままステップ207に進み、メモリキー(「abcdefgh」)が示すログ記憶領域にログ本文を追加した後、同じく、図2に示すメイン処理に戻って処理を終了する。
本実施形態においては、上述した手順によって、ログがプロセス毎にメモリに記録される。なお、本実施形態においては、メモリ管理テーブル34の「メモリサイズ」をプロセスの重要度に応じて適宜設定することができる。すなわち、ログの記憶方式として循環式を採用する場合には、割り当てられたメモリサイズを超えた時点で、古いログは順次新しいログに上書きされて消失するが、重要度の高いプロセスについては、割り当てるメモリサイズを大きく設定することによってメモリ上にログが残存する時間を長くすることができる。
以上、説明したように、本実施形態のログ保存手段10によれば、重要度が高いログについては直接ハードディスクに記録するため、漏れのない確実なログ保存が可能となる。一方、その他の重要度の低いログについて頻繁に実行される記録処理については、処理速度の速いメモリ記録を採用するため、MFPの性能にほとんど影響を与えることはなく、また、プロセス毎に分割された領域にログが記憶されるため、障害解析時に、目的のプロセスのログのみを高速に参照することが可能になる。以上、本実施形態のメモリ記録部16が実行するログの記録処理について説明してきたが、次に、障害発生時におけるログの保存処理について、図1および図5〜図8を参照して説明する。
図1に示すように、本実施形態のMFPにおけるログ保存手段10は、プロセス間通信管理部20をさらに備える。MFP内で実行されるプロセスのうち、互いに連携するプロセスは、セマフォ、共有メモリ、メッセージキューなどによって実装されるプロセス間通信によって情報のやり取りを行なうが、本実施形態におけるプロセス間通信管理部20は、このプロセス間通信を監視することによって、装置内で実行されるプロセス間に発生したデータ通信の履歴を残す。具体的には、プロセス間通信管理部20は、プロセス間通信テーブル36を管理しており、プロセス間でデータ通信が発生する度にこれを更新する。
図5は、本実施形態におけるプロセス間通信テーブル36を例示する。図5(a)に示されるように、プロセス間通信テーブル36は、プロセス間通信における呼び手のプロセス名を格納する「呼び手一覧」フィールドと、それに対する受け手のプロセス名を格納する「受け手一覧」フィールドを備えており、呼び手のプロセス名と受け手のプロセス名とを対応付けて格納するように構成されている。図6は、プロセス間通信管理部20が実行するプロセス間通信テーブル36の更新処理のフローチャートを示す。以下、図5および図6を参照して、プロセス間通信テーブル36の更新処理について説明する。
まず、ステップ301において、装置内で実行されるプロセス間に通信があったか否かが判断される。この判断は、プロセス間の通信を検出するまで繰り返される(ステップ301、No)。プロセス間の通信を検出した場合(ステップ301、Yes)、ステップ302に進み、当該プロセスの呼び手(C)のプロセス名と受け手(R)のプロセス名を取得する。次に、ステップ303において、呼び手(C)のプロセス名がプロセス間通信テーブル36に既に登録されているか否かが判断される。呼び手(C)がプロセス間通信テーブル36に既に登録されている場合には(ステップ303、Yes)、ステップ304に進み、受け手(R)のプロセス名が呼び手(C)に関連付けられて登録されているか否かが判断される。呼び手(C)に関連付けられて登録されている場合には(ステップ304、Yes)、ステップ301に戻り、再び、プロセス間の通信を監視する。
例えば、プロセス間通信テーブル36が図5(a)に示す状態にあった場合に、プロセス「ZZZ」からプロセス「MMM」への通信を検出したことを想定すると、プロセス名「ZZZ」とプロセス名「MMM」とは、それぞれ呼び手(C)および受け手(R)として、既に、関連付けられて登録されているので、プロセス間通信テーブル36は更新されない。
次に、プロセス「XXX」からプロセス「DDD」への通信を検出した場合を想定する。プロセス名「XXX」は呼び手一覧に登録されているので(ステップ303、Yes)、ステップ304に進むが、プロセス名「DDD」はプロセス「XXX」に対応する受け手一覧に登録されていないので(ステップ304、No)、ステップ305に進み、図5(b)に示されるように、プロセス名「DDD」がプロセス名「XXX」に対応する受け手一覧に新たに登録される。
次に、プロセス「CCC」からプロセス「YYY」への通信を検出した場合を想定する。プロセス名「CCC」は呼び手一覧に登録されていないので(ステップ303、No)、ステップ306に進み、まず、プロセス名「CCC」が呼び一覧に新たに登録され、続いて、ステップ305に進んで、プロセス名「YYY」がプロセス名「CCC」に対応する受け手一覧に新たに登録される。図5(c)は、プロセス間通信テーブル36の受け手一覧および呼び手一覧が共に更新された様子を示す。上述した手順により、プロセス間のデータ通信に伴って、呼び手/受け手の新たな関係が発生する度に、プロセス間通信テーブル36が更新される。なお、上述したプロセス間通信テーブル36の更新処理は、MFPが稼働している間、バックグラウンドで継続して実行される。
本実施形態におけるログ保存手段10は、既に述べたように、重要度「低」と定義されたログは、メモリ30上のプロセス毎に設けられた領域に循環式で記録される。従って、装置稼働中、特段の障害が発生しない間は、ログは古いものから順番に上書き消去されていくが、これらのログは障害と関連性の低いものであるので何ら問題はない。一方、一旦、装置内で障害が発生した場合には、障害解析のために、当該障害と関連性の高いプロセスに係るログを保存しておく必要がある。この点につき、本実施形態におけるログ保存手段10は、障害を発生したプロセスおよび当該プロセスと依存関係にあるプロセスに係るログを選択的にメモリ30からハードディスクに移管して保存する。本実施形態においては、図1に示す障害発生通知部22、プロセス間依存リスト作成部24、およびログ移管部26によって、上述した機能が実現される。この点について、図1ならびに図7〜図9を参照して以下説明する。
図7は、ログ移管部26によって実行されるログ移管処理のフローチャートを示す。まず、ステップ401において、障害発生通知部22から障害発生通知を受領したか否かが判断される。障害発生通知部22は、装置内で実行されるプロセスを監視しており、各プロセスに障害が発生した時点で、障害が発生したプロセスに割り当てられたプロセスIDを記述した障害発生通知を発行し、これをログ移管部26に通知する。障害発生通知を受領しない場合には(ステップ401、No)、その処理を終了する。一方、障害発生通知を受領した場合には(ステップ401、Yes)、ステップ402に進み、プロセス間依存リスト作成処理が実行される。具体的には、ログ移管部26は、障害発生通知部22から障害発生通知を受領すると、当該通知に含まれるプロセスIDを用いてメモリ管理テーブル34を検索し、障害が発生したプロセスのプロセス名を特定し、当該プロセス名をプロセス間依存リスト作成部24に通知して、障害を発生したプロセスおよび当該プロセスと依存関係にあるプロセスを列挙したリストの作成を依頼する。以下、この点について、図8および図9を参照して説明する。
図8は、プロセス間依存リスト作成部24が実行するプロセス間依存リスト作成処理のフローチャートを示す。なお、以下の説明においては、障害発生通知に記述されるプロセス名が「XXX」であり、照会時のプロセス間通信テーブル36が図9(a)に示すものであった場合を想定して行なう。まず、ステップ501において、障害発生通知部22から受領した障害発生通知に記述されるプロセス名「XXX」が図9(b)に例示するプロセス間依存リスト40に追加される。次に、ステップ502において、プロセス名「XXX」とプロセス間通信テーブル36とを照合する。ステップ502において、障害発生通知に記述されたプロセス名が「XXX」がプロセス間通信テーブル36の呼び手一覧に登録されているか否かが判断される。
図9(a)に示されるように、プロセス名「XXX」は呼び手一覧に登録されているので(ステップ502、Yes)、ステップ503に進み、プロセス名「XXX」を呼び手とする受け手一覧に登録されているプロセス名が全て取得され、プロセス間依存リスト40に追加される。図9(a)に示されるように、プロセス名「XXX」を呼び手とする受け手一覧には、「YYY」、「ZZZ」、「AAA」の3つのプロセス名が登録されており、これらがプロセス間依存リスト40に追加される。したがって、ステップ503が実行された段階でプロセス間依存リスト40には、「XXX」、「YYY」、「ZZZ」、「AAA」の4つのプロセス名が登録される。
次にステップ504に進み、リストアップされた各プロセス(すなわち、「XXX」、「YYY」、「ZZZ」、「AAA」)を呼び手とする受け手一覧に登録されているプロセス名が全て取得され、プロセス間依存リスト40に追加される。ここで「XXX」の受け手は既にリストアップされているので、「YYY」、「ZZZ」、「AAA」を呼び手とする受け手について、プロセス間通信テーブル36が照合される。図9(a)に示されるように、プロセス名「YYY」を呼び手とする受け手一覧には、プロセス名「CCC」、「XXX」が登録されており、プロセス名「ZZZ」を呼び手とする受け手一覧には、プロセス名「MMM」が登録されており、プロセス名「AAA」を呼び手とする受け手一覧には、プロセス名「BBB」、「MMM」が登録されている。したがって、ステップ504においては、新たに、「CCC」、「MMM」、「BBB」がプロセス間依存リスト40に追加される。
その後、ステップ505において、ステップ504の実行回数が予め規定した回数Nに達しているか否かが判断される。本実施形態においては、ステップ504の処理を複数回繰り返すことによって、障害が発生したプロセス「XXX」と依存関係のあるプロセスをリストアップすることができる。本実施形態においては、「N」の値によって、プロセス間の依存関係の強さについて設定することができ、障害解析における費用対効果の観点から「N」の値を適宜設定することができる。ここでは、説明の便宜のため、N=1として設定した場合を例にとって説明を続ける。
ステップ504が1回実行されたので(ステップ505、Yes)、ステップ506に進み、障害発生通知に記述されたプロセス名が「XXX」がプロセス間通信テーブル36の受け手一覧に登録されているか否かが判断される。図9(a)に示されるように、プロセス名「XXX」は受け手一覧にも登録されているので(ステップ506、Yes)、ステップ507に進み、プロセス名「XXX」を受け手とする呼び手一覧に登録されているプロセス名が全て取得され、プロセス間依存リスト40に追加される。図9(a)に示されるように、プロセス名「XXX」を受け手とする呼び手一覧には、「YYY」、「DDD」の2つのプロセス名が登録されており、「YYY」は既にリスト上に存在するので、図9(b)に示されるように、プロセス名「DDD」が新たにプロセス間依存リスト40に追加される。したがって、ステップ507が実行された段階でプロセス間依存リスト40には、「XXX」、「YYY」、「ZZZ」、「AAA」、「CCC」、「MMM」、「BBB」、「DDD」の8つのプロセス名が登録される。
次にステップ508に進み、リストアップされた各プロセス(すなわち、「XXX」、「YYY」、「ZZZ」、「AAA」、「CCC」、「MMM」、「BBB」、「DDD」)を受け手とする呼び手一覧に登録されているプロセス名が全て取得され、プロセス間依存リスト40に追加される。ここで「XXX」、「YYY」、「ZZZ」、「AAA」、「CCC」、「MMM」、「BBB」を受け手とする呼び手「XXX」、「YYY」、「ZZZ」、「AAA」は既にリストアップされているので、図9(b)に示されるように、「DDD」を受け手とする呼び手「EEE」のみが新たにプロセス間依存リスト40に追加される。
その後、ステップ509において、ステップ508の実行回数が予め規定した回数Nに達しているか否かが判断される。ステップ509を設けた趣旨は、ステップ506と同様であり、ここでは、同様に説明の便宜のため、N=1として設定した場合を例にとって説明を続ける。ステップ508が1回実行されたので(ステップ509、Yes)、処理は図7に示すメイン処理に戻る。上述した処理を通して、プロセス間依存リスト40には、図9(b)に示されるように、「XXX」、「YYY」、「ZZZ」、「AAA」、「CCC」、「MMM」、「BBB」、「DDD」、「EEE」の9つのプロセス名がリストアップされることになる。なお、仮に、障害発生通知に記述されたプロセス名がプロセス間通信テーブル36の呼び手一覧にも受けて一覧にも登録されていない場合には(ステップ502、No/ステップ506、No)、障害発生通知に記述されたプロセス名のみをプロセス間依存リスト40に追加した後、図7に示すメイン処理に戻る。
再び、図7を参照して説明を続ける。ステップ403において、ログ移管部26は、プロセス間依存リスト作成部24が作成したプロセス間依存リスト40と図3に例示したメモリ管理テーブル34を照合し、プロセス間依存リスト40にリストアップされたプロセス名に対応するメモリキーをメモリ管理テーブル34から取得する。次に、ステップ404において、ログ移管部26は、取得したメモリキーが示すメモリ30上のログ記憶領域にアクセスして、当該領域に格納されているログを全て読み出した後、ステップ405において、読み出したログをハードディスク28に書き出し、処理を終了する。
以上、説明したように、本実施形態のログ保存手段10によれば、障害発生時には、障害が発生したプロセスに依存するプロセスのログがメモリからハードディスクに移管されるため、後の障害解析に必要なログを確実に取得・保存することが可能になる。また、本実施形態によれば、障害解析に最低限必要なログのみをハードディスクに記録するため、後の障害解析において、必要なログを探し出す労力が大幅に軽減することができる。
なお、上述した実施形態の各機能は、アセンブリ言語、C、Visual C、C++、Visual C++、Java(登録商標)、Java(登録商標)Beans、Java(登録商標)Applet、Java(登録商標)Script、Perl、Rubyなど、レガシープログラミング言語やオブジェクト指向プログラミング言語などで記述された装置実行可能なプログラムにより実現でき、装置可読な記録媒体に格納して頒布することができる。
これまで本発明について実施形態をもって説明してきたが、本発明は上述した実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
10…ログ保存手段、12…ログ受信部、14…ログ記録先振分部、16…メモリ記録部、18…ハードディスク記録部、20…プロセス間通信管理部、22…障害発生通知部、24…プロセス間依存リスト作成部、26…ログ移管部、28…ハードディスク、30…メモリ、32…メモリ管理部、34…メモリ管理テーブル、36…プロセス間通信テーブル、40…プロセス間依存リスト
Claims (13)
- 装置のジョブ履歴をログデータとして保存するログ保存手段を備える画像形成装置であって、
前記ログ保存手段は、
装置内で実行される各プロセスから重要度の高低が予め定義されたログの記録要求を受信するログ受信部と、
高重要度が定義されたログについては記録先としてハードディスクを選択し、低重要度が定義されたログについては記録先としてメモリを選択するログ記録先振分部と、
前記ハードディスクが記録先として選択された前記ログをハードディスクに記録するハードディスク記録部と、
前記メモリが記録先として選択された前記ログをプロセス毎にメモリに記録するメモリ記録部と、
前記装置内で障害が発生したプロセスを特定して通知する障害発生プロセス通知部と、
前記通知に応答して、前記障害が発生したプロセスおよび該プロセスと依存関係にあるプロセスのログのみを前記メモリから読み出し、当該読み出されたログを前記ハードディスクに書き出すログ移管部と、
を含む、画像形成装置。 - 前記ログ保存手段は、さらに、前記装置内で実行されるプロセス間通信を監視し、該プロセス間通信の呼び手と受け手とを対応付けて記憶するためのプロセス間通信管理部を含む、請求項1に記載の画像形成装置。
- 前記ログ保存手段は、さらに、前記障害が発生したプロセスおよび該プロセスと依存関係にあるプロセスのリストを作成するプロセス間依存リスト作成部を含む、請求項1または2に記載の画像形成装置。
- 前記メモリは、プロセス毎に割り当てられたログ記憶領域を備え、前記メモリ記録部は、前記ログ記憶領域をメモリ上に割り当てるためのメモリ管理テーブルを作成するメモリ管理部を含む、請求項1〜3のいずれか1項に記載の画像形成装置。
- 前記メモリ管理テーブルは、前記ログ記憶領域のメモリサイズとプロセス名を対応付けて格納するテーブルである、請求項4に記載の画像形成装置。
- 前記ログ移管部は、前記プロセス間依存リストと前記メモリ管理テーブルとを照合して、前記障害が発生したプロセスおよび該プロセスと依存関係にあるプロセスを特定し、特定したプロセスに係るログを前記メモリから読み出す、請求項4または5に記載の画像形成装置。
- 画像形成装置に対して、装置のジョブ履歴をログデータとして保存する処理を実行させるためのコンピュータ実行可能な制御方法であって、該方法は、画像形成装置に対して、
装置内で実行される各プロセスから重要度の高低が予め定義されたログの記録要求を受信するステップと、
高重要度が定義されたログについては記録先としてハードディスクを選択し、低重要度が定義されたログについては記録先としてメモリを選択するステップと、
前記ハードディスクが記録先として選択された場合には、前記ログをハードディスクに記録し、前記メモリが記録先として選択された場合には、前記ログをプロセス毎にメモリに記録するステップとを実行させ、
前記装置内で障害が発生したプロセスを特定する通知を受領した場合には、障害が発生したプロセスおよび該プロセスと依存関係にあるプロセスのログを前記メモリから全て読み出し、当該読み出されたログを前記ハードディスクに書き出すログ移管ステップを実行させる、
制御方法。 - 前記装置内で実行されるプロセス間通信を監視し、該プロセス間通信の呼び手と受け手とを対応付けて記憶するステップをさらに含む、請求項7に記載の制御方法。
- 前記障害が発生したプロセスおよび該プロセスと依存関係にあるプロセスのリストを作成するステップをさらに含む、請求項7または8に記載の制御方法。
- 前記メモリは、プロセス毎に割り当てられたログ記憶領域を備え、前記メモリに記録するステップは、前記ログ記憶領域をメモリ上に割り当てるためのメモリ管理テーブルを作成するステップを含む、請求項7〜9のいずれか1項に記載の制御方法。
- 前記メモリ管理テーブルは、前記ログ記憶領域のメモリサイズとプロセス名を対応付けて格納するテーブルである、請求項10に記載の制御方法。
- 前記ログ移管ステップは、前記プロセス間依存リストと前記メモリ管理テーブルとを照合して、前記障害が発生したプロセスおよび該プロセスと依存関係にあるプロセスを特定し、特定したプロセスに係るログを前記メモリから読み出すステップを含む、請求項10または11に記載の制御方法。
- コンピュータに対して、請求項7〜12のいずれか1項に記載の制御方法のステップを実行させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008332903A JP2010152838A (ja) | 2008-12-26 | 2008-12-26 | 画像形成装置、制御方法、およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008332903A JP2010152838A (ja) | 2008-12-26 | 2008-12-26 | 画像形成装置、制御方法、およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010152838A true JP2010152838A (ja) | 2010-07-08 |
Family
ID=42571816
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008332903A Pending JP2010152838A (ja) | 2008-12-26 | 2008-12-26 | 画像形成装置、制御方法、およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010152838A (ja) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012076409A (ja) * | 2010-10-05 | 2012-04-19 | Seiko Epson Corp | 電子機器、プリンター、電子機器のステータス管理方法およびプログラム |
JP2013016132A (ja) * | 2011-07-06 | 2013-01-24 | Canon Inc | 通信制御装置、通信制御システム、通信制御方法およびプログラム |
JP2013206147A (ja) * | 2012-03-28 | 2013-10-07 | Yokohama National Univ | ロギング装置、ロギング方法及びプログラム |
JP5496377B1 (ja) * | 2013-02-04 | 2014-05-21 | 三菱電機株式会社 | ログ出力装置及びログ出力プログラム |
JP2014225179A (ja) * | 2013-05-17 | 2014-12-04 | 日本電信電話株式会社 | ログ取得装置、ログ取得方法およびログ取得プログラム |
JP2015170140A (ja) * | 2014-03-07 | 2015-09-28 | アラクサラネットワークス株式会社 | 通信装置、及び、データ管理方法 |
JP2019200517A (ja) * | 2018-05-15 | 2019-11-21 | 富士通株式会社 | 情報処理装置、情報収集プログラム及び情報収集方法 |
JP2020536306A (ja) * | 2017-09-30 | 2020-12-10 | ホアウェイ・テクノロジーズ・カンパニー・リミテッド | システムサービスタイムアウト処理方法および装置 |
-
2008
- 2008-12-26 JP JP2008332903A patent/JP2010152838A/ja active Pending
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012076409A (ja) * | 2010-10-05 | 2012-04-19 | Seiko Epson Corp | 電子機器、プリンター、電子機器のステータス管理方法およびプログラム |
US8885205B2 (en) | 2010-10-05 | 2014-11-11 | Seiko Epson Corporation | Electronic device, printer, status management method for an electronic device, and recording medium |
JP2013016132A (ja) * | 2011-07-06 | 2013-01-24 | Canon Inc | 通信制御装置、通信制御システム、通信制御方法およびプログラム |
JP2013206147A (ja) * | 2012-03-28 | 2013-10-07 | Yokohama National Univ | ロギング装置、ロギング方法及びプログラム |
JP5496377B1 (ja) * | 2013-02-04 | 2014-05-21 | 三菱電機株式会社 | ログ出力装置及びログ出力プログラム |
JP2014149783A (ja) * | 2013-02-04 | 2014-08-21 | Mitsubishi Electric Corp | ログ出力装置及びログ出力プログラム |
JP2014225179A (ja) * | 2013-05-17 | 2014-12-04 | 日本電信電話株式会社 | ログ取得装置、ログ取得方法およびログ取得プログラム |
JP2015170140A (ja) * | 2014-03-07 | 2015-09-28 | アラクサラネットワークス株式会社 | 通信装置、及び、データ管理方法 |
JP2020536306A (ja) * | 2017-09-30 | 2020-12-10 | ホアウェイ・テクノロジーズ・カンパニー・リミテッド | システムサービスタイムアウト処理方法および装置 |
JP7006780B2 (ja) | 2017-09-30 | 2022-01-24 | ホアウェイ・テクノロジーズ・カンパニー・リミテッド | システムサービスタイムアウト処理方法および装置 |
US11693701B2 (en) | 2017-09-30 | 2023-07-04 | Huawei Technologies Co., Ltd. | System service timeout processing method, and apparatus |
JP2019200517A (ja) * | 2018-05-15 | 2019-11-21 | 富士通株式会社 | 情報処理装置、情報収集プログラム及び情報収集方法 |
JP7048890B2 (ja) | 2018-05-15 | 2022-04-06 | 富士通株式会社 | 情報処理装置、情報収集プログラム及び情報収集方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2010152838A (ja) | 画像形成装置、制御方法、およびプログラム | |
US8856088B2 (en) | Application-managed file versioning | |
US7676699B2 (en) | Event trace conditional logging | |
JP4275683B2 (ja) | オブジェクト状態転送方法,オブジェクト状態転送装置およびオブジェクト状態転送プログラム並びにそのプログラムの記録媒体 | |
JP5167897B2 (ja) | 電子機器、情報処理方法、及び情報処理プログラム | |
CN111064621B (zh) | 业务数据对接方法和装置 | |
US20070174293A1 (en) | File printing method and system using e-mail | |
US9710340B2 (en) | Replacement of a corrupt driver variable record | |
US6941322B2 (en) | Method for efficient recording and management of data changes to an object | |
CN103559231A (zh) | 一种文件系统配额管理方法、装置及系统 | |
JP2008009854A (ja) | ログ制御装置、画像形成装置、ログ制御方法及びプログラム | |
JP2010004267A (ja) | 画像形成装置、ログ制御方法及びプログラム | |
US20060170966A1 (en) | Document management system, printing apparatus, and document management apparatus | |
US20080028144A1 (en) | Method of restoring data by CDP utilizing file system information | |
CN109697112B (zh) | 分布式集约化一站式作业系统和实现方法 | |
US7917476B2 (en) | Device management system using log management object and method for generating and controlling logging data therein | |
JP5381059B2 (ja) | 機器、ログ記録制御方法、及びプログラム | |
US8452194B2 (en) | System, image processing apparatus, image forming apparatus, and method thereof | |
US20070035769A1 (en) | Image forming apparatus | |
JP2008225599A (ja) | トレース情報出力装置、および、トレース情報出力方法 | |
JP2006350633A (ja) | データ管理方法及びデータ管理システム | |
JP2008262287A (ja) | 通信制御装置および通信ログ保存方法 | |
JP5141196B2 (ja) | センタ管理装置、センタ管理プログラム、センタ管理方法 | |
US9692917B2 (en) | Operating information storing system, operating information storing method, and non-transitory computer readable recording medium storing an operating information storing method for storing information from volatile memory to non-volatile memory | |
JP2008166899A (ja) | 画像形成装置、制御方法、およびプログラム |