演習 3: ほかのアプリケーションでのジョブの実行
標準の状態でインストールした Task Agent を使用して、Creo Elements/Direct Modeling と Creo Elements/Direct Drafting のジョブを処理できます。Job Server は、インストール済みの Creo Elements/Direct Modeling または Creo Elements/Direct Drafting アプリケーションを自動的に検出して使用します。また、選択した Job Server 上で、ほかのアプリケーションを使用してジェネリックジョブを実行することもできます。
ジェネリックジョブの初期設定
単純なジェネリックジョブのサンプルは、taskagent\samples ディレクトリに収められています。これらのサンプルを実行するには、samples ディレクトリにあるファイルをコピーして、taskagent ディレクトリ内の対応する場所に配置します。たとえば、taskagent\samples\jobconfig\GenericJobExample.xml を taskagent\jobconfig\GenericJobExample.xml にコピーします。
ステップ 1: アプリケーションを実行するためのスクリプトまたは実行ファイルの提供
通常、これは選択した Job Server で実行する Windows バッチスクリプトまたは実行ファイルのことです。例については、taskagent\samples\generic\generic_job_example.bat を参照してください。
ステップ 2: 新しいジョブタイプの定義
演習 2 で説明した設定ファイルを作成して、新しいジョブタイプを定義します。例については、taskagent\samples\jobconfig\GenericJobExample.xml を参照してください。要素で指定するのは、Job Server 上で実行するスクリプトまたは実行ファイルです。
ステップ 3: ジョブデータエクスポータとジョブ結果ハンドラの実装
演習 2 で説明したエクスポータと結果ハンドラを実装します。エクスポータでは、ステップ 1 のスクリプトまたは実行ファイルをジョブアーカイブにコピーする必要があります。デフォルト実装
com.osm.automation.GenericJobExporter は、taskagent\generic ディレクトリの内容すべてをアーカイブにコピーします。結果ハンドラが必要になるのは、アプリケーションが何らかのデータを返す場合だけです。
ステップ 4: 新しいジョブタイプの展開
ステップ 5: 新しいジョブタイプを受け入れるための Job Server の設定
選択した Job Server 上でジェネリックジョブを有効にするには、次の手順に従います。
• 選択したマシン上で、スクリプトまたは実行ファイルが実際に動作していることを確認します。
• ステップ 2 で指定したジョブタイプを受け入れるように Job Server を設定します。設定ツール <Job Server Installation>\ConfigureJobServer.exe を実行し、ジョブタイプを追加します。「汎用ジョブタイプ」ダイアログでは、新しいタイプをカンマ区切りリストで指定できます。
ジェネリックジョブの処理
ステップ 1: アプリケーションへのパラメータの引き渡し
Job Server では、パラメータをアプリケーションに渡すために、数多くの環境変数が設定されます。常に設定されるのは、次の環境変数です。
変数 | 説明 |
---|
JOB_ID | ジョブの 一意 ID。 |
JOB_INPUT_DIRECTORY | ジョブの入力データが格納されているディレクトリ。 |
JOB_OUTPUT_DIRECTORY | Job Server が出力データを収集するディレクトリ。 |
JOB_SEMAPHORE_FILE | ジョブが完了したことを Job Server に通知するために使用されます。 |
JOB_SUCCESS_FILE | ジョブが正常に完了したことを Job Server に通知するために使用されます。 |
JOB_ERROR_FILE | ジョブが失敗したことを Job Server に通知するために使用されます。 |
JOB_LOG_FILE | デバッグに使用されます。利用できるログファイルがある場合は、ジョブが完了した後、ジョブスプーラに送信されます。 |
また、設定ファイルの <Options> セクションで定義するジョブパラメータは、すべて環境変数として利用できます (GenericJobExample.xml の ReturnMessage 変数など)。
ステップ 2: Job Server とアプリケーション間の相互処理
• Job Server は、スクリプトまたは実行ファイルを起動する前に %JOB_SEMAPHORE_FILE% を作成します。アプリケーションの実行が完了したことを Job Server に通知するには、アプリケーションの側でこのファイルを削除する必要があります。
• また、アプリケーション側で %JOB_SUCCESS_FILE% または %JOB_ERROR_FILE% も作成して、ジョブの完了に関する情報を Job Server に渡す必要があります。
• %JOB_ERROR_FILE% が存在する場合は、このファイルの先頭行が Task Agent にエラー説明として返されます。
ステップ 3: アプリケーションからの戻り値
ジョブの設定で has_result_data=true 属性を設定した場合、Job Server は %JOB_OUTPUT_DIRECTORY% にあるファイルをすべて収集し、戻り値として送信します。