3.2.8 ユーザサーバプロセスのリフレッシュ機能
scdrsprcコマンドを使用すると,ユーザサーバのオンラインを停止しなくてもユーザサーバプロセスを停止および再起動できます。scdrsprcコマンド実行時にサービス要求実行中のユーザサーバプロセスは,サービス要求が完了したあとに停止および再起動します。
ここでは,ロードモジュールの入れ替え手順,サービス関数の入れ替え手順,および新しいロードモジュールまたはサービス関数での起動確認について説明します。
なお,この機能は,TP1/Extension 1をインストールしていることが前提です。TP1/Extension 1をインストールしていない場合の動作は保証できません。
(1) ロードモジュールの入れ替え手順
scdrsprcコマンドを使用すると,オンラインを停止しなくてもユーザサーバのロードモジュールを入れ替えられます。ロードモジュールの入れ替え手順を,次に示します。
-
該当ユーザサーバの新しいロードモジュールを格納したディレクトリを作成します。
-
prcpathlsコマンドでユーザサーバのサーチパスを確認します。
-
prcpathコマンドで該当ユーザサーバのサーチパスより前に1.で作成したディレクトリを指定します。
-
scdrsprcコマンドを実行します。
(2) サービス関数の入れ替え手順(サービス関数動的ローディング機能使用時)
サービス関数動的ローディング機能を使用している場合,オンラインを停止しなくてもユーザサーバのサービス関数を入れ替えられます。サービス関数の入れ替え手順を,次に示します。
また,UAP共用ライブラリ名だけをユーザサービス定義に指定している場合は,次の手順でもサービス関数を入れ替えられます。
-
変更したいUAP共用ライブラリのサーチパスが示すディレクトリに,UAP共用ライブラリがあることを確認します。
サーチパスに指定したディレクトリ間で,ライブラリ名が重複しないように注意してください。ライブラリ名が重複している場合,正しいライブラリが読み込まれないで別のライブラリが読み込まれることがあります。また,ライブラリ名は,OpenTP1が提供するライブラリ群($DCDIR/lib下)のライブラリ名とも重複しないようにしてください。
-
prcdlpathコマンドを実行して,UAP共用ライブラリのサーチパスを変更します。
プロセスサービス定義のprc_take_over_dlpathオペランドにYを指定すると,OpenTP1の再開始時に,prcdlpathコマンドで設定したサーチパスを引き継げます。ただし,次の場合はパスを引き継ぎません。
-
系切り替えが発生した場合
-
前回のオンライン中にサーチパスの保存に失敗した場合
-
ファイルからのサーチパスの回復に失敗した場合
-
-
scdrsprcコマンドを実行します。
(3) 新しいロードモジュールまたはサービス関数での起動確認
新しいロードモジュールまたはサービス関数での起動を確認するには,OSのシステムコマンドで該当するユーザサーバのプロセス起動時刻を確認し,scdrsprcコマンドの実行時刻と比較してください。
なお,scdrsprcコマンドを使用してサービス関数を入れ替える場合は,ユーザサーバのサービス関数を削除または追加できません。ユーザサーバのサービス関数を削除または追加する場合は,dcsvstopコマンドを使用してユーザサーバを終了したあとに,dcsvstartコマンドを使用してユーザサーバを開始させる必要があります。
scdrsprcコマンドを使用する場合,またはdcsvstopコマンドとdcsvstartコマンドを使用する場合について,ユーザサーバのサービス関数を変更できる範囲を次の表に示します。
実行方法 |
サービス関数の入れ替え |
サービス関数の追加 |
サービス関数の削除 |
---|---|---|---|
scdrsprcコマンドを使用 |
○ |
× |
× |
dcsvstopコマンドとdcsvstartコマンドを使用 |
○ |
○※ |
○ |