JP2016095792A - Information processing device, control method thereof, and program - Google Patents

Information processing device, control method thereof, and program Download PDF

Info

Publication number
JP2016095792A
JP2016095792A JP2014232941A JP2014232941A JP2016095792A JP 2016095792 A JP2016095792 A JP 2016095792A JP 2014232941 A JP2014232941 A JP 2014232941A JP 2014232941 A JP2014232941 A JP 2014232941A JP 2016095792 A JP2016095792 A JP 2016095792A
Authority
JP
Japan
Prior art keywords
processing apparatus
information processing
information
application
exception
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
Application number
JP2014232941A
Other languages
Japanese (ja)
Inventor
史朗 九里
Shiro Kuri
史朗 九里
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 JP2014232941A priority Critical patent/JP2016095792A/en
Publication of JP2016095792A publication Critical patent/JP2016095792A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a mechanism for outputting a dump file only when required in the case that insufficient memory occurs without needing a user operation.SOLUTION: An information processing device secures a memory area according to a memory request from an application, generates an exception when the memory area cannot be secured, releases no longer needed memory area secured by other applications to execute GC processing for rearranging a memory area when the exception is generated, does not generate a heap dump file showing a state of a memory after executing GC processing if the exception is generated in a development stage of the application, and generates the heap dump file if the exception is not generated in the development stage of the application.SELECTED DRAWING: Figure 5

Description

本発明は、ログファイル(ヒープダンプファイル)の生成を制御する情報処理装置、その制御方法、及びプログラムに関するものである。   The present invention relates to an information processing apparatus that controls generation of a log file (heap dump file), a control method therefor, and a program.

従来から、画像形成装置(MFP)上で動作するアプリケーション(以下、アプリと称する。)の実行環境としてJava(登録商標)が広く知られている。この実行環境では、Java言語で記述されたアプリ(以下、Javaアプリと称する。)が、Java Virtual Machine(JavaVM)上で動作する。Javaアプリはメモリを利用する場合、JavaVMにメモリ要求を行う。JavaVMは、MFPのメモリ領域からJavaアプリが利用可能なメモリ領域(Javaヒープ領域)として固定の領域をあらかじめ確保しており、Javaアプリからのメモリ要求を受信すると、Javaヒープ領域に空きがあるかを確認する。そして空きがある場合、JavaVMはJavaアプリからの要求に応じたメモリ領域をJavaアプリが利用可能にする。一方、Javaヒープ領域に空きがない場合は、JavaVMはOutOfMemoryErrorというException(例外)を生成し、Javaアプリにこの例外を通知する。このOutOfMemoryError発生時は、OutOfMemoryErrorの原因を特定するために、ヒープダンプファイルというログファイルを生成するのが一般的である。このヒープダンプファイルは、Javaヒープ領域内の状態を表したファイルであり、このファイルを解析することでOutOfMemoryErrorの原因が特定できる。ただし、このヒープダンプファイルを生成するためには、Javaヒープ領域の利用メモリ状況を正確に知るために、ヒープダンプファイル生成前に、Garbage Collection(GC)処理を行う必要がある。このGC処理はJavaVMが実行する処理であり、実行中は全てのJavaアプリに関係する動作が停止する。特に、ヒープ領域中のNew領域だけではなくOld領域とPermanent領域に存在するオブジェクトも削除するFullGCの場合、停止時間が長くなる。   Conventionally, Java (registered trademark) is widely known as an execution environment of an application (hereinafter referred to as an application) that operates on an image forming apparatus (MFP). In this execution environment, an application written in the Java language (hereinafter referred to as a Java application) operates on the Java Virtual Machine (Java VM). When a Java application uses memory, it makes a memory request to the Java VM. JavaVM reserves a fixed area in advance as a memory area (Java heap area) that can be used by the Java application from the memory area of the MFP, and if a memory request is received from the Java application, is there a free space in the Java heap area? Confirm. If there is a free space, the Java VM makes the memory area available to the Java application according to the request from the Java application. On the other hand, when there is no free space in the Java heap area, the Java VM generates an exception (OutException) called OutOfMemoryError, and notifies the Java application of the exception. When this OutOfMemoryError occurs, a log file called a heap dump file is generally generated in order to identify the cause of OutOfMemoryError. This heap dump file is a file representing the state in the Java heap area, and by analyzing this file, the cause of OutOfMemoryError can be specified. However, in order to generate this heap dump file, it is necessary to perform a garbage collection (GC) process before generating the heap dump file in order to accurately know the memory usage status of the Java heap area. This GC process is a process executed by the Java VM, and operations related to all Java applications are stopped during the execution. In particular, in the case of FullGC which deletes not only the New area in the heap area but also objects existing in the Old area and the Permanent area, the stop time becomes long.

そのため、OutOfMemoryError発生時に毎回ヒープダンプファイルを生成すると、頻繁にシステム全体が停止してしまうという課題がある。特許文献1には、特定の種類の例外が発生したときのみログファイルを生成する技術が提案されている。   Therefore, if a heap dump file is generated every time OutOfMemoryError occurs, there is a problem that the entire system frequently stops. Patent Document 1 proposes a technique for generating a log file only when a specific type of exception occurs.

特開2008−186378号公報JP 2008-186378 A

しかしながら、上記従来技術には以下に記載する問題がある。上記従来技術では、例外の種類に応じてヒープダンプファイルの生成の有無を切り替えることが可能となる。しかし、上記従来技術では、例外の種類により生成の有無を切り替えるため、同じ種類の例外が短時間に発生したときに、ヒープダンプファイルの生成の有無を切り替えることができず、重複してヒープダンプファイルを生成してしまうという課題がある。ヒープダンプファイルの生成の有無を切り替える必要がある状況として、例えば次のような状況がある。   However, the above prior art has the following problems. In the above prior art, it is possible to switch whether heap dump files are generated according to the type of exception. However, in the above prior art, since the presence / absence of generation is switched depending on the type of exception, when the same type of exception occurs in a short time, it is not possible to switch whether heap dump file is generated. There is a problem of generating. As a situation where it is necessary to switch whether heap dump files are generated, for example, there are the following situations.

MFP上で動作するJavaアプリを作成した場合、アプリ作成者は、このJavaアプリが使用する最大メモリ使用量を宣言する必要がある。なお、最大メモリ使用量は、Javaアプリに同梱するMANIFESTファイルというアプリの属性を記載するファイルに記載される。この最大メモリ使用量は、MFP上で動作するJavaアプリの合計メモリ量が、MFPで利用可能なJavaアプリのメモリ量を超えないように、Javaアプリのインストールを制限するために利用する。   When a Java application that operates on the MFP is created, the application creator needs to declare the maximum memory usage amount used by the Java application. Note that the maximum memory use amount is described in a file that describes the attribute of the application called a MANIFEST file bundled with the Java application. This maximum memory usage is used to restrict the installation of the Java application so that the total memory amount of the Java application operating on the MFP does not exceed the memory amount of the Java application that can be used in the MFP.

最大使用メモリ量を調べるために、アプリ作成者は最大メモリ使用量測定ツール(以下、測定ツールと称する。)というServletタイプのJavaアプリをMFP上で動作させる。この測定ツールは、アプリ作成者が設定する推定メモリ量以外のメモリ領域を利用し、空き容量を推定メモリ量だけに変更するツールである。この測定ツールを用いてアプリ作成者は作成したJavaアプリのOutOfMemoryErrorが発生しない最大の推定メモリ量を決定する。しかし、当該決定においては、何度もOutOfMemoryErrorを発生させる必要がある。そのため、メモリリーク等の障害によるOutOfMemory発生時はヒープダンプファイルを生成したいが、最大使用メモリ量を決定するために故意に発生させたOutOfMemoryError発生時はファイルの生成を行いたくないという状況がある。上記従来技術では、このような状況に対応することができない。   In order to check the maximum memory usage, the application creator operates a servlet type Java application called a maximum memory usage measurement tool (hereinafter referred to as a measurement tool) on the MFP. This measurement tool is a tool that uses a memory area other than the estimated memory amount set by the application creator, and changes the free capacity to only the estimated memory amount. Using this measurement tool, the application creator determines the maximum estimated memory amount that does not generate an OutOfMemoryError of the created Java application. However, it is necessary to generate OutOfMemoryError many times in the determination. Therefore, there is a situation where it is desired to generate a heap dump file when OutOfMemory occurs due to a failure such as a memory leak, but does not want to generate a file when OutOfMemoryError that is intentionally generated to determine the maximum amount of memory used. The above prior art cannot cope with such a situation.

本発明は、上述の問題に鑑みて成されたものであり、ユーザ操作を必要とすることなく、メモリ不足が発生した場合に必要なときのみダンプファイルを出力する仕組みを提供することを目的とする。   The present invention has been made in view of the above problems, and an object thereof is to provide a mechanism for outputting a dump file only when necessary when a memory shortage occurs without requiring a user operation. To do.

本発明は、情報処理装置であって、アプリケーションからのメモリ要求に従ってメモリ領域を確保し、確保できない場合には例外を発生させるメモリ制御手段と、前記例外が発生すると、他のアプリケーションで確保している不要になったメモリ領域を解放し、メモリ領域を再配置するGC処理を実行する実行手段と、前記実行手段によってGC処理が実行されると、前記情報処理装置に格納されている情報に基づき、前記アプリケーションの開発段階における前記例外の発生であるか否かを判定する判定手段と、前記判定手段による判定結果に基づき、前記アプリケーションの開発段階における前記例外の発生であれば、前記実行手段による前記GC処理を実行した後のメモリの状態を示すヒープダンプファイルの生成を行わず、前記アプリケーションの開発段階における前記例外の発生でなければ、前記ヒープダンプファイルの生成を行う生成手段とを備えることを特徴とする。   The present invention is an information processing apparatus that secures a memory area according to a memory request from an application and generates an exception if the memory area cannot be secured, and secures it in another application when the exception occurs. An execution unit that executes a GC process for releasing a memory area that is no longer needed and rearranges the memory area, and when the GC process is executed by the execution unit, based on information stored in the information processing apparatus A determination unit that determines whether or not the exception occurs in the application development stage; and the execution unit that determines that the exception occurs in the application development stage based on a determination result by the determination unit. The heap dump file indicating the state of the memory after executing the GC process is not generated, and the application If the occurrence of the exception in the application development stage, characterized in that it comprises generating means for generating the heap dump file.

本発明によれば、ユーザ操作を必要とすることなく、メモリ不足が発生した場合に必要なときのみダンプファイルを出力することができる。   According to the present invention, a dump file can be output only when necessary when a memory shortage occurs without requiring a user operation.

第1の実施形態に係る画像形成装置100のコントローラユニット120を表すブロック図。FIG. 2 is a block diagram illustrating a controller unit 120 of the image forming apparatus 100 according to the first embodiment. 第1の実施形態に係るコントローラユニット120のソフトウェア構成を表すブロック図。FIG. 2 is a block diagram illustrating a software configuration of a controller unit 120 according to the first embodiment. 第1の実施形態に係るJavaVM202とOS203のモジュール構成を表す図。The figure showing the module structure of JavaVM202 and OS203 which concerns on 1st Embodiment. 第1の実施形態に係る画像形成装置100で生成するヒープダンプファイルの一具体例を示す図。FIG. 4 is a diagram illustrating a specific example of a heap dump file generated by the image forming apparatus 100 according to the first embodiment. 第1の実施形態に係るOutOfMemoryError発生時の処理を表すフローチャート。6 is a flowchart showing processing when OutOfMemoryError occurs according to the first embodiment. 第1の実施形態に係るGCの処理を表すフローチャート図である。It is a flowchart figure showing the process of GC which concerns on 1st Embodiment. 第1の実施形態に係る開発用Javaアプリと製品用Javaアプリの構成を表す図。The figure showing the structure of the Java application for development which concerns on 1st Embodiment, and the Java application for products. Javaアプリの最大メモリ使用量を測定する流れを表す図。The figure showing the flow which measures the maximum memory usage of a Java application. 第2の実施形態に係るOutOfMemoryError発生時の処理を表すフローチャート。12 is a flowchart showing processing when OutOfMemoryError occurs according to the second embodiment.

以下、添付図面を参照して本発明の実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。   Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. The following embodiments do not limit the present invention according to the claims, and all combinations of features described in the present embodiments are not necessarily essential to the solution means of the present invention. .

<第1の実施形態>
<画像形成装置の構成>
以下では、図1乃至図8を参照して、本発明の第1の実施形態について説明する。まず、図1を参照して、本実施形態に係る画像形成装置100のコントローラユニットについて説明する。ここでは、本発明を適用することができる情報処理装置の一例として画像形成装置100について説明する。
<First Embodiment>
<Configuration of image forming apparatus>
In the following, a first embodiment of the present invention will be described with reference to FIGS. First, a controller unit of the image forming apparatus 100 according to the present embodiment will be described with reference to FIG. Here, an image forming apparatus 100 will be described as an example of an information processing apparatus to which the present invention can be applied.

画像形成装置100は、コントローラユニット120、操作部106、スキャナ116、及びプリンタ118を備える。コントローラユニット120は、CPU101、RAM102、ROM103、HDD104、操作部I/F105、ネットワーク部107、イメージバスI/F109、電源管理部110、RIP113、デバイスI/F114、及び画像処理部119を備える。   The image forming apparatus 100 includes a controller unit 120, an operation unit 106, a scanner 116, and a printer 118. The controller unit 120 includes a CPU 101, a RAM 102, a ROM 103, an HDD 104, an operation unit I / F 105, a network unit 107, an image bus I / F 109, a power management unit 110, a RIP 113, a device I / F 114, and an image processing unit 119.

コントローラユニット120は、画像情報やデバイス情報の入出力を行うだけではなく、装置全体の制御や、ネットワークを介して外部から提供されるデータをプリント出力する制御を行う。また、ネットワークを介した電子メール送信機能を含む通信機能における制御も行う。   The controller unit 120 not only performs input / output of image information and device information, but also performs control of the entire apparatus and control of printing out data provided from outside via a network. Control is also performed in communication functions including an electronic mail transmission function via a network.

CPU101は、ROM103に格納されているブートプログラムに基づきシステムを起動し、このシステム上でHDD(ハードディスクドライブ)104に格納されている制御プログラムを読み出してRAM102をワークエリアとして各種処理を実行する。この制御プログラムにより、Javaプログラムなどの制御を実行することが可能である。HDD104には、上記各種制御プログラムが格納されるとともに、画像データや後述するネットワーク部107が有する全ての通信手法に関する情報を格納する。   The CPU 101 starts the system based on a boot program stored in the ROM 103, reads a control program stored in an HDD (hard disk drive) 104 on the system, and executes various processes using the RAM 102 as a work area. With this control program, it is possible to execute control such as a Java program. The HDD 104 stores the various control programs, and also stores image data and information related to all communication methods of the network unit 107 described later.

CPU101には、RAM102、ROM103、HDD104がシステムバス111を介して接続されている。さらに、操作部I/F105、ネットワーク部107、イメージバスI/F109、及び電源管理部110がシステムバス111を介して接続されている。   A RAM 102, a ROM 103, and an HDD 104 are connected to the CPU 101 via a system bus 111. Further, an operation unit I / F 105, a network unit 107, an image bus I / F 109, and a power management unit 110 are connected via a system bus 111.

操作部I/F105は、操作部106とコントローラユニット120との間のインターフェースであり、操作部106に表示する画像データの操作部106への転送、操作部106における操作入力により発生した信号のCPU101への転送などを行う。操作部106は、画像処理に関する各機能における現在の設定状態、各機能に関する設定情報を入力するための情報入力画面などを表示するための表示部、ユーザが各機能に対する設定情報を入力するキーなどを含む入力部を有する。   The operation unit I / F 105 is an interface between the operation unit 106 and the controller unit 120, and the CPU 101 outputs a signal generated by transferring image data to be displayed on the operation unit 106 to the operation unit 106 and operating input in the operation unit 106. Transfer to. The operation unit 106 includes a current setting state for each function related to image processing, a display unit for displaying an information input screen for inputting setting information related to each function, a key for a user to input setting information for each function, and the like. It has an input part containing.

電源管理部110は、画像形成装置100の電源OFFと電源ONの管理を行う。なお、電源ONを検知した場合、上述のように、CPU101は、ROM103のブートプログラムに基づきシステムを起動し、このシステム上でHDD104に格納されている制御プログラムを実行する。   The power management unit 110 manages power OFF and power ON of the image forming apparatus 100. When the power supply is detected, as described above, the CPU 101 starts up the system based on the boot program stored in the ROM 103 and executes the control program stored in the HDD 104 on this system.

ネットワーク部107は、LAN108に接続され、LAN108を介した情報の入出力を行う。LAN回線にwebサーバや外部装置400が接続されている場合は、そのサーバからLAN108を介して情報を取得することが可能である。また、LAN回線内のプロキシサーバなどを介して、インターネットに接続し、インターネット上のwebサーバからwebコンテンツを取得することも可能である。   The network unit 107 is connected to the LAN 108 and inputs / outputs information via the LAN 108. When a web server or an external device 400 is connected to the LAN line, information can be acquired from the server via the LAN 108. It is also possible to connect to the Internet via a proxy server in the LAN line and acquire web content from a web server on the Internet.

イメージバスI/F109は、システムバス111と、画像バス112とを接続し、データ構造を変換するバスブリッジである。画像バス112は、画像データを高速で転送可能なPCIバス又はIEEE1394規定に従うバスから構成される。画像バス112には、RIP(ラスタイメージプロセッサ)113、デバイスI/F114及び画像処理部119が接続されている。   The image bus I / F 109 is a bus bridge that connects the system bus 111 and the image bus 112 and converts the data structure. The image bus 112 is composed of a PCI bus capable of transferring image data at high speed or a bus conforming to the IEEE 1394 standard. A RIP (raster image processor) 113, a device I / F 114, and an image processing unit 119 are connected to the image bus 112.

RIP113は、PDLコードをビットマップイメージに展開する。デバイスI/F114は、画像入出力デバイスであるスキャナ116やプリンタ118とコントローラユニット120とを接続し、画像データの同期系/非同期系の変換を行う。ここでは、デバイスI/F114とスキャナ116とがケーブル115を介して、デバイスI/F114とプリンタ118とがケーブル117を介してそれぞれ接続されている。   The RIP 113 expands the PDL code into a bitmap image. The device I / F 114 connects the scanner 116 and printer 118, which are image input / output devices, and the controller unit 120, and performs synchronous / asynchronous conversion of image data. Here, the device I / F 114 and the scanner 116 are connected via the cable 115, and the device I / F 114 and the printer 118 are connected via the cable 117, respectively.

画像処理部119は、多値画像データに対してJPEG、二値画像データに対してJBIG、MMR、MHなどの圧縮伸張処理を行う。また、入力画像データや出力画面に対して、プリンタの補正や解像度変換などの補正、加工、編集を行う。このように、コントローラユニット120のCPU101は、各制御プログラムに基づき、システムバス111に接続される各種デバイスとのアクセスを総括的に制御するととともに、デバイスI/F114を介してスキャナ116から画像情報を読み込む。また、読み込んだ画像情報に対して所定の処理を施した後に当該画像情報をデバイスI/F114を介してプリンタ118に出力するなどの制御を行う。さらに、ネットワーク部107を通じて取得したHTMLデータや画像データの解析・変換処理を行い、HDD104へ保存、又は操作部106での表示制御を行う。   The image processing unit 119 performs compression / decompression processing such as JPEG on multi-valued image data and JBIG, MMR, MH, etc. on binary image data. Further, correction, processing, and editing such as printer correction and resolution conversion are performed on the input image data and the output screen. As described above, the CPU 101 of the controller unit 120 comprehensively controls access to various devices connected to the system bus 111 based on each control program, and receives image information from the scanner 116 via the device I / F 114. Read. Further, after the image information that has been read is subjected to predetermined processing, the image information is output to the printer 118 via the device I / F 114. Further, HTML data and image data acquired through the network unit 107 are analyzed and converted, and stored in the HDD 104 or displayed on the operation unit 106.

<ソフトウェア構成>
次に、図2を参照して、画像形成装置100のCPU101やHDD104などの各ハードウェア上で動作するソフトウェアのモジュール構成について説明する。なお、これらの各モジュールにおける処理は、CPU101の命令により、ROM103やHDD104に格納されているプログラムを読み出し、RAM102をワークエリアとして処理を実行することで実現される。また、各処理を実行することで生成される全ての情報は、RAM102又はHDD104に格納する。なお、このような各モジュールにおける処理は、以降でも同様であるため、以降では記載を省略する。
<Software configuration>
Next, a module configuration of software that operates on each hardware such as the CPU 101 and the HDD 104 of the image forming apparatus 100 will be described with reference to FIG. Note that the processing in each of these modules is realized by reading out a program stored in the ROM 103 or HDD 104 and executing the processing using the RAM 102 as a work area in accordance with an instruction from the CPU 101. All information generated by executing each process is stored in the RAM 102 or the HDD 104. Since the processing in each module is the same in the following, description thereof is omitted below.

OS201は、メモリ管理、入出力管理、及びプロセス管理を行うモジュールであり、一般的なOSと同様の処理を行う。JavaVM202は、ROM103又はHDD104に格納されているJavaバイトコードを実行することでJavaプログラムを動作させる仮想マシンである。   The OS 201 is a module that performs memory management, input / output management, and process management, and performs processing similar to that of a general OS. The Java VM 202 is a virtual machine that operates a Java program by executing a Java byte code stored in the ROM 103 or the HDD 104.

アプリプラットフォーム203は、単一のJavaVM202上で少なくとも1つ以上のJavaアプリケーション(以下、Javaアプリ又はアプリと称する。)の起動、停止、インストール、アンインストールといったアプリのライフサイクルの管理・実行を行うモジュールである。また、アプリプラットフォーム203は、アプリA204やアプリB205で共通に利用するライブラリやサービスを有する。   The application platform 203 is a module that manages and executes an application life cycle such as starting, stopping, installing, and uninstalling at least one or more Java applications (hereinafter referred to as Java applications or applications) on a single Java VM 202. It is. The application platform 203 includes a library and a service that are commonly used by the application A 204 and the application B 205.

アプリA204とアプリB205は、アプリプラットフォーム203上で動作するJavaプログラムのバイトコードであり、アプリプラットフォーム203が有するライブラリやサービスを利用して動作する。また、アプリA204とアプリB205は、個別に画像形成装置100にインストールして、アプリプラットフォーム203で起動することが可能である。アプリC206は、Javaアプリ以外のアプリプログラム、例えば、C言語のアプリであり、OS201上で動作する。   The application A 204 and the application B 205 are byte codes of a Java program that operates on the application platform 203, and operate using a library or service that the application platform 203 has. Further, the application A 204 and the application B 205 can be individually installed in the image forming apparatus 100 and activated on the application platform 203. The application C 206 is an application program other than the Java application, for example, a C language application, and operates on the OS 201.

<JavaVM202とプラットフォーム203の処理>
次に、図3を参照して、JavaVM202とアプリプラットフォーム203の詳細な処理について説明する。JavaVM202は、バイトコード実行部301、クラスローダ管理部302、GC実行部303、メモリ制御部304、ヒープダンプファイル情報生成部305、及びOutOfMemoryError発生部306を備える。アプリプラットフォーム203は、アプリ管理部307、ヒープダンプファイル生成判定部308、ヒープダンプファイル生成実行部309を備える。
<Processing of Java VM 202 and Platform 203>
Next, detailed processing of the Java VM 202 and the application platform 203 will be described with reference to FIG. The Java VM 202 includes a bytecode execution unit 301, a class loader management unit 302, a GC execution unit 303, a memory control unit 304, a heap dump file information generation unit 305, and an OutOfMemoryError generation unit 306. The application platform 203 includes an application management unit 307, a heap dump file generation determination unit 308, and a heap dump file generation execution unit 309.

アプリ管理部307は、Javaアプリのインストール、起動、停止、アンインストールといったアプリのライフサイクルの管理・実行を行うためのものであり、一般的なOSGiと同じ処理を行う。バイトコード実行部301は、アプリ管理部307で起動したアプリのバイトコードを解釈し、アプリの処理を実行する。また、バイトコード実行部301は、アプリのオブジェクト生成などの処理でJavaヒープメモリを利用する場合は、メモリ制御部304にメモリ利用要求を送信する。   The application management unit 307 is for managing and executing the life cycle of an application such as installing, starting, stopping, and uninstalling a Java application, and performs the same processing as general OSGi. The bytecode execution unit 301 interprets the bytecode of the application activated by the application management unit 307 and executes the application process. The bytecode execution unit 301 transmits a memory use request to the memory control unit 304 when using the Java heap memory for processing such as application object generation.

クラスローダ管理部302は、クラスローダの生成と管理を行うと共に、Javaのクラスを動的にロードし、バイトコード実行部301で利用可能にする。また、クラスローダ管理部302は、アプリ管理部307で起動したアプリの利用するライブラリやサービスのクラスがロードされていない場合、このクラスをロードし、利用可能にする。   The class loader management unit 302 generates and manages a class loader, and dynamically loads a Java class so that the byte code execution unit 301 can use it. In addition, when the library or service class used by the application activated by the application management unit 307 is not loaded, the class loader management unit 302 loads the class and makes it usable.

メモリ制御部304は、メモリ利用要求を受信すると、Javaヒープメモリ領域(以下、メモリ領域と称する。)の利用状況を調べる。そしてメモリ制御部304は、空き領域があればこのメモリ領域を返し、空き領域がなければOutOfMemoryError発生部306にOutOfMemoryErrorの発生を要求する。また、メモリ制御部304は、Javaアプリのどのオブジェクトがどれくらいのメモリを利用しているのかを示す情報をHDD104に格納する。また、メモリ制御部304は、GC実行部303にGC(Garbage Collection)処理の実行要求を行う。GC処理の詳細については図6を用いて後述する。さらに、メモリ制御部304は、ヒープダンプファイル生成判定部308にヒープダンプファイルの生成判定要求を行い、ヒープダンプファイル情報生成部305にヒープダンプファイル情報生成要求を行う。GC実行部303は、メモリ領域を利用しているJavaオブジェクトのうち、使用されなくなったものを削除するためにGC処理を行う。GC処理は、メモリ制御部304からのGC実行要求又は一定以上のメモリ領域が利用された場合に実行される。   When the memory control unit 304 receives the memory use request, the memory control unit 304 checks the use state of the Java heap memory area (hereinafter referred to as a memory area). If there is a free area, the memory control unit 304 returns this memory area. If there is no free area, the memory control unit 304 requests the OutOfMemoryError generating unit 306 to generate OutOfMemoryError. In addition, the memory control unit 304 stores information indicating which memory of which Java application uses how much memory in the HDD 104. In addition, the memory control unit 304 requests the GC execution unit 303 to execute a GC (Garbage Collection) process. Details of the GC processing will be described later with reference to FIG. Further, the memory control unit 304 makes a heap dump file generation determination request to the heap dump file generation determination unit 308 and makes a heap dump file information generation request to the heap dump file information generation unit 305. The GC execution unit 303 performs GC processing to delete Java objects that are using the memory area and that are no longer used. The GC process is executed when a GC execution request from the memory control unit 304 or a memory area exceeding a certain level is used.

OutOfMemoryError発生部306は、OutOfMemoryErrorの例外を発生させ、メモリ要求元アプリにこの例外を通知する。例外の生成とアプリへの通知の詳細処理は、一般的な仕組みと同じであるため記載は省略する。ヒープダンプファイル生成判定部308は、ヒープダンプファイルを生成するかどうかを後述の条件により判定する。ヒープダンプファイル情報生成部305は、HDD104からメモリ領域の状態を表す情報を取得する。ヒープダンプファイル生成実行部309は、ヒープダンプファイル情報生成部305で取得した情報を元に、ヒープダンプファイルを生成する。   The OutOfMemoryError generating unit 306 generates an OutOfMemoryError exception and notifies the memory request source application of this exception. Detailed processing of generating an exception and notifying an application is the same as a general mechanism, so description is omitted. The heap dump file generation determination unit 308 determines whether or not to generate a heap dump file based on conditions described later. The heap dump file information generation unit 305 acquires information indicating the state of the memory area from the HDD 104. The heap dump file generation execution unit 309 generates a heap dump file based on the information acquired by the heap dump file information generation unit 305.

<GC処理>
次に、図6を参照して、GC実行部303によるGC処理について説明する。以下で説明する処理は、CPU101の命令により、ROM103やHDD104に格納されているプログラムを読み出し、RAM102をワークエリアとして処理を実行することで実現される。ここで、GC処理とは、Javaアプリケーション等のプログラムが動的に確保したメモリ領域のうち、不要になった領域を自動的に解放する処理を示す。
<GC processing>
Next, the GC process performed by the GC execution unit 303 will be described with reference to FIG. The processing described below is realized by reading a program stored in the ROM 103 or the HDD 104 and executing the processing using the RAM 102 as a work area in accordance with an instruction from the CPU 101. Here, the GC process indicates a process of automatically releasing an unnecessary area among memory areas dynamically secured by a program such as a Java application.

まずS201で、GC実行部303は、他の処理を停止し、一般的な“stop the world”といわれる画像形成装置100のシステム全体が停止する状態に制御する。続いてS202で、GC実行部303は、メモリ領域内のGC対象であるオブジェクトの中で参照されていない(使用されていない)オブジェクトを検索する。この結果S203で、GC実行部303は、参照されていないオブジェクトが存在すれば、このオブジェクトを全て削除する。   First, in step S <b> 201, the GC execution unit 303 stops other processes and controls the entire system of the image forming apparatus 100, which is generally called “stop the world”, to stop. Subsequently, in S202, the GC execution unit 303 searches for objects that are not referenced (not used) among objects that are GC targets in the memory area. As a result, if there is an unreferenced object in S203, the GC execution unit 303 deletes all the objects.

次にS204で、GC実行部303は、メモリ領域の断片化(フラグメンテーション)を防ぐために、メモリ領域の再配置を行う。続いてS205で、GC実行部303は、メモリ領域の再配置後のメモリ領域の状態(どのオブジェクトがどれくらいのメモリを利用しているかの状態)をHDD104に格納する。なお、このS205でHDD104に格納した情報が、ヒープダンプファイルに記載する内容となる。そしてS206で、GC実行部303は、S201で停止した処理の実行を再開し、システム全体を再開する。   In step S204, the GC execution unit 303 rearranges the memory areas in order to prevent fragmentation (fragmentation) of the memory areas. In step S <b> 205, the GC execution unit 303 stores the state of the memory area after the rearrangement of the memory area (the state of which object is using which memory) in the HDD 104. Note that the information stored in the HDD 104 in S205 is the content described in the heap dump file. In step S206, the GC execution unit 303 resumes the execution of the process stopped in step S201, and resumes the entire system.

<最大使用量>
ここで、図8を参照して、測定ツールを用いたアプリ作成者による作成したJavaアプリの最大使用メモリ量を調べる手法の一例について説明する。
<Maximum usage>
Here, with reference to FIG. 8, an example of a method for examining the maximum memory usage of the Java application created by the application creator using the measurement tool will be described.

まず、作成したJavaアプリと測定ツールをMFP等の画像形成装置にインストールする。そして、測定ツールで推定メモリ量を設定する(801から802になる)。この後に、開発用のJavaアプリを動作させて、メモリ不足によって発生するOutOfMemoryErrorが発生するかどうかを確認する(803)。ここでもし、OutOfMemoryErrorが発生すれば、開発用のJavaアプリは推定メモリ量よりも大きいサイズのメモリ量を使用していることが分かる(804)。そのためアプリ作成者は、設定した推定メモリ量よりもさらに小さい値の推定メモリ量を測定ツールに設定し、再度開発用のJavaアプリを動作させる。   First, the created Java application and measurement tool are installed in an image forming apparatus such as an MFP. Then, the estimated memory amount is set with the measurement tool (from 801 to 802). Thereafter, the development Java application is operated to check whether OutOfMemoryError generated due to a memory shortage occurs (803). Here, if OutOfMemoryError occurs, it can be understood that the Java application for development uses a memory size larger than the estimated memory size (804). Therefore, the application creator sets an estimated memory amount that is smaller than the set estimated memory amount in the measurement tool, and operates the development Java application again.

一方、OutOfMemoryErrorが発生しなかった場合は、開発用のJavaアプリは推定メモリ量よりも小さいサイズのメモリ量を使用していることが分かる(805)。そのためアプリ作成者は、設定した推定メモリ量よりもさらに大きい値の推定メモリ量を測定ツールに設定し、再度開発用のJavaアプリを動作させる。アプリ作成者は、これらの操作を繰り返し行い、OutOfMemoryErrorが発生しない最大の推定メモリ量を決定し、この値をMANIFESTファイルに最大使用メモリ量として記載する。   On the other hand, if OutOfMemoryError does not occur, it can be seen that the development Java application uses a memory size smaller than the estimated memory size (805). Therefore, the application creator sets an estimated memory amount that is larger than the set estimated memory amount in the measurement tool, and operates the development Java application again. The application creator repeats these operations, determines the maximum estimated memory amount that does not generate OutOfMemoryError, and describes this value as the maximum used memory amount in the MANIFEST file.

したがって、上記測定ツールを用いた最大使用メモリ量の調整段階において、OutOfMemoryErrorが発生するごとにヒープダンプファイルを生成して出力することは効率が著しく低下してしまう。そこで、本実施形態では、ヒープダンプファイルの生成の有無を好適に切り替える。なお、本実施形態の手法を用いれば、操作者等の入力を必要とすることなく、ヒープダンプファイルの生成の有無を切り替えることができる。   Therefore, generating and outputting a heap dump file every time OutOfMemoryError occurs in the adjustment stage of the maximum memory usage using the measurement tool, the efficiency is significantly reduced. Therefore, in the present embodiment, whether or not heap dump files are generated is suitably switched. In addition, if the method of this embodiment is used, the presence or absence of a heap dump file generation can be switched without requiring input from an operator or the like.

<切替処理>
次に、図5を参照して、JavaVM202とアプリプラットフォーム203の各モジュールにより、OutOfMemoryErrorが発生した場合に、状況に応じてヒープダンプファイルの生成有無を切り替える切替処理について説明する。以下で説明する処理は、CPU101の命令により、ROM103やHDD104に格納されているプログラムを読み出し、RAM102をワークエリアとして処理を実行することで実現される。
<Switching process>
Next, with reference to FIG. 5, a description will be given of a switching process for switching the presence / absence of a heap dump file depending on the situation when an OutOfMemoryError is generated by each module of the Java VM 202 and the application platform 203. FIG. The processing described below is realized by reading a program stored in the ROM 103 or the HDD 104 and executing the processing using the RAM 102 as a work area in accordance with an instruction from the CPU 101.

メモリ制御部304は、バイトコード実行部301によるJavaアプリのメモリ要求に対して、要求のメモリを確保できない場合、OutOfMemoryError発生部306にOutOfMemory発生要求を通知する。OutOfMemory発生要求を受信すると、S101で、OutOfMemoryError発生部306は、OutOfMemoryErrorの例外を発生させる。メモリ制御部304は、OutOfMemoryError発生部306によるOutOfMemoryの発生処理が完了すると、GC実行部303にGC処理の実行要求を送信する。GC処理の実行要求を受信すると、S102で、GC実行部303は、図6を用いて説明したGC処理を実行する。その後S103で、メモリ制御部304は、ヒープダンプファイルの生成判定要求を、ヒープダンプファイル生成判定部308に送信する。   In response to a Java application memory request from the bytecode execution unit 301, the memory control unit 304 notifies the OutOfMemoryError generation unit 306 of an OutOfMemory generation request when the requested memory cannot be secured. When the OutOfMemory generation request is received, the OutOfMemoryError generation unit 306 generates an OutOfMemoryError exception in S101. When the OutOfMemoryError generating process by the OutOfMemoryError generating unit 306 is completed, the memory control unit 304 transmits a GC process execution request to the GC executing unit 303. When the GC process execution request is received, in step S102, the GC execution unit 303 executes the GC process described with reference to FIG. Thereafter, in S103, the memory control unit 304 transmits a heap dump file generation determination request to the heap dump file generation determination unit 308.

ヒープダンプファイルの生成判定要求を受信すると、S104乃至S106で、ヒープダンプファイル生成判定部308は、ヒープダンプファイルを生成するか否かを以下の条件から判定する。具体的には、S104乃至S106の判定において、Javaアプリの開発段階におけるOutOfMemoryErrorの発生であるか否かを確認して、ヒープダンプファイルを生成するか否かを決定している。なお、Javaアプリの開発段階ということは、通常は、画像形成装置100自体の開発は完了している。ここでは、一例として、3つの条件を用いる場合について説明する。   When a heap dump file generation determination request is received, in S104 to S106, the heap dump file generation determination unit 308 determines whether to generate a heap dump file from the following conditions. Specifically, in the determination of S104 to S106, it is determined whether or not an OutOfMemoryError has occurred in the development stage of the Java application, and it is determined whether or not to generate a heap dump file. Note that the development stage of the Java application normally means that the development of the image forming apparatus 100 itself has been completed. Here, a case where three conditions are used will be described as an example.

1つ目の条件は、画像形成装置100が製品の開発が完了しているか否かの判定である(S104)。製品の開発が完了しているか否かの情報(第1情報)は、ROM103に格納しているフェーズ情報を用いて判定することができる。当該フェーズ情報は、デフォルトは製品開発中であり、工場出荷時(画像形成装置100の製品販売時)にのみ製品開発中から開発完了に変更される。そのため、フェーズ情報は、ユーザが変更することができない。   The first condition is determination as to whether or not the image forming apparatus 100 has completed product development (S104). Information (first information) as to whether or not product development has been completed can be determined using phase information stored in the ROM 103. The phase information is defaulted during product development, and is changed from product development to development completion only at the time of factory shipment (when the image forming apparatus 100 is sold). Therefore, the phase information cannot be changed by the user.

具体例を説明する。アプリ作成者が、作成した開発用のJavaアプリの最大メモリ使用量を、測定ツールを用いて測定を行うのは、工場出荷後の画像形成装置100を用いて行う。そのため、測定ツールによりOutOfMemoryErrorが発生した場合、S104の判定はYESとなる。一方、画像形成装置100の製品開発中にメモリリーク等でOutOfMemoryErrorが発生した場合、S104の判定はNOとなる。   A specific example will be described. The application creator uses the measurement tool to measure the maximum memory usage of the created Java application for development using the image forming apparatus 100 after factory shipment. For this reason, when OutOfMemoryError is generated by the measurement tool, the determination in S104 is YES. On the other hand, if OutOfMemoryError occurs due to a memory leak or the like during product development of the image forming apparatus 100, the determination in S104 is NO.

2つ目の条件は、Javaアプリのインストール時にコード署名認証を行うか否かの判定である(S105)。このコード署名認証を行うか否かは、HDD104に格納されているコード署名認証フラグを参照して判定する。このコード署名認証フラグ(第2情報)は、認証ありと認証なしの設定値があり、アプリ作成者が自由に変更することが可能である。   The second condition is determination as to whether or not to perform code signature authentication when installing the Java application (S105). Whether or not to perform this code signature authentication is determined with reference to a code signature authentication flag stored in the HDD 104. This code signature authentication flag (second information) has setting values with and without authentication, and can be freely changed by the application creator.

ここで、図7を参照して、コード署名認証フラグの利用方法について説明する。Javaアプリは開発用と製品用の2種類あり、図7に示すように構成が異なる。製品用のJavaアプリを作成する場合、701に示すように、一般的なコードサイン証明書を用いたアプリ配布と同じ手順で作成する。具体的には、作成した3つのファイル(JavaプログラムとMANIFESTファイルと製品用のライセンスファイル)に対するハッシュ値を取り、このハッシュ値を暗号化する。また、サーバ(認証局)からコード署名証明書を取得する。そして、暗号化したハッシュ値と3つのファイルとコード署名証明書を1つのjarファイルとしてまとめて、Javaアプリとする。   Here, a method of using the code signature authentication flag will be described with reference to FIG. There are two types of Java apps, one for development and one for products, and the configuration is different as shown in FIG. When creating a Java application for a product, as shown in 701, it is created in the same procedure as application distribution using a general code sign certificate. Specifically, hash values for the three created files (Java program, MANIFEST file, and product license file) are taken, and the hash values are encrypted. Also, a code signing certificate is acquired from the server (certificate authority). Then, the encrypted hash value, the three files, and the code signature certificate are collected as one jar file to be a Java application.

一方、開発用のJavaアプリを作成する場合、702に示すように、作成した3つのファイル(JavaプログラムとMANIFESTファイルと開発用のライセンスファイル)を1つのjarファイルとしてまとめ、開発用Javaアプリを作成する。この開発用Javaアプリは、コード署名認証を行っていないため、画像形成装置100のHDD104に格納されているコード署名認証フラグが認証ありの場合、画像形成装置100にインストールすることができない。具体例を説明する。アプリ作成者が、作成した開発用のJavaアプリの最大メモリ使用量を、測定ツールを用いて測定を行う場合、開発用のJavaアプリを画像形成装置100にインストールするため、コード署名認証フラグを認証なしにしている。そのため、測定ツールによりOutOfMemoryErrorが発生した場合、S105の判定はNOとなる。一方、MFPの工場出荷後は市販のJavaアプリしかインストールできなくするため、OutOfMemoryError発生時のS105の判定はYESとなる。   On the other hand, when creating a development Java application, as shown in 702, the created three files (Java program, MANIFEST file, and development license file) are combined into one jar file to create the development Java application. To do. Since the development Java application does not perform code signature authentication, it cannot be installed in the image forming apparatus 100 when the code signature authentication flag stored in the HDD 104 of the image forming apparatus 100 is authenticated. A specific example will be described. When the application creator measures the maximum memory usage of the created Java application for development using a measurement tool, the code signature authentication flag is authenticated in order to install the development Java application in the image forming apparatus 100. None. Therefore, when OutOfMemoryError is generated by the measurement tool, the determination in S105 is NO. On the other hand, since only a commercially available Java application can be installed after the MFP is shipped from the factory, the determination in S105 when OutOfMemoryError occurs is YES.

3つ目の条件は、Javaアプリに含まれるライセンスファイルのチェックを行うか否かの判定である(S106)。このライセンスファイルのチェックを行うか否かは、HDD104に格納されているライセンスチェックフラグを参照して判定する。このライセンスチェックフラグ(第3情報)は、チェックありとチェックなしの設定値があり、アプリ作成者が自由に変更することが可能である。アプリ作成者が図7のようにして作成したJavaアプリには、ライセンスファイルとして製品用ライセンス又は開発用ライセンスの情報を含む。この開発用ライセンスの情報を含むJavaアプリは、画像形成装置100のHDD104に格納されているライセンスチェックフラグがチェックありの場合は、MFPにインストールすることができない。   The third condition is determination as to whether or not to check the license file included in the Java application (S106). Whether or not to check the license file is determined with reference to a license check flag stored in the HDD 104. The license check flag (third information) has setting values with and without a check, and can be freely changed by an application creator. The Java application created by the application creator as shown in FIG. 7 includes product license information or development license information as a license file. The Java application including the development license information cannot be installed in the MFP when the license check flag stored in the HDD 104 of the image forming apparatus 100 is checked.

具体例を説明する。アプリ作成者が、作成した開発用のJavaアプリの最大メモリ使用量を、測定ツールを用いて測定を行う場合、開発用のJavaアプリを画像形成装置100にインストールするため、ライセンスチェックフラグをチェックなしにしている。そのため、測定ツールによりOutOfMemoryErrorが発生した場合、S106の判定はNOとなる。一方、画像形成装置100の工場出荷後は市販のJavaアプリをインストールした場合、ライセンスチェックを必ず行うようにするため、OutOfMemoryError発生時のS106の判定はYESとなる。   A specific example will be described. When the application creator measures the maximum memory usage of the created Java application for development by using a measurement tool, the license check flag is not checked in order to install the development Java application in the image forming apparatus 100 I have to. Therefore, when OutOfMemoryError is generated by the measurement tool, the determination in S106 is NO. On the other hand, when a commercially available Java application is installed after the image forming apparatus 100 is shipped from the factory, the license check is always performed, so that the determination in S106 when OutOfMemoryError occurs is YES.

ヒープダンプファイル生成判定部308は、上記の3つの判定結果においてS104がYESで、かつ、S105及びS106がNOの場合のみはS107に進み、メモリ制御部304にヒープダンプファイルの生成なしという判定結果を送信し、S109に進む。一方、ヒープダンプファイル生成判定部308は、上記判定結果以外の場合はS108に進み、メモリ制御部304にヒープダンプファイルの生成ありという判定結果を送信し、S109に進む。   The heap dump file generation determination unit 308 proceeds to S107 only when S104 is YES and S105 and S106 are NO in the above three determination results, and transmits a determination result indicating that no heap dump file is generated to the memory control unit 304. Then, the process proceeds to S109. On the other hand, if the determination result is other than the above determination result, the heap dump file generation determination unit 308 proceeds to S108, transmits the determination result that the heap dump file is generated to the memory control unit 304, and proceeds to S109.

判定結果を受信すると、S109で、メモリ制御部304は、この結果がヒープダンプファイルの生成ありを示すか否かを判定する。この判定結果がヒープダンプファイルの生成なしの場合は、ヒープダンプファイルを出力することなく終了する。一方、この判定結果がヒープダンプファイルの生成ありの場合はS110に進み、メモリ制御部304は、ヒープダンプファイル情報生成部305にヒープダンプファイル情報の生成要求を送信する。これを受信したヒープダンプファイル情報生成部305は、現在のヒープメモリ状況の情報を取得する。続いて、S111で、ヒープダンプファイル情報生成部305は、取得した内容をヒープダンプファイル生成実行部309に送信する。これを受信したヒープダンプファイル生成実行部309は、S112で、受信した内容のヒープダンプファイルを生成する。これにより、図4のようなヒープダンプファイルが生成される。なお、図4のヒープダンプファイルでは、1行ごとにオブジェクトID、オブジェクトを生成したクラス、オブジェクトサイズ、生成したオブジェクトへの参照を表示している。   When the determination result is received, in S109, the memory control unit 304 determines whether or not this result indicates that a heap dump file has been generated. If this determination result indicates that no heap dump file is generated, the process ends without outputting the heap dump file. On the other hand, if the determination result is that a heap dump file is generated, the process proceeds to S110, and the memory control unit 304 transmits a heap dump file information generation request to the heap dump file information generation unit 305. Receiving this, the heap dump file information generation unit 305 acquires the current heap memory status information. Subsequently, in S111, the heap dump file information generation unit 305 transmits the acquired content to the heap dump file generation execution unit 309. In step S112, the heap dump file generation execution unit 309 that has received this generates a heap dump file having the received contents. Thereby, a heap dump file as shown in FIG. 4 is generated. In the heap dump file of FIG. 4, the object ID, the class that generated the object, the object size, and the reference to the generated object are displayed for each line.

以上説明したように、本実施形態に係る情報処理装置(画像形成装置100)は、Javaアプリからのメモリ要求に従ってメモリ領域を確保し、確保できない場合には例外を発生させる。また、例外が発生すると、他のアプリケーションで確保している不要になったメモリ領域を解放しメモリ領域を再配置するGC処理を実行する。さらに、アプリケーションの開発段階における例外の発生であれば、GC処理を実行した後のメモリの状態を示すヒープダンプファイルの生成を行わず、アプリケーションの開発段階における例外の発生でなければ、ヒープダンプファイルの生成を行う。このように、同じOutOfMemoryが発生した場合であっても3つの条件の判定結果によってヒープダンプファイルの生成有無を切り替えることができる。本実施形態によれば、3つの条件が所定の判定結果の場合(S104がYESで、かつ、S105及びS106がNOの場合)は、アプリ作成者が測定ツールを用いてアプリの最大使用メモリ量を調べる場合であると判定し、ヒープダンプファイルを生成しない。ヒープダンプファイルを生成しない場合、ヒープダンプファイル生成前に行うGC処理によりシステム全体が停止することがないため、ユーザ(アプリ作成者)の操作性が低下することを防ぐことができる。また、ヒープダンプファイルを生成しない場合、画像形成装置100のヒープダンプファイル生成に画像形成装置100のリソース(HDDやメモリ等)を使わないため、システム負荷を減らすことができる。なお、上記3つの条件は、ヒープダンプファイルの生成有無そのものを意味する条件ではない。そのためユーザ(アプリ開発者)は、測定ツールをインストールするための設定を行うだけであり、生成有無のスイッチを意識して切り替える必要がない。また、3つの条件の中に製品開発中かどうかの判定条件がある。これにより、MFPの製品開発中に他の2つの条件に一致する状況を作ったとしても、ヒープダンプファイルの生成を行うことができ、Javaアプリのメモリリークなどの障害調査も効率的に行うことができる。   As described above, the information processing apparatus (image forming apparatus 100) according to the present embodiment secures a memory area in accordance with a memory request from the Java application, and generates an exception if the memory area cannot be secured. Further, when an exception occurs, GC processing is performed to release a memory area that is no longer needed and is allocated by another application and rearrange the memory area. Furthermore, if an exception occurs in the application development stage, a heap dump file indicating the state of the memory after executing the GC process is not generated. If no exception occurs in the application development stage, a heap dump file is generated. I do. As described above, even when the same OutOfMemory is generated, it is possible to switch whether heap dump files are generated or not according to the determination results of the three conditions. According to the present embodiment, when the three conditions are predetermined determination results (when S104 is YES and S105 and S106 are NO), the application creator uses the measurement tool to determine the maximum amount of memory used by the application. It is determined that this is a case of checking, and a heap dump file is not generated. When the heap dump file is not generated, the entire system is not stopped by the GC process performed before generating the heap dump file, so that the operability of the user (app creator) can be prevented from being lowered. Further, when a heap dump file is not generated, the system load can be reduced because resources (HDD, memory, etc.) of the image forming apparatus 100 are not used for generating the heap dump file of the image forming apparatus 100. Note that the above three conditions are not conditions that indicate whether heap dump files are generated. Therefore, the user (application developer) only performs settings for installing the measurement tool, and does not need to be aware of the switch for generation or not. In addition, there is a condition for determining whether or not the product is under development among the three conditions. As a result, even if a situation that matches the other two conditions is created during product development of the MFP, a heap dump file can be generated, and a fault investigation such as a Java application memory leak can be efficiently performed. it can.

<変形例>
また、本発明は上記実施形態に限らず様々な変形が可能である。上記実施形態では、ヒープダンプファイルの生成有無を3つの条件(S104〜106)を用いて判定し、S104がYESで、かつ、S105及びS106がNOの場合にヒープダンプファイル生成を行わないこととした。しかし、コード署名認証を行うかどうかの判定(S105)とライセンスファイルのチェックを行うかどうかの判定(S106)は、測定ツールを使う場合に両方とも条件に当てはまる設定に変更することもできる。そのため、S105とS106の条件は、どちらか一方の条件による判定でもよい。この場合、S104がYESで、かつ、S105がNOの場合、又は、S104がYESで、かつ、S106がNOの場合に、ヒープダンプファイルの生成を行わないこととしてもよい。また、上記3つの条件のうち、少なくとも1つの条件を用いて当該判定を行ってもよい。
<Modification>
Further, the present invention is not limited to the above embodiment, and various modifications can be made. In the above embodiment, whether or not a heap dump file is generated is determined using three conditions (S104 to S106), and if S104 is YES and S105 and S106 are NO, heap dump file generation is not performed. However, both the determination of whether to perform code signature authentication (S105) and the determination of whether to check the license file (S106) can be changed to settings that meet the conditions when using the measurement tool. Therefore, the conditions of S105 and S106 may be determined based on one of the conditions. In this case, when S104 is YES and S105 is NO, or when S104 is YES and S106 is NO, heap dump file generation may not be performed. Further, the determination may be performed using at least one of the three conditions.

<第2の実施形態>
以下では、本発明の第2の実施形態について説明する。上記第1の実施形態では、OutOfMemoryErrorが発生したときにヒープダンプファイルを生成するか否かを3つの条件を用いて判定し、所定の判定結果とならない場合はヒープダンプファイルを生成することとした。しかし、この3つの条件だけではなく、別の条件を追加してもよい。
<Second Embodiment>
Hereinafter, a second embodiment of the present invention will be described. In the first embodiment, whether or not a heap dump file is generated when OutOfMemoryError occurs is determined using three conditions, and if a predetermined determination result is not obtained, a heap dump file is generated. However, in addition to these three conditions, another condition may be added.

図9を参照して、別の条件を追加する場合の切替処理について説明する。なお、基本的な処理や制御は第1の実施形態と同じであるため、第1の実施形態と異なる点のみを説明する。以下で説明する処理は、CPU101の命令により、ROM103やHDD104に格納されているプログラムを読み出し、RAM102をワークエリアとして処理を実行することで実現される。   With reference to FIG. 9, the switching process in the case of adding another condition will be described. Since basic processing and control are the same as those in the first embodiment, only differences from the first embodiment will be described. The processing described below is realized by reading a program stored in the ROM 103 or the HDD 104 and executing the processing using the RAM 102 as a work area in accordance with an instruction from the CPU 101.

上記第1の実施形態では、OutOfMemoryErrorが発生したときにヒープダンプファイルを生成するかどうかの3つの条件で判定し、所定の判定結果とならない場合はヒープダンプファイルを生成することとした(S108)。しかし、画像形成装置100で動作するJavaアプリは、同じJavaメモリ領域を使っているため、あるJavaアプリでOutOfMemoryErrorが発生すると、別のJavaアプリでもOutOfMemoryErrorが発生する可能性が高い。この場合、所定の期間内において、同じ原因で何度もヒープダンプファイルが生成されてしまうという問題がある。   In the first embodiment, the determination is made based on the three conditions of whether or not a heap dump file is generated when OutOfMemoryError occurs. If the predetermined determination result is not obtained, the heap dump file is generated (S108). However, since the Java application operating on the image forming apparatus 100 uses the same Java memory area, if an OutOfMemoryError occurs in one Java application, there is a high possibility that an OutOfMemoryError will occur in another Java application. In this case, there is a problem that a heap dump file is generated many times for the same reason within a predetermined period.

そこで、本実施形態によれば、図9に示すように、S108の処理の前に「所定期間内における初回のOutOfMemoryErrorかどうか」をヒープダンプファイル生成判定部308で判定するS301の処理を追加する。そして、この判定結果が初回のOutOfMemorErrorでなければ、ヒープダンプファイルを生成なしと判定してS107に進み、判定結果が初回の場合はヒープダンプファイルを生成することとしてS108に進む。なお、初回のOutOfMemoryErrorかどうかの情報(第4情報)はHDD104に保持しておき、ヒープダンプファイル生成実行部309がS112によるヒープダンプファイルを生成後に、初回ではないという情報に更新することにより実現できる。また、所定期間が経過すると、初回であるという情報に戻すことが望ましい。これにより、初回のOutOfMemoryError発生時以外は、所定期間において、ヒープダンプファイルの生成を行わないように制御することができる。なお、上記所定期間については、画像形成装置100に予め設定されてもよいし、操作者によって設定されてもよい。当該設定情報については、上記第4情報と関連付けてHDD104に保持される。   Therefore, according to the present embodiment, as shown in FIG. 9, the process of S301 for determining whether or not it is the first OutOfMemoryError within a predetermined period by the heap dump file generation determination unit 308 is added before the process of S108. If the determination result is not the first OutOfMemorError, it is determined that no heap dump file is generated, and the process proceeds to S107. If the determination result is the first time, the process proceeds to S108 as generating a heap dump file. Note that information (fourth information) indicating whether or not it is the first OutOfMemoryError is stored in the HDD 104, and the heap dump file generation execution unit 309 can update the information to that it is not the first time after generating the heap dump file in S112. Moreover, it is desirable to return to the information that it is the first time when a predetermined period elapses. As a result, it is possible to control not to generate a heap dump file in a predetermined period except when the first OutOfMemoryError occurs. The predetermined period may be set in advance in the image forming apparatus 100 or may be set by an operator. The setting information is stored in the HDD 104 in association with the fourth information.

また、上記第1の実施形態では、画像形成装置100が製品開発中か否かの判定を行い(S104)、開発中でない場合、ヒープダンプファイルを生成することと判定した(S108)。しかし、画像形成装置100の製品開発が完了する前に、製品のシミュレータを用いて、作成したJavaアプリの最大使用メモリ量を調べたいこともある。この場合、S104の判定が常にNOとなるため、OutOfMemoryError発生時に毎回ヒープダンプファイルを生成されてしまうという問題がある。   In the first embodiment, it is determined whether or not the image forming apparatus 100 is developing a product (S104). If it is not under development, it is determined that a heap dump file is generated (S108). However, before the product development of the image forming apparatus 100 is completed, it may be desired to check the maximum memory usage of the created Java application using a product simulator. In this case, since the determination in S104 is always NO, there is a problem that a heap dump file is generated every time OutOfMemoryError occurs.

そこで、本実施形態によれば、S104の後ろで「画像形成装置100はシミュレータであるか否か」をヒープダンプファイル生成判定部308で判定するS302の処理を追加する。そして、この判定結果がシミュレータではない場合(製品の場合)は従来と同じくヒープダンプファイルを生成し(S108)、シミュレータの場合はS105の判定に進む。なお、シミュレータか否かの情報(第5情報)はROM103に予め格納しておき、ヒープダンプファイル生成判定部308がこの値を参照することで判定してもよい。これにより、MFPが製品開発中であっても、ヒープダンプファイルの生成を行わなくすることができる。   Therefore, according to the present embodiment, after S104, the process of S302 in which “the image forming apparatus 100 is a simulator” is determined by the heap dump file generation determination unit 308 is added. If this determination result is not a simulator (in the case of a product), a heap dump file is generated as in the conventional case (S108), and if it is a simulator, the process proceeds to S105. Information regarding whether or not the simulator is used (fifth information) may be stored in the ROM 103 in advance, and the heap dump file generation determination unit 308 may determine this by referring to this value. As a result, even when the MFP is under product development, heap dump files can be prevented from being generated.

以上説明したように、本実施形態に係る画像形成装置は、2つの条件(S301とS302)を追加することで、無駄なヒープダンプファイルが生成されることをさらに防ぐことが可能となる。なお、上記2つの条件(S301とS302)は、何れか一方のみを追加するようにしてもよい。   As described above, the image forming apparatus according to the present embodiment can further prevent a useless heap dump file from being generated by adding two conditions (S301 and S302). Note that only one of the two conditions (S301 and S302) may be added.

<その他の実施形態>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
<Other embodiments>
The present invention supplies a program that realizes one or more functions of the above-described embodiments to a system or apparatus via a network or a storage medium, and one or more processors in a computer of the system or apparatus read and execute the program This process can be realized. It can also be realized by a circuit (for example, ASIC) that realizes one or more functions.

101:CPU、102:RAM、103:ROM、104:HDD、202:JavaVM、203:アプリプラットフォーム、301:バイトコード実行部、302:クラスローダ管理部、303:GC実行部、304:メモリ制御部、305:ヒープダンプファイル情報生成部、306:OutOfMemoryError発生部、307:アプリ管理部、308:ヒープダンプファイル生成判定部、309:ヒープダンプファイル生成実行部   101: CPU, 102: RAM, 103: ROM, 104: HDD, 202: JavaVM, 203: Application platform, 301: Bytecode execution unit, 302: Class loader management unit, 303: GC execution unit, 304: Memory control unit 305: Heap dump file information generation unit 306: OutOfMemoryError generation unit 307: Application management unit 308: Heap dump file generation determination unit 309: Heap dump file generation execution unit

Claims (14)

情報処理装置であって、
アプリケーションからのメモリ要求に従ってメモリ領域を確保し、確保できない場合には例外を発生させるメモリ制御手段と、
前記例外が発生すると、他のアプリケーションで確保している不要になったメモリ領域を解放し、メモリ領域を再配置するGC処理を実行する実行手段と、
前記実行手段によってGC処理が実行されると、前記情報処理装置に格納されている情報に基づき、前記アプリケーションの開発段階における前記例外の発生であるか否かを判定する判定手段と、
前記判定手段による判定結果に基づき、前記アプリケーションの開発段階における前記例外の発生であれば、前記実行手段による前記GC処理を実行した後のメモリの状態を示すヒープダンプファイルの生成を行わず、前記アプリケーションの開発段階における前記例外の発生でなければ、前記ヒープダンプファイルの生成を行う生成手段と
を備えることを特徴とする情報処理装置。
An information processing apparatus,
A memory control means for allocating a memory area according to a memory request from an application and generating an exception if the memory area cannot be allocated;
When the exception occurs, execution means for executing a GC process for releasing a memory area that is no longer needed reserved by another application and rearranging the memory area;
When a GC process is executed by the execution unit, a determination unit that determines whether or not the exception has occurred in the application development stage based on information stored in the information processing apparatus;
If the exception occurs in the development stage of the application based on the determination result by the determination unit, the application does not generate a heap dump file indicating the state of the memory after executing the GC process by the execution unit. An information processing apparatus comprising: generating means for generating the heap dump file if the exception does not occur in the development stage.
前記情報処理装置に格納されている情報は、該情報処理装置の開発が完了しているか否かを示す第1情報を含み、
前記判定手段は、前記情報処理装置の開発が完了していることを前記第1情報が示す場合は、前記アプリケーションの開発段階における前記例外の発生であると判定し、前記情報処理装置の開発が完了していないことを前記第1情報が示す場合は、前記アプリケーションの開発段階における前記例外の発生でないと判定することを特徴とする請求項1に記載の情報処理装置。
The information stored in the information processing apparatus includes first information indicating whether or not development of the information processing apparatus is completed,
When the first information indicates that the development of the information processing apparatus is completed, the determination unit determines that the exception has occurred in the application development stage, and the development of the information processing apparatus is 2. The information processing apparatus according to claim 1, wherein when the first information indicates that the application has not been completed, it is determined that the exception is not generated in the development stage of the application.
前記情報処理装置に格納されている情報は、該情報処理装置の開発が完了しているか否かを示す第1情報、及び該情報処理装置にアプリケーションをインストールする際にコード署名認証を行うか否かを示す第2情報を含み、
前記判定手段は、前記情報処理装置の開発が完了していることを前記第1情報が示し、かつ、前記コード署名認証を行わないことを前記第2情報が示す場合は、前記アプリケーションの開発段階における前記例外の発生であると判定し、前記情報処理装置の開発が完了していないことを前記第1情報が示す場合、又は、前記コード署名認証を行うことを前記第2情報が示す場合は、前記アプリケーションの開発段階における前記例外の発生でないと判定することを特徴とする請求項1に記載の情報処理装置。
The information stored in the information processing apparatus includes first information indicating whether or not development of the information processing apparatus is completed, and whether or not to perform code signature authentication when installing an application in the information processing apparatus Including second information indicating
If the first information indicates that the development of the information processing apparatus has been completed, and the second information indicates that the code signature authentication is not performed, the determination unit determines the application development stage. When the first information indicates that the development of the information processing apparatus has not been completed, or when the second information indicates that the code signature authentication is performed. The information processing apparatus according to claim 1, wherein it is determined that the exception does not occur in the application development stage.
前記情報処理装置に格納されている情報は、該情報処理装置の開発が完了しているか否かを示す第1情報、及び前記メモリ要求を行ったアプリケーションのライセンスファイルのチェックを行うか否かを示す第3情報を含み、
前記判定手段は、前記情報処理装置の開発が完了していることを前記第1情報が示し、かつ、前記ライセンスファイルのチェックを行わないことを前記第3情報が示す場合は、前記アプリケーションの開発段階における前記例外の発生であると判定し、前記情報処理装置の開発が完了していないことを前記第1情報が示す場合、又は、前記ライセンスファイルのチェックを行うことを前記第3情報が示す場合は、前記アプリケーションの開発段階における前記例外の発生でないと判定することを特徴とする請求項1に記載の情報処理装置。
The information stored in the information processing apparatus includes first information indicating whether or not development of the information processing apparatus is completed, and whether or not to check a license file of an application that has made the memory request. Including third information to indicate,
In the case where the first information indicates that the development of the information processing apparatus is completed and the third information indicates that the license file is not checked, the determination unit is configured to develop the application. It is determined that the exception has occurred in the stage, and if the first information indicates that the development of the information processing apparatus has not been completed, or the third information indicates that the license file is to be checked The information processing apparatus according to claim 1, wherein the information processing apparatus determines that the exception does not occur in the application development stage.
前記情報処理装置に格納されている情報は、該情報処理装置の開発が完了しているか否かを示す第1情報、該情報処理装置にアプリケーションをインストールする際にコード署名認証を行うか否かを示す第2情報、及び前記メモリ要求を行ったアプリケーションのライセンスファイルのチェックを行うか否かを示す第3情報を含み、
前記判定手段は、前記情報処理装置の開発が完了していることを前記第1情報が示し、かつ、前記コード署名認証を行わないことを前記第2情報が示し、かつ、前記ライセンスファイルのチェックを行わないことを前記第3情報が示す場合は、前記アプリケーションの開発段階における前記例外の発生であると判定し、前記情報処理装置の開発が完了していないことを前記第1情報が示す場合、前記コード署名認証を行うことを前記第2情報が示す場合、又は、前記ライセンスファイルのチェックを行うことを前記第3情報が示す場合は、前記アプリケーションの開発段階における前記例外の発生でないと判定することを特徴とする請求項1に記載の情報処理装置。
The information stored in the information processing apparatus includes first information indicating whether or not development of the information processing apparatus is completed, and whether or not code signature authentication is performed when an application is installed in the information processing apparatus And third information indicating whether or not to check the license file of the application that has made the memory request,
The determination means indicates that the first information indicates that the development of the information processing apparatus has been completed, and indicates that the second information indicates that the code signature authentication is not performed, and checks the license file. If the first information indicates that the exception has occurred in the application development stage, and the first information indicates that the development of the information processing apparatus has not been completed. If the second information indicates that the code signature authentication is to be performed, or if the third information indicates that the license file is to be checked, it is determined that the exception has not occurred in the application development stage. The information processing apparatus according to claim 1, wherein:
前記生成手段は、前記アプリケーションの開発段階における前記例外の発生でないと前記判定手段によって判定された場合に、当該例外の発生が所定期間内における初回の発生であれば、前記ヒープダンプファイルの生成を行うことを特徴とする請求項1乃至5の何れか1項に記載の情報処理装置。   The generation unit generates the heap dump file if the generation of the exception is the first occurrence within a predetermined period when the determination unit determines that the exception is not generated in the application development stage. The information processing apparatus according to claim 1, wherein the information processing apparatus is an information processing apparatus. 前記生成手段は、前記ヒープダンプファイルを生成すると、前記例外の発生が所定期間内における初回の発生であるか否かを示す第4情報を、初回の発生でないことを示す情報に変更することを特徴とする請求項6に記載の情報処理装置。   When the generation unit generates the heap dump file, the generation unit changes the fourth information indicating whether or not the exception is generated for the first time within a predetermined period to information indicating that the exception is not generated for the first time. The information processing apparatus according to claim 6. 前記生成手段は、前記例外の初回の発生から前記所定期間が経過すると、前記第4情報を、初回の発生であることを示す情報に変更することを特徴とする請求項7に記載の情報処理装置。   8. The information processing according to claim 7, wherein the generation unit changes the fourth information to information indicating the first occurrence when the predetermined period has elapsed since the first occurrence of the exception. apparatus. 前記生成手段は、前記アプリケーションの開発段階における前記例外の発生でないと前記判定手段によって判定された場合に、前記情報処理装置がシミュレータでなければ、前記ヒープダンプファイルの生成を行うことを特徴とする請求項1乃至8の何れか1項に記載の情報処理装置。   The generation unit generates the heap dump file if the information processing apparatus is not a simulator when the determination unit determines that the exception does not occur in the application development stage. Item 9. The information processing apparatus according to any one of Items 1 to 8. 前記第1情報は、前記情報処理装置の工場出荷時に、該情報処理装置の開発が完了していないことを示す情報から、該情報処理装置の開発が完了していることを示す情報に変更されることを特徴とする請求項2乃至9の何れか1項に記載の情報処理装置。   The first information is changed from information indicating that the development of the information processing apparatus is not completed at the time of shipment of the information processing apparatus to information indicating that the development of the information processing apparatus is completed. The information processing apparatus according to claim 2, wherein the information processing apparatus is an information processing apparatus. 前記第2情報は、前記アプリケーションの作成者によって設定されることを特徴とする請求項3又は5に記載の情報処理装置。   The information processing apparatus according to claim 3, wherein the second information is set by a creator of the application. 前記第3情報は、前記アプリケーションの作成者によって設定されることを特徴とする請求項4又は5に記載の情報処理装置。   The information processing apparatus according to claim 4, wherein the third information is set by a creator of the application. 情報処理装置の制御方法であって、
メモリ制御手段が、アプリケーションからのメモリ要求に従ってメモリ領域を確保し、確保できない場合には例外を発生させるメモリ制御工程と、
実行手段が、前記例外が発生すると、他のアプリケーションで確保している不要になったメモリ領域を解放し、メモリ領域を再配置するGC処理を実行する実行工程と、
判定手段が、前記実行工程でGC処理が実行されると、前記情報処理装置に格納されている情報に基づき、前記アプリケーションの開発段階における前記例外の発生であるか否かを判定する判定工程と、
生成手段が、前記判定工程による判定結果に基づき、前記アプリケーションの開発段階における前記例外の発生であれば、前記実行工程による前記GC処理を実行した後のメモリの状態を示すヒープダンプファイルの生成を行わず、前記アプリケーションの開発段階における前記例外の発生でなければ、前記ヒープダンプファイルの生成を行う生成工程と
を実行することを特徴とする情報処理装置の制御方法。
A method for controlling an information processing apparatus,
A memory control means for securing a memory area in accordance with a memory request from an application and generating an exception if the memory area cannot be secured;
An execution step of executing GC processing to release a memory area that is no longer needed and to relocate the memory area when the exception occurs, and when the exception occurs,
A determination step of determining whether or not the exception has occurred in the application development stage based on information stored in the information processing device when GC processing is executed in the execution step; ,
If the exception occurs in the application development stage based on the determination result in the determination step, the generation unit generates a heap dump file indicating the state of the memory after executing the GC processing in the execution step If the exception does not occur in the application development stage, a generation process for generating the heap dump file is executed.
請求項13に記載の情報処理装置の制御方法における各工程をコンピュータに実行させるための該コンピュータで読み取り可能なプログラム。   A computer-readable program for causing a computer to execute each step in the method for controlling an information processing apparatus according to claim 13.
JP2014232941A 2014-11-17 2014-11-17 Information processing device, control method thereof, and program Pending JP2016095792A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014232941A JP2016095792A (en) 2014-11-17 2014-11-17 Information processing device, control method thereof, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014232941A JP2016095792A (en) 2014-11-17 2014-11-17 Information processing device, control method thereof, and program

Publications (1)

Publication Number Publication Date
JP2016095792A true JP2016095792A (en) 2016-05-26

Family

ID=56070347

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014232941A Pending JP2016095792A (en) 2014-11-17 2014-11-17 Information processing device, control method thereof, and program

Country Status (1)

Country Link
JP (1) JP2016095792A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109460392A (en) * 2018-10-10 2019-03-12 东软集团股份有限公司 Journal file acquisition method, device, readable storage medium storing program for executing and electronic equipment
GB2577955A (en) * 2018-07-23 2020-04-15 Canon Kk Information processing apparatus, information processing method, computer program, and storage medium

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2577955A (en) * 2018-07-23 2020-04-15 Canon Kk Information processing apparatus, information processing method, computer program, and storage medium
GB2577955B (en) * 2018-07-23 2021-02-17 Canon Kk Information processing apparatus, information processing method, computer program, and storage medium
US11474855B2 (en) 2018-07-23 2022-10-18 Canon Kabushiki Kaisha Information processing apparatus, information processing method, and storage medium
CN109460392A (en) * 2018-10-10 2019-03-12 东软集团股份有限公司 Journal file acquisition method, device, readable storage medium storing program for executing and electronic equipment

Similar Documents

Publication Publication Date Title
JP5599557B2 (en) Information processing apparatus, license determination method, program, and recording medium
JP5387415B2 (en) Virtual computer system, policy enforcement system, policy enforcement method, and virtual computer control program
US9542228B2 (en) Image processing apparatus, control method thereof and storage medium
AU2011303103B2 (en) Install method, apparatus
JP2010061230A (en) Information processor and information processing method
US11140291B2 (en) Information processing apparatus, control method thereof, and storage medium
JP2014170515A (en) Device, information storage program, and information storage method
CN109660688B (en) Information processing apparatus and control method thereof
JP2016095792A (en) Information processing device, control method thereof, and program
JP5381059B2 (en) Device, log recording control method, and program
JP6179200B2 (en) Information processing apparatus, device, information processing system, information processing method, and information processing program
JP5013999B2 (en) Image forming apparatus, program control method, and control program
US10545704B2 (en) Image forming apparatus and control method to update an application in an image forming apparatus
US9588755B2 (en) Information processing apparatus capable of controlling installation of application, method of controlling the same, and storage medium
CN116700998A (en) Application program interface management method, terminal device and storage medium
US10606748B2 (en) Apparatus and method for garbage collection on socket objects
JP2004334679A (en) Information processor, program execution method of information processor, and storage medium recording the program execution method of information processor
JP6330933B2 (en) Apparatus, information processing system, information processing method, and program
JP2009020863A (en) Image forming apparatus, information processor, fault analysis support method, and fault analysis support program
US11397572B2 (en) Image forming apparatus capable of executing extension application, method of controlling same, and storage medium
JP6089794B2 (en) Apparatus, information processing system, information processing method, and program
JP2018192740A (en) Image formation device, information processing method and program
JP2020177424A (en) Information processor, control method thereof, and program
JP2010039689A (en) Information processor
JP2014038586A (en) Image forming apparatus and update processing method for the same