ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Data Integrator開発者ガイド
11g リリース1 (11.1.1)
B62260-01
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

19 統合プロセスの実行

この章では、統合プロセスの実行方法とスケジュール方法について説明します。

この章では、次の項目について説明します。

19.1 ODI実行の理解

実行は、Oracle Data Integratorで統合タスクの実行が必要な場合に発生します。この統合タスクは次のいずれかです。

Oracle Data Integratorでは、セッションの形式で実行のコードが生成されます。ランタイム・エージェントは、このコードを処理してソースとターゲットに接続し、データ統合を実行します。エージェントは、指定の実行コンテキストを使用して、これらのソースとターゲットを配置します。

Oracle Data Integrator Studioから実行が開始されると、「実行」ダイアログが表示されます。このダイアログには、表19-1にリストされている実行パラメータが表示されます。

表19-1 実行パラメータ

プロパティ 説明

コンテキスト

セッションが開始されるコンテキスト。

エージェント

インタフェースを実行するエージェント。「ローカル(エージェントなし)」を選択することで、Oracle Data Integrator Studioに組み込まれているエージェントを使用して、オブジェクトを実行することもできます。

ログ・レベル

保持するロギング情報のレベル。この値以下のログ・レベルが定義されているすべてのセッション・タスクは、セッション完了時に、セッション・ログに保持されます。ただし、オブジェクトの実行が異常終了した場合は、この設定にかかわらず、すべてのタスクが保持されます。

シミュレーション

実行をシミュレーションして実行レポートを作成する場合は、「シミュレーション」を選択します。詳細は、19.6項「実行のシミュレーション」を参照してください。


セッションのライフ・サイクル

セッションのライフ・サイクルは、次のとおりです。

  1. 実行リクエストがエージェントに送信されるか、またはエージェントがスケジュールから実行をトリガーします。

    設計時オブジェクト(インタフェース、パッケージなど)に対してOracle Data Integrator Studioから実行がトリガーされた場合、Studioでは、リクエストの送信前に、作業リポジトリ内にセッションのコードが事前に生成されることに注意してください。実行がシナリオから開始された場合は、そのシナリオにすでに事前生成のコードが含まれているため、このフェーズは不要です。

  2. エージェントはセッションに対するコードの生成を完了します。エージェントは用意されたコンテキストを使用して、データ・サーバー接続や完全修飾表名などの物理的な情報を解決します。生成されたコードは、「待機中」ステータスのセッションとして作業リポジトリに書き込まれます。

  3. エージェントは、セッションの実行に必要なソース・データ・サーバーとターゲット・データ・サーバーへの接続を初期化します。

  4. エージェントは実行リクエストを認識します。実行がStudio,から開始されている場合は、「セッションを開始しました」ダイアログが表示されます。

  5. エージェントは、このセッションに含まれている各タスクを実行します。これには、セッションのタスクに含まれているコードを実行するデータベース・サーバー、オペレーティング・システムまたはスクリプト・エンジンの機能が使用されます。

  6. セッションの処理中に、エージェントはリポジトリ内の実行ログを更新し、実行統計とエラー・メッセージをレポートします。

    セッションが開始された後は、オペレータ・ナビゲータなどを使用してそのセッションをログで監視できます。セッションの監視に関する詳細は、第20章「統合プロセスの監視」を参照してください。

  7. セッションが完了すると、タスクは、保存されるか、このセッションの開始時に指定したログ・レベルの値に従ってログから削除されます。


注意:

セッションは常に、一意のセッション番号(セッションID)によって識別されます。この番号はセッションを監視しているときに表示できます。また、この番号はセッションの開始時にコマンドラインまたはWebサービス・インタフェースによっても戻されます。

コマンドラインやWebサービスなどの他の場所から実行を開始するときは、同じ実行パラメータを指定して、同じ「セッションを開始しました」フィードバックを受信します。セッションがコマンドラインまたはWebサービス・インタフェースから同期で開始された場合、そのコマンドラインまたはWebサービスはセッションが完了するまで待機し、セッション・リターン・コードとエラー・メッセージ(ある場合)を提供します。

19.2 インタフェース、プロシージャ、パッケージおよびモデル操作の実行

インタフェース、プロシージャおよびパッケージは、Oracle Data Integrator Studioのデザイナ・ナビゲータから実行できる設計時オブジェクトです。

19.3 シナリオの実行

シナリオは複数の方法で実行できます。


注意:

シナリオを実行する前に、シナリオをデザイナ・ナビゲータで生成するか、またはファイルからインポートする必要があります。詳細は、第13章「シナリオの処理」を参照してください。

19.3.1 Studioからのシナリオの実行

シナリオは、Oracle Data Integrator Studioのデザイナ・ナビゲータまたはオペレータ・ナビゲータから開始できます。

Oracle Data Integrator Studioからシナリオを開始するには:

  1. 「プロジェクト」アコーディオン(デザイナ・ナビゲータ内)または「シナリオ」アコーディオン(オペレータ・ナビゲータ内)でシナリオを選択します。

  2. 右クリックして「実行」を選択します。

  3. 「実行」ダイアログで実行パラメータを設定します。詳細は、表19-1を参照してください。Oracle Data Integrator Studioに組み込まれているエージェントを使用してシナリオを実行するには、「ローカル(エージェントなし)」を選択します。

  4. 「OK」をクリックします。

  5. シナリオでパラメータとして変数が使用されている場合は、「変数値」ダイログが表示されます。セッション変数の値を選択します。変数に対して「最新の値」を選択すると、その変数の現在値が使用され、使用可能な値がない場合は、デフォルト値が使用されます。

エージェントがセッションの処理を開始すると、「セッションを開始しました」ダイアログが表示されます。

19.3.2 コマンドラインからのシナリオの実行

シナリオはコマンドラインから開始できます。

コマンドラインからシナリオを実行する前に、次の重要な注意事項を慎重に読んでください。

  • この項で説明されているタスクの実行に必要なコマンドライン・スクリプトは、Oracle Data Integrator Standalone Agentがインストールされている場合のみ使用できます。スタンドアロン・エージェントのインストール方法は、Oracle Fusion Middleware Oracle Data Integratorインストレーション・ガイドを参照してください。

  • このコマンドを使用する場合は、リポジトリへの接続がodiparamsファイルで構成されている必要があります。詳細は、第4章「エージェントの管理」を参照してください。

  • コマンドラインからシナリオを開始すると、デフォルトでは、セッションはリモートのランタイム・エージェントに対しては開始されませんが、コマンドラインから開始されたローカルのJavaプロセスによって実行されます。このプロセスは、ローカルで中断できますが、実際のランタイム・エージェントではないため、セッション停止シグナルを受信できません。したがって、この方法で開始したセッションをリモートで停止することはできません。

    このプロセスは、Data IntegratorログのLocal Agent名に基づいて識別されます。この名前はNAMEパラメータを使用して変更できます。

    ランタイム・エージェントに対してセッションを開始する場合は、AGENT_URLパラメータを使用する必要があります。

コマンドラインからシナリオを開始するには:

  1. ディレクトリをOracle Data Integratorインストールの/agent/binディレクトリに変更します。

  2. 次のコマンドを入力して、シナリオを開始します。

    UNIXシステムの場合:

    ./startscen.sh <scenario_name> <scenario_version> <context_code> [<log_level>] [-AGENT_URL=<remote_agent_url>] [-NAME=<local_agent_name>] [-SESSION_NAME=<session_name>] [-KEYWORDS=<keywords>] [<variable>=<value>]*

    Windowsシステムの場合:

    startscen.bat <scenario_name> <scenario_version> <context_code> [<log_level>] [-AGENT_URL=<remote_agent_url>] ["-NAME=<local_agent_name>"] ["-SESSION_NAME=<session_name>"] ["-KEYWORDS=<keywords>"] ["<variable>=<value>"]*


注意:

Windowsプラットフォームでは、等号(=)またはスペースを含むコマンド引数は、二重引用符で囲む必要があります。Windowsのコマンド・コールは、UNIXのコマンド・コールとは異なる場合があります。例:

UNIXの場合

./startscen.sh DWH 001 GLOBAL SESSION_NAME=MICHIGAN

Windowsの場合

startscen.bat DWH 001 GLOBAL "SESSION_NAME=MICHIGAN"


表19-2に、様々なパラメータ(必須とオプションの両方)を示します。パラメータの前にはハイフン(-)を、可能な値の前には等号(=)を付けます。この場合、コマンドを入力するオペレーティング・システムに固有の文字保護の構文に準拠する必要があります。

表19-2 Startscenコマンドのパラメータ

パラメータ 説明

<scenario_name>

シナリオの名前(必須)。

<scenario_version>

シナリオのバージョン(必須)。指定したバージョンが-1の場合は、そのシナリオの最新バージョンが実行されます。

<context_code>

実行コンテキストのコード(必須)。

<log_level>

保持するロギング情報のレベル。

このパラメータの形式はLEVEL<n>です。<n>は、0から5までの必要なロギング・レベルです。デフォルトのログ・レベルは5です。

例: startscen.bat SCENAR 1 GLOBAL LEVEL5

-AGENT_URL=<remote_agent_url>

このセッションを実行するランタイム・エージェントのURL。このパラメータを設定した場合、NAMEパラメータは無視されます。

-NAME=<local_agent_name>

このセッションの実行ログに、Local Agentのかわりに表示されるエージェント名。AGENT_URLを使用した場合、このパラメータは無視されます。

注意: NAMEパラメータに既存の物理エージェント名を使用することはお薦めできません。この名前を使用したランタイム・エージェントには、このセッションに関するすべての情報がないため、正しく管理できません。次の機能は、このセッションでは正しく機能しません。

  • 失効したセッションの除去: このエージェントが開始されると、このセッションは失効とみなされます。エージェントがこのセッションを検出するとエラーになります。

  • セッションの停止: このエージェントは、リクエスト時にセッションを停止できません。

  • エージェント・セッションのカウント: このセッションは、このエージェントで実行されていない場合でも、このエージェントのセッションにカウントされます。

既存のいずれの物理エージェント名とも一致しないNAMEを使用することをお薦めします。

指定の物理エージェントに対してセッションを開始する場合は、かわりにAGENT_URLパラメータを使用する必要があります。

-SESSION_NAME=<session_name>

実行ログに表示するセッションの名前。

-KEYWORDS=<keywords>

このセッションに関連付けられているキーワードのリスト。これらのキーワードによって、セッションの識別が容易になります。このリストは、カンマ区切りのキーワード・リストです。

<variable>=<value>

シナリオの実行では、<value><variable>に割り当てることができます。<variable>は、プロジェクト変数またはグローバル変数のいずれかです。プロジェクト変数は<Project Code>.<Variable Name>、グローバル変数はGLOBAL.<variable Name>と命名されている必要があります。

このパラメータは、複数の変数を割り当てる際に反復できます。

startscenコマンドラインでは、変数名の前にハッシュ記号(#)を使用しないでください。


19.4 セッションの再開

エラーが発生したセッション、またはユーザーが停止したセッションは再開できます。

セッションは複数の方法で再開できます。

再開できるのは、ステータスが「エラー」または「待機中」のセッションのみです。セッションは、最後の未完了タスク(通常はエラーが発生したタスク)から再開されます。


警告:

セッションが再開されると、ソース・システムとターゲット・システムへのすべての接続とトランザクションが再度作成され、前回のセッション実行からリカバリされることはありません。したがって、前回の実行からのトランザクションで未コミットの操作が適用されることはありません。また、セッションの正常な続行に必要なデータが存在しない可能性があります。


19.4.1 Studioからのセッションの再開

オペレータ・ナビゲータからセッションを再開する手順は、次のとおりです。

  1. オペレータ・ナビゲータで、再開するセッションを選択します。

  2. 右クリックして「再開」を選択します。

  3. 「再開モードを選択」ダイアログで、新しいセッションに使用するエージェントを選択します。

  4. 「OK」をクリックします。

Oracle Data Integratorでセッションが再開されると、「セッションを開始しました」ダイアログが表示されます。

19.4.2 コマンドラインからのセッションの再開


注意:

この項で説明されているタスクの実行に必要なコマンドライン・スクリプトは、Oracle Data Integrator Standalone Agentがインストールされている場合のみ使用できます。スタンドアロン・エージェントのインストール方法は、Oracle Fusion Middleware Oracle Data Integratorインストレーション・ガイドを参照してください。

コマンドラインからセッションを再開するには:

  1. ディレクトリをOracle Data Integratorインストールの/agent/binディレクトリに変更します。

  2. 次のコマンドを入力して、シナリオを開始します。

    UNIXシステムの場合:

    ./restartsession.sh <session_number> [-AGENT_URL=<remote_agent_url>]

    Windowsシステムの場合:

    restartsession.bat <session_number> ["-AGENT_URL=<remote_agent_url>"]

表19-3に、このコマンドの様々なパラメータ(必須とオプションの両方)を示します。パラメータの前にはハイフン(-)を、可能な値の前には等号(=)を付けます。この場合、コマンドを入力するオペレーティング・システムに固有の文字保護の構文に準拠する必要があります。

表19-3 restartsessコマンドのパラメータ

パラメータ 説明

<session_number>

再開するセッションの番号(ID)。

-AGENT_URL=<remote_agent_url>

このセッションを実行するランタイム・エージェントのURL。デフォルトでは、セッションは、コマンドラインから開始されたローカルのJavaプロセスによって実行されます。



注意:

このコマンドを使用する場合は、リポジトリへの接続がodiparamsファイルで構成されている必要があります。詳細は、4.3項「エージェントの管理」を参照してください。


注意:

コマンドラインからセッションを再開すると、デフォルトでは、そのセッションはリモートのランタイム・エージェントに対しては開始されませんが、コマンドラインから開始されたローカルのJavaプロセスによって実行されます。

ランタイム・エージェントに対してセッションを開始する場合は、AGENT_URLパラメータを使用する必要があります。


19.5 シナリオのスケジューリング

シナリオの実行は、Oracle Data Integrator組込みスケジューラまたは外部スケジューラを使用してスケジュールできます。この項では、この2つの方法を説明します。

19.5.1 組込みスケジューラを使用したシナリオのスケジューリング

スケジュールは、Oracle Data Integratorを使用してシナリオに添付できます。このようなスケジュールは、スケジューラ組込みのランタイム・エージェントによって管理されます。

シナリオには複数のスケジュールを指定でき、複数の方法でスケジュールできますが、1つのスケジュールに関連するシナリオは1つのみであることを理解することが重要です。シナリオの「スケジューリング」ノードの下には、様々なスケジュールが表示されます。各スケジュールには、開始日と反復サイクルを指定できます。

例:

  • スケジュール1: 毎週木曜日の午後9時、1回のみ

  • スケジュール2: 毎日午前8時から午後12時まで、5秒ごとに繰返し

  • スケジュール3: 毎日午後2時から午後6時まで、5秒ごとに繰返し、最大サイクル期間は5時間

19.5.1.1 シナリオのスケジューリング

Oracle Data Integrator Studioからシナリオをスケジュールする手順は、次のとおりです。

  1. デザイナまたはオペレータ・ナビゲータで、シナリオの下にある「スケジューリング」ノードを右クリックします。

  2. 「新規スケジューリング」を選択します。スケジューリング・エディタが表示されます。

  3. スケジューリング・エディタの「定義」タブで、次のようにパラメータを指定します。

    プロパティ 説明
    コンテキスト シナリオが開始されるコンテキスト。
    エージェント シナリオを実行するエージェント。
    ログ・レベル 保持するロギング情報のレベル。

    スケジュールのアクティブ化は、「ステータス」パラメータによって定義されます。

    プロパティ 説明
    アクティブ エージェントの再開時、または物理エージェントのスケジュールの更新時に、スケジュールがアクティブになります。
    非アクティブ スケジュールはアクティブではないため、実行されません。
    アクティブな期間 スケジュールのアクティビティ範囲。ある期間中にアクティブなスケジュールは、この特定の期間内のみに実行されます。

    各実行サイクルの実行頻度は、「実行」パラメータによって定義されます。

    プロパティ 説明
    実行 実行オプションの頻度(毎年、毎月、...簡易)。このオプションは、このメイン・オプションに依存する一連のオプションによって完成されます。

  4. 「実行サイクル」タブで、次のように、シナリオの反復モードに対してパラメータを指定します。

    プロパティ 説明
    なし(1回実行) シナリオは1回のみ実行されます。
    複数回 シナリオは複数回繰り返されます。
    • 最大反復数: サイクル中にシナリオが繰り返される最大回数。

    • 最大サイクル継続時間: 最大回数に達すると、シナリオはただちに再開されなくなり、サイクルが停止します。

    • 反復間隔: 各シナリオ実行の間の停止時間。

    制約 実行中に問題が発生した場合、1つのサイクル反復に制限を設定できます。
    • 失敗時の試行回数: 1回の反復での最大連続試行回数。

    • 実行停止期限: 1回の反復での最大実行時間。この時間に達すると、シナリオは自動的に停止します。


  5. 「変数」タブで、を指定する変数の「最新の値」を選択解除します。このタブに表示されるのは、シナリオで使用される変数およびパラメータとしてフラグが指定されている変数のみです。

  6. 「ファイル」メニューから「保存」をクリックします。

新しいスケジュールが、シナリオの「スケジューリング」ノードの下に表示されます。

スケジュール変更は、ランタイム・エージェントの開始時またはランタイム・エージェントによるスケジュール更新リクエストの受信時に反映されます。

19.5.1.2 エージェントのスケジュールの更新

エージェントは開始時に、接続しているマスター・リポジトリに添付されているすべてのリポジトリのスケジュールを読み取ります。特定のリポジトリでこのエージェントのスケジュールが追加された場合は、そのエージェント・スケジュールをリフレッシュできます。

エージェントのスケジュールを更新するには:

  1. トポロジ・ナビゲータで、「物理アーキテクチャ」アコーディオンにある「エージェント」ノードを展開します。

  2. スケジュールを更新する物理エージェントを選択します。

  3. 右クリックして「スケジューリングの更新」を選択します。

  4. 「リポジトリの選択」ダイアログで、スケジューリング情報を読み取るリポジトリを選択します。すべてのリポジトリからスケジューリング情報を読み取るには、「すべての作業リポジトリを選択」を選択します。

  5. 「OK」をクリックします。

エージェントは、これらのリポジトリに定義されているスケジュールから、エージェント自体のメモリー内スケジュールをリフレッシュして再計算します。

19.5.1.3 スケジュールの表示

すべてのエージェントのスケジュールされたタスクを表示できます。また、特定のエージェントのスケジュールされたタスクも表示できます。


注意:

スケジューリング情報は、エージェントのメモリー内スケジュールから取得されます。正確なスケジューリング情報を表示するためには、エージェントが開始し、そのスケジュールがリフレッシュされている必要があります。

すべてのエージェントのスケジュールの表示

すべてのエージェントのスケジュールを表示するには:

  1. オペレータ・ナビゲータのツールバー・メニューから、「ナビゲータの接続」→「スケジューリング」の順に選択します。

「スケジュールの表示」ダイアログに、すべてのエージェントのスケジュールが表示されます。

1つのエージェントのスケジュールの表示

1つのエージェントのスケジュールを表示するには:

  1. トポロジ・ナビゲータで、「物理アーキテクチャ」アコーディオンにある「エージェント」ノードを展開します。

  2. スケジュールを更新する物理エージェントを選択します。

  3. 右クリックして「スケジュールの表示」を選択します。

スケジュール・エディタに、このエージェントのスケジュールが表示されます。


注意:

スケジューリング情報は、エージェントのスケジュールから取得されます。正確なスケジューリング情報を表示するためには、エージェントが開始し、そのスケジュールがリフレッシュされている必要があります。

「スケジュールの表示」ダイアログの使用

スケジュールはガント・ダイアグラムの形式で表示されます。表19-4に、「スケジュール」ダイアログの詳細を示します。

表19-4 スケジューリング詳細



選択したエージェント

スケジュールが表示されるエージェント。「すべてのエージェント」を選択して、すべてのエージェントのスケジュールを表示することもできます。

選択した作業リポジトリ

選択した作業リポジトリで実行されたシナリオのみがスケジュールに表示されます。デフォルトは「すべての作業リポジトリ」です。

スケジュールの範囲

スケジュールが表示される時間範囲。このスケジュールをリフレッシュするには、「リフレッシュ」をクリックします。

更新

選択したエージェントのスケジュールを更新するには、「更新」をクリックします。

時間範囲

指定した時間範囲(1時間、2時間)を使用して、現在時刻にこの時間を加え、ダイアグラムをその中央に配置できます。この機能により、進行中のセッションと着信セッションを視覚化できます。矢印を使用すると、範囲を前方または後方に移動できます。

シナリオ詳細

このパネルには、スケジュールされた各シナリオの詳細と実行統計が表示されます。


(マウス・ボタンを押したまま)ダイアグラム内のゾーンを選択すると、選択したゾーンに自動的にズームできます。

ダイアグラム内で右クリックするとコンテキスト・メニューが表示され、ズーム、ダイアグラムをイメージ・ファイルとして保存、表示プロパティの印刷または編集の各操作を実行できます。

19.5.2 外部スケジューラを使用したシナリオのスケジューリング

外部スケジューラを使用してシナリオを開始するには、外部スケジューラからコマンドラインのコマンドstartscenを使用するか、またはシナリオ実行をトリガーするWebサービス・インタフェースを使用できます。詳細は、19.3.2項「コマンドラインからのシナリオの実行」および19.7.2項「Webサービスを使用したシナリオの実行」を参照してください。

シナリオが正常に完了した場合のリターン・コードは、0です。正常に完了しない場合のリターン・コードは、0以外です。このコードは次の応答で使用されます。

  • コマンドライン・コールのリターン・コード。エラー・メッセージ(ある場合)は、標準エラー出力に含まれます。

  • Webサービス・コールのSOAPレスポンス。Webサービス・レスポンスには、セッション・エラー・メッセージ(ある場合)も含まれています。

19.6 実行のシミュレーション

Oracle Data Integratorでは、設計時に実行をシミュレーションできます。実行をシミュレーションすると、その実行に対応するコードが、このコードを実行せずに生成されて表示されます。実行シミュレーションによって、コード確認に適したレポートが提供されます。


注意:

シミュレーション・モードで実行が開始された場合、ログにはセッションが作成されません。

実行をシミュレーションするには:

  1. デザイナ・ナビゲータの「プロジェクト」ビューで、実行するオブジェクトを選択します。

  2. 右クリックして「実行」を選択します。

  3. 「実行」ダイアログで実行パラメータを設定し、「シミュレーション」を選択します。詳細は、表19-1を参照してください。

  4. 「OK」をクリックします。

シミュレーション・レポートが表示されます。

「保存」をクリックすると、レポートを.xmlファイルまたは.htmlファイルとして保存できます。

19.7 Webサービスを使用した実行の管理

この項では、Webサービスを使用してランタイム操作を実行する方法について説明します。次の項があります。

19.7.1 ランタイムWebサービスの概要

Oracle Data Integratorには、ランタイム操作を実行するためのWebサービスが含まれています。これらのWebサービスは2つの場所にあります。

  • ランタイム・エージェントでのWebサービスでは、シナリオの開始、セッション・ステータスの監視およびセッションの再開が可能です。このWebサービスの操作を使用するには、最初にスタンドアロン・エージェントまたはJava EEエージェントをインストールして構成する必要があります。

  • 専用の公開Webサービス・コンポーネントでは、使用可能なコンテキストとシナリオをリストする操作が提供されています。このWebサービスの操作を使用するには、最初にこのコンポーネントをJava EEコンテナにインストールして構成する必要があります。

次の内容は、エージェントおよび公開Webサービスに対して使用されるSOAPリクエストに適用されます。

  • Webサービス操作では、SOAPリクエストにあるプレーン・テキストのパスワードを受け入れます。したがって、保護されていないネットワーク上でWebサービスを呼び出すには、保護されたプロトコル(HTTPS)を使用することをお薦めします。

  • エージェントまたは公開Webサービス・コンポーネントはマスター・リポジトリに接続するように構成されているため、SOAPリクエストにリポジトリ接続情報は必要ありません。ほとんどの操作の実行で必要なのは、ODIユーザーと作業リポジトリの名前のみです。

19.7.2 Webサービスを使用したシナリオの実行

エージェントWebサービスのinvokeStartScen操作は、指定の作業レポジトリ内で、シナリオを同期または非同期モードで開始します。セッションは、このWebサービスを提供しているエージェントによって実行されます。

      <OdiStartScenRequest> 
         <Credentials> 
            <OdiUser>odi_user</OdiUser> 
            <OdiPassword>odi_password</OdiPassword> 
            <WorkRepository>work_repository</WorkRepository>
         </Credentials> 
         <Request> 
            <ScenarioName>scenario_name</ScenarioName> 
            <ScenarioVersion>scenario_version</ScenarioVersion> 
            <Context>context</Context> 
            <LogLevel>log_level</LogLevel> 
            <Synchronous>synchronous</Synchronous>
            <SessionName>session_name</SessionName>
            <Keywords>session_name</Keywords>
            <Variables>
            <Name>variable_name</name>
            <Value>variable_value</Value>
            </Variables>
         </Request> 
      </OdiStartScenRequest> 

シナリオの実行によって、リクエストのsynchronous要素の値に応じたレスポンスが戻されます。

  • 同期モード(Synchronous=1)では、セッションが完了するとレスポンスが戻され、レスポンスに実行結果が反映されます。

  • 非同期モード(Synchronous=0)では、セッションが開始されるとレスポンスが戻され、セッションが正しく開始されたかどうかの事実のみが示されます。

19.7.3 Webサービスを使用したセッション・ステータスの監視

エージェントWebサービスのgetSessionStatus操作では、指定リポジトリ内の1つ以上のセッションのステータスが、SessionIds要素に指定したセッション番号で識別されて戻されます。実行中のセッションと完了したセッションの両方が管理されます。

      <OdiGetSessionsStatusRequest> 
         <Credentials> 
            <OdiUser>odi_user</OdiUser> 
            <OdiPassword>odi_password</OdiPassword> 
            <WorkRepository>work_repository</WorkRepository>
         </Credentials> 
         <SessionIds>session_number</SessionIds> 
      </OdiGetSessionsStatusRequest> 

19.7.4 Webサービスを使用したセッションの再開

エージェントWebサービスのinvokeRestartSess操作では、指定作業リポジトリ内のセッション番号(SessionID要素に指定)で識別されたセッションが再開されます。このセッションは、Webサービスを提供しているエージェントによって実行されます。

変数の値を変更したり、KeepVariablesブール要素を使用して前回のセッション実行からの変数値を再利用できることに注意してください。

      <invokeRestartSessRequest> 
         <Credentials> 
            <OdiUser>odi_user</OdiUser> 
            <OdiPassword>odi_password</OdiPassword> 
            <WorkRepository>work_repository</WorkRepository>
         </Credentials> 
         <Request> 
            <SessionID>session_number</SessionID> 
            <Synchronous>synchronous</Synchronous>
            <KeepVariables>0|1</KeepVariables>
            <Variables>
            <Name>variable_name</name>
            <Value>variable_value</Value>
            </Variables>
         </Request> 
      </invokeRestartSessRequest> 

この操作では、Synchronous要素の値に従って、InvokeStartScenと同様のレスポンスが戻されます。

19.7.5 Webサービスを使用したコンテキストのリスト

公開WebサービスのlistContext操作では、マスター・リポジトリ内にあるすべてのコンテキストがリストされます。

   <listContextRequest> 
      <OdiUser>odi_user</OdiUser> 
      <OdiPassword>odi_password</OdiPassword> 
   <listContextRequest>

19.7.6 Webサービスを使用したシナリオのリスト

公開WebサービスのlistScenario操作では、特定の作業リポジトリ内にあるすべてのコンテキストがリストされます。

   <listScenarioRequest> 
      <OdiUser>odi_user</OdiUser> 
      <OdiPassword>odi_password</OdiPassword> 
      <WorkRepository>work_repository</WorkRepository> 
   <listScenarioRequest>

19.7.7 コマンドラインからのWebサービスへのアクセス

Oracle Data Integratorには、UNIXプラットフォーム用の2つのシェル・スクリプトが含まれています。これらのシェル・スクリプトでは、Webサービス・インタフェースを使用して、コマンドラインからランタイム・エージェントWebサービス操作を介してシナリオを開始および監視します。

  • startscenremote.shは、そのWebサービスのリモート・エージェントでセッションを開始します。このシナリオは、同期または非同期で開始できます。非同期で開始した場合は、セッションが完了するかタイムアウトになるまで、そのセッションに対する定期的なスクリプト・ポーリングを指定できます。

  • getsessionstatusremote.shは、Webサービス・インタフェースを介してセッションのステータスを取得します。この2番目のスクリプトは、startscenremote.shスクリプトで使用されます。

コマンドラインからWebサービスにアクセスする前に、次の重要な注意事項を慎重に読んでください。

  • この項で説明されているタスクの実行に必要なコマンドライン・スクリプトは、Oracle Data Integrator Standalone Agentがインストールされている場合のみ使用できます。スタンドアロン・エージェントのインストール方法は、Oracle Fusion Middleware Oracle Data Integratorインストレーション・ガイドを参照してください。

  • startscen.shコマンドラインと異なり、これらのスクリプトは、UNIXまたはLinuxプラットフォームにインストールされている軽量WGETユーティリティを使用して、Webサービス・コールを実行します。Javaコードは使用せず、ポーリング・メカニズムを使用して、マシンで実行するプロセスの数を削減します。これらのスクリプトは、大量のシナリオとセッションをコマンドラインから同時に管理する必要がある場合に適しています。

シナリオの開始

シナリオをコマンドラインからWebサービスを介して開始するには:

  1. ディレクトリをOracle Data Integratorインストールの/agent/binディレクトリに変更します。

  2. 次のコマンドを入力して、シナリオを開始します。

    UNIXシステムの場合:

    ./startscenremote.sh <scenario_name> <scenario_version> <context_code> <work_repository> <remote_agent_url> <odi_user> <odi_password> -l <log_level> -s <sync_mode> -t <timeout> -i <interval> -h <http_timeout> -v

表19-5に、このコマンドの様々なパラメータ(必須とオプションの両方)を示します。

表19-5 Startscenremoteコマンドのパラメータ

パラメータ 説明

<scenario_name>

シナリオの名前(必須)。

<scenario_version>

シナリオのバージョン(必須)。指定したバージョンが-1の場合は、そのシナリオの最新バージョンが実行されます。

<context_code>

実行コンテキストのコード(必須)。

-l <log_level>

保持するロギング情報のレベル。

このパラメータの形式はLEVEL<n>です。<n>は、0から5までの必要なロギング・レベルです。デフォルトのログ・レベルは5です。

例: startscen.bat SCENAR 1 GLOBAL LEVEL5

<work_repository>

シナリオが格納されている作業リポジトリの名前。

<remote_agent_url>

このセッションを実行するランタイム・エージェントのURL。

<odi_user>

このセッションの実行に使用するユーザーの名前。

<odi_password>

このユーザーのパスワード。

s <sync_mode>

実行モード:

  • 0: 同期

  • 1: 非同期(セッションの完了を待機しない)

  • 2: 非同期(セッションの完了を待機します)

-t <timeout>

sync_mode = 2の場合に、セッションの完了を待機するタイムアウト時間(秒)。

-i <interval>

sync_mode = 2の場合のセッション・ステータスのポーリング間隔。

-h <http_timeout>

Webサービス・コールのHTTP タイムアウト。

-v

冗長モード。


セッション・ステータスの監視

コマンドラインからWebサービスを介してセッションのステータスを監視するには:

  1. ディレクトリをOracle Data Integratorインストールの/agent/binディレクトリに変更します。

  2. 次のコマンドを入力して、シナリオを開始します。

    UNIXシステムの場合:

    ./getsessionstatusremote.sh <session_number> <work_repository> <remote_agent_url> <odi_user> <odi_password> -w <wait_mode> -t <timeout> -i <interval> -h <http_timeout> -v

表19-5に、このコマンドの様々なパラメータ(必須とオプションの両方)を示します。

表19-6 Startscenremoteコマンドのパラメータ

パラメータ 説明

<session_number>

監視するセッションの数。

<work_repository>

シナリオが格納されている作業リポジトリの名前。

<remote_agent_url>

このセッションを実行するランタイム・エージェントのURL。

<odi_user>

このセッションの実行に使用するユーザーの名前。

<odi_password>

このユーザーのパスワード。

-w <wait_mode>

待機モード:

  • 0: セッションの完了を待機しないで、現在のステータスをレポートします。

  • 1: セッションの完了を待機してから、ステータスをレポートします。

-t <timeout>

sync_mode = 2の場合に、セッションの完了を待機するタイムアウト時間(秒)。

-i <interval>

sync_mode = 2の場合のセッション・ステータスのポーリング間隔。

-h <http_timeout>

Webサービス・コールのHTTP タイムアウト。

-v

冗長モード。