JP7291107B2 - 電子計算機、再現試験方法及びプログラム - Google Patents

電子計算機、再現試験方法及びプログラム Download PDF

Info

Publication number
JP7291107B2
JP7291107B2 JP2020125140A JP2020125140A JP7291107B2 JP 7291107 B2 JP7291107 B2 JP 7291107B2 JP 2020125140 A JP2020125140 A JP 2020125140A JP 2020125140 A JP2020125140 A JP 2020125140A JP 7291107 B2 JP7291107 B2 JP 7291107B2
Authority
JP
Japan
Prior art keywords
task
storage unit
log information
computer
tasks
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.)
Active
Application number
JP2020125140A
Other languages
English (en)
Other versions
JP2022021528A (ja
Inventor
智大 平野
敦志 稲木
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2020125140A priority Critical patent/JP7291107B2/ja
Publication of JP2022021528A publication Critical patent/JP2022021528A/ja
Application granted granted Critical
Publication of JP7291107B2 publication Critical patent/JP7291107B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は、電子計算機、再現試験方法及びプログラムに関する。
パーソナルコンピューター等の電子計算機において、不具合が発生した場合、不具合発生時のログ情報を確認し、ログ情報に基づく条件で再現試験を行って不具合現象を再現することで、不具合発生の原因の絞り込みを図ることができる。しかし、突然停止などでログを残す処理が動作しない不具合が発生した場合、不具合発生の原因が不明確である。また、ログが残らない不具合が発生した場合、不具合現象の再現性が低く、不具合発生の原因の特定が困難である。このような不具合が発生した場合、不具合発生の原因を推測する環境として、例えば、特許文献1に記載の技術がある。
特許文献1には、動作試験で情報処理装置に異常が発生した場合、異常が発生したときの負荷状態のログをとり、情報処理装置を異常発生時の負荷状態に近づけて再試験することで異常の再現性を高めることが記載されている。
特開2016-40651号公報
ところで、特許文献1に記載の情報処理装置において、突然停止などでログを残す処理が動作しない不具合が発生したときは、情報処理装置の負荷状態の情報を取得できない。また、負荷状態の情報だけでは不具合が発生したときに実行されていた処理を特定することが困難である。
本発明は、上述した状況に鑑みてなされたものであり、突然停止などのログが残らない不具合が発生した場合に、不具合発生の原因の究明を容易とすることである。
上記課題を解決するため、本発明の一態様の電子計算機は、複数のタスクを予め定められた順序で実行する制御部と、タスクのログ情報を記憶する記憶部と、を有する。制御部は、各タスクを実行する時に、起動して実行を開始するタスクと、既に起動しているタスクとをログ情報として記憶部に格納するタスク起動監視部と、記憶部に格納したログ情報を基に、障害が発生する前に動作していたタスクをそのタスクが起動した時間に復帰させて、障害が発生したときのタスクの動作を再現するタスク復帰部と、を備える。
本発明の少なくとも一態様によれば、ログが残らない不具合が発生した場合に、不具合が発生したときの状態を再現させ、不具合発生の原因の究明が容易である。
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
本発明の第1の実施形態に係る電子計算機の構成例を示すブロック図である。 図1のタスク起動監視機構の処理の手順例を示すフローチャートである。 図1のエントリポイントログのデータ構造例を示す図である。 図1のタスク起動監視機構の動作の具体例を示す図である。 図1のエントリポイントログの第1の例を示す図である。 図1のエントリポイントログの第2の例を示す図である。 図1のエントリポイントログの第3の例を示す図である。 図1のタスク復帰機構の処理の手順例を示すフローチャートである。 図1のタスク復帰管理ログのデータ構造例を示す図である。 図1のエントリポイントログの他の例を示す図である。 本発明の第2の実施形態に係る電子計算機の構成例を示すブロック図である。
以下、本発明を実施するための形態の例について、添付図面を参照して説明する。本明細書及び添付図面において実質的に同一の機能又は構成を有する構成要素については、同一の符号を付して重複する説明を省略する。
<第1の実施形態>
[電子計算機の全体構成]
まず、本発明の第1の実施形態に係る電子計算機の構成について図1を参照して説明する。
図1は、本発明の第1の実施形態に係る電子計算機の構成例を示すブロック図である。
図1に示す電子計算機100は、主に制御部110と記憶部120から構成されている。制御部110は、アプリケーション層とOS(Operating System)層を備える。アプリケーション層では、アプリケーションソフトウェアが提供する具体的な機能についての仕様や通信手順、データ形式などが定められている。OSは、電子計算機100の基本的な管理や制御のための機能や、電子計算機100の多くのソフトウェアが共通して利用する基本的な機能などを実装した、電子計算機100全体を管理するソフトウェアである。制御部110の各機能は、例えばCPUなどのプロセッサが記憶部120に記憶されているコンピュータープログラム(OSやアプリケーションプログラム)を実行することにより実現される。
記憶部120は、RAMなどの主記憶装置、及びフラッシュメモリなど不揮発性の補助記憶装置から構成される。主記憶装置には、制御部110(例えばCPU)の演算結果、演算処理の途中で発生した変数やパラメーター等が一時的に書き込まれ、制御部110によって適宜読み出される。補助記憶装置には、制御部110が実行するコンピュータープログラムや各種データ等が記憶される。本実施形態に係る機能を実現するプログラム、テーブル、ファイル等の情報は、半導体メモリやハードディスク、SSD(Solid State Drive)等の記録装置、又はICカード、SDカード、光ディスク等の記録媒体に置くことができる。
制御部110のアプリケーション層には、N個のタスクからなるタスク群111が含まれている。本実施形態では、各タスクは、複数のタスクの中から特定の一つを識別するための「ID」と、動作状態を表す「状態コード」とを持ち、CPU上で動作するまとまったプログラムを指す。IDは、英数字などからなる識別子である。制御部110は、複数のタスクを予め定められた順序で実行するように構成されている。
また、OS層には、タスク起動監視機構200とタスク復帰機構400が含まれる。
タスク起動監視機構200(タスク起動監視部の一例)は、各タスクが実行を開始する時に、実行を開始するタスクの情報と、現在実行されているタスクの情報を、ログ情報(エントリポイントログ300)として記憶部120に格納する。図1では、複数のエントリポイントログ300(1)~300(k)が示されている。本明細書では、エントリポイントログ300(1)~300(k)を区別しない場合には、エントリポイントログ300と記載する。
タスク復帰機構400(タスク復帰部の一例)は、ログ(イベントを記録した情報)が残らないような障害(不具合とも言う)が発生した場合に、障害が発生したときの電子計算機100の状態すなわち障害が発生する前のタスクの動作を再現する。タスク復帰機構400は、タスクの動作を再現するためのログ情報(タスク復帰管理ログ500)を作成して記憶部120に記憶する。
記憶部120は、タスクが実行を開始した時点(以下、「エントリポイント」と呼ぶ)の情報を格納したエントリポイントログ300と、タスク復帰管理ログ500とを記憶する。エントリポイントログ300とタスク復帰管理ログ500は、記憶部120の補助記憶装置に保持することを想定しているが、主記憶装置に保持してもよい。本実施形態では、エントリポイントログ300のログファイル名称は、タスクのIDと同一となっており、動作したタスクのIDの数だけ存在する。
また、電子計算機100には、表示装置130と入力装置140が接続されている。表示装置130は、液晶ディスプレイ等のモニタであり、電子計算機100(制御部110)で行われる処理の結果や操作画面等を表示する。入力装置140には、例えば、キーボード、マウス、タッチパネル等が用いられ、ユーザーが所定の操作入力、指示を行うことが可能である。
また、電子計算機100は、通信インターフェース(図中「通信I/F」)150を備える。通信インターフェース150には、例えばNIC(Network Interface Card)やモデム等が用いられる。通信インターフェース150は、端子に接続されたLAN等の通信ネットワークN又は専用線等を介して、外部装置600との間で各種のデータを送受信することが可能である。
[タスク起動監視機構の動作]
以下、タスク起動監視機構200の動作について図2及び図3を参照して説明する。
図2は、タスク起動監視機構200の処理の手順例を示すフローチャートである。
図3は、エントリポイントログ300のデータ構造例を示す。
タスク起動監視機構200はタスクの起動を検知したとき、起動したタスクのエントリポイントログ300を作成する。このとき、タスク起動監視機構200は、起動したタスクのIDを、エントリポイントログ300のログファイル名称に設定する。少なくとも、ログファイル名称に目的のタスクのIDが含まれていればよい。
そして、タスク起動監視機構200は、起動したタスクのIDと一致するログファイル名称を持つエントリポイントログ300に対し、タスク起動を検知した時間(例えば時刻情報)をエントリポイント作成時間301に格納する(S1)。この場合、タスクのIDとログファイル名称の照合は、部分一致でも可としてもよい。
図3に示すように、エントリポイントログ300は、「エントリポイント作成時間301」、「自タスク情報格納テーブル310」、及び「他タスク情報格納テーブル320」から構成される。
エントリポイント作成時間301には、時刻、クロックカウント、RTC(Real Time Clock)時間など、時系列が一意にわかる情報を使用する。
次に、タスク起動監視機構200は、起動したタスクについての情報が含まれた自タスク情報格納テーブル310を、エントリポイントログ300に格納する(S2)。本明細書では、起動したタスク自身を表す場合には、「自タスク」又は「自起動タスク」と記載する。
自タスク情報格納テーブル310は、「自起動タスク名称311」、及び「自起動タスク状態312」から構成されるテーブルである。
自起動タスク名称311は、起動したタスク(自起動タスク)の名称であり、引数などを含んだコマンドを示す。この自起動タスク名称311の情報により、自起動タスクが行う処理の内容がわかる。
自起動タスク状態312は、起動したタスクの状態コードを指し、動作中や停止、アイドル状態、スリープ状態などタスクの状態を示す。
次に、タスク起動監視機構200は、対象のタスクが起動したときに、電子計算機100内で動作している他のタスクの情報を取得する(S3)。タスク群111にN個のタスクが含まれる場合、他タスクの情報は最大で(N-1)個存在する。このステップでは、タスク起動監視機構200は、該当するすべてのタスクの情報を取得し、他タスク情報格納テーブル320としてエントリポイントログ300に保存する。
他タスク情報格納テーブル320は、「他タスク番号321」、「他タスク名称322」、及び「他タスク状態323」から構成されるテーブルである。
他タスク番号321は、当該タスクのID等の識別子である。
他タスク名称322は、当該タスクの名称であり、引数などを含んだコマンドを示す。
他タスク状態323は、当該タスクの状態コードを指し、動作中や停止、アイドル状態、スリープ状態などタスクの状態を示す。
このように、本実施形態に係る電子計算機100では、タスク起動監視機構200は、各タスクが実行を開始するときに、実行を開始したタスクの動作開始時間(エントリポイント作成時間301)と、動作内容(自起動タスク名称311)と、状態(自起動タスク状態312)と、他に動作しているタスクの、識別子(他タスク番号321)と、動作内容(他タスク名称322)と、状態(他タスク状態323)とを、ログ情報(エントリポイントログ300)として記憶部120に保持する。
このような構成により、制御部110は、最新のログ情報(エントリポイントログ300)を基に、最新のログ情報を取得した時間に動作していたタスクを判断し、該当するタスクを起動した時間が古い順に実行することが可能となる。
[タスク起動監視機構の動作の具体例]
次に、タスク起動監視機構200の動作について図4を参照して具体的に説明する。
図4は、タスク起動監視機構200の動作の具体例を示す。図4の左側は電子計算機100におけるタスクの動作を表し、図4の右側は各タスク(IDで表示)のエントリポイントが作成された時間を表している。
図4の例では、タスク名称が“タスク1”、“タスク2”、“タスク3”の3個のタスクが動作しており、それぞれのIDには“1”,“2”,“3”が割り当てられている。タスク2は、タスク1から呼び出しをされるタスク(呼出タスク)であり、一点鎖線はタスクの呼び出しを示す。この一点鎖線の矢印の始点が読み出し元のタスク(呼出元タスク)である。実際には、より多くのタスクが時系列に及び並行して動作していると考えてよい。
下方向の実線の矢印は、矢印の上方に記載されているタスクが動作している期間を示す。
横方向の実線は、各タスクの動作開始時点を示している。タスク起動監視機構200は、各タスクの開始時に、図2に示した手順でタスク1、タスク2、タスク3のエントリポイントログ300を作成する。
時間1~5は、エントリポイントログ300が発生した時間(タイミング)を示し、昇順にエントリポイントログ300が作成されている。
黒丸部は、上方に示した番号のIDに該当するタスクのエントリポイントログ300が作成されたことを示す。
破線部分は、障害が発生して電子計算機100が突然停止した時点を表す。図5の例では、障害発生後の時間5において、タスク3が再度起動している。また、時間5において、タスク2が動作中である。
図5は、エントリポイントログ300の第1の例を示す。
図5に示したエントリポイントログ300は、図4の時間1~3に生成されたエントリポイントログを示す。タスク起動監視機構200は、時間3においてタスク2のエントリポイントログ300(3)を取得する。このとき、タスク起動監視機構200は、時間1におけるタスク1のエントリポイントログ300(1)、及び時間2におけるタスク3のエントリポイントログ300(2)を取得済みである。
エントリポイントログ300(1)では、エントリポイント作成時間301が“時間1”、自タスク情報格納テーブル310の自起動タスク名称311が“タスク1”、自起動タスク状態が“動作”である。
エントリポイントログ300(2)は、時間2で取得したタスク3の自タスク情報格納テーブル310と、既に起動しているタスク1の他タスク情報格納テーブル320(1)を含む。すなわち、エントリポイントログ300(2)では、エントリポイント作成時間301が“時間2”、自タスク情報格納テーブル310の自起動タスク名称311が“タスク3”、自起動タスク状態が“動作”である。他タスク情報格納テーブル320(1)は、他タスク番号321が“1”、他タスク名称322が“タスク1”、他タスク状態323が“動作”である。
エントリポイントログ300(3)は、時間3で取得したタスク2の自タスク情報格納テーブル310と、既に起動しているタスク1の他タスク情報格納テーブル320(1)及びタスク3の他タスク情報格納テーブル320(2)とを含む。すなわち、エントリポイントログ300(3)では、エントリポイント作成時間301が“時間3”、自タスク情報格納テーブル310の自起動タスク名称311が“タスク2”、自起動タスク状態が“動作”である。他タスク情報格納テーブル320(1)は、他タスク番号321が“1”、他タスク名称322が“タスク1”、他タスク状態323が“動作”である。また、他タスク情報格納テーブル320(2)は、他タスク番号321が“3”、他タスク名称322が“タスク3”、他タスク状態323が“動作”である。
図6は、エントリポイントログ300の第2の例を示す。
図6に示したエントリポイントログ300は、図5のエントリポイントログ300(1)~300(3)に、図4の障害が発生する前の時間4に生成されたエントリポイントログ300(4)が追加されている。
エントリポイントログ300(4)は、時間4で取得したタスク3の自タスク情報格納テーブル310と、既に起動しているタスク2の他タスク情報格納テーブル320(1)を含む。すなわち、エントリポイントログ300(4)では、エントリポイント作成時間301が“時間4”、自タスク情報格納テーブル310の自起動タスク名称311が“タスク3”、自起動タスク状態が“動作”である。他タスク情報格納テーブル320(1)は、他タスク番号321が“2”、他タスク名称322が“タスク2”、他タスク状態323が“動作”である。
図7は、エントリポイントログ300の第3の例を示す。
図6に示したようにタスク起動監視機構200は、時間2においてタスク3のエントリポイントログ300(2)を既に取得している。しかし、障害発生時点で実行されていないタスク、すなわち最新のエントリポイントログ以外はタスクの動作の再現に不要なため、エントリポイントログの保持は最新版のみとしてよい。このようにすることで、ログ容量の抑制が可能となる。
例えば、図7に示すように、図6のエントリポイントログ300から時間2のエントリポイントログ300(2)を削除する。これにより、タスクの動作を再現する際に、時間2のエントリポイントログ300(2)に紐づいている時間1まで遡ることがない。よって、再現に関して、時間2のエントリポイントログ300(2)のみを削除すればよい。もちろん、時間2だけではなく、時間1と時間2の両方のエントリポイントログを削除してもよい。このようにすることで、ログ容量の抑制が可能になるばかりでなく、ログ削減に要する時間を節約(短縮)できる。
[再現処理の実施例]
次に、タスク復帰機構400において、ログが残らないような障害が発生した後、電子計算機100を再度立ち上げて、障害が発生したときの電子計算機100の状態(障害が発生する前のタスクの動作)を再現する方法について、図8を参照して説明する。
本実施形態では、再度電子計算機100の立ち上げを実施した後、タスク復帰機構400を実行することで再現処理時の該当タスクの実行順を決定し、制御部110がこの順番に該当タスクを実行することで、障害が発生したときの状態を再現する。
図8は、タスク復帰機構400の処理の手順例を示すフローチャートである。
はじめに、タスク復帰機構400は再現指令を受けると、各エントリポイントログ300のエントリポイント作成時間301を相互に照合し、時系列で最新のエントリポイントログを探索する(S11)。
図7の例では、時間4に作成されたエントリポイントログ300(4)が最新である。最新のエントリポイントログ300が判明すると、障害発生直前に動作していたタスクは、自タスク情報格納テーブル310に該当するタスク(自起動タスク)と、他タスク情報格納テーブル320に記載されているタスク(他タスク)であることがわかる。
次いで、タスク復帰機構400は、エントリポイントログ300において、他タスク情報格納テーブル320に記載されている他タスク番号321の情報(例えばID)と一致する情報を持つタスクのエントリポイントログをすべて照合する。そして、タスク復帰機構400は、該当するタスクのエントリポイントログのエントリポイント作成時間301のうち、古いタスクから順番に起動するように、タスク復帰管理ログ500に必要な情報を格納する。すなわち、本ステップにおいて再現のために動作させるタスクとその順番を決定する(S12)。
このように、最新のエントリポイントログを探索し、該当エントリポイントログに記録されているタスクを再現対象とすることで、障害発生の直前に起動していたタスクを再現可能となる。
(タスク復帰管理ログ500)
ここで、タスク復帰機構400が保存するタスク復帰管理ログ500のデータ構造例について、図9を参照して説明する。
図9は、タスク復帰管理ログ500のデータ構造例を示す。
タスク復帰管理ログ500は、再現のために動作させるタスクごとに、タスク情報格納テーブルを作成する。図9では、タスク情報格納テーブルとして、タスク情報1~Nが作成されている。タスク情報は、「タスク起動時間差501」、「起動タスク名称502」、及び「タスク復帰機構からの呼出要求503」から構成されるテーブルである。
タスク起動時間差501は、最新のエントリポイントログ300に含まれるタスクが起動した時間(対象タスクに対するエントリポイント作成時間301)と、最新の起動タスクに対するエントリポイント作成時間301との差分値である。上述したとおり、エントリポイント作成時間301は、タスクの起動が検知された時間である。当然ながら最新の起動タスクについてのタスク起動時間差501は、ゼロである。例えば、時間4のエントリポイントログ300(4)の場合、最も近くに起動したタスク3のタスク情報1には、タスク起動時間差501として“0”が格納される。
起動タスク名称502は、最新のエントリポイントログ300に含まれるタスクの自起動タスク名称311(図3参照)の情報である。
タスク復帰機構からの呼出要求503は、タスク復帰機構400から呼出要求が必要か否かを1ビット(真又は偽)のブーリアン情報として持つ。以降「タスク復帰機構からの呼出要求503」を「呼出要求503」と略して記載することがある。
タスク群111の各タスクは、予め定められた順序で実行するように構成されているため、最も古い時間のタスクを起動することで、以降のタスクは順に起動される。しかし、図4のタスク2のように、別タスク(タスク1)からの呼び出しを契機に起動するイベントドリブン形式のタスクは、呼び出し元のタスクが動作していない場合には実行されない。そこで、イベントドリブン形式のタスク(呼出タスク)については、タスク復帰管理ログ500に格納された「タスク復帰機構からの呼出要求503」の情報を基に、タスク復帰機構400が呼び出しを実施する構成とする。
タスク復帰機構400は、ステップS13以降の手順を実行することで、障害発生前に作成されたエントリポイントログ300に記載されているタスクを順番通り起動させる。
まず、タスク復帰機構400は、ステップS12で決定したタスク復帰管理ログ500で示される順番に従い、次に動作させるタスクを決定する(S13)。このとき、タスク復帰機構400は、次に動作するタスクが、タスク復帰機構400からの呼び出しにより起動する必要があるか否か、すなわち呼出タスクであるか否かをタスク復帰管理ログ500の呼出要求503の情報により判断する。
図1で説明したとおり、タスクは、制御部110のアプリケーション層で実行される。例えば図4に示すエントリポイント(時間1~時間5)が得られた場合、アプリケーション層では、時間4で実行されていたタスク2を再現するため、タスク2が起動を開始する時間3まで遡る。ここで、タスク2は、タスク1からの呼び出しを契機に時間3から起動するイベントドリブン形式のタスクである。タスク1からの呼び出しが必要なことはタスク復帰管理ログ500に記録されていないため、タスク復帰機構400は、タスク復帰管理ログ500の呼出要求503の情報に従い、タスク2を呼び出す(起動)ための制御を行う。具体的には、タスク復帰機構400は、タスク2を呼び出す必要があることを制御部110のタスク群111に通知する。そして、制御部110では、タスク群111のタスク1を起動させてタスク1からタスク2の呼び出しを行い、タスク2がタスク1の呼び出しに応じて起動する。
また、タスクの中には、周期的に起動するタスク(例えば図4のタスク3)もある。この場合、第1の周期から第2の周期に移行する過程で一時的にタスクが停止する。このため、障害が発生した後の再現時に、制御部110のアプリケーション層では、直前のタスク(第1の周期におけるタスク)がわからず第2の周期において同じタスクを実行できない。そこで、タスク復帰機構400は、該当タスクが周期的に起動と停止を繰り返すこと(動作期間と停止期間の情報)を、制御部110に通知する。例えば、制御部110は、タスク復帰機構400からの呼出要求503を受けて、タスク3が停止した後、所定の停止期間を空けたタイミングで再びタスク3を呼び出して起動する。
図8の説明に戻る。ステップS13の処理後、タスク復帰機構400は、次に動作させるタスクを起動する(S14)。そして、タスク復帰機構400は、目的のタスクの起動を契機とし、動作する目的のタスクの情報(エントリポイント作成時間301等)を取得する。動作タスクがタスク復帰機構400から起動させる必要がある呼出タスクの場合には、この時点で起動させる。
次に、タスク復帰機構400は、動作を検知したタスク又はタスク復帰機構400が動作させたタスクと、ステップS12で動作順番を決定したタスクを照合し、決定した順番どおりにタスクが動作しているかどうかを判定する(S15)。なお、タスクの動作の検知は、タスク起動監視機構200が行ってもよい。
ステップS15において、タスク復帰機構400は、このとき動作を検知したタスク等が、次に動作すべきタスクではなかった場合には(S15の不一致)、次動作タスクが他タスクからの呼び出しにより起動されるタスクだと判断できる。このため、タスク復帰機構400は、タスク復帰管理ログ500にこの次動作タスクを呼出タスクとして記録する(S16)。すなわち、タスク復帰管理ログ500の次動作タスクのタスク情報に、呼出要求503が必要であることを記録する。そして、タスク復帰機構400は、再度ステップS12における再現時の動作タスクの順番決定が完了した時点から処理を再開する。
例えば、時間3に起動するタスク2は呼出タスクであるため、タスク2を再現する場合にはタスク1からタスク2を呼び出す必要がある。そのため、タスク2を起動する前にタスク1を一時的にでも起動する必要がある。このとき、ステップS12の順番ではタスク2であっても、タスク2を呼び出すためにタスク1を先に起動することになり、動作させたタスク(タスク1)と順番に基づいて本来動作させるタスク(タスク2)とが異なる。このような場合には、本来動作させるタスク(タスク2)を、呼出タスクとして管理する。
一方、タスク復帰機構400は、動作を検知したタスク又はタスク復帰機構400が動作させたタスクが次に動作すべきタスクだった場合には(S15の一致)、再現のエントリポイントが最新のエントリポイントに到達したかどうかを判定する(S17)。言い換えると、タスク復帰機構400は、動作タスクの順番を確認し、次に動作するタスクがあるかどうかを判定する。
そして、タスク復帰機構400は、再現のエントリポイントが最新のエントリポイントに到達していない、すなわち次に動作するタスクが残っていると判定した場合には(S17のNO)、ステップS13以降の処理を繰り返し実行する。このとき、タスク復帰機構400は、ステップS13,S14において次に動作させるタスクを決定して起動する際、前のタスクが起動してから、タスク起動時間差501の情報に基づく時間差を設けて、次のタスクが起動するように制御する。
一方、タスク復帰機構400は、最新のエントリポイントに到達し、次に動作するタスクが残っていないと判定した場合(S17のYES)、再現処理で起動した各タスクの状態を、エントリポイントログ300の中の対応するタスクの自起動タスク状態312と比較する(S18)。例えば、タスク復帰機構400は、再現処理において動作させた各タスクの状態を、再現結果として記憶部120の主記憶装置に記憶しておき、この図示しない再現結果とエントリポイントログ300の各タスクの状態を比較、照合する。なお、再現結果を、記憶部120の補助記憶装置に記憶してもよい。
このとき、タスク復帰機構400は、比較したタスク同士で状態が不一致である場合には(S18のNO)、再現処理で起動したタスクのうち不一致と判断したタスクの状態を、エントリポイントログ300に記録されている状態に変更する(S19)。例えば、エントリポイントログ300では、あるタスクの自起動タスク状態312が“処理A”だが、再現処理では“処理B”の場合、再現処理で動作した該当タスクの状態を、エントリポイントログ300の対応するタスクの状態と同じ“処理A”に変更する。
図10に、エントリポイントログ300の他の例を示す。
この例では、時間4で作成されたエントリポイントログ300(4)’の他タスク情報格納テーブル320(1)において、タスク2の他タスク状態323が“アイドル”である。仮に、再現処理で動作した該当タスクの状態が“動作”であった場合には、タスク復帰機構400は、記憶部120に保持された再現結果の該当タスクの状態を“アイドル”に修正する。タスク復帰機構400は、タスク復帰管理ログ500と、修正後の再現結果(図示略)に記録されたタスクの状態情報とに基づいて、再度、再現試験を実施してもよい。これにより、エントリポイントログ300に記録された、実際に動作したタスクの状態を反映して再現試験を行うことが可能となる。
なお、タスク復帰機構400は、実際に動作したタスクの状態と、再現処理におけるタスクの状態との差分(状態の違いについての情報)を、差分ログ情報として、記憶部120に記録してもよい。差分ログ情報が示す、実際に動作したタスクの状態と、再現処理におけるタスクの状態との差分を分析することで、障害発生時における電子計算機100の予め設計された状態からどのような変化が発生したかを推測できる。そして、その推測の結果を、ログが残らない不具合が発生した原因の究明に役立てることができる。
次いで、タスク復帰機構400は、ステップS18において比較したタスク同士の状態が一致する場合(S18のYES)、又はステップS19の処理後、本フローチャートの一連の処理を終了する。
制御部110は、上述した再現処理の過程又は結果を、表示装置130や外部装置600に出力できるように構成されている。それにより、システム管理者は、表示装置130又は外部装置600に出力された再現内容を確認し、不具合発生の原因の究明に役立てることができる。
以上説明したように、第1の実施形態に係る電子計算機100では、制御部110(タスク起動監視機構200)が、各タスクを実行する時に、起動して実行を開始するタスクと、既に起動しているタスクとをログ情報(エントリポイントログ300)として記憶部120に格納する。そして、制御部110(タスク復帰機構400)は、障害発生前に起動していたタスク群111に対し、記憶部120に格納したログ情報を基に、障害発生前に動作していたタスクをそのタスクが起動した時間に復帰させて、障害が発生したときのタスクの動作を再現する。これにより、障害発生時の電子計算機100の状態を再現することができる。
このように、第1の実施形態によれば、障害発生前の電子計算機100で動作していたタスクの状態を知ることができるので、それに基づいて電子計算機100を再起動したときに電子計算機100の状態を障害発生前の状態に復旧させる。これにより、電子計算機100にログが残らない不具合が発生した場合に、不具合が発生したときの電子計算機100の状態を再現し、不具合発生の原因の究明が容易となる。
また、以上のとおり、本実施形態に係る電子計算機100では、タスク復帰機構400は、記憶部120に保持されている、最新のログ情報(エントリポイントログ300)を基に、最新のログ情報を取得した時間に動作していたタスクを判断し、該当するタスクを起動した時間が古い順に実行する。
上記構成の電子計算機100によれば、最新のログ情報を取得した時間に動作していたタスクを、起動した時間が古い順に実行することにより、最新のログ情報を取得したときのタスクの動作を再現することができる。
また、以上のとおり、本実施形態に係る電子計算機100では、タスク復帰機構400は、障害が発生したときのタスクの動作を再現する際、再現されるタスクが呼出元タスクからの呼び出しにより動作する呼出タスクの場合には、呼出元タスクから呼出タスクを呼び出すように制御する。
上記構成の電子計算機100によれば、呼出元タスクが動作していなくても、タスク復帰機構400により呼出タスクを呼び出して動作させることができ。そのため、障害発生時のタスクの動作を再現できる。
また、以上のとおり、本実施形態に係る電子計算機100では、タスク復帰機構400は、動作を再現するタスクの状態が、ログ情報(エントリポイントログ300)に格納されたタスクの状態と一致しない場合には、動作を再現するタスクの状態をログ情報に格納されたタスクの状態に変更する。
上記構成の電子計算機100によれば、これにより、ログ情報に記録された、実際に動作したタスクの状態を、再現処理に反映することができる。それゆえ、より精度の高い再現試験が可能となる。
また、本実施形態に係る電子計算機100によれば、最新のエントリポイント(例えば図4の時間4)を過ぎた後に、なんらかのタスク(タスク3)が起動した時点(時間5)で、障害発生期間を過ぎて電子計算機100が動作していることがわかる。本実施形態では、障害が発生したときにステップS12で決定したタスクのみを実行することで、障害が発生した前後に限定して再現試験が実施でき、再現試験の時間短縮が図れる。図4を例とすると、時間5の時点でタスク3のエントリポイントログが作成されていることから、障害が再発しなかったと判断できる。このため、時間3から時間5の間に起動を開始するタスク(図4ではタスク3とタスク2)のみを実施することで、再現試験が実施できる。
<第2の実施形態>
ところで、電子計算機100の起動時に自動的にタスク起動監視機構200を起動する構成とした場合、障害復旧後に再度電子計算機100を起動するとエントリポイント(エントリポイントログ300)が新たに作成(更新)されてしまう。このことを防ぐため、電子計算機100に正常停止監視機構を設けてもよい。
図11は、本発明の第2の実施形態に係る電子計算機の構成例を示すブロック図である。
図11に示す電子計算機100Aは、図1の電子計算機100と比較して、制御部110AのOS層に正常停止監視機構1100と、記憶部120に正常停止ログ1200を備える点が異なる。
正常停止監視機構1100(正常停止監視部の一例)は、例えばタスク群111の動作などを通じて電子計算機100Aが正常に停止したかどうかを監視する。そして、正常停止監視機構1100は、電子計算機100Aが正常に停止した場合には、停止直前に正常停止ログ1200を作成して記憶部120に記録する。電子計算機100Aの再起動時に記憶部120に正常停止ログ1200がある場合には、正常停止監視機構1100は、タスク起動監視機構200を起動し、正常停止ログ1200を削除する。
一方、電子計算機100Aの再起動時に記憶部120に正常停止ログ1200がない場合には、再起動前に電子計算機100Aに障害が発生している。そのため、正常停止監視機構1100は、記憶部120に正常停止ログ1200がない場合には、タスク起動監視機構200を動作させない。
このような構成とすることにより、障害復旧後に再度電子計算機100を起動したときに、エントリポイント(エントリポイントログ300)が新たに作成(更新)されることを防止できる。そのため、再起度後に、電子計算機100を障害が発生したときの状態に復帰(再現)させることができる。
<変形例>
さらに、本発明は上述した各実施形態に限られるものではなく、特許請求の範囲に記載した本発明の要旨を逸脱しない限りにおいて、その他種々の応用例、変形例を取り得ることは勿論である。
例えば、各実施形態において、取得したタスクのログ情報を電子計算機の記憶部120へ保存するのではなく、電子計算機が備える通信部(通信インターフェース150)により外部記憶装置(外部装置600、サーバーなど)へ保存してもよい。
また、各実施形態において、タスク復帰機構400の機能は、電子計算機100,100Aではなく、外部装置600など別装置で実現してもよい。
また、各実施形態において、タスク復帰機構400で復旧させるタスクを、入力装置140や設定ファイルなどからエントリポイントを限定して実行する機能を有していてもよい。例えば、タスク群111に常駐プログラム(タスク)がある場合、障害の再現において常駐プログラムを実行すると、すべてのエントリポイントでタスクを実行することになる。そこで、例えば、常駐プログラム(指定したタスク)を排除するように設定された内容の設定ファイルを用意する。タスク復帰機構400がこの設定ファイルを参照し、再現処理において常駐プログラムを実行しないようにすることで、必要なタスクに限定して再現処理を実施できる。
また、タスク復帰機構400により動作を再現するタスクの状態と、エントリポイントログ300に格納された各タスクの状態の比較は、動作するタスクの順番が最新のエントリポイントに到達したときに限らず、エントリポイントごとに実施してもよい。
また、上記の各構成、機能、処理部等は、それらの一部又は全部を、例えば集積回路で設計するなどによりハードウェアで実現してもよい。ハードウェアとして、FPGA(Field Programmable Gate Array)やASIC(Application Specific Integrated Circuit)などを用いてもよい。
また、図2及び図8に示すフローチャートにおいて、処理結果に影響を及ぼさない範囲で、複数の処理を並列的に実行したり、処理順序を変更したりしてもよい。
100…電子計算機、 110…制御部、 111…タスク群、 120…記憶部、 200…タスク起動監視機構、 300,300(1)~300(4)…エントリポイントログ、 301…エントリポイント作成時間、 310…自タスク情報格納テーブル、 311…自起動タスク名称、 312…自起動タスク状態、 320,320(1)~320(4),320(k)…他タスク情報格納テーブル、 321…他タスク番号、 322…他タスク名称、 323…他タスク状態、 400…タスク復帰機構、 500…タスク復帰管理ログ、 501…タスク起動時間差、 502…起動タスク名称、 503…タスク復帰機構からの呼出要求

Claims (13)

  1. 複数のタスクを予め定められた順序で実行する制御部と、前記タスクのログ情報を記憶する記憶部と、を有し、
    前記制御部は、
    各タスクを実行する時に、起動して実行を開始するタスクと、既に起動しているタスクとをログ情報として前記記憶部に格納するタスク起動監視部と、
    前記記憶部に格納した前記ログ情報を基に、障害が発生する前に動作していたタスクをそのタスクが起動した時間に復帰させて、起動した時間が古い順に前記タスクを実行することにより前記障害が発生したときのタスクの動作を再現するタスク復帰部と、を備え、
    前記タスク復帰部は、前記障害が発生したときのタスクの動作を再現する際、再現されるタスクが呼出元タスクからの呼び出しにより動作する呼出タスクの場合には、前記呼出元タスクから前記呼出タスクを呼び出すように制御する
    電子計算機。
  2. 複数のタスクを予め定められた順序で実行する制御部と、前記タスクのログ情報を記憶する記憶部と、を有し、
    前記制御部は、
    各タスクを実行する時に、起動して実行を開始するタスクと、既に起動しているタスクとをログ情報として前記記憶部に格納するタスク起動監視部と、
    前記記憶部に格納した前記ログ情報を基に、障害が発生する前に動作していたタスクをそのタスクが起動した時間に復帰させて、前記障害が発生したときのタスクの動作を再現するタスク復帰部と、を備え、
    前記タスク復帰部は、動作を再現するタスクの状態が、前記ログ情報に格納された前記タスクの状態と一致しない場合には、前記動作を再現するタスクの状態を前記ログ情報に格納された前記タスクの状態に変更する
    子計算機。
  3. 複数のタスクを予め定められた順序で実行する制御部と、前記タスクのログ情報を記憶する記憶部と、を有し、
    前記制御部は、
    各タスクを実行する時に、起動して実行を開始するタスクと、既に起動しているタスクとをログ情報として前記記憶部に格納するタスク起動監視部と、
    前記記憶部に格納した前記ログ情報を基に、障害が発生する前に動作していたタスクをそのタスクが起動した時間に復帰させて、前記障害が発生したときのタスクの動作を再現するタスク復帰部と、を備え、
    前記タスク起動監視部は、各タスクが実行を開始するときに、実行を開始したタスクの動作開始時間と、動作内容と、状態と、他に動作しているタスクの、識別子と、動作内容と、状態とを、前記ログ情報として前記記憶部に保持する
    子計算機。
  4. 複数のタスクを予め定められた順序で実行する制御部と、前記タスクのログ情報を記憶する記憶部と、を有する電子計算機であって、
    前記制御部は、
    各タスクを実行する時に、起動して実行を開始するタスクと、既に起動しているタスクとをログ情報として前記記憶部に格納するタスク起動監視部と、
    前記記憶部に格納した前記ログ情報を基に、障害が発生する前に動作していたタスクをそのタスクが起動した時間に復帰させて、前記障害が発生したときのタスクの動作を再現するタスク復帰部と、
    記電子計算機が正常に停止したかどうかを監視する正常停止監視部と、を備え、
    前記正常停止監視部は、前記電子計算機が正常に停止した場合に、停止直前に正常停止ログを作成して前記記憶部に記憶し、前記電子計算機の再起動時に前記記憶部に前記正常停止ログがない場合には、前記タスク起動監視部を動作させない
    子計算機。
  5. 外部記憶装置と通信を行う通信部、を備え、
    前記タスク起動監視部は、前記通信部により前記ログ情報を前記外部記憶装置に送信して前記外部記憶装置に前記ログ情報を記憶させる
    請求項1乃至4のいずれか一項に記載の電子計算機。
  6. 複数のタスクを定められた順序で実行する制御部と、前記タスクのログ情報を記憶部と、を有する電子計算機により該電子計算機の動作を再現する再現試験方法であって、
    前記制御部が、該制御部により各タスクを実行する時に、起動して実行を開始するタスクと、既に起動しているタスクとをログ情報として前記記憶部に格納する処理と、
    前記制御部が、前記記憶部に格納した前記ログ情報を基に、障害が発生する前に動作していたタスクをそのタスクが起動した時間に復帰させて、起動した時間が古い順に前記タスクを実行することにより前記障害が発生したときのタスクの動作を再現する処理と、
    前記制御部が、前記障害が発生したときのタスクの動作を再現する際、再現されるタスクが呼出元タスクからの呼び出しにより動作する呼出タスクの場合には、前記呼出元タスクから前記呼出タスクを呼び出すように制御する処理と、を含む
    再現試験方法。
  7. 複数のタスクを定められた順序で実行する制御部と、前記タスクのログ情報を記憶部と、を有する電子計算機により該電子計算機の動作を再現する再現試験方法であって、
    前記制御部が、該制御部により各タスクを実行する時に、起動して実行を開始するタスクと、既に起動しているタスクとをログ情報として前記記憶部に格納する処理と、
    前記制御部が、前記記憶部に格納した前記ログ情報を基に、障害が発生する前に動作していたタスクをそのタスクが起動した時間に復帰させて、前記障害が発生したときのタスクの動作を再現する処理と、
    前記制御部が、動作を再現するタスクの状態が、前記ログ情報に格納された前記タスクの状態と一致しない場合には、前記動作を再現するタスクの状態を前記ログ情報に格納された前記タスクの状態に変更する処理と、を含む
    再現試験方法。
  8. 複数のタスクを定められた順序で実行する制御部と、前記タスクのログ情報を記憶部と、を有する電子計算機により該電子計算機の動作を再現する再現試験方法であって、
    前記制御部が、該制御部により各タスクを実行する時に、起動して実行を開始するタスクと、既に起動しているタスクとをログ情報として前記記憶部に格納する処理と、
    前記制御部が、前記記憶部に格納した前記ログ情報を基に、障害が発生する前に動作していたタスクをそのタスクが起動した時間に復帰させて、前記障害が発生したときのタスクの動作を再現する処理と、を含み、
    前記制御部が、各タスクが実行を開始するときに、実行を開始したタスクの動作開始時間と、動作内容と、状態と、他に動作しているタスクの、識別子と、動作内容と、状態とを、前記ログ情報として前記記憶部に格納する
    再現試験方法。
  9. 複数のタスクを定められた順序で実行する制御部と、前記タスクのログ情報を記憶部と、を有する電子計算機により該電子計算機の動作を再現する再現試験方法であって、
    前記制御部が、該制御部により各タスクを実行する時に、起動して実行を開始するタスクと、既に起動しているタスクとをログ情報として前記記憶部に格納する処理と、
    前記制御部が、前記記憶部に格納した前記ログ情報を基に、障害が発生する前に動作していたタスクをそのタスクが起動した時間に復帰させて、前記障害が発生したときのタスクの動作を再現する処理と、を含み、
    前記制御部が、前記電子計算機が正常に停止したかどうかを監視し、前記電子計算機が正常に停止した場合に、停止直前に正常停止ログを作成して前記記憶部に記憶し、前記電子計算機の再起動時に前記記憶部に前記正常停止ログがない場合には、前記記憶部に前記ログ情報を格納する処理を行わない
    再現試験方法。
  10. 複数のタスクを定められた順序で実行するコンピューターに、
    各タスクを実行する時に、起動して実行を開始するタスクと、既に起動しているタスクとをログ情報として記憶部に格納する手順と、
    前記記憶部に格納した前記ログ情報を基に、障害が発生する前に動作していたタスクをそのタスクが起動した時間に復帰させて、起動した時間が古い順に前記タスクを実行することにより前記障害が発生したときのタスクの動作を再現する手順と、
    前記障害が発生したときのタスクの動作を再現する際、再現されるタスクが呼出元タスクからの呼び出しにより動作する呼出タスクの場合には、前記呼出元タスクから前記呼出タスクを呼び出すように制御する手順と、
    を実行させるためのプログラム。
  11. 複数のタスクを定められた順序で実行するコンピューターに、
    各タスクを実行する時に、起動して実行を開始するタスクと、既に起動しているタスクとをログ情報として記憶部に格納する手順と、
    前記記憶部に格納した前記ログ情報を基に、障害が発生する前に動作していたタスクをそのタスクが起動した時間に復帰させて、前記障害が発生したときのタスクの動作を再現する手順と、
    動作を再現するタスクの状態が、前記ログ情報に格納された前記タスクの状態と一致しない場合には、前記動作を再現するタスクの状態を前記ログ情報に格納された前記タスクの状態に変更する手順と、
    を実行させるためのプログラム。
  12. 複数のタスクを定められた順序で実行するコンピューターに、
    各タスクを実行する時に、起動して実行を開始するタスクと、既に起動しているタスクとをログ情報として記憶部に格納する手順と、
    前記記憶部に格納した前記ログ情報を基に、障害が発生する前に動作していたタスクをそのタスクが起動した時間に復帰させて、前記障害が発生したときのタスクの動作を再現する手順と、
    各タスクが実行を開始するときに、実行を開始したタスクの動作開始時間と、動作内容と、状態と、他に動作しているタスクの、識別子と、動作内容と、状態とを、前記ログ情報として前記記憶部に格納する手順と、
    を実行させるためのプログラム。
  13. 複数のタスクを定められた順序で実行するコンピューターに、
    各タスクを実行する時に、起動して実行を開始するタスクと、既に起動しているタスクとをログ情報として記憶部に格納する手順と、
    前記記憶部に格納した前記ログ情報を基に、障害が発生する前に動作していたタスクをそのタスクが起動した時間に復帰させて、前記障害が発生したときのタスクの動作を再現する手順と、
    前記コンピューターが正常に停止したかどうかを監視し、前記コンピューターが正常に停止した場合に、停止直前に正常停止ログを作成して前記記憶部に記憶し、前記コンピューターの再起動時に前記記憶部に前記正常停止ログがない場合には、前記記憶部に前記ログ情報を格納する処理を行わないように処理する手順と、
    を実行させるためのプログラム。
JP2020125140A 2020-07-22 2020-07-22 電子計算機、再現試験方法及びプログラム Active JP7291107B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020125140A JP7291107B2 (ja) 2020-07-22 2020-07-22 電子計算機、再現試験方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020125140A JP7291107B2 (ja) 2020-07-22 2020-07-22 電子計算機、再現試験方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2022021528A JP2022021528A (ja) 2022-02-03
JP7291107B2 true JP7291107B2 (ja) 2023-06-14

Family

ID=80220470

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020125140A Active JP7291107B2 (ja) 2020-07-22 2020-07-22 電子計算機、再現試験方法及びプログラム

Country Status (1)

Country Link
JP (1) JP7291107B2 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008310748A (ja) 2007-06-18 2008-12-25 Honda Motor Co Ltd タスク実行時間記録装置、タスク実行時間記録方法、及びタスク実行時間記録用プログラム
JP2014170464A (ja) 2013-03-05 2014-09-18 Mitsubishi Electric Corp 処理装置および性能監視情報取得プログラム
JP2017129931A (ja) 2016-01-18 2017-07-27 株式会社日立製作所 トレースデータ編集装置及び方法
JP2017194729A (ja) 2016-04-18 2017-10-26 株式会社日立製作所 計算機システムおよびシステム状態再現方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02197954A (ja) * 1989-01-27 1990-08-06 Nec Corp 並列実行再現方式
JP2541007B2 (ja) * 1990-10-09 1996-10-09 日本電気株式会社 定電圧検出回路
JP3391990B2 (ja) * 1996-09-19 2003-03-31 株式会社日立国際電気 ロギング管理方法及びロギング用時計及び情報処理装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008310748A (ja) 2007-06-18 2008-12-25 Honda Motor Co Ltd タスク実行時間記録装置、タスク実行時間記録方法、及びタスク実行時間記録用プログラム
JP2014170464A (ja) 2013-03-05 2014-09-18 Mitsubishi Electric Corp 処理装置および性能監視情報取得プログラム
JP2017129931A (ja) 2016-01-18 2017-07-27 株式会社日立製作所 トレースデータ編集装置及び方法
JP2017194729A (ja) 2016-04-18 2017-10-26 株式会社日立製作所 計算機システムおよびシステム状態再現方法

Also Published As

Publication number Publication date
JP2022021528A (ja) 2022-02-03

Similar Documents

Publication Publication Date Title
US10884837B2 (en) Predicting, diagnosing, and recovering from application failures based on resource access patterns
US9354982B2 (en) Manipulating electronic backups
JP4363676B2 (ja) コンピュータシステム
US7908521B2 (en) Process reflection
US8438546B2 (en) System and method for mitigating repeated crashes of an application resulting from supplemental code
JP4321705B2 (ja) スナップショットの取得を制御するための装置及び記憶システム
Ganapathi et al. Windows XP Kernel Crash Analysis.
US8140907B2 (en) Accelerated virtual environments deployment troubleshooting based on two level file system signature
US8132043B2 (en) Multistage system recovery framework
US20040260678A1 (en) State based configuration failure detection using checkpoint comparison
JP7291107B2 (ja) 電子計算機、再現試験方法及びプログラム
US7114097B2 (en) Autonomic method to resume multi-threaded preload imaging process
KR100358278B1 (ko) 시스템 장애 자가 진단/복구기능을 갖는 컴퓨터 시스템 및그 방법
CN114116330A (zh) 服务器性能测试方法、系统、终端及存储介质
WO2014147707A1 (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
CN110658989B (zh) 用于备份存储垃圾收集的系统和方法
US20230315881A1 (en) Universal platform for data protection
TW200426581A (en) Method to record the power-on test flow
JP2011118792A (ja) 計算機システム試験装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211214

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221028

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221206

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230125

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230523

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230602

R150 Certificate of patent or registration of utility model

Ref document number: 7291107

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150