目次に戻る バッチ起動

オンラインのNOMADを使ったWebアプリケーションのスケジュールが停止したあとに、指定のバッチを自動起動させます。
この機能はDSM Ver5.0以降で追加されました。

バッチ起動
バッチ起動とは、NOMADを使用したWebアプリケーション(アプリケーションIDまたはアプリケーション名で判別)のスケジュールが停止したときに指定のバッチ(スクリプト・プログラム)を立ち上げる機能のことです。

例えば、指定のWebアプリケーションが08:40から16:30に運用する設定がされていて、DsmSrvCheckerの監視間隔が180秒(CheckerTimer=180)の場合、スケジュールの運用が16:30に停止した際は、次にDsmSrvCheckerがチェックする16:31にバッチを自動的に起動させます。
下図のように、16:31になってもWebアプリケーションが動作している場合は、Webタスクが終了するまで待ち、Webタスクが終了したことをDsmSrvCheckerが判定した段階でバッチを起動させます(「dsm.ini」ファイルの「KillSessionOnKeep=0」の場合)。


「DsmSrvChecker」は、
Webアプリケーションのスケジュールが停止状態(即時停止による停止ではない)、
すでに実行されたNOMADプロシージャが終了している、
セッションが保持されていない、
の3つが満たされている場合にWebアプリケーションが終了したと判断し、バッチを起動します。

下図のように、CheckerTimerに設定された値によっては、チェックしてから次にチェックするまでの間にWebアプリケーションのスケジュールが「停止」→「稼働」→「停止」となった場合、DsmSrvCheckerがWebアプリケーションの開始を判定できませんので、指定されたバッチは起動されません。


なお、バッチ起動時は、Webアプリケーションのスケジュール設定(「dsm.ini」の[WKSCH]セクションの「WkSch_xxxx」の指定)を必ず行うようにしてください。


バッチ起動の設定


バッチ起動の設定は、「dsm.ini」ファイルの[BATCH]セクション下で設定します。
※DSMで管理できる外部アプリケーションの数は、設定ファイル「dsm.ini」の
[DSMMEXT]セクションのMaxExtAppの値までです。


バッチ起動の設定例


Webアプリケーション「App1」のスケジュール停止後に「btest.bat -d1」を起動する、
Webアプリケーション「App2」のスケジュール停止後に「mytest.bat -ss」を起動する例を説明します。

[CHECK]
CheckerTimer=60

[WKSCH]
WkSch_App1=9.15-18.30,1-5
WkSch_App2=9-16,1-5

[BATCH]
BatchAppList=MyBatchApp1,MyBatchApp2
Bch_MyBatchApp1=App1 > Stask1
Bch_MyBatchApp2=App2 > Stask2
Cmd_Stask1=d:\batchapp\btest.bat -d1
Cmd_Stask2=#d:\batchapp#d:\batchapp\mytest.bat -ss

「App1」は、月曜から金曜までの09:15-18:30に運用する、というスケジュールになっています。
このスケジュールが停止状態になったとき(18:31以降)、Stask1のバッチ(d:\batchapp\btest.bat -d1)を起動させます。
カレントディレクトリは、DSMSRVのあるディレクトリになります。

「App2」は、月曜から金曜までの09:00-16:59に運用する、というスケジュールになっています。
このスケジュールが停止状態になったとき(17:00以降)、Stask2のバッチ(d:\batchapp\mytest.bat -ss)を起動させます。
カレントディレクトリは「d:\batchapp」になります。



Webアプリケーション「App1」のスケジュール停止後に「btest -d1」を起動する、
Webアプリケーション「App2」のスケジュール停止後に「mytest -ss」を起動する例を説明します。

[CHECK]
CheckerTimer=60

[WKSCH]
WkSch_App1=9.15-18.30,1-5
WkSch_App2=9-16,1-5

[BATCH]
BatchAppList=MyBatchApp1,MyBatchApp2
Bch_MyBatchApp1=App1 > Stask1
Bch_MyBatchApp2=App2 > Stask2
Cmd_Stask1=/batchapp/btest -d1
Cmd_Stask2=#/batchapp#/batchapp/mytest -ss

「App1」は、月曜から金曜までの09:15-18:30に運用する、というスケジュールになっています。
このスケジュールが停止状態になったとき(18:31以降)、Stask1のバッチ(/batchapp/btest -d1)を起動させます。
カレントディレクトリは、DSMSRVのあるディレクトリになります。

「App2」は、月曜から金曜までの09:00-16:59に運用する、というスケジュールになっています。
このスケジュールが停止状態になったとき(17:00以降)、Stask2のバッチ(/batchapp/mytest -ss)を起動させます。
カレントディレクトリは「/batchapp」になります。