2011-12-14 1 views
0

質問があります。DATASTAGE:DSJOBを使用してさらに多くのインスタンスジョブを並列実行する方法

スクリプト内から同じジョブのインスタンスをさらに並列に実行したい:私はdsjobのジョブを呼び出すループがあり、オプション "-wait"と "-jobstatus"はありません。

スクリプト終了前にジョブを完了したいが、ジョブインスタンスが終了したかどうかを確認する方法がわからない。 私はwaitコマンドを使用しますが、それは適切ではありません。事前に

おかげ

答えて

2

まず、あなたは仕事がコンパイルオプション選択し、「複数インスタンスを許可」を保証すべきです。

第二:

#!/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行目:環境パスを保証働ける。

0

-waitを指定せずにジョブを実行し、dsjob -jobinfoを実行して出力を解析し、ジョブステータスが1または2であることを確認します。すべてのジョブがこのステータスを返すと、すべて終了します。

実際に実行を開始する前にジョブのステータスを確認して、古いステータスを取得することがあります。ジョブを実行する前に、まずジョブインスタンスをリセットし、「実行していない」状態を待つことでこれを解決できます。

0
  • 例、あなたのループの後、待機せずに、ループ内のジョブまたはジョブステータスオプションdsjobコマンドでジョブの状態を確認

  • を起動します - dsjob -jobinfoプロジェクト名ジョブ名。 invocationid

    • これにもう1つのループをコーディングしてsleep com異なるinvoaction-idの助けを借り

      と同時に、このマルチインスタンスジョブを起動するには、ジョブシーケンスを作成するために雇用

    が、その良いの状況につきとしてMANDその

  • 書き込みの下であなたの更なるロジック

    • これらは同じプロセスで

    • の場合、別のシーケンスを作成したり、直接diffeを作成するシーケンスのジョブを作成しますこれらのジョブを起動と同時に同時に起動するスクリプトをレンタルします。

    ベストオプション

    例をパラメータ入力コマンドラインごとにそれぞれのものが作成されるか、または値を取得取得される標準一般化するスクリプトを作成する - ジョブ名+呼び出し-ID

    に基づいてログファイルを

    次に、異なるパラメータまたは呼び出しに対して同じスクリプトをスケジュールします。

  • 関連する問題