preschedulecmd および postschedulecmd スクリプトからの戻りコード

preschedulecmd および postschedulecmd オプションの使用時に表示される可能性がある戻りコードについて説明します。

Windows オペレーティング・システムLinux オペレーティング・システムOracle Solaris オペレーティング・システムAIX オペレーティング・システムMac OS X オペレーティング・システム
  • preschedulecmd オプションで指定されたコマンドがゼロ以外の戻りコードで終了した場合、 IBM® Storage Protect はコマンドが失敗したと想定します。 この場合、スケジュールされたイベントも、任意の postschedulecmd コマンドまたは postnschedulecmd コマンドもいずれも実行されません。 管理コマンド query eventformat=detailed オプションを指定すると、イベントが戻りコード 12 で失敗したことが表示されます。
  • postschedulecmd オプションで指定されたコマンドがゼロ以外の戻りコードで終了した場合、 IBM Storage Protect はコマンドが失敗したと見なします。 format=detailed オプションを指定した管理 query event コマンドは、イベントが戻りコード 8 で完了したことを示します。 この例外は、スケジュールされた操作が、より高い戻りコードで完了した場合に発生します。この場合、より高い戻りコードが優先されます。 したがって、スケジュールされた操作が戻りコード 0 または 4 で完了し、 postschedulecmd コマンドが失敗した場合、管理 query event コマンドは、イベントが戻りコード 8 で完了したことを示します。 スケジュールされた操作が戻りコード 12 で完了すると、戻りコードが優先され、query event は、イベントが戻りコード 12 で失敗したことを示します。

Linux オペレーティング・システムOracle Solaris オペレーティング・システムAIX オペレーティング・システムMac OS X オペレーティング・システムコマンドの戻りコードを解釈する際、 IBM Storage Protect では、0 を成功、それ以外を失敗とみなします。 この動作は業界で一般に受け入れられていますが、100% というわけではありません。 例えば、 widget コマンドの開発者は、widget が正常に実行された場合に、戻りコード 3 で終了させるかもしれません。 したがって、 preschedulecmd または postschedulecmd コマンドがゼロ以外の戻りコードで終了しても成功である場合もあります。 IBM Storage Protect がこのようなコマンドを失敗として扱わないようにするには、これらのコマンドをスクリプトでラップし、コマンドの戻りコードを正しく解釈するようにスクリプトをコーディングします。 スクリプトは、コマンドが成功した場合に戻りコード 0 で終了します。失敗した場合はゼロ以外の戻りコードで終了します。 例えば、widget を実行するスクリプトのロジックは次の例のようになります。

Windows オペレーティング・システムコマンドの戻りコードを解釈する際、 IBM Storage Protect では、0 を成功、それ以外を失敗とみなします。 この動作は業界で一般に受け入れられていますが、100% というわけではありません。 例えば、widget.exe コマンドの開発者は、widget.exe が正常に実行された場合に、戻りコード 3 で終了させるかもしれません。 したがって、 preschedulecmd または postschedulecmd コマンドがゼロ以外の戻りコードで終了しても成功である場合もあります。 IBM Storage Protect がこのようなコマンドを失敗として扱わないようにするには、これらのコマンドをスクリプトでラップし、コマンドの戻りコードを正しく解釈するようにスクリプトをコーディングします。 スクリプトは、コマンドが成功した場合に戻りコード 0 で終了します。失敗した場合はゼロ以外の戻りコードで終了します。 例えば、widget.exe を実行するスクリプトのロジックは次の例のようになります。

Linux オペレーティング・システムOracle Solaris オペレーティング・システムAIX オペレーティング・システムMac OS X オペレーティング・システム
run 'widget'
   if lastcc == 3
      exit 0
   else
      exit 1
Windows オペレーティング・システム
run 'widget.exe'
   if lastcc == 3
      exit 0
   else
      exit 1