(57)【特許請求の範囲】
【請求項１】
データ処理装置であって、
ネットワークを介して送受信されるデータを取得する取得手段と、
前記取得手段により取得されたデータを第１のメモリに記憶する記憶手段と、
前記第１のメモリに記憶されたデータの合計サイズが閾値に達した際に、前記第１のメモリに記憶されたデータを第２のメモリに保存する保存手段と、
前記データ処理装置のエラーを検知する検知手段と、
前記検知手段が前記データ処理装置の再起動を必要とするエラーを検知した場合に、前記閾値を、前記検知手段が前記データ処理装置の再起動を必要とするエラーを検知していない場合よりも低い値に変更する変更手段と
を備えることを特徴とするデータ処理装置。
【請求項２】
データ処理装置であって、
ネットワークを介して送受信されるデータを取得する取得手段と、
前記取得手段により取得されたデータを第１のメモリに記憶する記憶手段と、
前記第１のメモリに記憶されたデータの合計サイズが閾値に達した際に、前記第１のメモリに記憶されたデータを第２のメモリに保存する保存手段と、
ユーザが前記データ処理装置を操作するための操作手段と、
前記操作手段の異常を検知する検知手段と、
前記検知手段が前記操作手段の異常を検知した場合に、前記閾値を、前記検知手段が前記操作手段の異常を検知していない場合よりも低い値に変更する変更手段と
を備えることを特徴とするデータ処理装置。
【請求項３】
データ処理装置であって、
ネットワークを介して送受信されるデータを取得する取得手段と、
前記取得手段により取得されたデータを第１のメモリに記憶する記憶手段と、
前記第１のメモリに記憶されたデータの合計サイズが閾値に達した際に、前記第１のメモリに記憶されたデータを第２のメモリに保存する保存手段と、
各時間帯における電源断の発生回数を保持する保持手段と、
前記各時間帯のうち電源断の発生回数が所定値を超えた時間帯における前記閾値を、前記各時間帯のうち電源断の発生回数が所定値を超えていない時間帯における前記閾値よりも低い値に変更する変更手段とを備えることを特徴とするデータ処理装置。
【請求項４】
データ処理装置であって、
ネットワークを介して送受信されるデータを取得する取得手段と、
前記取得手段により取得されたデータを第１のメモリに記憶する記憶手段と、
前記第１のメモリに記憶されたデータの合計サイズが閾値に達した際に、前記第１のメモリに記憶されたデータを第２のメモリに保存する保存手段と、
前記第１のメモリに記憶されているデータの合計サイズが前記閾値に達するまでの第１の時間を算出する第１の時間算出手段と、
前記第１のメモリに記憶されているデータを前記第２のメモリに保存し終わるまでの第２の時間を算出する第２の時間算出手段と、
前記第１の時間と前記第２の時間との差が一定範囲内の値となるように、前記閾値を変更する変更手段と
を備えることを特徴とするデータ処理装置。
【請求項５】
前記変更手段によって前記閾値を変更中である場合、その旨を表示する表示手段を備えたことを特徴とする請求項１乃至４のいずれか一項に記載のデータ処理装置。
【請求項６】
前記第１のメモリは揮発性メモリであり、前記第２のメモリは不揮発性メモリであることを特徴とする請求項１乃至５の何れか一項に記載のデータ処理装置。
【請求項７】
前記取得手段は、前記データ処理装置が前記ネットワークに送信するデータ又は前記データ処理装置が前記ネットワークから受信したデータを取得することを特徴とする請求項１乃至６の何れか一項に記載のデータ処理装置。
【請求項８】
前記変更手段は、前記閾値を変更してから一定時間が経過した後、前記閾値を当該変更がされる前の値に戻すことを特徴とする請求項２に記載のデータ処理装置。
【請求項９】
データ処理装置の制御方法であって、
ネットワークを介して送受信されるデータを取得する取得ステップと、
前記取得ステップにより取得されたデータを第１のメモリに記憶する記憶ステップと、
前記第１のメモリに記憶されたデータの合計サイズが閾値に達した際に、前記第１のメモリに記憶されたデータを第２のメモリに保存する保存ステップと、
前記データ処理装置のエラーを検知する検知ステップと、
前記検知ステップで前記データ処理装置の再起動を必要とするエラーを検知した場合に、前記閾値を、前記検知ステップで前記データ処理装置の再起動を必要とするエラーを検知していない場合よりも低い値に変更する変更ステップと
を備えることを特徴とする制御方法。
【請求項１０】
ユーザがデータ処理装置を操作するための操作手段を備えた前記データ処理装置の制御方法であって、
ネットワークを介して送受信されるデータを取得する取得ステップと、
前記取得ステップにより取得されたデータを第１のメモリに記憶する記憶ステップと、
前記第１のメモリに記憶されたデータの合計サイズが閾値に達した際に、前記第１のメモリに記憶されたデータを第２のメモリに保存する保存ステップと、
前記操作手段の異常を検知する検知ステップと、
前記検知ステップで前記操作手段の異常を検知した場合に、前記閾値を、前記検知ステップが前記操作手段の異常を検知していない場合よりも低い値に変更する変更ステップと
を備えることを特徴とする制御方法。
【請求項１１】
データ処理装置の制御方法であって、
ネットワークを介して送受信されるデータを取得する取得ステップと、
前記取得ステップにより取得されたデータを第１のメモリに記憶する記憶ステップと、
前記第１のメモリに記憶されたデータの合計サイズが閾値に達した際に、前記第１のメモリに記憶されたデータを第２のメモリに保存する保存ステップと、
各時間帯における電源断の発生回数を保持する保持ステップと、
前記各時間帯のうち電源断の発生回数が所定値を超えた時間帯における前記閾値を、前記各時間帯のうち電源断の発生回数が所定値を超えていない時間帯における前記閾値よりも低い値に変更する変更ステップと
を備えることを特徴とする制御方法。
【請求項１２】
データ処理装置の制御方法であって、
ネットワークを介して送受信されるデータを取得する取得ステップと、
前記取得ステップにより取得されたデータを第１のメモリに記憶する記憶ステップと、
前記第１のメモリに記憶されたデータの合計サイズが閾値に達した際に、前記第１のメモリに記憶されたデータを第２のメモリに保存する保存ステップと、
前記第１のメモリに記憶されているデータの合計サイズが前記閾値に達するまでの第１の時間を算出する第１の時間算出ステップと、
前記第１のメモリに記憶されているデータを前記第２のメモリに保存し終わるまでの第２の時間を算出する第２の時間算出ステップと、
前記第１の時間と前記第２の時間との差が一定範囲内の値となるように、前記閾値を変更する変更ステップと
を備えることを特徴とする制御方法。
【請求項１３】
データ処理装置に、
ネットワークを介して送受信されるデータを取得する取得ステップと、
前記取得ステップにより取得されたデータを第１のメモリに記憶する記憶ステップと、
前記第１のメモリに記憶されたデータの合計サイズが閾値に達した際に、前記第１のメモリに記憶されたデータを第２のメモリに保存する保存ステップと、
前記データ処理装置のエラーを検知する検知ステップと、
前記検知ステップで前記データ処理装置の再起動を必要とするエラーを検知した場合に、前記閾値を、前記検知ステップで前記データ処理装置の再起動を必要とするエラーを検知していない場合よりも低い値に変更する変更ステップと
を実行させるためのプログラム。
【請求項１４】
ユーザがデータ処理装置を操作するための操作手段を備えた前記データ処理装置に、
ネットワークを介して送受信されるデータを取得する取得ステップと、
前記取得ステップにより取得されたデータを第１のメモリに記憶する記憶ステップと、
前記第１のメモリに記憶されたデータの合計サイズが閾値に達した際に、前記第１のメモリに記憶されたデータを第２のメモリに保存する保存ステップと、
前記操作手段の異常を検知する検知ステップと、
前記検知ステップで前記操作手段の異常を検知した場合に、前記閾値を、前記検知ステップが前記操作手段の異常を検知していない場合よりも低い値に変更する変更ステップと
を実行させるためのプログラム。
【請求項１５】
データ処理装置に、
ネットワークを介して送受信されるデータを取得する取得ステップと、
前記取得ステップにより取得されたデータを第１のメモリに記憶する記憶ステップと、
前記第１のメモリに記憶されたデータの合計サイズが閾値に達した際に、前記第１のメモリに記憶されたデータを第２のメモリに保存する保存ステップと、
各時間帯における電源断の発生回数を保持する保持ステップと、
前記各時間帯のうち電源断の発生回数が所定値を超えた時間帯における前記閾値を、前記各時間帯のうち電源断の発生回数が所定値を超えていない時間帯における前記閾値よりも低い値に変更する変更ステップと
を実行させるためのプログラム。
【請求項１６】
データ処理装置に、
ネットワークを介して送受信されるデータを取得する取得ステップと、
前記取得ステップにより取得されたデータを第１のメモリに記憶する記憶ステップと、
前記第１のメモリに記憶されたデータの合計サイズが閾値に達した際に、前記第１のメモリに記憶されたデータを第２のメモリに保存する保存ステップと、
前記第１のメモリに記憶されているデータの合計サイズが前記閾値に達するまでの第１の時間を算出する第１の時間算出ステップと、
前記第１のメモリに記憶されているデータを前記第２のメモリに保存し終わるまでの第２の時間を算出する第２の時間算出ステップと、
前記第１の時間と前記第２の時間との差が一定範囲内の値となるように、前記閾値を変更する変更ステップと
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テータ処理装置、その制御方法、プログラムに関する。
【背景技術】
【０００２】
従来から、ネットワーク通信機器で障害が発生した場合、ネットワーク通信路を流れるパケットを採取して障害の原因を調査する手法が存在していた。その一般的な方法では、パケット取得を行う専用の機器をＨＵＢなどの集線機器に接続し、管理者は、この専用の機器を用いてＬＡＮ（Local Area Network）上を流れるパケットを採取する。
【０００３】
採取したパケットから、管理者は、調査対象となるネットワーク通信機器が送受信しているパケットのデータの内容を解析し、規定外のデータを受信している箇所や、受信パケットに対する応答遅延が発生している箇所を特定する。そして、これらの箇所が傷害の原因であるか否かを切り分けるために、管理者は、同一のパケットをネットワーク機器に送信して障害の再現確認を行ったり、ネットワーク機器の通信を司るソースコードを解析するといった原因調査を行う。
【０００４】
近年、パケットの取得機能が備わったネットワーク通信機器も普及し始めている。これにより、パケットの採取を行うための専用の機器を使用しなくてもパケットの取得が可能となる。このため、スイッチングＨＵＢが導入された環境のように、専用機器を接続したとしてもパケットの採取を正しく行うことができない場合でも、パケットの採取が可能になった。この結果、障害等の発生時やパケットの情報調査時に、パケットの採取を利用することが、一般化してきている。
【０００５】
また、取得したネットワークパケット等のログデータを、磁気ディスクなどの不揮発性メモリに保存することによって、ログ情報の調査を後日行う場合、保存されたログデータを取得することが可能となる。これにより、障害が発生したタイミングで、どのようなデータがどのような順番で処理されていたかを後日確認することができる。ここで、ログデータとは、行われた操作の内容、送受信されたデータの中身、操作やデータの送受信が行われた日時などを記録したものである。
【０００６】
このことは、障害が発生した場合、機器を使用しているユーザへの迅速な説明と対策に繋がり、結局、ユーザに対して責任のある回答と対応によって、ユーザの安心と障害に対する不信感の迅速な回復を促すという意味においても、非常に重要な技術である。
【０００７】
また、障害解析を行う際、機器が正常に動作しているときのログデータよりも、次のような情報をログデータから確認することが非常に重要である。この情報としては、機器の不具合やパフォーマンスの低下が発生する前後に、どのようなデータが、どのような順番で、どの程度のサイズや頻度で処理されていたかを示す内容である。
【０００８】
さらに、機器に関連するデータの一定時間における処理速度や流量等をチェックしたり、機器に直接関連しないパケット等のデータの機器へのアクセスがどの程度発生しているか等を調査することも、重要である。これにより、ユーザに対し、機器に対する効率的な運用方法の提案やセキュリティに対する脆弱性の通知等、ユーザにとって有益な情報を与えることができ、このことは信頼性の向上にも繋がる。
【０００９】
また、ネットワークパケット等、ログデータを保存する機能において最も重要なことは、「障害が発生した前後のタイミング、またはログデータを取得したいタイミングで必要なデータを、正しく、正しい順番で、正しいサイズで保存する」ことにある。一般に、不揮発性メモリのアクセス速度よりも揮発性メモリのアクセス速度の方が速いことが知られている。したがって、処理パフォーマンスの向上と不揮発性メモリのアクセス回数の上限による不揮発性メモリの寿命を考慮し、データを不揮発性メモリに保存する場合、一旦揮発性メモリにデータを記憶し、その後、不揮発性メモリに保存する方法が一般的である。
【００１０】
この方法を用いて、ログデータを不揮発性メモリに保存する場合に考えられる問題点は、ログデータを取得して不揮発性メモリへの格納中に、ユーザ等から機器の電源がＯＦＦにされることによって、揮発性メモリに記憶していたログデータが消滅することである。
【００１１】
消滅したデータは、不揮発性メモリにも保存されていないので、前述した「機器の不具合やパフォーマンスの低下の発生前後において、障害解析に重要なログデータを正しく保存する」という目的が達成できなくなる。これは、調査対象となるはずであった重要なログデータが消滅する可能性を意味し、本来の目的であったユーザへの迅速かつ明確な回答と対策の遂行に支障をきたし、機器製造元への信頼性の低下に繋がるおそれがある。
【００１２】
この解決策として、近年、電源断時における補助バッテリや充電メモリを使用して電源断の信号受信時に一定時間通電状態を継続させ、その間に揮発性メモリに記憶しているデータを不揮発性メモリに格納するという方法が一般的である。例えば、特許文献１では、機器の電源断時にＣＰＵにＮＭＩ割り込みを発生させることをトリガとし、バッテリでバックアップされたＲＡＭを用いる。これにより、一定時間ＲＡＭを通電状態にしてＲＡＭ上の記憶データを退避する方法で、揮発性メモリのデータ消滅が回避される。
【特許文献１】特開平１１−２５００７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
しかしながら、上記従来例のように、揮発性メモリのデータ消滅を回避する方法では、大きなコストがかかるため、ログデータ保存機能が調査用のみにおいて用いられる場合においては、可能な限り低コストでの実現性を図る必要がある。
【００１４】
そして、補助バッテリや充電メモリなどを使用せずにログデータの消滅を可能な限り防ぐと同時に、不揮発性メモリへの頻繁なアクセスによるパフォーマンスの低下と不揮発性メモリの劣化を抑えつつ、効率の良いログデータ取得処理を行うことが課題である。
【００１５】
そこで、本発明は、低コストでデータ保存機能を実現でき、第２のメモリへの頻繁なアクセスによるパフォーマンスの低下と第２のメモリの劣化を抑えつつ、効率の良いデータの保存が可能であるデータ処理装置を提供することを目的とする。また、本発明は、その制御方法、プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１６】
上記目的を達成するために、本発明のデータ処理装置は、ネットワークを介して送受信されるデータを取得する取得手段と、前記取得手段により取得されたデータを第１のメモリに記憶する記憶手段と、前記第１のメモリに記憶されたデータの合計サイズが閾値に達した際に、前記第１のメモリに記憶されたデータを第２のメモリに保存する保存手段と、前記データ処理装置のエラーを検知する検知手段と、前記検知手段が前記データ処理装置の再起動を必要とするエラーを検知した場合に、前記閾値を、前記検知手段が前記データ処理装置の再起動を必要とするエラーを検知していない場合よりも低い値に変更する変更手段とを備えることを特徴とする。
【発明の効果】
【００１９】
本発明の請求項１に係るデータ処理装置によれば、低コストでデータ保存機能を実現でき、第２のメモリへの頻繁なアクセスによるパフォーマンスの低下と第２のメモリの劣化を抑えつつ、効率の良いデータの保存が可能であるデータ処理装置、その制御方法、プログラムを提供することができる。
【発明を実施するための最良の形態】
【００２３】
本発明のデータ処理装置、その動作記録方法、プログラムおよび記憶媒体の実施の形態について図面を参照しながら説明する。本実施形態のデータ処理装置は、ネットワーク通信機能を有する複合機（ＭＦＰ：Multifunction Peripheral）に適用される。
【００２４】
［第１の実施形態］
図１は第１の実施形態のＭＦＰが接続されたネットワークシステムの構成を示す図である。このネットワークシステムでは、ネットワークインターフェイスを有する複数のノードがＬＡＮ１０３に接続されている。
【００２５】
ＬＡＮ１０３はユーザ環境のネットワークであり、そのＬＡＮ規格はＥｔｈｅｒｎｅｔ（登録商標）である。また、ＬＡＮ１０３に接続される複数のノードとして、本実施形態では、ＭＦＰ１０１、２台のＰＣ１０２、１０４およびメールサーバ１０５が設けられている。なお、ネットワークシステムに接続される機器の構成はこれに限られない。
【００２６】
ＭＦＰ１０１の構成については後述する。ＰＣ１０２、１０４は汎用のパーソナルコンピュータからなる。ＰＣ１０２、１０４は、中央演算装置としてＣＰＵ、および記憶装置としてＲＡＭ、ＲＯＭ、ＨＤＤ（Hard Disk Drive）を有する。また、ＰＣ１０２、１０４は、外部記憶装置としてＣＤ−ＲＯＭドライブ、外部インターフェイスとしてＮＩＣ（Network Interface Card）やＵＳＢ（Universal Serial Bus）ホストインターフェイスを有する。また、ＰＣ１０２、１０４は、これらの装置や後述する周辺装置を制御するためのバスを有する。
【００２７】
また、パーソナルコンピュータ本体に接続される周辺機器としては、マウス、ＣＲＴディスプレイ、キーボード等が存在する。また、ＰＣ１０２に導入されているソフトウェアとして、ＯＳ（Operating Software）や、ワードプロセッサや表計算ソフト等のオフィスソフトウェアが備わっている。ＯＳには、その一機能として印刷データを、ネットワークを経由してプリンタやＭＦＰに送信するためのポートモニタが備わっている。また、後述するメールサーバ１０５に電子メールを送信したり、メールサーバ１０５から電子メールを受信する等、電子メール送受信を行うためのメーラも導入されている。
【００２８】
メールサーバ１０５は、電子メールサーバであり、ＳＭＴＰ（Simple Mail Transfer Protocol）やＰＯＰ３（Post Office Protocol）の転送プロトコルを用いて電子メールの送受信を司るサーバである。メールサーバ１０５には、ＭＦＰ１０１、ＰＣ１０２およびＰＣ１０４の電子メールアカウントが設定されており、これらの各ノードがメールサーバ１０５を経由して電子メールを送信可能とする設定がなされている。
【００２９】
図２はＭＦＰ１０１のコントローラユニットの主要部の構成を示すブロック図である。ＭＦＰ１０１は、スキャナ２７０、プリンタ２９５、コントローラユニット２００および操作部２１２を有する。コントローラユニット２００は、画像入力デバイスであるスキャナ２７０や画像出力デバイスであるプリンタ２９５と接続され、スキャナ２７０で読み取られた画像データをプリンタ２９５で印刷するコピー機能を実現するための制御を行う。また、コントローラユニット２００は、ＬＡＮ１０３に接続され、画像情報やデバイス情報の入出力を行うための制御を行う。
【００３０】
具体的に、コントローラユニット２００は、ＣＰＵ２０１、ＲＡＭ２０２、ＲＯＭ２０３、ＨＤＤ２０４、イメージバスＩ／Ｆ２０５、操作部Ｉ／Ｆ２０６、ネットワークＩ／Ｆ２１０およびモデム２５０がシステムバス２０７に接続された構成を有する。また、コントローラユニット２００は、ラスタイメージプロセッサ（ＲＩＰ）２６０、デバイスＩ／Ｆ２２０、スキャナ画像処理部２８０、プリンタ画像処理部２９０、画像回転部２３０および画像圧縮部２４０が画像バス２０８に接続された構成を有する。
【００３１】
ＣＰＵ２０１は、ＲＯＭ２０３に格納されているブートプログラムによりオペレーションシステム（ＯＳ）を立ち上げる。ＣＰＵ２０１は、このＯＳ上でＨＤＤ（ハードディスクドライブ）２０４に格納されているアプリケーションプログラムを実行することによって各種処理を実行する。このＣＰＵ２０１の作業領域として、ＲＡＭ２０２が用いられる。ＲＡＭ２０２は、作業領域の他、画像データを一時記憶するための画像メモリ領域を提供する。また、ＲＡＭ２０２は後述する揮発性メモリ４０４としても用いられる。ＨＤＤ２０４は、上記アプリケーションプログラムの他、画像データを格納する。また、ＨＤＤ２０４は後述する不揮発性メモリ４０５としても用いられる。
【００３２】
前述したように、ＣＰＵ２０１には、システムバス２０７を介して、操作部ＩＦ（インターフェイス）２０６、ネットワークＩＦ２１０、モデム２５０およびイメージバスＩＦ２０５が接続されている。操作部ＩＦ２０６は、タッチパネルを有する操作部２１２とのインターフェイスであり、操作部２１２に表示される画像データを操作部２１２に出力する。また、操作部ＩＦ２０６は、操作部２１２においてユーザにより入力された情報をＣＰＵ２０１に送出する。
【００３３】
ネットワークＩＦ２１０は、ＬＡＮ１０３に接続され、ＬＡＮ１０３を介してＬＡＮ１０３上の各装置との間で情報の入出力を行う。モデム２５０は、公衆回線（図示せず）に接続され、情報の入出力を行う。イメージバスＩＦ２０５は、システムバス２０７と画像データを高速で転送する画像バス２０８と接続され、データ構造を変換するためのバスブリッジである。
【００３４】
画像バス２０８は、ＰＣＩバスまたはＩＥＥＥ１３９４から構成される。画像バス２０８には、前述したように、ラスタイメージプロセッサ（ＲＩＰ）２６０、デバイスＩＦ２２０、スキャナ画像処理部２８０、プリンタ画像処理部２９０、画像回転部２３０および画像圧縮部２４０が備わっている。
【００３５】
ＲＩＰ２６０は、ＰＤＬコードをビットマップイメージに展開するプロセッサである。デバイスＩＦ２２０には、スキャナ２７０およびプリンタ２９５が接続され、デバイスＩＦ２２０は、画像データの同期系／非同期系の変換を行う。スキャナ画像処理部２８０は、入力画像データに対して補正、加工および編集を行う。プリンタ画像処理部２９０は、プリント出力画像データに対してプリンタの補正、解像度変換などを行う。画像回転部２３０は、画像データの回転を行う。画像圧縮部２４０は、多値画像データをＪＰＥＧデータに、また２値画像データをＪＢＩＧ、ＭＭＲ、ＭＨなどのデータに圧縮するとともに、その伸張処理を行う。
【００３６】
図３はＭＦＰ１０１における本実施形態の主要な部分に係るソフトウェアの構成を示す図である。ＭＦＰ１０１は、Ｌｉｎｕｘなどの汎用ＯＳ（Operation System）を有する。アプリケーション３０１は、ＭＦＰ１０１上で動作するネットワークアプリケーションの集合である。ソケットＩＦ３０２はＯＳによって提供されるソケットＩＦプログラムである。
【００３７】
アプリケーション３０１に含まれるネットワークアプリケーションが通信を行う場合、ソケットＩＦ３０２を呼び出すことによって、データの送信や受信といった処理が可能になる。ソケットＩＦはネットワークアプリケーションが通信を行う際に必ずしも必要なプログラムではないが、ＯＳの種類によらず汎用的なプログラム命令と処理フローを用いることができるため、アプリケーションの開発工数を削減することができる。このため、ネットワークアプリケーションは、ソケットＩＦを呼び出してデータの送受信を行うことが一般的である。
【００３８】
ネットワークスタック３０３はプロトコルスタック群である。ネットワークドライバ３０４はネットワークＩＦ２１０のデバイスドライバである。パケット取得アプリケーション３０５は、ネットワークＩＦ２１０が送受信するネットワークパケットの取得やログ出力を行うアプリケーションである。パケット取得アプリケーション３０５は、デバイスドライバ３０４からデータ取得を行うことによって、ネットワークＩＦ２１０が受信した全てのパケットと、ネットワークＩＦ２１０が送信する全てのパケットを取得する。
【００３９】
パケット取得アプリケーション３０５の詳細な処理内容と利用するハードウェアの構成については、図４を用いて後述する。アプリケーション３０１およびパケット取得アプリケーション３０５はアプリケーションスペースで動作しており、ソケットＩＦ３０２、ネットワークスタック３０３およびデバイスドライバ３０４はカーネルスペースで動作している。
【００４０】
図４はパケット取得アプリケーション３０５の詳細な処理内容と利用するハードウェアの構成を示すブロック図である。画像形成装置は、ネットワークで送受信されるパケットを取得するパケットキャプチャリング機能を搭載し、取得（キャプチャ）したパケットを、装置の動作内容である通信内容が記録されたログデータとして扱う。パケット取得アプリケーション３０５は、コントローラユニット２００内のＲＯＭ２０３に格納され、ＣＰＵ２０１によって実行されることで、アプリケーション管理部４０１、ログデータ取得処理部４０２およびログデータ保存処理部４０３の機能が実現される。
【００４１】
アプリケーション管理部４０１は、各タスクの起動状態、処理状態の管理、揮発性メモリの記憶データサイズおよび記憶位置の管理を行う。また、ログデータ取得処理部４０２およびログデータ保存処理部４０３は、それぞれ揮発性メモリ４０４内のＡ領域、Ｂ領域のどちらにアクセスしているかの情報を管理する。また、ログデータ取得処理部４０２およびログデータ保存処理部４０３は、他タスクおよび他アプリケーション間の通信を行う。
【００４２】
ログデータ取得処理部４０２はネットワークスタック３０３から外部ネットワークに送信するデータを取得する。また、ログデータ取得処理部４０２は外部ネットワークから受信したデータをデバイスドライバ３０４から取得する。ログデータ取得処理部４０２は取得したログデータを揮発性メモリ４０４に記憶する。
【００４３】
一方、ログデータ保存処理部４０３は、揮発性メモリ４０４に記憶されているログデータを取得し、磁気記憶装置などの不揮発性メモリ４０５に保存する。なお、本実施形態では、揮発性メモリ４０４としてＲＡＭ２０２が用いられる。また、不揮発性メモリ４０５としてハードディスク２０４が用いられる。揮発性メモリ４０４はログデータを一時的に記憶する。記憶領域は、論理的な固定サイズのＡ領域とＢ領域に分割されている。不揮発性メモリ４０５はログデータを格納する。
【００４４】
また、処理４０６は、ログデータ取得処理部４０２から揮発性メモリ４０４のＡ領域へのログデータの記憶処理を示す。処理４０６を行っている間、アプリケーション管理部４０１によって揮発性メモリ４０４のＡ領域は排他領域となる。処理４０７は、ログデータ取得処理部４０２から揮発性メモリ４０４のＢ領域へのログデータの記憶処理を示す。処理４０７を行っている間、アプリケーション管理部４０１によって揮発性メモリ４０４のＢ領域は排他領域となる。
【００４５】
処理４０８は、揮発性メモリ４０４のＡ領域からログデータ保存処理部４０３へのログデータの取得処理を示す。処理４０８を行っている間、アプリケーション管理部４０１によって揮発性メモリ４０４のＡ領域は排他領域となる。処理４０９は、揮発性メモリ４０４のＢ領域からログデータ保存処理部４０３へのログデータの取得処理を示す。処理４０９を行っている間、アプリケーション管理部４０１によって揮発性メモリ４０４のＢ領域は排他領域となる。
【００４６】
処理４１０は、アプリケーション管理部４０１とログデータ取得処理部４０２との間で、タスク起動状態、処理状態の通知、揮発性メモリへのアクセス領域参照および排他領域参照を行う処理である。処理４１１は、アプリケーション管理部４０１とログデータ保存処理部４０３との間で、タスク起動状態、処理状態の通知、揮発性メモリへのアクセス領域参照および排他領域参照を行う処理である。
【００４７】
これらの処理内容から、ログデータは、揮発性メモリのＡ領域とＢ領域のいずれかに記憶される。そして、ログデータ取得処理部４０２によってログデータがＡ領域に記憶されている間、ログデータ保存処理部４０３は、揮発性メモリ４０４のＢ領域のデータを取得して不揮発性メモリ４０５に保存する。逆に、ログデータ取得処理部４０２によってログデータがＢ領域に記憶されている間、ログデータ保存処理部４０３は、揮発性メモリ４０４のＡ領域のデータを取得して不揮発性メモリ４０５に保存する。
【００４８】
ログデータ取得処理部４０２とログデータ保存処理部４０３におけるＡ領域とＢ領域へのアクセス切り換えは、アプリケーション管理部４０１によって管理されているアクセス領域と排他領域の情報を用いて行われる。ログデータ取得処理部４０２の揮発性メモリ４０４へのアクセスは、ログデータ取得時に行われる。
【００４９】
一方、ログデータ保存処理部４０３の揮発性メモリ４０４へのアクセスは、アプリケーション管理部４０１によって管理されているログデータ記憶サイズが不揮発性メモリ４０５への保存開始の閾値を満たしたことによって行われる。これは、論理固定サイズであるＡ、Ｂ領域内で、ある一定サイズのログデータが記憶された時点で、不揮発性メモリ４０５への保存を行うことを意味する。たとえ、Ａ、Ｂ領域の論理的な最大記憶サイズに達していなくても、この閾値に達した時点で不揮発性メモリ４０５への保存が行われる。本実施形態では、この閾値を動的に変更することによって、効率の良いログデータの保存を実現することに特徴がある。この閾値の算出方法については後述する。
【００５０】
図５は通常状態においてログデータ取得処理部４０２が行うログデータ取得処理手順を示すフローチャートである。まず、ログデータ取得処理部４０２は、ネットワークスタック３０３およびデバイスドライバ３０４から送受信ログデータを取得する（ステップＳ１）。ログデータ取得処理部４０２は、アクセス状態情報テーブル（図７参照）から、揮発性メモリ４０４のＡ領域およびＢ領域のアクセス状態を参照し、「書込み中」状態である領域が存在するか否かを判別する（ステップＳ２）。後述するように、この記憶領域の状態は、「書込み可能」、「書込み中」、「読出し」の３種類のいずれかである。
【００５１】
「書込み中」状態である領域が存在する場合、ログデータ取得処理部４０２は、この対象記憶領域をログデータ記憶処理領域に決定する（ステップＳ４）。一方、ステップＳ２において、「書込み中」状態の記憶領域が存在しない場合、ログデータ取得処理部４０２は、「書込み可能」状態である領域が存在するか否かを判別する（ステップＳ３）。「書込み可能」状態である領域が存在する場合、ログデータ取得処理部４０２は、この領域をログデータ記憶処理領域に決定する（ステップＳ４）。一方、「書込み可能」状態となっている領域が存在しない場合、一定時間タスクを遅延（ＤＥＬＡＹ）させ、ログデータ取得処理部４０２は、再度、ステップＳ２の処理に戻り、記憶領域決定処理を行う。
【００５２】
この間、ネットワークから受信されるデータは、次回ステップＳ１の処理が実行されるまでデバイスドライバ３０４で使用されているＲＡＭに記憶される。
【００５３】
ログデータ取得処理部４０２は、決定した記憶領域に対し、他タスクからのアクセス排他制御を行う（ステップＳ５）。
【００５４】
ログデータ取得処理部４０２は、排他制御が行われた領域に対し、取得したログデータを書込み可能サイズ分だけ書込み処理を行う（ステップＳ６）。ログデータ取得処理部４０２は、ログデータの読出し開始位置、記憶しているログデータの合計サイズ、次回書込み処理を行う位置および記憶領域の状態をアクセス状態情報テーブル（図７参照）に設定する（ステップＳ７）。このとき、ログデータ取得処理部４０２は、書込み処理を行った後、その領域の不揮発性メモリ４０５への保存開始サイズ（図７参照）を参照し、書込んだ領域の記憶サイズが保存開始サイズを超えている場合、記憶領域の状態を「読出し」状態に設定する。これにより、この領域に記憶されているログデータに対し、新しいログデータによる上書きを回避することができる。一方、記憶領域に書込むための空きが存在する場合、ログデータ取得処理部４０２は、記憶領域の状態を「書込み中」状態に設定する。新しく取得したログデータは、次回の処理で空き領域に追加で書き込まれる。
【００５５】
ログデータ取得処理部４０２は、記憶処理のためにアクセス排他制御を行っていた領域を解除する（ステップＳ８）。この後、ログデータ取得処理部４０２は、ステップＳ１の処理に戻る。
【００５６】
図６は通常状態においてログデータ保存処理部４０３が行う不揮発性メモリ４０５へのログデータ保存処理手順を示すフローチャートである。この処理は、アプリケーション管理部４０１によってログデータ取得処理部４０２による処理と併せて開始される。
【００５７】
ログデータ保存処理部４０３は、アクセス状態情報テーブル（図７）から、揮発性メモリ４０４のＡ領域およびＢ領域のアクセス状態を参照し、「読出し」状態である領域が存在するか否かを判別する（ステップＳ１１）。「読出し」状態の領域が存在する場合、ログデータ保存処理部４０３は、この領域をログデータ保存処理領域に決定する（ステップＳ１２）。
【００５８】
ログデータ保存処理部４０３は、決定したログデータ保存処理領域に対し、他タスクからのアクセス排他制御を行う（ステップＳ１３）。ログデータ保存処理部４０３は、排他制御を行った領域に記憶されている全ログデータを、磁気ディスクなどの不揮発性メモリ４０５に保存する（ステップＳ１４）。
【００５９】
保存処理終了後、ログデータ保存処理部４０３は、アクセス状態情報テーブル（図７参照）において、記憶したログデータの合計、読出し開始位置および次回書込み開始位置を初期化し、記憶領域の状態を「書込み可能」に設定する（ステップＳ１５）。これにより、ログデータ保存処理部４０３は、この領域を新しいログデータ取得時の書込み領域とする。そして、ログデータ保存処理部４０３は、保存処理のためにアクセス排他制御を行っていた領域を解除する（ステップＳ１６）。この後、ログデータ保存処理部４０３は、ステップＳ１１の処理に戻る。
【００６０】
一方、ステップＳ１１で「読出し」状態の領域が存在しない場合、ログデータ保存処理部４０３は、「書込み中」状態である領域が存在するか否かを判別する（ステップＳ１７）。「書込み中」状態である領域が存在する場合、ログデータ保存処理部４０３は、この領域のアクセス状態情報テーブル（図７参照）に設定されている現在の記憶データサイズおよび不揮発性メモリへの保存開始の閾値を参照する（ステップＳ１８）。
【００６１】
ログデータ保存処理部４０３は、現在記憶しているデータサイズが不揮発性メモリへの保存開始サイズ（閾値）に達しているか否かを判別する（ステップＳ１９）。現在記憶しているデータサイズが不揮発性メモリへの保存開始サイズ（閾値）に達している場合、ログデータ保存処理部４０３は、ステップＳ１２の処理に戻り、この領域をログデータ保存処理領域に決定し、領域の状態を「読出し」に設定する。
【００６２】
一方、現在記憶しているデータサイズが不揮発性メモリへの保存開始サイズ（閾値）に達していない場合、ログデータ保存処理部４０３は、ステップＳ１１の処理に戻る。また一方、ステップＳ１７で「書込み中」状態の領域が存在しない場合、ログデータ保存処理部４０３は、ステップＳ１１の処理に戻る。
【００６３】
図７は揮発性メモリ４０４内のＡ、Ｂ各領域に関するアクセス状態情報テーブルを示す図である。このアクセス状態情報テーブルは、コントローラユニット２００内のＲＡＭ２０２に格納されている。項目７０１は揮発性メモリ４０４内の論理的に設定された領域を示す。項目７０２は領域毎に設定される領域アクセス状態を示す。この領域アクセス状態の種類として、「書込み可能」、「書込み中」、「読出し」の３つが設定可能である。
【００６４】
ここで、「書込み可能」状態は、該当する領域における現在の記憶データサイズが０Ｂｙｔｅであり、ログデータ取得処理でアクセス可、かつ、ログデータ保存処理でアクセス不可の状態を示す。「書込み中」状態は、該当する領域における現在の記憶データサイズが１Ｂｙｔｅ以上かつ最大記憶サイズ以下であり、ログデータ取得処理およびログデータ保存処理の両方からアクセス可の状態を示す。「読出し」状態は、該当する領域における現在の記憶データサイズがその領域の最大記憶サイズであり、ログデータ取得処理でアクセス不可およびログデータ保存処理でアクセス可の状態を示す。
【００６５】
項目７０３は現在記憶しているログデータのサイズを示す。領域のアクセス状態が「読出し」の場合、このサイズは必ず最大記憶サイズとなる。項目７０４はログデータ保存処理部４０３によって読み出されるログデータの読出し開始アドレスを示す。このアドレスはログデータ保存処理終了後に初期化される。項目７０５はログデータ取得処理部４０２によって書き込まれるログデータの書込み開始アドレスを示す。このアドレスはログデータの書込み毎に更新され、ログデータ保存処理終了後に初期化される。
【００６６】
項目７０６はログデータの不揮発性メモリへの保存開始サイズである閾値を示す。この情報は領域のアクセス状態が「書込み中」の場合のみ有効となる。アクセス状態が「書込み中」の場合、この領域には新しく追加記憶可能な空きが存在することになるため、ログデータ取得処理部４０２からアクセス可となる。しかし、この領域に記憶されるログデータサイズが最大記憶サイズに達するまで不揮発性メモリへの保存処理を行わないようにすると、電源断が発生した時点で記憶データが消滅してしまう。このため、不揮発性メモリへの保存開始サイズ（閾値）を設定し、現在記憶しているログデータサイズ７０３がこの保存開始サイズ７０６に達している場合、ログデータ保存処理部４０３は、全記憶データを不揮発性メモリ４０５に保存する。この閾値であるサイズを一定条件の下で動的に変更することで、効率の良いログデータ保存を実現することができる。
【００６７】
つぎに、ログデータの不揮発性メモリへの保存開始サイズ（閾値）の動的変更条件（条件１）とその動作について示す。図８は画像形成装置の障害検出時におけるアプリケーション管理部４０１の処理手順を示すフローチャートである。アプリケーション管理部４０１は、画像形成装置の電源ＯＮによって１タスクとして起動し、常駐することによってログデータ取得処理部４０２とログデータ保存処理部４０３の動作状態を管理したり、他タスクとの間でメッセージを送受信を行う。また、アプリケーション管理部４０１は、例えばユーザ操作やタイマ機能などにより、ログデータ取得開始／終了通知を他タスクから受信すると、ログデータ取得処理部４０２とログデータ保存処理部４０３を起動し、動作開始／終了の命令を行う。
【００６８】
まず、アプリケーション管理部４０１は、他タスクから障害エラー発生のメッセージを受信すると（ステップＳ２１）、受信したメッセージ対する障害エラーが電源ＯＦＦ／ＯＮを伴うような致命的エラーであるか否かを判断する（ステップＳ２２）。
【００６９】
ここで、致命的エラーの具体例として、印刷ジャムの発生、印刷カウンタ情報の破壊、改ざん検知、スキャナやプリンタ機器に対する通信エラー発生、各アプリケーションの例外処理発生などが挙げられる。また、不明な障害エラーは致命的エラーとされる。発生した障害が致命的な障害エラーの場合、画像形成装置の電源をＯＦＦにしなければ傷害が復旧しない可能性が高く、電源断が発生する可能性が極めて高い。
【００７０】
アプリケーション管理部４０１は、揮発性メモリ４０４に記憶しているログデータの消滅を防ぐべく、その後のログデータをできるだけ不揮発性メモリ４０５に保存するために、不揮発性メモリへの保存開始サイズ７０６を最小サイズに設定する（ステップＳ２３）。ここで示される最小サイズは、ネットワークパケットである場合、１パケットのサイズなど、ログデータの最小値である。なお、最小サイズに設定されたログデータ記憶サイズは、電源ＯＦＦ／ＯＮによる再起動操作によって、アプリケーション管理部４０１の起動時にデフォルトサイズに設定される。
【００７１】
アプリケーション管理部４０１は、ログデータ保存処理部４０３にログデータ保存処理命令を行う（ステップＳ２４）。この命令以降、ログデータ保存処理部４０３は、不揮発性メモリ４０５へのデータ保存処理を行うため、ステップＳ２３で設定した不揮発性メモリへの保存開始サイズ（閾値）７０６を参照し、取得したログデータを直ちに不揮発性メモリ４０５に保存する。この後、アプリケーション管理部４０１は、ステップＳ２１に戻り、通常処理を行う。一方、ステップＳ２２で発生した障害が致命的な障害エラーでない場合、アプリケーション管理部４０１は、ステップＳ２１に戻り、通常処理を行う。
【００７２】
つぎに、ログデータの不揮発性メモリへの保存開始サイズ（閾値）７０６の動的変更中における操作部２１２の表示内容について示す。なお、この表示内容は後述する実施形態においても同様である。図９はログデータの不揮発性メモリへの保存開始サイズ（閾値）７０６がデフォルトよりも縮小サイズで設定中における操作部２１２の表示画面を示す図である。この表示画面では、ユーザの手動による電源スイッチ強制ＯＦＦを防ぐために、注意喚起として表示５０１が行われる。すなわち、操作部２１２の表示５０１は、不揮発性メモリへの保存開始サイズである閾値を変更中、ユーザに対し、シャットダウンモードで正常な電源ＯＦＦ処理を行うように促すものである。この表示５０１は、ログデータの不揮発性メモリへの保存開始サイズ（閾値）７０６がデフォルトよりも縮小サイズに設定されている間、継続して行われる。このように、ログデータの不揮発性メモリへの保存開始サイズ（閾値）７０６が縮小サイズに設定される場合、画像形成装置に電源断が発生する可能性が高いことを意味し、揮発性メモリに記憶しているログデータの消滅を防ぐために、この表示が行われる。
【００７３】
第１の実施形態の画像形成装置では、画像形成装置はログデータを取得して揮発性メモリに記憶する。揮発性メモリには、予め磁気ディスク等の不揮発性メモリへの保存開始サイズが閾値として設定されている。記録したログデータがこの閾値を満たした時点で不揮発性メモリに保存される。また、この閾値は一定条件をトリガとして再設定され、ログデータの不揮発性メモリへの保存開始サイズである閾値は、障害エラーの発生によって、画像形成装置の再起動を必要とする場合に最小値に設定される。
【００７４】
このように、ログデータの不揮発性メモリへの保存開始の閾値を動的に変更することによって、電源断発生時、不揮発性メモリへのログデータの退避を効率よく行うことができる。これにより、機器の不具合、パフォーマンスの低下が発生した前後のログデータなど、障害解析を行う上で重要となるデータを保存することが可能となる。
【００７５】
また、不揮発性メモリへの頻繁なアクセスによるパフォーマンスの低下と不揮発性メモリの劣化を抑えながら、効率の良いログデータの保存が可能となる。さらに、揮発性メモリから不揮発性メモリへのログデータ保存を効率よく行うことで、補助バッテリや充電メモリなどを使用しない、低コストでのログデータ保存機能の実現が可能となる。
【００７６】
［第２の実施形態］
第２の実施形態では、前記第１の実施形態で示したログデータの不揮発性メモリへの保存開始サイズ（閾値）を動的に変更する際の条件とは、異なる条件（条件２）および動作について示す。なお、第２の実施形態の画像形成装置の構成は前記第１の実施形態と同一であるので、同一の符号を用いることによりその説明を省略する。
【００７７】
図１０は第２の実施形態におけるアプリケーション管理部４０１の処理手順を示すフローチャートである。この処理では、アプリケーション管理部４０１が画像形成装置の操作部２１２の制御タスクの不具合やパフォーマンスの低下を検出した際、設定を変更する。
【００７８】
アプリケーション管理部４０１は、操作部２１２の制御タスクに対し、定期的にヘルスチェックメッセージを送信する（ステップＳ３１）。アプリケーション管理部４０１は、送信したヘルスチェックメッセージの応答待ちタイマを設定する（ステップＳ３２）。アプリケーション管理部４０１は、他タスクからのメッセージを受信する（ステップＳ３３）。
【００７９】
アプリケーション管理部４０１は、他タスクから受信したメッセージが操作部２１２の制御タスクからのヘルスチェック応答であるか否かを判別する（ステップＳ３４）。ヘルスチェック応答である場合、操作部２１２の制御タスクは正常に動作しているので、アプリケーション管理部４０１は、ステップＳ３１に戻り、次回定期時のヘルスチェック送信処理を行う。
【００８０】
一方、ヘルスチェック応答でない場合、アプリケーション管理部４０１は、ヘルスチェックメッセージの応答待ちタイマの通知であるか否かを判別する（ステップＳ３５）。受信したメッセージがヘルスチェックメッセージの応答待ちタイマの通知である場合、操作部２１２の制御タスクから応答の障害もしくはパフォーマンスの低下が発生したとみなす。この理由として、ヘルスチェックの要求対象である操作部２１２の制御タスクが障害によってシャットダウン、処理のロックによるフリーズ、タスクにかかる負荷の増加などによって、ヘルスチェック応答を返すことができないことが考えられる。この状態は請求項に記載の操作手段の異常に相当する。
【００８１】
この結果、障害やユーザ等による電源断の可能性が高くなる。揮発性メモリ４０４内に記憶しているログデータの消滅を防ぐ目的でその後のログデータをできるだけ不揮発性メモリ４０５に保存するために、アプリケーション管理部４０１は不揮発性メモリへの保存開始サイズ７０６を最小サイズに設定する（ステップＳ３６）。ここで示されている最小サイズは、ネットワークパケットである場合、１パケット分のサイズなど、ログデータの最小値である。
【００８２】
アプリケーション管理部４０１は、ログデータ保存処理部４０３にログデータ保存処理命令を行う（ステップＳ３７）。この命令以降、ログデータ保存処理部４０３は、不揮発性メモリへのデータ保存処理を行うため、ステップＳ３６で設定された不揮発性メモリへの保存開始サイズ（閾値）を参照し、取得したログデータを直ちに不揮発性メモリ４０５に保存する。
【００８３】
アプリケーション管理部４０１は、障害やユーザ等による電源断が一定時間発生しない場合の対応を考慮し、不揮発性メモリへの保存開始サイズ（閾値）７０６の変更タイマを設定する（ステップＳ３８）。この後、アプリケーション管理部４０１は、ステップＳ３３の処理に戻る。
【００８４】
一方、ステップＳ３５で、受信したメッセージがヘルスチェックメッセージの応答待ちタイマの通知でない場合、アプリケーション管理部４０１は、不揮発性メモリへの保存開始サイズ（閾値）７０６の変更タイマの通知であるか否かを判別する（ステップＳ３９）。
【００８５】
閾値７０６の変更タイマの通知である場合、操作部２１２の制御タスクの障害あるいはパフォーマンスの低下が発生した後、一定時間、電源断が発生しないことになる。このため、アプリケーション管理部４０１は、ステップＳ３６で最小値に設定した不揮発性メモリへの保存開始サイズ（閾値）７０６を前回設定時のサイズに再設定する（ステップＳ４０）。この後、アプリケーション管理部４０１は、ステップＳ３１の処理に戻る。一方、ステップＳ３９で閾値７０６の変更タイマの通知でない場合、アプリケーション管理部４０１は、ステップＳ３１の処理に戻る。なお、最小値に設定されたログデータ記憶サイズは、電源ＯＦＦ／ＯＮによる再起動操作によって、アプリケーション管理部４０１の起動時にデフォルトサイズに設定される。
【００８６】
このように、第２の実施形態の画像形成装置では、ログデータの不揮発性メモリへの保存開始サイズである閾値は、ユーザインタフェースからの操作異常と操作性低下の発生を検知すると、一定時間、最小値（サイズ）に設定される。閾値が最小値に設定された後、一定時間が経過すると、閾値は前回最小値に設定する前に設定されていた値（サイズ）に戻すように、再設定される。これにより、電源断が発生する可能性の高い、ユーザによって操作される操作部の異常に備えることができる。
【００８７】
［第３の実施形態］
第３の実施形態では、前記第１、第２の実施形態で示したログデータの不揮発性メモリへの保存開始サイズ（閾値）を動的に変更する際の条件とは、異なる条件（条件３）および動作について示す。なお、第３の実施形態の画像形成装置の構成は前記第１の実施形態と同一であるので、同一の符号を用いることによりその説明を省略する。
【００８８】
図１１は第３の実施形態におけるアプリケーション管理部４０１の処理手順を示すフローチャートである。この処理では、アプリケーション管理部４０１が、一定時間毎に各時間帯における電源断発生の合計回数と累積時間（蓄積時間）とからその時間帯の電源断平均発生回数を算出し、その回数が一定の閾値を超える場合、設定を変更する。
【００８９】
アプリケーション管理部４０１は、定期的に電源断が発生した回数をチェックするために、電源断発生回数チェックタイマを設定する（ステップＳ４１）。アプリケーション管理部４０１は、他タスクからのメッセージを受信する（ステップＳ４２）。アプリケーション管理部４０１は、受信したメッセージが電源断発生回数チェックタイマの通知であるか否かを判別する（ステップＳ４３）。
【００９０】
電源断発生回数チェックタイマの通知である場合、アプリケーション管理部４０１は、この時間帯において、現在までの電源断の平均発生回数を算出する（ステップＳ４４）(回数算出手段)。この算出は、この時間帯における現在までの蓄積時間と電源断の合計発生回数を基に行われる。なお、蓄積時間と電源断の合計発生回数はＲＡＭ２０２に記憶される（請求項５に記載の保持手段に相当）。アプリケーション管理部４０１は、算出した電源断平均発生回数が一定の閾値を超えるか否かを判別する（ステップＳ４５）。この閾値は請求項に記載の所定値に相当する。
【００９１】
電源断平均発生回数が閾値を超えている場合、アプリケーション管理部４０１は、この時間帯を、不揮発性メモリへの保存開始サイズ（閾値）７０６の縮小時間帯として設定する（ステップＳ４６）。
【００９２】
図１２は各時刻における電源断（ＯＦＦ）の回数を示すグラフである。同図（Ｂ）では、電源ＯＦＦの回数が閾値を超えている時間帯ａが、不揮発性メモリへの保存開始サイズ（閾値）７０６の縮小時間帯として設定される。一方、同図（Ａ）では、全時間帯が縮小時間帯として設定される。
【００９３】
アプリケーション管理部４０１は、画像形成装置のシステム時刻を取得する（ステップＳ４７）。アプリケーション管理部４０１は、取得した現在時刻が不揮発性メモリへの保存開始サイズ（閾値）７０６の縮小時間帯であるか否かを判別する（ステップＳ４８）。縮小時間帯である場合、アプリケーション管理部４０１は、現在、画像形成装置に障害が発生しているか、あるいはパフォーマンスの低下が発生しているか否かを判別する（ステップＳ４９）。
【００９４】
画像形成装置に障害が発生しているか、あるいはパフォーマンスの低下が発生している場合、アプリケーション管理部４０１は、ステップＳ４１の処理に戻る。この場合、不揮発性メモリへの保存開始サイズ（閾値）７０６は最小サイズに設定されているので、アプリケーション管理部４０１は、この設定を維持することによって、揮発性メモリ４０４内に記憶しているログデータの消滅を防ぐようにする。
【００９５】
一方、画像形成装置に障害が発生しておらず、かつパフォーマンスの低下が発生していない場合、この時間帯に電源断が発生する可能性が高いので、アプリケーション管理部４０１は、次のような設定を行う。すなわち、アプリケーション管理部４０１は、揮発性メモリ４０４内に記憶されているログデータの消滅を防ぐ目的で不揮発性メモリへの保存開始サイズ（閾値）７０６を縮小のサイズに設定する（ステップＳ５０）。この後、アプリケーション管理部４０１は、ステップＳ４１の処理に戻る。
【００９６】
一方、ステップＳ４８で縮小時間帯でない場合、アプリケーション管理部４０１は、
不揮発性メモリへの保存開始サイズ（閾値）７０６を縮小前のサイズに設定する（ステップＳ５１）。この後、アプリケーション管理部４０１は、ステップＳ４１の処理に戻る。
【００９７】
また、ステップＳ４５で電源断平均発生回数が閾値を超えていない場合、あるいはステップＳ４３で電源断発生回数チェックタイマの通知でない場合、アプリケーション管理部４０１は、ステップＳ４１の処理に戻る。
【００９８】
このように、第３の実施形態の画像形成装置では、一定時間毎に各時間帯において発生した電源断の発生回数と各時間帯における現在までの累積時間を記憶しておき、これを用いてチェック対象となる時間帯における電源断の平均発生回数が算出される。チェック対象となる時間帯における電源断の平均発生回数が一定の閾値を超えている場合、その時間帯におけるログデータの不揮発性メモリへの保存開始サイズである閾値が動的に変更される。これにより、電源断が発生する可能性の高い時間帯に備えることができる。
【００９９】
［第４の実施形態］
第４の実施形態では、前記第１、第２、第３の実施形態で示したログデータの不揮発性メモリへの保存開始サイズ（閾値）を動的に変更する際の条件とは、異なる条件（条件４）および動作について示す。なお、第４の実施形態の画像形成装置の構成は前記第１の実施形態と同一であるので、同一の符号を用いることによりその説明を省略する。
【０１００】
図１３は第４の実施形態におけるアプリケーション管理部４０１の処理手順を示すフローチャートである。この処理では、アプリケーション管理部４０１が不揮発性メモリへの保存開始サイズ（閾値）７０６を算出する場合、設定を変更する。
【０１０１】
アプリケーション管理部４０１は、定周期にログデータの不揮発性メモリへの保存開始サイズ（閾値）７０６の変更チェックを行うために、不揮発性メモリへの保存開始サイズの変更タイマを設定する（ステップＳ６１）。
【０１０２】
アプリケーション管理部４０１は、他タスクからのメッセージを受信する（ステップＳ６２）。アプリケーション管理部４０１は、受信したメッセージが不揮発性メモリへの保存開始サイズ（閾値）の変更タイマの通知であるか否かを判別する（ステップＳ６３）。閾値の変更タイマの通知である場合、アプリケーション管理部４０１は、現在、画像形成装置に障害が発生しているか、あるいはパフォーマンスの低下が発生しているか否かを判別する（ステップＳ６４）。
【０１０３】
画像形成装置に障害が発生しているか、あるいはパフォーマンスの低下が発生している場合、不揮発性メモリへの保存開始サイズ（閾値）７０６は最小サイズに設定されている。従って、アプリケーション管理部４０１は、ステップＳ６１の処理に戻り、この設定を維持することによって、揮発性メモリ４０４に記憶されているログデータの消滅を防ぐようにする。
【０１０４】
一方、画像形成装置に障害が発生していない、かつパフォーマンスの低下が発生していない場合、アプリケーション管理部４０１は、不揮発性メモリへの保存開始サイズ（閾値）７０６分のデータ取得に必要な時間Ｔ１を算出する（ステップＳ６５）。さらに、アプリケーション管理部４０１は、不揮発性メモリへの保存開始サイズ（閾値）７０６分のデータ保存に必要な時間Ｔ２を算出する（ステップＳ６６）。
【０１０５】
ここで、時間Ｔ１の算出はつぎのように行われる。アプリケーション管理部４０１は、デバイスドライバ３０４からログデータの取得開始時に定周期タイマを起動し、不揮発性メモリへの保存開始サイズ分のデータを取得した時点で定周期タイマのイベント発生カウント値を参照し、データ取得時間を算出する。この時間Ｔ１は請求項に記載の第１の時間に相当する。また、ステップＳ６５の処理は請求項に記載された第１の時間算出手段に相当する。
【０１０６】
一方、時間Ｔ２の算出に関し、単位データブロック当たりの不揮発性メモリへの平均書込み速度は、使用する不揮発性メモリで決まっている。従って、アプリケーション管理部４０１は、その速度に、書込むデータサイズのブロック数の倍数を乗算することによって、データ保存時間を算出する。この時間Ｔ２は請求項に記載の第２の時間に相当する。また、ステップＳ６６の処理は請求項に記載された第２の時間算出手段に相当する。
【０１０７】
アプリケーション管理部４０１は、時間Ｔ１と時間Ｔ２の差分を算出し、この値が一定範囲内である場合、不揮発性メモリへの保存開始サイズ７０６の変更を行わず、一定範囲外である場合、その変更を行う（ステップＳ６７）。この後、アプリケーション管理部４０１はステップＳ６１の処理に戻る。
【０１０８】
また、ステップＳ６４で画像形成装置に障害が発生しているか、あるいはパフォーマンスの低下が発生している場合、あるいはステップＳ６３で閾値の変更タイマの通知でない場合、アプリケーション管理部４０１はステップＳ６１の処理に戻る。
【０１０９】
ここで、時間Ｔ１と時間Ｔ２の差分が値０に近いほど効率の良い処理に繋がる。しかし、タイミングによって、時間Ｔ１の値は大きく変動する。このため、値０を中心とした許容範囲を用意し、時間差分値が、その範囲内である場合、アプリケーション管理部４０１は、不揮発性メモリへの保存開始サイズ７０６の変更を行わない。
【０１１０】
このように、第４の実施形態の画像形成装置は、ログデータ取得処理が不揮発性メモリへの保存開始サイズに達する時間Ｔ１を算出し、また不揮発性メモリへの保存開始サイズ分のログデータを不揮発性メモリに書き込み終えるまでの時間Ｔ２を算出する。算出された時間Ｔ１と時間Ｔ２の差が一定範囲内の値となるように、不揮発性メモリへの保存開始サイズである閾値が動的に変更される。これにより、ログデータの取得と保存をバランス良く行うことができる。
【０１１１】
なお、本発明は、上記実施形態の構成に限られるものではなく、特許請求の範囲で示した機能、または本実施形態の構成が持つ機能が達成できる構成であればどのようなものであっても適用可能である。
【０１１２】
例えば、上記各実施形態では、不揮発性メモリへの保存開始サイズである閾値を最小サイズ（例えば１パケット分のサイズ）に設定したが、最小サイズに限らず、それより大きな任意の縮小したサイズに設定してもよい。
【０１１３】
また、上記第１、第２、第３、第４の実施形態における条件１、２、３、４では、不揮発性メモリへの保存開始サイズ（閾値）７０６を変更する場合、同一の閾値に設定されていたが、条件に応じて異なる閾値に変更するようにしてもよい。図１４は条件に応じて不揮発性メモリへの保存開始サイズ（閾値）が異なる値に設定される様子を示す図である。例えば、通常、閾値として、揮発性メモリに格納される最大サイズに対し、条件１では最も縮小されたサイズが閾値として設定される。その他の条件２、３、４では、条件１のサイズより大きなサイズが閾値として設定される。これは、条件１のように、画像形成装置のエラー発生時では、電源断に至る可能性が極めて高いためである。このように、電源断が発生する可能性が高い現象や時間帯を予測し、それに応じて不揮発性メモリへの保存開始サイズ（閾値）を異なる値に設定してもよい。これにより、画像形成装置の動作状況として、電源断が発生する可能性が高い現象や時間帯に見合ったログデータの退避を行うことができる。
【０１１４】
また、上記実施形態では、揮発性メモリとしてＲＡＭ、不揮発性メモリとしてハードディスクが用いられたが、他の記憶媒体が用いられてもよく、例えば不揮発性メモリとして光磁気ディスク、スタティックＲＡＭ等が用いられてもよい。
【０１１５】
また、本発明の画像形成装置は、複数の機器から構成されるシステムであってもよいし、１つの機器からなる装置であってもよい。
【０１１６】
また、画像形成装置の一態様として、複合機を例示しているが、これに限定されるものではなく、例えばプリンタ、複写機、ファクシミリ装置等の他の画像形成装置であってもよい。
【０１１７】
また、本発明の目的は、以下の処理を実行することによって達成される。即ち、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出す処理である。
【０１１８】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１１９】
また、プログラムコードを供給するための記憶媒体としては、次のものを用いることができる。例えば、フロッピー（登録商標）ディスク、ハードディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等である。または、プログラムコードをネットワークを介してダウンロードしてもよい。
【０１２０】
また、コンピュータが読み出したプログラムコードを実行することにより、上記実施の形態の機能が実現される場合も本発明に含まれる。加えて、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０１２１】
更に、前述した実施形態の機能が以下の処理によって実現される場合も本発明に含まれる。即ち、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行う場合である。
【図面の簡単な説明】
【０１２２】
【図１】第１の実施形態のＭＦＰが接続されたネットワークシステムの構成を示す図である。
【図２】ＭＦＰ１０１のコントローラユニットの主要部の構成を示すブロック図である。
【図３】ＭＦＰ１０１における本実施形態の主要な部分に係るソフトウェアの構成を示す図である。
【図４】パケット取得アプリケーション３０５の詳細な処理内容と利用するハードウェアの構成を示すブロック図である。
【図５】通常状態においてログデータ取得処理部４０２が行うログデータ取得処理手順を示すフローチャートである。
【図６】通常状態においてログデータ保存処理部４０３が行う不揮発性メモリ４０５へのログデータ保存処理手順を示すフローチャートである。
【図７】揮発性メモリ４０４内のＡ、Ｂ各領域に関するアクセス状態情報テーブルを示す図である。
【図８】画像形成装置の障害検出時におけるアプリケーション管理部４０１の処理手順を示すフローチャートである。
【図９】ログデータの不揮発性メモリへの保存開始サイズ（閾値）７０６がデフォルトよりも縮小サイズで設定中における操作部２１２の表示画面を示す図である。
【図１０】第２の実施形態におけるアプリケーション管理部４０１の処理手順を示すフローチャートである。
【図１１】第３の実施形態におけるアプリケーション管理部４０１の処理手順を示すフローチャートである。
【図１２】各時刻における電源断（ＯＦＦ）の回数を示すグラフである。
【図１３】第４の実施形態におけるアプリケーション管理部４０１の処理手順を示すフローチャートである。
【図１４】条件に応じて不揮発性メモリへの保存開始サイズ（閾値）が異なる値に設定される様子を示す図である。
【符号の説明】
【０１２３】
１０１  ＭＦＰ
２１２  操作部
３０５  パケット取得アプリケーション
４０１  アプリケーション管理部
４０２  ログデータ取得管理部
４０３  ログデータ保存処理部
４０４  揮発性メモリ
４０５  不揮発性メモリ
【図１】
0005100463.tif 000002
【図２】
0005100463.tif 000003
【図３】
0005100463.tif 000004
【図４】
0005100463.tif 000005
【図５】
0005100463.tif 000006
【図６】
0005100463.tif 000007
【図７】
0005100463.tif 000008
【図８】
0005100463.tif 000009
【図９】
0005100463.tif 000010
【図１０】
0005100463.tif 000011
【図１１】
0005100463.tif 000012
【図１２】
0005100463.tif 000013
【図１３】
0005100463.tif 000014
【図１４】
0005100463.tif 000015