この章では、統合プロセスの実行方法とスケジュール方法について説明します。
この章では、次の項目について説明します。
実行は、Oracle Data Integratorで統合タスクの実行が必要な場合に発生します。この統合タスクは次のいずれかです。
Oracle Data Integrator Studioから開始されたカスタマイズしたリバースエンジニアリング、ジャーナル化操作、静的チェックなど、モデル、サブモデルまたはデータストアに対する操作
通常はOracle Data Integrator Studioから開始されるインタフェース、パッケージ、プロシージャなどの設計時オブジェクトの実行
Oracle Data Integrator Studioまたはコマンドラインから、あるいはスケジュールやWebサービス・インタフェースを介して起動されたランタイム・シナリオまたはロード計画の実行
Oracle Data Integratorでは、実行用のコードは、セッションの形式かロード計画を実行する場合はロード計画実行の形式で生成されます。
ランタイム・エージェントは、このコードを処理してソースとターゲットに接続し、データ統合を実行します。エージェントは、指定の実行コンテキストを使用して、これらのソースとターゲットを配置します。
Oracle Data Integrator Studioから実行が開始されると、「実行」ダイアログが表示されます。このダイアログには、表21-1にリストされている実行パラメータが表示されます。
表21-1 実行パラメータ
プロパティ | 説明 |
---|---|
コンテキスト |
セッションが開始されるコンテキスト。 |
エージェント |
インタフェースを実行するエージェント。「ローカル(エージェントなし)」を選択することで、Oracle Data Integrator Studioに組み込まれているエージェントを使用して、オブジェクトを実行することもできます。 |
ログ・レベル |
保持するロギング情報のレベル。この値以下のログ・レベルが定義されているすべてのセッション・タスクは、セッション完了時に、セッション・ログに保持されます。ただし、オブジェクトの実行が異常終了した場合は、この設定にかかわらず、すべてのタスクが保持されます。 ログ・レベル6は、ログ・レベル5と動作は同じですが、変数の追跡が追加されていることに注意してください。詳細は、12.2.3.11項「変数と順序の追跡」を参照してください。 |
シミュレーション |
実行をシミュレーションして実行レポートを作成する場合は、「シミュレーション」を選択します。詳細は、21.10項「実行のシミュレーション」を参照してください。 |
セッションのライフ・サイクル
この項では、セッションのライフ・サイクルについて説明します。ロード計画実行およびロード計画のライフ・サイクルの詳細は、14.1項「ロード計画の概要」を参照してください。
セッションのライフ・サイクルは、次のとおりです。
実行リクエストがエージェントに送信されるか、またはエージェントがスケジュールから実行をトリガーします。
設計時オブジェクト(インタフェース、パッケージなど)に対してOracle Data Integrator Studioから実行がトリガーされた場合、Studioでは、リクエストの送信前に、作業リポジトリ内にセッションのコードが事前に生成されることに注意してください。実行がシナリオから開始された場合は、そのシナリオにすでに事前生成のコードが含まれているため、このフェーズは不要です。
エージェントはセッションに対するコードの生成を完了します。エージェントは用意されたコンテキストを使用して、データ・サーバー接続や完全修飾表名などの物理的な情報を解決します。生成されたコードは、「待機中」ステータスのセッションとして作業リポジトリに書き込まれます。
エージェントは、セッションの実行に必要なソース・データ・サーバーとターゲット・データ・サーバーへの接続を初期化します。
エージェントは実行リクエストを認識します。実行がStudio,から開始されている場合は、「セッションを開始しました」ダイアログが表示されます。
エージェントは、このセッションに含まれている各タスクを実行します。これには、セッションのタスクに含まれているコードを実行するデータベース・サーバー、オペレーティング・システムまたはスクリプト・エンジンの機能が使用されます。
セッションの処理中に、エージェントはリポジトリ内の実行ログを更新し、実行統計とエラー・メッセージをレポートします。
セッションが開始された後は、オペレータ・ナビゲータなどを使用してそのセッションをログで監視できます。セッションの監視に関する詳細は、第22章「統合プロセスの監視」を参照してください。
セッションが完了すると、タスクは、保存されるか、このセッションの開始時に指定したログ・レベルの値に従ってログから削除されます。
注意: セッションは常に、一意のセッション番号(セッションID)によって識別されます。この番号はセッションを監視しているときに表示できます。また、この番号はセッションの開始時にコマンドラインまたはWebサービス・インタフェースによっても戻されます。 |
コマンドラインやWebサービスなどの他の場所から実行を開始するときは、同じ実行パラメータを指定して、同じ「セッションを開始しました」フィードバックを受信します。セッションがコマンドラインまたはWebサービス・インタフェースから同期で開始された場合、そのコマンドラインまたはWebサービスはセッションが完了するまで待機し、セッション・リターン・コードとエラー・メッセージ(ある場合)を提供します。
インタフェース、プロシージャおよびパッケージは、Oracle Data Integrator Studioのデザイナ・ナビゲータから実行できる設計時オブジェクトです。
インタフェース実行の詳細は、11.3.8項「統合インタフェースの実行」を参照してください。
プロシージャ実行の詳細は、12.1.3項「プロシージャの使用」を参照してください。
パッケージ実行の詳細は、10.5項「パッケージの実行」を参照してください。
モデル操作の詳細は、5.2項「モデルの作成およびリバースエンジニアリング」、5.6項「モデルのデータ品質のチェック」および7.2項「ジャーナル化の設定」を参照してください。
シナリオは複数の方法で実行できます。
Webサービスからの実行。詳細は、21.11.2項「Webサービスを使用したシナリオの実行」を参照してください。
ODIコンソールからの操作。23.2.3項「シナリオおよびセッションの管理」を参照してください。
シナリオは、Oracle Data Integrator Studioのデザイナ・ナビゲータまたはオペレータ・ナビゲータから開始できます。
Oracle Data Integrator Studioからシナリオを開始するには:
「プロジェクト」アコーディオン(デザイナ・ナビゲータ内)または「シナリオ」アコーディオン(オペレータ・ナビゲータ内)でシナリオを選択します。
右クリックして「実行」を選択します。
「実行」ダイアログで実行パラメータを設定します。詳細は、表21-1を参照してください。Oracle Data Integrator Studioに組み込まれているエージェントを使用してシナリオを実行するには、「ローカル(エージェントなし)」を選択します。
「OK」をクリックします。
シナリオでパラメータとして変数が使用されている場合は、「変数値」ダイログが表示されます。セッション変数の値を選択します。変数に対して「最新の値」を選択すると、その変数の現在値が使用され、使用可能な値がない場合は、デフォルト値が使用されます。
エージェントがセッションの処理を開始すると、「セッションを開始しました」ダイアログが表示されます。
シナリオはコマンドラインから開始できます。
コマンドラインからシナリオを実行する前に、次の要件を熟読してください:
この項で説明されているタスクの実行に必要なコマンドライン・スクリプトは、Oracle Data Integrator Standalone Agentがインストールされている場合のみ使用できます。スタンドアロン・エージェントのインストール方法は、Oracle Fusion Middleware Oracle Data Integratorインストレーション・ガイドを参照してください。
このコマンドを使用する場合は、リポジトリへの接続がodiparamsファイルで構成されている必要があります。詳細は、第4章「エージェントの管理」を参照してください。
コマンドラインからシナリオを開始すると、デフォルトでは、セッションはリモートのランタイム・エージェントに対しては開始されませんが、コマンドラインから開始されたローカルのJavaプロセスによって実行されます。このプロセスは、ローカルで中断できますが、実際のランタイム・エージェントではないため、セッション停止シグナルを受信できません。したがって、この方法で開始したセッションをリモートで停止することはできません。
このプロセスは、Data IntegratorログのLocal Agent
名に基づいて識別されます。この名前はNAME
パラメータを使用して変更できます。
ランタイム・エージェントに対してセッションを開始する場合は、AGENT_URL
パラメータを使用する必要があります。
コマンドラインからシナリオを開始するには:
ディレクトリをOracle Data Integratorインストールの/agent/bin
ディレクトリに変更します。
次のコマンドを入力して、シナリオを開始します。
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の場合
Windowsの場合
|
表21-2に、様々なパラメータ(必須とオプションの両方)を示します。パラメータの前にはハイフン(-)を、可能な値の前には等号(=)を付けます。この場合、コマンドを入力するオペレーティング・システムに固有の文字保護の構文に準拠する必要があります。
表21-2 Startscenコマンドのパラメータ
パラメータ | 説明 |
---|---|
|
シナリオの名前(必須)。 |
|
シナリオのバージョン(必須)。指定したバージョンが-1の場合は、そのシナリオの最新バージョンが実行されます。 |
|
実行コンテキストのコード(必須)。 |
|
保持するロギング情報のレベル。 このパラメータの形式は 例: |
|
このセッションを実行するランタイム・エージェントのURL。このパラメータを設定した場合、 |
[-ASYNC=yes|no] |
リモート・エージェントの非同期実行には、Yesに設定します。 非同期実行が使用されている場合、シナリオのセッションIDが戻されます。 |
|
このセッションの実行ログに、 注意:
既存のいずれの物理エージェント名とも一致しない 指定の物理エージェントに対してセッションを開始する場合は、かわりに |
|
実行ログに表示するセッションの名前。 |
|
このセッションに関連付けられているキーワードのリスト。これらのキーワードによって、セッションの識別が容易になります。このリストは、カンマ区切りのキーワード・リストです。 |
|
このパラメータは、複数の変数を割り当てる際に反復できます。 startscenコマンドラインでは、変数名の接頭辞にハッシュ記号( |
エラーが発生したセッション、またはユーザーが停止したセッションは再開できます。
Oracle Data Integratorは、ソース・データ・サーバーおよびターゲット・データ・サーバーとの対話時にJDBCトランザクションを使用し、セッションがエラー状態で終了した場合、オープン・トランザクションの状態は永続化されません。適切な再起動ポイントは、未完了のトランザクションを起動したタスクです。そのような再起動ポイントが特定できない場合、エラー状態にある既存のセッションを再開するのではなく、シナリオを実行することで新たなセッションを開始することをお薦めします。
再開できるのは、ステータスが「エラー」または「待機中」のセッションのみです。デフォルトで、セッションは、実行に失敗した最後のタスク(通常は、エラー状態または待機状態のタスク)から再開されます。既存のステージング表での処理を続行し、長い時間のかかるロード・フェーズの再実行を回避するために、セッションを再開する必要がある場合もあります。その場合、ユーザーは、KM固有のトランザクション管理を考慮に入れる必要があります。一般的なガイドラインとしては、ロード・タスクでクラッシュが発生した場合、失敗したロード・タスクから再起動できます。統合フェーズでクラッシュが発生した場合、ターゲットへの統合はトランザクション内で行われるため、最初の統合タスクから再起動します。このガイドラインは、一度に1つのインタフェースにのみ適用されます。複数のインタフェースが連鎖しており、最後のインタフェースのみがコミットされている場合、トランザクションは複数のインタフェースにわたって実行されるため、それらの複数のインタフェースをすべて再起動する必要があります。
特定のタスクまたは手順から再起動する手順は次のとおりです。
オペレータ・ナビゲータで、このタスクまたは手順に移動し、それを編集して、「待機中」状態に切り替えます。
「オペレータ」ツリー・ビューで、これ以降のすべてのタスクおよび手順を「待機中」状態に設定します。
次のいずれかの方法を使用して、セッションを再開します。
Webサービスからの実行。詳細は、21.11.4項「Webサービスを使用したセッションの再開」を参照してください。
ODIコンソールからの操作。23.2.3項「シナリオおよびセッションの管理」を参照してください。
警告: セッションが再開されると、ソース・システムとターゲット・システムへのすべての接続とトランザクションが再度作成され、前回のセッション実行からリカバリされることはありません。したがって、前回の実行からのトランザクションで未コミットの操作が適用されることはありません。また、セッションの正常な続行に必要なデータが存在しない可能性があります。 |
Oracle Data Integrator Studioからセッションを再開するには:
オペレータ・ナビゲータで、再開するセッションを選択します。
右クリックして「再開」を選択します。
「セッションの再開」ダイアログで、新しいセッションの実行に使用するエージェントを指定します。
セッションを実行するエージェントを選択するには、次のいずれかを実行します:
前のセッション実行に使用されたエージェントを使用するには、「前のエージェントを使用: <エージェント名>」を選択します。
セッション実行に使用するエージェントをリストから選択するには、「別のエージェントを選択」を選択します。
注意: ODI Studio組込みのエージェントを使用する場合は、「内部」を選択します。 |
ログ・レベルを選択します。ログ・レベル6は、ログ・レベル5と動作は同じですが、変数の追跡が追加されていることに注意してください。詳細は、12.2.3.11項「変数と順序の追跡」を参照してください。
表示されたセッションを再開してダイアログを閉じるには、「OK」をクリックします。セッションを再開しない場合は、「取消」をクリックします。
Oracle Data Integratorでセッションが再開されると、「セッションを開始しました」ダイアログが表示されます。
コマンドラインからセッションを再開する前に、次の要件を熟読してください。
この項で説明されているタスクの実行に必要なコマンドライン・スクリプトは、Oracle Data Integrator Standalone Agentがインストールされている場合のみ使用できます。スタンドアロン・エージェントのインストール方法は、Oracle Fusion Middleware Oracle Data Integratorインストレーション・ガイドを参照してください。
このコマンドを使用する場合は、リポジトリへの接続がodiparamsファイルで構成されている必要があります。詳細は、第4章「エージェントの管理」を参照してください。
コマンドラインからセッションを再開すると、デフォルトでは、そのセッションはリモートのランタイム・エージェントに対しては開始されませんが、コマンドラインから開始されたローカルのJavaプロセスによって実行されます。このプロセスは、ローカルで中断できますが、実際のランタイム・エージェントではないため、セッション停止シグナルを受信できません。したがって、この方法で開始したセッションをリモートで停止することはできません。
ランタイム・エージェントに対してセッションを開始する場合は、AGENT_URL
パラメータを使用する必要があります。
コマンドラインからセッションを再開するには:
ディレクトリをOracle Data Integratorインストールの/agent/bin
ディレクトリに変更します。
次のコマンドを入力して、シナリオを開始します。
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コマンドのパラメータ
パラメータ | 説明 |
---|---|
|
再開するセッションの番号(ID)。 |
|
保持するロギング情報のレベル。ログ・レベル6は、ログ・レベル5と動作は同じですが、変数の追跡が追加されていることに注意してください。セッション再開時にこのlog_levelパラメータが入力されていないと、セッションの実行に使用された前回のログ・レベルが再利用されることに注意してください。詳細は、12.2.3.11項「変数と順序の追跡」を参照してください。 |
|
このセッションを再開するランタイム・エージェントのURL。デフォルトでは、セッションは、コマンドラインから開始されたローカルのJavaプロセスによって実行されます。 |
注意: コマンドラインからセッションを再開すると、デフォルトでは、そのセッションはリモートのランタイム・エージェントに対しては開始されませんが、コマンドラインから開始されたローカルのJavaプロセスによって実行されます。ランタイム・エージェントに対してセッションを開始する場合は、 |
実行中または待機中のセッションは停止できます。たとえば、インタフェースにエラーが含まれていることに気付いた場合、または実行時間が長い場合は、セッションを停止する必要がある場合があります。
セッションを停止する方法は次の2通りあることに注意してください。
標準: セッションは、現在のタスクの終了後に停止されます。
即時: 現在のタスクがすぐに中断されてセッションが停止されます。このモードを使用すると、長時間実行されているタスク、たとえば長いSQL文をその完了前に停止できます。
注意: 即時停止は、タスクの中断をサポートするテクノロジとドライバがある場合のみ機能します。タスクの中断は、statement.cancel メソッドがJDBCドライバで実装されている場合にサポートされます。 |
注意: Java EE内またはスタンドアロン・エージェント内で実行されているセッションのみ停止できます。Studioの組込みエージェントで実行されているセッション、あるいはAGENT_URL パラメータを指定せずにstartscen.sh またはstartscen.bat スクリプトで開始されたセッションは停止できません。詳細は、21.3項「シナリオの実行」を参照してください。 |
セッションは複数の方法で停止できます。
ODIコンソールからの操作。23.2.3項「シナリオおよびセッションの管理」を参照してください。
Oracle Data Integrator Studioからセッションを停止するには:
オペレータ・ナビゲータで、停止する実行中または待機中のセッションをツリーから選択します。
右クリックして「標準停止」または「即時停止」を選択します。
「セッションの停止」ダイアログで「OK」をクリックします。
セッションが停止され、ステータスが「エラー」に変更されます。
コマンドラインからセッションを停止する前に、次の要件を熟読してください。
この項で説明されているタスクの実行に必要なコマンドライン・スクリプトは、Oracle Data Integrator Standalone Agentがインストールされている場合のみ使用できます。スタンドアロン・エージェントのインストール方法は、Oracle Fusion Middleware Oracle Data Integratorインストレーション・ガイドを参照してください。
このコマンドを使用する場合は、リポジトリへの接続がodiparamsファイルで構成されている必要があります。詳細は、第4章「エージェントの管理」を参照してください。
コマンドラインからセッションを停止するには:
ディレクトリをOracle Data Integratorインストールの/agent/bin
ディレクトリに変更します。
次のコマンドを入力して、シナリオを開始します。
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-3に、このコマンドの様々なパラメータ(必須とオプションの両方)を示します。パラメータの前にはハイフン(-)を、可能な値の前には等号(=)を付けます。この場合、コマンドを入力するオペレーティング・システムに固有の文字保護の構文に準拠する必要があります。
表21-4 StopSessionコマンドのパラメータ
パラメータ | 説明 |
---|---|
|
再開するセッションの番号(ID)。 |
|
このセッションを停止するランタイム・エージェントのURL。デフォルトでは、セッションは、コマンドラインから開始されたローカルのJavaプロセスによって実行されます。 |
|
実行中のセッションの停止に使用するレベル。省略すると、 |
ロード計画は複数の方法で実行できます。
Webサービスからの実行。詳細は、21.11.5項「Webサービスを使用したロード計画の実行」を参照してください。
ODIコンソールからの操作。23.2.4項「ロード計画の管理」を参照してください。
注意: ロード計画は、「ローカル(エージェントなし)」のODI Studioの組込みエージェントを使用して実行することはできません。 |
ODI Studioでは、デザイナ・ナビゲータまたはオペレータ・ナビゲータでロード計画を実行できます。
デザイナ・ナビゲータまたはオペレータ・ナビゲータでロード計画を実行するには:
「ロード計画とシナリオ」アコーディオンで、実行するロード計画を選択します。
右クリックして「実行」を選択します。
「ロード計画の開始」ダイアログで、実行パラメータを選択します。
ロード計画が実行される「コンテキスト」を選択します。
ステップを実行する「論理エージェント」を選択します。
「ログ・レベル」を選択します。この値以下のログ・レベルが定義されているすべてのセッションは、セッション完了時に、セッション・ログに保持されます。ただし、オブジェクトの実行が異常終了した場合は、この設定にかかわらず、すべてのタスクが保持されます。
ログ・レベル6は、ログ・レベル5と動作は同じですが、変数の追跡が追加されていることに注意してください。詳細は、12.2.3.11項「変数と順序の追跡」を参照してください。
「ロード計画」で定義された「セッション・タスクのログ・レベル」の値を使用するには、「セッション・タスクのログ・レベルの使用」(デフォルト)を選択します。
変数表に、ロード計画に使用する変数の起動値を入力します。
「OK」をクリックします。
「ロード計画が開始しました」ウィンドウが表示されます。
「OK」をクリックします。
ロード計画の新規の実行が開始されます。ロード計画インスタンスが作成され、最初のロード計画が実行されます。ロード計画実行はオペレータ・ナビゲータで確認できます。
コマンドラインからロード計画を開始できます。
コマンドラインからロード計画を実行する前に、次の要件を熟読してください。
この項で説明されているタスクの実行に必要なコマンドライン・スクリプトは、Oracle Data Integrator Standalone Agentがインストールされている場合のみ使用できます。スタンドアロン・エージェントのインストール方法は、Oracle Fusion Middleware Oracle Data Integratorインストレーション・ガイドを参照してください。
このコマンドを使用するには、リポジトリへの接続がodiparamsファイルで構成されている必要があります。詳細は、第4章「エージェントの管理」を参照してください。
ロード計画実行は、AGENT_URL
パラメータで識別されたランタイム・エージェントに対して開始されます。
コマンドラインからロード計画を開始するには:
ディレクトリをOracle Data Integratorインストールの/agent/bin
ディレクトリに変更します。
次のコマンドを入力して、ロード計画を開始します。
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システムの場合:
WINDOWSシステムの場合:
|
表21-5に、様々なパラメータ(必須とオプションの両方)を示します。パラメータの前にはハイフン(-)を、可能な値の前には等号(=)を付けます。この場合、コマンドを入力するオペレーティング・システムに固有の文字保護の構文に準拠する必要があります。
表21-5 Startloadplanコマンドのパラメータ
パラメータ | 説明 |
---|---|
|
開始するロード計画の名前(必須)。 |
|
ロード計画の開始に使用するコンテキストのコード。この値の指定を省略すると、コール側セッションのコンテキストが使用されます(必須)。 |
|
保持するロギング情報のレベル。この値以下のログ・レベルが定義されているすべてのセッションは、セッション完了時に、セッション・ログに保持されます。ただし、オブジェクトの実行が異常終了した場合は、この設定にかかわらず、すべてのタスクが保持されます。 ログ・レベル6は、ログ・レベル5と動作は同じですが、変数の追跡が追加されていることに注意してください。デフォルトは、ロード計画の「セッション・タスクのログ・レベル」(ロード計画の開始に使用されたレベル)です。詳細は、12.2.3.11項「変数と順序の追跡」を参照してください。 |
|
ロード計画を開始する物理エージェントのURL(必須)。 |
|
セッション・フォルダおよび自動分類によるODIログの編成を促進するためのキーワード。このロード計画に関連付けるキーワードのカンマ区切りリストを入力します。 |
|
ロード計画変数の起動値(オプション)。プロジェクト変数は 日付および数値変数の書式は、次のとおりです:
例:
|
ロード計画を再開すると、選択したロード計画インスタンスに対する新規の実行が開始します。ロード計画の再開では、エラーになったステップの「再開タイプ」パラメータにより、ロード計画および子セッションの再開方法が定義されます。詳細は、14.2.4.3「再開動作の定義」および21.4項「セッションの再開」を参照してください。
注意: ロード計画インスタンスの再開は、最近の(最大番号の)実行ステータスに依存します。再開が有効になるのは、最近の実行ステータスが「エラー」の場合のみです。 |
ロード計画は複数の方法で再開できます。
Webサービスからの実行。詳細は、21.11.7項「Webサービスを使用したロード計画インスタンスの再開」を参照してください。
ODIコンソールからの操作。23.2.4項「ロード計画の管理」を参照してください。
ODI Studioからロード計画を再開するには:
オペレータ・ナビゲータで、「ロード計画実行」アコーディオンから再開するロード計画実行を選択します。
右クリックして「再開」を選択します。
「ロード計画の再開」ダイアログで、ロード計画を再開するエージェントを選択します。オプションで、異なるログ・レベルを選択します。
「OK」をクリックします。
ロード計画が再開され、新規のロード計画実行が作成されます。
コマンドラインからロード計画を再開する前に、次の要件を熟読してください。
この項で説明されているタスクの実行に必要なコマンドライン・スクリプトは、Oracle Data Integrator Standalone Agentがインストールされている場合のみ使用できます。スタンドアロン・エージェントのインストール方法は、Oracle Fusion Middleware Oracle Data Integratorインストレーション・ガイドを参照してください。
このコマンドを使用する場合は、リポジトリへの接続がodiparamsファイルで構成されている必要があります。詳細は、第4章「エージェントの管理」を参照してください。
ロード計画実行は、AGENT_URL
パラメータで識別されたリモート・ランタイム・エージェントに対して再開されます。
コマンドラインからロード計画を再開するには:
ディレクトリをOracle Data Integratorインストールの/agent/bin
ディレクトリに変更します。
ロード計画を再開するには、次のコマンドを入力します。
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と動作は同じですが、変数の追跡が追加されていることに注意してください。デフォルトは、ロード計画の前回の実行に使用されたログ・レベルの値です。 詳細は、12.2.3.11項「変数と順序の追跡」を参照してください。 |
["-AGENT_URL=<agent_url>"] |
ロード計画を開始する物理エージェントのURL(オプション)。 |
実行中または待機中のロード計画実行を停止できます。たとえば、ロード計画にエラーが含まれていることに気付いた場合、または実行時間が長い場合は、ロード計画実行を停止することがあります。
ロード計画実行を停止する方法は2通りあることに注意してください:
標準停止: 標準停止モードでは、ロード計画の停止を担当するエージェントが、このロード計画のセッションを実行している各エージェントに、標準停止シグナルを送信します。各エージェントは、セッションの現在のタスクが完了するのを待機し、その後、セッションをエラーで終了します。ロード計画によって例外ステップが実行されることはありません。すべての例外が終了すると、ロード計画はエラー状態に移行されます。
即時停止: 即時停止モードでは、ロード計画の停止を担当するエージェントが、このロード計画のセッションを実行している各エージェントに、即時停止シグナルを送信します。各エージェントは、セッションの現在のタスクが完了するのを待機せずに、セッションをエラーで即時に終了します。ロード計画によって例外ステップが実行されることはありません。すべての例外が終了すると、ロード計画はエラー状態に移行されます。
ロード計画は複数の方法で停止できます。
Webサービスからの実行。詳細は、21.11.6項「Webサービスを使用したロード計画実行の停止」を参照してください。
ODIコンソールからの操作。23.2.4項「ロード計画の管理」を参照してください。
ODI Studioからロード計画実行を停止するには:
オペレータ・ナビゲータで、「ロード計画実行」アコーディオンから(実行中または待機中の)停止するロード計画実行を選択します。
右クリックして「標準停止」または「即時停止」を選択します。
ロード計画の停止ダイアログで、ロード計画を停止するエージェントを選択します。
「OK」をクリックします。
ロード計画実行が停止され、ステータスが「エラー」に変更されます。
コマンドラインからロード計画を停止する前に、次の要件を熟読してください。
この項で説明されているタスクの実行に必要なコマンドライン・スクリプトは、Oracle Data Integrator Standalone Agentがインストールされている場合のみ使用できます。スタンドアロン・エージェントのインストール方法は、Oracle Fusion Middleware Oracle Data Integratorインストレーション・ガイドを参照してください。
このコマンドを使用する場合は、リポジトリへの接続がodiparamsファイルで構成されている必要があります。詳細は、第4章「エージェントの管理」を参照してください。
ロード計画実行シグナルは、AGENT_URL
パラメータで識別されたリモート・ランタイム・エージェントによって送信されます。
コマンドラインからロード計画実行を停止するには:
ディレクトリをOracle Data Integratorインストールの/agent/bin
ディレクトリに変更します。
次のコマンドを入力して、ロード計画を開始します。
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>] |
ロード計画実行の停止に使用するレベル。デフォルトは |
注意: 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回実行) | シナリオまたはロード計画は1回のみ実行されます。 |
複数回 | シナリオまたはロード計画は複数回繰り返されます。
|
制約 | 実行中に問題が発生した場合、1つのサイクル反復に制限を設定できます。
|
「変数」タブで、値を指定する変数の「最新の値」を選択解除します。このタブに表示されるのは、シナリオまたはロード計画で使用され、このシナリオまたはロード計画のパラメータとしてフラグが指定されている変数のみです。
「ファイル」メニューから「保存」をクリックします。
新しいスケジュールが、シナリオまたはロード計画の「スケジューリング」ノードの下に表示されます。
スケジュール変更は、ランタイム・エージェントの開始時またはランタイム・エージェントによるスケジュール更新リクエストの受信時に反映されます。
エージェントは開始時に、接続しているマスター・リポジトリに添付されているすべてのリポジトリのスケジュールを読み取ります。特定のリポジトリでこのエージェントのスケジュールが追加された場合は、そのエージェント・スケジュールをリフレッシュできます。
エージェントのスケジュールを更新するには:
トポロジ・ナビゲータで、「物理アーキテクチャ」アコーディオンにある「エージェント」ノードを展開します。
スケジュールを更新する物理エージェントを選択します。
右クリックして「スケジューリングの更新」を選択します。
「リポジトリの選択」ダイアログで、スケジューリング情報を読み取るリポジトリを選択します。すべてのリポジトリからスケジューリング情報を読み取るには、「すべての作業リポジトリを選択」を選択します。
「OK」をクリックします。
エージェントは、これらのリポジトリに定義されているスケジュールから、エージェント自体のメモリー内スケジュールをリフレッシュして再計算します。
OdiUpdateAgentScheduleツールを使用して、エージェントのスケジュールを更新することもできます。
すべてのエージェントのスケジュールされたタスクを表示できます。また、特定のエージェントのスケジュールされたタスクも表示できます。
注意: スケジューリング情報は、エージェントのメモリー内スケジュールから取得されます。正確なスケジューリング情報を表示するためには、エージェントが開始し、そのスケジュールがリフレッシュされている必要があります。 |
すべてのエージェントのスケジュールの表示
すべてのエージェントのスケジュールを表示するには:
オペレータ・ナビゲータのツールバー・メニューから、「ナビゲータの接続」→「スケジューリング」の順に選択します。
「スケジュールの表示」ダイアログに、すべてのエージェントのスケジュールが表示されます。
1つのエージェントのスケジュールの表示
1つのエージェントのスケジュールを表示するには:
トポロジ・ナビゲータで、「物理アーキテクチャ」アコーディオンにある「エージェント」ノードを展開します。
スケジュールを更新する物理エージェントを選択します。
右クリックして「スケジュールの表示」を選択します。
スケジュール・エディタに、このエージェントのスケジュールが表示されます。
注意: スケジューリング情報は、エージェントのスケジュールから取得されます。正確なスケジューリング情報を表示するためには、エージェントが開始し、そのスケジュールがリフレッシュされている必要があります。 |
「スケジュールの表示」ダイアログの使用
スケジュールはガント・ダイアグラムの形式で表示されます。表21-8に、「スケジュール」ダイアログの詳細を示します。
表21-8 スケジューリング詳細
選択したエージェント |
スケジュールが表示されるエージェント。「すべてのエージェント」を選択して、すべてのエージェントのスケジュールを表示することもできます。 |
選択した作業リポジトリ |
選択した作業リポジトリで実行されたシナリオのみがスケジュールに表示されます。デフォルトは「すべての作業リポジトリ」です。 |
スケジュールの範囲 |
スケジュールが表示される時間範囲。このスケジュールをリフレッシュするには、「リフレッシュ」をクリックします。 |
更新 |
選択したエージェントのスケジュールを更新するには、「更新」をクリックします。 |
時間範囲 |
指定した時間範囲(1時間、2時間など)を使用して、現在時刻にこの時間を加え、ダイアグラムをその中央に配置できます。この機能により、進行中のセッションと着信セッションを視覚化できます。矢印を使用すると、範囲を前方または後方に移動できます。 |
シナリオ詳細 |
このパネルには、スケジュールされた各シナリオの詳細と実行統計が表示されます。 |
(マウス・ボタンを押したまま)ダイアグラム内のゾーンを選択すると、選択したゾーンに自動的にズームできます。
ダイアグラム内で右クリックするとコンテキスト・メニューが表示され、ズーム、ダイアグラムをイメージ・ファイルとして保存、表示プロパティの印刷または編集の各操作を実行できます。
外部スケジューラを使用してシナリオまたはロード計画を開始するには、次のいずれかの方法で実行します。
外部スケジューラでのstartscenまたはstartloadplanコマンドの使用
シナリオまたはロード計画実行をトリガーするWebサービス・インタフェースの使用
詳細は、次を参照してください:
シナリオまたはロード計画が正常に完了した場合、リターン・コードは0です。正常に完了しない場合のリターン・コードは、0以外です。このコードは次の応答で使用されます。
コマンドライン・コールのリターン・コード。エラー・メッセージ(ある場合)は、標準エラー出力に含まれます。
Webサービス・コールのSOAPレスポンス。Webサービス・レスポンスには、セッション・エラー・メッセージ(ある場合)も含まれています。
Oracle Data Integratorでは、設計時に実行をシミュレーションできます。実行をシミュレーションすると、その実行に対応するコードが、このコードを実行せずに生成されて表示されます。実行シミュレーションによって、コード確認に適したレポートが提供されます。
注意: シミュレーション・モードで実行が開始された場合、ログにはセッションが作成されません。 |
実行をシミュレーションするには:
デザイナ・ナビゲータの「プロジェクト」ビューで、実行するオブジェクトを選択します。
右クリックして「実行」を選択します。
「実行」ダイアログで実行パラメータを設定し、「シミュレーション」を選択します。詳細は、表21-1を参照してください。
「OK」をクリックします。
シミュレーション・レポートが表示されます。
「保存」をクリックすると、レポートを.xml
ファイルまたは.html
ファイルとして保存できます。
この項では、Webサービスを使用してランタイム操作を実行する方法について説明します。次の項があります。
Oracle Data Integratorには、ランタイム操作を実行するためのWebサービスが含まれています。これらのWebサービスは2つの場所にあります。
ランタイム・エージェントでは、Webサービスを使用して、シナリオまたはロード計画の開始、セッション・ステータスまたはロード計画実行ステータスの監視、セッションまたはロード計画インスタンスの再開、およびロード計画実行の停止を操作できます。このWebサービスの操作を使用するには、最初にスタンドアロン・エージェントまたはJava EEエージェントをインストールして構成する必要があります。
専用の公開Webサービス・コンポーネントでは、使用可能なコンテキストとシナリオをリストする操作が提供されています。このWebサービスの操作を使用するには、最初にこのコンポーネントをJava EEコンテナにインストールして構成する必要があります。
次の内容は、エージェントおよび公開Webサービスに対して使用されるSOAPリクエストに適用されます。
Webサービス操作では、SOAPリクエストにあるプレーン・テキストのパスワードを受け入れます。したがって、保護されていないネットワーク上でWebサービスを呼び出すには、保護されたプロトコル(HTTPS)を使用することをお薦めします。または、外部認証も使用できます。詳細は、21.11.12項「外部認証によるランタイムWebサービスの使用」を参照してください。
エージェントまたは公開Webサービス・コンポーネントはマスター・リポジトリに接続するように構成されているため、SOAPリクエストにリポジトリ接続情報は必要ありません。ほとんどの操作の実行で必要なのは、ODIユーザーと作業リポジトリの名前のみです。
エージェント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サービスの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サービスの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サービスの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サービスのinvokeStopLoadPlan
操作では、インスタンスIDと実行番号によって識別された、指定作業リポジトリ内の実行中のロード計画実行が停止されます。ロード計画インスタンスは、Webサービスを提供するエージェントによって停止されます。StopLevel
パラメータには、次の値を指定できます。
NORMAL
: 現在のタスクが終了するまで待機してからセッションを停止します。
IMMEDIATE
: セッションを即時に停止します。オープン中のすべての文が取り消され、トランザクションがロールバックされます。
ロード計画実行の停止方法の詳細は、21.8項「ロード計画実行の停止」を参照してください。invokeStopLoadPlan
操作で使用するその他のパラメータの詳細は、21.11.5項「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サービスの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サービスの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サービスのlistContext
操作では、マスター・リポジトリ内にあるすべてのコンテキストがリストされます。
<listContextRequest> <OdiUser>odi_user</OdiUser> <OdiPassword>odi_password</OdiPassword> <listContextRequest>
公開WebサービスのlistScenario
操作では、特定の作業リポジトリ内にあるすべてのシナリオがリストされます。
<listScenarioRequest> <OdiUser>odi_user</OdiUser> <OdiPassword>odi_password</OdiPassword> <WorkRepository>work_repository</WorkRepository> <listScenarioRequest>
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サービスを介して開始するには:
ディレクトリをOracle Data Integratorインストールの/agent/bin
ディレクトリに変更します。
次のコマンドを入力して、シナリオを開始します。
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コマンドのパラメータ
パラメータ | 説明 |
---|---|
|
シナリオの名前(必須)。 |
|
シナリオのバージョン(必須)。指定したバージョンが-1の場合は、そのシナリオの最新バージョンが実行されます。 |
|
実行コンテキストのコード(必須)。 |
|
シナリオが格納されている作業リポジトリの名前。 |
|
このセッションを実行するランタイム・エージェントのURL。 |
|
このセッションの実行に使用するユーザーの名前。 |
|
このユーザーのパスワード。 |
- |
保持するロギング情報のレベル。 このパラメータの形式は ログ・レベル6は、ログ・レベル5と動作は同じですが、変数の追跡が追加されていることに注意してください。詳細は、12.2.3.11項「変数と順序の追跡」を参照してください。 例: |
|
実行モード:
|
|
セッションの名前。 |
|
このセッションに関連付けられているキーワードのリスト。これらのキーワードによって、セッションの識別が容易になります。このリストは、カンマ区切りのキーワード・リストです。 |
|
変数を割り当てます。 このパラメータは、複数の変数を割り当てる際に反復できます。 startscenコマンドラインでは、変数名の接頭辞にハッシュ記号( 例: |
|
sync_mode = 2の場合に、セッションの完了を待機するタイムアウト時間(秒)。 |
|
sync_mode = 2の場合のセッション・ステータスのポーリング間隔。 |
|
Webサービス・コールのHTTP タイムアウト。 |
|
冗長モード。 |
セッション・ステータスの監視
コマンドラインからWebサービスを介してセッションのステータスを監視するには:
ディレクトリをOracle Data Integratorインストールの/agent/bin
ディレクトリに変更します。
次のコマンドを入力して、シナリオを開始します。
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コマンドのパラメータ
パラメータ | 説明 |
---|---|
|
監視するセッションの数。 |
|
シナリオが格納されている作業リポジトリの名前。 |
|
このセッションを実行するランタイム・エージェントのURL。 |
|
このセッションの実行に使用するユーザーの名前。 |
|
このユーザーのパスワード。 |
|
待機モード:
|
|
sync_mode = 2の場合に、セッションの完了を待機するタイムアウト時間(秒)。 |
|
sync_mode = 2の場合のセッション・ステータスのポーリング間隔。 |
|
Webサービス・コールのHTTP タイムアウト。 |
|
冗長モード。 |
この章のWebサービスの例では、OdiUserおよびOdiPassword要素を使用して、SOAP本文内部のODI認証を使用しています。
Oracle Platform Security Services(OPSS)が構成されたリポジトリおよびコンテナ・ベースの認証に外部認証を設定する場合は(詳しくは、24.3.2項「外部認証の設定」を参照)、HTTP基本認証、WS-Securityヘッダー、SAMLトークンなどを使用して認証をWebサービスに渡すことができます。OPSSでは、認証がアイデンティティ・プロバイダによってサーバー側で透過的に処理されます。この場合、OdiUserおよびOdiPassword要素は省略できます。
ランタイムWebサービスは、まずOPSSを使用して認証を試行します。認証パラメータが指定されていない場合は、OPSSによって匿名ユーザーが使用され、OdiUserおよびOdiPasswordがチェックされます。それ以外の場合(つまり、OPSSへの資格証明が正しくない場合)は、OPSSによって認証例外がスローされ、Webサービスは起動されません。
注意: OPSS認証は、Oracle WebLogic ServerにデプロイされたパブリックWebサービスまたはJEEエージェントでのみ使用できます。 |
この章で説明している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サービスのアドレス指定: http://www.w3.org/Submission/ws-addressing/
WS-Addressing SOAPバインディング: http://www.w3.org/TR/2006/REC-ws-addr-soap-20060509/
WS-Addressing WSDLバインディング: http://www.w3.org/TR/2006/WD-ws-addr-wsdl-20060216/
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ヘッダーが送信されます。 |