12 シナリオの使用
この章の内容は次のとおりです。
12.1 シナリオの概要
コンポーネントが完成し、テストした後は、その実際の状態に対応するシナリオを生成できます。この操作は、デザイナ・ナビゲータで実行します。
シナリオのコード(生成された言語)は確定されます。確定後に、シナリオの作成の基となったコンポーネントが変更された場合でも、シナリオが変更されることはありません。
パッケージ、プロシージャ、マッピングまたは変数のシナリオを生成できます。プロシージャ、マッピングまたは変数用に生成されるシナリオは、プロシージャの実行、マッピング、または変数のリフレッシュを行う単一ステップのシナリオです。
シナリオ変数は、シナリオで使用される変数であり、シナリオの開始時にその動作をパラメータ化するために設定する必要があります。
一度生成されると、シナリオは作業リポジトリ内に格納されます。このシナリオは、エクスポートして別のリポジトリ(リモートまたはリモート以外)にインポートし、様々なコンテキストで使用できます。シナリオを作成できるのは開発作業リポジトリからのみですが、開発作業リポジトリと実行作業リポジトリの両方にインポートできます。
シナリオは、オペレータ・ナビゲータとデザイナ・ナビゲータの両方で「ロード計画とシナリオ」セクションに表示されます。シナリオは、デザイナ・ナビゲータの「プロジェクト」セクションのプロジェクト内にも表示されます。
シナリオはバージョン管理することもできます。詳細は、バージョン制御(レガシー・モード)の使用を参照してください。
シナリオは、Oracle Data Integrator Studioのコマンド行から起動でき、ランタイム・エージェントの組込みスケジューラまたは外部スケジューラを使用してスケジュールできます。シナリオ実行およびシナリオのスケジュールの詳細は、『Oracle Data Integratorの管理』の統合プロセスの実行に関する項を参照してください。
12.2 シナリオの生成
オブジェクトに対するシナリオの生成では、本番環境でのデプロイおよび実行に使用する、このオブジェクト用のコードがコンパイルされます。
シナリオを生成するには:
シナリオは「シナリオ」タブに表示されます。また、プロジェクトの下にあるソース・オブジェクトの「シナリオ」ノードの下に表示されます。
12.3 シナリオの再生成
既存のシナリオを同じ名前とバージョン番号で再生成できます。再生成では、ソース・オブジェクトの内容から生成したシナリオで既存のシナリオを置換できます。既存のシナリオに関連付けられているスケジュールは保持されます。
シナリオを再生成するには:
- デザイナ・ナビゲータの「プロジェクト」セクションまたは「ロード計画とシナリオ」セクションで、シナリオを選択します。
- 右クリックして「再生成」を選択します。
- 「OK」をクリックします。
警告:
シナリオの再生成は元に戻すことができません。重要なシナリオの場合は、新しいバージョン番号を使用してシナリオを生成することをお薦めします。
12.4 シナリオ・グループの生成
プロジェクトまたはフォルダにグループ化されたパッケージ、マッピング、プロシージャおよび変数のセットが完成し、テストした後、シナリオを生成できます。この操作は、デザイナ・ナビゲータで実行します。
シナリオ・グループを生成するには:
12.5 シナリオおよびロード計画の同時実行の制御
デフォルトでは、同じシナリオまたはロード計画の2つのインスタンスを同時に実行できます。
この状況は複数の場合に発生します。たとえば:
-
シナリオ実行ステップを含むロード計画が2つ以上のインスタンスで実行されているために、シナリオ実行ステップが2つ以上のロード計画インスタンスで同時に実行される可能性がある場合。
-
シナリオがコマンドラインから、ODI Studioから、またはエージェントでのスケジュールに従って実行されるが、すでに同じシナリオの別のインスタンスが同じエージェント、別のエージェントまたはODI Studioセッションで実行されている場合。
同じシナリオまたはロード計画の同時実行は、すべてのリモート・エージェントおよび内部エージェントにわたって適用されます。
シナリオまたはロード計画の複数のインスタンスを同時に実行することは、特にジョブでデータの書込みが行われる場合、お薦めしません。同時実行は、同時実行制御オプションを使用して制御できます。
ODIは、特定のシナリオまたはロード計画を、名前およびバージョンではなく内部IDで識別します。このため、同じ内部IDを持つシナリオまたはロード計画は、再生成後または変更後も同じシナリオまたはロード計画として処理されます。反対に、シナリオを削除してから、同じ名前およびバージョン番号で新しいシナリオを生成すると、別のシナリオが生成されます(別の内部IDを持つため)。
同時実行制御はシナリオまたはロード計画に対していつでも有効化または無効化できますが、すでに実行中のセッションおよび新しく開始されるセッションには次のような影響があります。
-
同時実行制御を無効から有効に切り替えると、すでに実行中のジョブおよびキューに入っているジョブは実行中ジョブとしてカウントされ、新しいジョブ発行はジョブ発行時の同時実行制御設定を使用して処理されます。
-
シナリオまたはロード計画の同時実行制御を有効から無効に切り替えると、すでに発行されて待機状態にあるジョブ(または後で再開されるジョブ)は元の同時実行制御設定値を保持するため、実行中のジョブとキューに入っているジョブを実行中ジョブとみなして待機します。
ただし、同時実行制御が無効になった状態で新しいジョブが発行されると、すでに待機中のジョブよりも先に実行されることがあります。その結果、ポーリングの時点で、同時実行制御が有効になっていない状態で開始された実行中ジョブがシステムで検出されると、待機中のジョブが遅延する可能性があります。また、待機中のジョブが最終的に実行を開始した後も、後で発行されて同時に実行されている制御対象外のジョブによる影響を受けることがあります。
シナリオまたはロード計画の同時実行を制限するには、次のステップを実行します。
12.6 シナリオのエクスポート
エクスポート(およびインポート)の手順によって、Oracle Data Integratorオブジェクトをあるリポジトリから別のリポジトリに転送できます。
単一のシナリオ、またはシナリオのグループをエクスポートできます。
1つのシナリオのエクスポートについては、1つのODIオブジェクトのエクスポートを参照してください。
シナリオ・グループをエクスポートするには:
XML形式のエクスポート・ファイルが指定した場所に作成されます。
12.7 本番へのシナリオのインポート
デザイナから生成したシナリオをエクスポートして、開発リポジトリまたは実行リポジトリにインポートできます。この操作は、シナリオを別のリポジトリ(異なる環境やサイト上など)にデプロイするために使用されます。
開発リポジトリへのシナリオのインポートは、デザイナ・ナビゲータまたはオペレータ・ナビゲータで実行します。実行リポジトリの場合、この目的で使用できるのはオペレータ・ナビゲータのみです。
シナリオをインポートする方法は、次の2通りあります。
-
「インポート」 では、標準のオブジェクト・インポート・メソッドが使用されます。このインポート・プロセス時に、エクスポートしたシナリオに関連付けられているスケジュールをインポートするかどうかを選択できます。
-
「置換のインポート」では、既存のシナリオがエクスポート・ファイルの内容で置換されます。他のオブジェクトからこのシナリオへの参照は保持されます。元のシナリオのセッション、シナリオ・レポートおよびスケジュールは削除され、エクスポート・ファイルのスケジュールで置換されます。
シナリオは、バージョンおよびソリューションを使用して、本番にデプロイおよび転送することもできます。詳細は、バージョン制御(レガシー・モード)の使用を参照してください。
12.7.1 シナリオのインポート
1つ以上のシナリオをOracle Data Integratorにインポートするには:
- オペレータ・ナビゲータで、「シナリオ」パネルを選択します。
- 右クリックして「インポート」→「シナリオのインポート」の順に選択します。
- 「インポート・タイプ」の値を選択します。インポート・タイプの詳細は、エクスポートおよびインポートを参照してください。
- 「ファイル・インポート・ディレクトリ」を指定します。
- シナリオとともにエクスポートされたスケジュールもインポートする場合は、「スケジュールのインポート」オプションを選択します。
- インポートするシナリオを「インポートするファイルを選択します」リストから1つ以上選択します。
- 「OK」をクリックします。
シナリオは作業リポジトリにインポートされます。また、オペレータ・ナビゲータの「シナリオ」ツリーに表示されます。この作業リポジトリが開発リポジトリの場合、これらのシナリオは、そのソースのパッケージ、マッピング、プロシージャまたは変数にも関連付けられます。
12.7.2 シナリオの置換
エクスポートしたシナリオでシナリオを置換する場合は、「置換のインポート」モードを使用します。
シナリオを置換モードでインポートするには:
- デザイナ・ナビゲータまたはオペレータ・ナビゲータで、置換するシナリオを選択します。
- シナリオを右クリックして、「置換のインポート」を選択します。
- 「オブジェクトの置換」ダイアログで、シナリオのエクスポート・ファイルを指定します。
- 「OK」をクリックします。
12.7.3 異なるリポジトリからのシナリオの使用
シナリオは、生成された作業リポジトリとは異なる作業リポジトリから操作する必要がある場合があります。
例
次に、このタイプのプロセスが発生する組織の例を2つ示します。
-
企業に、同じソフトウェア・アプリケーションを使用する代理店が多数ある場合。IT本部では、データを中央データ・センターに一元化するパッケージとシナリオを開発します。これらのシナリオは、各代理店で同様に実行されるように設計されます。
-
企業に、ソフトウェア・アプリケーションの開発、調整および運用を目的とした3つの別個のIT環境が存在している場合。この企業のプロセスでは、完全に独立した環境が要求されるため、リポジトリを共有できません。
前提条件
この組織の前提条件は、各環境(サイト、代理店または環境)に作業リポジトリをインストールしていることです。この作業リポジトリに関連付けられるマスター・リポジトリのトポロジには、論理アーキテクチャの観点から互換性がある必要があります(同じ論理スキーマ名)。物理アーキテクチャで記述される接続特性は、異なっていてもかまいません。
一部のプロシージャまたはマッピングでコンテキスト・コードを明示的に指定する場合は、ターゲット・トポロジに同じコンテキスト・コードが含まれる必要があることに注意してください。トポロジ(つまり、物理アーキテクチャと論理アーキテクチャ)は、開発のマスター・リポジトリからエクスポートし、ターゲット・リポジトリにインポートすることもできます。この操作は、トポロジ・モジュールを使用して実行します。この場合、物理トポロジ(サーバーのアドレス)は、シナリオを操作する前にパーソナライズする必要があります。トポロジのインポートでは、ターゲット・リポジトリにすでに存在するデータ・サーバーは変更されず、単に新規データ・サーバーが参照されることにも注意してください。
異なる作業リポジトリからシナリオを操作するには:
- 元のリポジトリからシナリオをエクスポートします(右クリックして「エクスポート」)
- シナリオ・エクスポート・ファイルをターゲット環境に転送する
- ターゲット環境でデザイナ・ナビゲータを開く(ターゲット・リポジトリに接続)
- エクスポート・ファイルからシナリオをインポートする
12.8 シナリオの暗号化および復号化
シナリオを暗号化すると、重要なコードを保護できます。暗号化されたシナリオは実行できますが、復号化しないかぎり、読み取ったり変更することはできません。暗号化されたシナリオによってログに生成されるコマンドも読み取ることはできません。
Oracle Data Integratorでは、個人暗号化キーに基づいたDES暗号化アルゴリズムが使用されます。このキーは、ファイルに保存して、暗号化または復号化操作を実行する際に再利用できます。
警告:
暗号化されたシナリオまたはプロシージャを暗号化キーなしで復号化する方法はありません。したがって、このキーは安全な場所に保管しておくことを強くお薦めします。
シナリオを暗号化するには:
-
デザイナ・ナビゲータまたはオペレータ・ナビゲータで、暗号化するシナリオを選択します。
-
右クリックして「暗号化」を選択します。
-
「暗号化オプション」ダイアログで、次のいずれかの操作を実行します。
-
個人キーで暗号化します: 個人キー・ファイルの場所を指定するか、個人キーの値を入力して、すでに存在している個人キーで暗号化します。
-
新規暗号化キーを取得します: 新しいキーを生成します。
-
-
「OK」をクリックしてシナリオを暗号化します。新しいキーの生成を選択した場合は、ダイアログに新しいキーも表示されます。「保存」をクリックして、キーをファイルに保存します。
ノート:
文字数が少なすぎる個人キーを入力すると、キー・サイズが無効であるというエラーが発生します。
シナリオを復号化するには:
復号化が完了するとメッセージが表示されます。