(57)【要約】【課題】必要最低限範囲において、システム内機能の停止による処理を実施し、異常が発生した場合における適切な状態への復旧処理を行い、これらの処理を自動化させることにより、パッチ処理の柔軟性の向上及び、システム全体の運用安定化を実現させる、オンラインパッチ処理方法を提供する。【解決手段】本発明のオンラインパッチ処理方法は、サーバにて実行されているアプリケーションプロセスのオンラインパッチ処理方法において、管理プロセス１が対象プロセスの状態が実行中であるか否かの判定を行い、実行中であれば、一旦、対象プロセスを停止させた後に、対象実行ファイルの入れ替えを実施し、完了後に再び対象プロセスを起動する過程を有することを特徴とする。【選択図】  図２
2005043960.tif 000002
【特許請求の範囲】
【請求項１】
サーバにて実行されているアプリケーションプロセスのオンラインパッチ処理方法において、
管理手段が対象プロセスの状態が実行中であるか否かの判定を行い、実行中であれば、一旦、対象プロセスを停止させた後に、対象プロセス実行ファイルの入れ替えを実施し、完了後に再び対象プロセスを起動する過程を有することを特徴とするオンラインパッチ処理方法。
【請求項２】
オンラインパッチ処理完了後に、時刻管理手段が一定の安定性監視時間を設定し、前記管理手段がこの安定性監視時間内に、オンラインパッチ対象プロセスに異常終了が発生したことを検知した場合、旧版の該当プロセス実行ファイルにて同プロセスの再起動することを特徴とする請求項１記載のオンラインパッチ処理方法。
【請求項３】
オンラインパッチ処理の実行時に、該当サーバのコンソールから、必要情報を付与して処理実施要求用コマンドを実行することにより、オンラインパッチ処理の実行を受付け、前記必要情報でユーザが任意に設定した処理実施開始時間に基づいて、オンラインパッチ処理を開始することを特徴とする請求項１または請求項２に記載のオンラインパッチ処理方法。
【請求項４】
サーバにて実行されているアプリケーションプロセスのオンラインパッチ処理方法において、
対象プロセスの状態が実行中であるか否かの判定を行い、実行中であれば、一旦、対象プロセスを停止させた後に、対象プロセス実行ファイルの入れ替えを実施し、完了後に再び対象プロセスを起動する管理手段を有することを特徴とするサーバ。
【請求項５】
パッチ処理完了後に一定の安定性監視時間が経過したか否かを管理する時刻管理手段を有し、前記管理手段が前記安定性監視時間内にてパッチ対象プロセスに異常終了が発生した場合、旧版の該当プロセス実行ファイルにて同プロセスの再起動することを特徴とする請求項４記載のサーバ。
【請求項６】
前記管理手段が、オンラインパッチ処理の実行時に、該当サーバのコンソールから、必要情報を付与して処理実施要求用コマンドを実行することにより、オンラインパッチ処理の実行を受付け、前記時刻管理手段に設定された、前記必要情報においてユーザにより任意に指定された処理実施開始時間に、オンラインパッチ処理を開始することを特徴とする請求項４または請求項５に記載のサーバ。
【請求項７】
サーバにて実行されているアプリケーションプロセスのオンラインパッチ処理方法をコンピュータに実行させるプログラムであり、
管理手段が対象プロセスの状態が実行中であるか否かの判定を行い、実行中であれば、一旦、対象プロセスを停止させた後に、対象プロセス実行ファイルの入れ替えを実施し、完了後に再び対象プロセスを起動する処理を有することを特徴とするコンピュータにより実行可能なプログラム。
【請求項８】
オンラインパッチ処理完了後に、時刻管理手段が一定の安定性監視時間を設定し、前記管理手段がこの安定性監視時間内に、オンラインパッチ対象プロセスに異常終了が発生したことを検知した場合、旧版の該当プロセス実行ファイルにて同プロセスの再起動することを特徴とする請求項７記載のコンピュータにより実行可能なプログラム。
【請求項９】
オンラインパッチ処理の実行時に、該当サーバのコンソールから、必要情報を付与して処理実施要求用コマンドを実行することにより、オンラインパッチ処理の実行を受付け、前記必要情報でユーザが任意に設定した処理実施開始時間に基づいて、オンラインパッチ処理を開始することを特徴とする請求項７または請求項８に記載のコンピュータにより実行可能なプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、システム管理上、単独もしくは複数のサーバ構成で運用され、かつ、プロセス間で複数の機能プロセスが連携して業務を実行する場合の、管理プロセスのパッチ処理の自動化および対象範囲を拡大化させるオンラインパッチ処理方法及びサーバに関する発明である。
【０００２】
【従来の技術】
従来のシステムにおいては、システム起動後常時にＡＰ（アプリケーションプロセス）を監視しているため、新版のＡＰに入れ替えるためにはシステム停止を伴う必要があった（特許文献１）。
そして、新版のＡＰへの更新契機は、システム運用の都合上、可変かつ、自動実施であることが求められている。
しかしながら、自動実施の実現手段がないため、ユーザは実施タイミングをとり、使用しているＡＰを、新版のＡＰへ更新するためのオペレーションを行う必要がある。
【０００３】
それに加え、新版のＡＰが起動できなかった場合を考慮し、保守者は一定期間にわたり、更新後の起動した新版のＡＰの動作に対して監視を行う必要がある。
そして、ユーザが、万が一、新版のＡＰの起動が失敗した場合、保守者による旧版のＡＰへの切戻しが必要のため、保守稼働が必要となる。
これはユーザ側の稼動を増やす結果となり、ＡＰの実質的な利用性を狭めることになる。
それにより、該当ＡＰ及び、機能的に関連している他のＡＰに対する処理中断時間をも長期化させることとなり、結果としてシステム運用そのものにおいて、長期間にわたる中断を発生させる可能性がある。
【０００４】
【特許文献１】
特開２００２−３４２１０７号公報
【０００５】
【発明が解決しようとする課題】
上述したように、従来の方式においては、異常発生時の対応についてシステムに及ぼす影響が懸念されている。その具体例を図１１に示す。この図１１に示すＡＰ１をパッチ対象プロセスとする。
手順として、ユーザ側でプロセスの停止（旧版のＡＰ）、及びプロセスの起動（新版のＡＰ）を実施するが、この過程において異常が発生した場合、復旧処理をユーザ側で行う。
【０００６】
このため、ユーザは、処理実施中の詳細状況を常に把握しておき、異常発生時には迅速な復旧処理の実施を行わなければならない。
しかしながら、上述したＡＰ更新作業の自動化の実現については困難であり、システム運用に悪影響を及ぼす結果となっている。
また、システム運用の都合上、ユーザによりあらかじめ指定されたパッチ処理実施開始時間に、ＡＰの変更が必要であっても、上述したように処理実施タイミングにユーザが直接オペレーションを行わなければならず、システムの柔軟性に欠けている。
【０００７】
本発明においては、まず、処理の対象となるプロセスの種類を問わず、処理実施において、システム運用に及ぼす影響の極小化及び、処理実施後のシステム安定化を実現することにより、ユーザ側の稼動軽減を目的としている。
そして、本発明は、必要最低限範囲において、システム内機能の停止による処理を実施し、異常が発生した場合における適切な状態への復旧処理を行い、これらの処理を自動化させることにより、パッチ処理の柔軟性の向上及び、システム全体の運用安定化を実現させる、オンラインパッチ処理方法を提供することを目的とする。
【０００８】
【課題を解決するための手段】
本発明によるオンラインパッチ処理方法は、サーバにて実行されているアプリケーションプロセスのオンラインパッチ処理方法において、管理手段（管理プロセス１）が対象プロセスの状態が実行中であるか否かの判定を行い、実行中であれば、一旦、対象プロセスを停止させた後に、対象プロセス実行ファイルの入れ替えを実施し、完了後に再び対象プロセスを起動する過程を有することを特徴とする。
ここで、管理手段は、分散サーバシステムを構成する他のサーバに対して、パッチ処理を行う対象プロセスの情報を通知し、また他のサーバからのパッチ処理の処理状況を受信し、システム全体のパッチ処理の管理を行い、パッチ処理完了の同期をとり、内部完了情報の記載の変更を行う。
【０００９】
また、本発明によるオンラインパッチ処理方法は、オンラインパッチ処理完了後に、時刻管理手段が一定の安定性監視時間を設定し、前記管理手段がこの安定性監視時間内に、オンラインパッチ対象プロセスに異常終了が発生したことを検知した場合、旧版の該当プロセス実行ファイルにて同プロセスの再起動することを特徴とする請求項１記載のオンラインパッチ処理方法。
【００１０】
本発明によるオンラインパッチ処理方法は、オンラインパッチ処理の実行時に、該当サーバのコンソールから、必要情報を付与して処理実施要求用コマンドを実行することにより、オンラインパッチ処理の実行を受付け、前記必要情報でユーザが任意に設定した処理実施開始時間に基づいて、オンラインパッチ処理を開始することを特徴とする。
【００１１】
本発明によるサーバは、内部で実行されているアプリケーションプロセスのオンラインパッチ処理方法において、対象プロセスの状態が実行中であるか否かの判定を行い、実行中であれば、一旦、対象プロセスを停止させた後に、対象プロセス実行ファイルの入れ替えを実施し、完了後に再び対象プロセスを起動する管理手段を有することを特徴とする。
【００１２】
本発明によるサーバは、パッチ処理完了後に一定の安定性監視時間が経過したか否かを管理する時刻管理手段を有し、前記管理手段が前記安定性監視時間内にてパッチ対象プロセスに異常終了が発生した場合、旧版の該当プロセス実行ファイルにて同プロセスの再起動することを特徴とする請求項４記載のサーバ。
【００１３】
本発明によるサーバは、前記管理手段が、オンラインパッチ処理の実行時に、該当サーバのコンソールから、必要情報を付与して処理実施要求用コマンドを実行することにより、オンラインパッチ処理の実行を受付け、前記時刻管理手段に設定された、前記必要情報においてユーザにより任意に指定された処理実施開始時間に、オンラインパッチ処理を開始することを特徴とする。
【００１４】
本発明によるサーバは、サーバにて実行されているアプリケーションプロセスのオンラインパッチ処理方法をコンピュータに実行させるプログラムであり、
管理手段が対象プロセスの状態が実行中であるか否かの判定を行い、実行中であれば、一旦、対象プロセスを停止させた後に、対象プロセス実行ファイルの入れ替えを実施し、完了後に再び対象プロセスを起動する処理を有することを特徴とするコンピュータにより実行可能なプログラム。
【００１５】
本発明によるコンピュータにより実行可能なプログラムは、オンラインパッチ処理完了後に、時刻管理手段が一定の安定性監視時間を設定し、前記管理手段がこの安定性監視時間内に、オンラインパッチ対象プロセスに異常終了が発生したことを検知した場合、旧版の該当プロセス実行ファイルにて同プロセスの再起動することを特徴とする。
【００１６】
本発明によるコンピュータにより実行可能なプログラムは、オンラインパッチ処理の実行時に、該当サーバのコンソールから、必要情報を付与して処理実施要求用コマンドを実行することにより、オンラインパッチ処理の実行を受付け、前記必要情報でユーザが任意に設定した処理実施開始時間に基づいて、オンラインパッチ処理を開始することを特徴とする請求項７または請求項８に記載のコンピュータにより実行可能なプログラム。
【００１７】
本発明は、上述の構成により、１台もしくは複数サーバ構成で運用されている分散サーバシステムにおける、ＡＰ（アプリケーションプロセス、以下プロセス）のオンラインパッチ処理において、システム内の複数のサーバ上において動作している同一のプロセスのプログラムファイル（プロセスを実行するプログラムが記載されたプロセス実行ファイル、すなわち更新を行う対象プロセスのプロセス実行ファイル）を、新しいプログラムファイルに更新する際、システム全体を中断させること無く実施可能であることを特徴とする。
また、本発明は、オンラインパッチ処理において、プロセスの起動停止を制御するために用いるファイルを新しいファイルに更新する際、システム全体を中断させること無く実施可能である。
さらに、本発明は、オンラインパッチ処理において、システムの運用上、常駐して実行されているプロセスもしくは、ユーザのニーズにより起動された非常駐プロセスであるプロセス起動種別にかかわらずシステム全体を中断させること無く、パッチ処理が実施可能である。
【００１８】
また、本発明は、１台もしくは複数サーバ構成で運用されている分散サーバシステムにおける、ＡＰ（アプリケーションプロセス）のオンラインパッチ処理方式において、システム内の複数のサーバ上において動作している同一のプロセスを新しいプログラムファイルに更新する際、システム全体を中断させること無く実施可能である。
さらに、本発明は、前述のオンラインパッチ処理において、プロセスの起動停止を制御するために用いるファイルを新しいファイルに更新する際、システム全体を中断させること無く実施可能である。
【００１９】
加えて本発明は、上述の構成により、単独サーバもしくは複数サーバ構成で運用されている分散サーバシステムにおける、オンラインパッチ処理において、各サーバ上で対象プロセスが複数起動されているケースや、プロセスの起動及び停止の際に、付与されるパラメタに変更が生ずるケースにおいても、システム運用上、常駐して実行されているプロセスもしくは、ユーザのニーズにより起動された非常駐プロセスであるか、その種類にかかわらず、システム全体を中断させることなく処理の実施が可能である。
【００２０】
【発明の実施の形態】
以下、本発明の一実施形態によるオンラインパッチ処理の機能を有するサーバ（単独サーバもしくは複数サーバ構成で運用されている分散サーバシステム）の構成例及び動作例を図面を参照して説明する。ここで、本発明のオンラインパッチ処理においては、パッチ処理の実行指示の方法を、サーバの管理プロセスヘの処理要求用コマンドの実行により行う形式とする。また、管理手段及び時間管理手段はコンピュータ処理システムにおいて、コンピュータがプログラムを実行することにより実現するプロセス、またはコンピュータが制御するハードウェアのいずれかにより実現されるものである。一実施形態においては、コンピュータがプログラムを実行することにより実現するプロセスとして説明する。
【００２１】
ここで、入力情報例について、図１の概念図を参照して説明する。ユーザは、パッチ処理を実行するコマンド入力時に、パッチ処理に必要な情報をサーバの入力装置（例えば、キーボードなど）から入力して実施する。
このとき、ユーザは、即時にパッチ処理を実行する時、更新用ＳＨＥＬＬ名、復旧用ＳＨＥＬＬ名、及び、パッチ対象となるサーバ（ホスト）名を指定し、また、パッチ処理を指定した時刻において実行するとき、上述した即時実行時の各種情報に加え、指定時刻情報の入力を行う。
ここで、更新用ＳＨＥＬＬ名は、対象プロセスを実行させているプロセス実行ファイルに対するリンクを、新しいプロセス実行ファイルに変更する（張り替える）処理を行うＳＨＥＬＬの名称であり、復旧用ＳＨＥＬＬ名は、上記変更後のＡＰの処理に異常が発生した場合等、変更後の、すなわち新版のプロセス実行ファイルに対するリンクを、変更前の旧版のプロセス実行ファイルに変更する処理を行うＳＨＥＬＬの名称である。
【００２２】
次に、オンラインパッチ処理の実現方法における、処理全体の概要を図２に示す。
まず、ユーザはパッチ処理の対象となる新ファイルの配置を事前に行い、サーバ（以下、本発明において、サーバと言う場合、単独サーバもしくは複数サーバ構成で運用されている分散サーバシステムにおけるサーバを示している）に対して図１の説明において記述したコマンドの入力を実施する。
そして、管理プロセス１は要求を受信すると、パッチ処理の開始時刻の指定が行われているか否かの確認を行い、指定がある場合、時刻管理プロセス２（時刻管理手段）に対して時刻設定を行い、時刻管理プロセス２からのタイムアウト通知待ち、すなわち、時刻管理プロセス２からのパッチ処理の開始時刻の通知待ち状態に入る。
【００２３】
また、管理プロセス１は、時刻指定がない場合、または時刻管理プロセス２からタイムアウトの通知を受けた場合に、パッチ処理の対象プロセス（対象プロセスを実行させる対象プロセス実行ファイルに対して）のパッチ処理を開始する。
そして、管理プロセス１は、パッチ対象サーバの指定が自サーバ以外にある場合、該当サーバ、すなわちコマンドに記載されているパッチ処理の対象サーバの管理プロセス１に、パッチ処理の開始の通知を行う。
【００２４】
これにより、パッチ対象サーバの管理プロセス１は、指定された対象プロセスの実行状態の確認を行い、もし停止状態であれば、直ちに指定されたパッチ処理における更新用ＳＨＥＬＬ（更新用プログラム）を実行して、パッチ対象となる対象プロセスのファイル更新を実施する。
一方、上記管理プロセス１は、対象プロセスが起動状態であれば、まずこの対象プロセスを一旦停止させてから、更新用ＳＨＥＬＬを実行して、対象プロセスのファイル更新を行う。
【００２５】
そして、管理プロセス１は、更新用ＳＨＥＬＬの実行完了後に、パッチ処理の対象プロセスの再起動を行う。
この再起動処理の完了をもってパッチ処理を完了とする。なお、パッチ処理における各処理過程における状態は、管理プロセス１側において随時、記憶部に記憶される内部管理情報の更新及び、ログ出力として管理が行われる。
【００２６】
次に、オンラインパッチ処理を即時実行する場合の具体的な処理シーケンスを図３に示す。
ユーザのコマンド入力処理の実施により、管理プロセス１は、サーバを介してオンラインパッチ処理の要求を受信する。
そして、この管理プロセス１は、自身がサーバ内の記憶部にて管理する内部管理情報に対して、パッチ処理の対象プロセスの関連情報の初期登録を行う。
次に、管理プロセス１は、自サーバ以外の指定サーバの管理プロセス１に対してチ処理実施の通知を行い、「パッチ処理開始」のログ出力を行う。
【００２７】
そして、管理プロセス１は、パッチ処理の対象となる対象プロセスの実行状態について、自サーバの記憶部にて管理されている実行状態情報を参照、すなわち、対象プロセスが実行中であるか否かの確認を行う。
このとき、管理プロセス１は、対象プロセスが実行中状態であった場合、同対象プロセスに対する状態監視の停止及び、プロセスの停止処理を行う。
この処理に関しては、記憶部内の内部管理情報に「対象プロセス停止完了」と登録更新を行い、同内部管理情報のログ出力も行う。
【００２８】
一方、管理プロセス１は、対象プロセスが実行中状態でない場合、もしくは、パッチ処理の対象プロセスが管理プロセス１の管理外であった場合、この対象プロセスの停止処理は行わない。
そして、管理プロセス１は、指定された更新用ＳＨＥＬＬを実行、パッチ対象となる対象ファイル（対象プロセスのプロセス実行ファイル）の更新を行う。
この後、対象となるプロセスが管理プロセス１の管理内であり、パッチ要求受信時に起動中状態でなかった場合、もしくは、管理プロセス１の管理外であった場合は、他サーバの管理プロセス３に対してパッチ処理完了通知を行い、内部管理情報に「パッチ処理完了」と登録更新を行う。
【００２９】
そして、管理プロセス１は、パッチ処理を行った対象プロセスが管理内であり、パッチ要求受信時に起動中状態であった場合は、この内部管理情報に「対象プロセス再起動」と登録更新を行い、一旦停止されていた対象プロセスのパッチ処理後のプロセス実行ファイルの再起動処理及び、状態監視の再開を行う。
この場合、管理プロセス１は、対象プロセスの再起動完了後に、一定時間の安定性監視を実施する為、時刻管理プロセス２に対して安定性監視時間の時刻設定を行う。
【００３０】
そして、管理プロセス１は、時刻管理プロセス２から、上記安定性監視時間が経過したことを示すタイムアウト通知を受信すると、他サーバの管理プロセス３に対してパッチ処理完了通知を行い、内部管理情報に「パッチ処理完了」と登録更新を行う。
また、管理プロセス１は、他サーバの管理プロセス３からのパッチ処理完了通知を受信して、全てのパッチ対象サーバにおいて処理が完了したことを認識した時点で、内部管理情報のクリア及び、「パッチ処理完了」のログ出力を行い、パッチ処理を完了とする。
【００３１】
また、管理プロセス１は、時刻管理プロセス２から、上記安定性監視時間が経過したことを示すタイムアウト通知を受信前に、パッチ処理終了後の対象プロセスに異常が発生したことを検出すると、パッチ処理を行った対象プロセス（新版）のプロセス実行ファイルを停止し、パッチ処理を行う前の対象プロセス（旧版）のプロセス実行ファイルを起動し、内部管理情報に「新版にエラー発生」と登録更新を行う。
【００３２】
次に、オンラインパッチ処理の開始時刻指定による実行時の具体的な処理シーケンスを図４に示す。
ユーザのコマンド入力処理の実施により、管理プロセス１は、サーバを介してオンラインパッチ処理の要求を受信する。
そして、この管理プロセス１は、自身がサーバの記憶部において記憶し、管理する内部管理情報に対して、パッチ処理の対象プロセスの関連情報の初期登録を行う。
ここで、管理プロセス１は、関連情報に開始時刻の指定があることを検出すると、この指定された開始時刻情報について、時刻管理プロセス２に対して時刻設定を行い、時刻管理プロセス２からのタイムアウト通知まで待ち状態に入る。
【００３３】
次に、管理プロセス１は、パッチ処理の開始時刻となると、時刻管理プロセス２から指定時刻に対するタイムアウト通知を受信する。
そして、管理プロセス１は、上記タイムアウト通知を受信すると、「パッチ処理開始」のログ出力を行い、自サーバ以外の指定サーバ、すなわち他サーバの管理プロセス３に対して、パッチ処理実施の通知の出力を行わせる。
次に、管理プロセス１は、パッチの対象となるプロセスの実行状態について、自サーバにて管理されている実行状態情報を参照し確認する。
【００３４】
そして、管理プロセス１は、パッチ処理の対象となる対象プロセスの実行状態について、自サーバにて管理されている実行状態情報を参照、すなわち、対象プロセスが実行中であるか否かの確認を行う。
このとき、管理プロセス１は、対象プロセスが実行中状態であった場合、同対象プロセスに対する状態監視の停止及び、プロセスの停止処理を行う。
管理プロセス１は、この処理に関して、記憶部の内部管理情報に「対象プロセス停止完了」と登録更新を行い、同内部管理情報のログ出力も行う。
【００３５】
一方、管理プロセス１は、対象プロセスが実行中状態でない場合、もしくは、パッチ処理の対象プロセスが管理プロセス１の管理外であった場合、この対象プロセスの停止処理は行わない。
そして、管理プロセス１は、指定された更新用ＳＨＥＬＬを実行、パッチ対象となる対象ファイルの更新を行う。
この後、対象となるプロセスが管理プロセス１の管理内であり、パッチ要求受信時に起動中状態でなかった場合、もしくは、管理プロセス１の管理外であった場合は、他サーバの管理プロセス３に対してパッチ処理完了通知を行い、内部管理情報に「パッチ処理完了」と登録更新を行う。
【００３６】
そして、管理プロセス１は、パッチ処理を行った対象プロセスが管理内であり、パッチ要求受信時に起動中状態であった場合は、この内部管理情報に「対象プロセス再起動」と登録更新を行い、一旦停止されていた対象プロセスのパッチ処理後のプロセス実行ファイルの再起動処理及び、状態監視の再開を行う。
この場合、管理プロセス１は、対象プロセスの再起動完了後に、一定時間の安定性監視を実施する為、時刻管理プロセス２に対して安定性監視時間の時刻設定を行う。
【００３７】
そして、管理プロセス１は、時刻管理プロセス２から、上記安定性監視時間が経過したことを示すタイムアウト通知を受信すると、他サーバの管理プロセス３に対してパッチ処理完了通知を行い、内部管理情報に「パッチ処理完了」と登録更新を行う。
また、管理プロセス１は、他サーバの管理プロセス３からのパッチ処理完了通知を受信して、全てのパッチ対象サーバにおいて処理が完了したことを認識した時点で、内部管理情報のクリア及び、「パッチ処理完了」のログ出力を行い、パッチ処理を完了とする。
【００３８】
また、管理プロセス１は、時刻管理プロセス２から、上記安定性監視時間が経過したことを示すタイムアウト通知を受信前に、パッチ処理終了後の対象プロセスに異常が発生したことを検出すると、パッチ処理を行った対象プロセス（新版）のプロセス実行ファイルを停止し、パッチ処理を行う前の対象プロセス（旧版）のプロセス実行ファイルを起動し、内部管理情報に「新版にエラー発生」と登録更新を行う。
【００３９】
次に、オンラインパッチ処理実施中に異常が発生した場合の処理シーケンスを図５、図６に示す。図３の説明で上述したオンラインパッチ処理において、パッチ処理の対象プロセスが、管理プロセス１管理内であり、パッチ要求受信時に起動中状態であった場合で、安定性監視中にパッチ対象プロセスの故障が発生したとする。
このとき、管理プロセス１は、故障発生プロセスについて、内部管理情報のチェックを行い、パッチ処理実施中であることを確認すると、「パッチ処理失敗」のログ出力を行い、自サーバ以外にパッチ対象となるサーバがある場合、他のパッチ対象サーバの管理プロセス１に対して、異常発生の通知を行う。
【００４０】
次に、管理プロセス１はパッチ処理の対象ファイルの復旧処理実施の為に、現在起動処理中の対象プロセスに対する状態監視の停止及び、プロセスの停止処理を行う。
この処理に関しては、内部管理情報に「対象プロセス停止完了」と登録更新を行い、同情報のログ出力も行う。
そして、管理プロセス１は、指定された復旧用ＳＨＥＬＬを実行、パッチ対象となるファイルの復旧を行う。
【００４１】
この後、内部管理情報に「対象プロセス旧版再起動」と登録更新を行い、対象プロセスの再起動処理及び、状態監視の再開を行う。
また、管理プロセス１は、復旧処理による再起動の場合、再起動完了後の他サーバの管理プロセス３ヘの通知及び、再起動された旧版の対象プロセスの安定性監視は行わない。
そして、管理プロセス１は、内部管理情報のクリアを行い、エラーとしてパッチ処理完了とする。
【００４２】
次に、オンラインパッチ時刻指定実行時において、指定時刻前にサーバ故障等によりサーバ停止が発生したケースの、処理シーケンスを図７、図８に示す。
管理プロセス１は、サーバ故障等の原因のサーバ停止から、サーバ復旧によるサーバ起動時に内部管理情報の参照を行う。
そして、管理プロセス１は、時刻管理システムから、パッチ処理開始のタイムアウト通知待ち状態である情報を確認すると、現時刻と指定時刻について前後の比較を行う。
【００４３】
このとき、管理プロセス１は、もし現時点での時刻が指定された開始時刻後であることを検出すると、パッチ処理失敗として、内部管理情報のクリアを行い、パッチ処理の更新用ＳＨＥＬＬを終了する。
一方、管理プロセス１は、もし現時点での時刻が開始時刻前であることを検出すると、時刻管理プロセス２に対して、パッチ処理の開示時刻の再設定を行い、時刻管理システムからのタイムアウト通知（パッチ処理開始時刻を示す）まで待ち状態に入る。
【００４４】
そして、管理プロセス１は、パッチ処理の開始時刻となった時点で、指定時刻になったことにより、時刻管理プロセス２からタイムアウト通知が行われる。
そして、管理プロセス１は、上記タイムアウト通知を受信すると、「パッチ処理開始」のログ出力を行い、自サーバ以外の指定サーバ、すなわち他サーバの管理プロセス３に対して、パッチ処理実施の通知の出力を行わせる。
次に、管理プロセス１は、パッチの対象となるプロセスの実行状態について、自サーバにて管理されている実行状態情報を参照し確認する。
【００４５】
そして、管理プロセス１は、パッチ処理の対象となる対象プロセスの実行状態について、自サーバにて管理されている実行状態情報を参照、すなわち、対象プロセスが実行中であるか否かの確認を行う。
このとき、管理プロセス１は、対象プロセスが実行中状態であった場合、同対象プロセスに対する状態監視の停止及び、プロセスの停止処理を行う。
この処理に関しては、内部管理情報に「対象プロセス停止完了」と登録更新を行い、同内部管理情報のログ出力も行う。
【００４６】
一方、管理プロセス１は、対象プロセスが実行中状態でない場合、もしくは、パッチ処理の対象プロセスが管理プロセス１の管理外であった場合、この対象プロセスの停止処理は行わない。
そして、管理プロセス１は、指定された更新用ＳＨＥＬＬを実行、パッチ対象となる対象ファイルの更新を行う。
この後、対象となるプロセスが管理プロセス１の管理内であり、パッチ要求受信時に起動中状態でなかった場合、もしくは、管理プロセス１の管理外であった場合は、他サーバの管理プロセス３に対してパッチ処理完了通知を行い、内部管理情報に「パッチ処理完了」と登録更新を行う。
【００４７】
そして、管理プロセス１は、パッチ処理を行った対象プロセスが管理内であり、パッチ要求受信時に起動中状態であった場合は、この内部管理情報に「対象プロセス再起動」と登録更新を行い、一旦停止されていた対象プロセスの再起動処理及び、状態監視の再開を行う。
この場合、管理プロセス１は、対象プロセスの再起動完了後に、一定時間の安定性監視を実施する為、時刻管理プロセス２に対して安定性監視時間の時刻設定を行う。
【００４８】
そして、管理プロセス１は、時刻管理プロセス２から、上記安定性監視時間が経過したことを示すタイムアウト通知を受信すると、他サーバの管理プロセス３に対してパッチ処理完了通知を行い、内部管理情報に「パッチ処理完了」と登録更新を行う。
また、管理プロセス１は、他サーバの管理プロセス３からのパッチ処理完了通知を受信して、全てのパッチ対象サーバにおいて処理が完了したことを認識した時点で、内部管理情報のクリア及び、「パッチ処理完了」のログ出力を行い、パッチ処理を完了とする。
【００４９】
次に、オンラインパッチ処理実施時に、対象サーバが故障していた場合のパッチ処理のシーケンスを図９に示す。
ユーザのコマンド入力処理の実施により、管理プロセス１は、サーバを介してオンラインパッチ処理の要求を受信する。
そして、管理プロセス１は、ユーザのコマンド実施により、オンラインパッチ処理要求を受信すると、サーバ運用状態情報からパッチ処理の対象である指定サーバの状態の確認を行う。
このとき、管理用プロセスは、上記対象サーバが非運用状態であることを確認すると、「オンラインパッチ実施不可」のログ出力を行い、エラーとして処理を終了する。
【００５０】
次に、オンラインパッチ処理実施中に、他サーバにおいてオンラインパッチ処理失敗が発生した場合の処理シーケンスを図１０に示す。
管理プロセス１は、オンラインパッチ処理の実施中において、他サーバの管理プロセス３よりオンラインパッチ処理失敗の通知を受信したとする。このとき、サーバは、他のサーバにおいてオンラインパッチ処理が失敗したこと（すなわち、他のサーバにおいては旧版の対象プロセスを継続して使用する通知）を検出すると、同一の対象プロセスを使用するため、自身の対象プロセスを以下のように旧版の対象プロセスに戻して再起動することとなる。
このとき、管理プロセス１は内部管理情報のチェックを行い、自サーバ内にてパッチ処理実施中であることの確認を行い、「パッチ処理失敗」のログ出力を行う。
【００５１】
次に、管理プロセス１は、パッチ処理の対象ファイルの復旧処理実施の為に、現在起動処理中の対象プロセスに対する状態監視の停止及び、プロセスの停止処理を行う。
管理プロセス１は、この処理に関して、内部管理情報に「対象プロセス停止完了」と登録更新を行い、同情報のログ出力も行う。
そして、管理プロセス１は、指定された復旧用ＳＨＥＬＬを実行、パッチ対象となるファイルの復旧を行う。
この後、管理プロセス１は、内部管理情報に「対象プロセス旧版再起動」と登録更新を行い、対象プロセスの再起動処理及び、状態監視の再開を行うとともに、「対象プロセス起動」のログ出力を行う。
このとき、管理プロセス１は、復旧処理による再起動の場合、再起動完了後の他サーバ管理プロセス１ヘの通知及び、安定性監視は行わず、内部管理情報のクリアを行い、エラーとしてパッチ処理完了とする。
【００５２】
また、図２における管理プロセス１，時刻管理プロセス２を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによりパッチ処理の管理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可般媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【００５３】
以上、この発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【００５４】
【発明の効果】
以上説明したように、本発明によるパッチ処理方法及びサーバによれば、下記の効果を得ることができる。
・システム内の複数のサーバ上において操作している同一のＡＰを、新しいプログラムファイルに更新する際、システム全体を中断させることなく、パッチ処理を実施させることができるため、複数のサーバにおいてパッチ処理の対象となるプロセス適用範囲を拡大することができる。
【００５５】
・管理手段がパッチ処理の異常発生を検出したとき、旧版のプログラムによりプロセスを再起動するため、システムを停止させずに、迅速且つ正確な救済処理により、システム安定性の向上させることができる。
・時刻管理手段に対して、パッチ処理の開始時間を設定して、対応する時間となると管理手段がパッチ処理を実行するため、ユーザの都合のよい任意の時間帯にパッチ処理を自動的に行うことが可能となる。
【図面の簡単な説明】
【図１】パッチ処理実施方法を説明するコマンドの一例を示す概念図である。
【図２】本発明における、パッチ処理方法を説明する概要図である。
【図３】パッチ処理即時実行時のシーケンス図である。
【図４】パッチ処理時刻指定実行時のシーケンス図である。
【図５】パッチ処理失敗時の復旧処理シーケンス図である。
【図６】パッチ処理失敗時の復旧処理シーケンス図である。
【図７】パッチ処理時刻指定実行時（サーバ一時停止）のシーケンス図である。
【図８】パッチ処理時刻指定実行時（サーバ一時停止）のシーケンス図である。
【図９】パッチ処理実行時（サーバ故障時実行時）のシーケンス図である。
【図１０】パッチ処理失敗時（他サーバ失敗通知）のシーケンス図である。
【図１１】従来のパッチ処理方式を説明する概念図である。
【符号の説明】
１  管理プロセス
２  時刻管理プロセス
３  他のサーバの管理プロセス
【図１】
2005043960.tif 000003
【図２】
2005043960.tif 000004
【図３】
2005043960.tif 000005
【図４】
2005043960.tif 000006
【図５】
2005043960.tif 000007
【図６】
2005043960.tif 000008
【図７】
2005043960.tif 000009
【図８】
2005043960.tif 000010
【図９】
2005043960.tif 000011
【図１０】
2005043960.tif 000012
【図１１】
2005043960.tif 000013