並列または順次でのコマンドの実行
スクリプト内のコマンドの実行には、順次、並列、順次かつ並列のオプションがあります。 これを行うには、 DEFINE および UPDATE SCRIPTの COMMAND_LINE パラメーターで SERIAL または PARALLEL スクリプト・コマンドを使用します。 したがって、複数のコマンドを並列で実行し、それらの完了を待ってから次のコマンドを実行することが可能です。
このタスクについて
スクリプトのコマンドを順次実行することにより、次に進む前にすべての先行コマンドが完了し、すべての後続コマンドが順次実行されることが確保されます。 スクリプトが開始された後、PARALLEL コマンドに到達するまでは、どのコマンドも順次実行されます。 並列で実行しており、磁気テープ・ドライブなどの共通リソースにアクセスしている複数のコマンドを、順次実行することができます。
スクリプト戻りコードは、PARALLEL コマンドの実行の前と後で同じままになります。 SERIAL コマンドに到達すると、スクリプト戻りコードは、その直前に並列実行されたコマンドの戻りコードのうち最も大きいものに設定されます。
PARALLEL コマンドの後に WAIT パラメーターをサポートするサーバー・コマンドを使用すると、動作は以下のようになります。
- WAIT=NO を指定する (またはデフォルトを使用する) と、スクリプトは、後続の SERIAL コマンドを検出した時に、コマンドの完了を待機しません。 そのコマンドからの戻りコードは、コマンドがバックグラウンド・プロセスを開始する時点までのみの処理を反映します。 このコマンドの最終的な戻りコードは、そのスクリプトでは入手できません。
- WAIT=YES を指定すると、スクリプトは、後続の SERIAL コマンドを検出した時に、コマンドの完了を待機します。 そのコマンドからの戻りコードは、コマンド全体の処理を反映します。
多くの場合、並列実行されるコマンドに WAIT=YES を使用できます。
制約事項:
- コマンドが、WAIT パラメーターが指定されていないバックグラウンド・プロセスを開始する場合、コマンドは、バックグラウンド・スレッドが開始した後に完了すると見なされます。 したがって、コマンドは並列でのみ実行できます。
- PARALLEL コマンドでスクリプトを指定する場合は、SHOW、QUERY、および SELECT の各コマンドをスクリプトに入れないようにしてください。 この制限は、他のスクリプトを呼び出すスクリプトを含むすべてのスクリプトに適用されます。
以下の例は、ストレージ・プールのバックアップ、マイグレーション、およびレクラメーション処理に、PARALLEL コマンドがどのように使用されるかを示したものです。
/*run multiple commands in parallel and wait for
them to complete before proceeding*/
PARALLEL
/*back up four storage pools simultaneously*/
BACKUP STGPOOL PRIMPOOL1 COPYPOOL1 WAIT=YES
BACKUP STGPOOL PRIMPOOL2 COPYPOOL2 WAIT=YES
BACKUP STGPOOL PRIMPOOL3 COPYPOOL3 WAIT=YES
BACKUP STGPOOL PRIMPOOL4 COPYPOOL4 WAIT=YES
/*wait for all previous commands to finish*/
SERIAL
/*after the backups complete, migrate stgpools
simultaneously*/
PARALLEL
MIGRATE STGPOOL PRIMPOOL1 DURATION=90 WAIT=YES
MIGRATE STGPOOL PRIMPOOL2 DURATION=90 WAIT=YES
MIGRATE STGPOOL PRIMPOOL3 DURATION=90 WAIT=YES
MIGRATE STGPOOL PRIMPOOL4 DURATION=90 WAIT=YES
/*wait for all previous commands to finish*/
SERIAL
/*after migration completes, relcaim storage
pools simultaneously*/
PARALLEL
RECLAIM STGPOOL PRIMPOOL1 DURATION=120 WAIT=YES
RECLAIM STGPOOL PRIMPOOL2 DURATION=120 WAIT=YES
RECLAIM STGPOOL PRIMPOOL3 DURATION=120 WAIT=YES
RECLAIM STGPOOL PRIMPOOL4 DURATION=120 WAIT=YES