|
NISMAIL停止時に稀にNISMAILが停止しないままとなる事があります。
この時、Version7.0で新たに追加された子プロセス停止時に出力されるメッセージ
(メッセージ番号:00022)が出力されません。
NISMAILの停止処理が子プロセスの停止待ちのまま止まってしまいます。
NISMAILの停止時には、NISMAILの親プロセス(DMMNG)が各子プロセスへの停止
要求を行います。
子プロセスの停止は以下の順番で行います。
親プロセス(DMMNG)
→→→→→→→状態変更 →→→→→→→→→状態変更
(実行中→停止要求中) (停止要求中→正常終了)
↓停止要求 ↑終了通知
終了開始 →→→→→→→→→→→→終了
子プロセス(FMM 等)
①親プロセスが停止メッセージを子プロセスに送信します。
②送信後、親プロセス側で状態ステータスを「実行中」→「停止要求中」
に変更します。
③停止メッセージを受けた子プロセスは、終了処理を実行し、
子プロセスを終了します。
④子プロセスが終了した事をOSが認識し、起動した親プロセスにSIGCHLD
(シグナル)の割り込み処理を通知します。
⑤SIGCHLDのシグナル割り込み処理で状態ステータスをチェックし、
停止要求中の場合は正常に終了したと判断し状態ステータスを
「停止要求中」→「正常終了」に変更します。
子プロセス停止のタイミングが想定よりも早く、状態変更(実行中→停止要求中)前に停止すると、
親プロセスでは終了通知の受信体制となっておらず終了通知が受け付けられません。
親プロセスは、停止要求中への状態変更となり終了通知のシグナル待ちのままとなり
NISMAILが停止処理が停滞した状態となります。
親プロセス(DMMNG)
→→→→→→→→→→→→→状態変更
(実行中→停止要求中)
↓停止要求 ↑終了通知(実行中の状態では受け付けない)
終了開始 →→→終了
子プロセス(FMM等)
なお、NISMAIL停止処理中に親プロセスで状態変更を行う前に子プロセス
の終了通知を受信した際には『メッセージ番号:00004』が出力されます。
普通は親プロセスの状態変更より先に子プロセスが終了する事は無く、
現象としては非常に稀にしか発生しないものと考えております。
windows系のNISMAIL、NISMAIL/ADの場合:
OS標準のタスクマネージャやtasklistコマンドにより残っているNISMAILプロセスを確認頂き、
OS標準のタスクマネージャやtaskkillコマンドにてプロセスを停止願います。
UNIX、Linux系のNISMAIL、NISMAIL/ADの場合:
NISMAIL付属のppコマンドにより残っているNISMAILプロセスを確認頂き、
OS標準のkillコマンドにてプロセスを停止願います。
以下製品について修正物件を用意しておりますので、修正物件申込書にてお申し込みください。
手動でコマンドとして実行する事も可能です。
- NISMAIL/UX(HP-UX版 IPF対応) Version 7.0 Relase 3.0 ~ Version 7.0 Release 4.0
- NISMAIL/Linux(x64版) Version 7.0 Relase 3.0 ~ Version 7.0 Release 4.0
- NISMAIL/NT(x64対応) Version 7.0 Relase 3.0 ~ Version 7.0 Release 4.0
それ以外のバージョンにつきましては、別途相談願います。
弊社ではこの問題は、NISMAILの問題であると認識しております。
この問題は以下のバージョンで修正済みです。
- NISMAIL/UX(HP-UX版 IPF対応) Version 7.0 Release 5.0
- NISMAIL/UX(Solaris64版) Version 7.0 Release 5.0
- NISMAIL/Linux(x64版) Version 7.0 Release 5.0
- NISMAIL/NT(x64対応) Version 7.0 Release 5.0
- NISMAIL/AD(Linux) Version 7.0 Release 5.0
- NISMAIL/AD(Windows) Version 7.0 Release 5.0
|