バックグラウンドで起動するジョブについて【UNIX版】
ジョブとしてバックグラウンドで起動するように記述してある場合、バックグラウンドで実行したプログラムの終了を待たずにジョブは終了します。
ジョブの終了の認識について【Windows版】
Systemwalker Operation Managerに登録したアプリケーションだけではなく、そのアプリケーション配下で起動されるすべてのアプリケーションが1つのジョブとして監視されます。そのため、Systemwalker Operation Managerに登録したアプリケーションと、そのアプリケーション配下で起動されるすべてのアプリケーションが終了した時点でジョブが終了したと認識されます。
例えば、Systemwalker Operation Managerに登録したアプリケーションAにより、常駐するアプリケーションBが起動された場合、アプリケーションAが終了してもアプリケーションBが終了するまでは、ジョブが終了したと認識されません。
アプリケーション配下で動作しているプロセスの状態は、mjptreeコマンドで確認できます。詳細は、“Systemwalker Operation Manager リファレンス集”の、“mjptree ジョブのプロセス情報表示コマンド【Windows版】”を参照してください。
例
登録したアプリケーションから起動されるアプリケーションの終了を待ち合わせないようにする場合は、以下の方法を利用してください。
EXECASVR.EXE アプリケーション起動コマンドを利用する
EXECASVR.EXE アプリケーション起動コマンドは、起動したアプリケーションの終了を待ち合わせません。EXECASVR.EXE アプリケーション起動コマンドについては、“Systemwalker Operation Manager リファレンス集”を参照してください。
印刷を行うアプリケーションについて【Windows版】
PowerCOBOL、VisualBASICなどで作成した印刷アプリケーションが、Systemwalker Operation Managerからジョブとして起動される場合で、かつ、プリントマネージャで設定される“標準で使用するプリンタ”を印刷先のプリンタとして採用している場合には、以下の点に注意してください。なお、印刷先のプリンタを選択する方法が、アプリケーションの印刷処理で使用されている開発言語の関数/命令/ステートメント/APIの仕様に依存している場合も含まれます。
“Systemwalker MpMjes”サービスのログオンアカウントでWindowsにローカルログオンしてください。[運用情報の定義]ウィンドウ-[利用機能]シート-[ジョブを所有者の権限で実行する]にチェックがある場合は、ジョブ所有者のユーザーIDでWindows にローカルログオンしてください。さらに、Systemwalker Operation Managerから印刷アプリケーションを起動してください。
アプリケーションでは、プリントマネージャの登録情報“標準で使用するプリンタ”を利用しない関数/命令/ステートメント/APIを使用して印刷するようにしてください。
ネットワークドライブの使用について【Windows版】
Systemwalker Operation Managerから起動するアプリケーションが使用する資源は、すべてローカルドライブに置くことを推奨します。しかし、やむを得ずネットワークドライブの資源を使用する場合の留意点について説明します。
アプリケーションがネットワークパスを参照できるように、UNCパスを使用するようにします。
例えば、ネットワークドライブ“z:”のディレクトリの一覧を表示するジョブがあるとします。このジョブを実行する場合の条件として事前に、“z:”ドライブに対して、コンピュータ名がremote、共有名がshareにネットワーク接続しておきます。この場合、そのジョブのコマンド列におけるUNCパス使用例を以下に示します。
[ドライブzの使用例] cmd.exe /c dir z:\ [UNCパス使用例] cmd.exe /c dir \\remote\share
ドライブ文字の代わりにUNCパスを使用できないアプリケーションの場合は、アプリケーションをバッチファイルから起動するようにして、バッチファイルの先頭と末尾にネットワーク接続/ネットワーク切断するコマンドを追加します。
ネットワーク接続: net use z: \\remote\share ネットワーク切断: net use z: /delete
この場合、このバッチファイルがジョブとして実行している間は、他のジョブが同じドライブ文字(上記の例では、“z:”ドライブ)を別のネットワークパスに割り当てて使用することはできません。
また、他のジョブがネットワーク接続している場合も、これから起動しようとするジョブで同じドライブ文字を割り当てることもできません。
ジョブのカレントディレクトリについて【Windows版】
[運用情報の定義]ウィンドウの[旧互換]シートにおいて、“ジョブ登録時に指定したスクリプトファイルをスプールに複写し、実行する”がチェックされている場合、Systemwalker Operation Managerから起動されたジョブは、以下の場所をカレントディレクトリとして動作します。
Systemwalker Operation Managerインストールディレクトリ |
キュー名:ジョブ投入時のキュー名
ジョブ番号:ジョブ投入時に割り振られた番号
特定のパスをカレントディレクトリとして設定したい場合は、以下のような対処を行ってください。
以下の例に示すバッチファイルを作成し、Systemwalker Operation Managerから起動するようにします。バッチファイルでは、cdコマンドで c:\tempにカレントディレクトリを変更してから、アプリケーションを起動しています。
rem カレントディレクトリを変更します。 |
appl.exe:ユーザアプリケーション
Systemwalker Operation Managerの起動について
Systemwalker Operation Managerの起動を伴うコマンドを実行した場合、Systemwalker Operation Manager/Systemwalker Centric Managerの動作は保証されません。詳細については、“B.5.14 ジョブとして実行してはいけないコマンド”を参照してください。
ジョブをトレースモードで実行する場合について【Windows版】
ジョブをトレースモードで実行する場合、バッチファイルのstartコマンドは使用しないでください。バッチファイルでstartコマンドを発行しても、子プロセスが起動しない場合があります。
startコマンドを利用するには、ジョブオブジェクトモードで実行してください。
“トレースモード”、“ジョブオブジェクトモード”の詳細については、“B.2.10 ジョブプロセスの起動モードについて【Windows版】”を参照してください。