JP6303724B2 - ログ制御方法、ログ制御プログラムおよびログ制御装置 - Google Patents

ログ制御方法、ログ制御プログラムおよびログ制御装置 Download PDF

Info

Publication number
JP6303724B2
JP6303724B2 JP2014073559A JP2014073559A JP6303724B2 JP 6303724 B2 JP6303724 B2 JP 6303724B2 JP 2014073559 A JP2014073559 A JP 2014073559A JP 2014073559 A JP2014073559 A JP 2014073559A JP 6303724 B2 JP6303724 B2 JP 6303724B2
Authority
JP
Japan
Prior art keywords
flag
log
thread
local
global
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
JP2014073559A
Other languages
English (en)
Other versions
JP2015197690A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2014073559A priority Critical patent/JP6303724B2/ja
Publication of JP2015197690A publication Critical patent/JP2015197690A/ja
Application granted granted Critical
Publication of JP6303724B2 publication Critical patent/JP6303724B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は、ログ制御方法、ログ制御プログラムおよびログ制御装置に関する。
従来から、情報処理システムでは、障害箇所の特定や障害の復旧に利用するために、システムログやアクセスログなどの各種ログを取得して保持している。例えば、インターネットバンキングのシステムでは、マルチスレッドによって複数ユーザから非同期に開始される各取引についてログを取得する。取得されたログは、取引が正しく行われたことの事後確認や取引状況の分析等に利用される。
インターネットバンキングなどは、1つの取引中の複数タイミングでログが出力される。1つの取引が全て完了してから、該取引に関する複数のログをまとめて出力すると、取引の途中で障害が発生した場合に、該取引に係る複数分のログが記録できなくなる。このため、システム側で取引を途中から復旧させようとしても、どこまで処理が進んだのかわからなくなる恐れがある。そのような事態に陥ることのないように、インターネットバンキングなどでは、取引の途中でログ出力が発生する都度、ログファイルへのログ出力を実行する。
また、インターネットバンキングなどを含む情報処理システムは、その日の処理内容等を正確に把握するために、ログファイルを切り替えて、日毎にログを収集する。例えば、情報処理システムでは、午前0時を境として、スレッドの発生時刻に対応する日付のログファイルに出力する。
特開2008−102847号公報
さて、日毎にログの出力先とするログファイルを分けるとして、スレッドがログファイルの切り替えタイミングを跨って実行されていると、ログ出力に不整合が発生する場合があることに発明者らは気づいた。
例えば、3月3日の23時59分に実行開始されたスレッドXが、午前0時を超えても実行され続けている場合でも、スレッドXは3月3日の処理に該当する。このため、スレッドXのログは、3月3日のログファイルにログを出力させたい。しかし、スレッドYが3月4日の0時1分に起動した場合、スレッドYは3月4日の処理に該当する。このため、スレッドYは、ログファイルを3月3日用から3月4日用に切り替えて、ログを出力する。
この結果、スレッドXに関するログを出力しようとした時点で、ログの出力先が4日用のログファイルに切り替えられてしまっている場合がある。すなわち、スレッドXは、午前0時を超えるまでは3日用のログファイルにログを出力し、午前0時以降は4日用のログファイルにログを出力することになる。このように、上記技術では、日毎にログを管理できない事象が発生する。
1つの側面では、ログ出力に伴う不整合の発生を抑制することができるログ制御方法、ログ制御プログラムおよびログ制御装置を提供することを目的とする。
第1の案では、コンピュータが、実行が開始された処理に第1のフラグを対応付ける。コンピュータが、前記処理の実行が開始された開始時刻が前記第1のフラグと対応付けられる第1の基準時刻を超えない場合、前記第1の基準時刻に対応する第1のログファイルに、前記処理に関するログを出力する。コンピュータが、前記開始時刻が前記第1の基準時刻を超える場合、第2の基準時刻に対応する第2のログファイルに、前記ログを出力する。
1実施形態によれば、ログ出力に伴う不整合の発生を抑制することができる。
図1は、実施例1に係るシステムの全体構成例を示す図である。 図2は、実施例1に係るログ制御装置の機能構成を示す機能ブロック図である。 図3は、ローカルフラグテーブルに記憶される情報の例を示す図である。 図4は、グローバルフラグと切替時刻の遷移を説明する図である。 図5は、実施例1に係る処理の流れを示すフローチャートである。 図6は、実施例1に係るマルチスレッドによるログ切替処理の流れを示すシーケンス図である。 図7は、スレッド追い越し時におけるログ切替処理の流れを示すシーケンス図である。 図8は、ログ切替前に切替時刻を超過するスレッドが複数発生した時のログ切替処理の流れを示すシーケンス図である。 図9は、ハードウェア構成例を説明する図である。
以下に、本願の開示するログ制御方法、ログ制御プログラムおよびログ制御装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
図1は、実施例1に係るシステムの全体構成例を示す図である。図1に示すように、このシステムは、一例として、ネットバンキングシステムを図示したが、これに限定されるものではなく、様々な情報処理システムに適用できる。
このシステムは、複数のクライアント端末5と銀行センター100とを有する。各クライアント端末5と銀行センター100とは、ネットワーク6を介して接続される。各クライアント端末5は、インターネットなどのネットワーク通信可能な端末であり、例えばパーソナルコンピュータ、携帯端末、スマートフォンである。
銀行センター100は、ログ制御装置10と勘定系ホスト50とを有し、クライアント端末5から受信した各種取引を実行する。勘定系ホスト50は、ログ制御装置10を介して、クライアント端末5が要求した取引を受信して実行し、ログ制御装置10を介して実行結果を応答する。
ログ制御装置10は、クライアント端末5から受信した各種取引を勘定系ホスト50に出力し、勘定系ホスト50から処理結果を受信してクライアント端末5に応答するサーバなどの装置である。このログ制御装置10は、各種取引や処理に関するログを出力する。
このようなログ制御装置10は、実行が開始されたスレッドに第1のフラグを対応付ける。そして、ログ制御装置10は、スレッドの実行が開始された開始時刻が第1のフラグと対応付けられる第1の基準時刻を超えない場合、第1の基準時刻に対応する第1のログファイルに、スレッドに関するログを出力する。一方、ログ制御装置10は、開始時刻が第1の基準時刻を超える場合、第2の基準時刻に対応する第2のログファイルに、ログを出力する。
例えば、ログ制御装置10は、スレッドの実行を開始すると、当該スレッドにフラグを設定する。そして、ログ制御装置10は、フラグに対応する基準時刻とスレッドの開始時刻とを比較し、開始時刻が基準時刻前にあれば、ロガーAを用いてログファイルAにログを出力する。一方、ログ制御装置10は、開始時刻が基準時刻を超えていれば、ロガーBを用いてログファイルBにログを出力する。
このように、ログ制御装置10は、日毎にロガーを切替える際、スレッドの実行開始時に割当てたフラグで決定される時刻で切替判定するので、スレッドが日を跨いで実行されても、実行開始時の時刻で判定でき、同日ファイルにログ出力できる。したがって、ログ制御装置10は、ログ出力に伴う不整合の発生を抑制することができる。
図2は、実施例1に係るログ制御装置の機能構成を示す機能ブロック図である。図2に示すように、ログ制御装置10は、通信制御部11、記憶部12、制御部20を有する。
通信制御部11は、他の装置の通信を制御する処理部であり、例えばネットワークインタフェースカードなどである。例えば、通信制御部11は、クライアント端末5から取引などの要求を受信し、取引結果などを送信する。
記憶部12は、各種プログラムやデータを記憶するハードディスクや半導体メモリなどの記憶装置であり、ローカルフラグテーブル13、グローバルフラグテーブル14、切替時刻テーブル15、ログファイルA16、ログファイルB17を記憶する。
ローカルフラグテーブル13は、スレッドごとに、スレッドに割当てたローカルフラグの値を記憶する。図3は、ローカルフラグテーブルに記憶される情報の例を示す図である。図3に示すように、ローカルフラグテーブル13は、「スレッド名、フラグ」を対応付けて記憶する。
「スレッド名」は、スレッドを特定する情報であり、例えばスレッドの名称などが設定される。フラグは、ローカルフラグの値が設定される。図3では、スレッド1にはフラグAが対応付けられており、スレッド2にはフラグBが対応付けられている例を示している。
グローバルフラグテーブル14は、各スレッドが共通に参照する共有フラグであるグローバルフラグの値を記憶する。例えば、グローバルフラグテーブル14は、「グローバルフラグ、フラグA」などを記憶する。
切替時刻テーブル15は、ログファイルを切替えるタイミングを示す各切替時刻の値を記憶する。例えば、切替時刻テーブル15は、フラグAに対応する切替時刻Aを「2013年11月22日12:00」と記憶し、フラグBに対応する切替時刻Bを「2013年11月23日12:00」と記憶する。
ログファイルA16は、ロガーAの出力先となるログファイルであり、日毎にログを記憶する。例えば、ログファイルA16は、奇数日に実行されたスレッドのログを日毎に記憶する。ログファイルB17は、ロガーBの出力先となるログファイルであり、日毎にログを記憶する。例えば、ログファイルB17は、偶数日に実行されたスレッドのログを日毎に記憶する。
制御部20は、ログ制御装置10全体を司る処理日であり、例えばプロセッサなどである。この制御部20は、スレッド実行部21、ローカル処理部22、グローバル比較部23、更新部24、ログ出力部25を有する。なお、これらの処理部は、電子回路の一部やプロセッサが実行するプロセスの一部である。
スレッド実行部21は、スレッドを実行する処理部である。具体的には、スレッド実行部21は、クライアント端末5から各種取引などの要求を受信すると、当該要求に対応するスレッドを実行する。
ローカル処理部22は、ローカル設定部22aとローカル比較部22bとを有し、これらによってローカルフラグを用いた各種処理を実行する処理部である。
ローカル設定部22aは、実行が開始されたスレッドにローカルフラグを設定する処理部である。具体的には、ローカル設定部22aは、スレッドが開始されると、グローバルフラグテーブル14からグローバルフラグの値を取得する。そして、ローカル設定部22aは、実行されたスレッドの名称と、グローバルフラグの値が設定されたローカルフラグとを対応付けて、ローカルフラグテーブル13に格納する。なお、ローカル設定部22aは、対応付け部の一例である。
ローカル比較部22bは、スレッドの開始時刻と、ローカルフラグに対応付けられる切替時刻とを比較する処理部である。例えば、ローカル比較部22bは、スレッド1と対応付けられるローカルフラグ「フラグA」をローカルフラグテーブル13から特定する。そして、ローカル比較部22bは、スレッド1の開始時刻と、フラグAに対応する切替時刻Aとを比較する。
比較した結果、ローカル比較部22bは、スレッド1の開始時刻が切替時刻A以内であれば、ログ出力部25に対して、スレッド1のログをロガーAで出力することを指示する。一方、ローカル比較部22bは、スレッド1の開始時刻が切替時刻A以降であれば、グローバル比較部23に対して、スレッド1に対するグローバルフラグによる切替判定の処理を依頼する。
グローバル比較部23は、グローバルアドレスに対応する切替時刻と、スレッドの開始時刻とを比較する処理部である。具体的には、グローバル比較部23は、ローカルフラグを用いた切替判定によって切替時刻を超過すると判定されたスレッドに対して、グローバルアドレスを用いた切替判定を実行する。
例えば、グローバル比較部23は、スレッド1についてグローバルフラグによる切替判定の処理依頼を受信すると、グローバルフラグテーブル14からグローバルフラグ「フラグA」を取得する。そして、グローバル比較部23は、スレッド1の開始時刻と、フラグAに対応する切替時刻Aとを比較する。
比較した結果、グローバル比較部23は、スレッド1の開始時刻が切替時刻A以内であれば、ログ出力部25に対して、切替時刻Aに対応するロガーAでスレッド1のログを出力することを指示する。
一方で、グローバル比較部23は、スレッド1の開始時刻が切替時刻A以降であれば、更新部24に対して、グローバルフラグの更新を依頼する。さらに、グローバル比較部23は、更新部24に対して、他方の切替時刻Bの更新を依頼する。
ここで、グローバル比較部23がグローバルフラグを用いた比較処理を実行するのは、グローバルフラグが他のスレッドによって更新されていないかを検出するためのものである。このような判定を行うことで、グローバルフラグが複数のスレッドによって同タイミングで別々に更新されることを抑制する。
更新部24は、ローカルフラグ、グローバルフラグ、切替時刻を更新する処理部である。具体的には、更新部24は、グローバルフラグによる切替判定によって切替時刻を超過すると判定された場合、グローバルフラグおよび切替時刻を更新し、ロガーを切替えることで、ログファイルを切替える。
例えば、更新部24は、グローバル比較部23から切替時刻Bの更新依頼を受信すると、切替時刻Bを切替時刻Aの24時間後に変更する。また、更新部24は、切替時刻Bを更新した場合、グローバルフラグテーブル14に記憶されるグローバルフラグ「フラグA」を、切替時刻Bに対応する「フラグB」に更新する。さらに、更新部24は、グローバルフラグによる判定契機となったスレッドのローカルフラグ「フラグA」を、更新後のグローバルフラグの値「フラグB」に更新する。
図4を用いて一例を説明する。図4は、グローバルフラグと切替時刻の遷移を説明する図である。図4に示すように、更新部24は、スレッド1の開始時刻が切替時刻A「2013年11月22日12:00」を超過すると判定された場合、切替時刻Bを切替時刻Aの24時間後である「2013年11月23日12:00」に更新する。さらに、更新部24は、グローバルフラグの値を、更新した切替時刻Bに対応するフラグBに更新する。この結果、切替時刻更新後に発生するスレッドのログは、切替時刻Bを用いて切替判定される。
ログ出力部25は、切替時刻ごとのロガーを用いてログ出力を実行する処理部である。なお、ログ出力部25は、出力制御部の一例である。具体的には、ログ出力部25は、日毎に2つのログファイルを切替えてログ出力を実行する。
例えば、ログ出力部25は、切替時刻A以内であればロガーAを用いて、ログファイルA16にログを出力する。また、ログ出力部25は、切替時刻B以内であればロガーBを用いて、ログファイルB17にログを出力する。なお、ログ出力部25は、各ログファイル内で日毎に領域を分けてログ出力する。
次に、ログ制御装置10が実行する処理の流れを説明する。ここでは、具体的な数値例を挙げて説明するが、あくまで一例であり、任意に変更することができる。
図5は、実施例1に係る処理の流れを示すフローチャートである。図5に示すように、スレッドの実行が開始されると(S101:Yes)、ローカル設定部22aは、グローバルフラグテーブル14からグローバルフラグを取得し(S102)、取得したグローバルフラグを実行スレッドのローカルフラグに設定する(S103)。続いて、ローカル設定部22aは、システム情報等から開始時刻を取得する(S104)。
その後、ローカル比較部22bは、対象スレッドの開始時刻がローカルフラグに対応する切替時刻を超過するかを判定する(S105)。ここで、ローカル比較部22bは、対象スレッドの開始時刻がローカルフラグに対応する切替時刻を超過しない場合(S105:No)、ログ出力部25は、実行スレッドのログを、ローカルフラグに対応するロガーで出力する(S106)。
一方、対象スレッドの開始時刻がローカルフラグに対応する切替時刻を超過する場合(S105:Yes)、グローバル比較部23は、グローバルフラグテーブル14からグローバルフラグを取得する(S107)。
続いて、グローバル比較部23は、対象スレッドの開始時刻がグローバルフラグに対応する切替時刻を超過するかを判定する(S108)。ここで、グローバル比較部23は、対象スレッドの開始時刻がグローバルフラグに対応する切替時刻を超過しない場合(S108:No)、ログ出力部25は、対象スレッドのログを、ローカルフラグに対応するロガーで出力する(S106)。
一方、対象スレッドの開始時刻がグローバルフラグに対応する切替時刻を超過する場合(S108:Yes)、更新部24は、もう一方の切替時刻を1日後(24時間後)に更新する(S109)。
さらに、更新部24は、ログ出力部25に対してロガーの更新を指示し(S110)、グローバルフラグテーブル14のグローバルフラグを、更新した切替時刻に対応するフラグに更新する(S111)。
その後、更新部24は、対象スレッドのローカルフラグを、更新した切替時刻に対応するフラグに更新し(S112)、ログ出力部25は、対象スレッドのログを、更新後のローカルフラグに対応するロガーで出力する(S106)。
図6は、実施例1に係るマルチスレッドによるログ切替処理の流れを示すシーケンス図である。図6に示すように、スレッド実行部21は、2013年11月22日11時59分にスレッド2の実行を開始する(S201)。
続いて、ローカル設定部22aは、グローバルフラグテーブル14からグローバルフラグに設定される「フラグA」を取得し(S202とS203)、スレッド2のローカルフラグ2に設定する(S204とS205)。
そして、ローカル比較部22bは、ローカルフラグ2に設定される「フラグA」に対応する切替時刻A「2013年11月22日12時00分」と、スレッド2の開始時刻「2013年11月22日11時59分」とを比較する(S206)。ここで、ローカル設定部22aは、開始時刻が切替時刻Aを超過しないと判定する(S207)。
この結果、ログ出力部25は、スレッド2が出力するログを、ローカルフラグ2に設定される「フラグA」に対応するロガーAを用いてログファイルAに出力し(S208とS209)、出力結果をクライアント端末5や管理装置に応答する(S210)。
その後、スレッド実行部21は、2013年11月22日12時01分にスレッド1の実行を開始する(S211)。すると、ローカル設定部22aは、グローバルフラグに設定される「フラグA」を取得し(S212とS213)、スレッド1のローカルフラグ1に設定する(S214とS215)。
そして、ローカル比較部22bは、ローカルフラグ1に設定される「フラグA」に対応する切替時刻A「2013年11月22日12時00分」と、スレッド1の開始時刻「2013年11月22日12時01分」とを比較する(S216)。ここで、ローカル比較部22bは、開始時刻が切替時刻Aを超過すると判定する(S217)。このとき、グローバル比較部23および更新部24は、グローバルフラグに関する各種処理の排他制御を開始する。
グローバル比較部23は、グローバルフラグテーブル14からグローバルフラグに設定される「フラグA」を取得する(S218とS219)。続いて、グローバル比較部23は、グローバルフラグに設定される「フラグA」に対応する切替時刻A「2013年11月22日12時00分」と、スレッド1の開始時刻「2013年11月22日12時01分」とを比較する(S220)。ここで、グローバル比較部23は、開始時刻が切替時刻Aを超過すると判定する(S221)。
この結果、更新部24は、判定に利用された切替時刻Aと異なるもう一方の切替時刻Bを切替時刻Aの24時間後である「2013年11月23日12時00分」に更新する(S222とS223)。続いて、更新部24は、更新した切替時刻Bに対応するロガーBへの切替指示をログ出力部25に出力する(S224とS225)。
その後、更新部24は、グローバルフラグテーブル14に設定されるグローバルフラグを、時刻を更新した切替時刻Bに対応する「フラグB」に更新する(S226とS227)。このとき、グローバル比較部23および更新部24は、グローバルフラグに関する各種処理の排他制御を解除する。さらに、更新部24は、スレッド1のローカルフラグ1に対しても、グローバルフラグに設定された「フラグB」を設定する(S228とS229)。
この結果、ログ出力部25は、スレッド1が出力するログを、ローカルフラグ1に設定される「フラグB」に対応するロガーBを用いてログファイルBに出力し(S230とS231)、出力結果をクライアント端末5や管理装置に応答する(S232)。
その後、スレッド実行部21は、2013年11月22日12時02分にスレッド2の実行を再度開始する(S233)。すると、ローカル設定部22aは、グローバルフラグテーブル14に設定されるグローバルフラグ「フラグB」を取得し(S234とS235)、スレッド2のローカルフラグ2に設定する(S236とS237)。
そして、ローカル比較部22bは、ローカルフラグ2に設定される「フラグB」に対応する切替時刻B「2013年11月23日12時00分」と、スレッド2の開始時刻「2013年11月22日12時02分」とを比較する(S238)。ここで、ローカル設定部22aは、開始時刻が切替時刻Bを超過しないと判定する(S239)。
この結果、ログ出力部25は、新たに実行されたスレッド2が出力するログを、ローカルフラグ2の「フラグB」に対応するロガーBを用いてログファイルBに出力し(S240とS241)、出力結果をクライアント端末5や管理装置に応答する(S242)。
図7は、スレッド追い越し時におけるログ切替処理の流れを示すシーケンス図である。図7に示すように、スレッド実行部21は、2013年11月22日11時59分にスレッド1の実行を開始する(S301)。
続いて、ローカル設定部22aは、グローバルフラグテーブル14からグローバルフラグに設定される「フラグA」を取得し(S302とS303)、スレッド1のローカルフラグ1に設定する(S304とS305)。
そして、ローカル比較部22bは、ローカルフラグ1に設定される「フラグA」に対応する切替時刻A「2013年11月22日12時00分」と、スレッド1の開始時刻「2013年11月22日11時59分」とを比較する(S306)。ここで、ローカル設定部22aは、開始時刻が切替時刻Aを超過しないと判定する(S307)。
この結果、ログ出力部25は、スレッド1が出力するログを、ローカルフラグ1に設定される「フラグA」に対応するロガーAを用いてログファイルAに出力し(S308とS309)、出力結果をクライアント端末5や管理装置に応答する。
その後、スレッド実行部21は、2013年11月22日11時59分にスレッド2の実行を開始する(S310)。すると、ローカル設定部22aは、グローバルフラグに設定される「フラグA」を取得する(S311とS312)。
一方で、スレッド実行部21は、2013年11月22日12時01分にスレッド1の実行を開始する(S313)。すると、ローカル設定部22aは、グローバルフラグに設定される「フラグA」を取得する(S314とS315)。
そして、ローカル設定部22aは、スレッド2に対して、スレッド2のローカルフラグ2に、グローバルフラグの「フラグA」を設定する(S316とS317)。同様に、ローカル設定部22aは、スレッド1に対して、スレッド1のローカルフラグ1に、グローバルフラグの「フラグA」を設定する(S318とS319)。
続いて、ローカル比較部22bは、スレッド1のローカルフラグ1に設定される「フラグA」に対応する切替時刻A「2013年11月22日12時00分」と、スレッド1の開始時刻「2013年11月22日12時01分」とを比較する(S320)。ここで、ローカル比較部22bは、開始時刻が切替時刻Aを超過すると判定する(S321)。このとき、グローバル比較部23および更新部24は、グローバルフラグに関する各種処理を排他制御を開始する。
そして、切替時間を超過するスレッド1について、グローバル比較部23は、グローバルフラグテーブル14からグローバルフラグに設定される「フラグA」を取得する(S322とS323)。続いて、グローバル比較部23は、グローバルフラグの「フラグA」に対応する切替時刻A「2013年11月22日12時00分」と、スレッド1の開始時刻「2013年11月22日12時01分」とを比較する(S324)。ここで、グローバル比較部23は、開始時刻が切替時刻Aを超過すると判定する(S325)。
この結果、更新部24は、判定に利用された切替時刻Aと異なるもう一方の切替時刻Bを切替時刻Aの24時間後である「2013年11月23日12時00分」に更新する(S326とS327)。続いて、更新部24は、更新した切替時刻Bに対応するロガーBへの切替指示をログ出力部25に出力する(S328とS329)。
その後、更新部24は、グローバルフラグテーブル14に設定されるグローバルフラグを、時刻を更新した切替時刻Bに対応する「フラグB」に更新する(S330とS331)。このとき、グローバル比較部23および更新部24は、グローバルフラグに関する各種処理の排他制御を解除する。
一方で、切替時間を超過しないスレッド2について、S332を実行する。すなわち、ローカル比較部22bは、S310で起動されたスレッド2のローカルフラグ2の「フラグA」に対応する切替時刻A「2013年11月22日12時00分」と、スレッド2の開始時刻「2013年11月22日11時59分」とを比較する。ここで、ローカル設定部22aは、開始時刻が切替時刻Aを超過しないと判定する(S333)。
その一方で、切替時間を超過したスレッド1について、更新部24は、スレッド1の切替処理において、グローバルフラグテーブル14に設定したグローバルフラグの値「フラグB」を、スレッド1のローカルフラグ1に設定する(S334とS335)。なお、スレッド1の切替処理とは、例えば排他制御期間であり、上記S322からS331の処理期間である。この結果、ログ出力部25は、スレッド1が出力するログを、スレッド1のローカルフラグ1に設定される「フラグB」に対応するロガーBを用いてログファイルBに出力し(S336とS337)、出力結果をクライアント端末5や管理装置に応答する(S338)。
また、S320において切替時間を超過しないスレッド2については、ログ出力部25は、スレッド2のローカルフラグ2の「フラグA」に対応するロガーAを用いてログファイルAに出力する(S339とS340)。そして、ログ出力部25は、出力結果をクライアント端末5や管理装置に応答する(S341)。
その後、スレッド実行部21は、2013年11月22日12時02分にスレッド1の実行を再度開始する(S342)。すると、ローカル設定部22aは、グローバルフラグテーブル14からグローバルフラグに設定される「フラグB」を取得し(S343とS344)、スレッド1のローカルフラグ1に設定する(S345とS346)。
そして、ローカル比較部22bは、ローカルフラグ1の「フラグB」に対応する切替時刻B「2013年11月23日12時00分」と、スレッド1の開始時刻「2013年11月22日12時02分」とを比較する(S347)。ここで、ローカル設定部22aは、開始時刻が切替時刻Bを超過しないと判定する(S348)。
この結果、ログ出力部25は、新たに実行されたスレッド1が出力するログを、ローカルフラグ1の「フラグB」に対応するロガーBを用いてログファイルBに出力し(S349とS350)、出力結果をクライアント端末5や管理装置に応答する(S351)。
図8は、ログ切替前に切替時刻を超過するスレッドが複数発生した時のログ切替処理の流れを示すシーケンス図である。図8に示すように、スレッド実行部21は、2013年11月22日11時59分にスレッド2の実行を開始する(S401)。
続いて、ローカル設定部22aは、グローバルフラグテーブル14に設定されるグローバルフラグ「フラグA」を取得し(S402とS403)、スレッド2のローカルフラグ2に設定する(S404とS405)。
そして、ローカル比較部22bは、ローカルフラグ2の「フラグA」に対応する切替時刻A「2013年11月22日12時00分」と、スレッド2の開始時刻「2013年11月22日11時59分」とを比較する(S406)。ここで、ローカル設定部22aは、開始時刻が切替時刻Aを超過しないと判定する(S407)。
この結果、ログ出力部25は、スレッド2が出力するログを、ローカルフラグ2の「フラグA」に対応するロガーAを用いてログファイルAに出力し(S408とS409)、出力結果をクライアント端末5や管理装置に応答する。
その後、スレッド実行部21は、2013年11月22日12時01分にスレッド1の実行を開始し(S410)、2013年11月22日12時02分にスレッド2の実行を開始する(S411)。
続いて、ローカル設定部22aは、スレッド1に対して、グローバルフラグに設定される「フラグA」を取得し(S412とS413)、同様に、スレッド2に対して、グローバルフラグに設定される「フラグA」を取得する(S414とS415)。
そして、ローカル設定部22aは、スレッド1に対して、スレッド1のローカルフラグ1に、グローバルフラグの「フラグA」を設定する(S416とS417)。同様に、ローカル設定部22aは、スレッド2に対して、スレッド2のローカルフラグ2に、グローバルフラグの「フラグA」を設定する(S418とS419)。
その後、スレッド1に対して、ローカル比較部22bは、S420を実行する。すなわち、ローカル比較部22bは、スレッド1のローカルフラグ1の「フラグA」に対応する切替時刻A「2013年11月22日12時00分」と、スレッド1の開始時刻「2013年11月22日12時01分」とを比較する。ここで、ローカル比較部22bは、スレッド1に対して、開始時刻が切替時刻Aを超過すると判定する(S421)。
同様に、スレッド2に対して、ローカル比較部22bは、S422を実行する。すなわち、ローカル比較部22bは、スレッド2のローカルフラグ1の「フラグA」に対応する切替時刻A「2013年11月22日12時00分」と、スレッド2の開始時刻「2013年11月22日12時02分」とを比較する。ここで、ローカル比較部22bは、スレッド2に対して、開始時刻が切替時刻Aを超過すると判定する(S423)
ここで、グローバル比較部23および更新部24は、スレッド1に対するグローバルフラグに関する各種処理の排他制御を開始して、各フラグの更新処理を実行する。ここでは、以下に示すように、スレッド1がスレッド2よりも先に、起動していることから、スレッド1に対して処理の実行を許容し、スレッド2に対する処理を抑制する。
具体的には、切替時間を超過するスレッド1について、グローバル比較部23は、グローバルフラグテーブル14からグローバルフラグに設定される「フラグA」を取得する(S424とS425)。続いて、グローバル比較部23は、グローバルフラグの「フラグA」に対応する切替時刻A「2013年11月22日12時00分」と、スレッド1の開始時刻「2013年11月22日12時01分」とを比較する(S426)。ここで、グローバル比較部23は、開始時刻が切替時刻Aを超過すると判定する(S427)。
この結果、更新部24は、判定に利用された切替時刻Aとは異なるもう一方の切替時刻Bを切替時刻Aの24時間後である「2013年11月23日12時00分」に更新する(S428とS429)。続いて、更新部24は、更新した切替時刻Bに対応するロガーBへの切替指示をログ出力部25に出力する(S430とS431)。
その後、更新部24は、グローバルフラグテーブル14に設定されるグローバルフラグを、時刻を更新した切替時刻Bに対応する「フラグB」に更新する(S432とS433)。このとき、グローバル比較部23および更新部24は、グローバルフラグに関する各種処理の排他制御を解除する。
スレッド1の排他制御が解除されると、スレッド1と同様に切替時間を超過するスレッド2について、グローバル比較部23は、グローバルフラグテーブル14からグローバルフラグに設定される「フラグB」を取得する(S434とS435)。
続いて、グローバル比較部23は、グローバルフラグの「フラグB」に対応する切替時刻B「2013年11月23日12時00分」と、スレッド1の開始時刻「2013年11月22日12時01分」とを比較する(S436)。ここで、グローバル比較部23は、スレッド2の開始時刻が切替時刻Bを超過しないと判定する(S437)。なお、S434からS437の期間は、排他制御されるので、グローバルフラグへの更新は、スレッド2に関する処理でしか行われない。
その後、スレッド1について、更新部24は、グローバルフラグテーブル14においてグローバルフラグに設定される「フラグB」を、スレッド1のローカルフラグ1に設定する(S438とS439)。
同様に、スレッド2について、更新部24は、S535で取得されたグローバルフラグの「フラグB」を、スレッド2のローカルフラグ2に設定する(S440とS441)。
そして、ログ出力部25は、スレッド1が出力するログを、スレッド1のローカルフラグ1の「フラグB」に対応するロガーBを用いてログファイルBに出力し(S442とS443)、出力結果をクライアント端末5や管理装置に応答する(S444)。
同様に、ログ出力部25は、スレッド2が出力するログを、スレッド2のローカルフラグ2の「フラグB」に対応するロガーBを用いてログファイルBに出力し(S445とS446)、出力結果をクライアント端末5や管理装置に応答する(S447)。
その後、スレッド実行部21は、2013年11月22日12時03分にスレッド1の実行を再度開始する(S448)。すると、ローカル設定部22aは、グローバルフラグテーブル14からグローバルフラグに設定される「フラグB」を取得し(S449とS450)、スレッド1のローカルフラグ1に設定する(S451とS452)。
そして、ローカル比較部22bは、ローカルフラグ1の「フラグB」に対応する切替時刻B「2013年11月23日12時00分」と、スレッド1の開始時刻「2013年11月22日12時03分」とを比較する(S453)。ここで、ローカル設定部22aは、開始時刻が切替時刻Bを超過しないと判定する(S454)。
この結果、ログ出力部25は、新たに実行されたスレッド1が出力するログを、ローカルフラグ1の「フラグB」に対応するロガーBを用いてログファイルBに出力し(S455とS456)、出力結果をクライアント端末5や管理装置に応答する(S457)。
ログ制御装置10は、基準時刻毎にロガーを切替える際に、スレッドの実行時に割当てたフラグで決定される基準時刻で切替判定するので、1つのスレッドに対して同じ基準時刻で切替判定ができる。したがって、ログ制御装置10は、ログ出力に伴う不整合の発生を抑制することができる。
ここで、ログ出力に伴う不整合の発生を抑制する方法としては、先に実行されたスレッドの実行が完了するまで、ログファイルのアクセスを排他制御することで、ログファイルの切り替えを抑制することも考えられる。しかし、先に実行されたスレッドの数が多い場合や先に実行開始されたスレッドが長時間終了しない場合、ログファイルが長時間排他制御されるので、システム全体の性能劣化につながる。
これに対して、ログ制御装置10は、複数の切替時刻と、各切替時刻に対応するロガーと、いずれの切替時刻およびロガーを用いるかを決定する各フラグとを用いることで、ログファイルが排他される時間を抑制できる。
具体的には、図7で説明したように、ログ制御装置10は、切替時刻A以前に発生したスレッド1に対しては、切替時刻Aを超過して実行され続けても、切替時刻Aに対応するログファイルAにログ出力を実行できる。その一方で、ログ制御装置10は、切替時刻A以降かつスレッド1の実行中にスレッド2が発生した場合、スレッド1の処理を待たずに、ログファイルを切替えることができる。
このように、ログ制御装置10は、切替時刻以前のスレッドと、切替時刻以降のスレッドとを並行にログ出力させることができるので、従来に比べて、排他時間を抑制できる。また、ログ制御装置10は、図7で説明したスレッドの追い越しが切替時刻を跨って発生しても、それぞれのスレッドのログを適切なログファイルに出力させることができる。
また、図8で説明したように、ログ制御装置10は、切替時刻を超過するスレッドが複数発生した場合には、グローバルフラグの変更を一方のスレッドに実行させることで、グローバルフラグを複数回更新されることを抑制できる。この結果、ログ制御装置10は、不要なログファイルの切り替えを抑制することができ、ログ出力に伴う不整合の発生を抑制することができる。
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。
上記実施例では、取引のログを取得するシステムを用いて説明したが、これに限定されるものではなく、ログ制御装置は、ログを取得するシステムであれば、どのようなシステムに適用することができる。
また、上記実施例で説明したログファイルを切替える時刻等は例示であり、任意に設定変更することができる。また、上記実施例では、切替時刻を2つ用いる例を説明したが、これに限定されるものではなく、3つ以上を用いることもできる。その場合、スレッドの起動時刻が切替時刻Pを超える場合、切替時刻P以外の切替時刻のうち、切替時刻Pに最も近い切替時刻Lの時刻を変更する。
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
図9は、ハードウェア構成例を説明する図である。図9に示すように、ログ制御装置10は、HDD(Hard Disk Drive)10a、通信インタフェース10b、メモリ10c、CPU(Central Processing Unit)10dを有する。また、図9に示した各部は、バス等で相互に接続される。
HDD10aは、図2等に示した機能を動作させるプログラム、DB、テーブルを記憶する。通信インタフェース10bは、他の装置との通信を制御するインタフェースであり、例えばネットワークインタフェースカードである。
CPU10dは、図2等に示した各処理部と同様の処理を実行するプログラムをHDD10b等から読み出してメモリ10cに展開することで、図2等で説明した各機能を実行するプロセスを動作させる。
すなわち、このプロセスは、ログ制御装置10が有する各処理部と同様の機能を実行する。具体的には、CPU10dは、スレッド実行部21、ローカル処理部22、グローバル比較部23、更新部24、ログ出力部25等と同様の機能を有するプログラムをHDD10a等から読み出す。そして、CPU10dは、スレッド実行部21、ローカル処理部22、グローバル比較部23、更新部24、ログ出力部25と同様の処理を実行するプロセスを実行する。
このようにログ制御装置10は、プログラムを読み出して実行することで検証方法を実行する情報処理装置として動作する。また、ログ制御装置10は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、ログ制御装置10によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
10 ログ制御装置
11 通信制御部
12 記憶部
13 ローカルフラグテーブル
14 グローバルフラグテーブル
15 切替時刻テーブル
16 ログファイルA
17 ログファイルB
20 制御部
21 スレッド実行部
22 ローカル処理部
22a ローカル設定部
22b ローカル比較部
23 グローバル比較部
24 更新部
25 ログ出力部

Claims (6)

  1. コンピュータが、
    実行が開始された処理に第1のフラグを対応付け、
    前記処理の実行が開始された開始時刻が前記第1のフラグと対応付けられる第1の基準時刻を超えない場合、前記第1の基準時刻に対応する第1のログファイルに、前記処理に関するログを出力し、前記開始時刻が前記第1の基準時刻を超える場合、第2の基準時刻に対応する第2のログファイルに、前記ログを出力する
    処理を実行することを特徴とするログ制御方法。
  2. 前記対応付ける処理は、前記処理が実行された場合に、複数の処理が共通に参照する共有フラグを前記第1のフラグとして前記処理に対応付け、
    前記出力する処理は、前記開始時刻が前記第1の基準時刻を超える、かつ、前記開始時刻が前記共有フラグと対応付けられる第3の基準時刻を超えない場合、前記第1のログファイルに前記ログを出力し、前記開始時刻が前記第1の基準時刻を超える、かつ、前記開始時刻が前記第3の基準時刻を超える場合、前記共有フラグを前記第2の基準時刻に対応する第2のフラグで更新することを特徴とする請求項1に記載のログ制御方法。
  3. 前記対応付ける処理は、前記第2のフラグで更新された前記共有フラグを前記第1のフラグとして前記処理に対応付け、
    前記出力する処理は、前記第2のフラグに対応付けられる前記第2のログファイルに、前記ログを出力することを特徴とする請求項2に記載のログ制御方法。
  4. 前記出力する処理は、前記開始時刻が前記第3の基準時刻を超える場合、前記共有フラグを前記第2のフラグで更新するまで、他の処理が前記共有フラグを参照することを抑制することを特徴とする請求項2に記載のログ制御方法。
  5. コンピュータに、
    実行が開始された処理に第1のフラグを対応付け、
    前記処理の実行が開始された開始時刻が前記第1のフラグと対応付けられる第1の基準時刻を超えない場合、前記第1の基準時刻に対応する第1のログファイルに、前記処理に関するログを出力し、前記開始時刻が前記第1の基準時刻を超える場合、第2の基準時刻に対応する第2のログファイルに、前記ログを出力する
    処理を実行させることを特徴とするログ制御プログラム。
  6. 実行が開始された処理に第1のフラグを対応付ける対応付け部と、
    前記処理の実行が開始された開始時刻が前記第1のフラグと対応付けられる第1の基準時刻を超えない場合、前記第1の基準時刻に対応する第1のログファイルに、前記処理に関するログを出力し、前記開始時刻が前記第1の基準時刻を超える場合、第2の基準時刻に対応する第2のログファイルに、前記ログを出力する出力制御部と
    を有することを特徴とするログ制御装置。
JP2014073559A 2014-03-31 2014-03-31 ログ制御方法、ログ制御プログラムおよびログ制御装置 Active JP6303724B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014073559A JP6303724B2 (ja) 2014-03-31 2014-03-31 ログ制御方法、ログ制御プログラムおよびログ制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014073559A JP6303724B2 (ja) 2014-03-31 2014-03-31 ログ制御方法、ログ制御プログラムおよびログ制御装置

Publications (2)

Publication Number Publication Date
JP2015197690A JP2015197690A (ja) 2015-11-09
JP6303724B2 true JP6303724B2 (ja) 2018-04-04

Family

ID=54547361

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014073559A Active JP6303724B2 (ja) 2014-03-31 2014-03-31 ログ制御方法、ログ制御プログラムおよびログ制御装置

Country Status (1)

Country Link
JP (1) JP6303724B2 (ja)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3278637B2 (ja) * 1999-06-08 2002-04-30 中部日本電気ソフトウェア株式会社 ログファイルのメンテナンス装置および方法
JP4154372B2 (ja) * 2004-07-28 2008-09-24 富士通株式会社 携帯端末
JP2013065244A (ja) * 2011-09-20 2013-04-11 Toshiba Corp 情報処理装置およびログ管理方法

Also Published As

Publication number Publication date
JP2015197690A (ja) 2015-11-09

Similar Documents

Publication Publication Date Title
CN103154893B (zh) 多核处理器系统、监视控制方法以及监视控制程序
US9477460B2 (en) Non-transitory computer-readable storage medium for selective application of update programs dependent upon a load of a virtual machine and related apparatus and method
US8255920B2 (en) Time management control method for computer system, and computer system
CN103593387A (zh) 在多个阶段高效地存储和检索数据和元数据的方法和系统
US20110197193A1 (en) Device and method for controlling communication between bios and bmc
JPWO2012004854A1 (ja) プロセッサ装置及びプログラム
JP5821393B2 (ja) 情報処理装置、起動方法、プログラム
CN109298962B (zh) 定时任务的监控方法、计算机可读存储介质和终端设备
JP2010176303A (ja) バッチ処理システムおよびこれに用いる情報端末装置、バッチ処理のリカバリ方法
JP6148129B2 (ja) 情報処理装置、ファームウェア更新方法およびファームウェア更新プログラム
JP6303724B2 (ja) ログ制御方法、ログ制御プログラムおよびログ制御装置
JP6073710B2 (ja) 情報処理装置、起動障害からの自動復旧方法、及び起動障害からの自動復旧プログラム
JP4576453B2 (ja) キャッシュ制御回路、情報処理装置および切り離し方法
US9001343B2 (en) Information processing apparatus and method therefor
JP5083772B2 (ja) 画像形成装置、制御方法及び制御プログラム
JP5871058B2 (ja) 管理制御装置、情報処理システム及び管理制御方法
JP2011175459A (ja) 性能情報採取装置、性能情報採取方法、及び性能情報採取プログラム
JP5791524B2 (ja) Os動作装置及びos動作プログラム
JP2010033131A (ja) 管理装置及びプログラム
JP2020095322A (ja) 分散ファイル装置、フェイルオーバ方法、プログラム及び記録媒体
JP2018156230A (ja) 情報処理装置
JP2011150736A (ja) プロファイリングプログラム、プロファイリング方法、およびコンピュータ
JP5342699B2 (ja) 仮想計算機制御装置、仮想計算機制御システム、仮想計算機制御装置の仮想計算機制御方法および仮想計算機制御プログラム
JP2009110195A (ja) 情報処理装置、システム、情報処理引継ぎ制御方法、及び、プログラム
JP2009140277A (ja) 情報処理装置及び情報処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170110

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171110

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171121

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171227

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: 20180206

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180219

R150 Certificate of patent or registration of utility model

Ref document number: 6303724

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150