ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Data Integrator開発者ガイド
12c (12.1.2)
E49827-03
  目次へ移動
目次

前
 
次
 

21 統合プロセスの実行

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

この章には次の項が含まれます:

ODI実行の理解

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

Oracle Data Integratorでは、実行用のコードは、セッションの形式かロード計画を実行する場合はロード計画実行の形式で生成されます。

ランタイム・エージェントは、このコードを処理してソースとターゲットに接続し、データ統合を実行します。エージェントは、指定の実行コンテキストを使用して、これらのソースとターゲットを配置します。

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

表21-1 実行パラメータ

プロパティ 説明

コンテキスト

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

エージェント

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

ログ・レベル

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

ログ・レベル6は、ログ・レベル5と動作は同じですが、変数の追跡が追加されていることに注意してください。詳細は、「変数と順序の追跡」を参照してください。

シミュレーション

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


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

この項では、セッションのライフ・サイクルについて説明します。ロード計画実行およびロード計画のライフ・サイクルの詳細は、「ロード計画の概要」を参照してください。

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

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

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

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

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

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

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

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

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

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


注意:

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


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

マッピング、プロシージャ、パッケージおよびモデル操作の実行

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

シナリオの実行

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


注意:

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


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

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

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

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

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

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

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

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

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

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

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

コマンド行からシナリオを実行する前に、次の要件を熟読してください:

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

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

  • コマンド行からシナリオを開始すると、デフォルトでは、セッションはリモートのランタイム・エージェントに対しては開始されませんが、コマンド行から開始されたローカルの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>] [-ASYNC=yes|no] [-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>][-ASYNC=yes|no] ["-NAME=<local_agent_name>"] ["-SESSION_NAME=<session_name>"] ["-KEYWORDS=<keywords>"] ["<variable>=<value>"]*


注意:

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

UNIXの場合

./startscen.sh DWH 001 GLOBAL SESSION_NAME=MICHIGAN

Windowsの場合

startscen.bat DWH 001 GLOBAL "SESSION_NAME=MICHIGAN"


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

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

パラメータ 説明

<scenario_name>

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

<scenario_version>

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

<context_code>

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

[<log_level>]

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

このパラメータの形式は<n>で、<n>は0から6までの必要なログ・レベルです。デフォルトのログ・レベルは5です。ログ・レベル6は、ログ・レベル5と動作は同じですが、変数の追跡が追加されていることに注意してください。詳細は、「変数と順序の追跡」を参照してください。

例: startscen.bat SCENAR 1 GLOBAL 5

[-AGENT_URL=<remote_agent_url>

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

[-ASYNC=yes|no]

リモート・エージェントの非同期実行には、Yesに設定します。ASYNCが使用されている場合、AGENT_URLは必須です。

非同期実行が使用されている場合、シナリオのセッションIDが戻されます。

[-NAME=<local_agent_name>]

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

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

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

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

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

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

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

[-SESSION_NAME=<session_name>]

実行ログに表示するセッションの名前。指定しない場合は、シナリオ名がセッション名として使用されます。

[-KEYWORDS=<keywords>]

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

[<variable>=<value>]

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

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

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


セッションの再開

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

Oracle Data Integratorは、ソース・データ・サーバーおよびターゲット・データ・サーバーとの対話時にJDBCトランザクションを使用し、セッションがエラー状態で終了した場合、オープン・トランザクションの状態は永続化されません。適切な再起動ポイントは、未完了のトランザクションを起動したタスクです。そのような再起動ポイントが特定できない場合、エラー状態にある既存のセッションを再開するのではなく、シナリオを実行することで新たなセッションを開始することをお薦めします。

再開できるのは、ステータスが「エラー」または「待機中」のセッションのみです。デフォルトで、セッションは、実行に失敗した最後のタスク(通常は、エラー状態または待機状態のタスク)から再開されます。既存のステージング表での処理を続行し、長い時間のかかるロード・フェーズの再実行を回避するために、セッションを再開する必要がある場合もあります。その場合、ユーザーは、KM固有のトランザクション管理を考慮に入れる必要があります。一般的なガイドラインとしては、ロード・タスクでクラッシュが発生した場合、失敗したロード・タスクから再起動できます。統合フェーズでクラッシュが発生した場合、ターゲットへの統合はトランザクション内で行われるため、最初の統合タスクから再起動します。このガイドラインは、一度に1つのマッピングにのみ適用されます。複数のマッピングが連鎖しており、最後のマッピングのみがコミットされている場合、トランザクションは複数のインタフェースにわたって実行されるため、それらの複数のマッピングをすべて再起動する必要があります。

特定のタスクまたは手順から再起動する手順は次のとおりです。

  1. オペレータ・ナビゲータで、このタスクまたは手順に移動し、それを編集して、「待機中」状態に切り替えます。

  2. 「オペレータ」ツリー・ビューで、これ以降のすべてのタスクおよび手順を「待機中」状態に設定します。

  3. 次のいずれかの方法を使用して、セッションを再開します。


警告:

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


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

Oracle Data Integrator Studioからセッションを再開するには:

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

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

  3. 「セッションの再開」ダイアログで、新しいセッションの実行に使用するエージェントを指定します。

    セッションを実行するエージェントを選択するには、次のいずれかを実行します:

    • 前のセッション実行に使用されたエージェントを使用するには、「前のエージェントを使用: <エージェント名>」を選択します。

    • セッション実行に使用するエージェントをリストから選択するには、「別のエージェントを選択」を選択します。


      注意:

      ODI Studio組込みのエージェントを使用する場合は、「内部」を選択します。


  4. ログ・レベルを選択します。ログ・レベル6は、ログ・レベル5と動作は同じですが、変数の追跡が追加されていることに注意してください。詳細は、「変数と順序の追跡」を参照してください。

  5. 表示されたセッションを再開してダイアログを閉じるには、「OK」をクリックします。セッションを再開しない場合は、「取消」をクリックします。

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

コマンド行からのセッションの再開

コマンド行からセッションを再開する前に、次の要件を熟読してください。

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

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

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

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

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

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

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

    UNIXシステムの場合:

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

    Windowsシステムの場合:

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

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

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

パラメータ 説明

<session_number>

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

[-log_level]

保持するロギング情報のレベル。ログ・レベル6は、ログ・レベル5と動作は同じですが、変数の追跡が追加されていることに注意してください。セッション再開時にこのlog_levelパラメータが入力されていないと、セッションの実行に使用された前回のログ・レベルが再利用されることに注意してください。詳細は、「変数と順序の追跡」を参照してください。

[-AGENT_URL=<remote_agent_url>]

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



注意:

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



注意:

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

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


セッションの停止

実行中または待機中のセッションは停止できます。たとえば、マッピングにエラーが含まれていることに気付いた場合、または実行時間が長い場合は、セッションを停止する必要がある場合があります。

セッションを停止する方法は次の2通りあることに注意してください。


注意:

即時停止は、タスクの中断をサポートするテクノロジとドライバがある場合のみ機能します。タスクの中断は、statement.cancelメソッドがJDBCドライバで実装されている場合にサポートされます。



注意:

Java EE内またはスタンドアロン・エージェント内で実行されているセッションのみ停止できます。Studioの組込みエージェントで実行されているセッション、あるいはAGENT_URLパラメータを指定せずにstartscen.shまたはstartscen.batスクリプトで開始されたセッションは停止できません。詳細は、「シナリオの実行」を参照してください。


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

ODI Studioからのセッションの停止

Oracle Data Integrator Studioからセッションを停止するには:

  1. オペレータ・ナビゲータで、停止する実行中または待機中のセッションをツリーから選択します。

  2. 右クリックして「標準停止」または「即時停止」を選択します。

  3. 「セッションの停止」ダイアログで「OK」をクリックします。

セッションが停止され、ステータスが「エラー」に変更されます。

コマンド行からのセッションの停止

コマンド行からセッションを停止する前に、次の要件を熟読してください。

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

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

コマンド行からセッションを停止するには:

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

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

    UNIXシステムの場合:

    ./stopsession.sh <session_id> [-AGENT_URL=<remote_agent_url>] [-STOP_LEVEL=<normal (デフォルト) | immediate>]

    Windowsシステムの場合:

    stopsession.bat <session_id> ["-AGENT_URL=<remote_agent_url>"] ["-STOP_LEVEL=<normal (default) | immediate>"]

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

表21-4 StopSessionコマンドのパラメータ

パラメータ 説明

<session_id>

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

[-AGENT_URL=<remote_agent_url>

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

[-STOP_LEVEL=<normal (デフォルト) | immediate>]

実行中のセッションの停止に使用するレベル。省略すると、normalがデフォルトの停止レベルとして使用されます。



注意:

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


ロード計画の実行

ロード計画は複数の方法で実行できます。


注意:

ロード計画は、「ローカル(エージェントなし)」のODI Studioの組込みエージェントを使用して実行することはできません。


ODI Studioからのロード計画の実行

ODI Studioでは、デザイナ・ナビゲータまたはオペレータ・ナビゲータでロード計画を実行できます。

デザイナ・ナビゲータまたはオペレータ・ナビゲータでロード計画を実行するには:

  1. 「ロード計画とシナリオ」アコーディオンで、実行するロード計画を選択します。

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

  3. 「ロード計画の開始」ダイアログで、実行パラメータを選択します。

    • ロード計画が実行される「コンテキスト」を選択します。

    • ステップを実行する「論理エージェント」を選択します。

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

      ログ・レベル6は、ログ・レベル5と動作は同じですが、変数の追跡が追加されていることに注意してください。詳細は、「変数と順序の追跡」を参照してください。

      「ロード計画」で定義された「セッション・タスクのログ・レベル」の値を使用するには、「セッション・タスクのログ・レベルの使用」(デフォルト)を選択します。

    • 変数表に、ロード計画に使用する変数の起動値を入力します。

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

  5. 「ロード計画が開始しました」ウィンドウが表示されます。

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

ロード計画の新規の実行が開始されます。ロード計画インスタンスが作成され、最初のロード計画が実行されます。ロード計画実行はオペレータ・ナビゲータで確認できます。

コマンド行からのロード計画の実行

コマンド行からロード計画を開始できます。

コマンド行からロード計画を実行する前に、次の要件を熟読してください。

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

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

  • ロード計画実行は、AGENT_URLパラメータで識別されたランタイム・エージェントに対して開始されます。

コマンド行からロード計画を開始するには:

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

  2. 次のコマンドを入力して、ロード計画を開始します。

    UNIXシステムの場合:

    ./startloadplan.sh <load_plan_name> <context_code> [log_level] -AGENT_URL=<agent_url> [-KEYWORDS=<keywords>] [<variable>=<value>]*

    WINDOWSシステムの場合:

    startloadplan.bat <load_plan_name> <context_code> [log_level]"-AGENT_URL=<agent_url>" ["-KEYWORDS=<keywords>"] ["<variable>=<value>"]*


注意:

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

UNIXシステムの場合:

./startloadplan.sh DWLoadPlan DEV -AGENT_URL=http://localhost:20910/oraclediagent

WINDOWSシステムの場合:

startloadplan.bat DWLoadPlan DEV "-AGENT_URL=http://localhost:20910/oraclediagent"


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

表21-5 Startloadplanコマンドのパラメータ

パラメータ 説明

<load_plan_name>

開始するロード計画の名前(必須)。

<context_code>

ロード計画の開始に使用するコンテキストのコード。この値の指定を省略すると、コール側セッションのコンテキストが使用されます(必須)。

[log_level]

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

ログ・レベル6は、ログ・レベル5と動作は同じですが、変数の追跡が追加されていることに注意してください。デフォルトは、ロード計画の「セッション・タスクのログ・レベル」(ロード計画の開始に使用されたレベル)です。詳細は、「変数と順序の追跡」を参照してください。

["-AGENT_URL=<agent_url>"]

ロード計画を開始する物理エージェントのURL(必須)。

["-KEYWORDS=<Keywords>"]

セッション・フォルダおよび自動分類によるODIログの編成を促進するためのキーワード。このロード計画に関連付けるキーワードのカンマ区切りリストを入力します。

["variable>=<value> "]

ロード計画変数の起動値(オプション)。プロジェクト変数は<project_code>.<variable_name>で、グローバル変数はGLOBAL.<variable_name>で指定します。このリストは、<variable>=<value>の形式になります。

日付および数値変数の書式は、次のとおりです:

  • 日付: yyyy-MM-dd'T'HH:mm:ssZ

    例: 2009-12-06T15:59:34+0100

  • 数値: 整数値

    例: 29833

例:

"A_PROJ.A_REFRESH_VAR=bb" "A_PROJ.A_CROSS_PROJ_VAR=aa" "A_PROJ.A_VAR=cc"


ロード計画実行の再開

ロード計画を再開すると、選択したロード計画インスタンスに対する新規の実行が開始します。ロード計画の再開では、エラーになったステップの「再開タイプ」パラメータにより、ロード計画および子セッションの再開方法が定義されます。詳細は、「再開動作の定義」および「セッションの再開」を参照してください。


注意:

ロード計画インスタンスの再開は、最近の(最大番号の)実行ステータスに依存します。再開が有効になるのは、最近の実行ステータスが「エラー」の場合のみです。


ロード計画は複数の方法で再開できます。

ODI Studioからのロード計画の再開

ODI Studioからロード計画を再開するには:

  1. オペレータ・ナビゲータで、「ロード計画実行」アコーディオンから再開するロード計画実行を選択します。

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

  3. 「ロード計画の再開」ダイアログで、ロード計画を再開するエージェントを選択します。オプションで、異なるログ・レベルを選択します。

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

ロード計画が再開され、新規のロード計画実行が作成されます。

コマンド行からのロード計画の再開

コマンド行からロード計画を再開する前に、次の要件を熟読してください。

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

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

  • ロード計画実行は、AGENT_URLパラメータで識別されたリモート・ランタイム・エージェントに対して再開されます。

コマンド行からロード計画を再開するには:

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

  2. ロード計画を再開するには、次のコマンドを入力します。

    UNIXシステムの場合:

    ./restartloadplan.sh <load_plan_instance_id> [log_level] -AGENT_URL=<agent_url>

    WINDOWSシステムの場合:

    restartloadplan.bat <load_plan_instance_id> [log_level] "-AGENT_URL=<agent_url>"


注意:

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


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

表21-6 Restartloadplanコマンドのパラメータ

パラメータ 説明

<load_plan_instance_id>

停止または失敗となり、再開するロード計画インスタンスのID(必須)。

[log_level]

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

ログ・レベル6は、ログ・レベル5と動作は同じですが、変数の追跡が追加されていることに注意してください。デフォルトは、ロード計画の前回の実行に使用されたログ・レベルの値です。

詳細は、「変数と順序の追跡」を参照してください。

["-AGENT_URL=<agent_url>"]

ロード計画を開始する物理エージェントのURL(オプション)。


ロード計画実行の停止

実行中または待機中のロード計画実行を停止できます。たとえば、ロード計画にエラーが含まれていることに気付いた場合、または実行時間が長い場合は、ロード計画実行を停止することがあります。

ロード計画実行を停止する方法は2通りあることに注意してください:

ロード計画は複数の方法で停止できます。

ODI Studioからのロード計画の停止

ODI Studioからロード計画実行を停止するには:

  1. オペレータ・ナビゲータで、「ロード計画実行」アコーディオンから(実行中または待機中の)停止するロード計画実行を選択します。

  2. 右クリックして「標準停止」または「即時停止」を選択します。

  3. 「ロード計画の停止」ダイアログで、ロード計画を停止するエージェントを選択します。

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

ロード計画実行が停止され、ステータスが「エラー」に変更されます。

コマンド行からのロード計画実行の停止

コマンド行からロード計画を停止する前に、次の要件を熟読してください。

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

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

  • ロード計画実行シグナルは、AGENT_URLパラメータで識別されたリモート・ランタイム・エージェントによって送信されます。

コマンド行からロード計画実行を停止するには:

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

  2. 次のコマンドを入力して、ロード計画を開始します。

    UNIXシステムの場合:

    ./stoploadplan.sh <load_plan_instance_id> [<load_plan_run_count>] -AGENT_URL=<agent_url> [-STOP_LEVEL=<normal (デフォルト) | immediate>]

    WINDOWSシステムの場合:

    stoploadplan.bat <load_plan_instance_id> [<load_plan_run_count>] "-AGENT_URL=<agent_url>" ["-STOP_LEVEL=<normal (デフォルト) | immediate>"]

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

表21-7 Stoploadplanコマンドのパラメータ

パラメータ 説明

<load_plan_instance_id>

停止する実行中のロード計画実行のID(必須)。

[<load_plan_run_count>]

ロード計画インスタンスのロード計画実行カウント。最新のロード計画実行が誤って停止されないようにします。このパラメータを省略すると、最新のロード計画実行カウントが使用されます(オプション)。

["-AGENT_URL=<agent_url>"]

ロード計画を開始する物理エージェントのURL(オプション)。

[-STOP_LEVEL=<normal (デフォルト) | immediate>]

ロード計画実行の停止に使用するレベル。デフォルトはnormalです。



注意:

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


シナリオとロード計画のスケジューリング

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

組込みスケジューラを使用したシナリオまたはロード計画のスケジューリング

スケジュールは、シナリオおよびロード計画に関連付けることができます。このようなスケジュールは、スケジューラ組込みのランタイム・エージェントによって管理されます。

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

例:

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

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

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

シナリオまたはロード計画のスケジューリング

Oracle Data Integrator Studioからシナリオまたはロード計画をスケジュールするには:

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

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

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

    プロパティ 説明

    コンテキスト

    シナリオまたはロード計画が開始されるコンテキスト。

    エージェント

    シナリオまたはロード計画を実行するエージェント。

    ログ・レベル

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


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

    プロパティ 説明

    アクティブ

    エージェントの再開時、または物理エージェントのスケジュールの更新時に、スケジュールがアクティブになります。

    非アクティブ

    スケジュールはアクティブではないため、実行されません。

    アクティブな期間

    スケジュールのアクティビティ範囲。ある期間中にアクティブなスケジュールは、この特定の期間内のみに実行されます。


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

    プロパティ 説明

    実行

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


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

    プロパティ 説明

    なし(1回実行)

    シナリオまたはロード計画は1回のみ実行されます。

    複数回

    シナリオまたはロード計画は複数回繰り返されます。

    • 最大反復数: サイクル中にシナリオが繰り返される最大回数。

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

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

    制約

    実行中に問題が発生した場合、1つのサイクル反復に制限を設定できます。

    • 失敗時の試行回数: 1回の反復での最大連続試行回数。

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


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

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

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

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

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

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

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

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

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

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

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

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

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

OdiUpdateAgentScheduleツール(「OdiUpdateAgentSchedule」を参照)を使用して、エージェントのスケジュールを更新することもできます。

スケジュールの表示

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


注意:

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


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

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

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

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

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

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

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

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

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

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


注意:

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


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

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

表21-8 スケジューリング詳細

パラメータ 説明

選択したエージェント

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

選択した作業リポジトリ

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

スケジュールの範囲

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

更新

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

時間範囲

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

シナリオ詳細

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


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

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

外部スケジューラを使用したシナリオまたはロード計画のスケジューリング

外部スケジューラを使用してシナリオまたはロード計画を開始するには、次のいずれかの方法で実行します。

  • 外部スケジューラでのstartscenまたはstartloadplanコマンドの使用

  • シナリオまたはロード計画実行をトリガーするWebサービス・インタフェースの使用

詳細は、次を参照してください:

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

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

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

実行のシミュレーション

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


注意:

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Webサービス操作では、SOAPリクエストにあるプレーン・テキストのパスワードを受け入れます。したがって、保護されていないネットワーク上でWebサービスを呼び出すには、保護されたプロトコル(HTTPS)を使用することをお薦めします。または、外部認証も使用できます。詳細は、「外部認証によるランタイムWebサービスの使用」を参照してください。

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

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要素の値に応じたレスポンスでセッションIDが戻されます。

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

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

この操作では、次の形式でレスポンスが戻されます。

<?xml version = '1.0' encoding = 'ISO-8859-1'?><ns2:OdiStartScenResponse xmlns:ns2="xmlns.oracle.com/odi/OdiInvoke/">   <Session>543001</Session></ns2:OdiStartScenResponse>

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>

この操作では、次の形式でレスポンスが戻されます。

      <SessionStatusResponse>
         <SessionId>session_id</SessionId>
         <SessionStatus>status_code</SessionStatus>
         <SessionReturnCode>return_code</SessionReturnCode>
      </SessionStatusResponse>

正常に終了したセッションのリターン・コードはゼロです。可能性のあるステータス・コードは、次のとおりです:

  • D: 完了

  • E: エラー

  • M: 警告

  • Q: キュー

  • R: 実行中

  • W: 待機中

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>
            <LogLevel>log_level</LogLevel>
            <Variables>
            <Name>variable_name</name>
            <Value>variable_value</Value>
            </Variables>
         </Request> 
      </invokeRestartSessRequest> 

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

Webサービスを使用したロード計画の実行

エージェントWebサービスのinvokeStartLoadPlan操作では、指定作業リポジトリ内のロード計画が開始されます。ロード計画はWebサービスを提供するエージェントによって実行されます。invokeStartLoadPlan操作のパラメータについて、次のことに注意してください。

  • OdiPassword: 平文のパスワードを使用します。

  • Context: コンテキスト・コードを使用します。

  • Keywords: 複数のキーワードを使用する場合は、キーワードのカンマ区切りリストを入力します。

  • Name: 変数には完全修飾名(GLOBAL.variable_nameまたはPROJECT_CODE.variable_name)を使用します。

次に、OdiStartLoadPlanRequestの記述形式を示します。

<OdiStartLoadPlanRequest>
   <Credentials> 
      <OdiUser>odi_user</OdiUser> 
      <OdiPassword>odi_password</OdiPassword> 
      <WorkRepository>work_repository</WorkRepository>
   </Credentials> 
   <StartLoadPlanRequest>
      <LoadPlanName>load_plan_name</LoadPlanName>
      <Context>context</Context>
      <Keywords>keywords</Keywords>
      <LogLevel>log_level</LogLevel>
      <LoadPlanStartupParameters>
         <Name>variable_name</Name>
         <Value>variable_value</Value>
      </LoadPlanStartupParameters>
    </StartLoadPlanRequest>
</OdiStartLoadPlanRequest>

invokeStartLoadPlan操作のレスポンスでは、次の値が戻されます。

  • ロード計画実行ID

  • ロード計画実行カウント

  • マスター・リポジトリID

  • マスター・リポジトリ・タイムスタンプ

次に、OdiStartLoadPlanレスポンスの例を示します。

<?xml version = '1.0' encoding = 'UTF8'?>
<ns2:OdiStartLoadPlanResponse xmlns:ns2="xmlns.oracle.com/odi/OdiInvoke/">
   <executionInfo>
      <StartedRunInformation>
         <OdiLoadPlanInstanceId>2001</OdiLoadPlanInstanceId>
         <RunCount>1</RunCount>
         <MasterRepositoryId>0</MasterRepositoryId>
         <MasterRepositoryTimestamp>1290196542926</MasterRepositoryTimestamp>
      </StartedRunInformation>
   </executionInfo>
</ns2:OdiStartLoadPlanResponse>

Webサービスを使用したロード計画実行の停止

エージェントWebサービスのinvokeStopLoadPlan操作では、インスタンスIDと実行番号によって識別された、指定作業リポジトリ内の実行中のロード計画実行が停止されます。ロード計画インスタンスは、Webサービスを提供するエージェントによって停止されます。StopLevelパラメータには、次の値を指定できます。

  • NORMAL: 現在のタスクが終了するまで待機してからセッションを停止します。

  • IMMEDIATE: セッションを即時に停止します。オープン中のすべての文が取り消され、トランザクションがロールバックされます。

ロード計画実行の停止方法の詳細は、「ロード計画実行の停止」を参照してください。invokeStopLoadPlan操作で使用するその他のパラメータの詳細は、「Webサービスを使用したロード計画の実行」を参照してください。

<OdiStopLoadPlanRequest>
   <Credentials> 
      <OdiUser>odi_user</OdiUser> 
      <OdiPassword>odi_password</OdiPassword> 
      <WorkRepository>work_repository</WorkRepository>
   </Credentials> 
   <OdiStopLoadPlanRequest>
      <LoadPlanInstanceId>load_plan_instance_id</LoadPlanInstanceId>
      <LoadPlanInstanceRunCount>load_plan_run_count</LoadPlanInstanceRunCount>
      <StopLevel>stop_level</StopLevel>
   </OdiStopLoadPlanRequest>
</OdiStopLoadPlanRequest>

invokeStopLoadPlan操作のレスポンスでは、次の値が戻されます。

  • ロード計画実行ID

  • ロード計画実行カウント

  • マスター・リポジトリID

  • マスター・リポジトリ・タイムスタンプ

次に、OdiStopLoadPlanレスポンスの例を示します。

<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
   <S:Body>
      <ns2:OdiStopLoadPlanResponse xmlns:ns2="xmlns.oracle.com/odi/OdiInvoke/">
         <executionInfo>
            <StoppedRunInformation>
              <OdiLoadPlanInstanceId>3001</OdiLoadPlanInstanceId>
              <RunCount>1</RunCount>
              <MasterRepositoryId>0</MasterRepositoryId>
              <MasterRepositoryTimestamp>1290196542926</MasterRepositoryTimestamp>
            </StoppedRunInformation>
         </executionInfo>
      </ns2:OdiStopLoadPlanResponse>
   </S:Body>
</S:Envelope>

Webサービスを使用したロード計画インスタンスの再開

エージェントWebサービスのinvokeRestartLoadPlan操作では、インスタンスIDによって識別された、指定作業リポジトリ内のロード計画インスタンスが再開されます。ロード計画インスタンスは、Webサービスを提供するエージェントによって再開されます。

<OdiRestartLoadPlanRequest>
   <Credentials> 
      <OdiUser>odi_user</OdiUser> 
      <OdiPassword>odi_password</OdiPassword> 
      <WorkRepository>work_repository</WorkRepository>
   </Credentials> 
   <RestartLoadPlanRequest>
      <LoadPlanInstanceId>load_plan_instance_id</LoadPlanInstanceId>
      <LogLevel>log_level</LogLevel>
   </RestartLoadPlanRequest>
</OdiRestartLoadPlanRequest>

Webサービスを使用したロード計画実行ステータスのモニタリング

エージェントWebサービスのgetLoadPlanStatus操作では、インスタンスIDと実行番号によって識別された、指定作業リポジトリ内の1つ以上のロード計画のステータスが戻されます。実行中のロード計画と完了したロード計画の両方のインスタンスが対象となります。

<OdiGetLoadPlanStatusRequest> 
   <Credentials> 
       <OdiUser>odi_user</OdiUser> 
       <OdiPassword>odi_password</OdiPassword> 
      <WorkRepository>work_repository</WorkRepository>
   </Credentials> 
   <LoadPlans> 
      <LoadPlanInstanceId>load_plan_instance_id</LoadPlanInstanceId>
      <LoadPlanRunNumber>load_plan_run_number</LoadPlanRunNumber>
   </LoadPlans> 
</OdiGetLoadPlanStatusRequest> 

getStopLoadPlanStatus操作のレスポンスでは、次の値が戻されます。

  • ロード計画実行ID

  • ロード計画実行カウント

  • ロード計画実行リターン・コード

  • ロード計画メッセージ

次に、OdiGetLoadPlanStatusレスポンスの例を示します。

<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
   <S:Body>
      <ns2:OdiGetLoadPlanStatusResponse xmlns:ns2="xmlns.oracle.com/odi/OdiInvoke/">
         <LoadPlanStatusResponse>
            <LoadPlanInstanceId>3001</LoadPlanInstanceId>
            <LoadPlanRunNumber>1</LoadPlanRunNumber>
            <LoadPlanStatus>E</LoadPlanStatus>
            <LoadPlanReturnCode>ODI-1530</LoadPlanReturnCode>
            <LoadPlanMessage>ODI-1530: Load plan instance was stopped by user request.</LoadPlanMessage>
         </LoadPlanStatusResponse>
      </ns2:OdiGetLoadPlanStatusResponse>
   </S:Body>
</S:Envelope>

Webサービスを使用したコンテキストのリスト(非推奨)


注意:

公開WebサービスのlistContext操作は、11.1.1.7では非推奨であり、今後のリリースで削除されます。


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

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

Webサービスを使用したシナリオのリスト(非推奨)


注意:

公開WebサービスのlistScenario操作は、11.1.1.7では非推奨であり、今後のリリースで削除されます。


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

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

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

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

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

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

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

  • この項で説明されているタスクの実行に必要なコマンド行スクリプトは、Oracle Data Integrator Standalone Agentがインストールされている場合のみ使用できます。スタンドアロン・エージェントのインストール方法は、『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> -n <session_name> -k <session_keyword> -a <assign_variable> -t <timeout> -i <interval> -h <http_timeout> -v

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

表21-9 Startscenremoteコマンドのパラメータ

パラメータ 説明

<scenario_name>

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

<scenario_version>

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

<context_code>

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

<work_repository>

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

<remote_agent_url>

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

<odi_user>

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

<odi_password>

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

-l <log_level>

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

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

ログ・レベル6は、ログ・レベル5と動作は同じですが、変数の追跡が追加されていることに注意してください。詳細は、「変数と順序の追跡」を参照してください。

例: startscen.bat SCENAR 1 GLOBAL 5

-s <sync_mode>

実行モード:

  • 0: 同期

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

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

-n <session_name>

セッションの名前。

-k <session_keyword>

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

-a <assign_variable>

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

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

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

例: -a PROJ1.VAR1=100

-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

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

表21-10 GetSessionStatusRemoteコマンドのパラメータ

パラメータ 説明

<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

冗長モード。


外部認証によるランタイムWebサービスの使用

この章のWebサービスの例では、OdiUserおよびOdiPassword要素を使用して、SOAP本文内部のODI認証を使用しています。

Oracle Platform Security Services (OPSS)が構成されたリポジトリおよびコンテナ・ベースの認証に外部認証を設定する場合は(詳細は、「外部認証の構成」を参照)、HTTP基本認証、WS-Securityヘッダー、SAMLトークンなどを使用して認証をWebサービスに渡すことができます。OPSSでは、認証がアイデンティティ・プロバイダによってサーバー側で透過的に処理されます。この場合、OdiUserおよびOdiPassword要素は省略できます。

ランタイムWebサービスは、まずOPSSを使用して認証を試行します。認証パラメータが指定されていない場合は、OPSSによって匿名ユーザーが使用され、OdiUserおよびOdiPasswordがチェックされます。それ以外の場合(つまり、OPSSへの資格証明が正しくない場合)は、OPSSによって認証例外がスローされ、Webサービスは起動されません。


注意:

OPSS認証は、Oracle WebLogic ServerにデプロイされたパブリックWebサービスまたはJEEエージェントでのみ使用できます。


WS-Addressingの使用

この章で説明しているWebサービスは、オプションでWS-Addressingをサポートしています。WS-Addressingは、ランタイムWebサービス・コールの完了時にエンドポイントでのレスポンスを可能にします。このため、ReplyToおよびFaultToという2つのエンドポイントを、SOAPリクエスト・ヘッダーにオプションで指定できます。

これらのエンドポイントは、次のように使用されます:

  • ランタイムWebサービス・コールが正常に完了した場合は、Actionの結果がReplyToエンドポイントに送信されます。

  • SOAPリクエストでエラーが検出されたり、Oracle Data Integratorがリクエストを処理できない場合は、FaultToアドレスにメッセージが送信されます。FaultToアドレスが指定されていない場合は、かわりにReplyToアドレスにエラーが送信されます。

  • Oracle Data Integratorエージェントでリクエストの処理中にエラーが検出され、ODIエラー・メッセージを生成する必要がある場合は、このエラー・メッセージがReplyToアドレスに送信されます。

有効なReplyToアドレスが指定されていない場合、コールバック操作はコールバック・モードで実行されません。

次に、セッション20001のセッション・ステータスを取得するために送信されたリクエストの例を示します:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:odi="xmlns.oracle.com/odi/OdiInvoke/">
<soapenv:Header xmlns:wsa="http://www.w3.org/2005/08/addressing">
<wsa:Action soapenv:mustUnderstand="1">xmlns.oracle.com/odi/OdiInvoke/getSessionStatus</wsa:Action>
<wsa:ReplyTo soapenv:mustUnderstand="1">
<wsa:Address>http://host001:8080/examples/servlets/servlet/RequestPrinter</wsa:Address>
</wsa:ReplyTo>
<wsa:MessageID soapenv:mustUnderstand="1">uuid:71bd2037-fbef-4e1c-a991-4afcd8cb2b8e</wsa:MessageID>
</soapenv:Header>
   <soapenv:Body>
      <odi:OdiGetSessionsStatusRequest>
         <Credentials>
            <!--You may enter the following 3 items in any order-->
            <OdiUser></OdiUser>
            <OdiPassword></OdiPassword>
            <WorkRepository>WORKREP1</WorkRepository>
         </Credentials>
         <!--Zero or more repetitions:-->
         <SessionIds>20001</SessionIds>
      </odi:OdiGetSessionsStatusRequest>
   </soapenv:Body>
</soapenv:Envelope>
 

次の呼出しはReplyToアドレス(http://host001:8080/examples/servlets/servlet/RequestPrinter)に対して行われます。

この呼出しには、リクエストに指定されたActionへのレスポンスと、リクエストとレスポンスを関係付けるための元のMessageIDが含まれています。

<?xml version='1.0' encoding='UTF-8'?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Header>
<To xmlns="http://www.w3.org/2005/08/addressing">http:// host001:8080/examples/servlets/servlet/RequestPrinter</To>
<Action xmlns="http://www.w3.org/2005/08/addressing">xmlns.oracle.com/odi/OdiInvoke/:requestPortType:getSessionStatusResponse</Action>
<MessageID xmlns="http://www.w3.org/2005/08/addressing">uuid:eda383f4-3cb5-4dc2-988c-a4f7051763ea</MessageID>
<RelatesTo xmlns="http://www.w3.org/2005/08/addressing">uuid:71bd2037-fbef-4e1c-a991-4afcd8cb2b8e</RelatesTo>
</S:Header>
<S:Body>
<ns2:OdiGetSessionsStatusResponse xmlns:ns2="xmlns.oracle.com/odi/OdiInvoke/">
<SessionStatusResponse>
               <SessionId>26001</SessionId>
               <SessionStatus>D</SessionStatus>
               <SessionReturnCode>0</SessionReturnCode>
           </SessionStatusResponse>
</ns2:OdiGetSessionsStatusResponse>
    </S:Body>
</S:Envelope>

WS-Adressingの詳細は、次のURLのWorld Wide Web Consortium (W3C) Webサイトを参照してください。

コールバックを使用する非同期Webサービスの使用

JRF非同期Webサービスまたは非同期BPELプロセスのパターンに従って、時間のかかるWebサービス操作を非同期で開始できます。これらは、"リクエスト-レスポンス・ポート・ペア"のパターンに従います。

このパターンでは、Webサービス・クライアントがコールバック操作を実装します。クライアントがリクエストした操作を完了すると、サーバーはこのコールバック操作に結果を送信します。

エージェントWebサービスのinvokeStartScenWithCallbackおよびinvokeRestartSessWithCallbackという2つの特定の操作では、このパターンがサポートされています。

これらの操作には次の機能があります:

  • レスポンスは返されません。これらは一方向の操作です。

  • これらの2つの操作を呼び出すクライアントは、invokeStartSceCallbackおよびinvokeRestartSessCallbackの一方向操作をそれぞれ実装する必要があります。invokeStartScenWithCallbackおよびinvokeRestartSessWithCallbackの各アクションの結果は、これらの操作に送信されます。

  • 呼出しでは、ReplyToアドレスおよび使用する可能性のあるFaultToアドレスをSOAPヘッダーで指定する必要があります。ReplyToアドレスを指定せずにメソッドを呼び出すと、操作は同期で実行されます(これは、invokeStartScenまたはinvokeRestartSess操作に対応します)。操作でエラーが発生した場合は、ReplyToアドレスまたはFaultToアドレスに送信されます。

invokeStartScenWithCallbackおよびinvokeRestartSessWithCallbackを使用して同期で開始されたシナリオまたはセッションは、一方向の操作であるため、SOAPレスポンスを返しません。セッションが完了すると、コールバック・アドレスにレスポンスが送信されます。


注意:

Oracle BPELではこれらの操作が自動的に実装され、それらのエンドポイントを示すWS-Addressingヘッダーが送信されます。