JP6652464B2 - 通信制御プログラム、通信制御装置及び通信制御方法 - Google Patents

通信制御プログラム、通信制御装置及び通信制御方法 Download PDF

Info

Publication number
JP6652464B2
JP6652464B2 JP2016159383A JP2016159383A JP6652464B2 JP 6652464 B2 JP6652464 B2 JP 6652464B2 JP 2016159383 A JP2016159383 A JP 2016159383A JP 2016159383 A JP2016159383 A JP 2016159383A JP 6652464 B2 JP6652464 B2 JP 6652464B2
Authority
JP
Japan
Prior art keywords
log
load
business
processing unit
communication control
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
JP2016159383A
Other languages
English (en)
Other versions
JP2018028738A (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 Frontech Ltd
Original Assignee
Fujitsu Frontech 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 Frontech Ltd filed Critical Fujitsu Frontech Ltd
Priority to JP2016159383A priority Critical patent/JP6652464B2/ja
Publication of JP2018028738A publication Critical patent/JP2018028738A/ja
Application granted granted Critical
Publication of JP6652464B2 publication Critical patent/JP6652464B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は、ログ出力を制御する通信制御プログラムに関する。
システムを運用する上で、ログはシステムにおいて何が起きたかを把握するために重要な役割を果たす。例えば、ログはプログラム動作中の状態監視や異常発生時の検知及び原因の調査に用いられる。その他に、業務の証跡として所定期間保存し、各種監査などのためにも用いられる。
従来のログ出力の仕組みの一例は以下のようである。プログラム実行中にログ出力処理が呼び出されると、プログラムにあらかじめ埋め込まれたメッセージIDをキーとして、ログメッセージ定義ファイルを検索してログメッセージを取得する。定型化したログメッセージのみでは原因の調査ができないため、引数や変数の値など、そのタイミングでなければ取得できない情報を動的にログメッセージに埋め込み、編集してログファイルに出力する。すなわち、ログメッセージの出力までには、ログメッセージの取得処理、埋め込む情報の取得処理、ログメッセージの編集処理、ログメッセージの出力処理の一連の処理が行われる。ログメッセージを出力する技術が、例えば下記の特許文献1に開示されている。
特開2014−149783号公報
しかし、例えば、証券取引業務などのように高速処理が求められる場合、上記一連の処理を行うことによって、求められる処理の性能を満たすことがシステム上、困難になってしまう。
本発明は、上記課題に鑑み、ログ出力によるシステムの性能劣化の影響を抑えることができる通信制御プログラムを提供することを目的とする。
上記目的を達成するために、本発明は、ログ出力の処理を制御する通信制御プログラムであって、ログ出力の呼び出しに基づいて、前記呼び出し時に取得可能な、ログを生成するために必要な情報を取得するステップと、前記ログ出力の対象業務における業務処理を実行する業務処理部の負荷が所定の負荷を超えているか否かを判断するステップと、前記所定の負荷を超えていると判断された場合、取得された前記情報をログ中間ファイル情報として、ログの生成が開始される前に所定の記憶領域に出力するステップとをコンピュータに実行させることを特徴とする。
また、本発明の通信制御プログラムにおいて、時間帯、単位時間あたりのデータ送受信量、又はあらかじめ決められた負荷状況に基づいて、前記業務処理部の負荷が前記所定の負荷を超えているか否かを判断することは、好ましい態様である。
また、本発明の通信制御プログラムにおいて、所定の条件を満たした場合に、前記所定の記憶領域の前記ログ中間ファイル情報を用いてログを生成し、生成された前記ログを出力するステップを更に有することは、好ましい態様である。
また、本発明は、ログ出力の処理を制御する通信制御装置であって、ログ出力の呼び出しに基づいて、前記呼び出し時に取得可能な、ログを生成するために必要な情報を取得する取得部と、前記ログ出力の対象業務における業務処理を実行する業務処理部の負荷が所定の負荷を超えているか否かを判断する業務負荷判定部と、前記業務負荷判定部により前記所定の負荷を超えていると判断された場合、取得された前記情報をログ中間ファイル情報として、ログの生成が開始される前に所定の記憶領域に出力する出力部とを備えることを特徴とする。
また、本発明は、ログ出力の処理を制御する通信制御方法であって、ログ出力の呼び出しに基づいて、前記呼び出し時に取得可能な、ログを生成するために必要な情報を取得するステップと、前記ログ出力の対象業務における業務処理を実行する業務処理部の負荷が所定の負荷を超えているか否かを判断するステップと、前記所定の負荷を超えていると判断された場合、取得された前記情報をログ中間ファイル情報として、ログの生成が開始される前に所定の記憶領域に出力するステップとを有することを特徴とする。
本発明によれば、ログ出力によるシステムの性能劣化の影響を抑えることができる。
実施の形態に係る通信制御プログラムを実装するサーバを含む通信制御システムの構成の一例を示す図である。 実施の形態における運用監視装置の構成の一例を示す図である。 実施の形態に係るサーバの機能構成の一例を示す図である。 実施の形態に係るサーバを実現するためのハードウェア構成の一例を示す図である。 実施の形態における業務処理部が高負荷の場合の処理を説明するための図である。 実施の形態における業務処理部が低負荷の場合の処理を説明するための図である。 実施の形態におけるログ出力後処理部によるログ出力後処理を説明するための図である。 実施の形態に係る通信制御プログラムを実装するサーバ2におけるログ出力の処理フローの一例を示すフローチャートである。 実施の形態におけるログ出力処理のサブルーチンを示すフローチャートである。 実施の形態における業務負荷判定処理のサブルーチンを示すフローチャートである。 実施の形態におけるログ編集処理のサブルーチンを示すフローチャートである。 実施の形態におけるログ出力後処理のサブルーチンを示すフローチャートである。 実施の形態におけるログ中間ファイルの一例を示す図である。 実施の形態におけるログメッセージのテンプレートの一例を示す図である。 実施の形態における業務負荷判定基準(時間帯による基準)の一例を示す図である。 実施の形態における業務処理部が高負荷の場合の処理を説明するための図である。 実施の形態における業務処理部が低負荷の場合の処理を説明するための図である。 実施の形態におけるログメッセージの編集処理のサブルーチンを示すフローチャートである。 実施の形態における埋め込み文字変換テーブルの一例を示す図である。 実施の形態におけるログメッセージのマージ処理及びソート処理の具体的な例について説明するための図である。
以下、実施の形態について図面を参照して説明する。まず、実施の形態に係る通信制御プログラムを実装するサーバを含む通信制御システムの一例について図1を用いて説明する。通信制御システム1は、サーバ2(通信制御装置)と運用監視装置3から構成されている。サーバ2と運用監視装置3は、ネットワーク4を介して接続されている。
サーバ2は、所定の業務が遂行されている間に、ログ出力処理が呼び出される(ログ出力対象の事象が発生する)と、ログ(以下、ログメッセージとも言う)の生成に必要な情報(例えば、タイムスタンプ、メッセージID、埋め込み文字など)を取得する。そして、サーバ2は、取得した情報をログ中間ファイルとして、ログの生成が開始される前、すなわち将来的に行われるログの生成処理の前に出力する。ここで、所定の業務とは、例えば高速処理を必要とする業務であって、証券取引業務などである。サーバ2(通信制御プログラム)における詳細な処理については後述する。
運用監視装置3は、図2に示すように、サーバ2によって出力されるログ中間ファイル及びログファイルを監視する監視プログラム20と、監視結果を出力する監視画面21から構成される。具体的には、運用監視装置3は、後述するログファイル格納部38に格納されたログメッセージなどを監視画面21に表示する。これにより、監視者はシステムにおいて何が起きたかを把握することができる。
次に、実施の形態に係る通信制御プログラムを実装するサーバの機能構成の一例について図3を用いて説明する。図3に示すように、サーバ2は、業務処理部30、ログ出力処理部31、ログ編集処理部32、ログ出力後処理部33、業務負荷判定処理部34、業務負荷格納部35、ログメッセージ格納部36、ログ中間ファイル格納部37、ログファイル格納部38から構成されている。なお、サーバ2の構成はこれに限られるものではなく、他の構成を含むものであってもよい。
業務処理部30は、サーバ2の主な業務機能を実現する処理部であって、通信制御プログラムの場合、データの送受信を行う。また、ログ出力のための情報採取や、業務処理部30の業務負荷(負荷状況)を判断するための単位時間あたりのデータ送受信量の測定も行う。
ログ出力処理部31は、業務処理部30からのログ出力依頼を受け、ログ出力処理を行う。この際、後述するように、ログ出力処理部31は、業務負荷判定処理部34の判定結果を参照し、業務負荷が高負荷の場合はログ採取情報のみをログ中間ファイルとしてログ中間ファイル格納部37へ出力する。また、業務負荷が低負荷の場合は、ログ出力処理部31はログ編集処理部32にログ編集要求を行い、ログ採取情報を渡す。
ここで、ログ採取情報とは、ログの生成に必要な情報であって、ログ出力処理が呼び出された時点でなければ取得できない情報である。具体的には、上述したタイムスタンプ、メッセージID、埋め込み文字などであり、ログ中間ファイルとして、例えばCSV(Comma-Separated Values)型式でログ中間ファイル格納部37へ出力される。
ログ中間ファイルの一例を図13に示す。ログ中間ファイルは、例えばタイムスタンプ、メッセージID、埋め込み文字の順に構成される。1つのログ中間ファイルが、1つのレコードとしてログ中間ファイル格納部37に格納される。なお、この例では埋め込み文字が5つであるが、これに限られるものではない。
ログ編集処理部32は、業務負荷が低負荷の場合にログ出力処理部31からのログ編集要求を受け、ログ編集処理を行う。具体的には、ログ採取情報のメッセージIDをキーとして、対応するログメッセージ(ログメッセージのテンプレート)をログメッセージ格納部36から取得し、取得したログメッセージにログ採取情報を埋め込んで編集(生成)する。編集結果(編集後のログメッセージ)はログファイル格納部38へ出力される。ログメッセージは、運用監視装置3を管理する監視者が目視でメッセージの意味を確認しやすい形式に編集される。なお、ログメッセージの編集は、サーバ2以外の装置やプログラムが行うようにしてもよい。
ここで、ログメッセージ格納部36に格納されたログメッセージのテンプレートの一例を図14に示す。ログメッセージには、エラー(E)、警告(W)、インフォメーション(I)、デバッグ(D)などの種類がある。図14には、エラーメッセージ(ERROR)と警告メッセージ(WARNING)のテンプレートが示されている。例えば、エラーメッセージのテンプレートは、メッセージID(E001)にメッセージ内容(ERROR:001 Error occurred. A=%s、B=%d、C=%x、at %s-%d)が関連付けられている。上記%は埋込識別子といい、上記s、d、xは書式指定子という。%s、%d、%xにログ採取情報が埋め込まれる。ログメッセージの編集処理の詳細については後述する。
ログ出力後処理部33は、業務終了指示などにより、業務処理部30からのログ出力後処理要求を受け、ログ出力後処理を行う。具体的には、ログ出力後処理部33は、業務負荷が高負荷の場合にログ中間ファイル格納部37に格納されたログ採取情報を読み込む。そして、ログ出力後処理部33は、メッセージIDをキーとして対応するログメッセージをログメッセージ格納部36から取得し、取得したログメッセージにログ採取情報を埋め込んで編集(生成)する。
また、ログ出力後処理部33は、編集したログメッセージと、ログファイル格納部38内のログメッセージ(低負荷時に編集されたログメッセージ)とをマージ(併合)し、タイムスタンプ順などでソート(整列)してログファイル格納部38に出力する。所定の業務を遂行している間には、業務負荷が低負荷のときと高負荷のときが混在する場合がある。そのため、業務終了後に、それぞれの負荷時に編集されたログメッセージをマージする必要がある。そこで、ログ出力後処理部33は、業務終了後に、業務終了後に編集される高負荷時のログメッセージと、低負荷の場合に編集され、ログファイル格納部38に格納されたログメッセージとをマージし、ソートして出力する。ログ出力後処理部33によるマージ処理及びソート処理の詳細については後述する。なお、ログ出力後処理部33は、同一機器(プログラム)内に配置する場合と、別の機器(プログラム)に配置する場合が考えられる。
業務負荷判定処理部34は、業務負荷判定基準を参照し、業務処理部30の負荷を判定する。業務負荷判定基準としては、例えば、時間帯によるもの、データ送受信量によるもの、あらかじめ業務処理部30の負荷が高負荷か低負荷に設定されているものなどがある。具体的には、負荷判定時の時間が所定の時間帯にある場合、業務処理部30の負荷は高い(高負荷)と判定する。また、単位時間あたりのデータ送受信量が所定の閾値を超えている場合、業務処理部30は高負荷と判定する。また、あらかじめ業務処理部30の負荷が設定されている場合、設定された負荷に基づいて、業務処理部30の負荷を判定する。例えば、あらかじめ負荷が高負荷と設定されている場合、業務処理部30の負荷は高負荷と判定される。
業務負荷格納部35は、業務負荷判定処理部34が負荷を判定する際に用いる業務負荷判定基準を格納する。業務負荷判定基準(時間帯による基準)の一例を図15に示す。例えば、始業時(9時から10時)、昼休み前(11時から12時)、終業前(16時から17時)は注文などの依頼が集中するなどで高負荷となり、それ以外は依頼が集中せずに低負荷となるという経験則があるとする。その場合、図15に示すような業務負荷判定基準となる。このような業務負荷判定基準を用いて高負荷であるか低負荷であるかが判定される。
ログメッセージ格納部36には、上述したように、ログメッセージ(ログメッセージのテンプレート)がメッセージIDと関連付けられて格納されている。
次に、実施の形態に係る通信制御プログラムを実装するサーバ2を実現するためのハードウェア構成の一例について図4を用いて説明する。ハードウェア構成は、例えば、CPU41、HDD(Hard Disk Drive)42、RAM(Random Access Memory)43、ROM(Read Only Memory)44、グラフィック処理装置45、入力インタフェース(I/F)46、通信インタフェース(I/F)47、バス48を備えている。CPU41、HDD42、RAM43、ROM44、グラフィック処理装置45、入力インタフェース(I/F)46、通信インタフェース(I/F)47は、例えば、バス48を介して互いに接続されている。
CPU41は、バス48を介して、HDD42などに格納されるサーバ2の各種処理を行うためのプログラム(例えば、通信制御プログラムなど)を読み込み、読み込んだプログラムをRAM43に一時的に格納し、そのプログラムにしたがって各種処理を行うものである。
HDD42には、サーバ2の各種処理を行うためのアプリケーションプログラムや、サーバ2の処理に必要なデータなどが格納される。
RAM43は、揮発性メモリであって、CPU41に実行させるためのOS(Operating System)プログラムやアプリケーションプログラムの一部が一時的に格納される。また、RAM43には、CPU41による処理に必要な各種データが格納される。
ROM44は、不揮発性メモリであって、ブートプログラムやBIOS(Basic Input/Output System)などのプログラムを記憶する。
グラフィック処理装置45は、モニタ400と接続可能であって、モニタ400に表示させる情報を生成するものである。
入力インタフェース(I/F)46は、キーボード401やマウス402などを介して入力される情報を受け付けるものである。
通信インタフェース(I/F)47は、外部(運用監視装置3や利用者が使用する端末など)とネットワーク4を介してデータの送受信を行うものである。
バス48は、各装置間の制御信号、データ信号などの授受を媒介する経路である。なお、運用監視装置3を実現するためのハードウェア構成も、サーバ2と同様、CPU、HDD、各種インタフェースなどを含む。
次に、上述した業務処理部30が高負荷の場合の処理の流れについて図5、図16を用いて説明する。図5に示すように、サーバ2は、証券取引などにおける注文のために利用者によって送信されたメッセージを受信する。ここで、メッセージ受信による注文のメッセージ送信がログ出力対象の事象であるとすると、業務処理部30は、ログ出力対象事象が発生したと認識する。業務処理部30は、ログ出力対象事象が発生したことにより、ログ採取情報(例えば、タイムスタンプ、メッセージID、埋め込み文字など)を取得する。埋め込み文字は、事象発生時のプログラムの状態を示す情報であり、主にプログラムの変数値である。図16に示す例では、埋め込み文字は1番目から5番目まであり、順に変数Aの値(aaa)、変数Bの値(1)、変数Cの値(16)、変数Dの値(ddd)、変数Eの値(5)である。
業務処理部30は、ログ採取情報の取得後、ログ出力処理部31に対してログ出力依頼を発行する。ログ出力処理部31は、業務負荷判定処理部34に対して、負荷状況判定要求を発行する。業務負荷判定処理部34は、業務負荷格納部35から業務負荷判定基準を取得し、取得した業務負荷判定基準に基づいて、例えば業務負荷を高負荷と判定する。ログ出力処理部31は、業務負荷が高負荷のため、取得したログ採取情報のみをログ中間ファイルとしてログ中間ファイル格納部37へ出力する。出力されるログ中間ファイルの一例が、図16中に詳細として記載されている。
このとき、運用監視装置3は、監視プログラム20により、ログ中間ファイルとログファイルを監視し、監視対象の事象が発生すると、監視結果を監視画面21に出力する。後述する低負荷の場合も同様である。
一方、業務処理部30が低負荷の場合の処理の流れについて図6、図17を用いて説明する。業務負荷判定処理部34による業務負荷を判定するまでの処理は、図5に示す高負荷の場合と同様であるため説明を省略する。業務負荷判定処理部34が、業務負荷の判定の結果、低負荷であると判定すると、ログ出力処理部31は、ログ編集処理部32に対してログ編集要求を発行する。このとき、ログ出力処理部31は、ログ採取情報をログ編集処理部32へ渡す。
ログ編集処理部32は、ログ出力処理部31から渡されたログ採取情報に含まれるメッセージIDをキーとして、ログメッセージ格納部36から対応するログメッセージのテンプレートを取得する。ログ編集処理部32は、取得したログメッセージのテンプレートに従ってログメッセージを編集(生成)する。すなわち、ログ編集処理部32は、テンプレートの文字列を1文字ずつ順に解析し、埋め込み文字を埋め込む位置が出現(埋込識別子が出現)した場合、取得したログ採取情報の埋め込み文字を1項目ずつ変換しながらログメッセージを編集する。ログメッセージの編集処理の詳細については後述する。ログ編集処理部32は、編集されたログメッセージをログファイル格納部38に出力する。編集されたログメッセージの一例が、図17中に詳細として記載されている。
次に、上述したログ出力後処理部33によるログ出力後処理について図7、図16を用いて説明する。監視者などから業務終了指示が出され、業務処理部30が、所定の条件を満たした場合、すなわち業務終了事象を検知した場合、ログ出力後処理部33に対してログ出力後処理要求を発行する。ログ出力後処理部33は、ログ中間ファイル格納部37のレコードを読み込み、1レコードごとに以下のようにログメッセージを編集(生成)する。
ログ出力後処理部33は、読み込んだレコードのメッセージIDをキーとして、ログメッセージ格納部36から対応するログメッセージのテンプレートを取得する。ログ出力後処理部33は、取得したログメッセージのテンプレートに対して、レコードに含まれるタイムスタンプやその他の埋め込み文字などを反映し、ログメッセージを編集する。テンプレートにタイムスタンプや埋め込み文字を反映させる方法は、上述した低負荷時のログ編集処理部32による方法と同様である。このように、ログメッセージの編集処理を業務終了後などに後処理として行うことで、業務中の1つの事象のログ出力にかかる処理時間を短縮でき、業務の処理性能を向上させることができる。
ログ出力後処理部33は、ログファイル格納部38のログメッセージ(低負荷時に編集されたログメッセージ)をすべて読み込む。ログ出力後処理部33は、上記編集したログメッセージと、ログファイル格納部38から読み込んだログメッセージとをマージし、例えばタイムスタンプの昇順にソートする。ログ出力後処理部33は、マージしてソートしたログメッセージをログファイル格納部38に出力する。なお、業務が終了しているため、運用監視装置3による監視も終了する。
次に、実施の形態に係る通信制御プログラムを実装するサーバ2におけるログ出力の処理フローの一例について図8を用いて説明する。図8に示すように、サーバ2(通信制御プログラム)は、業務における事象(例えば、証券取引などの事象)が発生したか否かを判断し(ステップS801)、事象が発生したと判断した場合(ステップS801でYes)、発生した事象に応じた業務処理を行う(ステップS802)。なお、事象が発生したと判断しない場合(ステップS801でNo)、ステップS801へ戻る。
サーバ2は、ログ出力対象の事象(例えば、メッセージ送信事象)が発生したか否かを判断し(ステップS803)、発生した場合(ステップS803でYes)、ログ採取情報を取得し(ステップS804)、ログ出力依頼(ログ出力処理の呼出)を発行する(ステップS805)。ログ出力処理については後述する。なお、ログ出力対象の事象が発生していない場合(ステップS803でNo)、ステップS806へ進む。
サーバ2は、受け付けた事象が業務終了の事象であるか否かを判断し(ステップS806)、業務終了の事象である場合(ステップS806でYes)、ログ出力後処理要求(ログ出力後処理の呼出)を発行する(ステップS807)。ログ出力後処理については後述する。
次に、上記ログ出力処理のサブルーチンについて図9を用いて説明する。サーバ2(通信制御プログラム)は、業務処理部30の負荷を判定させるため、負荷状況判定要求(業務負荷判定処理の呼出)を発行する(ステップS901)。業務負荷判定処理については後述する。サーバ2は、業務処理部30の負荷が高負荷か否かを判断し(ステップS902)、高負荷である場合(ステップS902でYes)、取得されたログ採取情報をログ中間ファイル格納部37へ出力する(ステップS903)。一方、高負荷でない場合(ステップS902でNo)、ログ編集要求(ログ編集処理の呼出)を発行する(ステップS904)。ログ編集処理については後述する。
次に、上記業務負荷判定処理のサブルーチンについて図10を用いて説明する。サーバ2(通信制御プログラム)は、業務負荷を、例えばデフォルト値の低負荷とセットし(ステップS1001)、業務負荷格納部35から業務負荷判定基準を取得する(ステップS1002)。サーバ2は、取得した業務負荷判定基準が時間帯による判定基準か否かを判断し(ステップS1003)、時間帯によるものの場合(ステップS1003でYes)、現在の時刻の情報を取得する(ステップS1004)。
サーバ2は、取得した時刻が高負荷の時間帯であるか否かを判断し(ステップS1005)、高負荷の時間帯の場合(ステップS1005でYes)、業務負荷を高負荷とセットする(ステップS1006)。
一方、取得した業務負荷判定基準が時間帯による判定基準でない場合(ステップS1003でNo)、サーバ2は、単位時間あたりのデータ送受信量による判定基準か否かを判断し(ステップS1007)、データ送受信量によるものの場合(ステップS1007でYes)、単位時間あたりのデータ送受信量を取得する(ステップS1008)。サーバ2は、取得したデータ送受信量が所定の閾値以上であるか否かを判断し(ステップS1009)、所定の閾値以上である場合(ステップS1009でYes)、業務負荷を高負荷とセットする(ステップS1010)。なお、所定の閾値以上でない場合(ステップS1009でNo)、業務負荷判定処理を終了する。
また、取得した業務負荷判定基準が単位時間あたりのデータ送受信量による判定基準でない場合(ステップS1007でNo)、サーバ2は、あらかじめ負荷が設定されたもの、すなわち高負荷であるか又は低負荷であるかあらかじめ負荷が設定されているか否かを判断し(ステップS1011)、あらかじめ負荷が設定されている場合(ステップS1011でYes)、設定が高負荷であるか否かを判断し(ステップS1012)、高負荷である場合(ステップS1012でYes)、業務負荷を高負荷とセットする(ステップS1013)。なお、あらかじめ負荷が設定されていない場合(ステップS1011でNo)及び設定が高負荷でない場合(ステップS1012でNo)、業務負荷判定処理を終了する。
次に、上記ログ編集処理のサブルーチンについて図11を用いて説明する。サーバ2(通信制御プログラム)は、ログメッセージ格納部36からログメッセージのテンプレートを取得し(ステップS1101)、取得したログメッセージのテンプレートにログ採取情報を埋め込んで編集する(ステップS1102)。ログメッセージの編集処理の詳細については後述する。サーバ2は、編集したログメッセージをログファイル格納部38へ出力する(ステップS1103)。
次に、上記ログ出力後処理のサブルーチンについて図12を用いて説明する。サーバ2(通信制御プログラム)は、ログ中間ファイル格納部37から1つのレコードを読み込み(ステップS1201)、ログメッセージ格納部36からステップS1201で読み込んだレコードのメッセージIDに対応するログメッセージのテンプレートを取得する(ステップS1202)。サーバ2は、取得したログメッセージのテンプレートにログ採取情報を埋め込んで編集する(ステップS1203)。ログメッセージの編集処理の詳細については後述する。このとき、編集したログメッセージを不図示のバッファに格納する(ステップS1204)。サーバ2は、次のレコードがないか否かを判断し(ステップS1205)、次のレコードがある場合(ステップS1205でNo)、ステップS1201へ戻る。
一方、次のレコードがない場合(ステップS1205でYes)、サーバ2は、ログファイル格納部38から全てのログメッセージ(低負荷時に編集されたログメッセージ)を読み込み、バッファにマージ(追加)する(ステップS1206)。そして、サーバ2は、バッファ中の全てのログメッセージをタイムスタンプ順でソートする(ステップS1207)。ログメッセージのマージ処理及びソート処理の詳細については後述する。サーバ2は、バッファ中の全てのログメッセージをログファイル格納部38へ出力する(ステップS1208)。
ここで、上記ログメッセージの編集処理のサブルーチンについて図18を用いて説明する。以下では、処理の主体をログ出力後処理部33として説明しているが、低負荷時におけるログメッセージの編集処理の場合には、処理の主体はログ編集処理部32となる。
ログ出力後処理部33は、取得したテンプレートの先頭から最初のコーテーションマークが検出されるまでのデータを削除する(ステップS1801a)。ログ出力後処理部33は、削除したコーテーションマークの次の文字を読み込み位置とするとともに、埋め込み文字カウンタNを1とする(ステップS1801b)。このとき、ログ出力後処理部33は、削除したテンプレートの先頭にレコードから取得したタイムスタンプを埋め込む。なお、この例では、テンプレートのデータの削除をコーテーションマークの検出に基づいて行っているが、コーテーションマークに限定されるものではなく、他のマークや目印などであってもよい。
ログ出力後処理部33は、読み込み位置から1文字を読み込む(ステップS1802)。ここで取得したテンプレートが、図14に示すテンプレートのうちのメッセージIDがE001のテンプレートの場合、読み込まれる文字は“E”となる。
ログ出力後処理部33は、読み込んだ文字が埋込識別子%であるか否かを判断する(ステップS1803)。読み込んだ文字が埋込識別子%である場合(ステップS1803でYes)、ログ出力後処理部33は、更に1文字を読み込み(ステップS1804)、読み込んだ文字がどのような書式指定子であるかを判断する(ステップS1805)。
ここでは、埋込識別子に続く文字(書式指定子)によってどのような変換を行うかを、例えば図19に示す埋め込み文字変換テーブルを用いて決めている。例えば、書式指定子が“s”の場合には、埋め込み文字を変換せずにそのまま埋め込む。書式指定子が“d”の場合には、埋め込み文字を10進数に変換して埋め込む。書式指定子が“x”の場合には、埋め込み文字を16進数に変換して埋め込む。なお、この例では、3種類の変換の例を挙げているが、数値の桁数を指定するなど、更に高度な編集を行うようにしてもよい。
ログ出力後処理部33は、書式指定子が“s”の場合、ログメッセージ(テンプレート)にN番目の埋め込み文字を連結(埋め込み)する(ステップS1806)。書式指定子が“d”の場合、ログ出力後処理部33は、N番目の埋め込み文字を10進数に変換し(ステップS1807)、変換後の文字列をログメッセージに連結する(ステップS1808)。書式指定子が“x”の場合、ログ出力後処理部33は、N番目の埋め込み文字を16進数に変換し(ステップS1809)、変換後の文字列をログメッセージに連結する(ステップS1810)。
連結後、ログ出力後処理部33は、埋め込み文字カウンタNを埋め込み文字数に応じてインクリメントする(ステップS1811)。ログ出力後処理部33は、テンプレートの読み込み位置の示す文字が最初のコーテーションマークに対応するコーテーションマークであるか否かを判断する(ステップS1812)。ログ出力後処理部33は、対応するコーテーションマークの場合(ステップS1812でYes)には、テンプレートの最後の文字に達したと判断し、ステップS1814においてログメッセージに連結された当該対応するコーテーションマークを削除してログメッセージの編集処理を終了する。一方、対応するコーテーションマークでない場合(ステップS1812でNo)、読み込み位置をインクリメントする(ステップS1813)。
一方、ステップS1803において、読み込んだ文字が埋込識別子でない場合(ステップS1803でNo)、ログ出力後処理部33は、ログメッセージに読み込んだ文字を連結する(ステップS1814)。
次に、上記ログメッセージのマージ処理及びソート処理の具体的な例について図20を用いて説明する。図20に示すように、ログ出力後処理部33は、ログ中間ファイル格納部37から読み込んだログ中間ファイルと、ログメッセージ格納部36から取得したテンプレートとに基づいて、ログメッセージを編集する。編集されたログメッセージはバッファに格納(追加)される。
その後、次のレコード(ログ中間ファイル)がないと判断されると、ログ出力後処理部33は、ログファイル格納部38から全てのログメッセージ(低負荷時に編集されたログメッセージ)を読み込む。この例では、全てのログメッセージのうちの2つのログメッセージが表記されている。読み込まれた全てのログメッセージは上記バッファにマージ(追加)される。四角い破線で囲まれたものがマージされたログメッセージである。
ログ出力後処理部33は、バッファに格納されたログメッセージを、例えばタイムスタンプをキーにして、昇順にソートし、ログファイル格納部38へ出力する。なお、ソートの方法は、タイムスタンプをキーにして行うものに限らず、例えばエラーコードの重要度に応じてソートするようにしてもよい。
上述したようなサーバ2(通信制御プログラム)によれば、ログ出力によるシステムの性能劣化の影響を抑えることができる。
なお、上述した実施の形態では、サーバ2の主な処理をCPUによるソフトウェア処理によって実行するものとして説明したが、この処理の全部又は一部をハードウェアによって実現するようにしてもよい。
また、上述した実施の形態は、上述したものに限定されるものではなく、実施の形態の要旨を逸脱しない範囲において種々の変更を加えることができる。
1 通信制御システム
2 サーバ
3 運用監視装置
4 ネットワーク
20 監視プログラム
21 監視画面
30 業務処理部
31 ログ出力処理部
32 ログ編集処理部
33 ログ出力後処理部
34 業務負荷判定処理部
35 業務負荷格納部
36 ログメッセージ格納部
37 ログ中間ファイル格納部
38 ログファイル格納部
41 CPU
42 HDD
43 RAM
44 ROM
45 グラフィック処理装置
46 入力インタフェース
47 通信インタフェース
48 バス
400 モニタ
401 キーボード
402 マウス

Claims (5)

  1. ログ出力の処理を制御する通信制御プログラムであって、
    ログ出力の呼び出しに基づいて、前記呼び出し時に取得可能な、ログを生成するために必要な情報を取得するステップと、
    前記ログ出力の対象業務における業務処理を実行する業務処理部の負荷が所定の負荷を超えているか否かを判断するステップと、
    前記所定の負荷を超えていると判断された場合、取得された前記情報をログ中間ファイル情報として、ログの生成が開始される前に所定の記憶領域に出力するステップとを、
    コンピュータに実行させることを特徴とする通信制御プログラム。
  2. 時間帯、単位時間あたりのデータ送受信量、又はあらかじめ設定された負荷状況に基づいて、前記業務処理部の負荷が前記所定の負荷を超えているか否かを判断することを特徴とする請求項に記載の通信制御プログラム。
  3. 所定の条件を満たした場合に、前記所定の記憶領域の前記ログ中間ファイル情報を用いてログを生成し、生成された前記ログを出力するステップを更に有する請求項1又は2に記載の通信制御プログラム。
  4. ログ出力の処理を制御する通信制御装置であって、
    ログ出力の呼び出しに基づいて、前記呼び出し時に取得可能な、ログを生成するために必要な情報を取得する取得部と、
    前記ログ出力の対象業務における業務処理を実行する業務処理部の負荷が所定の負荷を超えているか否かを判断する業務負荷判定部と、
    前記業務負荷判定部により前記所定の負荷を超えていると判断された場合、取得された前記情報をログ中間ファイル情報として、ログの生成が開始される前に所定の記憶領域に出力する出力部とを、
    備えることを特徴とする通信制御装置。
  5. ログ出力の処理を制御する通信制御方法であって、
    ログ出力の呼び出しに基づいて、前記呼び出し時に取得可能な、ログを生成するために必要な情報を取得するステップと、
    前記ログ出力の対象業務における業務処理を実行する業務処理部の負荷が所定の負荷を超えているか否かを判断するステップと、
    前記所定の負荷を超えていると判断された場合、取得された前記情報をログ中間ファイル情報として、ログの生成が開始される前に所定の記憶領域に出力するステップとを、
    有することを特徴とする通信制御方法。
JP2016159383A 2016-08-15 2016-08-15 通信制御プログラム、通信制御装置及び通信制御方法 Active JP6652464B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016159383A JP6652464B2 (ja) 2016-08-15 2016-08-15 通信制御プログラム、通信制御装置及び通信制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016159383A JP6652464B2 (ja) 2016-08-15 2016-08-15 通信制御プログラム、通信制御装置及び通信制御方法

Publications (2)

Publication Number Publication Date
JP2018028738A JP2018028738A (ja) 2018-02-22
JP6652464B2 true JP6652464B2 (ja) 2020-02-26

Family

ID=61248384

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016159383A Active JP6652464B2 (ja) 2016-08-15 2016-08-15 通信制御プログラム、通信制御装置及び通信制御方法

Country Status (1)

Country Link
JP (1) JP6652464B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6683385B1 (ja) * 2018-11-15 2020-04-22 Necプラットフォームズ株式会社 情報処理装置、情報処理システム、テキスト自動変換方法及びテキスト自動変換プログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004070420A (ja) * 2002-08-01 2004-03-04 Matsushita Electric Ind Co Ltd トレースデータ記憶装置
JP4909870B2 (ja) * 2007-10-26 2012-04-04 株式会社日立製作所 障害ログ管理方法
CN103176888B (zh) * 2011-12-22 2018-01-23 阿里巴巴集团控股有限公司 一种日志记录的方法和系统
KR101853148B1 (ko) * 2013-05-20 2018-04-27 엘에스산전 주식회사 데이터 저장방법
KR102168212B1 (ko) * 2014-04-15 2020-10-21 엘에스일렉트릭(주) 어플리케이션 로그 데이터의 처리 장치 및 그 방법

Also Published As

Publication number Publication date
JP2018028738A (ja) 2018-02-22

Similar Documents

Publication Publication Date Title
KR101238550B1 (ko) 명령을 내리는 방법 및 컴퓨터 판독가능 매체
US10007656B2 (en) DOM snapshot capture
JP4483807B2 (ja) ログフォーマット変換装置、ログフォーマット変換方法、及びログフォーマット変換プログラム
WO2022142896A1 (zh) 可视化模板的生成方法、装置、设备及存储介质
US7502967B1 (en) Identifying an object in a data file that causes an error in an application
JP6652464B2 (ja) 通信制御プログラム、通信制御装置及び通信制御方法
CN112231197A (zh) 一种页面测试的方法、装置和存储介质
US10644971B2 (en) Graph search in structured query language style query
KR20190071571A (ko) 표준 프로세스를 기반으로 한 사용자 프로세스 분석 장치 및 방법
KR102518772B1 (ko) 수집 데이터 자동 처리를 위한 데이터 적재 프로파일링 장치 및 방법
CN111258562A (zh) Java代码质量检查方法、装置、设备和存储介质
CN114936245B (zh) 一种多源异构数据的集成和处理方法及装置
Elmsheuser et al. ATLAS Grid Workflow Performance Optimization
JP2020064399A (ja) 制御システム、制御装置、端末装置、及びプログラム
US12001324B2 (en) Operation pattern generation apparatus, operation pattern generation method and program
JP7304196B2 (ja) 情報分析装置、情報分析方法、プログラムおよび情報分析システム
KR102300347B1 (ko) 멀티코어 임베디드 시스템에 대한 연속 프로파일링 장치 및 그 방법
US20210117184A1 (en) Identifying and deleting unnecessary code lines
WO2012169238A1 (ja) 操作支援方法及び計算機
US8495033B2 (en) Data processing
KR102573359B1 (ko) 전자 문서를 조작하기 위한 컴퓨터 구현 시스템 및 방법
Hilgendorf Efficient industrial Big Data pipeline for lossless transfer of vehicular data
KR20090118394A (ko) 팀 프로젝트 서비스 제공방법 및 그 시스템
US20210303301A1 (en) Program Execution Assistance Apparatus and Program Execution Assistance Method
US20240314195A1 (en) Trace context over file transfer communications

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181004

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190730

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190813

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191002

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20191002

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200123

R150 Certificate of patent or registration of utility model

Ref document number: 6652464

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150