4.1.2 バッチジョブを実行する
実行環境からJP1/AJSを使用してJP1/Advanced Shellのバッチジョブ業務を起動する方法について説明します。
JP1/AJSでのバッチジョブ業務の自動化の詳細については,JP1/AJSのマニュアルを参照してください。JP1/Advanced Shellのジョブをジョブネットに定義して実行する方法については,「3.1.1 ジョブネットを定義して実行する」を参照してください。
バッチジョブ業務を自動化することで,コストを削減できるだけでなく,少ない人員で確実にシステムを運用できます。JP1/AJSは,このような定型的なバッチジョブ業務を自動化するための製品です。JP1/AJSは,複雑なバッチジョブ業務の組み合わせの自動化にも対応できます。また,JP1/AJSの運用時にJP1/Advanced Shellを使用することで,次のメリットが得られます。
一時ファイル機能によって,一時的に使用するファイルを割り当てて,ジョブ終了時またはジョブステップ終了時に削除できます。
外部スクリプトの呼び出しによって,ジョブの定義を業務間で共用できます。
ジョブ定義スクリプトに対する変更,追加,または削除によって,柔軟なジョブ定義ができます。
JP1/AJSを使用して,バッチジョブ業務を自動的に実行する場合,次に示す内容を定義する必要があります。
バッチジョブ業務内容と順序
バッチジョブ業務を実行するスケジュールまたはバッチジョブ業務の契機となる事象の登録
JP1/AJSを使用したバッチジョブ業務の自動化の概要を次の図に示します。図中の番号は,そのあとに示す説明の項番と対応しています。
バッチジョブの業務内容と実行順序,および業務スケジュールを登録します。
登録されたスケジュールに従って,バッチジョブ業務が自動的に実行されます。
(1) バッチジョブ業務と実行順序の定義
多くの業務は,決まった時間に定められた順序に従って実行されます。
例えば,売上伝票の集計は,次の順序で実行されます。
データベースからのデータの抽出
データのソート
プリンタ出力
ジョブコントローラのジョブステップとして,1.〜3.の流れをジョブ定義スクリプトファイルに定義することで自動化を実現できますが,12:00にデータベースからデータを抽出するという作業は自動化できません。JP1/Advanced ShellとJP1/AJSでバッチジョブ業務と実行順序の定義を実行するには,業務を構成する一連の流れをジョブコントローラで定義し,それぞれのバッチジョブ業務と実行順序の定義の関係をJP1/AJSの実行順序,または実行時間として定義します。
JP1/AJSだけでもコマンド,アプリケーションプログラム,またはジョブ定義スクリプトなどのそれぞれの作業単位に分解すれば,JP1/Advanced Shell相当のジョブを実現できます。これらをJP1/AJSでもジョブと呼びます。
JP1/Advanced ShellとJP1/AJSでバッチジョブ業務と実行順序を定義する場合には,JP1/AJSではバッチジョブの実行順序をジョブネットで定義します。
JP1/Advanced ShellとJP1/AJSでバッチジョブ業務と実行順序の定義を行う場合のジョブネットを次の図に示します。
- (説明)
JP1/AJSのジョブネットで定義するバッチジョブの実行順序の流れを次に説明します。
バッチジョブAが終了した場合,バッチジョブEを実行します。
バッチジョブAとBが終了した場合,バッチジョブCを実行します。
バッチジョブCが終了した場合,バッチジョブDとGを実行します。
バッチジョブBが終了した場合,バッチジョブFを実行します。
(2) バッチジョブ業務と実行順序の定義スケジュールの定義
複数のバッチジョブ業務と実行順序の定義スケジュールの定義を自動化するには,この定義をいつ実行するかを決めるスケジュールの定義が必要です。
JP1/AJSのスケジュールの定義では,会社の営業日・休業日を設定したカレンダー,実行を開始する日時や実行間隔などを定義します。この定義に基づいて,JP1/AJSが実行予定を決め,その日時になると自動的にJP1/Advanced Shellのジョブ実行を始めます。
(3) バッチジョブ業務を開始する契機を登録する
ファイルの作成またはイベントの発生などをバッチジョブ業務開始の契機として登録できます。登録の結果,決まった時刻にバッチジョブ業務を開始するだけでなく,ファイルの作成またはイベントの発生など何らかの事象が起こった場合にも,バッチジョブ業務が開始できます。