質問があります。DATASTAGE:DSJOBを使用してさらに多くのインスタンスジョブを並列実行する方法
スクリプト内から同じジョブのインスタンスをさらに並列に実行したい:私はdsjob
のジョブを呼び出すループがあり、オプション "-wait
"と "-jobstatus
"はありません。
スクリプト終了前にジョブを完了したいが、ジョブインスタンスが終了したかどうかを確認する方法がわからない。 私はwaitコマンドを使用しますが、それは適切ではありません。事前に
おかげ
質問があります。DATASTAGE:DSJOBを使用してさらに多くのインスタンスジョブを並列実行する方法
スクリプト内から同じジョブのインスタンスをさらに並列に実行したい:私はdsjob
のジョブを呼び出すループがあり、オプション "-wait
"と "-jobstatus
"はありません。
スクリプト終了前にジョブを完了したいが、ジョブインスタンスが終了したかどうかを確認する方法がわからない。 私はwaitコマンドを使用しますが、それは適切ではありません。事前に
おかげ
まず、あなたは仕事がコンパイルオプション選択し、「複数インスタンスを許可」を保証すべきです。
第二:
#!/bin/bash
. /home/dsadm/.bash_profile
INVOCATION=(1 2 3 4 5)
cd $DSHOME/bin
for id in ${INVOCATION[@]}
do
./dsjob -run -mode NORMAL -wait test demo.$id
done
プロジェクト - テスト
仕事 - デモ
ます$ id - 呼び出しID
シェルザ・スクリプトの2行目:環境パスを保証働ける。
-waitを指定せずにジョブを実行し、dsjob -jobinfoを実行して出力を解析し、ジョブステータスが1または2であることを確認します。すべてのジョブがこのステータスを返すと、すべて終了します。
実際に実行を開始する前にジョブのステータスを確認して、古いステータスを取得することがあります。ジョブを実行する前に、まずジョブインスタンスをリセットし、「実行していない」状態を待つことでこれを解決できます。
例、あなたのループの後、待機せずに、ループ内のジョブまたはジョブステータスオプションdsjobコマンドでジョブの状態を確認
を
を起動します - dsjob -jobinfoプロジェクト名ジョブ名。 invocationid
これにもう1つのループをコーディングしてsleep com異なるinvoaction-idの助けを借り
と同時に、このマルチインスタンスジョブを起動するには、ジョブシーケンスを作成するために雇用が、その良いの状況につきとしてMANDその
書き込みの下であなたの更なるロジック
これらは同じプロセスで
の場合、別のシーケンスを作成したり、直接diffeを作成するシーケンスのジョブを作成しますこれらのジョブを起動と同時に同時に起動するスクリプトをレンタルします。
ベストオプションは
例をパラメータ入力コマンドラインごとにそれぞれのものが作成されるか、または値を取得取得される標準一般化するスクリプトを作成する - ジョブ名+呼び出し-ID
に基づいてログファイルを次に、異なるパラメータまたは呼び出しに対して同じスクリプトをスケジュールします。