JP5565153B2 - プログラム、情報処理装置、及び情報処理装置の制御方法 - Google Patents

プログラム、情報処理装置、及び情報処理装置の制御方法 Download PDF

Info

Publication number
JP5565153B2
JP5565153B2 JP2010154788A JP2010154788A JP5565153B2 JP 5565153 B2 JP5565153 B2 JP 5565153B2 JP 2010154788 A JP2010154788 A JP 2010154788A JP 2010154788 A JP2010154788 A JP 2010154788A JP 5565153 B2 JP5565153 B2 JP 5565153B2
Authority
JP
Japan
Prior art keywords
program
request
response
arithmetic processing
information processing
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.)
Expired - Fee Related
Application number
JP2010154788A
Other languages
English (en)
Other versions
JP2012018512A (ja
JP2012018512A5 (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 JP2010154788A priority Critical patent/JP5565153B2/ja
Publication of JP2012018512A publication Critical patent/JP2012018512A/ja
Publication of JP2012018512A5 publication Critical patent/JP2012018512A5/ja
Application granted granted Critical
Publication of JP5565153B2 publication Critical patent/JP5565153B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は、プログラム、情報処理装置、及び情報処理装置の制御方法に関する。
クライアントサーバシステムが知られている。クライアントサーバシステムは、「サーバ」と呼ばれるコンピュータと、サーバが提供するサービスを利用する「クライアント」と呼ばれるコンピュータとを有する。サーバが提供するサービスによっては、サーバは、高い稼動性が求められる。例えば、製造業における受発注管理や生産管理のシステム、金融業における預金管理などの業務サービスを提供するサーバは、高稼動性が求められる。
サーバは、障害により、サービスを提供するためのプロセスの実行が出来なくなった場合、サーバは、障害があったプロセスを停止し、そのプロセスの再起動を行うように動作することで、クライアントに対する稼動性を維持する。
特開平11−15678号公報 特開平10−91478号公報 特開平11−136961号公報 特開2009−134695号公報
しかしながら、クライアントからのサービス要求と、要求に対するサーバの応答との間に、プロセス障害が生じた場合、プロセスを再起動すると、サーバが保持していたクライアントからの要求が消去される。そのため、クライアントは、サーバから要求に対する応答を受信することが出来ないため、再度、サーバに対してサービスの要求をしなくてはならない。このように、プロセス障害が生じると、クライアントに対するサーバの稼動性は低下していた。そこで、1つの側面では、本発明は、可動性の低下の抑制を図ることを目的とする。
クライアントコンピュータから出力される要求に対して応答処理を実行する情報処理装置であって、記憶装置と演算処理装置とを有する情報処理装置が提供される。前記記憶装置は、前記クライアントコンピュータから出力される要求に対する応答処理を実行させるための第1プログラムを格納する。前記演算処理装置は、前記クライアントコンピュータから第1要求を受け取ると、前記第1プログラム及び前記第1要求を複製し、前記第1プログラムの複製である第2プログラムを実行して、前記第1要求に対する前記第1プログラムの応答処理を監視し、前記第1プログラムの応答処理の障害を検出した場合、前記第2プログラムを実行して、前記第1要求の複製である第2要求に対する応答処理を行う。
稼働性の低下の抑制が図られる。
情報処理装置が適用されるシステムの一例を示す図である。 APサーバのハードウェア構成の一例を示す図である。 主記憶装置のメモリマップの一例を示す図である。 監視プロセスを用いたプロセス監視の従来例を示す図である。 要求ディスパッチプログラムの情報処理の一例を示す図である。 プロセス管理テーブルの一例を示す図である。 プロセス管理プログラムの正常処理の一例を示す図である。 プロセス異常終了時におけるプロセス管理プログラムの情報処理の第1例を示す図である。 プロセス及びプロセス管理プログラムの処理フローの第1例を示す図である。 プロセス管理プログラムの処理フローの第1例を示す図である。 プロセス管理プログラムのソースコードの一例を示す図である。 プロセス異常終了時におけるプロセス管理プログラムの情報処理の第2例を示す図である。 プロセス及びプロセス管理プログラムの処理フローの第2例を示す図である。 プロセス管理プログラムに対応するソースコードの一例を示す図である。
以下、図面を参照して、プロセス管理プログラム、制御方法、及び情報処理装置を説明する。
まず、情報処理装置が適用されるシステムの概要を説明する。
[1 システム]
図1は、情報処理装置が適用されるシステムの一例を示す図である。図1に示すシステムは、クライアント300、Webサーバ400、及び、APサーバ500を有する。AP(APplication:アプリケーション)サーバ500は、例えば、クライアント300に対するサービスを提供する情報処理装置としてのサーバコンピュータである。APサーバ500のハードウェア構成は、図2を用いて後述し、APサーバ500が提供するサービスや機能は、図5〜図13を用いて後述する。
なお、図1に示すクライアント300の台数は、「1」に限定されない。また、図1には、APサーバ500は、Webサーバ400と別個のサーバとして示されているが、APサーバ500は、Webサーバ400の提供する機能を有して、Webサーバ400として動作してもよい。
クライアントコンピュータとしてのクライアント300は、インターネット等のネットワーク200及びWebサーバ400を介して、APサーバ500が提供するサービスに対する要求を、APサーバ500に送信する。クライアント300は、図1には示さない、CPU(Central Processing Unit)、メインメモリ、NIC(Network Interface Card)、及び、図1に示すディスプレイ310及び入力装置320を有する。入力装置320は、例えば、キーボードである。クライアント300のCPUは、Webブラウザを実行し、入力装置320からの入力情報に従ってAPサーバ500への要求を生成する。クライアント300のCPUは、NICを制御して、要求を送信し、要求に対する応答をAPサーバ500から受信する。クライアント300のCPUは、APサーバ500から応答を受信すると、Webブラウザを実行して、応答をディスプレイ310に表示するようにディスプレイ310を制御する。
Webサーバ400は、サーバコンピュータである。Webサーバ400は、HTTP(Hypertext Transfer Protocol)等の通信プロトコルに従い、クライアント300にHTML(HyperText Markup Language)や画像オブジェクトなどの表示を提供する。Webサーバ400が提供するHTMLのボディ部や画像オブジェクトは、APサーバ500から提供される応答が含まれる。Webサーバ400は、例えば、ファイアウォールによって外部ネットワークからも内部ネットワークからも隔離された区域であるDMZ(DeMilitarized Zone)に配置される。Webサーバ400は、例えば、Apache HTTP Server等のWebサーバソフトウェアを実行して、上記の機能を実現する。
なお、Webサーバ400のハードウェア構成は、図2を用いて後述するAPサーバ500のハードウェア構成であってもよい。
次に、APサーバ500のハードウェア構成について説明する。
[2 APサーバ]
図2は、APサーバのハードウェア構成の一例を示す図である。図2に示すように、APサーバ500は、演算処理装置510、主記憶装置520、通信部530、2次記憶装置540、及びI/Oコントローラ560を有する。また、ドライブ装置550を有していてもよい。
演算処理装置510は、I/Oコントローラ560を介して、通信部530、2次記憶装置540、及びドライブ装置550に接続する。
[2.1 演算処理装置]
演算処理装置510は、主記憶装置520に記憶されたプログラムを実行することで、主記憶装置520からデータをロードし、ロードしたデータを演算して、主記憶装置520に演算結果をストアする。演算処理装置510は、例えば、CPUである。
[2.2 I/Oコントローラ]
I/Oコントローラ560は、演算処理装置510と、他の接続装置との接続を制御する装置である。I/Oコントローラ560は、例えば、AGP(Accelerated Graphics Port)又はPCI Express(Peripheral Component Interconnect Express)などの規格に従って動作する。
[2.3 主記憶装置]
主記憶装置520は、データやプログラムを記憶する装置である。演算処理装置510は、I/Oコントローラ560を介することなく、主記憶装置520にアクセスすることができる。主記憶装置520は、例えば、DRAM(Dynamic Random Access Memory)である。なお、図3を用いて、主記憶装置520のメモリマップの一例を後述する。
[2.4 2次記憶装置]
2次記憶装置540は、電源供給が無くても情報を保持可能であり、主記憶装置520に格納されるプログラム及びデータを記憶する装置である。2次記憶装置540は、磁気ディスクを用いたディスクアレイ、又は、フラッシュメモリを用いたSSD(Solid State Drive)等である。
[2.5 通信部]
通信部530は、通信経路としてのネットワーク450と接続し、ネットワーク450に接続された他の情報処理装置との間でデータを送受信する装置である。通信部530は、例えば、NIC(Network Interface Controller)である。
[2.6 ドライブ装置]
ドライブ装置550は、例えば、フロッピー(登録商標)ディスクやCD−ROM(Compact Disc Read Only Memory)、DVD(Digital Versatile Disc)などの記憶媒体590を読み書きする装置である。ドライブ装置550は、記憶媒体590を回転させるモータや記憶媒体590上でデータを読み書きするヘッド等を含む。なお、記憶媒体590は、プログラムを格納することができる。ドライブ装置550は、ドライブ装置550にセットされた記憶媒体590からプログラムを読み出す。演算処理装置510は、ドライブ装置550により読み出されたプログラムを、主記憶装置520又は2次記憶装置540に格納する。なお、記憶媒体590に記憶されるプログラム又はデータとは、例えば、図3を用いて後述するプログラム又はデータである。
入力部570は、入力信号を演算処理装置510に出力する装置であり、例えば、キーボードやマウスである。出力部580は、演算処理装置510から出力される出力信号を表示する装置であり、例えば、ディスプレイである。
[3 主記憶装置]
図3は、主記憶装置のメモリマップの一例を示す図である。主記憶装置520は、OS(Operating System)910、プロセス940A及び940B、要求ディスパッチプログラム950、プロセス管理テーブル960、及びログファイル970を格納する。
図3に示されるOS910、プロセス940A及び940B、要求ディスパッチプログラム950等のプログラムは、演算処理装置510により実行される。そのため、これらのプログラムの実行主体は、演算処理装置510である。しかしながら、例えば、演算処理装置510がプロセス940Aを実行して実現する機能を説明するために、「プロセス940Aを実行する演算処理装置は、・・・という情報処理を実行する」と記載すると、説明が冗長になる。そのため、以下の記載では、演算処理装置510がプログラムを実行して実現する機能は、プログラムの名称を用いて説明する。例えば、「プロセス940Aを実行する演算処理装置は、・・・という情報処理を実行する」は、「プロセス940Aは、・・・という情報処理を実行する」と説明する。
[3.1 OS]
OS910は、キーボード入力や画面出力といった入出力機能やディスクやメモリの管理など、多くのアプリケーションから共通して利用される基本的な機能を提供し、ハードウェア資源全体を管理するソフトウェアである。OS910は、例えば、Microsoft Windows(登録商標) Serverである。
[3.2 プロセス]
プロセス940Aは、クライアント300からの要求に対する応答処理を実行するアプリケーションプログラムであり、例えば、業務サービスに関するアプリケーションプログラムである。
業務サービスに関するアプリケーションプログラムは、プロセス940Aだけでなく、940A’、940A’’と複数あってもよい。これらのプロセスはプロセス管理テーブル960で管理される。
プロセス940Aは、要求を受け取ると、要求をデータとして自プロセス内に含める。そのため、図3に示すように、プロセス940Aは、要求942Aを含む。
プロセス940Aは、例えば、JVM(Java(登録商標) Virtual Machine)と、JVMにより実行されるJava(登録商標)プログラムである。変換プログラム949Aは、JVMに相当する。
業務サービスに関するアプリケーションプログラムは、図3に示されるネイティブコード944A、又は、中間コード946Aである。中間コード946Aは、実行時にコンパイルされるコードであり、OSの種類に依存しないコードである。
JVMは、Java(登録商標)プログラムを実行する際に、中間コード946AとしてのJava(登録商標)バイトコードの一部を選択し、選択した中間コードを演算処理装置510で実行可能なネイティブコード944Aに変換して、実行する。
変換プログラム949A及び949Bは、中間コード946A及び946Bを、演算処理装置510が実行可能なネイティブコード944A又は944Bに変換するためのプログラムである。演算処理装置510が中間コード946A及び946Bの実行直前に、変換プログラム949A及び949Bを実行して、中間コード946A及び946Bを、ネイティブコード944A又は944Bに変換する。なお、このように、実行時に、演算処理装置に実行可能な形式にコンパイルする方式を、「動的コンパイル」という。中間コード946A及び946B、及び、ネイティブコード944A又は944Bは、クライアントからの要求に応じた所定の処理を実行して、応答結果を算出するためのプログラムである。
上記のように、中間コードの一部は、ネイティブコード944Aに変換されるので、プロセス940Aは、中間コード946Aとネイティブコード944Aとを含む。
プロセス940Aは、プロセス管理プログラム945Aを含む。プロセス管理プログラム945Aは、少なくともプロセス940Aを複製する機能を有するプログラムである。プロセス940Aは、クライアント300からの要求942Aを受け取ると、自プロセス内のプロセス管理プログラム945Aを呼び出して、自プロセスの複製プロセスであるプロセス940Bを生成する。プロセス管理プログラム945Aで実行されるプロセスの複製処理は、例えば、fork()処理であり、OSの機能を呼び出すシステムコールである。
プロセス管理プログラム945Aは、例えば、CやC++で書かれたプログラムであり、ネイティブコードである。プロセス管理プログラム945Aは、変換プログラム949Aが提供されるJNI(Java(登録商標) Native Interface)によって、ネイティブコード944A又は中間コード946Aから呼び出される。
[3.3 複製プロセス]
プロセス940Bは、プロセス940Aのプロセス管理プログラム945Aによって複製されたプロセスである。プロセス940Aは、要求942Aを受け取ると、要求942Aをデータとして自プロセス内に含める。その後、プロセス940Aは、プロセス管理プログラム945Aによって自プロセスの複製であるプロセス940Bを生成するので、プロセス940Bは要求942Aの複製である要求942Bを含む。
プロセス940Bは、プロセス940Aの複製であるので、プロセス940A内にあるプログラム及びデータを全て複製する。よって、プロセス管理プログラム945Aは、プロセス940A内に含まれる中間コード946A、ネイティブコード944A、プロセス管理プログラム945A、データ948A、及び変換プログラム949Aを複製して、プロセス940Bを生成する。そのため、プロセス940Bは、図3に示されるように、中間コード946B、ネイティブコード944B、プロセス管理プログラム945B、中間コード946B、データ948B、及び、変換プログラム949Bを含む。
なお、後述するように、プロセス940Bは、プロセス940Aに障害が生じると、プロセス940Aの代わりに要求を処理するバックアッププロセスとして動作する。
また、図3に示されるプロセス940Cは、プロセス管理プログラム945Bによって生成されるプロセス940Bの複製プロセスである。上記したプロセス940B同様に複製されるので、プロセス940Cは、プロセス940B内にあるプログラム及びデータを全て複製する。よって、図3に示されるように、プロセス940Cは、中間コード946C、ネイティブコード944C、プロセス管理プログラム945C、中間コード946C、データ948C、及び、変換プログラム949Cを含む。ただし、後述するように複製のタイミングにおいて要求942Bはプロセス940Bに存在しないため、要求942Bはプロセス940Cに複製されない。
以下において、障害が生じたプロセスの代わりとなって動作するプロセスを「バックアッププロセス」という。また、複製の元となったプロセスを「親プロセス」、「親プロセス」の複製プロセスを「子プロセス」、「子プロセス」の複製プロセスを「孫プロセス」という。
図4は、監視プロセスを用いたプロセス監視の従来例を示す図である。図4には、プロセス901と、監視プロセス902と、要求ディスパッチプログラムのプロセス904と、プロセス管理テーブル905と、プロセス901の障害後に、プロセス901の代替処理を行うプロセス903が示される。要求ディスパッチプログラムのプロセス904は、クライアント300からの要求を送る先を、プロセス管理テーブル905を参照して(S45)決定し、プロセス901へ送る(S41)。プロセス901は、要求(S41)に対して応答処理を実行する。
監視プロセス902は、プロセス901の生存を監視し(S42)、プロセス901の生存を監視できなくなった場合、プロセス901に代わって代替処理を行うプロセス903を生成する(S43)。監視プロセス902は、その後、プロセス管理テーブル905にプロセス903のPIDを登録して、同時にプロセス管理テーブル905からプロセス901のPIDを削除する(S46)。プロセス管理テーブル905は、図6で示すプロセス管理テーブル960の例と比して、バックアッププロセスIDの列がない。
従来例では、プロセス901の障害時に、プロセスを新たに生成する場合、新たに生成されたプロセス903は、クライアント300からの要求を有さない。そのため、新たに生成されたプロセス903は、要求待ちになる。その場合、クライアント300は、要求ディスパッチプログラムのプロセス904からのエラー応答、もしくはサーバからの応答待ちのタイムアウトを契機に、要求を再送することで(S44)、プロセス903は要求を受け取り、プロセス901の代替処理を行なう。このように、プロセス障害後にプロセスを生成すると、クライアント300に対する待ち時間を生じさせ、APサーバ500の稼働性が下がる。
しかしながら、本実施形態に係るプロセス940Bは、プロセス940Aの要求942Aの複製である要求942Bを含むので、クライアント300に再度の要求処理を要求することなく、要求942Bを処理して、クライアント300に応答を返す。このように、プロセス940Bが、プロセス940Aに代わってクライアント300の要求に対する応答処理を実行することで、APサーバ500によるクライアント300の要求に対する応答処理の迅速化に寄与し、APサーバ500の稼動性を上げる。
また、上記の「動的コンパイル」方式は、事前コンパイル方式と比べ、実行時のコンパイル処理の分だけ演算処理装置510に対する処理負荷となる。図4に示す従来例のように、プロセス障害時に、障害が生じたプロセスの複製プロセスを新たに生成する場合、中間コードからネイティブコードへのコンパイル処理が再度必要になり、当該コンパイル処理は、演算処理装置510に対する処理負荷となる。そのため、プロセス901の実行に際して、障害が生じ、プロセス903を新たに生成する場合、クライアント300に対する待ち時間を生じさせる。この待ち時間が、APサーバ500の稼働性を下げる。
しかしながら、本実施形態に係るプロセス940Bは、プロセス940Aがクライアントからの要求を受けると同時に、プロセス940Aを複製して生成される複製プロセスである。そのため、プロセス940Bはプロセス940Aのネイティブコード944Aの複製であるネイティブコード944Bを含み、プロセス940Bがプロセス940Aの代わりに実行することで、中間コードからネイティブコードへの「動的コンパイル」が不要となる。よって、プロセス940Bが、プロセス940Aに代わってクライアント300の要求に対する応答処理を実行することで、APサーバ500によるクライアント300の要求に対する応答処理の迅速化に寄与し、APサーバの稼動性を上げる。
なお、生成するプロセスはプロセス940A及び940Bに限定されない。例えば、後述する子プロセスであるプロセス940Bの孫プロセスも生成されると、主記憶装置520は、孫プロセスも記憶する。
要求ディスパッチプログラム950は、クライアント300から要求を受け取ると、プロセス管理テーブル960を参照して、要求を処理する実行中のプロセスを検索し、検索したプロセスと通信して、要求を送信する処理を行う。要求ディスパッチプログラム950の詳細は、図5を用いて後述する。
プロセス管理テーブル960は、実行中プロセスのPID(Process IDentifier)と、バックアッププロセスとしての複製プロセスのPIDとの対応関係を示すテーブルである。なお、図6を用いて、プロセス管理テーブル960の詳細例について後述する。
中間コード946A及び946Bは、処理の実行経過のログを出力する機能を有する。実行経過としてのログは、ログファイル970として、主記憶装置520に記録される。主記憶装置520に記録されたログファイル970は、OS910がI/Oコントローラ560を介して2次記憶装置540へ記録する。ログファイル970は、例えば、プロセスの正常実行を妨げる原因が発生していないか、プロセス940Aが正常処理しているか否か等を調べるために用いられる。プロセス940A及び940Bは、ログレベルという変数により、経過情報の量や、出力対象となるデータを変える。例えば、ログレベルが低い時、経過情報の量や、出力対象となるデータの数が少なくなり、ログレベルが高い時、経過情報の量や、出力対象となるデータの数が多くなる。
ログレベルが上がると、ログファイル970のサイズが大きくなる。そのため、低ログレベルと比して、演算処理装置510及び主記憶装置520のリソースを要する。また、主記憶装置520と比して低速な2次記憶装置540への書き込みに時間を要する。一方で、ログファイル970内の情報が増えるために、低ログレベルのときと比して、障害原因等の判断において、有益な情報を得ることができる。後述するように、一実施形態によれば、バックアッププロセスが親プロセスの実行を継続するときに、親プロセスより高いログレベルでログファイル970を生成することで、異常時のときのみ、高いログレベルで異常判断の有益な情報を生成する。
[4 要求ディスパッチプログラム]
図5は、要求ディスパッチプログラムの情報処理の一例を示す図である。図6は、プロセス管理テーブルの一例を示す図である。図5及び図6を用いて、要求ディスパッチプログラムの情報処理を説明する。
図5に示すように、要求ディスパッチプログラム950を実行するAPサーバ500は、クライアント300から要求を受け取ると(S51)、プロセス管理テーブル960を参照して(S52)、要求を実行中のプロセスに振分ける(S53)。
図6に示すプロセス管理テーブル960は、実行中のプロセスが登録されるテーブルである。プロセス管理テーブル960は、有効プロセスID列961と、バックアッププロセスID列962との対応関係を示す。有効プロセスID列961には、有効プロセスとして、実行中のプロセスが登録される。バックアッププロセスID列962には、同一エントリに入力される実行中のプロセスをバックアップするバックアッププロセスのPIDが入力される。
要求ディスパッチプログラム950は、実行中のプロセスと通信して、プロセス管理テーブル960に入力されるプロセスの登録又は削除の管理を行う。例えば、要求ディスパッチプログラム950は、プロセスが生成されると、有効プロセスID列961にプロセスIDを登録する。又は、要求ディスパッチプログラム950は、プロセスが異常終了や削除されると有効プロセスID列961及びバックアッププロセスID列962からプロセスIDを削除する。
[5 プロセス管理プログラムの正常処理]
図7は、プロセス管理プログラムの正常処理の一例を示す図である。図7には、要求ディスパッチプログラム950、プロセス940A及び940Bと、プロセス管理テーブル960とが示される。S71〜S80は、要求ディスパッチプログラム950、プロセス940A及び940B、及びプロセス管理プログラム945A及び945Bによる通信処理又は情報処理を示す。
要求ディスパッチプログラム950は、クライアント300から要求を受け取る(S71)。要求ディスパッチプログラム950は、要求を受け取ると、プロセス管理テーブル960を参照して、要求を処理する実行中のプロセスを検索する(S72)。次に、要求ディスパッチプログラム950は、要求を処理する実行中のプロセスであるプロセス940Aに要求を送信する(S73)。プロセス940Aに含まれるプロセス管理プログラム945Aは、プロセス940Aの複製プロセスであるプロセス940Bを生成する(S74)。複製プロセスであるプロセス940Bは自身をプロセス管理テーブルに登録する(S75)。例えば、図6の矢印964に示す有効プロセスID1234が登録される。プロセス940Aは、クライアント300からの要求を処理して(S76)、要求の処理が完了すると、プロセス940Bを削除して(S77)、プロセス管理テーブル960のエントリからも削除する(S78)。要求ディスパッチプログラム950は、プロセス940Aの処理結果を、応答としてクライアント300に送信する(S79、S80)。なお、S78の削除処理は無くてもよい。
[6 プロセス異常終了時のプロセス管理プログラムの情報処理の第1例]
図8は、プロセス異常終了時におけるプロセス管理プログラムの情報処理の第1例を示す図である。図8には、要求ディスパッチプログラム、プロセス、プロセス管理プログラムと、プロセス管理テーブル960が示される。S81〜S92は、図7に示す要求に対する処理(S71〜S75)の後の情報処理であり、プロセス異常終了時の情報処理を示す。
プロセス940Aが異常終了すると(S81)、要求ディスパッチプログラム950は、プロセス940Aに障害が生じたことを確認する(S82)。例えば、要求ディスパッチプログラム950と、プロセス940Aは、IPアドレスとポートから構成されるソケットにより通信を行っている場合、要求ディスパッチプログラム950は、ソケットがクローズすることにより、プロセス940Aの障害を確認する。
また、プロセス940Bのプロセス管理プログラム945Bは、プロセス940Aの生存監視を行い、プロセス940Aが生存していないことを検知すると、要求ディスパッチプログラム950からの要求処理の依頼を待つ(S83)。プロセス管理プログラム945Bのプロセス生存監視は、例えば、OS910のプロセス監視処理を利用して、OS910にプロセス940Aの応答を問い合わせることでなされる。
要求ディスパッチプログラム950は、プロセス管理テーブル960から異常終了したプロセス940Aのエントリを削除し、複製プロセスであるプロセス940Bを有効にする(S84)。例えば、図6の矢印963に示す有効プロセスID1001は、要求ディスパッチプログラム950によって削除され、図6の矢印965に示すように、プロセス940BのPID1234は、有効プロセスとしてプロセス管理テーブル960に追加登録される。
要求ディスパッチプログラム950は、プロセス940Bに通信再開する(S85)。プロセス940Bは、要求を正常処理して(S86)、応答を要求ディスパッチプログラム950に送信する(S87)。要求ディスパッチプログラム950は、応答を、クライアント300に送信する(S88)。
プロセス管理プログラム945Bは、正常処理を確認すると、プロセス940Bの複製プロセスである孫プロセスを生成する(S89)。孫プロセス940Cのプロセス管理プログラム945Cは、孫プロセス940Cを実行中の有効プロセスとしてプロセス管理テーブル960に登録する(S90)。そして、孫プロセス940Cのプロセス管理プログラム945Cは、プロセス940Bの演算処理装置510による実行を終了し、主記憶装置520から削除する(S91)。
要求ディスパッチプログラム950は、プロセス940Bの終了を、ソケットクローズ等により検知すると(S92)、プロセス940Bのエントリをプロセス管理テーブル960から削除する(S93)。孫プロセスは、クライアント300からの要求に対応するプロセスとして、プロセス940Aの代わりのプロセスとして、クライアント300からの要求を待つ(S94)。
なお、一実施形態によれば、障害時に親プロセスであるプロセス940Aをバックアップする子プロセスであるプロセス940Bは、プロセス940Aよりもログレベルを上げる。これは、子プロセスを実行することで、障害時に、要求データに起因する再現性の難しい詳細なログを取得することができ、解析を容易にする。また、図7で説明したように、親プロセスに障害が発生してないときには、子プロセスは要求を処理せずに削除されるので、ログレベルを低くして親プロセスの実行性能を向上させる。
次に、図9〜図11を用いて、プロセス及びプロセス管理プログラムの処理フローの第1例について説明する。図9は、プロセス及びプロセス管理プログラムの処理フローの第1例を示す図である。図10は、プロセス管理プログラムの処理フローの第1例を示す図である。図11には、プロセス管理プログラムのソースコード一例を示す図である。図11には、図10で説明する各ステップに対応するプログラムコードの一例が示される。
なお、演算処理装置510は、図11に示すプロセス管理プログラムのソースコードをもとに予めコンパイルされたバイナリコードを主記憶上にロードして、プロセス管理プログラム945Aを生成する。945B、および945Cは945Aの複製である。図10に示すプロセス管理プログラムの処理フローは、プロセス管理プログラムを実行して実現するプロセス管理プログラム945A〜945Cの何れかによる処理である。よって、プロセス管理プログラム945A〜945Cは、共通のソースコードに基づくが、実行される変数の違い等によって、異なる処理を実行する。以下では、「6.1 親プロセスによる複製プロセス生成処理」として、プロセス管理プログラム945Aの処理フローを説明し、「6.2 子プロセスによる親プロセスのバックアップ処理」として、プロセス管理プログラム945Bの処理フローを説明する。さらに、「6.3 孫プロセスによる親プロセス代替処理」として、プロセス管理プログラム945Cの処理フローを説明する。
[6.1 親プロセスによる複製プロセス生成処理]
図9に示されるように、プロセス940Aは、まず、初期値を設定する(S1101)。図11に示すように、プロセス940Aは、初期値として、デバッグフラグ(debug_flg)を「false(0)」に、ログレベル(log_level)を「1」に設定する。なお、これらの初期値は、例えばグローバル変数であり、プロセス管理プログラム945からアクセス可能な変数である。他のプロセス管理プログラム945B及び945Cからは、プロセス940B、及びプロセス940Cにそれぞれコピーされた領域がアクセス可能になる。
初期値の設定後、プロセス940Aは、要求ディスパッチプログラム950からの要求の受信を待つ(S1001)。プロセス940Aは、要求を受け取ると、子プロセス940Bを生成する(S1002)。S1002の処理は、図10に詳細に示される。
プロセス管理プログラム945Aは、プロセス940AのPIDを取得する(S1102)。これは複製されるプロセス940Bにとって親プロセスのPID、すなわちPPID(Parent Process IDentifier)である。プロセス管理プログラム945Aは、プロセス940Aの複製プロセスとしてのプロセス940Bを生成して、生成したプロセス940BのPIDを取得する(S1103)。
プロセス管理プログラム945Aは、実行中のプロセスが、複製プロセスか否か判断する(S1104)。実行中のプロセスが複製プロセスではない場合(S1104 No)、つまり、プロセス940Aのプロセス管理プログラム945Aの場合は、自プロセスに対しては、プロセス監視処理を実行しない。
[6.2 子プロセスによる親プロセスのバックアップ処理]
プロセス940Bは、プロセス管理プログラム945AのS1103により生成され、プロセス管理プログラム945BのS1103直後から実行される。なお、プロセス管理プログラム945BにおいてS1103で得られるpidは、「0」になる。
実行中のプロセスが複製プロセスである場合(S1104 Yes)とは、子プロセスであるプロセス940Bが実行する場合である。実行中のプロセスが複製プロセスである場合(S1104 Yes)、プロセス管理プログラム945Bは、自プロセスのデバッグフラグ(debug_flg)を、親プロセスと逆のデバッグフラグにする(S1105)。例えば、プロセス管理プログラム945Bは、S1101で設定されたデバッグフラグ(debug_flg)は「0(false)」であるので、S1105で、デバッグフラグ(debug_flg)は「1(True)」になる。
プロセス管理プログラム945Bは、デバッグフラグ(debug_flg)の値を確認する(S1106)。デバッグフラグ(debug_flg)が「1(True)」の場合(S1106 True)、プロセス管理プログラム945Bは、バックアッププロセスの初期化処理を行う。当該初期化プロセスでは、例えば、プロセス管理プログラム945Bは、子プロセスの変数pidを、S1103で得られたpid「0」ではなく、子プロセス自身を識別可能なPIDにする。例えば、図6に示すPID「1234」にする。次に、プロセス管理プログラム945Bは、複製プロセスのログレベルを上げる(S1112)。
デバッグフラグ(debug_flg)は「0(false)」の場合(S1106 false)、プロセス管理プログラムは、ログレベルを下げるが(S1121)、当該処理については、プロセス管理プログラム945Cが行なうので、後述の孫プロセスの生成で説明する。
S1105で、デバッグフラグ(debug_flg)は「1(True)」であるので、プロセス管理プログラム945Bは、バックアッププロセスであるプロセス940Bのログレベルを上げる。プロセス管理プログラム945Bは、プロセス管理テーブル960にプロセス940BのPIDを登録する(S1113)。プロセス管理プログラム945Bは、親プロセス940Aが起動中か否かを監視し、親プロセス940Aが終了するまで待つ(S1114 Yes)。親プロセス940Aが終了すると(S1114 No)、要求ディスパッチプログラム950からの通信(S1130)に従い、プロセス940Bは、自プロセス内の要求を処理する(S1003)。このようにして、親プロセス障害時のバックアップがプロセス940Bによって実行される。
プロセス管理プログラムの処理が終了し、図9に示す処理に戻ると、プロセス940Bは、処理の結果としての応答を、クライアント300に送信する(S1004)。プロセス940Bは、デバッグフラグ(debug_flg)が、「0(false)」か「1(True)」か、を判断する(S1005)。S1105で、デバッグフラグ(debug_flg)は「1(True)」になっているので(S1005 True)、プロセス940Bは、要求受付停止処理を行う(S1007)。そして、孫プロセスを生成するためのプロセス管理プログラム処理が実行される(S1008)。
一方で、親プロセスであるプロセス940Aに障害がなく、プロセス940Aが落ちて無い場合、プロセス管理プログラム945Bは、図10で説明したように、プロセス940Aが終了するのを待つ(S1114 Yes)。プロセス940Aは、自プロセス内の業務処理に対する要求を処理する(S1003)。プロセス940Aは、処理の結果としての応答を、クライアント300に送信する(S1004)。プロセス940Aは、自プロセスのデバッグフラグ(debug_flg)が「0(false)」である(S1005 false)、つまり障害を生じることなく応答処理を完了したので、待機中のプロセス940Bを削除する(S1006)。このように、ログレベルの高いプロセス940Bは、親プロセスが落ちない限り実行されないため、正常終了時には、高いログレベルのログファイル970は生成されず、主記憶装置520の記憶領域を高いログレベルのログファイル970が記憶されることはない。
[6.3 孫プロセスによる親プロセス代替処理]
S1008により再度プロセス管理プログラムの処理が実行される。図10に示すように、プロセス管理プログラム945Bは、親プロセスとしてのPPID(Parent Process IDentifier)を取得する(S1102)。なお、ここで親プロセスは、子プロセスであるプロセス940Bである。
プロセス管理プログラム945Bは、子プロセスの複製プロセスである孫プロセス940Cを生成して、孫プロセス940CのPIDを取得する(S1103)。なお、複製されたプロセス管理プログラム945CではS1103の結果として得られるpidは「0」である。孫プロセスは複製プロセスであるので(S1104 Yes)、親プロセスであるプロセス940Bと逆のデバッグフラグ(debug_flg)「0(false)」になる。
プロセス管理プログラム945Cは、孫プロセスのデバッグフラグ(debug_flg)「0(false)」であるので(S1106 false)、プロセスの初期化処理を行う(S1120)。当該初期化プロセスでは、孫プロセスがバックアッププロセスではなく通常プロセスとして実行可能にするための初期化処理がなされる。例えば、プロセス管理プログラム945Cは、孫プロセスの変数pidを、S1103で得られたpid「0」ではなく、プロセス自身のPIDにする。
次に、プロセス管理プログラム945Cは、孫プロセスのログレベルを下げる(S1121)。このように、通常プロセスとして動作させる孫プロセスのログレベルを下げることで、通常処理時に高いログレベルでログファイル970を保存するという状態を回避できる。プロセス管理プログラム945Cは、孫プロセスのPIDをプロセス管理テーブル960に登録して(S1122)、親プロセスであるプロセス940Bを停止し、主記憶装置520からプロセス940Bを削除する(S1123)。要求ディスパッチプログラム950から通信が再開すると(S1130)、プロセス管理プログラム945Cは、再度要求を待つ(S1001)。
以上説明したように、プロセス管理プログラム945Aは、親プロセスを複製し、プロセス管理プログラム945Bは、生成した子プロセスを、親プロセスの異常後に、クライアントからの要求を処理するバックアッププロセスとして動作させる。そして、プロセス管理プログラム945Bは、バックアッププロセスのログレベルを上げることで、障害発生時にハイレベルで生成したログを残すことができる。さらに、プロセス管理プログラム945Cは、子プロセスを複製して生成した孫プロセスを、ログレベルを下げた通常プロセスとして動作させることで、業務処理を継続して実施することが出来るとともに、正常時にハイレベルで生成したログを残さない。
なお、図11は、C言語で書かれたソースコードP1101及びP1102であり、UNIX(登録商標) OSを呼び出すシステムコールであるfork()を示す。しかしながら、図11は、例示であり、プロセス管理プログラム945A〜945Cは、C言語及びUNIX(登録商標) OSに対するシステムコールに限定されない。
[7 プロセス異常終了時のプロセス管理プログラムの情報処理の第2例]
図12は、プロセス異常終了時におけるプロセス管理プログラムの情報処理の第2例を示す図である。図12には、要求ディスパッチプログラム、プロセス、プロセス管理プログラムと、プロセス管理テーブル960が示される。S81A〜S102は、図7に示す要求に対する処理(S71〜S75)の後の情報処理であり、プロセス異常終了時のプロセス管理プログラムによる情報処理を示す。また、S81A〜S88Aは、図8に示すS81〜S88と同じ情報処理であるので、説明を省略する。
バックアッププロセスであるプロセス940Bは、クライアント300への応答処理を正常終了すると、自プロセスのログレベルを下げる(S101)。そして、プロセス940Bは、次のクライアント300からの要求に対しては、プロセス940Aの代わりに動作する(S102)。このように、図12に示す第2例では、図8に示す第1例と異なり、孫プロセスを生成しない。そのため、孫プロセス生成の演算処理装置510の処理負荷が生じない。
次に、図13及び図14を用いて、プロセス及びプロセス管理プログラムの処理フローの第2例について説明する。図13は、プロセス及びプロセス管理プログラムの処理フローの第2例を示す図である。図14には、プロセス管理プログラムに対応するソースプログラムコードの一例であるP1401〜P1403が示される。
図13に示されるステップS1001、S1003〜S1007は、図9に示す同ステップと同じであるので、説明を省略する。S1301では、P1102とP1402に示したプロセス管理プログラムの処理の異なる部分が実行されないため、S1002と同じ処理がなされる。S1302は、親プロセスの障害により子プロセスが代替で要求の応答を完了した後の処理であるが、子プロセスは自プロセスのログレベルを下げる(P1403)。このように、図13に示す第2例では、図9に示す第1例と異なり、孫プロセスを生成しない。そのため、孫プロセス生成の演算処理装置510の処理負荷を生じさせない。
図14に示すソースコードは、図11に示すソースコードと比して、S1120に対応するプログラムがプロセスの複製に依存しない。
以上の実施形態に関し、更に以下の付記を開示する。
[付記1]
クライアントコンピュータから出力される要求に対して応答処理を実行する情報処理装置であって、
前記情報処理装置に、前記クライアントコンピュータから出力される要求に対する応答処理を実行させるための第1プログラムを格納する記憶装置と、
前記クライアントコンピュータから第1要求を受け取ると、前記第1プログラム及び前記第1要求を複製し、前記第1プログラムの複製である第2プログラムを実行して、前記第1要求に対する前記第1プログラムの応答処理を監視し、前記第1プログラムの応答処理の障害を検出した場合、前記第2プログラムを実行して、前記第1要求の複製である第2要求に対する応答処理を行う、演算処理装置と、
を備えることを特徴とする情報処理装置。
[付記2]
前記演算処理装置による前記第1プログラムの複製は、前記第1プログラムに含まれるネイティブコードの複製を含む、付記1に記載の情報処理装置。
[付記3]
前記演算処理装置は、前記第1プログラム及び第2プログラムの実行とともに、前記第1プログラム又は前記第2プログラムの実行に対する経過情報の量や出力対象となるデータの数を少なくとも特定するログレベルに従ってログファイルを生成し、
前記第2プログラムのログレベルは、前記第1プログラムのログレベルより高い、付記1又は2に記載の情報処理装置。
[付記4]
前記演算処理装置は、前記第2要求に対する前記第2プログラムの応答処理が終了すると、前記第2プログラムを複製し、
前記演算処理装置は、前記第2プログラムの複製の後に、前記第2プログラムを前記記憶装置から削除し、
前記第2プログラムの複製である第3プログラムの前記ログレベルは、前記第1プログラムのログレベルと同じである、付記3に記載の情報処理装置。
[付記5]
前記演算処理装置は、前記第2要求に対する前記第2プログラムの応答が終了すると、前記第2プログラムの前記ログレベルを、前記第1プログラムのログレベルと同じにする、付記3に記載の情報処理装置。
[付記6]
要求に対する応答処理を実行する情報処理装置を制御する方法であって、
前記情報処理装置が第1要求を受け取ると、前記情報処理装置の演算処理装置が、前記第1要求に対する応答処理を行う第1プログラム、及び前記第1要求を複製し、
前記演算処理装置が、前記第1プログラムの複製である第2プログラムを実行して、前記第1要求に対する前記第1プログラムの応答処理を監視し、
前記第1プログラムの応答処理の障害を検出した場合、前記演算処理装置が、前記第2プログラムを実行して、前記第1要求の複製である第2要求に対する応答処理を行うこと、を有することを特徴とする制御方法。
[付記7]
前記演算処理装置による前記第1プログラムの複製は、前記第1プログラムに含まれるネイティブコードの複製を含む、付記6に記載の制御方法。
[付記8]
前記演算処理装置は、前記第1プログラム及び第2プログラムの実行とともに、前記第1プログラム又は前記第2プログラムの実行に対する経過情報の量や出力対象となるデータの数を少なくとも特定するログレベルに従ってログファイルを生成することをさらに有し、
前記第2プログラムのログレベルは、前記第1プログラムのログレベルより高い、付記6又は7に記載の制御方法。
[付記9]
前記演算処理装置は、前記第2要求に対する前記第2プログラムの応答処理が終了すると、前記第2プログラムを複製し、
前記演算処理装置は、前記第2プログラムの複製の後に、前記第2プログラムを前記記憶装置から削除することをさらに有し、
前記第2プログラムの複製である第3プログラムの前記ログレベルは、前記第1プログラムのログレベルと同じである、付記8に記載の制御方法。
[付記10]
前記演算処理装置は、前記第2要求に対する前記第2プログラムの応答が終了すると、前記第2プログラムの前記ログレベルを、前記第1プログラムのログレベルと同じにすることをさらに有する、付記8に記載の制御方法。
[付記11]
要求に対する応答処理を行うとともに、前記応答処理の異常を監視するプログラムであって、情報処理装置の演算処理装置に、
第1要求を受け取ると、前記演算処理装置が前記プログラムの複製元のプログラムを実行して行う前記第1要求に対する応答処理を監視する手順と、
前記複製元のプログラムの応答処理に障害が生じたことを検出した場合、前記第1要求の複製である第2要求に対する応答処理を行う手順と、を実行させるためのプログラム。
[付記12]
前記プログラムは、前記複製元のプログラムに含まれるネイティブコードの複製を含む、付記11に記載のプログラム。
[付記13]
前記演算処理装置に、前記第1プログラム及び第2プログラムの実行とともに、前記第1プログラム又は前記第2プログラムの実行に対する経過情報の量や出力対象となるデータの数を少なくとも特定するログレベルに従ってログファイルを生成する手順をさらに実行させ、
前記第2プログラムのログレベルは、前記第1プログラムのログレベルより高い、付記11又は12に記載のプログラム。
[付記14]
前記演算処理装置に、前記第2要求に対する前記第2プログラムの応答処理が終了すると、前記第2プログラムを複製する手順と、
前記第2プログラムの複製の後に、前記第2プログラムを前記記憶装置から削除する手順とをさらに実行させ、
前記第2プログラムの複製である第3プログラムの前記ログレベルは、前記第1プログラムのログレベルと同じである、付記13に記載のプログラム。
[付記15]
前記演算処理装置に、前記第2要求に対する前記第2プログラムの応答が終了すると、前記第2プログラムの前記ログレベルを、前記第1プログラムのログレベルと同じにする手順をさらに実行させる、付記13に記載のプログラム。
10 システム
300 クライアント
400 Webサーバ
500 APサーバ
510 演算処理装置
520 主記憶装置
530 通信部
540 2次記憶装置
550 ドライブ装置
560 I/Oコントローラ
590 記憶媒体
940A、940B プロセス
942A、942B 要求
944A、944B ネイティブコード
946A、946B 中間コード
948A、948B データ
949A、949B 変換プログラム
950 要求ディスパッチプログラム
960 プロセス管理テーブル
970 ログファイル

Claims (8)

  1. クライアントコンピュータから出力される要求に対して応答処理を実行する情報処理装置であって、
    前記情報処理装置に、前記クライアントコンピュータから出力される要求に対する応答処理を実行させるための第1プログラムを格納する記憶装置と、
    前記クライアントコンピュータから第1要求を受け取ると、前記第1プログラム及び前記第1要求を複製し、前記第1プログラムの複製である第2プログラムを実行して、前記第1要求に対する前記第1プログラムの応答処理を監視し、前記第1プログラムの応答処理の障害を検出した場合、前記第2プログラムを実行して、前記第1要求の複製である第2要求に対する応答処理を行う、演算処理装置と、
    を備え
    前記演算処理装置は、前記第2要求に対する前記第2プログラムの応答処理が終了すると、前記第2プログラムを複製して第3プログラムを生成し、
    前記演算処理装置は、前記第2プログラムの複製の後に、前記第2プログラムを前記記憶装置から削除する
    ことを特徴とする情報処理装置。
  2. 前記演算処理装置による前記第1プログラムの複製は、前記第1プログラムに含まれるネイティブコードの複製を含む、請求項1に記載の情報処理装置。
  3. 前記演算処理装置は、前記第1プログラム及び第2プログラムの実行とともに、前記第1プログラム又は前記第2プログラムの実行に対する経過情報の量や出力対象となるデータの数を少なくとも特定するログレベルに従ってログファイルを生成し、
    前記第2プログラムのログレベルは、前記第1プログラムのログレベルより高い、請求項1又は2に記載の情報処理装置。
  4. 記第2プログラムの複製である第3プログラムの前記ログレベルは、前記第1プログラムのログレベルと同じである、請求項3に記載の情報処理装置。
  5. 前記演算処理装置は、前記第2要求に対する前記第2プログラムの応答が終了すると、前記第2プログラムの前記ログレベルを、前記第1プログラムのログレベルと同じにする、請求項3に記載の情報処理装置。
  6. 要求に対する応答処理を実行する情報処理装置を制御する方法であって、
    前記情報処理装置が第1要求を受け取ると、前記情報処理装置の演算処理装置が、前記第1要求に対する応答処理を行う第1プログラム、及び前記第1要求を複製し、
    前記演算処理装置が、前記第1プログラムの複製である第2プログラムを実行して、前記第1要求に対する前記第1プログラムの応答処理を監視し、
    前記第1プログラムの応答処理の障害を検出した場合、前記演算処理装置が、前記第2プログラムを実行して、前記第1要求の複製である第2要求に対する応答処理を行
    前記第2要求に対する前記第2プログラムの応答処理が終了すると、前記演算処理装置が前記第2プログラムを複製して第3プログラムを生成し、
    前記第2プログラムの複製の後に、前記演算処理装置が前記第2プログラムを前記記憶装置から削除する
    とを特徴とする制御方法。
  7. 要求に対する応答処理を行うとともに、前記応答処理の異常を監視するプログラムであって、情報処理装置の演算処理装置に、
    第1要求を受け取ると、前記演算処理装置が前記プログラムの複製元のプログラムを実行して行う前記第1要求に対する応答処理を監視する手順と、
    前記複製元のプログラムの応答処理に障害が生じたことを検出した場合、前記第1要求の複製である第2要求に対する応答処理を行う手順と、
    前記第2要求に対する前記第2プログラムの応答処理が終了すると、前記第2プログラムを複製して第3プログラムを生成する手順と、
    前記第2プログラムの複製の後に、前記第2プログラムを前記記憶装置から削除する手順
    を実行させるためのプログラム。
  8. 前記プログラムは、前記複製元のプログラムに含まれるネイティブコードの複製を含む、請求項7に記載のプログラム。
JP2010154788A 2010-07-07 2010-07-07 プログラム、情報処理装置、及び情報処理装置の制御方法 Expired - Fee Related JP5565153B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010154788A JP5565153B2 (ja) 2010-07-07 2010-07-07 プログラム、情報処理装置、及び情報処理装置の制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010154788A JP5565153B2 (ja) 2010-07-07 2010-07-07 プログラム、情報処理装置、及び情報処理装置の制御方法

Publications (3)

Publication Number Publication Date
JP2012018512A JP2012018512A (ja) 2012-01-26
JP2012018512A5 JP2012018512A5 (ja) 2013-06-06
JP5565153B2 true JP5565153B2 (ja) 2014-08-06

Family

ID=45603724

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010154788A Expired - Fee Related JP5565153B2 (ja) 2010-07-07 2010-07-07 プログラム、情報処理装置、及び情報処理装置の制御方法

Country Status (1)

Country Link
JP (1) JP5565153B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6179331B2 (ja) 2013-10-09 2017-08-16 富士通株式会社 ログ出力条件設定プログラム、装置、および方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01224846A (ja) * 1988-03-04 1989-09-07 Fujitsu Ltd プロセス空間切り換え制御方式
JP2846047B2 (ja) * 1990-03-29 1999-01-13 株式会社東芝 シャドウプロセス生成方式
JP2612385B2 (ja) * 1991-07-02 1997-05-21 富士通株式会社 多重化サブシステム間処理引継ぎ処理方式
JP2762816B2 (ja) * 1992-02-14 1998-06-04 日本電気株式会社 トランザクション実行トレース情報採取方式
JP2000215074A (ja) * 1999-01-26 2000-08-04 Fujitsu Ltd システムの運用方式及び障害自動復旧方式
JP5341317B2 (ja) * 2007-01-30 2013-11-13 セイコーエプソン株式会社 アプリケーション実行システム、コンピュータ、アプリケーション実行システムのアプリケーション実行方法およびプログラム

Also Published As

Publication number Publication date
JP2012018512A (ja) 2012-01-26

Similar Documents

Publication Publication Date Title
CN110297689B (zh) 智能合约执行方法、装置、设备及介质
US20050240931A1 (en) System and method for dynamic cooperative distributed execution of computer tasks without a centralized controller
US9124669B2 (en) Cooperative client and server logging
JP2005018774A (ja) アンドゥインフラストラクチャ
JP4023803B2 (ja) ウェブアプリケーション開発支援装置、データ処理方法及びプログラム
CN108038039B (zh) 记录日志的方法及微服务系统
US11531526B1 (en) Creating portable serverless applications
JP6163707B2 (ja) 組み込み機器、プログラム作成装置、プログラム
CN115934471A (zh) 基于大数据的数据采集方法及大数据系统
US11494184B1 (en) Creation of transportability container files for serverless applications
JP5565153B2 (ja) プログラム、情報処理装置、及び情報処理装置の制御方法
CN109445966B (zh) 事件处理方法、装置、介质和计算设备
US10462234B2 (en) Application resilience system and method thereof for applications deployed on platform
CN116700779A (zh) 代码动态调整方法、装置、设备、介质和程序产品
US11513833B1 (en) Event listener interface for container-based execution of serverless functions
CN114116326A (zh) 一种数据存储容灾方法及系统
CN114661420A (zh) 基于Kubernetes容器平台的应用保护方法、装置及系统
CN112416698B (zh) 监控系统的扩展方法及装置、存储介质及电子设备
CN114371888A (zh) 日志采集插件的热更新方法、装置、电子设备和可读介质
CN109358972B (zh) 中间件客户端的日志管理方法、装置及计算机系统
JP2012128581A (ja) 通信コード生成装置および関数利用コンピュータおよび関数公開コンピュータおよびコンピュータシステムおよび通信コード生成方法およびプログラム
CN112350921A (zh) 消息处理方法、终端及存储介质
CN113760693A (zh) 用于微服务系统的本地调试的方法和装置
CN111158654A (zh) 算法调用方法、装置、服务器及存储介质
CN112783834B (zh) 一种业务资源在线转存方法、装置和电子设备

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130422

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130422

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140204

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140407

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140602

R150 Certificate of patent or registration of utility model

Ref document number: 5565153

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees