Oracle® Fusion Middleware Oracle Data Integrator開発者ガイド

11g リリース1(11.1.1)

B62260-04(原本部品番号:E12643-06)

目次

タイトルおよび著作権情報

はじめに

- 対象読者

- ドキュメントのアクセシビリティについて

- 関連ドキュメント

- 表記規則

Oracle Data Integratorの新機能

- Oracle Data Integrator 11gR1 PS6 (11.1.1.7)の新機能

- Oracle Data Integrator 11gR1 PS2 (11.1.1.6)の新機能

- Oracle Data Integrator 11gR1 PS1 (11.1.1.5)の新機能

- Oracle Data Integrator 11gR1 (11.1.1.3)の新機能

第I部 Oracle Data Integratorの理解

1 Oracle Data Integratorの概要

- 1.1 Oracle Data Integratorを使用したデータ統合の概要

- 1.1.1 データ統合

- 1.1.2 Oracle Data Integrator

- 1.1.3 E-LT

- 1.2 Oracle Data Integratorの概念

- 1.2.1 I宣言的設計の概要

- 1.2.2 ナレッジ・モジュールの概要

- 1.2.3 統合インタフェースの概要

- 1.2.3.1 データストア

- 1.2.3.2 宣言的ルール

- 1.2.3.3 データ・フロー

- 1.3 一般的なODI統合プロジェクト

- 1.3.1 バッチ指向の統合

- 1.3.2 イベント指向の統合

- 1.3.3 サービス指向のアーキテクチャ

- 1.3.4 ODIを使用したデータ品質

- 1.3.5 環境の管理

- 1.4 Oracle Data Integratorのアーキテクチャ

- 1.4.1 リポジトリ

- 1.4.2 ユーザー・インタフェース

- 1.4.3 設計時プロジェクト

- 1.4.4 ランタイム・エージェント

2 Oracle Data Integratorクイックスタート

- 2.1 Oracle Data Integratorクイックスタート・リスト

第II部 Oracle Data Integratorのアーキテクチャの管理

3 Oracle Data Integratorリポジトリの管理

- 3.1 Oracle Data Integratorリポジトリの概要

- 3.2 リポジトリの記憶領域の作成

- 3.3 マスター・リポジトリの作成

- 3.4 マスター・リポジトリへの接続

- 3.5 作業リポジトリの作成

- 3.6 作業リポジトリへの接続

- 3.7 作業リポジトリのパスワードの変更

- 3.8 リポジトリ管理用の拡張アクション

- 3.8.1 作業リポジトリの連結および削除

- 3.8.2 作業リポジトリの消去

- 3.8.3 リポジトリの再番号付け

- 3.8.4 リポジトリの調整

4 トポロジの設定

- 4.1 Oracle Data Integratorトポロジの概要

- 4.1.1 物理アーキテクチャ

- 4.1.2 コンテキスト

- 4.1.3 論理アーキテクチャ

- 4.1.4 エージェント

- 4.1.5 言語

- 4.1.6 リポジトリ

- 4.2 トポロジの設定

- 4.2.1 コンテキストの作成

- 4.2.2 データ・サーバーの作成

- 4.2.2.1 前提条件とガイドライン

- 4.2.2.2 データ・サーバーの作成

- 4.2.2.3 データ・サーバーの作成(詳細設定)

- 4.2.2.4 データ・サーバー接続のテスト

- 4.2.3 物理スキーマの作成

- 4.2.4 論理スキーマの作成

- 4.2.5 物理エージェントの作成

- 4.2.6 論理エージェントの作成

- 4.3 エージェントの管理

- 4.3.1 スタンドアロン・エージェント

- 4.3.1.1 スタンドアロン・エージェントの構成

- 4.3.1.2 スタンドアロン・エージェントの開始

- 4.3.1.3 エージェントの停止

- 4.3.2 Java EEエージェント

- 4.3.2.1 Java EEアプリケーション・サーバーでのエージェントのデプロイ

- 4.3.2.1.1 トポロジにおけるJava EEエージェントの定義

- 4.3.2.1.2 Java EEエージェントに対するサーバー・テンプレートの作成

- 4.3.2.2 エージェントのアプリケーション・サーバーにおけるOracle Data Integratorからのデータソースのデプロイ

- 4.3.3 エージェントのロード・バランシング

- 4.3.3.1 セッションの委任

- 4.3.3.2 エージェント使用不可

- 4.3.3.3 ロード・バランシングの設定

第III部 メタデータの管理およびリバースエンジニアリング

5 モデルの作成およびリバースエンジニアリング

- 5.1 モデルの概要

- 5.1.1 データストア

- 5.1.2 データ整合性

- 5.1.3 リバースエンジニアリング

- 5.1.4 チェンジ・データ・キャプチャ

- 5.2 モデルの作成およびリバースエンジニアリング

- 5.2.1 モデルの作成

- 5.2.2 モデルのリバースエンジニアリング

- 5.3 データストアの作成およびリバースエンジニアリング

- 5.3.1 データストアの作成

- 5.3.2 ファイル・データストアのリバースエンジニアリング

- 5.3.2.1 固定ファイルのリバースエンジニアリング

- 5.3.2.2 デリミタ付きファイルのリバースエンジニアリング

- 5.3.2.3 COBOLファイルのリバースエンジニアリング

- 5.3.3 データストア列の追加および削除

- 5.3.4 制約とフィルタの作成および削除

- 5.3.4.1 キー

- 5.3.4.2 参照

- 5.3.4.3 条件

- 5.3.4.4 必須列

- 5.3.4.5 フィルタ

- 5.4 データストアのデータの編集および表示

- 5.5 パーティション化の使用

- 5.5.1 モデル・データストアのパーティションおよびサブパーティションの手動による定義

- 5.6 モデルのデータ品質のチェック

- 5.6.1 データ整合性の概要

- 5.6.2 制約のチェック

- 5.6.3 モデル、サブモデルまたはデータストアに対する静的チェックの実行

- 5.6.4 エラーのあるレコードの確認

6 チェンジ・データ・キャプチャの使用

- 6.1 チェンジ・データ・キャプチャの概要

- 6.1.1 ジャーナル化コンポーネント

- 6.1.2 簡易ジャーナル化と一貫性セット・ジャーナル化

- 6.2 ジャーナル化の設定

- 6.2.1 ジャーナル化の設定および開始

- 6.2.2 ジャーナル化インフラストラクチャの詳細

- 6.2.3 ジャーナル化ステータス

- 6.3 変更データの使用

- 6.3.1 変更データの表示

- 6.3.2 変更データの使用: 簡易ジャーナル化

- 6.3.3 変更データの使用: 一貫性セット・ジャーナル化

- 6.3.4 ジャーナル化ツール

- 6.3.5 ジャーナル化を使用するためのパッケージ・テンプレート

7 共通フォーマット・デザイナの使用

- 7.1 共通フォーマット・デザイナの概要

- 7.1.1 ダイアグラムの概要

- 7.1.2 他のモデルからデータストアと列を集約する理由

- 7.1.3 グラフィカル・シノニム

- 7.2 ダイアグラムの使用

- 7.2.1 新規ダイアグラムの作成

- 7.2.2 データストアおよび列の作成

- 7.2.3 グラフィカル・シノニムの作成

- 7.2.4 制約およびフィルタの作成および編集

- 7.2.5 ダイアグラムの印刷

- 7.3 DDLスクリプトの生成

- 7.4 インタフェースIN/OUTの生成

8 データ・サービスの使用

- 8.1 データ・サービスの概要

- 8.2 データ・サービスの設定

- 8.2.1 Webサービス・コンテナの構成

- 8.2.2 データ・ソースの設定

- 8.2.3 モデルの構成

- 8.3 データ・サービスの生成およびデプロイ

- 8.3.1 データ・サービスの生成およびデプロイ

- 8.3.2 生成サービスの概要

- 8.3.3 データ・サービスのテスト

第IV部 統合プロジェクトの開発

9 統合プロジェクトの作成

- 9.1 統合プロジェクトの概要

- 9.1.1 Oracle Data Integratorプロジェクトのコンポーネント

- 9.1.1.1 Oracle Data Integratorプロジェクトのコンポーネント

- 9.1.1.2 グローバル・コンポーネント

- 9.1.2 プロジェクトのライフ・サイクル

- 9.2 新規プロジェクトの作成

- 9.3 ナレッジ・モジュールの管理

- 9.3.1 プロジェクトおよびグローバル・ナレッジ・モジュール

- 9.3.2 ナレッジ・モジュールの命名規則

- 9.3.3 適切なナレッジ・モジュールの選択

- 9.3.4 ナレッジ・モジュールのインポートおよび置換

- 9.3.5 KMの暗号化および復号化

- 9.4 フォルダを使用したプロジェクトの編成

10 パッケージの使用

- 10.1 パッケージの概要

- 10.1.1 ステップの概要

- 10.1.2 パッケージの作成の概要

- 10.1.3 パッケージ・エディタの概要

- 10.2 新規パッケージの作成

- 10.3 ステップの使用

- 10.3.1 ステップの追加

- 10.3.1.1 インタフェースの実行

- 10.3.1.2 プロシージャの実行

- 10.3.1.3 変数のステップ

- 10.3.1.4 Oracle Data Integratorツール・ステップの追加

- 10.3.1.5 モデル、サブモデルおよびデータストアの関連ステップ

- 10.3.1.6 モデル、サブモデルまたはデータストアのチェック

- 10.3.1.7 モデルまたはデータストアのジャーナル化

- 10.3.1.8 モデルのリバースエンジニアリング

- 10.3.2 ステップの削除

- 10.3.3 ステップの複製

- 10.3.4 ステップの実行

- 10.3.5 ステップのリンクされたオブジェクトの編集

- 10.3.6 ステップのレイアウトの調整

- 10.4 ステップの順序の定義

- 10.5 パッケージの実行

11 統合インタフェースの使用

- 11.1 統合インタフェースの概要

- 11.1.1 統合インタフェースのコンポーネント

- 11.2 インタフェース・エディタの概要

- 11.3 インタフェースの作成

- 11.3.1 新規インタフェースの作成

- 11.3.2 ターゲット・データストアの定義

- 11.3.2.1 永続ターゲット・データストア

- 11.3.2.2 一時ターゲット・データストア

- 11.3.2.3 更新キーの定義

- 11.3.3 データセットの定義

- 11.3.4 ソース・データストアおよびルックアップの定義

- 11.3.4.1 ソース・データストアの定義

- 11.3.4.2 ルックアップの定義

- 11.3.4.3 ソースでのフィルタの定義

- 11.3.4.4 ソース間の結合の定義

- 11.3.5 マッピングの定義

- 11.3.6 インタフェース・フローの定義

- 11.3.7 フロー制御および統合後制御の設定

- 11.3.7.1 フロー制御の設定

- 11.3.7.2 統合後制御の設定

- 11.3.8 統合インタフェースの実行

- 11.4 クイック編集エディタの使用

- 11.4.1 コンポーネントの追加および削除

- 11.4.1.1 コンポーネントの追加

- 11.4.1.2 コンポーネントの削除

- 11.4.2 コンポーネントの編集

- 11.4.3 データセットの追加、削除および構成

- 11.4.4 ターゲット・データストアの変更

- 11.4.5 表のカスタマイズ

- 11.4.6 共通タスクでのキーボード・ナビゲーションの使用

- 11.5 統合インタフェースの設計: E-LTスタイルのインタフェースとETLスタイルのインタフェース

12 プロシージャ、変数、順序およびユーザー関数の使用

- 12.1 プロシージャの使用

- 12.1.1 プロシージャの概要

- 12.1.2 プロシージャの作成

- 12.1.2.1 新規プロシージャの作成

- 12.1.2.2 プロシージャのオプションの定義

- 12.1.2.3 プロシージャのコマンドの作成および管理

- 12.1.3 プロシージャの使用

- 12.1.3.1 プロシージャの実行

- 12.1.3.2 パッケージでのプロシージャの使用

- 12.1.3.3 プロシージャのシナリオの生成

- 12.1.4 プロシージャの暗号化と復号化

- 12.1.4.1 KMまたはプロシージャの暗号化

- 12.1.4.2 KMまたはプロシージャの復号化

- 12.2 変数の操作

- 12.2.1 変数の概要

- 12.2.2 変数の作成

- 12.2.3 変数の使用

- 12.2.3.1 パッケージでの変数の使用

- 12.2.3.2 インタフェースでの変数の使用

- 12.2.3.3 オブジェクト・プロパティでの変数の使用

- 12.2.3.4 プロシージャでの変数の使用

- 12.2.3.5 変数内での変数の使用

- 12.2.3.6 データストアのリソース名での変数の使用

- 12.2.3.7 サーバーURLでの変数の使用

- 12.2.3.8 接続時または切断時のコマンドでの変数の使用

- 12.2.3.9 シナリオへの変数の受渡し

- 12.2.3.10 変数のシナリオの生成

- 12.2.3.11 変数と順序の追跡

- 12.3 順序の使用

- 12.3.1 順序の概要

- 12.3.2 順序の作成

- 12.3.2.1 標準順序の作成

- 12.3.2.2 特定の順序の作成

- 12.3.2.3 ネイティブ順序の作成

- 12.3.3 順序およびID列の使用

- 12.3.3.1 標準順序および特定の順序を使用する際のヒント

- 12.3.3.2 ID列

- 12.4 ユーザー関数の使用

- 12.4.1 ユーザー関数の概要

- 12.4.2 ユーザー関数の作成

- 12.4.3 ユーザー関数の使用

13 シナリオの処理

- 13.1 シナリオの概要

- 13.2 シナリオの生成

- 13.3 シナリオの再生成

- 13.4 シナリオ・グループの生成

- 13.5 シナリオのエクスポート

- 13.6 本番へのシナリオのインポート

- 13.6.1 シナリオのインポート

- 13.6.2 シナリオの置換

- 13.6.3 異なるリポジトリからのシナリオの使用

- 13.7 シナリオの暗号化および復号化

14 ロード計画の使用

- 14.1 ロード計画の概要

- 14.1.1 ロード計画実行ライフ・サイクル

- 14.1.2 パッケージ、シナリオおよびロード計画の相違点

- 14.1.3 ロード計画の構造

- 14.1.4 ロード計画エディタの概要

- 14.2 ロード計画の作成

- 14.2.1 新規ロード計画の作成

- 14.2.2 ロード計画ステップの順序の定義

- 14.2.2.1 ロード計画ステップの追加

- 14.2.2.2 ロード計画ステップの編集

- 14.2.2.3 ステップの削除

- 14.2.2.4 ステップの複製

- 14.2.3 ロード計画での変数の使用

- 14.2.3.1 ロード計画の変数の宣言

- 14.2.3.2 ステップの変数値の設定

- 14.2.4 ロード計画の例外および再開可能の処理

- 14.2.4.1 例外フローの定義

- 14.2.4.2 例外処理の使用

- 14.2.4.3 再開動作の定義

- 14.3 ロード計画の実行

- 14.4 本番でのロード計画の使用

- 14.4.1 本番でのロード計画の実行

- 14.4.2 ロード計画のスケジューリング

- 14.4.3 ロード計画のエクスポート、インポートおよびバージョニング

- 14.4.3.1 ロード計画のエクスポート

- 14.4.3.2 ロード計画のインポート

- 14.4.3.3 ロード計画のバージョン管理

15 Oracle Data IntegratorでのWebサービスの使用

- 15.1 Oracle Data IntegratorのWebサービスの概要

- 15.2 データ・サービス

- 15.3 Oracle Data Integratorランタイム・サービス

- 15.4 サードパーティWebサービスの呼出し

- 15.4.1 Webサービスの呼出しの概要

- 15.4.2 OdiInvokeWebServiceツールの使用

- 15.4.3 統合フローにおけるWebサービスの呼出し

16 Oracle Data Quality製品の使用

- 16.1 Oracle Data Quality製品の概要

- 16.2 データ品質プロセス

- 16.2.1 品質入力ファイルの作成

- 16.2.2 エンティティの作成

- 16.2.2.1 ステップ1: ローダー接続の検証

- 16.2.2.2 ステップ2: エンティティの作成およびデータのインポート

- 16.2.2.3 ステップ3: エンティティの確認

- 16.2.3 プロファイリング・プロジェクトの作成

- 16.2.4 Oracle Data Qualityプロジェクトの作成

- 16.2.5 データ品質プロジェクトのエクスポート

- 16.2.6 エンティティのリバースエンジニアリング

- 16.2.7 インタフェースでのOracle Data Qualityの入力ファイルおよび出力ファイルの使用

- 16.2.8 Oracle Data Integratorからの品質プロジェクトの実行

- 16.2.9 パッケージ内のプロセスの順序付け

17 ショートカットの使用

- 17.1 ショートカットの概要

- 17.1.1 ショートカットの概念

- 17.1.2 ショートカット・オブジェクト

- 17.2 ショートカット・エディタの概要

- 17.3 ショートカットの作成

- 17.4 プロジェクトでのショートカットの使用

- 17.4.1 ショートカットによる選択の複製

- 17.4.2 参照ショートカットへのジャンプ

- 17.4.3 ベース・オブジェクトへのジャンプ

- 17.4.4 ショートカットの実行

- 17.4.5 ショートカットのマテリアライズ

- 17.4.6 ショートカットのエクスポートおよびインポート

- 17.4.7 リリース・タグの使用

- 17.4.8 拡張アクション

第V部 統合プロジェクトの管理

18 作業の編成およびドキュメント化

- 18.1 フォルダを使用したプロジェクトの編成

- 18.1.1 新規フォルダの作成

- 18.1.2 プロジェクト・フォルダの調整

- 18.2 フォルダを使用したモデルの編成

- 18.2.1 新規モデル・フォルダの作成

- 18.2.2 モデル・フォルダの調整

- 18.2.3 サブモデルの作成および編成

- 18.3 相互参照の使用

- 18.3.1 相互参照の表示

- 18.3.2 欠落参照の解決

- 18.4 マーカーおよびメモの使用

- 18.4.1 マーカー

- 18.4.2 メモ

- 18.5 同時変更の処理

- 18.5.1 同時編集のチェック

- 18.5.2 オブジェクトのロック

- 18.6 PDFレポートの作成

- 18.6.1 トポロジ・レポートの生成

- 18.6.2 バージョン比較結果のレポートの生成

- 18.6.3 Oracle Data Integratorオブジェクトのレポートの生成

- 18.6.4 ダイアグラム・レポートの生成

19 バージョン管理の使用

- 19.1 オブジェクト・フラグの使用

- 19.2 バージョンの使用

- 19.3 バージョン比較ツールの使用

- 19.3.1 2つのバージョンの差異の表示

- 19.3.2 比較フィルタの使用

- 19.3.3 比較結果レポートの生成および印刷

- 19.4 ソリューションの使用

- 19.4.1 ソリューションにおける要素の使用

- 19.4.2 ソリューションの同期化

- 19.4.3 ソリューションのリストアとチェック・イン

- 19.4.4 ソリューションのインポートとエクスポート

20 エクスポート/インポート

- 20.1 インポートおよびエクスポートの概念

- 20.1.1 内部識別子(ID)

- 20.1.2 オブジェクト間の関係

- 20.1.3 インポート・タイプ

- 20.1.4 インポート/エクスポートのヒント

- 20.2 オブジェクトのエクスポートおよびインポート

- 20.2.1 子コンポーネントを伴うオブジェクトのエクスポート

- 20.2.2 子コンポーネントを伴わないオブジェクトのエクスポート

- 20.2.3 部分的なエクスポート/インポート

- 20.2.4 1つのODIオブジェクトのエクスポート

- 20.2.5 複数のODIオブジェクトのエクスポート

- 20.2.6 オブジェクトのインポート

- 20.2.6.1 オブジェクトのインポート

- 20.2.7 スマート・エクスポートおよびスマート・インポート

- 20.2.7.1 スマート・エクスポートの実行

- 20.2.7.2 スマート・インポートの実行

- 20.3 リポジトリ・レベルのエクスポート/インポート

- 20.3.1 マスター・リポジトリのエクスポートおよびインポート

- 20.3.2 トポロジおよびセキュリティ設定のエクスポート/インポート

- 20.3.3 作業リポジトリのエクスポートおよびインポート

- 20.4 技術環境のエクスポート

- 20.5 ログのエクスポートおよびインポート

第VI部 統合プロセスの実行および監視

21 統合プロセスの実行

- 21.1 ODI実行の理解

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

- 21.3 シナリオの実行

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

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

- 21.4 セッションの再開

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

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

- 21.5 セッションの停止

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

- 21.5.2 コマンドラインからのセッションの停止

- 21.6 ロード計画の実行

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

- 21.6.2 コマンドラインからのロード計画の実行

- 21.7 ロード計画実行の再開

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

- 21.7.2 コマンドラインからのロード計画の再開

- 21.8 ロード計画実行の停止

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

- 21.8.2 コマンドラインからのロード計画実行の停止

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

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

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

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

- 21.9.1.3 スケジュールの表示

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

- 21.10 実行のシミュレーション

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

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

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

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

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

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

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

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

- 21.11.8 Webサービスを使用したロード計画実行ステータスの監視

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

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

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

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

- 21.11.13 WS-Addressingの使用

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

22 統合プロセスの監視

- 22.1 監視の概要

- 22.1.1 オペレータ・ナビゲータの概要

- 22.1.2 シナリオ

- 22.1.3 セッション

- 22.1.4 ロード計画

- 22.1.5 ロード計画の実行

- 22.1.6 スケジュール

- 22.1.7 ログ

- 22.1.8 ステータス

- 22.2 実行結果の監視

- 22.2.1 セッションの監視

- 22.2.2 ロード計画実行の監視

- 22.2.3 失敗したセッションの処理

- 22.2.4 成功したセッションの確認

- 22.2.5 失敗したロード計画の処理

- 22.2.6 成功したロード計画の確認

- 22.3 実行の管理

- 22.3.1 セッションの管理

- 22.3.1.1 失効したセッションの除去

- 22.3.2 ロード計画実行の管理

- 22.3.3 ログの管理

- 22.3.3.1 セッションのフィルタ処理

- 22.3.3.2 ログのパージ

- 22.3.3.3 セッション・フォルダを使用したログの編成

- 22.3.3.4 ログ・データのエクスポートおよびインポート

- 22.3.3.5 ODIコンポーネントのランタイム・ロギング

- 22.3.4 シナリオとロード計画の管理

- 22.3.4.1 ロード計画とシナリオ・フォルダ

- 22.3.4.2 ロード計画、シナリオおよびソリューションの本番へのインポート

- 22.3.5 スケジュールの管理

23 Oracle Data Integratorコンソールの使用

- 23.1 Oracle Data Integratorコンソールの概要

- 23.1.1 Oracle Data Integratorコンソールの概要

- 23.1.2 Oracle Data Integratorコンソールのインタフェース

- 23.2 Oracle Data Integratorコンソールの使用

- 23.2.1 Oracle Data Integratorコンソールへの接続

- 23.2.2 一般的なユーザー操作

- 23.2.3 シナリオおよびセッションの管理

- 23.2.4 ロード計画の管理

- 23.2.5 ログのパージ

- 23.2.6 データ系統およびフロー・マップの使用

- 23.2.7 管理操作の実行

第VII部 セキュリティ設定の管理

24 Oracle Data Integratorでのセキュリティの管理

- 24.1 Oracle Data Integratorのセキュリティの概要

- 24.1.1 オブジェクト、インスタンスおよびメソッド

- 24.1.2 プロファイル

- 24.1.3 ユーザー

- 24.2 セキュリティ・ポリシーの設定

- 24.2.1 セキュリティ・ポリシーの手法

- 24.2.2 プロファイルの管理

- 24.2.2.1 新規プロファイルの作成

- 24.2.2.2 プロファイルの複製

- 24.2.2.3 プロファイルの削除

- 24.2.3 ユーザーの管理

- 24.2.3.1 新規ユーザーの作成

- 24.2.3.2 ユーザーへのプロファイルの割当て

- 24.2.3.3 ユーザーのプロファイルの削除

- 24.2.3.4 ユーザーの削除

- 24.2.4 権限の管理

- 24.2.4.1 プロファイル・メソッドまたはユーザー・メソッドの付与

- 24.2.4.2 プロファイル・メソッドまたはユーザー・メソッドの取消し

- 24.2.4.3 オブジェクト・インスタンス別認可の付与

- 24.2.4.4 オブジェクト・インスタンス別認可の取消し

- 24.2.4.5 未使用認可のクリーン・アップ

- 24.3 高度なセキュリティ

- 24.3.1 外部パスワード記憶域の設定

- 24.3.1.1 パスワード記憶域の設定

- 24.3.1.2 パスワード記憶域の切替え

- 24.3.1.3 パスワード記憶域のリカバリ

- 24.3.2 外部認証の設定

- 24.3.2.1 外部認証のためのODIコンポーネントの構成

- 24.3.2.2 認証モードの設定

- 24.3.2.3 認証モードの切替え

- 24.3.2.4 ODI外部認証用のOPSS構成ファイルの構成

- 24.3.3 パスワード・ポリシーの実施

- 24.3.4 Oracle Access Manager 11gを使用したOracle Data IntegratorコンソールおよびEnterprise Managerのシングル・サインオン(SSO)の構成

A Oracle Data Integrator Toolsリファレンス

- A.1 Oracle Data Integrator Toolsの使用

- A.1.1 パッケージでのツールの使用

- A.1.2 ナレッジ・モジュールまたはプロシージャ・コマンドでのツールの使用

- A.1.3 コマンドラインからのツールの使用

- A.2 オープン・ツールの使用

- A.2.1 オープン・ツールのインストールおよび宣言

- A.2.1.1 オープン・ツールのインストール

- A.2.1.2 新しいオープン・ツールの宣言

- A.2.2 パッケージまたはプロシージャでのオープン・ツールの使用

- A.3 オープン・ツールの開発

- A.3.1 クラス

- A.3.2 新しいオープン・ツールの開発

- A.3.2.1 クラスの実装

- A.3.2.1.1 宣言

- A.3.2.1.2 パッケージのインポート

- A.3.2.1.3 パラメータの定義

- A.3.2.1.4 情報関数の実装

- A.3.2.1.5 実行

- A.3.3 実行時のオープン・ツール

- A.4 カテゴリ別ODIツール

- A.4.1 メタデータ

- A.4.2 Oracle Data Integratorオブジェクト

- A.4.3 ユーティリティ

- A.4.4 インターネット関連タスク

- A.4.5 ファイル

- A.4.6 SAP

- A.4.7 XML

- A.4.8 イベント検出

- A.4.9 チェンジ・データ・キャプチャ

- A.5 ODIツールのアルファベット順リスト

- A.5.1 OdiAnt

- A.5.2 OdiBeep

- A.5.3 OdiDataQuality

- A.5.4 OdiDeleteScen

- A.5.5 OdiEnterpriseDataQuality

- A.5.6 OdiExportAllScen

- A.5.7 OdiExportEnvironmentInformation

- A.5.8 OdiExportLog

- A.5.9 OdiExportMaster

- A.5.10 OdiExportObject

- A.5.11 OdiExportScen

- A.5.12 OdiExportWork

- A.5.13 OdiFileAppend

- A.5.14 OdiFileCopy

- A.5.15 OdiFileDelete

- A.5.16 OdiFileMove

- A.5.17 OdiFileWait

- A.5.18 OdiFtpGet

- A.5.19 OdiFtpPut

- A.5.20 OdiGenerateAllScen

- A.5.21 OdiImportObject

- A.5.22 OdiImportScen

- A.5.23 OdiInvokeWebService

- A.5.24 OdiKillAgent

- A.5.25 OdiMkDir

- A.5.26 OdiOSCommand

- A.5.27 OdiOutFile

- A.5.28 OdiPingAgent

- A.5.29 OdiPurgeLog

- A.5.30 OdiReadMail

- A.5.31 OdiRefreshJournalCount

- A.5.32 OdiReinitializeSeq

- A.5.33 OdiRetrieveJournalData

- A.5.34 OdiReverseGetMetaData

- A.5.35 OdiReverseManageShortcut

- A.5.36 OdiReverseResetTable

- A.5.37 OdiReverseSetMetaData

- A.5.38 OdiSAPALEClient and OdiSAPALEClient3

- A.5.39 OdiSAPALEServer and OdiSAPALEServer3

- A.5.40 OdiScpGet

- A.5.41 OdiScpPut

- A.5.42 OdiSendMail

- A.5.43 OdiSftpGet

- A.5.44 OdiSftpPut

- A.5.45 OdiSleep

- A.5.46 OdiSqlUnload

- A.5.47 OdiStartLoadPlan

- A.5.48 OdiStartScen

- A.5.49 OdiUnZip

- A.5.50 OdiUpdateAgentSchedule

- A.5.51 OdiWaitForChildSession

- A.5.52 OdiWaitForData

- A.5.53 OdiWaitForLogData

- A.5.54 OdiWaitForTable

- A.5.55 OdiXMLConcat

- A.5.56 OdiXMLSplit

- A.5.57 OdiZip

B ユーザー・パラメータ

C Oracle Data IntegratorでのGroovyスクリプトの使用

- C.1 Groovyの概要

- C.2 Groovyエディタの概要

- C.3 Groovyエディタの使用

- C.3.1 Groovyスクリプトの作成

- C.3.2 既存のGroovyスクリプトを開いて編集

- C.3.3 Groovyスクリプトの保存

- C.3.4 Groovyスクリプトの実行

- C.3.5 Groovyスクリプトの実行の停止

- C.3.6 拡張アクションの実行

- C.4 開発タスクの自動化 - 例

Oracle® Fusion Middleware

Oracle Data Integrator開発者ガイド

11g リリース1(11.1.1)

B62260-04(原本部品番号:E12643-06)

2013年2月

Oracle Fusion Middleware Oracle Data Integrator開発者ガイド , 11g リリース1(11.1.1)

B62260-04

Copyright (C) 2010, 2013, Oracle and/or its affiliates.All rights reserved.

原本著者: Laura Hofman Miquel

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクル社までご連絡ください。

このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。

U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations.As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007).Oracle America, Inc., 500 Oracle Parkway, Redwood City, CA 94065.

このソフトウェアもしくはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアもしくはハードウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用する際、安全に使用するために、適切な安全装置、バックアップ、冗長性(redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、オラクル社およびその関連会社は一切の責任を負いかねます。

OracleおよびJavaはOracle Corporationおよびその関連企業の登録商標です。その他の名称は、それぞれの所有者の商標または登録商標です。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXは、The Open Groupの登録商標です。

このソフトウェアまたはハードウェア、そしてドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても一切の責任を負いかねます。

はじめに

このガイドでは、Oracle Data Integratorの使用方法について説明します。

ここでは、次のトピックについて説明します。

- 対象読者

- ドキュメントのアクセシビリティについて

- 関連ドキュメント

- 表記規則

対象読者

このガイドは、Oracle Data Integratorを統合プロセスの開発ツールとして使用する開発者および管理者を対象読者としています。このガイドでは、Oracle Data Integratorのグラフィカル・ユーザー・インタフェースを構成するグラフィカル・コンポーネントの使用方法について説明します。Oracle Data Integratorでの開発における一般的なタスクと作業例についても説明します。このガイドには、Oracle Data Integratorの機能に関する概念やバックグラウンド情報も記載されています。

ドキュメントのアクセシビリティについて

Oracleのアクセシビリティについての詳細情報は、Oracle Accessibility ProgramのWebサイトhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=docaccを参照してください。

Oracleサポートへのアクセス

Oracleのお客様は、My Oracle Supportにアクセスして電子サポートを受けることができます。詳細情報はhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=infoか、聴覚に障害のあるお客様はhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=trsを参照してください。

関連ドキュメント

詳細は、オラクル社の次の資料を参照してください:

- Oracle Fusion Middleware Oracle Data Integratorスタート・ガイド

- Oracle Fusion Middleware Oracle Data Integratorインストレーション・ガイド

- Oracle Fusion Middleware Oracle Data Integratorアップグレード・ガイド

- Oracle Fusion Middleware Oracle Data Integrator開発者ガイド

- Oracle Fusion Middleware Oracle Data Integrator接続性およびモジュール・ガイド

- Oracle Fusion Middleware Oracle Data Integratorアプリケーション・アダプタ・ガイド

- Oracle Fusion Middleware Oracle Data Integratorナレッジ・モジュール開発者ガイド

- Oracle Data Integrator 11gオンライン・ヘルプ(F1を押すか、「ヘルプ」>「検索」を選択してメイン・メニューからJDeveloperヘルプ・センターを開いて、ODI Studioで入手可能)

- Oracle Data Integrator 11gリリース・ノート(Oracle Data Integrator 11gのインストールに付属、Oracle Technology Networkからも入手可能)

表記規則

このマニュアルでは次の表記規則を使用します。

規則

意味

太字

太字は、操作に関連するGraphical User Interface要素、または本文中で定義されている用語および用語集に記載されている用語を示します。

イタリック体

イタリックは、ドキュメントのタイトル、強調またはユーザーが特定の値を指定するプレースホルダ変数を示します。

固定幅フォント

固定幅フォントは、段落内のコマンド、URL、サンプル内のコード、画面に表示されるテキスト、または入力するテキストを示します。

Oracle Data Integratorの新機能

このドキュメントでは、Oracle Data Integrator 11g リリース1(11.1.1)で導入された新機能および拡張機能について説明します。

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

- Oracle Data Integrator 11gR1 PS6 (11.1.1.7)の新機能

- Oracle Data Integrator 11gR1 PS2 (11.1.1.6)の新機能

- Oracle Data Integrator 11gR1 PS1 (11.1.1.5)の新機能

- Oracle Data Integrator 11gR1 (11.1.1.3)の新機能

Oracle Data Integrator 11gR1 PS6 (11.1.1.7)の新機能

Oracle Data Integrator 11gR1 (11.1.1.7)では、次の機能が強化されています。

- ODI WebSphereのサポート(ホットプラガブル性)

- XMLドライバの機能強化

- スタンドアロン・エージェントに対するSSLサポート

- ODI CoreにおけるEDQオープン・ツールの追加

ODI WebSphereのサポート(ホットプラガブル性)

Oracle Fusion Middlewareの中核的な戦略と主要機能は、そのホットプラガブル性です。異機種が混在する企業向けに構築されたOracle Fusion Middlewareは、モジュール形式のコンポーネント・ソフトウェアで構成されており、それらのソフトウェアは、一般的な各種プラットフォーム上で稼働し、IBM、Microsoft、SAPなど、他のソフトウェア・ベンダーのミドルウェア・テクノロジやビジネス・アプリケーションと相互運用されます。ホットプラガブル性によって、Oracle以外の環境でも、また複数のアプリケーション・サーバー上でもコンポーネントのデプロイと運用を可能にすることを目指しています。

このリリースのODIでは、IBM WebSphere Application Server (WAS)がサポートされるようになりました。ODIエージェントとデータソースは、Oracle WebLogic Server (WLS)とIBM WebSphere Application Server (WAS)にデプロイできるようになります。

XMLドライバの機能強化

標準のOracleパーサーを使用して、XMLスキーマ構造を完全サポートします。

- JDBCドライバの新しいパラメータ、compat_mode。XDK XSDパーサーなどのマッピング・モードとの互換性を指定します。

- JDBCの新しいドライバ・コマンド、WRITEMAPPINGFILE。XSD/DTDファイルに作成されたリレーショナル構造を把握しやすくなります。マッピング・ファイルには、要素/属性ごとに、要素/属性名から表/table.column名のマッピングが含まれます。

- JDBCコマンドCREATE SCHEMAに、compat_modeパラメータが追加されます。

スタンドアロン・エージェントに対するSSLサポート

スタンドアロン・エージェントは、セキュアな接続のためのSSLプロトコルをサポートするようになります。スタンドアロン・エージェントのサーバー側トランスポート・プロトコルを指定し、SSLトラストストアおよびキーストアを構成するために、新しいパラメータが追加されました。

- agent.sh/agent.batスクリプトに新しい環境変数を追加

- odiparams.sh/odiparams.batスクリプトに新しい構成変数を追加

- odiparam.sh/odiparams.batスクリプトにJavaシステム・プロパティを追加

ODI CoreにおけるEDQオープン・ツールの追加

ODI 11gR1 PS2 ( 11.1.1.6)で導入された、Oracle Enterprise Data Quality (Datanomic)ジョブを呼び出すEDQオープン・ツールが、標準のODIツールとして使用できるようになります。OdiEnterpriseDataQualityツールには、MBeanドメインを接続する新しいオプションのパラメータが追加されます。

Oracle Data Integrator 11gR1 PS2 (11.1.1.6)の新機能

Oracle Data Integrator 11gR1 (11.1.1.6)では、次の機能が強化されています。

- ショートカット

- 変数と順序の追跡

- グローバル・ナレッジ・モジュール

- 拡張されたセッション・ロギング

- 失敗したロード計画の処理の拡張

- ロード計画での変数処理の拡張

- スマート・エクスポートおよびスマート・インポート

- Enterprise Data Quality統合

- Groovyエディタ

- 取消およびやり直し操作のサポート

- テキスト・フィールドおよびリストのオートコンプリート

- ナレッジ・モジュールのバージョン番号

ショートカット

このODIリリースでは、ショートカットという新しいオブジェクトが導入されます。ショートカットを使用すると、同じ表と列、同じ制約、同じ変換など、同じソース・アプリケーションの異なる2つのバージョン間によくある大きな共通性を示すことができるため、生産性が著しく向上します。

ショートカットは、別の場所に格納されている共通のOracle Data Integratorオブジェクトへのリンクであり、データストア、統合インタフェース、パッケージ、プロシージャに対して作成できます。また、特定のタグに基づいてショートカットのマテリアライズを管理するために、リリース・タグが導入されました。

変数と順序の追跡

変数や順序は通常、Oracle Data Integratorプロセスで使用されます。Oracle Data Integrator 11.1.1.6では、実行済のセッション中に使用された変数や順序の実際の値を判断するための新機能が導入されます。変数と順序の追跡は、デバッグ目的に特に役立ちます。

また、変数の追跡機能では、変数がマッピングで使用されたのか、または変数評価ステップなどの内部操作で使用されたのかも判断できます。

グローバル・ナレッジ・モジュール

ODI 11.1.1.6では、複数のプロジェクトで特定のKMを共有するための、グローバル・ナレッジ・モジュール(KM)が導入されます。前のバージョンのODIでは、ナレッジ・モジュールは常にプロジェクトに固有で、そのナレッジ・モジュールをインポートしたプロジェクトでのみ使用可能でした。グローバルKMは、「グローバル・オブジェクト」アコーディオンのデザイナ・ナビゲータにリストされます。

拡張されたセッション・ロギング

このリリースでは、ナレッジ・モジュール・コマンドおよびプロシージャ・コマンドの実行ログの判読性が向上しました。オペレータ・ナビゲータでソースおよびターゲット・コマンドの最終コードが使用可能になったため、複数のランタイム・パラメータを含む実行を容易に確認できるようになりました。

失敗したロード計画の処理の拡張

失敗したロード計画ステップの実行ステータスを、ロード計画実行エディタの「ステップ」タブで、「エラー」から「完了」に変更できるようになりました。これにより、ロード計画実行を次に再開するときに、この特定のロード計画ステップを無視できます。これは、このロード計画ステップの失敗の原因になったエラーを現時点で修正できない場合などに便利です。ただし、このロード計画ステップのステータスに関係なく、残りのロード計画を実行できます。ステータスを「完了」に変更すると、次の実行でステップは無視されます。

ロード計画での変数処理の拡張

ロード計画の見やすさを向上するため、ロード計画変数が2つの表にグループ化されて、シナリオ変数とその他の変数が区別されるようになりました。

スマート・エクスポートおよびスマート・インポート

開発、品質保証、本番など複数の環境で作業する場合、リポジトリ間でのOracle Data Integratorオブジェクトのエクスポートおよびインポートは一般的な作業です。この作業を、新しいスマート・エクスポートおよびスマート・インポート機能の手順に従って実行できるようになりました。この機能により、高度なコード管理機能も提供されます。

スマート・エクスポートは、オブジェクトとそのオブジェクト依存関係すべてを自動的にエクスポートします。これは、一貫した軽量のオブジェクト・セットを、変更されたオブジェクト・セットのみを含めて、リポジトリ間で移動する場合に特に便利です。

スマート・エクスポートおよびスマート・インポート機能は、軽量で一貫したエクスポートおよびインポートのメカニズムで、次のような主要機能を提供します。

- インポート対象オブジェクトとリポジトリ内にすでにあるオブジェクト間の自動化されたカスタマイズ可能なオブジェクト照合ルール

- 一致するオブジェクトがリポジトリにあった場合にインポート対象オブジェクトに適用する一連のアクション

- スマート・インポート時に検出された壊れているリンクや競合ごとにデフォルトで使用するソリューションを提示する、プロアクティブな問題検出と解決策

Enterprise Data Quality統合

EnterpriseDataQualityオープン・ツールを使用して、Oracle Enterprise Data Quality (Datanomic)のジョブをパッケージで呼び出すことができます。開発者はOracle Enterprise Data Qualityでデータ品質プロセスを設計して、ODIでETLステップとともにパッケージで呼び出すことができます。

EnterpriseDataQualityオープン・ツールはオープン・ツールの標準手順を使用してインストールされ、Oracle Data Integratorに即時利用可能な状態で提供されているツールと同様に、パッケージまたはプロシージャで使用できます。

Groovyエディタ

このリリースでは、Groovyエディタが導入されました。Groovyエディタは、ODI Studioのコンテキスト内でGroovyスクリプトを作成、編集および実行するための単一の環境を提供します。Groovyエディタでは、構文の強調表示や共通のコード・エディタ・コマンドなど、コード・エディタのすべての標準的な機能が提供されます。

取消およびやり直し操作のサポート

キーボード・ショートカットCTRL+ZおよびCTRL+Yを使用して、エディタ、ダイアログ、ウィザード、プロパティ・インスペクタで、変更内容の取消およびやり直しができるようになりました。

テキスト・フィールドおよびリストのオートコンプリート

ODI Studioの一部のテキスト・コンポーネントおよびドロップダウン・リストでオートコンプリートがサポートされるため、ユーザーの生産性が向上します。

ナレッジ・モジュールのバージョン番号

ナレッジ・モジュールのバージョン番号により、使用された環境を識別するために提供される情報が改善されます。

- KMがいつ変更されたか、いつOracleからリリースされた元のナレッジ・モジュールでなくなったか、を特定できるようになりました。

- KMの変更は、バージョン番号によって追跡できます。

- KMがいつjarファイルやdllファイルなどの外部コンポーネントとともにリリースされたか、確認をできるようになりました(SAPおよびHyperion KMの例の場合)。

- 特定のODIバージョンがKMバージョンと互換性があるかどうか、を示すことができます。

Oracle Data Integrator 11gR1 PS1 (11.1.1.5)の新機能

Oracle Data Integrator 11gR1 (11.1.1.5)では、次の機能が強化されています。

- ロード計画

- OBIEE系統

- 接続時/切断時のコマンド

- 複合ファイル・テクノロジ

- Groovyテクノロジ

- Webサービスの強化

- 組込みテクノロジの追加および更新

- 順序付き結合構文と非順序付き結合構文によるテクノロジのサポート

- タスク名を設定するための新しいメソッド

- WLSエージェントの共有ライブラリ

- パフォーマンスの最適化

ロード計画

ロード・プランはこのリリースで導入された新しいオブジェクトで、パッケージおよびシナリオの実行を高レベルで編成します。ロード・プランには、パラレル、順次および条件付きのシナリオ実行、再開可能および例外処理の機能が用意されています。ロード・プランは本番環境で作成および変更できます。

OBIEE系統

Oracle Business Intelligence Enterprise Edition (OBIEE)ユーザーは、レポートに表示されるデータの起点を把握する必要があります。Oracle Data Integratorを使用してソース・システムからデータ・ウェアハウスにこのデータがロードされると、Oracle Data Integrator Lineage for Oracle Business Intelligence機能を使用して、ODIメタデータをOBIEEと統合し、レポートからソースのデータ系統ダッシュボードのこのメタデータをOBIEEに公開できます。

接続時/切断時のコマンド

ODIコンポーネントまたはセッションによってこのデータ・サーバーへの接続が作成またはクローズされたときに自動的に実行されるデータ・サーバー・コマンドに対して定義できます。

複合ファイル・テクノロジ

新しい複合ファイル・テクノロジを使用して、複合ファイル形式(複数のレコード・ファイル)を統合できるようになりました。このテクノロジは、Native Schema (nXSD)記述ファイルを使用して複合ファイル形式をリレーショナル構造に変換する新しい組込みのドライバを利用します。

Groovyテクノロジ

Groovyは、ナレッジ・モジュールおよびプロシージャで使用できるように、Oracle Data Integratorでサポートされるスクリプト・エンジンのリストに追加されます。

Webサービスの強化

Oracle Data IntegratorのWebサービス・サポートは、次の機能によって強化されています。

- コンテナ・ベース認証のサポート: Oracle Platform Security Services (OPSS)を使用して外部認証およびコンテナ・ベース認証が構成されている場合、SOAPリクエストではなく、HTTP基本認証、WS-Securityヘッダー、SAMLトークンなどを使用して、認証をODIランタイムWebサービスに渡すことができます。

- 非同期コールおよびコールバックのサポート: シナリオまたはセッションは、一方向操作のランタイムWebサービスを使用して開始できます。セッションが完了すると、実行の結果によってコールバック・アドレスで操作がトリガーされます。このパターンは、Oracle BPELなどから開始された長時間のセッションの処理に使用できます。

- アウトバウンドWebサービス・コールの完全なSOAPエディション: OdiInvokeWebServiceツールは、SOAPヘッダーおよび本文を含む完全なSOAPメッセージをサポートするようになりました。

組込みテクノロジの追加および更新

Oracle Data Integratorで使用される次のテクノロジが追加および更新されました。

- 埋込みHSQLエンジンがバージョン2.0にアップグレードされました。この埋込みエンジンは、メモリー・エンジンおよびXMLドライバとLDAPドライバの組込み記憶域に使用されます

- Jython BSFエンジンがバージョン2.1に更新されました

- Webサービス・コールおよび処理の標準スタックとしてJAX-WS/JRFが使用されるようになりました。Axisは使用されなくなりました

順序付き結合構文と非順序付き結合構文によるテクノロジのサポート

テクノロジは、結合の順序付き構文と非順序付き(データベース固有)構文の両方をサポートできるようになりました。Oracle DBテクノロジは、両方の結合構文をサポートするように変更されました。

タスク名を設定するための新しいメソッド

実行時にタスクの名前を更新するための新しいsetTaskNameメソッドが使用できるようになりました。

WLSエージェントの共有ライブラリ

Oracle Data Integrator - エージェント・ライブラリと呼ばれる新しいテンプレートには、ドメイン内のすべてのデプロイ済JEEエージェントで共有されるライブラリが含まれており、Oracle Data Integrator - エージェント・デフォルト・テンプレートまたは生成テンプレートの前にデプロイする必要があります。

パフォーマンスの最適化

設計時コンポーネントおよび実行時コンポーネントのパフォーマンスを向上するために、次の最適化が行われました。

- ロング・テキスト記憶域がCLOBを使用するように変更されました

- 実行時のエージェントとリポジトリ間のネットワーク通信が削減されました

- エージェントJDBCからJDBCへのロード・メカニズムが確認および最適化されました

Oracle Data Integrator 11gR1 (11.1.1.3)の新機能

このOracle Data Integratorの最初のリリースでは、多数の新機能が導入されています。この項では、リリース・テーマごとにグループ化して説明します。

この項の内容は次のとおりです。

- リリース・テーマ。この項では、このリリースの主要テーマおよび関連機能を示します。

- 新機能。この項では、このリリースの新機能の全リストを示します。

リリース・テーマ

このリリースのOracle Data Integratorの新機能は数多くの様々な領域をカバーしていますが、新規および既存の顧客にとって最も重要な変更点は、次のとおりです。

- エンタープライズスケールのデプロイメント・オプションでサポートされる新規アーキテクチャ

- 生産性およびパフォーマンスを強化するためのコア・デザインタイム機能

- 標準JDeveloperベースIDE: Oracle Data Integrator Studio

- 開発者にとっての有用性および生産性の強化

- 管理の新機能

- 高度な診断機能

- テクノロジとナレッジ・モジュールの強化

エンタープライズスケールのデプロイメント・オプションでサポートされる新規アーキテクチャ

Oracle Data Integratorでは、軽量スタンドアロン・デプロイメントに関する複数のデプロイメント・オプションと、クラスタ化が可能でありフォルト・トレラントなアプリケーション・サーバー・フレームワークに基づくデプロイメントの強化アーキテクチャを提供するようになりました。この領域の機能は次のとおりです。

- データベース・ソフトウェアが動作するハードウェア上でエージェントをデプロイする必要がある場合のスタンドアロン・エージェント・デプロイメント

- クラスタ化されたJava EE構成でエージェントが使用される場合のJava EEエージェント

- セキュリティ強化および集中管理認証をサポートするための外部パスワード記憶域および外部認証とSSO

- 高可用性を実現するためのリポジトリ接続再試行、OPMN統合およびWLSクラスタ化のサポート

- Java EEエージェント・テンプレート生成、Java EEコンポーネントの事前パッケージ済WebLogic ServerテンプレートおよびWebLogic Serverの自動データソース作成

生産性およびパフォーマンスを強化するためのコア・デザインタイム機能

Oracle Data Integratorでは、統合フローの開発生産性およびパフォーマンスを向上させるためのコア機能セットが提供されるようになりました。この領域の機能は次のとおりです。

- データセットおよび集合ベースの演算子

- 自然結合のサポート

- パーティション化

- ルックアップ

- 一時インタフェースの導出された選択

- 一時索引の自動管理

- ネイティブ順序のサポート

標準JDeveloperベースIDE: Oracle Data Integrator Studio

Oracle Data Integratorユーザー・インタフェースは、JDeveloperベースの統合開発環境(IDE)を使用するようになり、名前がOracle Data Integrator Studioに変更されました。このリリースでは、開発者の生産性を向上させ、拡張機能をより利用しやすいものにするために、ユーザー・インタフェースが完全に再設計されています。この新規IDEでは次の主要機能が提供されます。

- 新規ナビゲータ編成

- 新規ルック・アンド・フィール

- 再設計されたエディタ

- ユーザー支援の向上

開発者にとっての有用性および生産性の強化

開発インタフェースの完全な再設計に加えて、Oracle Data Integratorでの作業中における開発者の操作性および生産性を向上させるための機能が追加されました。この領域の機能は次のとおりです。

- 新規インタフェース・エディタ

- 表形式でインタフェースを編集するクイック編集

- インタフェース・エディタのエラーの自動修正

- シナリオ命名規則

- デザインタイムおよびランタイム操作をプログラムで管理するためのOracle Data Integrator Java API

管理の新機能

Oracle Data Integratorコンポーネントおよびセッションの管理性を向上させる機能が追加されました。この領域の機能は次のとおりです。

- 新規Oracle Data Integratorコンソール

- Oracle Fusion Middleware管理コンソールの統合

- 失効したセッションの検出と管理

- セッションの即時停止

- インポート・レポートとリポジトリ破損防止

高度な診断機能

Oracle Data Integratorは、問題のトラブルシューティングおよび修正を容易にする機能によって改善されています。この領域の機能は次のとおりです。

- エラー・メッセージの改善

- 通知とロギングの改善

- コード・シミュレーション

- デバッグのための行単位KM

テクノロジとナレッジ・モジュールの強化

このリリースで計画された新規テクノロジおよびナレッジ・モジュールは、10gライフサイクル・パッチ・セットで継続的に提供されてきました。さらに、既存のナレッジ・モジュールおよびテクノロジが新規コア製品機能および診断をサポートするよう拡張されました。

10gリリース3パッチ・セットで追加された機能は、次のとおりです。

- Oracle GoldenGateナレッジ・モジュール

- Oracle E-Business Suiteナレッジ・モジュール

- Oracle OLAPナレッジ・モジュール

- Oracle PeopleSoftナレッジ・モジュール

- Oracle Siebelナレッジ・モジュール

- JDE EnterpriseOneナレッジ・モジュール

- Oracle Changed Data Capture Adapters/Attunity Streamsナレッジ・モジュール

- Hyperionアダプタ

- デバッグのための行単位KM

- Teradataの最適化

- SAP ERPアダプタ

- SAP BWアダプタ

このリリースで追加された機能は次のとおりです。

- 新規コア機能用のKM強化

- Oracle Business Intelligence Enterprise Edition - 物理

- Oracle Multi-Table Inserts

- Teradata Multi-Statements

新機能

リリース11.1.1には多くの新機能が組み込まれています。これらの機能は下にリストしており、次のコンポーネントおよび機能領域にグループ化されます。

- ランタイム・エージェント

- Oracle WebLogic Server統合

- Webサービス

- 拡張セキュリティ機能

- 本番と監視

- 高可用性

- 統合設計の改善

- Oracle Data Integrator Studio

- エクスポート/インポート

- リリース10.1.3パッチ・セットでのKM強化

- リリース11.1.1でのKM強化

ランタイム・エージェント

Oracle Data Integratorランタイム・エージェントは、この項にリストした機能によって強化されています。

Java EEエージェント

ランタイム・エージェントは、アプリケーション・サーバー内にJava EEコンポーネントとしてデプロイできるようになりました。この構成では、大型の構成向けのクラスタ化および接続プーリングなどのアプリケーション・サーバー・レイヤー機能を利用できます。このJava EEエージェントはMBeanインタフェースを公開することで、アプリケーション・サーバー・コンソールからのライフサイクル操作(開始/停止)、ならびにアプリケーション・サーバー・コンソールでエージェント・アクティビティおよび状態を監視する目的で使用できるメトリックを有効にします。

スタンドアロン・エージェント

Java EEエージェントの他に、スタンドアロン・エージェント(Oracle Data Integratorの旧リリースで使用可能なエージェントに類似)を使用できます。これは単純なJava仮想マシンで動作し、統合フローの実行に必要とされる場所にデプロイできます。

接続されたスケジューラ

どちらのエージェント・フレーバも現在は常にマスター・リポジトリに接続されており、ビルトイン・スケジューラ・サービスによって開始されています。このスケジューラ・サービスは、接続されたマスターに関連付けられたすべての作業リポジトリからスケジュールを受け取ります。

コンポーネント通信のHTTPプロトコル

ランタイム・エージェントとの通信(実行リクエストをリモート・エージェントに送信する場合など)では、標準HTTPプロトコルを使用するようになりました。この機能により、分散環境におけるOracle Data Integratorコンポーネントのネットワーク管理およびセキュリティ確保が容易になります。

Oracle WebLogic Server統合

Oracle Data Integratorコンポーネントは、OracleのJava EEアプリケーション・サーバーとシームレスに統合します。

Java EEエージェント・テンプレートの生成

Oracle Data Integratorでは、Oracle WebLogic ServerにJava EEエージェントをデプロイするためのテンプレートを自動生成するウィザードが用意されています。こうしたテンプレートにはJava EEエージェントおよびその構成が組み込まれており、このエージェントに必要なJDBCデータソース定義の他に、これらのデータソースが機能するためのドライバ・ファイルおよびライブラリ・ファイルをオプションで含めることができます。

Oracle WebLogic構成ウィザードを使用することで、ドメイン管理者は自分のドメインを拡張したり、Oracle Data Integrator Java EEランタイム・エージェント用の新規ドメインを作成できます。

WebLogic Serverのデータソース自動作成

Java EEコンポーネントでは、JDBCデータソースを使用してリポジトリおよびソース/ターゲット・データ・サーバーに接続し、アプリケーション・サーバーにデプロイされた場合は、コンテナの接続プーリング機能を利用できます。

アプリケーション・サーバーにおけるこれらのデータソースの作成を容易にするため、Oracle Data Integrator Studioでは、データソースをリモートOracle WebLogicアプリケーション・サーバーにデプロイするオプションが用意されています。

Java EEコンポーネント用の事前パッケージ済WebLogic Serverテンプレート

現在、アプリケーション・サーバーにデプロイできるOracle Data Integrator Java EEコンポーネントには、Oracle WebLogic Server用の事前パッケージ済テンプレートが備わっています。Oracle Data Integratorは次に対応したテンプレートを提供します。

- Java EEランタイム・エージェント

- Oracle Data Integratorコンソール

- パブリックWebサービス

これらのテンプレートは、Oracle Data IntegratorのWLSドメインの作成、およびOracle Data Integratorコンポーネントによる既存のドメインの拡張に使用されます。

Webサービス

Oracle Data Integrator Webサービス・サポートは、この項にリストした機能によって強化されています。

WebサービスのJAX-WSサポート

Oracle Data Integrator Webサービス(パブリックWebサービスおよび生成されたデータ・サービスを含む)では、市場標準Java API for XML Web Services(JAX-WS 2.0)をサポートするようになりました。結果として、それらはこのAPIを実装する任意のWebサービス・コンテナにデプロイできます。これらのWebサービスに対するAxis2スタックの使用は非推奨です。

Webサービスの変更および再編成

Webサービスは再編成されており、次のランタイムWeb操作はすでにランタイム・エージェント・アプリケーションの一部です。

- getVersion - エージェント・バージョンを取得します。この操作はこのバージョンで新規に追加されたものです。

- getSessionStatus - セッションのステータスを取得します。

- invokeRestartSess - セッションを再開します。

- invokeStartScen - シナリオを開始します。

パブリックWebサービス・アプリケーションは次の操作を保持します。

- listScenario - シナリオをリストします。

- listContext: コンテキストをリストします。

拡張セキュリティ機能

Oracle Data Integratorのセキュリティは、この項にリストしたエンタープライズ機能によって強化できます。

外部パスワード記憶域

ソースおよびターゲット・データ・サーバー・パスワード、ならびにコンテキスト・パスワードは、暗号化された形でマスター・リポジトリに格納するかわりに、オプションで外部資格証明ストアに格納できます。この資格証明ストアは、Java Platform Security(JPS)の資格証明ストア・フレームワーク(CSF)によってアクセスされます。パスワード記憶域メソッド(内部またはJPSによる外部)はリポジトリ作成で定義され、既存のリポジトリについては切替が可能です。

このパスワード記憶域アプローチを使用することで、管理者はデータ・サーバー・パスワードを保護する企業の資格証明ストアに依存することを選択できます。

外部認証とSSO

Oracle Data Integratorユーザーは、外部認証サービスを使用して認証を受けることができます。Oracle Platform Security Services(OPSS)を使用して、Oracle Data Integratorユーザーは、中央にエンタープライズ・ユーザーおよびパスワードが含まれる外部エンタープライズ・アイデンティティ・ストア(LDAP、Oracle Internet Directory、Active Directory)と照らし合せて認証を受けます。

この機能では、マスター・リポジトリはOracle Data Integrator固有の権限およびユーザー名を保持しますが、パスワードは集中管理されたアイデンティティ・ストアに依存し、認証は常にこの外部ストアに対して実行されます。認証モード(内部または外部)はリポジトリ作成で定義され、既存のリポジトリについては切替が可能です。

この機能により、Oracle Data Integratorコンソールのシングル・サインオン(SSO)、およびEnterprise ManagerとOracle Data Integratorコンソールとのシームレスな認証統合が可能になります。

デフォルト・パスワード・ポリシー

Oracle Data Integratorには現在、低いセキュリティ・レベルでのパスワード設定を防ぐデフォルト・パスワード・ポリシーがインストールされています。

資格証明ストアにおけるJava EEコンポーネント・パスワード

Oracle WebLogic Serverで、リポジトリへのブートストラップ接続を必要とするJava EEコンポーネント(Java EEエージェント、Oracle Data Integratorコンソール)をデプロイする場合、このコンポーネントの構成にはスーパーバイザ・ユーザーによるログインが含まれます。強固なセキュリティ・ポリシーを強制するために、このユーザーのパスワードはアプリケーション構成内に格納されず、WLS資格証明ストアで集中管理されます。構成はこの集中管理ストアを参照します。

本番と監視

Oracle Data Integratorでは、本番における操作性を向上させるための新機能が提供されています。

エラー・メッセージの改善

Oracle Data Integratorコンポーネントおよびセッションで発生するエラー・メッセージは、管理者および本番オペレータに対し、アーキテクチャのステータスのトラブルシューティングと修正、およびセッションのデバッグに関する正確な情報を提供するよう改善されています。改善されたメッセージは次に関するものです。

- コンポーネント・ライフサイクル(起動、停止、スケジュールのリフレッシュなど)

- セッション・ライフサイクル(不正なシナリオ・バージョン、ロード・バランシングの問題、エージェント使用不可など)

- セッション・タスク/ステップ(ソース/ターゲット使用不可、インタフェース・エラー)。データベース・エラーには、開発者または本番オペレータがエラーの場所および理由を素早く識別できるようにする情報が盛り込まれています。

これらのエラー・メッセージは、Oracle Data Integratorエラー・コードで標準化されています。

通知とロギングの改善

Oracle Data Integratorコンポーネントは、Oracle Logging Frameworkを使用するようになりました。コンポーネントにおけるロギングは、開発、テストおよび本番環境の要件を満たすよう構成できます。

エージェント・コンポーネントでは、このロギング機能の他に、任意の管理コンソールに伝播するJava Management Extension(JMX)通知の形でステータスおよびセッション情報を取り上げることができます。

エラー表

エラー表はOracle Data Integratorコンソールで管理できるようになりました。本番オペレータはエラー表の内容を確認し、選択的にパージできます。

ログオン・セッション数のパージ

OdiPurgeLogツールでは、ログ内のセッション数のみを保持すると同時にログのパージをサポートするよう強化されました。パージされたセッションは、パージの実行前にツールによって自動的にアーカイブできます。

新規Oracle Data Integratorコンソール

メタデータ・ナビゲータUIはOracle Data Integratorコンソールに置き換えられています。この本番操作用のWebインタフェースは、ユーザーの操作性を充実させるためにADF-Faces Ajax Frameworkを使用して書き直されました。本番ユーザーはこのコンソールを使用して、環境設定、リポジトリのエクスポート/インポート、ランタイム操作の管理、セッションの監視、エラーの診断、デザインタイム・アーティファクトの参照および系統レポートの生成が可能です。

このWebインタフェースは、Oracle Fusion Middleware Controlコンソールとシームレスに統合されているため、Fusion Middlewareの管理者は、Oracle Data Integratorのコンポーネントおよびセッションの詳細にドリルダウンできます。

Oracle Fusion Middleware管理コンソールの統合

Oracle Data Integratorは、Oracle Fusion Middleware管理コンソールに統合された拡張機能を提供します。Oracle Data Integratorコンポーネントをこのコンソールによってドメインとして監視することができ、管理者は、単一管理コンソールから他のFusion Middlewareコンポーネントとともにこれらのコンポーネントを全体的に眺めることができます。

この拡張機能によってOracle Data Integratorコンポーネントが検出され、管理者は次の操作を行うことができます。

- ステータスの監視と、マスター/作業リポジトリのメトリック、Java EE/スタンドアロン・エージェント・コンポーネントおよびOracle Data Integratorコンソールの表示

- これらのコンポーネントによって生成された通知を中央の位置から確認

- Oracle Data Integratorコンソールに透過的にドリルダウンし、リポジトリに格納された詳細情報を参照

- Oracle Data IntegratorコンソールとJava EEエージェント・アプリケーションの起動と停止

- セッション実行の監視およびこれらのコンポーネントに関連付けられたセッション統計の確認

- 特定のセッションの検索、セッション・ステータスの表示およびOracle Data Integratorコンソールのセッション詳細へのドリルダウン

セッションの即時停止

セッションは即時モードで停止できます。この新規モードでは、現在の操作(データベース・エンジンに対して起動されたSQL文など)の完了を待機せずに中断を試行します。

高可用性

企業規模のデプロイの場合、この機能によってOracle Data Integratorコンポーネントの高可用性が実現します。

失効したセッションの検出と管理

Oracle Data Integratorは、エージェントまたはリポジトリの予期しない停止により保留中のセッションを検出できます。このような失効したセッションは現在では管理対象であり、エラー状態に置かれます。

リポジトリ接続の再試行

Oracle RACテクノロジに基づくリポジトリに接続されたエージェントは、接続再試行ロジックによって構成できます。エージェントのセッションをサポートするいずれかのOracle RACノードが使用不可となった場合、エージェントは再試行が可能であり、Oracle RACインフラストラクチャの別のノードでセッションを継続します。

WLSクラスタ化のサポート

WebLogic ServerにデプロイされたJava EEエージェントではクラスタ化がサポートされています。クラスタ化には、異なるクラスタ・ノードでのスケジュール・ポーティングが含まれます。リカバリ不可の実行中セッションは、自動的にエラー状態に移行します。

OPMN統合

スタンドアロン・エージェントは、Oracle Process Manager and Notification Server(OPMN)を使用して高可用性を高めることができます。スタンドアロン・エージェントを障害から保護するためのOPMNを構成するスクリプトが提供されています。

統合設計の改善

次の機能により、統合インタフェースの設計およびパフォーマンスが強化されています。

パーティション化

Oracle Data Integratorでは、データ・サーバーのパーティション化機能がサポートされるようになりました。パーティションは、RKMを使用してリバースエンジニアリングを実行したり、モデル内に手動で作成できます。インタフェースを設計する際に、ソースおよびターゲット・データストアで対処するパーティションを定義できます。Oracle Data Integratorコード生成では、この機能をサポートするテクノロジごとにパーティション使用構文が処理されます。

ルックアップ

ソースを駆動表およびモデルとして使用するか、またはターゲット・データストアを駆動表として使用するルックアップを作成するためのウィザードが、インタフェース・エディタに用意されています。これらのルックアップは、インタフェースのソース・ダイアグラムで小型のグラフィカル・オブジェクトとして表示されます。ユーザーは、ルックアップの生成方法を、FROM句で左側外部結合として生成、またはSELECT句で式として生成のいずれかから選択できます(ネステッド・ループを含むインメモリー・ルックアップ)。この2つ目の構文は、小さいルックアップ表ではより効率的である場合があります。

この機能により、ルックアップを使用したインタフェースの設計および可読性が単純化され、ルックアップの実行で最適化されたコードを使用できます。

データセットおよび集合ベースの演算子

この大規模な強化により、インタフェースにデータセットの概念が持ち込まれました。データセットは、結合およびフィルタ処理されたソース・データストアのグループからのデータの流れを表します。各データセットには、このソース・グループに対するターゲット・マッピングが含まれます。いくつかのデータセットを、UNIONおよびINTERSECTなどの集合ベースの演算子を使用してインタフェースのターゲット・データストアにマージできます。

この機能によりインタフェース設計が迅速化され、複数のデータ・フローを同じターゲット・データストアにマージするために必要なインタフェース数が減ります。

一時インタフェースの導出された選択

一時インタフェースを別のインタフェースでソースまたはルックアップ表として使用する場合、一時インタフェースのターゲットを保持せず、一時データストアのロードに対応する導出された選択(下位選択)文を生成するよう選択できます。このため、一時インタフェースは一時データストアをロードするために実行する必要がなくなりました。下位選択用に生成されるコードは、デフォルトの生成済コードまたはIKMで定義されたカスタマイズ済構文です。

この機能により、一時インタフェースを処理する複雑なパッケージが不要となり、一時インタフェースのカスケードの実行が簡略化されます。

ネイティブ順序のサポート

Oracle Data Integratorでは、データベース定義の順序に直接マップされる新しいタイプの順序がサポートされるようになりました。これらの順序が作成されると、データベースから取得されたリストから選択できます。ネイティブ順序は標準のOracle Data Integrator順序として使用され、コード生成によって順序に関するテクノロジ固有の構文が自動的に処理されます。

この機能により、あらゆる式のネイティブ順序の使用が簡略化され、こうした順序を使用する場合に相互参照が可能となります。

自然結合のサポート

Oracle Data Integratorでは、テクノロジ・レベルで定義された自然結合がサポートされるようになりました。この結合では、結合式の指定は不要であり、エンジンによって処理されます。このエンジンでは同じ名前の列が自動的に照合されます。

一時索引の自動管理

ソース表に結合またはフィルタを作成する場合、Oracle Data Integratorによって、これらの結合またはフィルタ処理の実行を最適化する一時索引を自動的に生成できます。ユーザーは、テクノロジの索引タイプのリストで、作成する必要がある索引のタイプを選択します。ナレッジ・モジュールでは、結合およびフィルタ処理の実行前における索引の作成、および使用後の削除を処理するコードが自動生成されます。

この機能により、結合およびフィルタ処理の実行の自動最適化が行われ、統合インタフェースのパフォーマンスが向上します。

新規インタフェース・エディタ

統合インタフェースの作成に使用されるインタフェース・エディタは、JDeveloperダイアグラム・フレームワークを使用するよう完全に再設計されています。

この新規ダイアグラムの利点は、次のとおりです:

- 改善されたルック・アンド・フィールとユーザー操作性の向上

- ダイアグラム・オブジェクトに対してグラフィカル・オプションがサポートされています。たとえば、表示を縮小および拡大して読みやすくできます。

- ソースおよびフロー・ダイアグラムで、大型のダイアグラム間を移動するためのサムネイルおよびズーム・イン/アウトがサポートされています。

- 複数のソース列をターゲット・データストアに直接ドロップし、マッピングを高速化できます。

- ターゲット・マッピング表が改善されました。マッピング・プロパティ(位置、インジケータ、名前およびマッピング式)を選択的に表示し、ソートできます。

- ソース、ターゲット、フィルタおよび結合は、フロー・ダイアグラムで直接選択および編集できます。

クイック編集

新規インタフェース・エディタには、インタフェース・ダイアグラムをより速く編集する新規の「クイック編集」タブが含まれます。「クイック編集」には、これらのコンポーネントが表形式で表示され、一括更新および直感的なキーボード・ナビゲーションがサポートされています。

自動修正

インタフェースを保存するか、インタフェース・エディタのツールバーでエラー・ボタンをクリックすると、インタフェースのすべての設計エラーのリストが、分かりやすいメッセージおよびヒントとともに表示されます。自動修正が提案され、シングル・クリックで適用できます。

コード・シミュレーション

Oracle Data Integrator Studioからデザインタイム・オブジェクトを実行する場合(インタフェース、プロシージャ、パッケージまたはカスタマイズされたリバースエンジニアリング・プロセスを実行する場合など)、完全な実行のかわりにコード・シミュレーションを実行することが可能です。

コード・シミュレーションでは、セッション・シミュレーション・レポートが表示されます。このレポートには、完全なセッション、ステップおよびタスク情報が含まれ、完全な生成コードが含まれます。セッション・シミュレーション・レポートを確認し、XMLまたはHTML形式で保存できます。

この機能により、Oracle Data Integratorの開発者は、トラブルシューティング、デバッグおよび最適化の目的で生成済コードを容易に確認し、この生成済コードを文書化またはアーカイブの目的で保存できます。

リバースエンジニアリングの改善点

モデルを作成すると、リバースエンジニアリング・コンテキストが自動的にデフォルト・コンテキストに設定されるため、これを手動で選択する必要はありません。さらに、選択的リバースエンジニアリングを実行する場合、システム表は非表示になります。

シナリオ命名規則

Studioから、またはツールを使用してシナリオまたはシナリオのグループを生成する際には、「シナリオ命名規則」ユーザー・パラメータを使用して、シナリオの命名に使用する命名規則を一定のパターンで定義できます(オブジェクト名、フォルダ・パスまたはプロジェクト名を使用)。

オブジェクト名の長さの延長

オブジェクト名は、長いデータベース・オブジェクト名(128文字)およびリポジトリ・オブジェクト・ラベル(400文字)をサポートするよう延長されました。

Oracle Data Integrator Java API

Oracle Data Integratorには、ランタイムおよびデザインタイム・アーティファクトを管理するJava APIが用意されています。Java開発者はこのAPIを使用して、Oracle Data Integratorを製品に埋め込み、統合プロセスの作成を独自のユーザー・インタフェースから導出できます。

Oracle Data Integrator Studio

Oracle Data Integratorには、Studioと呼ばれる、JDeveloperに基づく新規IDEが備わっています。このコンポーネントには、次の機能が組み込まれています。

新規ナビゲータ編成

新しいOracle Data Integrator Studioは、あらゆるOracle Data Integratorモジュール(デザイナ、トポロジ、オペレータおよびセキュリティ・マネージャ)の代替品として使用されます。これらのモジュールの機能はすべて、Oracle Data Integrator Studioウィンドウ内にナビゲータとして表示されます。

この新規ナビゲータ編成には、次の機能が備わっています。

- ナビゲータは、「表示」メニューを使用してドッキング/ドッキング解除および表示/非表示できます。これらのナビゲータにより、ナビゲータ・ツールバー・メニューから以前のモジュール固有アクション(トポロジ・ナビゲータでのマスター・リポジトリのエクスポート/インポート操作など)にアクセスできます。

- アコーディオンは、ナビゲータに表示されるツリー表示をグループ化します(デザイナ・ナビゲータの「プロジェクト」および「モデル」アコーディオンなど)。頻繁に使用しないアコーディオンはナビゲータの下部セクションに最小化し、他のツリー表示のためにスペースを空けることができます。アコーディオンによって、ツリー表示固有のアクションにツールバー・メニューからアクセスできます(例: デザイナ・ナビゲータの「プロジェクト」アコーディオンからプロジェクトをインポート)。

- ツリー表示オブジェクトには、Oracle Data Integrator 10gと同様にコンテキスト・メニューおよびマーカーが備わっています。ツリー表示内またはツリー表示間でツリー表示オブジェクトをドラッグ・アンド・ドロップし、セキュリティ・ポリシーを定義できます。オブジェクトをダブルクリックすると、デフォルトにより対応するオブジェクト・エディタが開きます。

- コンテキスト・メニューは、セパレータによってグループに再編成され、インタフェース全体で正規化されました。

ユーザーは、この機能が提供する単一ユーザー・インタフェースから、プロジェクト・ライフサイクル内のすべてのタスクを実行できます。また、この機能によってユーザーの生産性も向上します。

新規ルック・アンド・フィール

Oracle Data Integratorのルック・アンド・フィールは、JDeveloperベースのIDEを使用することで強化されました。この新規ルック・アンド・フィールは、「プリファレンス」メニュー・オプションを使用してカスタマイズできます。Oracle Data Integratorの全体的な外見上の魅力を高めるため、アイコンは新しい流行のスタイルで再設計しています。

再設計されたエディタ

Oracle Data Integratorのオブジェクト・エディタはすべて、操作性を向上させるため再設計されました。

主な変更点は次のとおりです。

- タブは、エディタの左側にフィンガー・タブとして編成されています。複雑なエディタ(インタフェースまたはパッケージ・エディタなど)にも、エディタの下部にタブが表示されています。

- フィールドはヘッダーの下にグループ化されています。これらのフィールド・グループは、拡張/縮小の動作を実装しています。

- フィールドおよびラベルは、エディタの可読性を向上させるため、すべてのエディタで標準的な方法で編成されています。

- エディタのテキスト・ボタンはハイパーリンクに変換され、エディタに表示されるボタンはすべて再設計されています。

- 独立したエディタを開くかわりにメイン・エディタから直接行を編集するために、ナレッジ・モジュール、アクションおよびプロシージャの各エディタが再設計されています。

ウィンドウの管理

Oracle Data Integrator Studioのウィンドウ、エディタおよびナビゲータでは、次のJDeveloper IDE機能を利用できます。

- ドッキングの完全サポート: すべてのウィンドウ、エディタおよびナビゲータは、直感的にドッキングおよびドッキング解除できます。エディタ・ウィンドウおよびドッキング可能ウィンドウを再配置する際に提供されるビジュアル・フィードバックが改善されています。マウスを離したときのウィンドウの配置の輪郭が表示されるようになりました。また、ドラッグ・アンド・ドロップを使用してドキュメント・タブを並べ替えることもできます。

- 高速最大化とリストア: ドッキング可能ウィンドウまたはエディタ領域を素早く最大化するには、最大化するウィンドウのタイトル・バーをダブルクリックします。ウィンドウを前のディメンションにリストアするには、タイトル・バーを再度ダブルクリックします。

- タブとしてのタイトル・バー: ドッキング可能ウィンドウのタブ(別のドッキング可能ウィンドウとともにタブ表示となった場合)は、タイトル・バーでもあります。これにより、画面上のスペースをより効率的に利用できます。ウィンドウを再配置するには、ウィンドウのタブをドラッグします。関連する追加の強化点には、タブの裏にあるグレーの背景領域からの新規コンテキスト・メニュー、"自動非表示"および"表示"から"最小化"および"リストア"への用語変更、シングル・クリックによるタブ式ウィンドウ・セットの最小化機能、最小化されたウィンドウのボタンをクリックすることによる表示の切替があります。

ドキュメント管理およびナビゲーション

Oracle Data Integrator Studioにおいて、オブジェクト・エディションはドキュメント管理の改善により強化されました。強化の内容は次のとおりです。

- 複数のエディタの保存と閉じる操作: 「ファイル」→「すべて保存」オプションを使用してシングル・クリックですべての作業を簡単に保存し、開いたすべてのエディタを同様に閉じることができます。また、現在のエディタを除くすべてのエディタを閉じることもできます。

- 進むおよび「戻る」ボタン: メイン・ツールバーにある便利なブラウザ式の進むおよび「戻る」ボタンを使用して、以前アクセスしたドキュメントに容易に戻ることができます。これらのボタンは履歴を保持しているため、「戻る」または進むボタンのドロップダウンを開いてドキュメントのリストを取得し、アクセスした場所を編集できます。[Alt]+左矢印および[Alt]+右矢印により、「戻る」および進むボタンがアクティブ化されます。

- ドキュメントのクイック切替: エディタおよびナビゲータの切替も可能です。[Ctrl]を押しながら[Tab]、または[Ctrl]を押しながら[F6]を押すと、最も最近使用したドキュメントを基準に並べ替えたリストから、切り替えるドキュメントを選択できます。同じ技術を使用して、開かれたドッキング可能ウィンドウを切り替えるには、まずドッキング可能ウィンドウにフォーカスを置き、[Ctrl]を押しながら[Tab]、または[Ctrl]を押しながら[F6]を押します。

ユーザー支援の向上

Oracle Data Integratorでは、操作性を向上させる直感的な新機能が導入されています。

- ヘルプ・センター/ようこそページ: ようこそページはヘルプ・センターに変わりました。ヘルプ・トピックおよび共通タスクに素早くアクセスできるようになり、役立つOracleリソースへのリンクも提供するように再設計されました。

- 新規オンライン・ヘルプ: オンライン・ヘルプは、新規ユーザー・インタフェースをサポートするために完全に書き直されました。

- ヘルプ・ブックマーク: 「ヘルプ」ウィンドウには、タブ・ラベル付きのお気に入りがあります。ヘルプを参照中に、お気に入りに追加ボタンをクリックしてドキュメントをこのタブに追加できます。

エクスポート/インポート

この新規リリースでは、エクスポート/インポートが次の機能により強化されています。

インポート・レポート

オブジェクトがインポートされた後、ターゲット・リポジトリでインポートまたは削除されたオブジェクトがインポート・レポートに表示されます。さらに、インポート済オブジェクトによって参照される欠落オブジェクトは欠落参照として示され、インポートによって修正された欠落参照も示されます。インポート・レポートは、XMLまたはHTML形式で保存できます。

この機能により、すべての変更を識別およびアーカイブできるため、オブジェクトのインポートは非常に透過的な操作となります。

リポジトリ破損防止

リポジトリ間でオブジェクトをインポートする際に、インポート・エラーおよびリポジトリ破損のリスクを避けるため、次のケースが考慮されました。

- 別の起点(フィルタ式など)のテキストによってテキスト(マッピング式など)が上書される場合がある「シノニム」モードでのインポートは、現在検証済であり、許可されていません。

- 同じリポジトリ識別子を持つ2つのリポジトリからターゲット・リポジトリへのオブジェクトのインポートは許可されていません。これにより、オブジェクトの衝突および破損が避けられます。

- 別のリポジトリからインポートされたオブジェクトが含まれる作業リポジトリを関連付ける際に、ユーザーに警告が表示されます。

さらに、存在しないオブジェクトを参照するオブジェクトをインポートすると、インポート・レポートで識別される欠落参照が作成されます。こうした参照は欠落オブジェクトのインポートによって解決できます。

リポジトリの再番号付け

マスターリポジトリまたは作業リポジトリの作成後に、その識別子を変更できるようになりました。この操作によって、このリポジトリで作成されたオブジェクトの内部識別子が自動更新され、新規識別子と一致します。

この機能により、複数のリポジトリが同じ識別子で作成された場合の構成管理およびインポート/エクスポート状況の修正が容易になります。

リリース10.1.3パッチ・セットでのKM強化

次の改善された新規ナレッジ・モジュールが10gR3パッチ・セットで提供されており、このリリースで使用できます。

Oracle GoldenGateナレッジ・モジュール

Oracle Data Integratorでは、Oracle GoldenGateを使用して、オンライン・データをソースからステージング・データベースに複製します。ジャーナル化KMではOracle Data Integrator CDCインフラストラクチャが管理され、Oracle GoldenGateの構成が自動生成されます。

Oracle E-Business Suiteナレッジ・モジュール

E-Business Suite向けのOracle Data Integratorナレッジ・モジュールでは、Oracle Data IntegratorとE-Business Suiteの間に包括的な双方向の接続性が提供されており、データの抽出およびロードが可能です。ナレッジ・モジュールでは、E-Business Suiteのすべてのモジュールがサポートされており、EBSオブジェクト表/ビューおよびインタフェース表によって双方向の接続性が提供されます。

Oracle OLAPナレッジ・モジュール

Oracle OLAP向けのOracle Data Integratorナレッジ・モジュールでは、Oracle Data IntegratorおよびOracle OLAPキューブの間に統合および接続性が提供されています。これらのKMでは、Oracle OLAPデータ構造(ROLAPまたはMOLAPキューブで使用されるすべての表)のリバースエンジニアリングおよび増分更新モードでのOracle Analytical Workspaceターゲットのデータ統合がサポートされています。

Oracle PeopleSoftナレッジ・モジュール

PeopleSoft向けのOracle Data Integratorナレッジ・モジュールでは、Oracle Data IntegratorおよびPeopleSoftプラットフォームの間に統合および接続性が提供されています。これらのKMでは、PeopleSoftのデータレベル統合が可能であり、PeopleSoftデータ構造(ビジネス・オブジェクト、表、ビュー、列、キーおよび外部キー)のリバースエンジニアリングおよびPeopleSoftからのデータ抽出がサポートされています。

Oracle Siebelナレッジ・モジュール

Oracle Data Integrator Siebelナレッジ・モジュールでは、Siebelデータ構造(ビジネス・コンポーネントおよびビジネス・オブジェクト)およびEnterprise Integration Manager(EIM)表のリバースエンジニアリング、データレベルの統合およびデータ抽出を使用したSiebelからのデータ抽出、EIM表を使用したSiebelとの統合がサポートされています

JDE EnterpriseOneナレッジ・モジュール

JDE EnterpriseOne向けのOracle Data Integratorナレッジ・モジュールでは、Oracle Data IntegratorによるJDE EnterpriseOneプラットフォームと任意のデータベース・アプリケーションとの接続性および統合を提供しています。これらのKMでは、JDE EnterpriseOneデータ構造のリバースエンジニアリング、JDE EnterpriseOneからのデータ抽出(ダイレクト・データベース統合)およびJDEアプリケーションへのZ表による統合(インタフェース表の統合)がサポートされています

Oracle Changed Data Capture Adapters/Attunity Streamsナレッジ・モジュール

Oracle Data Integrator CDCナレッジ・モジュールでは、Oracle Changed Data Capture Adapters/Attunity Streamsステージング領域からの統合がJDBCインタフェースによって提供されています。このKMでは、変更されたデータが読み取られ、このデータがステージング領域にロードされ、Oracle Changed Data Capture Adapters/Attunity Streamsコンテキストが処理されて、読み取られた変更の一貫した使用が保証されます。

Hyperionアダプタ

Oracle Data Integratorを使用したHyperionテクノロジの統合について、ナレッジ・モジュールおよびテクノロジが追加されました。

これらのKMでは、次のHyperion製品がサポートされています。

- Hyperion Financial Management(メタデータとデータをロードおよび抽出)。

- Hyperion Planning(メタデータとデータをHyperion Planningにロード)。

- Hyperion Essbase(Essbaseメタデータとデータをロードおよび抽出)。

デバッグのための行単位KM

行単位ロード(LKM SQLからSQLへ(行単位))および統合(IKM SQL増分更新(行単位))をサポートするナレッジ・モジュールがデバッグのために導入されました。これらのKMでは、KMによって実行された各行操作のロギングが可能です。

Teradataの最適化

Teradataの最適なパフォーマンスを可能にするため、Teradataナレッジ・モジュールが強化されました。

これには次の機能が含まれます。

- Teradataユーティリティ(TTU)のサポート。

- 一時表のカスタマイズされた1次索引(PI)のサポート。

- TTU使用時の名前付きパイプのサポート。

- 一時表の最適化された管理。

SAP ERPアダプタ

SAP ERPアダプタでは、SAP ERPシステムからのデータの抽出が可能です。このアダプタに組み込まれたOracle Data Integrator SAP ABAPナレッジ・モジュールでは、SAP JCoライブラリおよび生成されたABAPプログラムを使用したSAP ERPシステムからの統合が可能です。

SAP BWアダプタ

SAP BWアダプタでは、SAP BWシステムからのデータの抽出が可能です。このアダプタに組み込まれたOracle Data Integrator SAP BWナレッジ・モジュールでは、SAP JCoライブラリおよび生成されたABAPプログラムを使用したSAP BWからの統合が可能です。このアダプタでは、ODS、情報オブジェクト、情報キューブ、Open Hubおよびデルタ抽出がサポートされています。

リリース11.1.1でのKM強化

このリリースでは、次のナレッジ・モジュールの強化が追加されています。

新規コア機能用のKM強化

このバージョンのOracle Data Integratorに追加されたコア機能をサポートするため、ナレッジ・モジュールが強化されています。これらの機能をサポートするため、次のKMが更新されました。

- パーティション化のサポート: Oracle RKMはパーティションに対しリバースエンジニアリングを実行します。

- データセットおよび集合ベースの演算子: この機能をサポートするため、すべてのIKMが更新されました。

- 一時索引の自動管理: この機能をサポートするため、OracleおよびTeradataのIKMとLKMが更新されました。

Oracle Business Intelligence Enterprise Edition - 物理

Oracle Data Integratorでは、Oracle Business Intelligence Enterprise Edition(OBI-EE)物理レイヤーで公開されているビュー・オブジェクトのリバースエンジニアリング機能が備わっています。これらのオブジェクトは、統合インタフェースのソースとして使用できます。

Oracle Multi-Table Inserts

Oracleの新規統合KMでは、単一ソースからの複数ターゲット表の移入が可能であり、データは1回のみ読み取られます。それは、INSERT ALL文を使用します。

Teradata Multi-Statements

新規Teradata統合KMでは、Teradata Multi-Statementsがサポートされており、複数のフローを並列して統合できます。

第I部

Oracle Data Integratorの理解

この部では、Oracle Data Integratorの概要とOracle Data Integratorで統合プロジェクトを作成するための基本的な手順について説明します。

この部の内容は次のとおりです。

- 第1章「Oracle Data Integratorの概要」

- 第2章「Oracle Data Integratorクイックスタート」

1 Oracle Data Integratorの概要

この章の内容は、次のとおりです。

- 1.1項「Oracle Data Integratorを使用したデータ統合の概要」

- 1.2項「Oracle Data Integratorの概念」

- 1.3項「一般的なODI統合プロジェクト」

- 1.4項「Oracle Data Integratorのアーキテクチャ」

1.1 Oracle Data Integratorを使用したデータ統合の概要

データ統合によって、複雑なシステム全体で情報の適時性、正確性および一貫性が確保されます。この項では、データ統合の概要を説明し、Oracle Data Integratorによるデータ統合のサポート方法についても説明します。

1.1.1 データ統合

企業全体でデータとアプリケーションを統合し、統一されたビューで示すことは、難しい課題です。テクノロジ、データ構造、アプリケーション機能に明らかな差異があるのみでなく、統合アーキテクチャにも基本的な相違があります。一部の統合ニーズ、特に大量のデータを統合する場合のニーズはデータ指向です。他の統合プロジェクトでは、非同期統合または同期統合のために、プロジェクト自体がイベント駆動型アーキテクチャ(EDA)またはサービス指向アーキテクチャ(SOA)に適合するようにします。

データ統合によって、複雑なシステム全体で情報の適時性、正確性および一貫性が確保されます。データ統合は、当初は企業データ・ウェアハウス・システムのロードに使用されるアーキテクチャと考えられていたため、今でも抽出-ロード-変換(ETL)と呼ばれることがよくありますが、現在では、データ移動、データ同期、データ品質、データ管理およびデータ・サービスが含まれます。

1.1.2 Oracle Data Integrator

Oracle Data Integratorには、複雑なデータ・ウェアハウスを構築、デプロイおよび管理するため、あるいはSOAまたはビジネス・インテリジェンス環境のデータ集中型アーキテクチャの一部として、完全に統一されたソリューションが用意されています。さらに、データ統合のすべての要素(データ移動、データ同期、データ品質、データ管理およびデータ・サービス)が結合され、複雑なシステム全体で情報の適時性、正確性および一貫性が確保されます。

Oracle Data Integrator (ODI)の特徴は、データ統合のあらゆるスタイル(データ中心、イベント中心、サービス中心)を組み込んだアクティブな統合プラットフォームです。ODIでは、大量のデータの効率的な変換、高度なチェンジ・データ・キャプチャ(CDC)機能によるリアルタイムのイベント処理、Oracle SOA Suiteに対するデータ・サービスの提供によって、分断化状態の統合が統一されます。また、堅牢なデータ整合性制御機能によって、データの一貫性と正確性が保証されます。異種のE-LT、宣言的な設計、ナレッジ・モジュールなど、中核となる強力な差別化機能によって、Oracle Data Integratorは、統合プラットフォームのパフォーマンス、柔軟性、生産性、モジュール性およびホットプラガブル性の要件を満たします。

1.1.3 E-LT

従来のETLツールの動作では、最初に各種ソースからデータが抽出され、ステージング領域として使用される独自の中間層ETLエンジンでデータが変換された後、変換したデータがターゲット・データ・ウェアハウスまたは統合サーバーにロードされます。このようにETLという用語は、図1-1に示すように、実行される動作の名前と順序の両方を表しています。

図1-1 従来のETLとODI E-LTの比較

「図1-1 従来のETLとODI E-LTの比較」の説明

ETLプロセスのデータ変換ステップはコンピュータ資源を大量消費する処理であり、専用サーバー上の独自のETLエンジンによってすべて実行されます。ETLエンジンでは、行単位でデータ変換が実行(場合によってデータ品質チェックも実行)されるため、プロセス全体のボトルネックになることがよくあります。また、データはネットワーク上を2回(1回はソースとETLサーバー間、もう1回はETLサーバーとターゲット・データ・ウェアハウス間)移動する必要があります。さらに、データ・フロー参照をターゲット・データ・ウェアハウスの値と比較することによって参照整合性を保証する場合、参照されるデータをターゲットからエンジンにダウンロードする必要があるため、ネットワーク・トラフィックとダウンロード時間がさらに増加し、パフォーマンスの問題が深刻化します。

ETLアーキテクチャによって提起された問題に対応して、新しいアーキテクチャが出現しています。このアーキテクチャでは、手作業によるコーディングと自動コード生成アプローチの最良の特徴が様々な方法で統合されています。E-LTと呼ばれるこの新しいアプローチでは、データ変換が行われる場所と方法が変更され、既存の開発者のスキル、RDBMSエンジンおよびサーバー・ハードウェアが最大限に活用されます。実際には、E-LTでは操作の順序が変更されて、データ変換ステップがターゲットRDBMSに移動されています。つまり、ソース表からのデータの抽出、宛先サーバーへの表のロード、およびネイティブSQL演算子を使用したターゲットRDBMSでのデータの変換という順序になります。E-LTを使用した場合は、図1-1に示した中間層エンジン(サーバー)が必要ないことに注意してください。

Oracle Data Integratorでは、ETLスタイルとE-LTスタイルの両方のデータ統合がサポートされています。詳細は、11.5項「統合インタフェースの設計: E-LTスタイルのインタフェースとETLスタイルのインタフェース」を参照してください。

1.2 Oracle Data Integratorの概念

この項では、Oracle Data Integratorの主要概念の概要を示します。

1.2.1 I宣言的設計の概要

従来のETLシステムを使用して統合プロセスを設計する場合、開発者はプロセスの各ステップを設計する必要があります。たとえば、一定期間の売上高を顧客の様々な年齢別グループで集計する一般的な例について考えます。売上データは売上管理データベースから取得され、年齢別グループは年齢分布ファイルに記載されています。これらのソースを組み合せて、顧客統計システムに対して適切なレコードを挿入および更新するには、次のような各ステップを設計する必要があります。

1. エンジンにある顧客売上データをロードします。

2. エンジンにある年齢分布ファイルをロードします。

3. 顧客売上データと年齢分布データ間のルックアップを実行します。

4. 年齢分布別にグループ化した顧客売上高を集計します。

5. ターゲット売上統計データをエンジンにロードします。

6. 集計した情報を統計システムのデータと比較して、挿入または更新が必要なデータを判別します。

7. 新しいレコードをターゲットに挿入します。

8. 既存のレコードをターゲットに更新します。

この方法では、設計する必要があるステップに応じて特別なスキルが要求されます。また、ターゲットでの挿入/更新の管理など、反復する一連のタスクでも、各タスクで開発が必要であるため、開発にはかなりの労力が必要です。最終的に、この方法ではメンテナンスにもかなりの労力が必要です。統合プロセスの変更では、プロセスによる処理内容の完全な理解および処理方法の知識が必要です。従来のETL方法による設計では、統合の論理面と技術面が密接に関係しています。宣言的設計は、処理方法(プロセス)ではなく、処理内容(宣言的ルール)を中心にした設計方法です。ここで示す例では、プロセスの処理内容は次のとおりです。

- 売上アプリケーションからの顧客年齢を、統計ファイルの年齢別グループに関連付けます。

- 年齢別グループで顧客売上を集計して、売上統計をロードします。

この処理の実行方法、つまり一時データ構造の作成やローダーの呼出しなど、この統合タスクを実行するための基礎となる技術的な側面や戦略は、宣言的ルールから明確に切り離されます。

Oracle Data Integratorの宣言的設計では、既知のリレーショナル・パラダイムを使用して、ソース、ターゲットおよび変換の指示を含んだ、データ統合タスクに対する宣言的ルールがインタフェースの形式で宣言されます。

宣言的ルールは、データを変換するためにメタデータに適用されることが多く、通常は、ビジネス・ユーザーが自然言語で記述します。通常のデータ統合プロジェクト(データ・ウェアハウス・プロジェクトなど)では、これらのルールは、ビジネス・アナリストがプロジェクト・マネージャと協力して作成したドキュメントに、仕様の段階で定義されます。参照するメタデータが既知であり、メタデータ・リポジトリで修飾されている場合、ルールはSQL式を使用して実装されることがよくあります。

宣言的ルールの主要なタイプは、マッピング、結合、フィルタおよび制約の4つです。

- マッピングは、SQL式として実装されるビジネス・ルールであり、ソース列(フィールド)をターゲット列の1つにマップする変換ルールです。マッピングは、実行時にリレーショナル・データベース・サーバーによって実行されます。このサーバーには、ソース・サーバー(可能な場合)、中間層サーバーまたはターゲット・サーバーを使用できます。

- 結合操作では、表やファイルなど、複数のデータ・セット内のレコードがリンクされます。結合は、複数のソースをリンクするために使用されます。結合は、2つ以上のデータ・セットの列(フィールド)をリンクするSQL式として実装されます。結合は、関係するソース・データ・セットの物理的な位置に関係なく定義できます。たとえば、JMSキューをOracle表に結合できます。結合を実行するテクノロジに応じて、結合は、内部結合、右の外部結合、左の外部結合および完全外部結合として表すことができます。

- フィルタは、ソース・データ・セットの列に適用される式です。このフィルタに一致するレコードのみが、データ・フローによって処理されます。

- 制約は、データ・セットのデータに適用されるルールを定義するオブジェクトです。制約によって、特定のデータ・セット内のデータの妥当性、およびモデルのデータの整合性が保証されます。ターゲットに対する制約は、ターゲットでの統合前にデータの妥当性をチェックするために使用されます。

表1-1は、宣言的ルールの例を示しています。

表1-1 宣言的ルールの例

宣言的ルール

タイプ

SQL式

全金額の合計、つまり2005年10月に販売された品目に品目価格を乗算した金額

マッピング

SUM(
CASE WHEN SALES.YEARMONTH=200510 THEN
SALES.AMOUNT*product.item_PRICE
ELSE
0
END
)

CPUで始まり、ハードウェア・カテゴリに属する製品

フィルタ

Upper(PRODUCT.PRODUCT_NAME)like 'CPU%'
And PRODCUT.CATEGORY = 'HARDWARE'

注文および注文明細がある顧客

結合

CUSTOMER.CUSTOMER_ID = ORDER.ORDER_ID
And ORDER.ORDER_ID = ORDER_LINE.ORDER_ID

重複顧客名の拒否

一意キー制約

Unique key (CUSTOMER_NAME)

存在しない顧客へのリンクが指定されている注文の拒否

参照制約

Foreign key on ORDERS(CUSTOMER_ID) references CUSTOMER(CUSTOMER_ID)

1.2.2 ナレッジ・モジュールの概要

ナレッジ・モジュール(KM)は、統合プロセスが発生する方法を実装しています。ナレッジ・モジュールの各タイプは、それぞれ特定の統合タスクを表します。

- 異種システムのメタデータをOracle Data Integratorで使用するためのリバースエンジニアリング(RKM)。RKMの使用方法の詳細は、第5章「モデルの作成およびリバースエンジニアリング」を参照してください。

- 特定のシステムにおけるチェンジ・データ・キャプチャ(CDC)の処理(JKM)。ジャーナル化ナレッジ・モジュールの使用方法の詳細は、第6章「チェンジ・データ・キャプチャの使用」を参照してください。

- システムに最適な方法を使用した、あるシステムから別のシステムへのデータのロード(LKM)。これらのKMは、インタフェースで使用されます。ロード・ナレッジ・モジュールの使用方法の詳細は、第11章「統合インタフェースの使用」を参照してください。

- 特定の戦略(挿入/更新、緩やかに変化するディメンジョン)を使用した、ターゲット・システムでのデータの統合(IKM)。これらのKMは、インタフェースで使用されます。統合ナレッジ・モジュールの使用方法の詳細は、第11章「統合インタフェースの使用」を参照してください。

- データ・フローでのデータ整合性の制御(CKM)。これらのKMは、データ・モデルの静的チェックおよびインタフェースのフロー・チェックで使用されます。チェック・ナレッジ・モジュールの使用方法の詳細は、第5章「モデルの作成およびリバースエンジニアリング」および第11章「統合インタフェースの使用」を参照してください。

- Webサービスの形式でのデータの公開(SKM)。サービス・ナレッジ・モジュールの使用方法の詳細は、第8章「データ・サービスの使用」を参照してください。

ナレッジ・モジュールは、特定の統合タスクのためのコード・テンプレートです。このコードは、処理する必要がある宣言的ルールから独立しています。設計時に、開発者は統合プロセスを記述する宣言的ルールを作成します。これらの宣言的ルールはナレッジ・モジュールとマージされ、実行時に使用できるコードが生成されます。実行時に、Oracle Data Integratorによって、このコードがソース・システムとターゲット・システムに実行用に送信され、プロセスを実行するためにE-LTアーキテクチャで利用されます。

ナレッジ・モジュールのテクノロジと技術は広範囲にわたります。ナレッジ・モジュールは、ある状況の特定のタスクに対して最適なソリューションや微調整されたソリューションにユーザーがアクセスできるようにして、柔軟性を高めます。たとえば、データをあるDBMSから別のDBMSに転送する場合、開発者は状況に応じて複数の方法のいずれかを使用できます。

- DBMSローダー(OracleのSQL*Loader、Microsoft SQL ServerのBCP、Teradata TPump)は、ソース・エンジンのデータをファイルにダンプし、このファイルをターゲット・エンジンにロードできます。

- データベース・リンク機能(Oracle Database Links、Microsoft SQL ServerのLinked Servers)はサーバー間で直接データを転送できます。

これらの技術的戦略は特に、特定のプラットフォームのネイティブな機能を使用するようにチューニングされたナレッジ・モジュールに対応しています。

また、ナレッジ・モジュールは完全に拡張可能です。コードはオープンであり、新しい統合メソッドやベスト・プラクティスを実装する技術専門家は、グラフィカル・ユーザー・インタフェースを使用してコードを編集できます(たとえば、パフォーマンスの向上を目的として、または法令や会社の標準に準拠するため)。開発者は、技術専門家のスキルがなくても、これらのカスタム・ナレッジ・モジュールを統合プロセスで使用できます。

ナレッジ・モジュールの詳細は、Oracle Data Integrator接続性およびモジュール・ガイドおよびOracle Data Integratorナレッジ・モジュール開発者ガイドを参照してください。

1.2.3 統合インタフェースの概要

統合インタフェースは、保存されたOracle Data Integratorオブジェクトです。このオブジェクトを使用すると、マッピング、結合、フィルタおよび制約として実装される宣言的ルールに基づいて、1つ以上のソース・データストアから変換されたデータを1つのターゲット・データストアにロードできます。

統合インタフェースは、統合プロセスの生成に使用されるナレッジ・モジュール(コード・テンプレート)も参照します。

1.2.3.1 データストア

データストアは、統合インタフェースでソースまたはターゲットとして使用できるデータ構造です。次に例を示します。

- リレーショナル・データベースに格納された表

- ASCIIまたはEBCDICファイル(デリミタ付きまたは固定長)

- XMLファイルのノード

- メッセージ指向ミドルウェアのJMSトピックまたはキュー

- エンタープライズ・ディレクトリのノード

- レコード配列の形式でデータを戻すAPI

基礎となるテクノロジに関係なく、Oracle Data Integratorでは、すべてのデータ・ソースが、同じ方法で操作および統合が可能なデータストアの形式で表示されます。データストアはデータ・モデルにグループ化されます。これらのモデルには、データストアに関連付けられる制約などのすべての宣言的ルール(メタデータ)が含まれます。

1.2.3.2 宣言的ルール

インタフェースを構成する宣言的ルールは、通常の言語で表すことができます。たとえば、次の例のように記述します。データは2つのMicrosoft SQL Server表(ORDER_LINESとそれに結合されたORDERS)から取得され、CORRECTIONSファイルのデータと結合されます。ターゲットのSALES Oracle表は、ID列が一意であることやSALES_REP表に対する有効な参照があることなど、いくつかの制約を照合する必要があります。

データは、図1-2に示すように、通常の言語で表されるいくつかのマッピングに従って変換および集計する必要があります。

図1-2 ビジネスの問題の例

「図1-2 ビジネスの問題の例」の説明

これらのビジネス・ルールの自然言語からSQL式への変換は、通常は簡単な作業です。この例では、図1-2に示したルールは、表1-2に示すように変換できます。

表1-2 変換されたビジネス・ルール

タイプ

ルール

SQL式/制約

フィルタ

クローズ済のマークが付けられたORDERSのみ

ORDERS.STATUS = 'CLOSED'

結合

LINESの行に、ORDERSのものと一致するORDER_IDがあります

ORDERS.ORDER_ID = LINES.ORDER_ID

マッピング

ターゲットのSALESが営業担当者別にグループ化された注文明細のAMOUNTの合計で、修正が適用されています

SUM(LINES.AMOUNT + CORRECTIONS.VALUE)

マッピング

営業担当者 = ORDERSの営業担当者ID

ORDERS.SALES_REP_ID

制約

IDはnullでないことが必要です。

IDはデータ・モデルでnot nullに設定されています

制約

IDは一意であることが必要です

一意のキーが列セットとしての(ID)でデータ・モデルに追加されています

制約

営業担当者IDがターゲットのSalesRep表に存在している必要があります

参照(外部キー)がSALES.SALES_REP = SALES_REP.SALES_REP_IDでデータ・モデルに追加されています

Oracle Data Integratorを使用してこのビジネス課題を実装することは、非常に簡単でわかりやすい課題です。ビジネス・ルールをインタフェースに変換するのみで実装できます。図1-3に示すように、すべてのビジネス・ルールがインタフェースのダイアグラムからアクセス可能な状態のままです。

図1-3 Oracle Data Integratorを使用した実装

「図1-3 Oracle Data Integratorを使用した実装」の説明

1.2.3.3 データ・フロー

インタフェースで定義されたビジネス・ルールは、データ・フローに自動的に変換されます。データ・フローでは、ソース・データからターゲット表への結合、フィルタ、マッピングおよび制約が実行されます。

デフォルトでは、Oracle Data Integratorでは、ターゲットRDBMSがステージング領域として使用されます。この領域は、ソース・データを一時表にロードし、必要なすべてのマッピング、ステージング・フィルタ、結合および制約を適用するための領域です。ステージング領域は、RDBMS(ユーザー/データベース)内の別個の領域です。この領域に、Oracle Data Integratorによってその一時オブジェクトが作成され、一部のルール(マッピング、結合、最終フィルタ、集計など)が実行されます。このように操作を実行する場合、Oracle Data IntegratorはE-LTのように動作します。つまり、最初に一時表が抽出され、ロードされた後、最後にターゲットRDBMSで変換が実行されます。

一部の特定のケースでは、ソースのデータ量が少ない(500,000レコード未満)場合、このステージング領域をメモリー内のOracle Data Integratorのメモリー内リレーショナル・データベース(メモリー内エンジン)に配置できます。この場合、Oracle Data Integratorは従来のETLツールのように動作します。

図1-4に、最終的なSALES表をロードするためにOracle Data Integratorによって自動的に生成されるデータ・フローを示します。ビジネス・ルールは、ナレッジ・モジュール(KM)によってコードに変換されます。作成されたコードによって、複数のステップが生成されます。これらのステップの一部で、データがソースから抽出されてステージング領域にロードされます(ロード・ナレッジ・モジュール - LKM)。他のステップでは、データが変換されて、ステージング領域からターゲット表に統合されます(統合ナレッジ・モジュール - IKM)。データ品質を保証するために、チェック・ナレッジ・モジュール(CKM)によって、ユーザー定義制約がステージング・データに適用され、エラーのあるレコードはエラー表に分離されます。

図1-4 動作中のOracle Data Integratorナレッジ・モジュール

「図1-4 動作中のOracle Data Integratorナレッジ・モジュール」の説明

Oracle Data Integratorのナレッジ・モジュールには、インフラストラクチャの様々なサーバーによって実行される実際のコードが含まれています。ナレッジ・モジュールに含まれているコードの一部は汎用的です。実行時に、ビジネス・ルールに結合されるOracle Data Integratorの置換APIをコールして、実行される最終的なコードを生成します。

設計時には、宣言的ルールはインタフェースで定義され、ナレッジ・モジュールは選択および構成されるのみです。

実行時に、コードが生成され、ナレッジ・モジュールのOracle Data Integratorの各APIコール(<%と%>に囲まれた部分)は、リポジトリに提供されているメタデータに関しては、対応するオブジェクト名または式で置換されます。生成されたコードは、ソースおよびターゲット・システム上のOracle Data Integratorのランタイム・コンポーネント(エージェント)によって調整されて、E-LTアプローチの定義に従って、処理が実行されるようにします。

統合インタフェースの使用方法の詳細は、第11章「統合インタフェースの使用」を参照してください。

1.3 一般的なODI統合プロジェクト

Oracle Data Integratorの統合機能は広範囲にわたります。この項では、最も一般的なODI統合プロジェクトについて説明します。

1.3.1 バッチ指向の統合

ODIは、すべての主要データベース、データ・ウェアハウスおよび分析アプリケーションに対する組込みの接続を備えた総合的なデータ統合プラットフォームであり、大規模かつ高パフォーマンスなバッチ統合を提供します。

データ・ウェアハウスの主な目的は、ビジネス・ユーザーが日常業務に関する意思決定を行うことができるように、正確な指標を整理統合して配信することです。一般的なプロジェクトは、複数のステップとマイルストンで構成されます。次にその一部を示します。

- ビジネス・ニーズ(キー・インジケータ)の定義

- キー・インジケータに関係するソース・データの識別、ソース情報をキー・インジケータに変換するためのビジネス・ルールの指定

- キー・インジケータを格納するターゲット・ウェアハウスのデータ構造のモデル化

- ビジネス・ルールの実装によるインジケータの移入

- データ品質ルールの設定によるデータの全体的な正確度の測定

- キー・インジケータに関するレポートの開発

- 非定型問合せツールまたは事前定義レポートを使用した、ビジネス・ユーザーによるキー・インジケータおよびメタデータの利用可能化

- ビジネス・ユーザーの満足度の測定およびキー・インジケータの追加/変更

Oracle Data Integratorでは、これらのほとんどのステップ(ソース・データの検証からメタデータ系統、およびロードやデータ品質監査まで)を実行できます。ODIでは、そのリポジトリによって、仕様および開発作業が集中管理され、プロジェクトの成功の基礎となる独自のアーキテクチャが提供されます。

シナリオのスケジュールおよび操作

シナリオのスケジュールおよび操作は通常、テスト環境および本番環境で別々の作業リポジトリで実行されます。シナリオはオペレーティング・システム・コマンドで呼び出せるため、ODIエージェントまたは外部スケジューラによって任意のシナリオをスケジュールできます。

シナリオを本番で実行している場合は、エージェントによってODI作業リポジトリに実行ログが生成されます。これらのログは、オペレータ・ナビゲータを使用して、またはOracle Data Integratorコンソールが設定されている場合はWebブラウザを使用して監視できます。失敗したジョブは再開でき、実行のために非定型のタスクを発行できます。

E-LT

ODIでは、独自のE-LTアーキテクチャが使用されます。このアーキテクチャでは、すべての変換を実行するネイティブSQLとバルク・ローダー制御スクリプトの生成によって、既存のRDBMSエンジンの機能が利用されます。

1.3.2 イベント指向の統合

メッセージ指向ミドルウェアまたはエンタープライズ・サービス・バスからのイベントの取得は、リアルタイム環境におけるアプリケーション統合の一般的なタスクになりました。アプリケーションおよびビジネス・プロセスは、複数のサブスクライバに対するメッセージを生成するか、またはメッセージング・インフラストラクチャからのメッセージを使用します。

Oracle Data Integratorには、メッセージベースの統合をサポートし、Java Message Service (JMS)標準に準拠するテクノロジが組み込まれています。たとえば、Oracle Data Integrator内の変換ジョブは、メッセージ・キューまたはトピックのメッセージをサブスクライブし、使用できます。メッセージはリアルタイムで取得および変換され、ターゲット・システムに書き込まれます。

この統合タイプの他のユースケースでは、データベース・レベルで変更を取得する必要がある場合があります。Oracle Data Integratorのチェンジ・データ・キャプチャ(CDC)機能によって、ソースに対して挿入、更新または削除されたデータが識別および取得され、統合プロセスでデータを使用できるようになります。

ODIには、ソース・データストアからCDCフレームワークまで変更を追跡するために、トリガーとRDBMSログ・マイニングの2つの方法が用意されています。最初の方法は、データベース・トリガーを実装するほとんどのRDBMSにデプロイできます。この方法は、ソース・システムに対するオーバーヘッドを最小限に抑えるように最適化されています。たとえば、トリガーによって取得された変更データは複製されず、ソース・システムのパフォーマンスを低下させる入出力操作の数を最小限にします。2番目の方法には、RDBMSログ(データベース・エンジンの内部変更履歴)のマイニングが含まれます。この方法は、システムのトランザクション・パフォーマンスに多少影響を与え、サポートされるのはOracle (Log Miner機能を使用)およびIBM DB2/400です。

変更の管理に使用されるCDCフレームワークは、ナレッジ・モジュールに基づいており、汎用的でオープンであるため、変更追跡方法はカスタマイズできます。フレームワークに変更をロードするために、サード・パーティの変更プロバイダを使用できます。

頻繁に発生する変更では、同時に複数のデータ・ソースが関係します。たとえば、注文の作成、更新または削除の場合は、注文表と注文明細表の両方が関係します。新規注文明細の処理時に、明細が関連付けられる新規注文も考慮することが重要です。ODIには、一貫性セットCDCと呼ばれる変更追跡モードがあります。このモードでは、複数の変更セットを処理でき、そのデータ一貫性が保証されます。

たとえば、CDCを使用して受注をデータベース・レベルで検出できます。これらの新規注文は、適切なメッセージ・キューまたはトピックに転送される前に、ODIによって拡充および変換されます。Oracle BPELまたはOracle Business Activity Monitoringなどの他のアプリケーションは、これらのメッセージをサブスクライブでき、受信イベントによって適切なビジネス・プロセスがトリガーされます。

ODIでのCDCフレームワークの使用方法の詳細は、第6章「チェンジ・データ・キャプチャの使用」を参照してください。

1.3.3 サービス指向アーキテクチャ

Oracle Data Integratorは、サービス指向アーキテクチャ(SOA)にいくつかの方法でシームレスに統合できます。

データ・サービスは、データベース表に格納されているデータに対するアクセスを提供する専用のWebサービスです。チェンジ・データ・キャプチャ機能と組み合せると、データ・サービスは、特定のサブスクライバに対して、変更されたレコードに対するアクセスを提供することもできます。データ・サービスはOracle Data Integratorによって自動的に生成され、WebサービスとしてWebコンテナ(通常はJavaアプリケーション・サーバー)にデプロイされます。データ・サービスの設定、生成およびデプロイ方法の詳細は、第8章「データ・サービスの使用」を参照してください。

Oracle Data Integratorは、その変換プロセスをWebサービスとして公開することもでき、アプリケーションで統合サービスとして使用できます。たとえば、CRMアプリケーションの更新に使用するLOAD_SALESバッチ・プロセスは、Oracle BPEL、Oracle Enterprise Service Bus、Oracle Business Activity Monitoringなどのサービス準拠アプリケーションからWebサービスとしてトリガーできます。したがって、ODIを使用して開発された変換は、より広範囲なサービス指向アーキテクチャ・イニシアティブの一部になることができます。

サード・パーティのWebサービスをODIワークフローの一部として呼び出し、データ統合プロセスの一部として使用できます。リクエストはすぐに生成され、レスポンスは標準の変換を介して処理されます。たとえば、日次通貨換算レートをWebサービスとして公開するサード・パーティのサービスを会社がサブスクライブしたとします。このデータで複数の通貨データ・ウェアハウスを更新する場合、ODIではこのタスクを最小限の労力で自動化できます。ユーザーは、データ・ウェアハウス・ワークフローからWebサービスを呼び出して、受信データが特定の形式に適合するように適切な変換を実行するのみです。ODIでWebサービスを使用する方法の詳細は、第15章「Oracle Data IntegratorでのWebサービスの使用」を参照してください。

1.3.4 ODIを使用したデータ品質

宣言的ルールに基づいたアプローチによって、Oracle Data Integratorは、データの非一貫性を追跡するデータ品質フレームワークの構築に利用できる最も適したツールです。

Oracle Data Integratorでは、集中管理されたメタデータ・リポジトリに定義された宣言的データ整合性ルールが使用されます。これらのルールがアプリケーション・データに適用され、企業情報の整合性と一貫性が保証されます。データ整合性の利点によって、全体的なデータ品質イニシアティブが高まり、この特定のニーズに対処する既存および将来のビジネス・プロセスとの統合が容易になります。

Oracle Data Integratorでは、リバースエンジニアリング・プロセスによって、データ・レベルで定義された既存のルール(データベース制約など)が自動的に取得されます。また、ODIを使用すると、開発者は、ODI内のデータ検出およびプロファイリングから推測され、即時チェックされる、ユーザー定義の宣言的ルールを追加定義することもできます。

Oracle Data Integratorには、次の2通りの方法でデータの品質をチェックする組込みのフレームワークが用意されています。

- データ・サーバーのデータをチェックして、このデータがOracle Data Integratorのデータストアで宣言されたすべてのルールに違反していないことを検証します。このデータ品質チェックは静的チェックと呼ばれ、データ・モデルおよびデータストアで実行されます。このタイプのチェックを使用すると、記憶域テクノロジによって実施されないルールに対して、データの品質をプロファイリングできます。

- インタフェースによるデータの移動および変換中に、フロー・チェックでデータをチェックします。このチェックでは、ターゲット・データストアに定義されたルールに対してデータ・フローがチェックされます。このようなチェックを使用すると、正しいデータはターゲット・データストアに統合できるのに対して、不正なデータはエラー表に自動的に移動されます。

静的チェックとフロー・チェックの両方で、データストアおよびデータ・モデルに定義された制約が使用されています。また、両方でチェック・ナレッジ・モジュール(CKM)が使用されます。詳細は、11.3.7項「フロー制御および統合後制御の設定」を参照してください。

これらのチェックでは、データの整合性がチェックされ、制約が検証されます。高度なデータ品質プロジェクト(例: 名前と住所のクレンジング・プロジェクト)、および高度なデータ・プロファイリングの場合は、Oracle Date IntegratorとともにOracle Data ProfilingおよびOracle Data Quality for Data Integrator製品を使用できます。

Oracle Data QualityおよびOracle Data Profilingの統合

Oracle Data ProfilingおよびOracle Data Quality for Data Integrator(あわせてOracle Data Quality製品とも呼ばれます)は、Oracle Data Integratorのインライン・データ品質機能を拡張して、より高度なデータ・ガバナンス機能を提供します。

Oracle Data Profilingは、データ調査と品質監視用のツールです。このツールを使用すると、ビジネス・ユーザーはメトリックを介してデータの品質にアクセスでき、そのデータに基づくルールを検出または推測し、データ品質の変化を一定期間監視できます。

Oracle Data Quality for Data Integratorは、最も複雑なデータ品質ニーズにも対応する、包括的で優れたデータ品質プラットフォームです。強力なルール・ベースのエンジンと、堅牢でスケーラブルなアーキテクチャによって、データ品質および名前と住所のクレンジングが企業のデータ統合戦略の中心となります。

Oracle Data QualityおよびOracle Data Profilingの詳細は、第16章「Oracle Data Quality製品の使用」を参照してください。

1.3.5 環境の管理

統合プロジェクトは、そのライフ・サイクル中に様々な環境(開発、テスト、本番)に存在し、本番の様々な環境(複数サイトのデプロイ)で実行される場合もあります。Oracle Data Integratorを使用すると、トポロジを使用して、これらの環境、およびこれらの環境にまたがるプロジェクトのライフ・サイクルの定義と保守をより簡単に実行できるようになります。

トポロジでは、情報システムの物理アーキテクチャと論理アーキテクチャが記述されます。トポロジを使用すると、様々なサーバー、環境およびエージェントを非常に柔軟な方法で管理できます。トポロジの情報はすべてマスター・リポジトリに格納され、最適な管理のために集中管理されます。作業リポジトリ内で操作されるすべてのオブジェクトがトポロジを参照します。このため、トポロジは、アーキテクチャの定義および計画時の最も重要な開始点です。

トポロジは、データ・サーバー、物理スキーマと論理スキーマ、およびコンテキストで構成されます。

データ・サーバーでは、実際の物理的なアプリケーション・サーバーとデータベースに対する接続が記述されます。たとえば、次のものを表すことができます。

- Oracleインスタンス

- IBM DB2データベース

- Microsoft SQL Serverインスタンス

- Sybase ASEサーバー

- ファイル・システム

- XMLファイル

- Microsoft Excelワークブック

- その他

実行時に、サーバーに接続するために記述した接続情報がOracle Data Integratorによって使用されます。

物理スキーマは、データ・サーバー内のデータストア(表、ファイル、トピック、キュー)の物理的な場所を示します。アクセス対象とする必要がある物理スキーマは、対応するデータ・サーバーに登録されなければなりません。物理スキーマは、オブジェクト名に接頭辞として付けて、それらの修飾名でそれらにアクセスするために使用されます。物理スキーマの作成時に、実行時に必要な一時オブジェクトまたは永続オブジェクトを格納する一時スキーマまたは作業スキーマを指定する必要があります。

論理スキーマは、同一のデータストア構造が保持されているすべての物理スキーマに一意の名前を与えることを可能にする別名です。論理スキーマの目的は、異なる設計時環境とランタイム環境でプロシージャおよびモデルの移植性を確保することです。

コンテキストは、これらの環境の1つを表し、同じ環境に属する物理リソースをグループ化するために使用されます。コンテキストは、同じ環境に属する物理リソースをグループ化するために使用されます。

一般的なプロジェクトには、開発、テストおよび本番用に別々の環境を設定します。プロジェクトによっては、複数の重複したテスト環境または本番環境が存在する場合もあります。たとえば、独自の本番システムを実行している子会社に対して複数の本番コンテキスト(本番ニューヨーク、本番ボストンなど)を設定する場合があります。図1-5に示すように、情報システムの論理ビューとその物理実装の間には明らかに違いがあります。

図1-5 インフラストラクチャの論理ビューと物理ビュー

「図1-5 インフラストラクチャの論理ビューと物理ビュー」の説明

論理ビューでは、既存アプリケーションの物理実装とは関係なく、その物理スキーマを表す論理スキーマが記述されます。これらの論理スキーマは、コンテキストを介して物理リソースにリンクされます。

設計者は常に、トポロジで定義された論理ビューを参照します。したがって、完成したすべての開発は、処理するリソースの物理的な場所とは無関係になります。実行時に、適切なコンテキストを指定すると、論理情報が物理リソースにマップされます。様々なコンテキストを指定するのみで、同じシナリオを様々な物理サーバーおよびアプリケーションで実行できます。この結果、使用するサーバーの基礎となる物理実装を開発者が気にする必要のない、非常に柔軟なアーキテクチャが実現します。

1.4 Oracle Data Integratorのアーキテクチャ

Oracle Data Integratorのアーキテクチャは、図1-6に示すように、連携して動作する様々なコンポーネントに依存しています。

図1-6 機能アーキテクチャの概要

「図1-6 機能アーキテクチャの概要」の説明

1.4.1 リポジトリ

アーキテクチャの核となるコンポーネントは、Oracle Data Integratorリポジトリです。このリポジトリには、ITインフラストラクチャに関する構成情報、すべてのアプリケーションのメタデータ、プロジェクト、シナリオおよび実行ログが格納されています。多数のリポジトリ・インスタンスがITインフラストラクチャに共存できます。リポジトリのアーキテクチャは、メタデータやシナリオを交換する複数の別々の環境(例: 開発、テスト、保守および本番の各環境)を許容するように設計されています。前述の図では、開発環境用と本番環境用の2つのリポジトリが示されています。リポジトリは、バージョン管理システムとしても機能し、この場合、オブジェクトはアーカイブされ、バージョン番号が割り当てられます。Oracle Data Integratorリポジトリは、OLTPリレーショナル・データベースにインストールできます。

Oracle Data Integratorリポジトリは、1つのマスター・リポジトリと複数の作業リポジトリで構成されます。ユーザー・インタフェースを使用して開発または構成されたオブジェクトは、これらのリポジトリ・タイプの1つに格納されます。

通常、次の情報を格納するマスター・リポジトリが1つ存在します。

- ODIプラットフォームのユーザー、プロファイルおよび権限などのセキュリティ情報

- テクノロジ、サーバー定義、スキーマ、コンテキスト、言語などのトポロジ情報

- バージョニングしたオブジェクトおよびアーカイブしたオブジェクト

作業リポジトリは、開発した実際のオブジェクトが格納されるリポジトリです。同じODIインストールに複数の作業リポジトリが共存可能です(たとえば、別々の環境を使用するため、または特定のバージョニング・ライフ・サイクルと一致させるため)。作業リポジトリには、次の情報が格納されます。

- モデル: スキーマ定義、データストア構造とメタデータ、フィールドと列の定義、データ品質制約、相互参照、データ系統などが含まれます。

- プロジェクト: ビジネス・ルール、パッケージ、プロシージャ、フォルダ、ナレッジ・モジュール、変数などが含まれます。

- シナリオ実行: シナリオ、スケジューリング情報およびログが含まれます。

作業リポジトリは、その中に実行情報(通常は本番のための情報)のみが含まれる場合は、実行リポジトリと呼ばれます。

ODIリポジトリの管理方法の詳細は、第3章「Oracle Data Integratorリポジトリの管理」を参照してください。

1.4.2 ユーザー・インタフェース

管理者、開発者およびオペレータは、Oracle Data Integrator Studioを使用してリポジトリにアクセスします。このFusionクライアント・プラットフォーム(FCP)ベースのUIは、インフラストラクチャ(セキュリティおよびトポロジ)の管理、メタデータのリバースエンジニアリング、プロジェクトの開発、実行のスケジューリング、操作および監視に使用されます。

ビジネス・ユーザー(および開発者、管理者、オペレータ)にはリポジトリに対する読取りアクセス権限があり、Oracle Data Integratorコンソールと呼ばれるWebベースのUIを使用して、トポロジ構成および本番操作を実行できます。このWebアプリケーションは、Oracle WebLogicなどのJava EEアプリケーションにデプロイできます。

ODI Studioには、ODI統合プロジェクトの様々な側面やステップを管理するための4つのナビゲータが用意されています。

- トポロジ・ナビゲータ

- デザイナ・ナビゲータ

- オペレータ・ナビゲータ

- セキュリティ・ナビゲータ

トポロジ・ナビゲータ

トポロジ・ナビゲータは、情報システムの物理アーキテクチャと論理アーキテクチャを記述するデータを管理するために使用されます。トポロジ・ナビゲータを使用すると、情報システムのトポロジ、テクノロジとそのデータ型、これらのテクノロジにリンクされているデータ・サーバーとその中に含まれているスキーマ、コンテキスト、言語とエージェント、リポジトリを管理できます。サイト、マシンおよびデータ・サーバーの説明によって、Oracle Data Integratorでは様々な環境で同じインタフェースの実行が可能になります。

デザイナ・ナビゲータ

デザイナ・ナビゲータは、データ整合性チェックの設計および変換の作成に使用されます。例:

- 既存のアプリケーションまたはデータベースの自動リバースエンジニアリング

- 変換および統合インタフェースのグラフィカルな開発および保守

- インタフェース内のデータ・フローの視覚化

- ドキュメントの自動生成

- 生成されたコードのカスタマイズ

デザイナ・ナビゲータで処理する主要なオブジェクトは、モデルとプロジェクトです。

オペレータ・ナビゲータ

オペレータ・ナビゲータは、本番の管理および監視ツールであり、IT本番オペレータ用に設計されています。オペレータ・ナビゲータを使用すると、セッションのインタフェース実行、および本番のシナリオを管理できます。

セキュリティ・ナビゲータ

セキュリティ・ナビゲータは、Oracle Data Integrator内のセキュリティ情報を管理するためのツールです。セキュリティ・ナビゲータを使用すると、ユーザーとプロファイルを作成し、汎用オブジェクト(データ・サーバー、データ型など)に対するメソッド(編集、削除など)に関するユーザー権限を割り当て、オブジェクト・インスタンス(サーバー1、サーバー2など)に対してこれらの権限を微調整できます。

1.4.3 設計時プロジェクト

一般的なプロジェクトは、複数のステップとマイルストンで構成されます。

次にいくつか例を示します。

- ビジネス・ニーズの定義

- トポロジ内のソースとターゲットの識別および宣言

- データ・モデルの形式によるソースとターゲットのデータ構造の設計およびリバースエンジニアリング

- これらのデータ・モデルに対するデータ品質ルールの実装、およびこれらのデータ・モデルに対する静的チェックの実行によるデータ品質ルールの検証

- これらのデータ・モデルのデータストアをソースおよびターゲットとして使用した統合インタフェースの開発

- 電子メールの送受信、ファイルの処理(コピー、圧縮、名前変更など)、Webサービスの実行など、インタフェースを使用して実施できないタスクに対する追加コンポーネントの開発

- パッケージ・ワークフローを構築するためのインタフェースと追加コンポーネントの統合

- 作業のバージョン化、およびシナリオの形式でのリリース

- シナリオのスケジュールおよび操作

Oracle Data Integratorでは、これらのほとんどのステップ(ソース・データの検証からメタデータ系統、およびロードやデータ品質監査まで)を実行できます。Oracle Data Integratorでは、そのリポジトリによって、仕様および開発作業が集中管理され、プロジェクトの成功の基礎となる独自のアーキテクチャが提供されます。

第2章「Oracle Data Integratorクイックスタート」では、Oracle Data Integratorを使用して統合プロジェクトを作成するための基本的な手順を説明します。第9章「統合プロジェクトの作成」では、ODIで統合プロジェクトを作成するためのいくつかの手順について、より詳細な情報を提供します。

1.4.4 ランタイム・エージェント

設計時に、開発者は、設計したビジネス・ルールからシナリオを生成します。これらのシナリオのコードは、ランタイム・エージェントによってリポジトリから取得されます。コードの取得後、このエージェントは、データ・サーバーに接続して、これらのサーバー上でコード実行を調整します。また、実行に関するリターン・コードやメッセージおよびリポジトリ内のその他のログ情報(処理レコード数、実行時間など)を取得します。

特徴の異なる次の2つのエージェントがあります。

- Java EEエージェントは、Webアプリケーションとしてデプロイでき、アプリケーション・サーバーの機能を利用できます。

- スタンドアロン・エージェントは、単純なJavaマシンで実行され、統合フローの実行に必要な場合にデプロイできます。

これらのエージェントはマルチスレッドJavaプログラムであり、ロード・バランシングをサポートし、情報システム全体に配布できます。このエージェントには、独自の実行スケジュールが保持されています。実行スケジュールはOracle Data Integratorで定義でき、外部スケジューラから呼び出すこともできます。また、Java APIまたはWebサービス・インタフェースから呼び出すこともできます。エージェントの作成および管理方法の詳細は、第4章「トポロジの設定」を参照してください。

2 Oracle Data Integratorクイックスタート

Oracle Data Integratorクイックスタートでは、Oracle Data Integratorを使用して統合プロジェクトを作成するための基本的な手順を説明し、作成したプロジェクトをすぐに使用できるようにする方法を示します。ここでは、基本的な機能と最低限必要な手順のみを示すことで、Oracle Data Integratorの使用を開始するユーザーを支援します。

この項は、拡張された構成、使用方法またはトラブルシューティング目的で使用することは意図していません。

2.1 Oracle Data Integratorクイックスタート・リスト

Oracle Data Integrator統合プロジェクトについて最低限必要な手順を実行するには、ODIクイックスタート・リストに従って、このガイドの特定の項に直接移動してください。

クイックスタート手順を実行する前に、次のことを確認してください。

1. Oracle Fusion Middleware Oracle Data Integratorインストレーション・ガイドの指示に従ってOracle Data Integratorをインストール済みです。

2. Oracle Data Integratorリポジトリ・アーキテクチャを設定済みです。つまり、変換および統合処理に関係するアプリケーションのメタデータ、開発したプロジェクト・バージョンおよびそれらを使用するために必要なすべての情報(計画 スケジュールおよび実行レポート)を格納するリポジトリが作成されている必要があります。Oracle Data Integratorリポジトリ・アーキテクチャを設定するには:

1. 企業のITリソースのトポロジ、セキュリティ、およびプロジェクトやデータ・モデルのバージョン管理に関する情報を保持するマスター・リポジトリを1つ作成する必要があります。詳細は、3.3項「マスター・リポジトリの作成」を参照してください。
マスター・リポジトリをテストするには、3.4項「マスター・リポジトリへの接続」を参照してください。

2. データ・モデル、プロジェクトおよびそれらの操作に関する情報を保持する作業リポジトリを少なくとも1つ作成する必要があります。詳細は、3.5項「作業リポジトリの作成」を参照してください。
作業リポジトリの接続をテストし、デザイナおよびオペレータを介してこのリポジトリにアクセスするには、3.6項「作業リポジトリへの接続」の項を参照してください。

ODIクイックスタート・リスト

クイックスタートの最初の部分(ステップ1から3)では、データ・サーバー、そのデータ・サーバーに格納するスキーマおよびコンテキストを定義することで、企業の情報システムのトポロジを設定します。これらの概念をよく理解していない場合は、第1章「Oracle Data Integratorの概要」を参照してください。

クイックスタートの2番目の部分(ステップ4)では、モデルを作成します。モデルとは、物理スキーマに保持されているデータ構造に対応する一連のデータストアです。表、ファイル、JMSメッセージ、XMLファイルの要素がデータストアとして表されます。

クイックスタートの3番目の部分(ステップ5から7)では、統合プロジェクトを作成します。このプロジェクトでは、1つ以上のソース・データストアから1つのターゲット・データストアにデータをロードする統合インタフェースを作成します。

クイックスタートの最後の部分(ステップ8と9)では、ステップ7で作成したインタフェースを実行し、実行結果を表示および監視します。

1. ソースおよびターゲット・システムに接続するには、データ・サーバーを宣言する必要があります。データ・サーバーには、データベース、MOM、コネクタまたはファイル・サーバーを指定できます。データ・サーバーは、必ず1つのテクノロジのみとリンクされます。Oracle Data Integratorで使用するサーバーに対応するデータ・サーバーを作成する方法については、 第4章「データ・サーバーの作成」を参照してください。

2. 物理スキーマは、データ・サーバーに定義するコンポーネントの1つです。物理スキーマによってデータストアを分類でき、そのデータ・サーバーに格納されているオブジェクトにアクセスできます。第4章「物理スキーマの作成」に記載されているように、物理スキーマはデータ・サーバーごとに作成します。デフォルトのグローバル・コンテキストを使用します。

3. Oracle Data Integratorでは、論理トポロジの最上部で開発を実行します。論理アーキテクチャの概念をよく理解していない場合は、第1章「Oracle Data Integratorの概要」を参照してください。論理スキーマを作成し、グローバル・コンテキスト内で物理スキーマに関連付けます。詳細は、第4章「ロジカル・スキーマの作成」を参照してください。

4. 統合インタフェースでは、ソースおよびターゲット・データストアを保持するデータ・モデルを使用します。データ・モデルは、通常、Oracle Data Integratorリポジトリ内のデータ・サーバーのメタデータからリバースエンジニアリングされます。5.2項「モデルの作成およびリバースエンジニアリング」に従って、モデルを作成してください。

5. 開発した統合コンポーネントはプロジェクトに格納されます。新規プロジェクトの作成方法については、9.2項「新規プロジェクトの作成」を参照してください。

6. 統合インタフェースでは、ナレッジ・モジュールを使用してそれぞれのコードを生成します。詳細は、第1章「Oracle Data Integratorの概要」で、E-LTの概念に関する説明を参照してください。統合インタフェースを作成するには、その前に、使用するデータのテクノロジに対応するナレッジ・モジュールをインポートする必要があります。ナレッジ・モジュールをインポートする方法については、20.2.6項「オブジェクトのインポート」を参照してください。インポートする必要があるナレッジ・モジュールについては、Oracle Fusion Middleware Oracle Data Integrator接続性およびナレッジ・モジュール・ガイドを参照してください。

7. ターゲット・データストアをソース・データストアのデータとともにロードするには、インタフェースを作成する必要があります。インタフェースは、1つ以上のソース・データストアから1つのターゲット・データストアへのロードを定義する一連のルールで構成されます。統合プロジェクト用の新規インタフェースを作成する方法については、11.3項「インタフェースの作成」を参照してください。

8. 統合インタフェースの作成を完了した後は、そのインタフェースを実行できます。インタフェースの実行については、11.3.8項「統合インタフェースの実行」を参照してください。「ローカル(エージェントなし)」を選択して、Oracle Data Integratorで直接インタフェースを実行してください。

9. 実行結果は、オペレータで表示および監視できます。インタフェースの実行をオペレータで追跡する方法については、第22章「統合プロセスの監視」を参照してください。

10. 統合ワークフローでは、複数のターゲット・データストアを正確な順序でロードする必要がある場合があります。インタフェースの順序付けが必要な場合は、パッケージを作成します。このオプションのステップについては、第10章「新規パッケージの作成」を参照してください。

第II部

Oracle Data Integratorアーキテクチャの管理

この部では、Oracle Data Integratorのアーキテクチャについて説明します。

この部の内容は次のとおりです。

- 第3章「Oracle Data Integratorリポジトリの管理」

- 第4章「トポロジの設定」

3 Oracle Data Integratorリポジトリの管理

この章では、Oracle Data Integratorリポジトリを作成して管理する方法を説明します。Oracle Data Integratorで使用するリポジトリの概要も説明します。

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

- 3.1項「Oracle Data Integratorのリポジトリの概要」

- 3.2項「リポジトリの記憶領域の作成」

- 3.3項「マスター・リポジトリの作成」

- 3.4項「マスター・リポジトリへの接続」

- 3.5項「作業リポジトリの作成」

- 3.6項「作業リポジトリへの接続」

- 3.7項「作業リポジトリのパスワードの変更」

- 3.8項「リポジトリ管理用の拡張アクション」

3.1 Oracle Data Integratorのリポジトリの概要

Oracle Data Integratorのリポジトリには、次の2つのタイプがあります:

- マスター・リポジトリ: 企業のITリソースのトポロジ、セキュリティ、およびプロジェクトやデータ・モデルのバージョン管理に関する情報を保持するデータ構造。このリポジトリは、異なるOracle Data Integratorモジュールからクライアント/サーバー・モードでアクセス可能なリレーショナル・データベースに格納されます。通常、必要なマスター・リポジトリは1つのみです。ただし、次のいずれかの場合は、複数のマスター・リポジトリの作成が必要になる可能性があります:

- 高速ネットワークでリンクされていない複数のサイトにわたってプロジェクトを構築する場合(例: オフサイト開発)。

- インタフェースの運用環境(開発、テスト、本番)を、マスター・リポジトリを格納するデータベースも含めて明確に区別する必要がある場合。これらの環境が複数のサイトに存在する場合に該当する可能性があります。

- 作業リポジトリ: データ・モデル、プロジェクトおよびその使用に関する情報を保持するデータ構造。このリポジトリは、異なるOracle Data Integratorモジュールからクライアント/サーバー・モードでアクセス可能なリレーショナル・データベースに格納されます。必要に応じて、複数のマスター・リポジトリに対して複数の作業リポジトリを指定できます。ただし、バージョン管理上の目的のため、1つの作業リポジトリは1つのマスター・リポジトリにのみリンクできます。

通常、リポジトリを作成するには、リポジトリ作成ユーティリティ(RCU)を使用します。RCUによって、記憶領域の管理とリポジトリの作成が自動的に実行されます。ただし、リポジトリを手動で作成する必要がある場合は、手動によるリポジトリの作成と構成が可能です。

リポジトリの作成と構成に必要な手順については、次の各項で詳細に説明します:

- 3.2項「リポジトリの記憶領域の作成」

- 3.3項「マスター・リポジトリの作成」

- 3.4項「マスター・リポジトリへの接続」

- 3.5項「作業リポジトリの作成」

- 3.6項「作業リポジトリへの接続」

注意:

作業リポジトリのサイズ削減を目的とする実行ログのパージと、データベース上のリポジトリのバックアップをメンテナンス作業として定期的に実行することをお薦めします。

リポジトリ管理用の拡張アクションの詳細は、3.8項「リポジトリ管理用の拡張アクション」を参照してください。

3.2 リポジトリの記憶領域の作成

Oracle Data Integratorのリポジトリは、Oracle Fusion Middleware 11gでサポートされているデータベース・エンジンにインストールできます。サポートされているデータベースのバージョンと各データベース要件の最新リストは、次を参照してください:

http://www.oracle.com/technology/software/products/ias/files/fusion_certification.html

リポジトリを格納するデータベースごとに、記憶領域を作成する必要があります。

注意:

メンテナンスおよびバックアップ時の便宜を図るため、リポジトリはアプリケーション・データの保存場所とは異なる領域に格納することをお薦めします(たとえば、Oracleデータベースの異なるスキーマに格納するか、SybaseやMicrosoft SQL Serverなどの異なるデータベースに格納します)。

マスター・リポジトリは、作業リポジトリの1つとして同じスキーマに格納できます。ただし、同じスキーマに異なる2つの作業リポジトリを作成することはできません。

次の表に、リポジトリの作成手順の例をガイドとして示します:

テクノロジ

手順

Oracle

マスター・リポジトリをホストするスキーマodimと、作業リポジトリをホストするスキーマodiwを作成します。

これらのスキーマは、次のSQLコマンドで作成します。

SQL> create user MY_SCHEMA identified by MY_PASS
default tablespace MY_TBS
temporary tablespace MY_TEMP;
SQL> grant connect, resource to MY_SCHEMA;
SQL> grant execute on dbms_lock to MY_SCHEMA;

説明:

MY_SCHEMA: 作成するスキーマの名前。

MY_PASS: データの格納先となるOracle表領域<MY_TBS>に指定したパスワード。

MY_TEMP: デフォルトの一時表領域。

Microsoft SQL ServerまたはSybase ASE

マスター・リポジトリをホストするデータベースdb_odimと、作業リポジトリをホストするデータベースdb_odiwを作成します。これらのデータベースをデフォルトで保持する2つのログインodimおよびodiwを作成します。

Enterprise Managerを使用して、2つのデータベース db_odimとdb_odiwを作成します。

クエリー・アナライザまたはI-SQLを使用して、次のコマンドを実行します。

CREATE LOGIN mylogin
WITH PASSWORD = 'mypass',
DEFAULT_DATABASE = defaultbase,
DEFAULT_LANGUAGE = us_english;
USE defaultbase;
CREATE USER dbo FOR LOGIN mylogin;
GO

説明:

myloginは、odimまたはodiwに対応します。

mypassは、これらのログインのパスワードに対応します。

defaultbaseは、それぞれdb_odimおよびdb_odiwに対応します。

注意: 大/小文字を照合してリポジトリ情報を格納するMicrosoft SQL Serverデータベースを構成することをお薦めします。これにより、名前が同じで大/小文字が異なる複数のオブジェクトをリバース・エンジニアリングおよび作成できます(例: tablenameとTableNAme)。

DB2/400

マスター・リポジトリをホストするライブラリodimと、作業リポジトリをホストするライブラリodiwを作成します。これらのライブラリをデフォルトで保持する2つのユーザーodimおよびodiwを作成します。

注意: 各ライブラリは、SQLコレクションの形式で作成する必要があります。

DB2/UDB

前提条件:

- マスターおよび作業リポジトリ・ユーザーは、最小16Kのページ・サイズの表領域にアクセスできる必要があります

- データベースには最小16 Kの一時表領域が必要です

例:

CREATE  LARGE  TABLESPACE ODI16 PAGESIZE 16 K  MANAGED BY AUTOMATIC STORAGE ;
GRANT USE OF TABLESPACE ODI16 TO USER ODIREPOS;

3.3 マスター・リポジトリの作成

マスター・リポジトリを作成する作業は、空のリポジトリ構造を作成し、そのリポジトリ構造にメタデータ(テクノロジの定義や組込みのセキュリティ・プロファイル)をシードする作業です。

マスター・リポジトリを作成するには:

1. 「ファイル」→「新規」を選択して新規ギャラリを開きます。

2. 新規ギャラリの「カテゴリ」ツリーで、「ODI」を選択します。

3. 「項目」リストから「マスター・リポジトリ作成ウィザード」を選択します。

4. 「OK」をクリックします。
マスター・リポジトリ作成ウィザードが開きます。

5. 「データベース接続」で、次のようにパラメータを指定します。

- テクノロジ: リストから、マスター・リポジトリをホストするテクノロジを選択します。デフォルトは「Oracle」です。

- JDBCドライバ: リポジトリをホストするテクノロジへのアクセスに使用するドライバ。

- JDBC URL: データベースへのJDBC接続の確立に使用するURL。
「JDBCドライバ」パラメータと「URL」パラメータは同期化され、デフォルト値はテクノロジによって異なります。

- ユーザー: 表の所有者のユーザーIDまたはログイン(例: odim)。

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

- DBAユーザー: データベース管理者のユーザー名

- DBAパスワード: このユーザーのパスワード

6. 「リポジトリ構成」で、次のようにパラメータを指定します。

- ID: デフォルトの0とは異なる新規リポジトリに固有のID。

注意:

このIDは、リポジトリ間のインポートおよびエクスポートに影響を与えるため、他のマスター・リポジトリに使用されていない一意のIDを指定してください。

7. 「テスト接続」をクリックして、マスター・リポジトリへの接続をテストします。
「情報」ダイアログが開き、接続が確立されたかどうかが通知されます。接続に失敗した場合は、マスター・リポジトリへの接続を修正してから次の手順に進んでください。

8. 「次へ」をクリックします。

9. 次のいずれかの操作を行います。

- ODIの内部セキュリティ・システムを使用してユーザーを管理する場合は、「ODI認証の使用」を選択し、次のスーパーバイザ・ログイン情報を入力します。

プロパティ

説明

スーパーバイザ・ユーザー

ODIスーパーバイザのユーザー名。

スーパーバイザ・パスワード

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

パスワードの確認

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

- Oracle Internet Directoryなどの外部エンタープライズ・アイデンティティ・ストアを使用してユーザー認証を管理する場合は、「外部認証の使用」を選択し、次のスーパーバイザ・ログイン情報を入力します。

プロパティ

説明

スーパーバイザ・ユーザー

ODIスーパーバイザのユーザー名

スーパーバイザ・パスワード

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

注意:

外部認証オプションを使用する場合は、ODI Studioを外部認証に対応するように構成する必要があります。ODI Studioの詳細および起動については、24.3.2「項外部認証の設定」を参照してください。

10. 「次へ」をクリックします。

11. パスワード記憶域の詳細を指定します。

- Oracle Data Integratorのマスター・リポジトリにパスワードを保存する場合は、「内部パスワード記憶域」を選択します。

- JPS資格証明ストア・フレームワーク(CSF)を使用してデータ・サーバーおよびコンテキスト・パスワードをリモートの資格証明ストアに保存する場合は、「外部パスワード記憶域」を選択します。資格証明ストアにアクセスするために「MBeanサーバー・パラメータ」を指定します。詳細は、第24章「Oracle Data Integratorでのセキュリティの管理」を参照してください。

12. マスター・リポジトリ作成ウィザードで「終了」をクリックして、入力内容を確認します。

マスター・リポジトリの作成が開始されます。表示されるメッセージとログで進行状況を確認できます。作成されたマスター・リポジトリをテストするには、3.4項「マスター・リポジトリへの接続」を参照してください。

3.4 マスター・リポジトリへの接続

マスター・リポジトリに接続するには:

1. 「ファイル」→「新規」を選択して新規ギャラリを開きます。

2. 新規ギャラリの「カテゴリ」ツリーで、「ODI」を選択します。

3. 「項目」リストから「新規ODIリポジトリ・ログインの作成」を選択します。

4. 「OK」をクリックします。
「リポジトリ接続情報」ダイアログが表示されます。

5. Oracle Data Integrator接続の詳細を次のように指定します:

- ログイン名: 一般的な別名(例: Repository)。

- ユーザー: マスター・リポジトリの作成時に定義したODIスーパーバイザ・ユーザー名、またはマスター・リポジトリの作成後にセキュリティ・ナビゲータで定義したODIユーザー名。

- パスワード: マスター・リポジトリの作成時に定義したODIスーパーバイザ・パスワード、またはマスター・リポジトリの作成後にセキュリティ・ナビゲータで定義したODIユーザー・パスワード。

6. データベース接続(マスター・リポジトリ)の詳細を次のように指定します:

- ユーザー: ODIマスター・リポジトリを保持するスキーマ(データベース、ライブラリ)のデータベース・ユーザーIDまたはログイン。

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

- ドライバ・リスト: 作成したマスター・リポジトリをサポートするDBMSへの接続に必要なドライバをドロップダウン・リストから選択します。

- ドライバ名: ドライバの完全な名前。

- JDBC URL: リポジトリをホストするデータベースへのJDBC接続の確立に使用するURL。
「JDBCドライバ」パラメータと「URL」パラメータは同期化され、デフォルト値はテクノロジによって異なります。

7. 「マスター・リポジトリのみ」を選択します。

8. 「テスト」をクリックして、接続が有効であることを確認します。

9. 「OK」をクリックして、入力内容を検証します。

3.5 作業リポジトリの作成

必要に応じて、複数のマスター・リポジトリに対して複数の作業リポジトリを指定できます。ただし、バージョン管理上の目的のため、1つの作業リポジトリは1つのマスター・リポジトリにのみリンクできます。

新しい作業リポジトリを作成するには:

1. トポロジ・ナビゲータで、「リポジトリ」パネルに移動します。

2. 「作業リポジトリ」ノードを右クリックして「新規作業リポジトリ」を選択します。
作業リポジトリの作成ウィザードが開きます。

3. Oracle Data Integrator作業リポジトリ接続の詳細を次のように指定します。

- テクノロジ: 作業リポジトリをホストするサーバーのテクノロジを選択します。デフォルトは「Oracle」です。

- JDBCドライバ: リポジトリをホストするテクノロジへのアクセスに使用するドライバ。

- JDBC URL: 作業リポジトリをホストするデータ・サーバーの完全なパス。
「JDBCドライバ」パラメータと「URL」パラメータは同期化され、デフォルト値はテクノロジによって異なります。

接続に関する問題を回避するために、JDBC URLではlocalhostではなくフル・マシン名を使用することが推奨されます。たとえば、リモート・クライアントでは、クライアント(ODI StudioまたはSDK)が作業リポジトリとは別のマシン上にあり、localhostが作業リポジトリをホストするマシンではなく現在のクライアント・マシンを指している場合があります。

- ユーザー: 作業リポジトリに対して作成およびホストする表の所有者のユーザーIDまたはログイン。

- パスワード: このユーザーのパスワード。このパスワードは、この作業リポジトリを別のマスターに連結する際に必要になります。

4. 「テスト接続」をクリックして、接続が有効であることを確認します。

5. 「次へ」をクリックします。
ステップ3で指定した接続に対する作業リポジトリがすでに存在しているかどうかが検証されます。

- この接続に対する既存の作業リポジトリが検出された場合は、次の段階として、その作業リポジトリをマスター・リポジトリに連結します。手順の詳細は、連結するOracle Data Integrator作業リポジトリのパスワードの指定を参照してください。

- この接続に対する作業リポジトリが検出されなかった場合は、新規の作業リポジトリが作成されます。新規作業リポジトリの作成を続行し、ステップ6にある作業リポジトリの詳細を指定してください。

6. Oracle Data Integrator作業リポジトリのプロパティを指定します:

- ID: デフォルトの0とは異なる新規リポジトリに固有のID。

注意:

このIDは、リポジトリ間のインポートおよびエクスポートに影響を与えるため、他の作業リポジトリに使用されていない一意のIDを指定してください。

- 名前: 作業リポジトリに一意の名前を指定します(例: DEVWORKREP1)。

- パスワード: 作業リポジトリのパスワードを入力します。

- タイプ: 作業リポジトリのタイプを選択します。

- 開発: このタイプのリポジトリでは、データ・モデルやプロジェクトなど(インタフェース、プロシージャなども含む)の設計時オブジェクトを管理できます。開発リポジトリには、ランタイム・オブジェクト(シナリオおよびセッション)も含まれます。このタイプのリポジトリは開発環境に適しています。

- 実行: このタイプのリポジトリには、ランタイム・オブジェクト(シナリオ、スケジュールおよびセッション)のみが含まれます。オペレータ・ナビゲータで、データ統合ジョブを起動および監視できます。これにより、「オペレータ・ナビゲータ」で、データ統合ジョブを起動および監視できます。このタイプのリポジトリには設計時のオブジェクトを含めることができず、これを「デザイナ・ナビゲータ」で使用することはできません。実行リポジトリは本番環境に適しています。

7. 「終了」をクリックします。

8. 「作業リポジトリ・ログインの作成」ダイアログが開きます。作業リポジトリのログインを作成する場合は、「はい」をクリックします。新しいダイアログが開き、ログイン名を入力するように求められます。作業リポジトリのログインを作成しない場合は、「いいえ」をクリックします。

9. ツールバーにある「保存」をクリックします。

詳細は、3.6項「作業リポジトリへの接続」を参照してください。

3.6 作業リポジトリへの接続

既存の作業リポジトリに接続してデザイナ・ナビゲータを起動するには:

1. 「ファイル」→「新規」を選択して新規ギャラリを開きます。

2. 新規ギャラリの「カテゴリ」ツリーで、「ODI」を選択します。

3. 「項目」リストから「新規ODIリポジトリ・ログインの作成」を選択します。

4. 「OK」をクリックします。
「リポジトリ接続情報」ダイアログが開きます。

5. Oracle Data Integrator接続の詳細を次のように指定します:

- ログイン名: 一般的な別名(例: Repository)。

- ユーザー: マスター・リポジトリの作成時に定義したODIスーパーバイザ・ユーザー名、またはマスター・リポジトリの作成後にセキュリティ・ナビゲータで定義したODIユーザー名。

- パスワード: マスター・リポジトリの作成時に定義したODIスーパーバイザ・パスワード、またはマスター・リポジトリの作成後にセキュリティ・ナビゲータで定義したODIユーザー・パスワード。

6. データベース接続(マスター・リポジトリ)の詳細を次のように指定します:

- ユーザー: ODIマスター・リポジトリを保持するスキーマ(データベース、ライブラリ)のデータベース・ユーザーIDまたはログイン。

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

- ドライバ・リスト: 作成したマスター・リポジトリをサポートするDBMSへの接続に必要なドライバをドロップダウン・リストから選択します。

- ドライバ名: ドライバの完全な名前。

- URL: リポジトリをホストするデータベースへのJDBC接続の確立に使用するURL。

7. 「テスト接続」をクリックして、接続が有効であることを確認します。

8. 「作業リポジトリ」を選択し、作業リポジトリの詳細を次のように指定します。

- 作業リポジトリ名: 前のステップで作業リポジトリに指定した名前(例ではWorkRep1)。このフィールドの右側にあるボタンをクリックすると、マスター・リポジトリで使用可能な作業リポジトリのリストを表示できます。

9. 「OK」をクリックして、入力内容を検証します。

3.7 作業リポジトリのパスワードの変更

作業リポジトリのパスワードを変更するには:

1. トポロジ・ナビゲータの「リポジトリ」ツリーで、「作業リポジトリ」ノードを展開します。

2. 作業リポジトリをダブルクリックします。作業リポジトリ・エディタが開きます。

3. 作業リポジトリ・エディタの「定義」タブで、「パスワードの変更」をクリックします。

4. 現在のパスワードおよび新しいパスワードを入力します。

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

3.8 リポジトリ管理用の拡張アクション

リポジトリ管理用の拡張アクションは、リポジトリの作成プロセスには関係しません。この項で説明するアクションは、既存のリポジトリに対して実行する拡張アクションです。リポジトリを作成した後でそのパスワード記憶域を切り替える必要がある場合があります。また、資格証明ストアがクラッシュした場合はそのパスワード記憶域をリカバリする必要があります。パスワード処理に関連するアクションについては、24.3.1項「外部パスワード記憶域の設定」を参照してください。マスター・リポジトリと作業リポジトリのエクスポートとインポートについては、第20章「エクスポート/インポート」を参照してください。

この項の内容は次のとおりです。

- 作業リポジトリの連結および削除

- 作業リポジトリの消去

- リポジトリの再番号付け

- リポジトリの調整

3.8.1 作業リポジトリの連結および削除

作業リポジトリの連結とは、既存の作業リポジトリを現在のマスター・リポジトリにリンクする操作です。この既存の作業リポジトリは、データベースにすでに存在し、現在のまたは別のマスター・リポジトリから連結解除されているものです。

作業リポジトリの削除とは、マスター・リポジトリへのリンクを削除する操作で、連結とは逆の操作です。この操作によって作業リポジトリの内容が破棄されることはありません。

作業リポジトリの連結

作業リポジトリをマスター・リポジトリに連結するには:

1. トポロジ・ナビゲータで、「リポジトリ」パネルに移動します。

2. 「作業リポジトリ」ノードを右クリックして「新規作業リポジトリ」を選択します。
作業リポジトリの作成ウィザードが開きます。

3. Oracle Data Integrator作業リポジトリ接続の詳細を次のように指定します。

- テクノロジ: リストから、作業リポジトリをホストするテクノロジを選択します。デフォルトは「Oracle」です。

- JDBCドライバ: リポジトリをホストするテクノロジへのアクセスに使用するドライバ。

- JDBC URL: 作業リポジトリをホストするデータ・サーバーの完全なパス。
「JDBCドライバ」パラメータと「URL」パラメータは同期化され、デフォルト値はテクノロジによって異なります。

- ユーザー: 作業リポジトリに対して作成およびホストする表の所有者のユーザーIDまたはログイン。

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

4. 「テスト接続」をクリックして、接続が有効であることを確認します。

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

6. 連結するOracle Data Integrator作業リポジトリの「パスワード」を指定します。

7. 「次へ」をクリックします。

8. 連結するOracle Data Integrator作業リポジトリの「名前」を指定します。

9. 「終了」をクリックします。

作業リポジトリの削除

マスター・リポジトリへのリンクを削除するには:

1. トポロジ・ナビゲータで、「リポジトリ」パネルに移動します。

2. 「作業リポジトリ」ノードを展開し、削除する作業リポジトリを右クリックします。

3. 「削除」を選択します。

4. 確認ダイアログで、「はい」をクリックします。

5. 作業リポジトリがマスター・リポジトリから連結解除され、トポロジ・ナビゲータの「リポジトリ」パネルから削除されます。

3.8.2 作業リポジトリの消去

作業リポジトリの削除とは、作業リポジトリをマスター・リポジトリから連結解除する操作です。詳細は、3.8.1項「作業リポジトリの連結および削除」を参照してください。

作業リポジトリの消去とは、作業リポジトリをデータベースから削除する操作です。

警告:

消去した作業リポジトリは元に戻すことができません。作業リポジトリに保存されているすべての情報(モデルのメタデータ、プロジェクト、およびシナリオ、スケジュール、ログなどのランタイム情報を含む)が完全に削除されます。

作業リポジトリの消去

作業リポジトリをデータベースから消去するには:

1. トポロジ・ナビゲータで、「リポジトリ」パネルに移動します。

2. 「作業リポジトリ」ノードを展開し、削除する作業リポジトリを右クリックします。

3. 「データベースから消去」を選択します。

4. 作業リポジトリをデータベースから完全に消去する場合は、確認ダイアログで「はい」をクリックします。

5. 作業リポジトリがデータベースから消去され、トポロジ・ナビゲータの「リポジトリ」パネルから削除されます。

3.8.3 リポジトリの再番号付け

リポジトリの再番号付けとは、リポジトリに保存されているオブジェクトのリポジトリIDと内部IDを変更する操作です。

2つのリポジトリが同じIDで作成されている場合は、リポジトリの再番号付けをお薦めします。一方のリポジトリを再番号付けすることで、2つのリポジトリ間でオブジェクトを競合なしでインポート/エクスポートできます。

警告:

リポジトリの再番号付け管理操作では、データベースの再番号付け対象リポジトリのバックアップを作成しておく必要があります。

作業リポジトリの再番号付け

作業リポジトリを再番号付けするには:

1. トポロジ・ナビゲータで、「リポジトリ」パネルに移動します。

2. 「作業リポジトリ」ノードを展開し、再番号付けする作業リポジトリを右クリックします。

3. 「再番号付け」を選択します。

4. 「リポジトリの再番号付け - ステップ1」ダイアログで、「はい」をクリックします。

5. 「リポジトリの再番号付け - ステップ2」ダイアログで、「OK」をクリックします。

6. 「リポジトリの再番号付け - ステップ3」ダイアログで、作業リポジトリの新しい一意のIDを入力し、「OK」をクリックします。

7. 「リポジトリの再番号付け - ステップ4」ダイアログで、「はい」をクリックします。

8. 作業リポジトリおよびその作業リポジトリに連結されているすべてのオブジェクトが再番号付けされます。

マスター・リポジトリの再番号付け

1. トポロジ・ナビゲータで、「リポジトリ」パネルに移動します。

2. 「マスター・リポジトリ」ノードを展開し、再番号付けする作業リポジトリを右クリックします。

3. 「再番号付け」を選択します。

4. 「リポジトリの再番号付け - ステップ1」ダイアログで、「はい」をクリックします。

5. 「リポジトリの再番号付け - ステップ2」ダイアログで、マスター・リポジトリの新しい一意のIDを入力し、「OK」をクリックします。

6. マスター・リポジトリおよびそのマスター・リポジトリに保存されているすべての詳細(トポロジ、セキュリティおよびバージョン管理の詳細)が再番号付けされます。

3.8.4 リポジトリの調整

リポジトリ・データベースへの同時接続数は、リポジトリが格納されるデータベース・エンジンによって制御および制限される可能性があります。Oracleの場合、接続数を制限するプロパティはmax_processesです。多数のパラレル実行を実行する場合、リポジトリ・データベースに許可される最大接続数を増やすようにデータベースを調整することが必要な場合があります。

必要な接続数は、接続を実行しているセッション数によって異なります:

- 各セッション実行には、実行の期間中に2つのデータベース接続(マスターへの接続と作業リポジトリへの接続)が必要です。セッションの開始後、短期間のセキュリティ・チェックを実行するために3番目のデータベース接続も必要です。

- Oracle以外のデータベースの場合、各ロード・プラン・ステップでは、ロード・プランの実行中に追加接続がロックとして使用されます。

4 トポロジの設定

この章では、Oracle Data Integratorにおけるトポロジの設定方法について説明します。Oracle Data Integratorトポロジの概念およびコンポーネントの概要を示しています。

この章は次の項で構成されています。

- 4.1項「Oracle Data Integratorトポロジの概要」

- 4.2項「トポロジの設定」

- 4.3項「エージェントの管理」

4.1 Oracle Data Integratorトポロジの概要

Oracle Data Integratorトポロジは、Oracle Data Integratorアーキテクチャおよびコンポーネントの物理および論理表現です。

この項は次のトピックで構成されています。

- 4.1.1項「物理アーキテクチャ」

- 4.1.2項「コンテキスト」

- 4.1.3項「論理アーキテクチャ」

- 4.1.4項「エージェント」

- 4.1.5項「言語」

- 4.1.6項「リポジトリ」

4.1.1 物理アーキテクチャ

物理アーキテクチャでは、情報システムの様々な要素が、Oracle Data Integratorで考慮される特性とともに定義されます。各タイプのデータベース(Oracle、DB2など)、ファイル形式(XML、フラット・ファイル)またはアプリケーション・ソフトウェアが、Oracle Data Integratorでテクノロジによって表現されます。

テクノロジは書式設定済データを処理します。したがって、各テクノロジは1つ以上のデータ型と関連付けられており、Oracle Data Integratorによるデータ処理スクリプトの生成が可能です。

構造化データを格納および公開する物理コンポーネントは、データ・サーバーとして定義されています。データ・サーバーは常に単一テクノロジにリンクしています。データ・サーバーには、このデータ・サーバーに関連付けられた物理スキーマに宣言されている特定の技術ロジックに従って情報が格納されます。Oracle Data Integratorで使用されるデータベース・サーバー、JMSメッセージ・ファイル、フラット・ファイルのグループなどはすべて、データ・サーバーとして宣言される必要があります。Oracle Data Integratorで使用されるスキーマ、データベース、JMSトピックなどはすべて、物理スキーマとして宣言される必要があります。

最終的に、物理アーキテクチャには物理エージェントの定義が含められます。これらはOracle Data Integratorジョブを実行するJavaソフトウェア・コンポーネントです。

4.1.2 コンテキスト

コンテキストでは、情報システムの物理アーキテクチャ(実際のアーキテクチャ)のコンポーネントと、Oracle Data Integrator論理アーキテクチャ(ユーザーが作業するアーキテクチャ)のコンポーネントが関連付けられます。

たとえば、コンテキストは、類似した物理リソースが存在する様々な実行環境(開発、テストおよび本番)または様々な実行場所(ボストン・サイト、ニューヨーク・サイトなど)に対応している場合があります。

インストール時には、デフォルトのGLOBALコンテキストが作成される点に注意してください。

4.1.3 論理アーキテクチャ

論理アーキテクチャによってユーザーは、類似した物理スキーマのグループを単一の論理スキーマとして識別できます。単一の論理スキーマには、構造的には同一であるが別々の物理的な場所に置かれているデータストアが含まれます。論理スキーマは、その物理スキーマと同様に、テクノロジに関連付けられています。

コンテキストにより、論理スキーマを物理スキーマに解決できます。特定のコンテキストにおいて、単一の論理スキーマが単一の物理スキーマに解決されます。

たとえば、Oracle論理スキーマの会計は、次の2つのOracle物理スキーマに対応する場合があります。

- 開発コンテキストで使用される会計サンプル

- 本番コンテキストで使用される会計企業

これらの2つの物理スキーマは、構造的には同一(会計データが含まれる)ですが、別々の物理的な場所に置かれています。これらの場所は2つの異なるOracleスキーマ(物理スキーマ)であり、2つの異なるOracleインスタンス(データ・サーバー)に置かれている可能性があります。

Oracle Data Integratorで開発されたコンポーネントはすべて、論理アーキテクチャの上に設計されています。たとえば、データ・モデルは常に論理スキーマに関連付けられており、データ・フローはこのモデルとともに定義されています。実行時にコンテキストを指定することで、モデルの論理スキーマは単一の物理スキーマに解決され、データ・サーバー内のこのスキーマに含まれるデータには、統合プロセスによってアクセスできます。

4.1.4 エージェント

Oracle Data Integratorランタイム・エージェントにより、ジョブの実行が編成されます。これらのエージェントはJavaコンポーネントです。

ランタイム・エージェントは、リスナーおよびスケジューラ・エージェントとして機能します。たとえば、ジョブがユーザー・インタフェースまたはコマンドラインから手動で開始された場合、エージェントはオンデマンドでジョブを実行します(モデル・リバース、パッケージ、シナリオ、インタフェースなど)。また、エージェントはOracle Data Integratorで定義されたスケジュールに従って、シナリオの実行を開始できます。

サード・パーティのスケジューリング・システムによってエージェントでの実行をトリガーすることもできます。詳細は、21.9.2項「外部スケジューラを使用したシナリオまたはロード計画のスケジューリング」を参照してください。

標準的なプロジェクトでは本番に単一エージェントを必要としますが、4.3.3項「エージェントのロード・バランシング」では、ロード・バランシングが実行された複数のエージェントの設定方法を説明しています。

エージェントのライフサイクル

エージェントのライフサイクルは次のとおりです。

1. エージェントは、開始時にマスター・リポジトリに接続します。

2. エージェントは、マスター・リポジトリに関連付けられた作業リポジトリに接続し、開始時に次のタスクを実行します。

- このエージェントの起動時に実行する必要がある未処理のタスクを、すべての作業リポジトリで実行します。

- 各作業リポジトリ内の失効したセッションを除去します。これらのセッションは、エージェントまたはリポジトリのクラッシュ後に不正に実行状態で残されたセッションです。

- 各作業リポジトリ内のスケジュール済シナリオのリストを取得し、そのスケジュールを計算します。

3. エージェントはポート上でリスニングを開始します。

- 実行リクエストがエージェントに着信すると、エージェントはこのリクエストを確認してセッションを開始します。

- エージェントはスケジュールに従ってセッションを開始します。

- またエージェントは、スケジュールの更新、セッションの停止、pingへの応答または失効したセッションの除去を要求するその他の管理リクエストを処理できます。スタンドアロン・エージェントでも、ライフサイクルを終了する停止シグナルを処理できます。

セッションのライフサイクルの詳細は、第21章「統合プロセスの実行」を参照してください。

エージェントの機能

エージェントはデータ変換サーバーではありません。エージェントはデータ変換は実行せず、かわりに統合プロセスの編成のみを行います。エージェントは、データベース・サーバー、オペレーティング・システムまたはスクリプト・エンジンにデータ変換を委任します。

エージェントは、マルチスレッドの軽量コンポーネントです。エージェントは複数のセッションを並列して実行できます。物理エージェントを宣言する際に、許可されている最大数の同時セッションを調整し、作業リポジトリから並列で実行することをお薦めします。この最大数に到達すると、新規着信セッションはエージェントによってキューされ、他のセッションの終了時に後から実行されます。複数のパラレル・セッションの実行を計画している場合、4.3.3項「エージェントのロード・バランシング」の説明に従ってロード・バランシングの実行を検討できます。

スタンドアロン・エージェントとJava EEエージェント

Oracle Data Integratorエージェントには、スタンドアロン・エージェントおよびJava EEエージェントの2つのフレーバが存在します。

スタンドアロン・エージェントは、独立したJava仮想マシン(JVM)プロセスで動作します。スタンドアロン・エージェントは、JDBCによって、作業リポジトリとソースおよびターゲット・データ・サーバーに接続します。スタンドアロン・エージェントはJavaマシンがインストールされているサーバーにインストールできます。いずれかのデータ・サーバーに対してローカルであるリソース(ファイル・システムまたはデータベース・インスタンスがインストールされたローダー・ユーティリティなど)を使用する必要があり、このマシンにはJava EEアプリケーション・サーバーをインストールしない場合、このタイプのエージェントはより適切です。

Java EEエージェントは、WebアプリケーションとしてJava EEアプリケーション・サーバー(Oracle WebLogic Server、IBM WebSphereなど)にデプロイされます。Java EEエージェントは、アプリケーション・サーバーのあらゆる機能の恩恵を受けることができます(JDBCデータソースまたはOracle WebLogic Serverのクラスタ化など)。エンタープライズ・アプリケーション・サーバーにおけるすべてのアプリケーションのデプロイおよび管理を集中させる必要がある場合や、高可用性の要件がある場合、このタイプのエージェントはより適切です。

単一環境のスタンドアロン・エージェントおよびJava EEエージェントを、分散環境に混在させることができます。

物理エージェントと論理エージェント

物理エージェントは、単一のスタンドアロン・エージェントまたはJava EEエージェントに対応します。物理エージェントは、トポロジに一意の名前が必要です。

スキーマと同様に、異なる環境で同一の役割を持つ物理エージェントは、同じ論理エージェントにグループ化できます。論理エージェントは、コンテキストによって物理エージェントに関連付けられています。実行の開始時、論理エージェントおよびコンテキストを指定します。Oracle Data Integratorはこの情報を単一の物理エージェントに変換し、物理エージェントが実行リクエストを受信します。

エージェントURL

エージェントはホストおよびポート上で動作し、このポート上でアプリケーション名によって識別されます。また、エージェントURLはエージェント接続に使用するプロトコルを示します。プロトコルに使用できる値は、httpまたはhttpsです。これらの4つのコンポーネントがエージェントURLを構成します。エージェントはこのURLによってアクセスされます。

例:

- odi_productionマシンのポート8080で開始したスタンドアロン・エージェントは、次のURLでアクセスできます。
http://odi_production:8080/oraclediagent

注意:

スタンドアロン・エージェントのアプリケーション名は常にoraclediagentであり、変更できません。

- odi_wlsホストにデプロイされたWLSサーバーのポート8000で、oraclediというアプリケーションとして開始されたJava EEエージェントは、次のURLでアクセスできます。
http://odi_wls:8000/oracledi

4.1.5 言語

言語は、設計時に式を編集する際に使用可能な言語および言語要素を定義します。デフォルトでOracle Data Integratorに用意されている言語には、ユーザーの変更は必要ありません。

4.1.6 リポジトリ

トポロジには、Oracle Data Integratorリポジトリに関する情報が含まれます。リポジトリの定義、構成およびインストールについては、Oracle Data Integratorインストールおよびアップグレード・ガイドを参照してください。

4.2 トポロジの設定

次のステップは、トポロジを作成するためのガイドラインです。初期設定後にトポロジをいつでも変更できます。

1. 様々な環境に対応するコンテキストを作成します。4.2.1項「コンテキストの作成」を参照してください。

2. Oracle Data Integratorで使用されるサーバーに対応するデータ・サーバーを作成します。4.2.2項「データ・サーバーの作成」を参照してください。

3. データ・サーバーごとに、Oracle Data Integratorと統合されるデータが含まれるスキーマに対応する物理スキーマを作成します。4.2.3項「物理スキーマの作成」を参照してください。

4. 論理スキーマを作成し、コンテキストでこれらを物理スキーマと関連付けます。4.2.4項「論理スキーマの作成」を参照してください。

5. 情報システムにインストールされたスタンドアロン・エージェントまたはJava EEエージェントに対応する物理エージェントを作成します。4.2.5項「物理エージェントの作成」を参照してください。

6. 論理エージェントを作成し、コンテキストでこれらを物理エージェントと関連付けます。4.2.6項「論理エージェントの作成」を参照してください。

4.2.1 コンテキストの作成

コンテキストを作成するには:

1. トポロジ・ナビゲータで、「コンテキスト」アコーディオンを開きます。

2. アコーディオン・ヘッダーで「新規コンテキスト」をクリックします。

3. 次の各フィールドに値を入力します。

- 名前: Oracle Data Integratorグラフィカル・インタフェースに表示されるコンテキストの名前。

- コード: 様々なリポジトリ間でのコンテキストの参照および識別を可能にする、コンテキストのコード。

- パスワード: グラフィカル・インタフェースでユーザー・リクエストがこのコンテキストに切り替わった場合にリクエストされるパスワード。クリティカル・コンテキスト(本番データを示すコンテキストなど)にはパスワードを使用することをお薦めします。

- デザイナ・ナビゲータまたはオペレータ・ナビゲータの各種リストで、このコンテキストをデフォルトで表示する必要がある場合は、「デフォルト」を選択します。

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

4.2.2 データ・サーバーの作成

データ・サーバーは、統合フローでOracle Data Integratorによりアクセスされるデータベース、JMSサーバー・インスタンス、スクリプト・エンジンまたはファイル・システムなどに対応します。データ・サーバーでは、物理スキーマの形式で下位区分が作成されます。

注意:

よく使用されるテクノロジのデータ・サーバー作成方法は、Oracle Fusion Middleware Oracle Data Integrator接続性およびナレッジ・モジュール・ガイドを参照してください。

4.2.2.1 前提条件とガイドライン

データ・サーバーの作成時には、次のガイドラインに従うことをお薦めします。

テクノロジ固有の要件の確認

一部のテクノロジでは、次のような要素のインストールおよび構成が必要です。

- JDBCドライバのインストール。詳細は、Oracle Fusion Middleware Oracle Data Integratorインストレーション・ガイドを参照してください。

- クライアント・コネクタのインストール。

- データソースの構成。

データ・サーバーによって接続しているテクノロジのドキュメントおよびOracle Fusion Middleware Oracle Data Integrator接続性およびナレッジ・モジュール・ガイドを参照してください。接続情報は、テクノロジに応じて変更される場合があります。提供されているサーバー・ドキュメントを参照し、接続方法を定義するようサーバー管理者に連絡してください。

Oracle Data Integratorユーザーの作成

Oracle Data Integratorで使用される各データベース・エンジンについて、このデータ・サーバー上にODI専用のユーザーを作成することをお薦めします(通常はODI_TEMP)。

このユーザーに次の権限を付与します:

- 自分のスキーマでオブジェクトを作成または削除したり、データ操作を実行します。

- 統合プロセスに必要な操作に従って、このデータ・サーバーのその他のスキーマのオブジェクトにデータを取り込みます。

このユーザーは、次のように使用する必要があります:

- このユーザーの名前/パスワードをデータ・サーバーのユーザー/パスワード定義で使用します。

- このユーザーのスキーマを、このサーバー上のすべてのデータ・スキーマの作業スキーマとして使用します。

4.2.2.2 データ・サーバーの作成

データ・サーバーを作成するには:

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

ヒント:

物理アーキテクチャ・アコーディオンに表示されるテクノロジ・リストは、非常に長い場合があります。表示されるテクノロジ・リストを絞り込むために、「トポロジ・ナビゲータ」ツールバー・メニューから「未使用のテクノロジを非表示」を選択して、未使用のテクノロジを非表示することができます。

2. データ・サーバーを作成するテクノロジを選択します。

3. 右クリックして「新規データ・サーバー」を選択します。

4. 「定義」タブで、次のフィールドに値を入力します:

- 名前: Oracle Data Integratorに表示されるデータ・サーバーの名前。
データ・サーバーの名前を付ける場合は、命名標準の<TECHNOLOGY_NAME>_<SERVER_NAME>を使用することをお薦めします。

- ...(データ・サーバー): これは他のデータ・サーバーで識別のために使用されるデータ・サーバーの物理名です。データ・サーバーを自然な方法で相互接続できる場合はこの名前を入力します。このパラメータは、一部のテクノロジでは必須ではありません。
たとえば、Oracleの場合、この名前はインスタンス名に相当しており、DBLinkを使用して別のOracleデータ・サーバーからこのデータ・サーバーにアクセスする際に使用されます。

- ユーザー/パスワード: データ・サーバーに接続するためのユーザー名およびパスワード。このパラメータは、ファイル・テクノロジなど一部のテクノロジでは必須ではありません。
テクノロジに応じて、ログイン、ユーザーまたはアカウントを指定できます。JNDIプロトコルを使用した一部の接続については、ユーザー名およびそれに関連するパスワードはオプションです(LDAPディレクトリで指定されている場合)。

5. データ・サーバーに対して接続パラメータを定義します。
JDBCによって直接テクノロジにアクセスできます。あるいは、このデータ・サーバーへのJDBC接続がJNDIディレクトリから提供される場合もあります。

JNDIディレクトリによってテクノロジにアクセスする場合、次の操作を行います。

1. 「定義」タブで「JNDI接続」を選択します。

2. 「JNDI」タブに移動し、次のフィールドに入力します:

フィールド

説明

JNDI認証

- なし: 命名またはディレクトリ・サービスへの匿名アクセス

- 簡易: 認証済アクセス(非暗号化)

- CRAM-MD5: 認証済アクセス(暗号化されたMD5)

- <other value>: 認証済アクセス(<other value>に従って暗号化)

JNDIユーザー/パスワード

JNDIディレクトリに接続するユーザー/パスワード

JNDIプロトコル

接続に使用されるプロトコル

最も一般的なプロトコルのみをここにリストしています。これは完全なリストではありません。

- LDAP: LDAPディレクトリへのアクセス

- SMQP: SwiftMQ MOMディレクトリへのアクセス

- <other value>: サブプロトコル<other value>に従ったアクセス

JNDIドライバ

JNDI接続を可能にするドライバ

Sun LDAPディレクトリの例: com.sun.jndi.ldap.LdapCtxFactory

JNDI URL

JNDI接続を可能にするURL

例: ldap://suse70:389/o=linuxfocus.org

JNDIリソース

接続パラメータを含むディレクトリ要素

例: cn=sampledb

JDBCによってテクノロジに接続する場合、次の操作を行います。

1. 「JNDI接続」ボックスを選択解除します。

2. 「JDBC」タブに移動し、次のフィールドに入力します:

フィールド

説明

JDBCドライバ

データ・サーバーへの接続に使用されるJDBCドライバの名前

JDBC URL

データ・サーバーに接続できるURL

事前定義済のJDBCドライバおよびURLのリストを取得するには、使用可能なドライバの表示またはURLサンプルの表示をクリックします。

6. 「ファイル」メニューで、「保存」をクリックしてデータ・サーバーの作成を検証します。

4.2.2.3 データ・サーバーの作成(詳細設定)

次の操作はオプションです。

- 接続プロパティの追加

- データソースの定義

- 接続時または切断時のコマンドの設定

接続プロパティの追加

これらのプロパティは、オプションの構成パラメータを指定するために、接続の作成時に渡されます。各プロパティは(キー、値の)ペアです。

- JDBCの場合: これらのプロパティは、使用されるドライバによって決まります。使用可能なプロパティのリストについては、ドライバのドキュメントを参照してください。JDBCでは、接続用のユーザーおよびパスワードを「定義」タブではなくここで指定できます。

- JNDIの場合: これらのプロパティは、使用されるリソースによって決まります。

データ・サーバーに接続プロパティを追加するには:

1. 「プロパティ」タブで、「プロパティを追加」をクリックします。

2. このプロパティを識別するキーを指定します。このキーは大/小文字が区別されます。

3. プロパティの値を指定します。

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

データソースの定義

「データソース」タブでは、アプリケーション・サーバーにデプロイされたOracle Data Integrator Java EEエージェントでこのデータ・サーバーへの接続に使用されるJDBCデータソースを定義できます。データソースはスタンドアロン・エージェントには適さないため注意してください。

データソースの定義は必須ではありませんが、定義することで、Java EEエージェントはアプリケーション・サーバーで使用可能なデータソースおよび接続プーリングの機能の恩恵を受けることができます。接続プーリングにより、複数セッション間で接続を再利用できます。Java EEエージェントで指定のデータ・サーバーに対してデータソースが宣言されていない場合、このJava EEエージェントは常に直接JDBC接続を使用してデータ・サーバーに接続します。アプリケーション・サーバーのデータソースはいずれも使用しません。

Oracle Data Integratorでデータソースを定義する前に、次の点に注意してください。

- WebLogic Serverのデータソースは、接続プール構成で文キャッシュ・サイズパラメータを0に設定して作成する必要があります。文キャッシュはデータ統合のパフォーマンスに若干の影響を及ぼし、一部のJDBCドライバでデータの切捨てなどの予期しない結果を招く可能性があります。これはソースおよびターゲットのデータ・サーバーへのデータ接続にのみ影響し、リポジトリ接続には影響しません。

- 接続プーリングをデータソースで使用する場合、プロシージャおよびナレッジ・モジュールでALTER SESSION文を使用しないことをお薦めします。接続でALTER SESSION文が必要な場合は、関連データソースでの接続プーリングを無効化することをお薦めします。

データ・サーバーに対してJDBCデータソースを定義するには:

1. データ・サーバー・エディタの「データソース」タブで、「データソースの追加」をクリックします。

2. 「エージェント」フィールドで物理エージェントを選択します。

3. 「JNDI名」フィールドにデータソース名を入力します。
この名前は、アプリケーション・サーバーのデータソース名と一致する必要があるので注意してください。

4. 環境命名コンテキスト(ENC)を使用する場合は、「JNDI標準」を選択します。
「JNDI標準」を選択した場合、Oracle Data Integratorでは、アプリケーション・サーバーのJNDIディレクトリでデータソースを識別するために、データソース名の前に文字列java:comp/env/が自動的に付けられます。

Oracle Weblogic Serverでは、グローバル・データソースを実現するためにJNDI標準を使用することができません。

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

Java EEエージェントに対してデータソースを定義した後、Java EEエージェントがデプロイされているアプリケーション・サーバーでデータソースを作成する必要があります。アプリケーション・サーバーでデータソースを作成するには、次のような複数の方法があります。

- アプリケーション・サーバー・コンソールからデータ・ソースを構成します。詳細は、アプリケーション・サーバーのドキュメントを参照してください。

- エージェントのアプリケーション・サーバーにおけるOracle Data Integratorからのデータソースのデプロイ

- Java EEアプリケーション・サーバーでのエージェントのデプロイ

接続時または切断時のコマンドの設定

「接続/切断時」タブでは、物理アーキテクチャに定義されているデータ・サーバーへの接続の作成時またはクローズ時に実行するSQLコマンドを定義できます。

接続時のコマンドは、ODIコンポーネント(ODIクライアント・コンポーネントを含む)がこのデータ・サーバーに接続されるたびに実行されます。

切断時のコマンドは、ODIコンポーネント(ODIクライアント・コンポーネントを含む)がこのデータ・サーバーから切断されるたびに実行されます。

これらのSQLコマンドは、データ・サーバー定義とともにマスター・リポジトリに格納されます。

接続時または切断時のコマンドを設定する前に、次にことに注意してください。

- 接続時および切断時のコマンドは、テクノロジ・タイプが「データベース」(JDBC)のデータ・サーバーでのみサポートされます。

- 接続時および切断時のコマンドは、データソースを使用している場合も実行されます。この場合、コマンドは、接続プールに対して接続を取得および解放するときに実行されます。

- 置換APIがサポートされています。設計時タグ<%はサポートされていません。実行時タグ<?および<@はサポートされています。

- 置換モードではグローバル変数(#GLOBAL.<VAR_NAMEまたは#<VAR_NAME)のみがサポートされています。詳細は、変数の有効範囲を参照してください。式エディタには、現在のデータ・サーバーに有効な変数のみが表示されます。

- 接続時および切断時のコマンドに使用される変数は、実行時にのみ置換され、その時点でセッションが開始します。データ・サーバーの接続をテストする場合や、このデータ・サーバーでデータの表示操作を実行する場合、変数を使用するコマンドは失敗となります。これらの変数はシナリオで宣言してください。

- Oracle Data Integratorの順序は、接続時および切断時のコマンドではサポートされていません。

接続時および切断時のコマンドには、次の使用方法があります。

- セッションが実行されると、データ・サーバーへの接続が開きます。コマンド「接続時」が定義されているデータ・サーバーで接続が開くたびに、「接続時のコマンド」と呼ばれる特定のステップの下にタスクが作成されます。このタスクには、接続の確立先となるデータ・サーバー、およびこのデータ・サーバーへの接続を作成するステップとタスクに基づいて名前が設定されます。このタスクには、接続時のコマンドのコードが格納されます。

- セッションが完了すると、データ・サーバーへの接続はすべてクローズされます。切断時のコマンドが定義されているデータ・サーバーで接続がクローズされるたびに、「切断時のコマンド」という特定のステップにタスクが作成されます。このタスクには、切断されるデータ・サーバー、およびこのデータ・サーバーへの接続を切り離したステップとタスクに基づいて名前が設定されます。これには、切断時のコマンドのコードが格納されます。

- ODI StudioまたはODIコンソールで行われる操作が、データベース・サーバーへの接続を必要とする場合(データの表示、テスト接続など)、このコマンドに「クライアント・トランザクション」を選択すると、接続時/切断時のコマンドも実行されます。

注意:

オペレータ・ナビゲータに接続時および切断時ステップを表示するかどうかを指定できます。ユーザー・パラメータ「接続時および切断時ステップを非表示」をYesに設定すると、接続時および切断時ステップは表示されません。

接続時または切断時のコマンドを設定するには:

1. データ・サーバー・エディタの「接続/切断時」タブで、「接続時」セクションまたは「切断時」セクションの「式エディタを起動します」をクリックします。

2. 式エディタで、SQLコマンドを入力します。

注意:

式エディタには、このデータ・サーバーのテクノロジで使用できる置換メソッドおよびキーワードのみが表示されます。グローバル変数が表示されるのは、作業リポジトリへの接続が使用できる場合のみであることに注意してください。

3. 「OK」をクリックします。「コマンド」フィールドにSQLコマンドが表示されます。

4. オプションで、コマンドの実行後に接続をコミットする場合は「コミット」を選択します。「実行」リストで「自動コミット」または「クライアント・トランザクション」が選択されている場合、この値は無視されます。

5. オプションで、コマンド実行時に発生した例外を無視する場合は、「エラーの無視」を選択します。「エラーの無視」が選択されていない場合、コール操作はエラー・ステータスで終了します。セッションの途中で失敗となった、「エラーの無視」が選択されているコマンドは、警告状態のタスクとして表示されます。

6. 「ログ・レベル」リストから、接続または切断コマンドのログ・レベル(1から6)を選択します。実行時には、コマンドのログ・レベルに基づいてコマンドをセッション・ログに保存できます。デフォルトは3です。

7. 「実行」リストから、コマンドを実行するトランザクションを選択します。

注意:

0から9のトランザクションおよび「自動コミット」トランザクションは、(プロシージャまたはナレッジ・モジュールによる)セッションで作成された接続に相当します。「クライアント・トランザクション」は、クライアント・コンポーネント(ODIコンソールおよびStudio)に相当します。

すべてのトランザクションを選択または選択解除する場合は、「すべて選択」または「すべて選択解除」を選択できます。

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

接続をテストする準備が整いました。詳細は、4.2.2.4項「データ・サーバー接続のテスト」を参照してください。

4.2.2.4 データ・サーバー接続のテスト

トポロジの定義を続行する前に、データ・サーバー接続をテストすることをお薦めします。

データ・サーバーへの接続をテストするには:

1. トポロジ・ナビゲータで、「物理アーキテクチャ」アコーディオンの「テクノロジ」ノードを開いてから、データ・サーバーが含まれるテクノロジを開きます。

2. テストするデータ・サーバーをダブルクリックします。データ・サーバー・エディタが開きます。

3. 「テスト接続」をクリックします。
「テスト接続」ダイアログが表示されます。

4. テストを実行するエージェントを選択します。「ローカル(エージェントなし)」は、ローカル・ステーションが接続を試行することを示します。

5. 「詳細」をクリックし、データベースおよびJDBCドライバの特性および能力を取得します。

6. 「テスト」をクリックし、テストを起動します。

テストが機能した場合、接続が正常に実行されましたと示すウィンドウが表示され、機能しない場合、エラー・ウィンドウが表示されます。接続失敗の原因の詳細を取得するには、このエラー・ウィンドウの「詳細」ボタンを使用します。

4.2.3 物理スキーマの作成

Oracle Data Integratorの物理スキーマは、次のスキーマのペアに相当します。

- (データ・)スキーマ。ここで、Oracle Data Integratorはインタフェースのソースおよびターゲット・データ構造を検索します。

- 作業スキーマ。ここで、Oracle Data Integratorはデータ・スキーマに含まれるソースおよびターゲットに関連付けられた一時作業データ構造を作成し、操作できます。

よく使用されるテクノロジの物理スキーマ作成方法は、Oracle Fusion Middleware Oracle Data Integrator接続性およびナレッジ・モジュール・ガイドを参照してください。

物理スキーマを作成する前に、次の点に注意してください。

- テクノロジの中には、複数のスキーマをサポートしないものがあります。一部のテクノロジでは、1つのデータ・サーバーのスキーマが1つのみであるため、作業スキーマおよびデータ・スキーマを指定しません。

- 一部のテクノロジでは、一時構造の作成をサポートしていません。これらのテクノロジでは、作業スキーマは使用できません。

- 物理スキーマが関連付けられているデータ・サーバーで指定されたユーザーには、このデータ・サーバーに関連付けられたスキーマでの適切な権限が必要です。

物理スキーマを作成するには:

1. データ・サーバーを選択し、右クリックして「新規物理スキーマ」を選択します。物理スキーマ・エディタが表示されます。

2. テクノロジが複数のスキーマをサポートしている場合、次の操作を行います。

1. ...(スキーマ)で、このData Integrator物理スキーマについてデータ・スキーマを選択または入力します。テクノロジがスキーマ・リストをサポートしている場合、スキーマのリストが表示されます。

2. ...(作業スキーマ)で、このData Integrator物理スキーマについて作業スキーマを選択または入力します。テクノロジがスキーマ・リストをサポートしている場合、スキーマのリストが表示されます。

3. このスキーマをこのデータ・サーバーのデフォルト・スキーマにする場合は、「デフォルト」ボックスを選択します(最初の物理スキーマが常にデフォルト・スキーマとなります)。

4. 「コンテキスト」タブに移動します。

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

6. この新規物理スキーマに対して、コンテキストおよび既存の論理スキーマを選択します。
このテクノロジの論理スキーマが存在しない場合、このエディタから作成できます。

論理スキーマを作成するには:

1. 左側の列で既存のコンテキストを選択します。

2. 右側の列で論理スキーマ名を入力します。
このエディタを保存する際に、この論理スキーマは自動的に作成され、このコンテキスト内のこの物理スキーマに関連付けられます。

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

4.2.4 論理スキーマの作成

論理スキーマを作成するには:

1. トポロジ・ナビゲータで、「論理アーキテクチャ」アコーディオンの「テクノロジ」ノードを開きます。

2. 論理スキーマを関連付けるテクノロジを選択します。

3. 右クリックして「新規論理スキーマ」を選択します。

4. 「スキーマ名」を入力します。

5. 左側の列の各コンテキストについて、右側の列で既存の物理スキーマを選択します。この物理スキーマはこのコンテキストの論理スキーマと自動的に関連付けられます。必要なすべてのコンテキストについてこの操作を繰り返します。

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

4.2.5 物理エージェントの作成

物理エージェントを作成するには:

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

2. 「新規エージェント」を選択します。

3. 次の各フィールドに値を入力します。

- 名前: Javaグラフィカル・インタフェースで使用されるエージェントの名前。注意: エージェント名として「内部」は使用しないでください。Oracle Data Integratorでは、内部エージェントを使用してセッションを実行するときに「内部」エージェントを使用するため、「内部」というエージェント名は予約されています。

- ホスト: エージェントが起動されるマシンのネットワーク名またはIPアドレス。

- ポート: エージェントで使用されるリスニング・ポート。デフォルトでは、このポートは20910です。

- Webアプリケーション・コンテキスト: アプリケーション・サーバーにデプロイされたJava EEエージェントに対応するWebアプリケーションの名前。スタンドアロン・エージェントの場合、このフィールドはoraclediagentに設定する必要があります。

- 「プロトコル」はエージェント接続に使用するプロトコルです。使用可能な値は、httpまたはhttpsです。デフォルトはhttpです。

- このエージェントでサポートされる最大セッション数。

4. ロード・バランシングを設定する場合、「ロード・バランシング」タブに移動し、現在のエージェントが実行を委任できるリンク済物理エージェントのセットを選択します。詳細は、4.3.3.3項「ロード・バランシングの設定」を参照してください。

5. エージェントが起動されている場合、「テスト」をクリックします。「接続に成功」ダイアログが表示されます。

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

4.2.6 論理エージェントの作成

論理エージェントを作成するには:

1. トポロジ・ナビゲータで、「論理アーキテクチャ」アコーディオンの「エージェント」ノードを右クリックします。

2. 「新規論理エージェント」を選択します。

3. 「エージェント名」を入力します。

4. 左側の列の各コンテキストについて、右側の列で既存の物理エージェントを選択します。この物理エージェントはこのコンテキストの論理エージェントと自動的に関連付けられます。必要なすべてのコンテキストについてこの操作を繰り返します。

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

4.3 エージェントの管理

この項では、スタンドアロン・エージェントおよびJava EEエージェントの使用方法と、ロード・バランシングの処理方法について説明します。

4.3.1 スタンドアロン・エージェント

スタンドアロン・エージェントの管理は、次の各項で説明するアクションを伴います。

- 4.3.1.1項「スタンドアロン・エージェントの構成」

- 4.3.1.2項「スタンドアロン・エージェントの開始」

- 4.3.1.3項「エージェントの停止」

注意:

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

4.3.1.1 スタンドアロン・エージェントの構成

odiparamsファイルは、Oracle Data Integratorスタンドアロン・エージェント・コマンドライン・スクリプトのパラメータが含まれる構成スクリプトです。このファイルには、スタンドアロン・エージェントを開始するためのリポジトリ接続および資格証明情報が含まれます。スタンドアロン・エージェントを開始する前にこの構成を行うことが必要です。

このファイルは、Oracle Data Integratorインストール・ディレクトリの/agent/binディレクトリに置かれています。

- UNIXシステムの場合:
odiparams.sh

- Windowsシステムの場合:
odiparams.bat

このファイルをテキスト・エディタで編集し、構成パラメータを設定できます。

注意:

Oracle Universal Installerを使用してスタンドアロン・エージェントをインストールし、インストール時にリポジトリ接続を構成することを選択した場合、odiparamsファイルは事前構成されています。

これらのパラメータのリストについては、表4-1を参照してください。

表4-1 リポジトリ接続情報

パラメータ

説明

ODI_MASTER_DRIVER

マスター・リポジトリの接続に使用されるJDBCドライバ。

ODI_MASTER_URL

マスター・リポジトリの接続に使用されるJDBC URL。このURLは、次のいずれかの文字を含む場合、引用符を付ける必要があります。

- セミコロン(;)

- バックスラッシュ(\)

- 二重引用符(")

- バック・クォート(`)

- ドル記号($)

- 小なり記号(<)

- 大なり記号(>)

ODI_MASTER_USER

マスター・リポジトリの接続に使用されるデータベース・アカウント。

ODI_MASTER_ENCODED_PASS

データベース・アカウントのパスワード。このパスワードはencode.[sh|bat] <password>コマンドでコード化される必要があります。

ODI_SECU_WORK_REP

接続先の作業リポジトリの名前。この作業リポジトリは、シナリオが開始されるデフォルト・リポジトリです。詳細は、第21章「統合プロセスの実行」を参照してください。

ODI_SUPERVISOR

ODI SUPERVISORユーザーの名前。このSUPERVISORユーザーは、エージェントによりマスター・リポジトリの接続に使用されます。

ODI_SUPERVISOR_ENCODED_PASS

このSUPERVISORユーザーのパスワード。このパスワードはencode.[sh|bat] <password>コマンドでコード化される必要があります。

ODI_USER

シナリオの開始に使用されるODIユーザーの名前。このユーザーの資格証明は、コマンドラインからシナリオを開始する際に使用されます。詳細は、第21章「統合プロセスの実行」を参照してください。

ODI_ENCODED_PASS

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

ODI_CONNECTION_RETRY_COUNT

リポジトリ接続に失敗した場合に接続を再確立するための再試行回数。デフォルトは0です。ユーザーがデフォルト値を変更しない場合は再試行されません。

リポジトリが機能しなくなり、すぐ後に使用可能になった場合、RETRYパラメータ(ODI_CONNECTION_RETRY_COUNTおよびODI_CONNECTION_RETRY_DELAY)によってエージェントはセッションを続行できます。これらのパラメータは、Oracle RACデータベースに存在するリポジトリの高可用性(HA)リカバリを可能にします。

ODI_CONNECTION_RETRY_DELAY

リポジトリ接続が再試行される間隔(ミリ秒)。デフォルトは7000です。

ODI_KEYSTORE_ENCODED_PASS

エンコードされたキーストア・パスワード。このパスワードはencode.[sh|bat] <password>コマンドでコード化される必要があります。

ODI_TRUST_STORE_ENCODED_PASS

エンコードされたトラストストア・パスワード。このパスワードはencode.[sh|bat] <password>コマンドでコード化される必要があります。

ODI_KEY_ENCODED_PASS

エンコードされたキー・パスワード。このパスワードはencode.[sh|bat] <password>コマンドでコード化される必要があります。

HTTPSプロトコルの使用

ODIエージェントでの着信リスニングのプロトコルとしてHTTPSプロトコルを選択する場合は、次の点に注意してください。

- ODI_KEYSTORE_ENCODED_PASSは必須です。

- ODI_KEY_ENCODED_PASSはオプションです。

- ODI_TRUSTSTORE_ENCODED_PASSはオプションです。

また、表4-2のパラメータは、ODI_JAVA_OPTIONS変数で構成できます。

表4-2 キーストアとトラストストアのパラメータ

パラメータ

説明

-Djavax.net.ssl.keyStore

キーストア・ファイル・システムの場所

-Djavax.net.ssl.keyStoreType

キーストアのタイプ

-Djavax.net.ssl.trustStore

トラストストア・ファイル・システムの場所

-Djavax.net.ssl.trustStoreType

トラストストアのタイプ

4.3.1.2 スタンドアロン・エージェントの開始

スタンドアロン・エージェントは、事前定義済のスケジュールどおりに、または要求に応じて、シナリオを実行できます。

スタンドアロン・エージェントを起動するには:

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

2. 次のコマンドを入力してエージェントを開始します。

- UNIXシステムの場合:
./agent.sh

- Windowsシステムの場合:
agent.bat

エージェントはリスナーとして起動します。エージェントは、表4-3にリストされたオプション・パラメータを使用できます。

エージェント構成パラメータ

表4-3では、エージェントの構成を可能にする各種パラメータをリストしています。パラメータの前には"-"の文字が置かれ、使用できる値の前には"="の文字が置かれています。コマンドを入力する際には、オペレーティング・システム固有のデリミタの構文を考慮してください。

表4-3 エージェント構成パラメータ

パラメータ

説明

-PORT=<port>

エージェントがリスニングしているポート。デフォルト値は20910です。このポートは、トポロジの物理エージェント定義で指定されているポートと完全一致する必要があります。

-PROTOCOL=<protocol>

エージェント接続に使用されるプロトコル。使用可能な値はHTTPかHTTPSです。デフォルトはHTTPです。

-NAME=<agent name>

これは使用されている物理エージェントの名前です。この名前は、トポロジで定義されている物理エージェントの名前と一致する必要があります。このパラメータが指定されていない場合、エージェントはデフォルト名OracleDIAgentで開始されます。

-JMXPORT=<jmx_port>

JMXエージェントのポート番号。エージェントはこのポートでリスニングし、メトリックを提供するJMXリクエストを待機します。デフォルト値はリスニング・ポート+1000です。たとえば、<port>=20910の場合、<jmx_port>=21910となります。

-ODI_CONNECTION_RETRY_COUNT=<nn>

ODIリポジトリへの接続を再試行した回数。デフォルト値は0です。0に設定した場合、再試行は行われません。

-ODI_CONNECTION_RETRY_DELAY=<nn>

ODIリポジトリへの接続再試行までの時間(ミリ秒)です。デフォルト値は100です。

たとえば、UNIXの場合は、コマンド

./agent.sh -PORT=20300 -NAME=agent_001

により、リポジトリで宣言されているスタンドアロン・エージェントがagent_001としてポート20300で起動されます。

警告:

Windowsプラットフォームの場合は、"="記号またはスペースが含まれるコマンド引数を、二重引用符を使用して区切る必要があります。例:

agent.bat "-PORT=20300" "-NAME=agent_001"

4.3.1.3 エージェントの停止

スタンドアロン・エージェントを停止するには、このエージェントのJavaプロセスを停止します。

スタンドアロン・エージェントを遠隔停止するには、agentstopコマンドを使用します。

スタンドアロン・エージェントを停止するには:

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

2. 次のコマンドを入力してエージェントを停止します。

- UNIXシステムの場合:
./agentstop.sh

- Windowsシステムの場合:
agentstop.bat

リスニング中のエージェントが停止します。

例:

- Windowsの場合: agentstop "-PORT=20300"によりポート20300でエージェントが停止します。

- UNIXの場合: ./agentstop.shによりデフォルト・ポートでエージェントが停止します。

AgentStopコマンド・パラメータ

次の表では、エージェントを停止するコマンドの各種パラメータをリストしています。パラメータの前にはハイフン(-)を、可能な値の前には等号(=)を付けます。コマンドを入力する際には、オペレーティング・システム固有のデリミタの構文を考慮してください。

パラメータ

説明

-PORT=<port>

このパラメータは非推奨です。同一マシン上のスタンドアロン・エージェントを停止する際に使用されます。これは-AGENT_URL=http://localhost:<port>/oraclediagentのショートカットです。

デフォルト・ポートは20910です。

-AGENT_URL=<agent_url>

停止するスタンドアロン・エージェントのURL。このパラメータはAGENT_NAMEより優先されており、PORTパラメータは非推奨です。

-NAME=<agent name>

このパラメータが指定された場合、名前が指定されている物理エージェントは停止します。このエージェントはローカル・エージェントまたはリモート・エージェントであり、マスター・リポジトリで宣言される必要があります。このパラメータはPORTパラメータより優先されます。

-IMMEDIATE=<true(default)|false>

このパラメータをyesに設定すると、実行中のセッションの完了を待機せずにエージェントが停止されます。noに設定すると、実行中のセッションがすべて完了した後、またはMAX_WAITタイムアウトに到達した後で、エージェントが停止されます。デフォルト値はNoです。

-MAX_WAIT=<stop timeout in millis>

このパラメータは、IMMEDIATEがNoに設定されている場合に使用できます。このパラメータには、実行中のセッションに関係なくエージェントを停止するタイムアウトをミリ秒単位で定義します。デフォルトは0です。これは、タイムアウトが発生せず、実行中のセッションすべてが完了した後で、エージェントが停止されることを意味します。

4.3.2 Java EEエージェント

Java EEエージェントの管理は、次の各項で説明するアクションを伴います。

- 4.3.2.1項「Java EE Application Serverでのデプロイ」

- 4.3.2.2項「エージェントのアプリケーション・サーバーにおけるOracle Data Integratorからのデータソースのデプロイ」

4.3.2.1 Java EEアプリケーション・サーバーでのエージェントのデプロイ

Oracle Data IntegratorエージェントをデプロイできるJavaEEアプリケーション・サーバーは、Oracle WebLogic Server (WLS)とIBM WebSphere Application Server (WAS)です。アプリケーション・サーバーでODIエージェントをデプロイするには、Oracle Data Integratorでサーバー・テンプレートを生成する方法が簡単です。このテンプレートはWLS構成ウィザードに直接デプロイできます。

Java EEアプリケーション・サーバーでエージェントをデプロイするには、次のタスクの手順を実行します。

- タスク1: トポロジにおけるJava EEエージェントの定義

- タスク2: Java EEエージェントに対するサーバー・テンプレートの作成

4.3.2.1.1 トポロジにおけるJava EEエージェントの定義

Java EEエージェントの定義は、2つのタスクで構成されます。まず、Java EEエージェントに対応する物理エージェントを作成してから、論理エージェントを作成する必要があります。

物理エージェントを作成するには:

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

2. 「新規エージェント」を選択します。

3. 「定義」タブで、次のパラメータに注目します。

- 「名前」はJava EEエージェント名です。

- 「ホスト」は、アプリケーション・サーバーのホスト名に対応する必要があります。

- 「ポート」はJava EEエージェント・アプリケーションのHTTPポートです。

- 「プロトコル」はエージェント接続に使用するプロトコルです。使用可能な値は、httpまたはhttpsです。デフォルトはhttpです。

- 「Webアプリケーション・コンテキスト」は、Java EEエージェントに対応するWebアプリケーションの名前です。

4. Java EEデータソースとして管理される作業リポジトリまたはデータ・サーバーを、トポロジ・ナビゲータの「リポジトリ」アコーディオンからこのエージェントのエディタの「データソース」タブにドラッグ・アンド・ドロップします。

5. これらのデータソースの「JNDI名」を指定します。

6. このエージェントがアクセスするソース/ターゲット・データ・サーバーを、トポロジ・ナビゲータの「物理アーキテクチャ」アコーディオンからこのエージェントのエディタの「データソース」タブにドラッグ・アンド・ドロップします。

7. これらのデータソースの「JNDI名」を指定します。

8. 「ファイル」メニューで、「保存」をクリックして物理エージェントを保存します。

論理エージェントを作成するには:

1. 4.2.6項「論理エージェントの作成」の説明に従って、この物理エージェントに対する論理エージェントを作成します。

2. 論理エージェントを適切なコンテキストにマップします。

4.3.2.1.2 Java EEエージェントに対するサーバー・テンプレートの作成

Oracle Data Integratorでは、ランタイム・エージェント用のサーバー・テンプレートの作成に役立つサーバー・テンプレート生成ウィザードが用意されています。

サーバー・テンプレート生成ウィザードを開くには:

1. 物理エージェント・エディタのツールバー・メニューから、「サーバー・テンプレートの生成」を選択します。これによってテンプレート生成ウィザードが開始されます。

2. 「エージェント情報」ステップで、エージェント情報を確認し、必要に応じてデフォルト構成を変更します。
「エージェント情報」には次のパラメータが含まれます。

- 一般
エージェント名: デプロイするエージェントの名前が表示されます。

リストから、エージェントをデプロイするサーバーを選択します。選択できる値は、「Oracle WebLogic」か「IBM WebSphere」です。

- マスター・リポジトリ接続
データソースJNDI名: マスター・リポジトリに接続するためにJava EEエージェントで使用されるデータソースの名前。テンプレートには、このデータソースの定義を含めることができます。デフォルトはjdbc/odiMasterRepositoryです。

- 接続の再試行設定
接続の再試行回数: エージェントによるリポジトリへの接続が切断された場合の再試行回数。ODIリポジトリがOracle RACデータベースに存在する場合、このパラメータをゼロ以外の値に設定すると、高可用性接続再試行機能が有効になります。この機能が有効である場合、1つ以上のOracle RACノードが使用不可になっても、エージェントは中断もなく引き続きセッションを実行できます。

再試行の遅延(ミリ秒): 各接続再試行の間隔(ミリ秒)。

- スーパーバイザ認証
スーパーバイザ・キー: スーパーバイザ権限を持つODIユーザーのログインおよびパスワードが含まれるアプリケーション・サーバー資格証明ストアのキーの名前。このエージェントはこのユーザー資格証明を使用してリポジトリに接続します。

3. 「次へ」をクリックします。

4. 「ライブラリおよびドライバ」ステップで、このエージェントとともにデプロイする外部ライブラリおよびドライバをリストから選択します。ユーザーが追加したライブラリのみがここに表示されます。
ライブラリは、このエージェントに必要なJARファイルまたはZIPファイルとなる点に注意してください。ソースおよびターゲット・データ・サーバーにアクセスするための追加JDBCドライバまたはライブラリをここで選択する必要があります。

ツールバーの対応するボタンを使用して、リスト内のすべてのライブラリまたはドライバ(あるいはその両方)を選択または選択解除できます。

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

6. 「データソース」ステップで、このエージェント・テンプレートに含めるデータソース定義を選択します。ウィザードからはデータソースの選択のみ可能です。これらのデータソースの命名および追加は、物理エージェント・エディタの「データソース」タブで行います。

7. 「次へ」をクリックします。

8. 「テンプレート・ターゲットおよびサマリー」ステップで、サーバー・テンプレートが生成される「ターゲット・テンプレート・パス」を入力します。

9. 「終了」をクリックしてウィザードを閉じ、サーバー・テンプレートを生成します。
「テンプレート生成情報」ダイアログが表示されます。

10. 「OK」をクリックし、ダイアログを閉じます。

生成されたテンプレートは、それぞれの構成ウィザードを使用したWLSまたはWASでのエージェントのデプロイに使用できます。詳細は、Oracle Fusion Middleware Oracle Data Integratorインストレーション・ガイドを参照してください。

資格証明ストアでのスーパーバイザの宣言

テンプレートのデプロイ後、スーパーバイザをWLSまたはWAS資格証明ストアに宣言する必要があります。詳細は、Oracle Fusion Middleware Oracle Data Integratorインストレーション・ガイドを参照してください。

4.3.2.2 エージェントのアプリケーション・サーバーにおけるOracle Data Integratorからのデータソースのデプロイ

トポロジ・ナビゲータから、Java EEエージェントを構成するアプリケーション・サーバー(Oracle WebLogic ServerまたはIBM WebSphere)にデータソースを作成できます。

アプリケーション・サーバーでデータソースをデプロイするには:

1. データソースをデプロイするアプリケーション・サーバー用に構成された物理エージェント・エディタを開きます。

2. 「データソース」タブに移動します。

3. ソース/ターゲット・データ・サーバーを、トポロジ・ナビゲータの「物理アーキテクチャ」ツリーから「データソース」タブにドラッグ・アンド・ドロップします。

4. これらのデータソースの「JNDI名」を指定します。

5. いずれかのデータソースを右クリックし、「サーバーにおけるデータソースのデプロイ」を選択します。

6. 「データソース・デプロイ」ダイアログで、データソースをデプロイするサーバーを選択します。使用可能な値は、WLSまたはWASサーバーです。

7. 「デプロイメント・サーバー詳細」セクションで、次の各フィールドに入力します。

- ホスト: アプリケーション・サーバーのホスト名またはIPアドレス。

- ポート: デプロイメント・マネージャのブートストラップ・ポート。

- ユーザー: サーバーのユーザー名。

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

8. 「データソース・デプロイ」セクションで、データソースをデプロイするサーバーの名前(たとえばodi_server1)を指定します。

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

注意:

この操作で作成されるのは、WebLogic ServerまたはWebSphere Application Serverのデータソース定義のみです。これらのデータソースが機能するために必要なドライバ・ファイルまたはライブラリ・ファイルはインストールされません。Studioクラスパスに追加されたドライバはエージェント・テンプレートに含めることができます。詳細は、4.3.2.1.2項「Java EEエージェントのためのサーバー・テンプレートの作成」を参照してください。

WLSデータソース構成および使用方法

WebLogic ServerでOracle Data Integrator用にデータソースを設定する場合、次の点に注意してください。

- データソースは、接続プール構成で文キャッシュ・サイズパラメータを0に設定して作成する必要があります。文キャッシュはデータ統合のパフォーマンスに若干の影響を及ぼし、一部のJDBCドライバでデータの切捨てなどの予期しない結果を招く可能性があります。

- 接続プーリングをデータソースで使用する場合、プロシージャおよびナレッジ・モジュールでALTER SESSION文を使用しないことをお薦めします。接続でALTER SESSION文が必要な場合は、変更された接続が使用後に接続プールに戻されるため、関連データソースでの接続プーリングを無効化することをお薦めします。

4.3.3 エージェントのロード・バランシング

Oracle Data Integratorでは、物理エージェント間でパラレル・セッション実行のロード・バランシングを実行できます。

各物理エージェントは次で定義されます:

- 作業リポジトリから同時に実行できる最大セッション数
最大セッション数の値は、エージェントが動作するマシンの能力に応じて設定する必要があります。また、Oracle Data Integratorエージェントに対して指定する処理能力に応じて設定することもできます。

- オプションで、セッションの実行を委任できるリンク先物理エージェントの数

エージェントの負荷は、指定時間にこのエージェントの比率(実行中のセッション数 / セッションの最大数)で決定されます。

4.3.3.1 セッションの委任

リンク先エージェントを持つエージェントでセッションが開始されると、Oracle Data Integratorでは負荷のより少ないリンク先エージェントが判別され、このリンク先エージェントにセッションが委任されます。

エージェントは、他のエージェントにすべての着信セッションを委任するのではなく、自身にリンクして一部の着信セッションを実行できます。自身にリンクしていないエージェントは、リンク先エージェントへのセッションの委任のみが可能であり、セッションの実行は不可である点に注意してください。

委任はリンク先エージェントの階層内でカスケードします。エージェントAにエージェントB1およびB2がリンクされており、エージェントB1にエージェントC1がリンクされている場合、エージェントAで開始したセッションはエージェントB2またはC1により実行されます。エージェント・リンクをループさせないようにすることをお薦めします。

ユーザー・パラメータ「新しいロード・バランシングの使用」がはいに設定されている場合、セッション終了ごとにセッションのロード・バランシングも再実行されます。これは、エージェントがセッションを終了した場合、すでに別のエージェントに割り当てられているセッションが再割当される可能性があることを意味します。

4.3.3.2 エージェント使用不可

指定のエージェントについて、実行中のセッション数が最大セッション数に到達した場合、そのエージェントは実行中のセッション数が最大セッション数を下回るまで、着信セッションを「キュー」ステータスにします。

エージェントが(クラッシュしたなどで)使用できず、ユーザー・パラメータ「新しいロード・バランシングの使用」が「はい」に設定されている場合、キュー内のセッションはすべて、セッションを実行しておらずキューにセッションがない別のロード・バランシング済エージェントに再割当されます。詳細は、付録B「ユーザー・パラメータ」を参照してください。

4.3.3.3 ロード・バランシングの設定

ロード・バランシングを設定するには:

1. 物理エージェントのセットを定義し、これらをエージェントの階層にリンクします(詳細は、物理エージェントの作成を参照してください)。

2. トポロジで定義されたエージェントに対応する物理エージェントをすべて開始します。

3. 階層のルート・エージェントで実行を開始します。Oracle Data Integratorにより、リンク先エージェント間で実行のロード・バランシングが行われます。

第III部

メタデータの管理およびリバースエンジニアリング

この部では、Oracle Data Integratorでのメタデータの管理方法とリバースエンジニアリング方法について説明します。

この部の内容は次のとおりです。

- 第5章「モデルの作成およびリバースエンジニアリング」

- 第7章「共通フォーマット・デザイナの使用」

- 第6章「チェンジ・データ・キャプチャの使用」

- 第8章「データ・サービスの使用」

5 モデルの作成およびリバースエンジニアリング

この章では、モデルを作成する方法、作成したモデルをリバースエンジニアリングしてデータストアに移入する方法、モデルのデータストアを手動で作成する方法について説明します。また、パーティション化の使用方法およびモデル内のデータの品質の確認方法についても説明します。

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

- 5.1項「モデルの概要」

- 5.2項「モデルの作成およびリバースエンジニアリング」

- 5.3項「データストアの作成およびリバースエンジニアリング」

- 5.4項「データストアのデータの編集および表示」

- 5.5項「パーティション化の使用」

- 5.6項「モデルのデータ品質のチェック」

5.1 モデルの概要

モデルは、一連のデータストアの記述で、データ・サーバーに格納されている表データ構造のグループに対応しています。モデルは、トポロジに定義されている論理スキーマに基づいています。特定のコンテキストで、論理スキーマは物理スキーマにマップされています。物理スキーマのデータ・スキーマには、物理的なデータ構造が保持されています。このデータ構造には、データストアとして表現される表、ファイル、JMSメッセージ、XMLファイルの要素が格納されます。

モデルとそれらのコンポーネントすべては、リレーショナル・パラダイム(表、列、キーなど)に基づいています。Data Integratorのモデルには、データ構造の記述であるメタデータのみが含まれています。これらのモデルには、実際のデータのコピーは含まれていません。

注意:

頻繁に使用されるテクノロジには、リバース・メソッドとモデル作成メソッドが含まれています。詳細は、Oracle Fusion Middleware Oracle Data Integrator接続性およびナレッジ・モジュール・ガイドを参照してください。

モデルは、モデル・フォルダに編成でき、モデルのデータストアはサブモデルに編成できます。モデル・フォルダとサブモデルの作成方法および編成方法については、18.2項「フォルダを使用したモデルの編成」を参照してください。

5.1.1 データストア

データストアはデータ構造を表現します。データストアは、表、フラット・ファイル、メッセージ・キューまたはOracle Data Integratorでアクセスできる他のデータ構造のいずれかです。

データストアでは、データが表構造で記述されており、データストアは列で構成されます。

データストアはリレーショナル・パラダイムに基づいているため、次の要素をデータストアに関連付けることもできます。

- キー
キーは、リレーショナル・パラダイムで特定の役割がある一連の列です。主キーおよび代替キーは各レコードを一意に識別します。一意でない索引を使用すると最適化されたレコードにアクセスできます。

- 参照
参照は2つのデータストアの間の機能リンクで、リレーショナル・モデルの外部キーに対応しています。たとえば、INVOICEデータストアは顧客番号を介してCUSTOMERデータストアを参照します。

- 条件とフィルタ
条件とフィルタは、データストアに関連付けられているWHEREタイプのSQL式で、データストア内のデータを検証またはフィルタするために使用されます。

5.1.2 データ整合性

モデルには、キー、参照、条件などの制約が含まれていますが、列に対するnull以外のフラグも含まれています。Oracle Data Integratorには、データ・モデルの品質を保証するためのデータ整合性フレームワークが用意されています。

このフレームワークを使用すると、次の操作を実行できます。

- 静的チェック: データ・モデルに含まれているデータの整合性を検証します。この操作は、データ・サーバーには制約が物理的に存在しないが、Data Integratorにのみ定義されている場合に、モデル内のデータの品質を評価するために実行します。

- フロー・チェック: データ・フローを特定のデータストアに統合する前に、その整合性を検証します。データ・フローは、Oracle Data Integratorで定義されている、データ・フローのターゲットであるデータストアの制約と照合してチェックされます。

5.1.3 リバースエンジニアリング

新規モデルは、データストアなしで作成されます。リバースエンジニアリングは、データ構造を保持するデータ・サーバーからメタデータを取得してOracle Data Integratorのモデルに移入するプロセスです。リバースエンジニアリングには2つのタイプがあります。

- 標準リバースエンジニアリング: 標準のJDBCドライバ機能を使用してメタデータを取得します。標準リバースエンジニアリングを使用する場合、一意キーはリバースエンジニアリングされません。

- カスタマイズしたリバースエンジニアリング: 特定のテクノロジに固有のメソッドを使用し、テクノロジ固有のリバース・ナレッジ・モジュール(RKM)を使用して、メタデータを取得します。一般に、標準リバース・エンジニアリング・メソッドよりも多くの情報を取得できるため、テクノロジ固有のRKMが存在する場合は、このメソッドが推奨されます。利用できるRKMのリストについては、『Oracle Fusion Middleware Oracle Data Integrator接続およびナレッジ・モジュール・ガイド』を参照してください。

フラット・ファイル・データストアの場合は、リバースエンジニアリングに対する他のメソッドがあります。これらについては、5.3.2項「ファイル・データストアのリバースエンジニアリング」を参照してください。

Oracle Data Integratorでは、データストアのショートカットを含むモデルをリバースエンジニアリングできます。詳細は、第17章「ショートカットの使用」を参照してください。

5.1.4 チェンジ・データ・キャプチャ

ジャーナル化とも呼ばれるチェンジ・データ・キャプチャ(CDC)を使用すると、データに加えられた変更を捕捉できます。CDCは、Oracle Data Integratorで変更のないデータの転送を回避するために使用します。この機能は、データ同期化やレプリケーションなどで使用できます。

ジャーナル化は、特定のタイプのテクノロジに基づいたモデル、サブモデルまたはデータストアに適用できます。

チェンジ・データ・キャプチャの設定の詳細は、第6章「チェンジ・データ・キャプチャの使用」を参照してください。

5.2 モデルの作成およびリバースエンジニアリング

ODIモデルの主要なコンポーネントについてはすでに説明しましたが、ここではモデルの作成方法とリバースエンジニアリング方法の概要について説明します。

5.2.1 モデルの作成

モデルは、物理スキーマに保持されているデータ構造に対応する一連のデータストアです。

モデルを作成するには:

1. デザイナ・ナビゲータで、「モデル」パネルを展開します。

2. 右クリックして「新規モデル」を選択します。

3. 「定義」タブで、次の各フィールドに値を入力します。

- 名前: ユーザー・インタフェースで使用するモデルの名前。

- テクノロジ: モデルのテクノロジを選択します。

- 論理スキーマ: モデルの基礎となる論理スキーマを選択します。

4. 「リバース」タブに移動し、モデルのリバースエンジニアリングで使用するコンテキストを選択します。
論理スキーマをマップするコンテキストが1つのみの場合は、このコンテキストが自動的に設定されることに注意してください。

5. 「ファイル」メイン・メニューから「保存」を選択します。

モデルは作成されましたが、データストアはまだ格納されていません。

5.2.2 モデルのリバースエンジニアリング

モデルにデータストアを自動的に移入するには、そのモデルに対してリバースエンジニアリングを実行する必要があります。

標準リバースエンジニアリング

標準リバースエンジニアリングでは、データ・サーバーの接続に使用するJDBCドライバの機能を使用して、モデルのメタデータを取得します。

標準リバースエンジニアリングを実行するには:

1. モデルの「リバース」タブで、次の操作を実行します。

- 「標準」を選択します。

- リバースエンジニアリングで使用するコンテキストを選択します。

- リバースエンジニアリングするオブジェクトのタイプを選択します。リバースエンジニアリング・プロセスで考慮されるのは、選択したタイプのオブジェクトのみです。

- 「マスク」フィールドに、リバースエンジニアリングする表のマスクを入力します。マスクによって、リバースするオブジェクトが選択されます。このマスクでは、SQLのLIKE構文を使用します。パーセント(%)記号は、ゼロ個以上の文字を意味し、アンダースコア(_)記号は1つの文字を意味します。

- オプションで、表の別名で削除する文字を指定できます。これらは、別名を導出するために削除する文字です。データストアがすでに存在している場合は、ここで指定した文字が表の別名から削除されないことに注意してください。データストアの更新は表の別名に適用されません。

2. 「選択的リバース」タブで、「選択的リバース」、「新規データストア」、「既存のデータストア」および「リバースするオブジェクト」を選択します。

3. リバースエンジニアリング対象のデータストアのリストが表示されます。リバースエンジニアリングするデータストアは選択した状態のままにします。

4. 「ファイル」メイン・メニューから「保存」を選択します。

5. モデルのツールバー・メニューで、「リバースエンジニアリング」をクリックします。

6. Oracle Data Integratorによって、選択したデータストアに対するリバースエンジニアリング・プロセスが起動されます。進行状況バーには、リバースエンジニアリング・プロセスの進行状況が表示されます。

リバースエンジニアリングされたデータストアが、「モデル」パネルの該当モデル・ノードの下に表示されます。

カスタマイズしたリバースエンジニアリング

カスタマイズしたリバースエンジニアリングでは、リバースエンジニアリング・ナレッジ・モジュール(RKM)を使用して、特定タイプのテクノロジのメタデータを取得し、対応するデータストア定義をデータ・モデルに作成します。

たとえば、OracleテクノロジのRKM Oracleでは、データベース・ディクショナリ表にアクセスして、モデルに作成する表、列、キーなどの定義を取得します。

注意:

RKMはグローバルRKMとしてまたはプロジェクトにインポートされて使用可能になっている必要があります。KMインポートの詳細は、第9章「統合プロジェクトの作成」を参照してください。

RKMを使用してカスタマイズしたリバースエンジニアリングを実行するには:

1. モデルの「リバース」タブで、次の操作を実行します。

- 「カスタマイズ済」を選択します。

- リバースエンジニアリングで使用するコンテキストを選択します。

- リバースエンジニアリングするオブジェクトのタイプを選択します。リバースエンジニアリング・プロセスで考慮されるのは、選択したタイプのオブジェクトのみです。

- 「マスク」に、リバースエンジニアリングする表のマスクを入力します。

- リバースエンジニアリング・プロセスの実行に使用するKMを選択します。通常、このKMの名前はRKM <テクノロジ>.<プロジェクトの名前>です。

- オプションで、表の別名で削除する文字を指定できます。これらは、別名を導出するために削除する文字です。データストアがすでに存在している場合は、ここで指定した文字が表の別名から削除されないことに注意してください。データストアの更新は表の別名に適用されません。

2. モデルのツールバー・メニューで、「リバースエンジニアリング」をクリックし、次に「はい」をクリックして変更内容を検証します。

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

4. 「セッションを開始しました」ウィンドウが表示されます。

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

リバースエンジニアリング・タスクは、オペレータ・ナビゲータで確認できます。リバースエンジニアリング・プロセスが正確に完了すると、リバースエンジニアリングされたデータストアが、「モデル」パネルの該当モデル・ノードの下に表示されます。

5.3 データストアの作成およびリバースエンジニアリング

モデルにデータストアを作成するための推奨方法はリバースエンジニアリングですが、空のモデルにデータストアを手動で定義することもできます。これは、フラット・ファイル・データストアを作成する際の推奨方法です。

5.3.1 データストアの作成

データストアを作成するには:

1. デザイナ・ナビゲータの「モデル」ツリーで、モデルまたはサブモデルを選択します。

2. 右クリックして「新規データストア」を選択します。

3. 「定義」タブで、次の各フィールドに値を入力します。

- データストアの名前: この名前は、ツリー内に表示され、プロジェクトからデータストアを参照する際に使用されます。

注意:

データストア名には、ODIの予約名(JRN_FLAG、JRN_SUBSCRIBER、JRN_DATEなど)は使用しないでください。これらの名前を使用すると、エラー表のようなODIの中間的な表で、列名重複のSQLエラーが発生する可能性があります。

- リソース名: 格納先のデータ・サーバーによって認識される形式でのオブジェクトの名前。これには、表、ファイル、JMSキューなどの名前を使用できます。

- 別名: これは、データストアの列名の接頭辞として式で使用するデフォルトの別名です。

4. データストアがフラット・ファイル(デリミタ付きまたは固定)を表現する場合は、「ファイル」タブで次の各フィールドに値を入力します。

- ファイル形式: フラット・ファイルのタイプである固定またはデリミタ付きを選択します。

- ヘッダー: フラット・ファイルのヘッダー行数。

- 「レコード・セパレータ」および「フィールド・セパレータ」では、ファイル内の複数のレコード(行)および1つのレコード内の複数のフィールドを区切るために使用する文字を定義します。
レコード・セパレータ: ファイル内の複数の行(レコード)を区切る1つまたは複数の文字。

- MS-DOS: DOSの改行記号

- UNIX: UNIXの改行記号

- その他: 文字または16進コードとして入力できる任意のテキスト

フィールド・セパレータ: レコード内の各フィールドを区切る1つまたは複数の文字。

- タブ

- スペース

- その他: 文字または16進コードとして入力できる任意のテキスト

5. 「ファイル」メイン・メニューから「保存」を選択します。

データストアが作成されました。このデータストアがファイル・データストアである場合は、データストアに列を作成するために、ファイル・データストアのリバースエンジニアリングの項を参照してください。すべてのデータストアの列を手動で編集することもできます。詳細は、データストア列の追加および削除を参照してください。

5.3.2 ファイル・データストアのリバースエンジニアリング

Oracle Data Integratorには、フラット・ファイルをリバースエンジニアリングするための特定の方法があります。次に、フラット・ファイルをリバースするための方法を説明します。

5.3.2.1 固定ファイルのリバースエンジニアリング

固定ファイルは、固定列の境界とそのパラメータを定義できるウィザードを使用してリバースエンジニアリングできます。

1. 固定形式のファイル・データストアの「列」タブに移動します。

2. 「リバース」ボタンをクリックします。ウィンドウが開き、ファイルの最初のレコードが表示されます。

3. ルーラー(ファイルの内容の上部)をクリックし、列を区切るマーカーを作成します。マーカーを削除する場合は、ルーラーを右クリックします。

4. 列は、事前に生成された名前(C1、C2など)で作成されます。列名を編集するには、列ヘッダー行(ルーラーの下)をクリックします。

5. プロパティ・パネル(右側)で、選択した列のパラメータを編集できます。

6. 少なくとも各列の「列名」、「データ型」および「長さ」を設定する必要があります。ファイル・データストアの列名にスペースを含めることはできないことに注意してください。

7. 列定義が完了してウィザードを閉じる場合は、「OK」をクリックします。

8. 「ファイル」メイン・メニューから「保存」を選択します。

5.3.2.2 デリミタ付きファイルのリバースエンジニアリング

デリミタ付きファイルは、組込みのJDBCを使用してリバースエンジニアリングできます。組込みのJDBCは、ファイルを分析して列を検出し、ファイル・ヘッダーから列名を読み取ります。

1. デリミタ付き形式のファイル・データストアの「列」タブに移動します。

2. 「リバース」ボタンをクリックします。

3. Oracle Data Integratorによって、ファイルの内容に応じた列のリストが作成されます。列のタイプと長さはデフォルト値に設定されます。列名は、事前生成された名前(C1、C2など)、またはファイルに対して宣言した最初のヘッダー行から取得した名前になります。

4. 各列の「列名」、「データ型」および「長さ」を変更する必要があるかどうかを確認します。ファイル・データストアの列名にスペースを含めることはできないことに注意してください。

5. 「ファイル」メイン・メニューから「保存」を選択します。

5.3.2.3 COBOLファイルのリバースエンジニアリング

COBOL固定ファイル構造は通常、コピーブック・ファイルに記述されます。Oracle Data Integratorでは、コピーブック・ファイル構造をデータストア構造にリバースエンジニアリングできます。

1. 固定形式のファイル・データストアの「列」タブに移動します。

2. 「COBOLコピーブックのリバース」ボタンをクリックします。

3. 次の各フィールドに値を入力します。

- ファイル: コピーブック・ファイルの場所。

- キャラクタ・セット: コピーブック・ファイルのキャラクタ・セット。

- 説明書式(EBCDICまたはASCII): コピーブック・ファイル形式。

- データ形式(EBCDICまたはASCII): データ・ファイル形式。

4. 「OK」をクリックします。コピーブックに記述されている列が、リバースエンジニアリングされて列リストに表示されます。

5. 「ファイル」メイン・メニューから「保存」を選択します。

5.3.3 データストア列の追加および削除

データストアに列を追加するには:

1. データストアの「列」タブで、ツールバー・メニューの「列の追加」をクリックします。

2. 空の行が表示されます。新規列の情報を入力します。少なくとも「名前」、「データ型」および「長さ」の各フィールドに値を入力する必要があります。

3. データストアに追加する列ごとにステップ1とステップ2を繰り返します。

4. 「ファイル」メイン・メニューから「保存」を選択します。

データストアから列を削除するには:

1. データストアの「列」タブで、削除する列を選択します。

2. 「列の削除」ボタンをクリックします。リストから列が削除されます。

5.3.4 制約とフィルタの作成および削除

Oracle Data Integratorでは、キー、参照、条件、必須列などのデータ・モデルに対する制約が管理されます。これらの制約に基づいてデータ・モデルの品質を保証するためのデータ整合性フレームワークが含まれています。

フィルタは制約ではありませんが、条件と同じように定義します。フィルタは、データストアに対してデータ品質ルールを実施する際には使用しませんが、ソースとして使用されているデータストアを自動的にフィルタ処理する際に使用します。

5.3.4.1 キー

データストアのキーを作成するには:

1. デザイナ・ナビゲータで、「モデル」ツリー、モデルの順に展開し、キーを追加するデータストアを展開します。

2. 「制約」ノードを選択し、右クリックして「新規キー」を選択します。

3. 制約の「名前」を入力し、「キーまたは索引タイプ」を選択します。「主キー」および「代替キー」を選択して、インタフェースの更新キーとして使用できます。一意でない索引は、主にパフォーマンス上の理由で使用します。

4. 「列」タブで、このキーに属する列のリストを選択します。

5. 「制御」タブで、この制約が静的またはフロー・チェック時にデフォルトで選択されるようにするかどうかを選択します。

6. 「チェック」ボタンをクリックすると、この制約に適合しないレコード数を取得できます。

7. 「ファイル」メイン・メニューから「保存」を選択します。

5.3.4.2 参照

2つのデータストア間の参照を作成するには:

1. デザイナ・ナビゲータで、「モデル」ツリー、モデルの順に展開し、参照を追加するデータストアの1つを展開します。

2. 「制約」ノードを選択し、右クリックして「新規参照」を選択します。

3. 制約の「名前」を入力し、参照の「タイプ」を選択します。「ユーザー参照」では、2つのデータストアを列の等価性に基づいてリンクします。「複合ユーザー参照」では、任意の式を使用して2つのデータストアをリンクします。「データベース参照」は、データベース・エンジンからリバースエンジニアリングされた列の等価性に基づいた参照です。

4. モデルに存在するデータストアを参照する場合は、現在のデータストアにリンクする「モデル」および「表」を選択します。

5. モデルに存在しない表をリンクする場合は、「モデル」および「表」の各フィールドを未定義のままにし、「カタログ」、「スキーマ」および「表」の名前を設定してデータストアを識別します。

6. ユーザー参照またはデータベース参照を定義している場合は、「列」タブで、リンクする2つのデータストアの一致している列を定義します。

7. 複合ユーザー参照を定義している場合は、「式」タブで、リンクする2つのデータストアの列を関連付ける式を入力します。

8. 「制御」タブで、この制約が静的またはフロー・チェック時にデフォルトで選択されるようにするかどうかを選択します。

9. 「チェック」ボタンをクリックすると、この制約に適合するレコード数、または適合しないレコード数を取得できます。

10. 「ファイル」メイン・メニューから「保存」を選択します。

5.3.4.3 条件

データストアの条件を作成するには:

1. デザイナ・ナビゲータで、「モデル」ツリー、モデルの順に展開し、条件を追加するデータストアの1つを展開します。

2. 「制約」ノードを選択し、右クリックして「新規条件」を選択します。

3. 制約の「名前」を入力し、条件の「タイプ」を選択します。「Oracle Data Integrator条件」は、モデルにのみ存在する条件で、データベースには存在しません。「データベース条件」は、データベースに定義されている条件で、リバースエンジニアリングされています。

4. 「条件」フィールドで、条件を実装する式を入力します。この式は、有効なレコードが適合するSQL WHERE式です。

5. 「メッセージ」フィールドに、この制約に対するエラー・メッセージを入力します。

6. 「制御」タブで、この制約が静的またはフロー・チェック時にデフォルトで選択されるようにするかどうかを選択します。

7. 「チェック」ボタンをクリックすると、この制約に適合しないレコード数を取得できます。

8. 「ファイル」メイン・メニューから「保存」を選択します。

5.3.4.4 必須列

データストアに必須列を定義するには:

1. デザイナ・ナビゲータで、「モデル」ツリー、データストアを含むモデルの順に展開します。

2. 必須として設定する必要がある列を含むデータストアをダブルクリックします。データストア・エディタが表示されます。

3. 「列」タブで、必須に設定する列ごとに「NOT NULL」を選択します。

4. 「ファイル」メイン・メニューから「保存」を選択します。

5.3.4.5 フィルタ

データストアにフィルタを追加するには:

1. デザイナ・ナビゲータで、「モデル」ツリー、モデルの順に展開し、フィルタを追加するデータストアの1つを展開します。

2. 「フィルタ」ノードを選択し、右クリックして「新規条件」を選択します。

3. フィルタの「名前」を入力します。

4. 「条件」フィールドで、フィルタを実装する式を入力します。この式は、ソース・レコードのフィルタ処理に使用するSQL WHERE式です。

5. この表のデータを静的制御でチェックする前にフィルタ処理する場合は、「制御」タブで、「静的制御の場合はフィルタ・アクティブ」を選択します。

6. 「ファイル」メイン・メニューから「保存」を選択します。

5.4 データストアのデータの編集および表示

データストアのデータを表示するには:

1. デザイナ・ナビゲータで、モデルからデータストアを選択します。

2. 右クリックして「データの表示」を選択します。

編集不可のグリッド内にデータが表示されます。

データストアのデータを編集するには:

1. デザイナ・ナビゲータで、モデルからデータストアを選択します。

2. 右クリックして「データ」を選択します。

データ・エディタの編集可能なグリッド内にデータが表示されます。「リフレッシュ」ボタンを使用すると、データストアのデータを戻す問合せを編集して再度実行できます。この方法を使用すると、データをフィルタ処理したり、データストアに対して任意の問合せを実行することができます。

データストアのデータを編集できるのは、使用する接続とデータ・サーバーのユーザー権限で許可され、かつデータストア構造によってデータストアの各行(PKなど)が識別可能である場合です。

注意:

表示されるデータは、現在の作業コンテキストで、モデルの論理スキーマに対応する物理スキーマに格納されているデータです。

5.5 パーティション化の使用

Oracle Data Integratorでは、パーティション表のデータを統合インタフェースのソースまたはターゲットとして使用して処理する場合、データベース定義のパーティションを使用できます。これらのパーティションは、表に対応するデータストアに、リバースエンジニアリング・プロセスを使用して、または手動で作成されます。たとえば、Oracleテクノロジでは、パーティションはRKM Oracleを使用してリバースエンジニアリングされます。

サポートされるパーティション化メソッドは、データストアのテクノロジによって異なります。たとえば、Oracleテクノロジでは、レンジ、ハッシュ、リストのパーティション化メソッドがサポートされています。

データストアで定義されたパーティションは、そのデータストアをインタフェースのソースまたはターゲットとして使用するときに選択できます。詳細は、第11章「統合インタフェースの使用」を参照してください。

共通フォーマット・デザイナを使用する場合は、「DDLの生成」操作の実行時にパーティションを作成することもできます。

5.5.1 モデル・データストアのパーティションおよびサブパーティションの手動による定義

パーティション情報は、データストア構造とともにリバースエンジニアリングすることも、手動で定義することもできます。

注意:

標準リバースエンジニアリングでは、パーティションのリバースエンジニアリングがサポートされていません。パーティションおよびサブパーティションをリバースエンジニアリングするには、カスタマイズしたリバースエンジニアリングを使用する必要があります。

データストアのパーティションおよびサブパーティションを手動で定義するには:

1. 「モデル」アコーディオンで、パーティションまたはサブパーティションを定義するデータストアをダブルクリックします。データストア・エディタが開きます。

2. 「パーティション」タブで、パーティションおよびサブパーティションを定義するために次の詳細を入力します。

- パーティション基準
パーティション化メソッドを選択します。このリストには、モデルが依存するテクノロジでサポートされているパーティション化メソッドが表示されます。

- サブパーティション基準
パーティションに加えてサブパーティションも定義する場合は、サブパーティション化メソッドを選択します。このリストには、モデルが依存するテクノロジでサポートされているパーティション化メソッドが表示されます。

3. 「パーティションの追加」をクリックします。

4. 「名前」フィールドに、パーティションの名前を入力します(例: FY08)。

5. 「説明」フィールドに、パーティションの説明を入力します(例: Operations for Fiscal Year 08)。

6. 次を追加するには:

- パーティション: ステップ3から5を繰り返します。

- 選択したパーティションのサブパーティション: 「サブパーティションの追加」をクリックし、ステップ4と5を繰り返します。

7. 「ファイル」メニューから、「保存」を選択します。

5.6 モデルのデータ品質のチェック

データ品質管理は、情報システムのアプリケーションでデータ全体の一貫性を保証するために重要です。

アプリケーション・データは、情報システムによって課せられる制約および宣言的ルールに対して有効でない場合があります。たとえば、顧客が指定されていない注文や製品が指定されていない注文明細などが検出される可能性があります。さらに、そのような不正なデータが統合フローを介して伝播される場合があります。

5.6.1 データ整合性の概要

Oracle Data Integratorには、これらの制約違反を検出してリサイクルまたはレポート目的で格納するための作業環境が用意されています。

主なタイプとして、静的制御とフロー制御があります。この2つのタイプの相違について説明します。

静的制御

静的制御は、アプリケーション・データの整合性を検証するために使用するルールが存在することを意味します。これらのルール(制約とも呼ばれます)の一部は、データ・サーバーに(主キー、参照制約などを使用して)すでに実装されている可能性があります。

Oracle Data Integratorでは、追加の制約を定義することでデータの検証を調整できます。追加の制約をサーバーに直接実装する必要はありません。この手順は、既存(静的)データのチェックを直接実行できるため、静的制御と呼ばれます。アクティブなデータベース制約(「制御」タブで「データベースで定義済」と「アクティブ」が選択された)は、すでにデータベースによって制御されているため、Oracle Data Integratorからの追加の制御は不要です。

フロー制御

変換プロセスおよび統合プロセスに対応する情報システムでは、通常、独自の宣言的ルールが実装されています。フロー制御機能は、データを対応する情報システムにロードする前に、それらの制約に基づいてアプリケーションの着信データを検証するために使用します。フロー制御の設定については、第11章「統合インタフェースの使用」を参照してください。

5.6.2 制約のチェック

Oracle Data Integratorでの制約の作成時に、その制約に違反する行数を取得できます。同期制御と呼ばれるこのアクションは、特定の制約エディタの「制御」タブで「チェック」ボタンをクリックして実行します。

同期制御の結果は永続的ではありません。このタイプの制御は、制約定義の有効性をすばやく評価するために使用します。

5.6.3 モデル、サブモデルまたはデータストアに対する静的チェックの実行

モデル、サブモデルまたはデータストアに対して静的チェックを実行するには:

1. デザイナ・ナビゲータの「モデル」ツリーで、チェックするモデルを選択します。

2. そのモデルをダブルクリックし、編集します。

3. モデル・エディタの「制御」タブで、静的チェックで使用するチェック・ナレッジ・モジュール(CKM)を選択します。

4. 「ファイル」メニューから「すべて保存」を選択します。

5. デザイナ・ナビゲータの「モデル」ツリーで、チェックするモデル、サブモデルまたはデータストアを右クリックし、「制御」→「チェック」の順に選択します。

6. 「実行」ウィンドウで、次の実行パラメータを選択します。

1. チェックが必要なデータの「コンテキスト」を選択します。

2. チェック・タスクを実行する「論理エージェント」を選択します。

3. エラーが検出された行をチェック済表から削除する場合は、「チェック済表からのエラーの削除」オプションを選択します。

実行パラメータの詳細は、表21-1を参照してください。

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

8. 「セッションを開始しました」ウィンドウが表示されます。

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

チェック・タスクは、オペレータ・ナビゲータで確認できます。制御プロセスが正確に完了すると、チェック済のデータストアごとにエラーのあるレコードを確認できます。

5.6.4 エラーのあるレコードの確認

データストアのエラーを表示するには:

1. デザイナ・ナビゲータで、モデルからデータストアを選択します。

2. 右クリックして「制御」→「エラー」の順に選択します。

そのデータストアで検出されたエラー行が、グリッドに表示されます。

6 チェンジ・データ・キャプチャの使用

この章では、Oracle Data Integratorのチェンジ・データ・キャプチャ機能を使用してデータに加えられた変更を検出し、統合フローでこれらの変更のみを処理する方法について説明します。

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

- 6.1項「チェンジ・データ・キャプチャの概要」

- 6.2項「ジャーナル化の設定」

- 6.3項「チェンジ・データの使用」

6.1 チェンジ・データ・キャプチャの概要

チェンジ・データ・キャプチャ(CDC)を使用すると、Oracle Data Integratorで、他のアプリケーションに起因するソース・データの変更を追跡できます。CDCによって、統合インタフェースの実行時に、変更されていないデータをフロー内で処理せずに済みます。

ソース・データ・フローを変更されたデータのみに限定することは、データ同期やレプリケーションなどの多くの状況で有用です。この作業は、統合用のイベント指向アーキテクチャを設定する場合に不可欠です。このようなアーキテクチャでは、ビジネス・プロセスの実行時に、アプリケーションによってデータに変更が加えられます(顧客の削除や新規購買注文など)。これらの変更は、Oracle Data Integratorによって取得され、情報システム全体に伝播されるイベントに変換されます。

チェンジ・データ・キャプチャは、モデルのジャーナル化によって実行されます。モデルのジャーナル化とは、そのモデルのデータストアのレコードに追加された変更(挿入、更新および削除)を取得するインフラストラクチャを設定することです。

Oracle Data Integratorでは、次の2つのジャーナル化モードがサポートされています。

- 簡易ジャーナル化: モデルの個別のデータストアの変更を追跡します。

- 一貫性セット・ジャーナル化: モデルのデータストア間の参照整合性を考慮して、そのモデルのデータストアのグループに対する変更を追跡します。このモードでジャーナル化されるデータストアのグループは、一貫性セットと呼ばれます。

6.1.1 ジャーナル化コンポーネント

ジャーナル化コンポーネントは次のとおりです。

- ジャーナル: 変更が記録される場所。ジャーナルには、変更されたレコードへの参照と、その変更のタイプ(挿入、更新、削除)のみが含まれます。

- 取得プロセス: ジャーナル化でソース・データストアの変更を取得するには、データ表にトリガーを作成するか、データ・サーバーのログ・ファイルからログ・データを取得するデータベース固有のプログラムを使用します。使用するテクノロジで使用可能な取得プロセスの詳細は、Oracle Fusion Middleware Oracle Data Integrator接続性およびナレッジ・モジュール・ガイドを参照してください。

- サブスクライバ: CDCでは、パブリッシュ/サブスクライブ・モデルを使用します。サブスクライバは、データストアまたは一貫性セットで追跡される変更を使用するエンティティ(アプリケーション、統合プロセスなど)です。これらのエンティティは、データストアまたは一貫性セットの変更を追跡するモデルのCDCをサブスクライブします。変更が取得されるのは、変更に対して少なくとも1つのサブスクライバが存在する場合のみです。取得された変更をすべてのサブスクライバが使用すると、それらの変更はジャーナルから破棄されます。

- ジャーナル化ビュー: 取得された変更と変更データへのアクセスを提供します。これらのビューは、ユーザーが取得された変更を表示する場合と、統合プロセスが変更データを取得する場合に使用されます。

これらのコンポーネントは、ジャーナル化インフラストラクチャに実装されます。

6.1.2 簡易ジャーナル化と一貫性セット・ジャーナル化

簡易ジャーナル化では、1つ以上のデータストアをジャーナル化できます。ジャーナル化された各データストアは、変更の取得時に個別に処理されます。

この方法には、次の例に示すように制限があります。たとえば、ORDERデータストアとORDER_LINEデータストアの変更を処理する必要があるとします(このとき、参照整合性制約として、ORDER_LINEレコードは必ず関連するORDERレコードを保持する必要があります)。ORDER_LINEへの挿入が取得された場合、ORDER内で関連する新規レコードも取得されているかどうかは保証されません。関連するORDERレコードなしでORDER_LINEレコードを処理すると、統合プロセスで参照制約違反が発生する可能性があります。

一貫性セット・ジャーナル化では、ORDER_LINE(またはORDER)の変更が取得されたときに、関連するORDER(またはORDER_LINE)の変更も取得されていることが保証されます。一貫性セット・ジャーナル化では、取得された変更の一貫性が保証されます。一貫性が保証された使用可能な変更のセットは、一貫性ウィンドウと呼ばれます。このウィンドウ内の各変更は、パッケージ内で統合インタフェースを設計および順序付けして、正しい順序で(ORDER、ORDER_LINEの順に)処理する必要があります。

一貫性セット・ジャーナル化は強力な方法ですが、設定も複雑になります。この方法は、データ変更の取得時に参照整合性制約を保証する必要がある場合に使用してください。パフォーマンス上の理由から、多数のサブスクライバが必要な場合にも、一貫性セット・ジャーナル化を使用することをお薦めします。

一貫性セット・ジャーナル化と簡易ジャーナル化の両方を使用してモデル(またはモデル内のデータストア)をジャーナル化することはできません。

6.2 ジャーナル化の設定

この項では、ジャーナル化インフラストラクチャを設定して開始し、適切に稼働していることを確認する方法について説明します。このインフラストラクチャのコンポーネントについても詳しく説明します。

6.2.1 ジャーナル化の設定および開始

Oracle Data Integratorデータ・モデルにCDCを設定するための基本的な手順は、次のとおりです:

- データ・モデルへのCDCパラメータの設定

- CDCへのデータストアの追加

- 一貫性セット・ジャーナル化の場合、データストアの順序の設定

- サブスクライバの追加

- ジャーナルの開始

CDCパラメータの設定

CDCパラメータの設定は、データ・モデルに対して実行します。この設定では、モデルに使用するジャーナル化モードおよびジャーナル化ナレッジ・モジュールを選択または変更します。

CDCパラメータを設定するには:

1. デザイナ・ナビゲータの「モデル」ツリーで、ジャーナル化するモデルを選択します。

2. そのモデルをダブルクリックし、編集します。

3. 「ジャーナル化」タブで、使用するジャーナル化モード(「一貫性セット」または「簡易」)を選択します。

4. このモデルに使用するジャーナル化ナレッジ・モジュール(JKM)を選択します。リストに表示されるのは、データ・モデルのテクノロジとジャーナル化モードに適合し、事前に少なくとも1つのプロジェクトにインポートされているナレッジ・モジュールのみです。

5. このKMのオプションを設定します。このKMとそのオプションの詳細は、Oracle Fusion Middleware Oracle Data Integrator接続性およびナレッジ・モジュール・ガイドを参照してください。

6. 「ファイル」メニューから「すべて保存」を選択します。

注意:

モデルがすでにジャーナル化されている場合は、データ・モデルのジャーナル化パラメータを変更する前に、既存の構成によるジャーナル化を停止することをお薦めします。

CDCに対するデータストアの追加または削除:

ジャーナル化対象モデル内のジャーナル化するデータストアにはフラグを指定する必要があります。データストア・フラグの変更は、次回ジャーナルが開始(再開)されたときに反映されます。モデルまたはサブモデルにフラグを指定すると、そのモデルまたはサブモデルに含まれているすべてのデータストアにフラグが指定されます。

CDCに対してデータストアを追加または削除するには:

1. デザイナ・ナビゲータの「モデル」ツリーで、CDCに対して追加または削除するモデル、サブモデルまたはデータストアを右クリックします。

2. 選択したデータストア、または選択したモデルまたはサブモデルのすべてのデータストアをCDCに追加する場合は、「チェンジ・データ・キャプチャ」→「CDCに追加」の順に選択し、選択したデータストア、または選択したモデルまたはサブモデルのすべてのデータストアをCDCから削除する場合は、「チェンジ・データ・キャプチャ」→「CDCから削除」の順に選択します。

CDCに追加されたデータストアにマーカー・アイコンが表示されます。ジャーナル・アイコンは小さい時計の形で表されます。アイコンの色は黄色で、ジャーナル・インフラストラクチャがまだ設定されていないことを示します。

注意:

ジャーナル作成フェーズの後でもデータストアをCDCに追加できます。この場合は、ジャーナルを再開始する必要があります。

ジャーナルを実行しているデータストアを簡易モードのCDCから削除する場合は、その個別のデータストアに対するジャーナルを停止する必要があります。一貫性セット・モードのCDCからデータストアを削除する場合は、モデルに対するジャーナルを再開する必要があります(他のデータストアのジャーナル化情報は維持されます)。

データストアの順序の設定(一貫性セット・ジャーナル化のみ):

データストアの順序を調整する必要があるのは、一貫性セット・ジャーナル化を使用する場合のみです。一貫性セットのデータストアは、変更データの使用時に参照整合性を維持する順序に調整する必要があります。たとえば、ORDER表にORDER_LINEデータストアからインポートされた参照があり(つまり、ORDER_LINEにはORDERを参照する外部キー制約が含まれます)、ORDERとORDER_LINEの両方がCDCに追加されている場合、ORDERデータストアはORDER_LINEより前の順序に設定する必要があります。PRODUCTデータストアにORDERとORDER_LINEの両方からインポートされた参照がある場合(つまり、ORDERとORDER_LINEの両方に、PRODUCT表に対する外部キー制約が含まれます)、その順序はさらに繰り下がります。

データストアの順序を設定するには:

1. デザイナ・ナビゲータの「モデル」ツリーで、一貫性セット・モードでジャーナル化するモデルを選択します。

2. そのモデルをダブルクリックし、編集します。

3. 「ジャーナル化表」タブに移動します。

4. データストアが現在特定の順序に設定されていない場合は、「再編成」ボタンをクリックします。この機能によって、モデルで定義された外部キーに基づいて、ジャーナル化するデータストアの順序が推奨されます。推奨された順序を確認し、必要に応じてデータストアの順序を編集してください。

5. リストからデータストアを選択し、「上」および「下」ボタンを使用してリスト内を移動します。データストアの「順序」の値を直接編集することもできます。

6. データストアの順序が正しく設定されるまで前のステップを繰り返します。

7. 「ファイル」メニューから「すべて保存」を選択します。

注意:

データストアの順序の変更は、次回ジャーナルが開始(再開)されたときに反映されます。

既存のシナリオでこのCDCセットからの変更を使用している場合は、CDCセットの新規編成を反映するようにシナリオを再生成する必要があります。

サブスクライバの追加または削除:

各サブスクライバは、簡易ジャーナル化の個別データストアまたは一貫性セット・ジャーナル化のモデルで発生する変更を個別のスレッドで使用します。サブスクライバの追加または削除は、各サブスクライバのために変更を捕捉できるように、CDCインフラストラクチャに登録されます。

サブスクライバを追加する手順:

1. デザイナ・ナビゲータの「モデル」ツリーで、一貫性セット・ジャーナル化を使用している場合はジャーナル化対象のデータ・モデルを選択し、簡易ジャーナル化を使用している場合は、データ・モデルまたは個別のデータストアを選択します。

2. 右クリックして「チェンジ・データ・キャプチャ」→「サブスクライバ」→「サブスクライブ」の順に選択します。サブスクライバを選択するウィンドウが表示されます。

3. サブスクライバの名前を入力し、「サブスクライバの追加」ボタンをクリックします。追加するサブスクライバごとにこの操作を繰り返します。

注意:

サブスクライバ名に一重引用符を含めることはできません。

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

5. 「実行」ウィンドウで、次の実行パラメータを選択します。

- サブスクライバを登録する必要があるコンテキストを選択します。

- ジャーナル化タスクを実行する論理エージェントを選択します。

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

7. 「セッションを開始しました」ウィンドウが表示されます。

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

ジャーナル化タスクは、オペレータ・ナビゲータで確認できます。

サブスクライバを削除する手順もほぼ同じです。「チェンジ・データ・キャプチャ」→「サブスクライバ」の順に選択し、かわりに「サブスクライブ解除」オプションを選択します。

ジャーナルの開始後もサブスクライバを追加できます。ジャーナルの開始後に追加されたサブスクライバは、それらがサブスクライバ・リストに追加された後に発生した変更のみを取得します。

ジャーナルの開始/削除:

ジャーナルを開始するとCDCインフラストラクチャ(まだ存在していない場合)が作成されます。また、ジャーナル化対象データストアの追加、削除および順序変更が検証されます。

ジャーナルを削除すると、ジャーナル化インフラストラクチャ全体が削除されます。

注意:

ジャーナルを削除すると、取得されたすべての変更とともにインフラストラクチャが削除されます。簡易ジャーナル化の場合は、さらにそのジャーナルを開始すると、ジャーナルの内容が削除されます。一貫性セットのJKMでは、データを失わずにジャーナルを再開することがサポートされています。

ジャーナルを開始または削除するには:

1. デザイナ・ナビゲータの「モデル」ツリーで、一貫性セット・ジャーナル化を使用している場合はジャーナル化対象のデータ・モデルを選択し、簡易ジャーナル化を使用している場合は、データ・モデルまたは個別のデータストアを選択します。

2. 右クリックして「チェンジ・データ・キャプチャ」→「ジャーナルの開始」の順に選択するか(ジャーナルを開始する場合)、「チェンジ・データ・キャプチャ」→「ジャーナルの削除」の順に選択します(ジャーナルを停止する場合)。

3. 「実行」ウィンドウで、次の実行パラメータを選択します。

- ジャーナルを開始または削除する必要のあるコンテキストを選択します。

- ジャーナル化タスクを実行する論理エージェントを選択します。

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

5. 「セッションを開始しました」ウィンドウが表示されます。

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

ジャーナルを開始または削除するセッションが開始されます。ジャーナル化タスクは、オペレータ・ナビゲータで確認できます。

ジャーナル化設定の自動化:

ジャーナル化インフラストラクチャは、ジャーナル化KMによって物理レベルで実装されます。したがって、データ・モデルでジャーナル化が必要なコンテキストごとに、「サブスクライバの追加」および「ジャーナルの開始」操作を実行する必要があります。これらの操作は、Oracle Data Integratorパッケージを使用して自動化できます。複数のコンテキストにわたってジャーナル化インフラストラクチャをデプロイする場合は、操作を自動化することをお薦めします。

たとえば、開発者は開発環境のコンテキストでCDCを手動構成します。開発フェーズが完了すると、開発者はCDCインフラストラクチャを自動化するパッケージを提供します。CDCは、このパッケージを使用して、テスト環境のコンテキストに自動的にデプロイされます。同じパッケージを使用して本番環境のコンテキストにもCDCをデプロイします。

このようなパッケージの設計の概要を次に示します。パッケージの作成の詳細は、第10章「パッケージの使用」を参照してください。

CDC構成を自動化するには:

1. 新規パッケージを作成します。

2. ジャーナル化するモデルまたはデータストアを「モデル」アコーディオンからパッケージの「ダイアグラム」タブにドラッグ・アンド・ドロップします。新規パッケージのステップが表示されます。

3. パッケージ・ダイアグラムのステップ・アイコンをダブルクリックします。このステップのプロパティ・インスペクタが開きます。

4. 「タイプ」リストで、「ジャーナル化モデル」または「ジャーナル化データストア」を選択します。

5. 「開始」ボックスを選択してジャーナルを開始します。

6. 「サブスクライバの追加」ボックスを選択し、「サブスクライバ」グループにサブスクライバのリストを入力します。

7. サブスクライバ・フィールドに最初のサブスクライバを入力して「追加」ボタンをクリックし、「サブスクライバ」リストに追加します。すべてのサブスクライバに対してこの操作を繰り返します。

8. 「ファイル」メニューから、「保存」を選択します。

このパッケージがコンテキスト内で実行されると、モデル構成に従ってジャーナルが開始され、指定したサブスクライバがこのコンテキストに作成されます。

サブスクライバとジャーナル管理は、異なるステップおよびパッケージに分割できます。サブスクライバの削除とジャーナルの停止も、同じ方法で自動化できます。

6.2.2 ジャーナル化インフラストラクチャの詳細

ジャーナルが開始されると、ジャーナル化インフラストラクチャが次の場所でデプロイまたは更新されます(このインフラストラクチャがまだインストールされていない場合)。

- ジャーナル化ナレッジ・モジュールでトリガーを作成する場合、それらのトリガーは、ジャーナル化対象の表を保持するOracle Data Integratorの物理スキーマに対応する作業スキーマの表にインストールされます。ジャーナル化トリガーの名前の先頭には、物理スキーマの「ジャーナル化要素接頭辞」で定義された接頭辞が付きます。この接頭辞のデフォルト値は、T$です。データベース固有の取得プロセスの詳細は、Oracle Fusion Middleware Oracle Data Integrator接続性およびナレッジ・モジュール・ガイドを参照してください。

- データ・サーバーのCDC共通インフラストラクチャは、そのデータ・サーバーのデフォルトとしてフラグが指定されたOracle Data Integratorの物理スキーマに対応する作業スキーマにインストールされます。この共通インフラストラクチャには、データ・サーバーでジャーナル化されるすべてのスキーマのサブスクライバや一貫性セットなどに関する情報が含まれます。この共通インフラストラクチャは、接頭辞にSNP_CDC_という名前が付いた表で構成されます。

- ジャーナル表とジャーナル化ビューは、ジャーナル化対象の表を保持するOracle Data Integratorの物理スキーマに対応する作業スキーマにインストールされます。ジャーナル表とジャーナル化ビューの名前の先頭には、物理スキーマの「ジャーナル化要素接頭辞」で定義された接頭辞が付きます。デフォルト値は、ジャーナル表ではJ$で、ジャーナル化ビューではJV$です。

ジャーナル化インフラストラクチャのすべてのコンポーネント(トリガーを除く、統合表、エラー表、ロード表などのすべてのData Integrator一時オブジェクトなど)は、データ・サーバーのOracle Data Integratorの物理スキーマに対応する作業スキーマにインストールされます。これらの作業スキーマは、アプリケーション・データを格納するスキーマ(データ・スキーマ)とは別に維持する必要があります。

重要:

ジャーナル化トリガーは、ジャーナル化対象データと同じスキーマに必要に応じてインストールされる唯一のジャーナル化用コンポーネントです。サード・パーティのソフトウェア・パッケージに含まれる表にトリガーを作成するには、その前に、この操作がソフトウェア規約やメンテナンス契約に違反しないことを確認してください。また、ソフトウェア・パッケージの一般的な動作を妨げることなく、トリガーをインストールして実行することが技術的に可能であることも確認してください。

6.2.3 ジャーナル化ステータス

モデルやインタフェースのデータストアには、デザイナの現在のコンテキストにおけるジャーナル化ステータスを示す次のアイコン・マーカーがあります。

- OK - ジャーナル化は、現在のコンテキストにおいてこのデータストアに対してアクティブです。また、インフラストラクチャはこのデータストアで稼働中です。

- インフラストラクチャなし - ジャーナル化はモデルでアクティブとしてマークされていますが、現在のコンテキストにおいて適切なジャーナル化インフラストラクチャが検出されていません。ジャーナルを開始する必要があります。この状態は、インフラストラクチャに実装されているジャーナル化モードがモデルに宣言されているモードと一致しない場合に発生する可能性があります。

- 断片 - ジャーナル化はモデルで非アクティブとしてマークされていますが、コンテキストにおいてジャーナル化表などのジャーナル化インフラストラクチャの断片がこのデータストアで検出されています。この状態は、ジャーナルを停止せずにCDCから表を削除した場合に発生する可能性があります。

6.3 変更データの使用

ジャーナル化の開始後にサブスクライバで変更を追跡すると、取得された変更データを使用できます。これらの変更データを表示または使用できるのは、ジャーナル化されたデータストアがインタフェースのソースとして使用されている場合です。

6.3.1 変更データの表示

変更データを表示するには:

1. デザイナ・ナビゲータの「モデル」ツリーで、ジャーナル化されたデータストアを選択します。

2. 右クリックして「チェンジ・データ・キャプチャ」→「ジャーナル・データ」の順に選択します。

現在のコンテキストのデータストアで取得された変更がグリッドに表示され、追加された次の3つの列にその詳細が示されます。

- JRN_FLAG: 変更のタイプを示すフラグ。挿入または更新されたレコードには値Iが使用され、削除されたレコードには値Dが使用されます。

- JRN_SUBSCRIBER: サブスクライバの名前。

- JRN_DATE: 変更のタイムスタンプ。

ジャーナル化されたデータは、主に統合プロセス内で使用されます。変更データは、統合インタフェースのソースとして使用できます。その使用方法は、ジャーナル化モードに応じて異なります。

6.3.2 変更データの使用: 簡易ジャーナル化

簡易ジャーナル化の変更データを使用する場合は、ジャーナル化されたデータストアをソースとして使用するインタフェースを設計します。インタフェースの作成の詳細は、第11章「統合インタフェースの使用」を参照してください。

簡易ジャーナル化を使用したインタフェースの設計

ジャーナル化されたデータストアをインタフェース・ダイアグラムに挿入すると、そのデータストアのプロパティ・パネルに「ジャーナル化されたデータのみ」チェック・ボックスが表示されます。

このボックスを選択すると、次の処理が実行されます。

- ジャーナル化列(JRN_FLAG、JRN_DATEおよびJRN_SUBSCRIBER)がデータストアで使用可能になります。

- ジャーナル化フィルタもこのデータストアで自動的に生成されます。このフィルタによって、取得されるソース・データの量がジャーナル化されたデータのみに削減されます。このフィルタは、常にソースで実行されます。このフィルタはカスタマイズできます(一定の時間範囲内の変更を処理する、または特定タイプの変更のみを処理するなど)。特定のサブスクライバ用にすべての変更を取得するための一般的なフィルタは、JRN_SUBSCRIBER = '<subscriber_name>'です。

簡易ジャーナル化モードでは、(ジャーナル・フィルタの適用後に)インタフェースによって反映されたすべての変更は、自動的にインタフェースの最後に使用されたとみなされ、ジャーナルから削除されます。これらの変更は、後続のインタフェースで使用できません。

ジャーナル化されたデータを処理する場合、統合ナレッジ・モジュールのSYNC_JRN_DELETEオプションは慎重に設定してください。このオプションでは、ジャーナルで削除対象(D)としてマークされ、ジャーナル化フィルタで除外されないレコードがターゲット・データストアから削除されます。このオプションを「いいえ」に設定すると、統合操作では挿入と更新のみが処理されます。

注意:

データセット当たり1つのデータストアのみ「ジャーナル化されたデータのみ」オプションを選択できます。

6.3.3 変更データの使用: 一貫性セット・ジャーナル化

一貫性ジャーナル化での変更データの使用は、インタフェース設計に関しては簡易ジャーナル化と同様です。ただし、セット内で変更の一貫性を確保するために、インタフェースで変更データを処理する前と後に追加のステップが必要です。

これらの操作は、ジャーナル化されたモデルのコンテキスト・メニューから手動で実行することも、パッケージで自動的に実行することもできます。

変更データ使用前の操作

一貫性セット・ジャーナル化を使用する場合は、変更データの使用前に次の操作を実行する必要があります。

- ウィンドウの拡張: 一貫性ウィンドウは、参照整合性に違反することなく挿入、更新および削除を実行できる、一貫性セットのすべての表における使用可能な変更の範囲です。ウィンドウの拡張操作では、前回のウィンドウの拡張操作以降に取得した新規の変更を反映するようにこのウィンドウを計算(再計算)します。この操作は、「ジャーナル化モデル」タイプのパッケージ・ステップを使用して実装します。この操作は、他のジャーナル化操作とは別にスケジュールできます。

- サブスクライバのロック: ウィンドウの拡張は一貫性セット全体に適用されますが、サブスクライバは変更を個別に使用します。この操作では、一貫性ウィンドウの変更を対象に、1つ以上のサブスクライバに固有のスナップショットを実行します。このスナップショットには、サブスクライバにまだ使用されていない一貫性ウィンドウ内のすべての変更が含まれます。この操作は、「ジャーナル化モデル」タイプのパッケージ・ステップを使用して実装します。サブスクライバに取得された変更を使用する最初のインタフェースより前に、この操作を必ず実行する必要があります。

インタフェースの設計

一貫性セット・ジャーナル化の変更データも、パッケージ内で順序付けされたインタフェースを使用して処理します。

一貫性セット・ジャーナル化の使用時にインタフェースを設計する手順は、簡易ジャーナル化と同様です。ただし、次の点が異なります。

- (JRN_FLAG、JRN_DATEおよびJRN_SUBSCRIBERでフィルタ処理された)インタフェースで反映される変更は、インタフェースの最後に自動的にパージされません。これらの変更は、後続のインタフェースで再利用できます。これらの変更の使用をコミットし、不要なエントリをジャーナルから削除するには、それぞれサブスクライバのロック解除操作とジャーナルのパージ操作(後続の説明を参照)が必要です。

- 一貫性モードでは、ジャーナル化フィルタでJRN_DATE列を使用しないでください。使用された変更をこのタイムスタンプでフィルタ処理すると、変更の一貫性が確保されない場合があります。

変更データ使用後の操作

変更データの使用後に、次の操作を実行する必要があります。

- サブスクライバのロック解除: この操作では、サブスクライバのロック操作時にロックされた変更の使用をコミットします。この操作は、サブスクライバですべての変更が処理された後にのみ実行する必要があります。この操作は、「ジャーナル化モデル」タイプのパッケージ・ステップを使用して実装します。サブスクライバに取得された変更を使用する最後のインタフェースより後に、この操作を必ず実行する必要があります。変更を再度処理する必要がある場合(エラーなどの場合)、この操作は実行しないでください。

- ジャーナルのパージ: サブスクライブしている変更をすべてのサブスクライバが使用した後でも、各エントリはジャーナル化表に残るため、それらを削除する必要があります。この作業は、ジャーナルのパージ操作で実行します。この操作は、「ジャーナル化モデル」タイプのパッケージ・ステップを使用して実装します。この操作は、他のジャーナル化操作とは別にスケジュールできます。

注意:

ウィンドウの拡張またはジャーナルのパージは、データストアで実行できます。この操作は、同じ一貫性セットの表における変更を異なる頻度で処理します。変更の一貫性が一貫性セット・レベルで維持されなくなる可能性があるため、このオプションは慎重に使用してください。

一貫性セットCDC操作の自動化

一貫性セットCDCの使用を自動化するには、次の操作を実行するパッケージを使用します。

1. 新規パッケージを作成します。

2. ジャーナル化対象のモデルを「モデル」ツリーからパッケージの「ダイアグラム」タブにドラッグ・アンド・ドロップします。新規パッケージのステップが表示されます。

3. パッケージ・ダイアグラムのステップ・アイコンをダブルクリックします。このステップのプロパティ・インスペクタが開きます。

4. 「タイプ」リストで、「ジャーナル化モデル」または「ジャーナル化データストア」を選択します。

5. 実行する一貫性セット操作を選択します。

6. 「サブスクライバのロック」または「サブスクライバのロック解除」操作を選択した場合は、サブスクライバ・フィールドに最初のサブスクライバを入力して「追加」ボタンをクリックし、「サブスクライバ」リストに追加します。ロックまたはロック解除するすべてのサブスクライバに対して、この操作を繰り返します。

7. 「ファイル」メニューから「すべて保存」を選択します。

注意:

データセット当たり1つのデータストアのみ「ジャーナル化されたデータのみ」オプションを選択できます。

6.3.4 ジャーナル化ツール

Oracle Data Integratorには、取得された変更に関する情報をリフレッシュしたり、他のプロセスを起動するためにジャーナル化で使用できる次の一連のツールが用意されています。

- OdiWaitForData: 表または一連の表の一定数の行を待機します。

- OdiWaitForLogData: ジャーナル化表またはジャーナル化表のリストで一定数の変更が発生するのを待機します。このツールは、OdiRefreshJournalCountをコールして、取得された新規の変更をカウントします。

- OdiWaitForTable: 表が作成され、事前定義された数の行が移入されるのを待機します。

- OdiRetrieveJournalData: 指定されたジャーナル化サブスクライバの特定の表リストまたはCDCセットについて、ジャーナル化イベントを取得します。データベース固有のプロセスを使用してジャーナル化表をロードする場合は、このツールをコールする必要があります。このツールは、特定のナレッジ・モジュールとともに使用する必要があります。詳細は、ナレッジ・モジュールの説明を参照してください。

- OdiRefreshJournalCount: 指定されたジャーナル化サブスクライバの特定の表リストまたはCDCセットで使用する行数をリフレッシュします。

これらの機能の詳細は、付録A「Oracle Data Integrator Toolsリファレンス」を参照してください。

6.3.5 ジャーナル化を使用するためのパッケージ・テンプレート

ジャーナル化されたデータを使用するパッケージを設計する場合は、多くのテンプレートを使用できます。次に、一般的なテンプレートをいくつか示します。パッケージ作成の詳細は、第10章「パッケージの使用」を参照してください。

テンプレート1: 1つの単純なパッケージ(一貫性セット)

- ステップ1: ウィンドウの拡張 + サブスクライバのロック

- ステップ2からn-1: ジャーナル化されたデータを使用するインタフェース

- ステップn: サブスクライバのロック解除 + ジャーナルのパージ

このパッケージは、すべての変更を処理するように毎分スケジュールされます。このテンプレートは、ジャーナル化表に定期的に変更が発生する場合に適しています。

テンプレート2: 1つの単純なパッケージ(簡易ジャーナル化)

ステップ1からn: ジャーナル化されたデータを使用するインタフェース

このパッケージは、すべての変更を処理するように毎分スケジュールされます。このテンプレートは、ジャーナル化表に定期的に変更が発生する場合に適しています。

テンプレート3: OdiWaitForLogDataの使用(一貫性セットまたは簡易)

- ステップ1: OdiWaitForLogData。指定された間隔の経過後に新規ログ・データが検出されない場合、パッケージは終了します。

- ステップ2: OdiStartScenを使用して、テンプレート1または2と同等のシナリオを実行します

このパッケージは、定期的にスケジュールされます。変更データが処理されるのは、新規の変更が検出された場合のみです。これによって、ジャーナル化表に不定期に変更が発生する場合に不要な処理を回避できます(つまり、処理するデータのないインタフェースを実行せずに済みます)。

テンプレート4: 個別のプロセス(一貫性セット)

このテンプレートでは、一貫性ウィンドウ、パージ、および(2つの異なるサブスクライバでの)変更の使用を異なるパッケージに分割します。

パッケージ1: ウィンドウの拡張

- ステップ1: OdiWaitForLogData。指定された間隔の経過後に新規ログ・データが検出されない場合、パッケージは終了します。

- ステップ2: ウィンドウの拡張。

このパッケージは、毎分スケジュールされます。ウィンドウの拡張によって、リソースを消費する可能性があります。この操作は新規データが発生した場合にのみ起動することをお薦めします。

パッケージ2: ジャーナルのパージ(週末)

ステップ1: ジャーナルのパージ

このパッケージは、毎週金曜日に1回スケジュールされます。週全体のジャーナルが追跡されます。

パッケージ3: サブスクライバAに対する変更の処理

- ステップ1: サブスクライバAのロック

- ステップ2からn-1: サブスクライバAのジャーナル化されたデータを使用するインタフェース。

- ステップn: サブスクライバAのロック解除

このパッケージは、毎分スケジュールされます。このようなパッケージは、MOMでイベントを生成する場合などに使用します。

パッケージ4: サブスクライバBに対する変更の処理

- ステップ1: サブスクライバBのロック

- ステップ2からn-1: サブスクライバBのジャーナル化されたデータを使用するインタフェース。

- ステップn: サブスクライバBのロック解除

このパッケージは、毎日スケジュールされます。このようなパッケージは、夜間に変更データをデータ・ウェアハウスにロードする場合などに使用します。

7 共通フォーマット・デザイナの使用

この章では、Oracle Data Integratorの共通フォーマット・デザイナ機能を使用して、データ・モデルを他のモデルの要素を集約して作成する方法について説明します。モデルの実装をデータ・サーバーに作成したり、それを更新するためのDDLスクリプトの生成方法、およびモデルとの間でデータをロードするインタフェースを自動的に生成する方法についても詳細に説明します。

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

- 7.1項「共通フォーマット・デザイナの概要」

- 7.2項「ダイアグラムの使用」

- 7.3項「DDLスクリプトの生成」

- 7.4項「インタフェースIN/OUTの生成」

7.1 共通フォーマット・デザイナの概要

共通フォーマット・デザイナ(CFD)を使用すると、Oracle Data Integratorでデータ・モデルを迅速に設計できます。データ・モデルは、完全な新規モデルとして設計することも、他のデータ・モデルの要素を使用して構築することもできます。CFDでは、このモデルをデータ・サーバーに実装するためのデータ定義言語(DDL)スクリプトを自動生成できます。

たとえば、共通フォーマット・デザイナを使用して、異機種ソースを集約し、業務用のデータストア、データマートまたはマスター・データの基準となる形式を作成できます。

CFDを使用すると、ユーザーは、既存のモデルを変更して、Oracle Data Integratorで記述されているデータ・モデルとデータ・サーバーの実装の間に存在する差異を同期するためのDDLスクリプトを自動的に生成できます。

7.1.1 ダイアグラムの概要

ダイアグラムは、サブモデル(またはデータ・モデル)に格納されたデータストアのサブセットのグラフィカル・ビューです。データ・モデルには、関連する複数のダイアグラムを含めることができます。

ダイアグラムは次のように構築します:

- モデルおよびサブモデルからデータストアを集約します。

- 空のデータストアを作成し、その中に新規列を作成するか、他のデータストアから列を集約します。

7.1.2 他のモデルからデータストアと列を集約する理由

他のモデルまたはサブモデルからダイアグラムにデータストアと列を集約すると、Oracle Data Integratorによって、ダイアグラムに追加されたデータストアまたは列の元のデータが追跡されます。元のデータストアおよび列に対する参照によって、Oracle Data Integratorでは、集約されたデータストアに対する統合インタフェースを自動的に生成できます(インタフェースIN)。

自動インタフェース生成は、他のモデルのデータストアおよび列から作成されていないデータストアと列をロードする場合には機能しません。ただし、統合インタフェースを手動で作成することや、自動マップされていない列に対して生成されたインタフェースを完成させることは可能です。

7.1.3 グラフィカル・シノニム

ダイアグラムでは、データストアはグラフィカル・シノニムとして複数表示される場合があります。シノニムは、データストアのグラフィカル表現です。グラフィカル・シノニムを使用すると、ダイアグラムが見やすくなります。

ダイアグラムからデータストアを削除する場合は、デザイナによって、シノニムを削除するのか(データストアは残ります)、データストア自体を削除するのか(そのデータストアのすべてのシノニムが削除されます)の選択が求められます。

ダイアグラムの各参照は、データストアのグラフィカル・シノニムに関連付けられます。グラフィカル・シノニムは自由に作成することが可能で、参照のグラフィカル表現は、その参照に関連するデータストアの任意のグラフィカル・シノニムに移動できます。

7.2 ダイアグラムの使用

ダイアグラムでは、そのダイアグラムから直接使用できるポップアップ・メニューを使用して、ダイアグラムに表示されるすべてのモデル要素(データストア、列、参照、フィルタなど)を編集できます。ダイアグラムに加えた変更は、即座にモデルに適用されます。

7.2.1 新規ダイアグラムの作成

新規のダイアグラムを作成するには:

1. デザイナ・ナビゲータの「モデル」ツリーで、ダイアグラムを作成するデータ・モデルまたはサブモデルを展開し、「ダイアグラム」ノードを選択します。

2. 右クリックして「新規ダイアグラム」を選択し、ダイアグラム・エディタを開きます。

3. ダイアグラム・エディタの「定義」タブで、ダイアグラムの「名前」と「説明」を入力します。

4. 「ファイル」メイン・メニューから「保存」を選択します。

モデルの「ダイアグラム」ノードの下に、新規ダイアグラムが表示されます。

7.2.2 データストアおよび列の作成

ダイアグラムに既存のデータストアを挿入するには:

1. モデルのノードの下にある「ダイアグラム」ノードでダイアグラムをダブルクリックし、ダイアグラム・エディタを開きます。

2. ダイアグラム・エディタで、「ダイアグラム」タブを選択します。

3. デザイナ・ナビゲータで、「モデル」ツリーからデータストアを選択します。

4. このデータストアをダイアグラムにドラッグします。現在のモデルまたはサブモデルとは異なるモデルまたはサブモデルからデータストアをドラッグすると、デザイナによって、そのデータストアのコピーを現在のモデルに作成するように求められます。このデータストアがダイアグラムにすでに存在している場合は、Oracle Data Integratorによって、新規グラフィカル・シノニムを作成するか、そのデータストアの複製を作成するかの選択が求められます。

データストアの新規グラフィカル・シノニムがダイアグラムに表示されます。別のモデルからデータストアを追加した場合、または複製を作成した場合は、新規データストアがモデルに表示されます。

ダイアグラムに挿入された表と表の間に元のモデルで参照(結合)が存在する場合は、それらの参照もコピーされます。

ダイアグラムですでにあるデータストアのグラフィカル・シノニムを作成するには、そのデータストアのポップアップ・メニューで「グラフィカル・シノニムの作成」を選択します。

ダイアグラムで新規のデータストアを作成するには:

1. ダイアグラム・エディタで、「ダイアグラム」タブを選択します。

2. ダイアグラム・エディタで、「データストアの追加」をクリックします。

3. ダイアグラム・ワークベンチをクリックします。

4. この新規データストアのエディタが表示されます。データストアの作成については、第5章「モデルの作成およびリバースエンジニアリング」で説明している手順に従ってください。

他のデータストアから列を追加するには:

1. ダイアグラム・エディタで、「ダイアグラム」タブを選択します。

2. デザイナ・ナビゲータの「モデル」ツリーで、データストアの下にある列を選択します。

3. この列を挿入先のダイアグラムのデータストアにドラッグします。新規列を編集するための列エディタが表示されます。必要に応じて列を編集します。

4. 「ファイル」メイン・メニューから「保存」を選択します。新規列がデータストアに追加されます。

7.2.3 グラフィカル・シノニムの作成

データストアのグラフィカル・シノニムを作成するには:

1. 「ダイアグラム」タブで、データストアを選択します。

2. 右クリックして「グラフィカル・シノニムの作成」を選択します。

新規のグラフィカル・シノニムがダイアグラムに表示されます。

この操作で新規データストアは追加されません。ダイアグラムに作成されるのは、データストアの新規表現のみです。

7.2.4 制約およびフィルタの作成および編集

データストアに新規条件、フィルタ、キーを追加するには:

1. 「ダイアグラム」タブで、データストアを選択します。

2. 右クリックして、「キーの追加」、「フィルタの追加」などの適切なオプションを選択します。

3. 新規条件、フィルタ、キーなどに対応した新規エディタが表示されます。この要素の作成については、第5章「モデルの作成およびリバースエンジニアリング」で説明している手順に従ってください。

条件、フィルタおよび参照がダイアグラムに追加されるのは、それらを参照するデータストアをダイアグラムに追加した場合です。ダイアグラムに追加したデータストアに、これらのオブジェクトを追加した場合は、これらのオブジェクトをダイアグラムにドラッグできます。

列のキーを編集するには:

列がキー(主キーまたは代替キー)の一部である場合は、ダイアグラムの列でキーを編集できます。

1. 「ダイアグラム」タブで、キーに関連する列のいずれかを選択します。

2. 右クリックしてポップアップ・メニューでキーの名前を選択し、サブメニューで「編集」を選択します。

2つのデータストア間の参照を作成するには:

1. ダイアグラム・エディタで、「ダイアグラム」タブを選択します。

2. ツールバーで、「参照の追加」ボタンをクリックします。

3. 参照の最初のデータストアをクリックし、マウス・ボタンを押しながら2番目のデータストアにカーソルをドラッグします。

4. マウス・ボタンを放します。参照エディタが表示されます。

5. 第5章「モデルの作成およびリバースエンジニアリング」で説明している手順に従って、参照のパラメータを設定します。

参照を別のグラフィカル・シノニムに移動するには:

1. ダイアグラム・エディタで、「ダイアグラム」タブを選択します。

2. 「ダイアグラム」タブで、変更する参照を選択します。

3. 右クリックして「表示オプション」を選択します。

4. 参照の親および子として使用するシノニムを選択します。

5. 「OK」をクリックします。選択したシノニムに参照表現が表示されます。

この操作では、参照自体は変更されません。変更されるのは、ダイアグラム内の表現のみです。

7.2.5 ダイアグラムの印刷

ダイアグラムを保存すると、PNG形式での保存、ダイアグラムの印刷、または完全なPDFレポートの生成を実行できます。

ダイアグラム・レポートを印刷または生成するには:

1. ダイアグラムの「ダイアグラム」タブで、「ダイアグラム」メニューから「印刷オプション」を選択します。

2. データ・モデル印刷エディタで、次のオプションのいずれかを必要に応じて選択します。

- 完全なPDFレポートの生成

- ダイアグラムをPNGで保存

- ダイアグラムの印刷

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

7.3 DDLスクリプトの生成

データ・サーバーのデータ構造が変更された場合は、通常、Oracle Data Integratorで増分リバースエンジニアリングを実行し、データ・サーバーから新規メタデータを取得します。

Oracle Data Integratorでダイアグラムまたはデータ・モデルを設計または変更した場合は、モデル実装を格納しているデータ・サーバーにそのデータ・モデルまたは変更内容を実装する必要があります。この操作は、DDLスクリプトで実行されます。DDLスクリプトは、DDLコマンド(create tableやalter tableなど)を含むOracle Data Integratorプロシージャの形式で生成されます。このプロシージャは、変更内容を適用するためにデータ・サーバーで実行できます。

DDL生成では、表およびシステム表の2つのタイプのデータストアがサポートされます。

注意:

DDLスクリプトのテンプレートは、アクション・グループとして定義されます。DDLスクリプトの生成を開始する前に、モデルのテクノロジに対応する適切なアクション・グループが存在することをトポロジ・ナビゲータで確認してください。アクション・グループの詳細は、Oracle Data Integratorナレッジ・モジュール開発者ガイドを参照してください。

DDLスクリプトを生成する前に

場合によっては、データ・モデルには定義されているがデータベースには定義されていない制約がDDLの生成エディタに表示されません。これらの条件がDDLの生成エディタに確実に表示されるように、次の作業を行います。

- キー: キー・エディタの「制御」タブで、「データベースで定義済」と「アクティブ」を選択します

- 参照: 参照エディタの「定義」タブで、「データベースで定義済」を選択します

- 条件: 条件エディタの「制御」タブで、「データベースで定義済」と「アクティブ」を選択します

DDLスクリプトの生成

DDLスクリプトを生成するには:

1. デザイナ・ナビゲータの「モデル」ツリーで、DDLスクリプトを生成するデータ・モデルを選択します。

2. 右クリックして「DDLの生成」を選択します。Oracle Data IntegratorモデルのDDLを生成ダイアログが表示されます。

3. 「DDLの生成」ダイアログで、Oracle Data Integratorモデルに存在する表のみを処理する場合は「はい」をクリックし、そうでない場合は「いいえ」をクリックすると、モデルに存在しない表も含まれます。
Oracle Data Integratorによってデータ・サーバーからデータ構造の現在の状態が取得され、モデル定義と比較されます。ステータス・バーに進行状況が表示されます。差異が検出された状態のDDLの生成エディタが表示されます。

4. DDLスクリプト生成で使用する「アクション・グループ」を選択します。

5. 「検索」をクリックし、プロシージャを作成する「生成フォルダ」を選択します。

6. フォルダを選択し、「OK」をクリックします。

7. 「フィルタ」チェック・ボックスを使用して、表示する変更のタイプをフィルタ処理します。

8. 「同期化」オプションを選択して、適用する変更内容を選択します。次のアイコンは、変更のタイプを示しています。

- -: データ・モデルには存在するが、データ・サーバーには存在しない要素

- +: データ・サーバーには存在するが、データ・モデルには存在しない要素

- =: データ・モデルとデータ・サーバーの両方に存在するが、プロパティ(列のサイズ変更など)または関連する要素(新規列を含む表など)が異なる要素

9. 「OK」をクリックしてDDLスクリプトを生成します。

Oracle Data Integratorによって、プロシージャにDDLスクリプトが生成され、このプロシージャに対するプロシージャ・エディタが開きます。

7.4 インタフェースIN/OUTの生成

共通フォーマット・デザイナを使用して集約された特定のモデルまたはデータストアについて、Oracle Data Integratorでは次のオブジェクトを生成できます。

- インタフェースIN: これらの統合インタフェースは、他のデータストアまたは列から集約したモデルのデータストアをロードする際に使用します。元のデータストアからコンポジット・データストアにデータをマージする統合プロセスです。

- インタフェースOUT: これらの統合インタフェースは、モデルのデータストアからデータを抽出する際に使用します。これらのインタフェースは、モデルのデータストアをすでにロードしているインタフェース(インタフェースINを含む)を使用して生成されます。これらのインタフェースによって、統合プロセスが反転され、コンポジット・データストアのデータが元のデータストアに伝播されます。

たとえば、AIH(Active Integration Hub)は、他の複数のアプリケーションから取得した情報を集約します。それは、複数のデータ・モデルに基づいて作成され、ダイアグラムに集約されるコンポジット・データストアで構成されます。AIHは、インタフェースINを使用してロードします。また、インタフェースOUTを使用して元のシステムにデータを送信できます。

インタフェースINを生成するには:

1. デザイナ・ナビゲータの「モデル」ツリーで、インタフェースを生成するデータ・モデルまたはデータストアを選択します。

2. 右クリックして「インタフェースINの生成」を選択します。Oracle Data Integratorによって、現在のモデルまたはデータストアの作成に使用された元のデータストアと列が検索されます。インタフェースINを生成できるデータストアのリストを含むインタフェースINの生成エディタが表示されます

3. インタフェースの「最適化コンテキスト」を選択します。このコンテキストによって、生成されたインタフェースのフローの表示方法およびKMの自動化された選択肢の調整方法が定義されます。

4. 「...」ボタンをクリックし、インタフェースを生成する「生成フォルダ」を選択します。

5. 「候補データストア」表で、ロードするデータストアの「インタフェースの生成」オプションを選択します。

6. 「インタフェース名」列の内容を編集し、統合インタフェースの名前を変更します。

7. 「OK」をクリックします。インタフェースの生成が開始されます。

生成されたインタフェースが指定したフォルダに表示されます。

注意:

自動的に生成されるインタフェースは、事前定義されたルールを使用し、リポジトリ・メタデータに基づいて作成されます。これらのインタフェースは即座に実行できません。実行する前に慎重に確認して変更する必要があります。

注意:

インタフェースINの生成時にデータストア候補が見つからない場合は、ロードしようとしているデータストアが他のデータストアまたは列から作成されていない可能性があります。自動インタフェース生成は、他のモデルのデータストアおよび列から作成されていないデータストアと列をロードする場合には機能しません。

インタフェースOUTを生成するには:

1. デザイナ・ナビゲータの「モデル」ツリーで、インタフェースを生成するデータ・モデルまたはデータストアを選択します。

2. 右クリックして「インタフェースOUTの生成」を選択します。Oracle Data Integratorによって、それらのデータストアをロードする既存のインタフェースが検索されます。インタフェースOUTを生成できるデータストアのリストを含むインタフェースOUTの生成エディタが表示されます。

3. インタフェースの「最適化コンテキスト」を選択します。このコンテキストによって、生成されたインタフェースのフローの表示方法およびKMの自動化された選択肢の調整方法が定義されます。

4. 「...」ボタンをクリックし、インタフェースを生成する「生成フォルダ」を選択します。

5. 「候補データストア」で、「生成」および「インタフェースの生成」チェック・ボックスを選択し、既存のインタフェースのターゲット・データストアからロードするデータストア候補の一部または全部を選択します。

6. 「インタフェース名」列の内容を編集し、統合インタフェースの名前を変更します。

7. 「OK」をクリックします。インタフェースの生成が開始されます。

生成されたインタフェースが指定したフォルダに表示されます。

注意:

自動的に生成されるインタフェースは、利用可能なメタデータを使用して作成されるため、常に期待どおりのルールをレンダリングするとは限りません。これらのインタフェースは、実行する前に慎重に確認して変更する必要があります。

注意:

インタフェースOUTの生成時にデータストア候補が見つからない場合は、インタフェースOUTを生成するように選択したデータストアをロードするインタフェースが存在しない可能性があります。データストアに基づくインタフェースOUTは、そのデータストアをロードするインタフェースから生成されます。データストアをロードする有効なインタフェースが存在しない場合、そのデータストアに基づく伝播インタフェースは生成できません。

8 データ・サービスの使用

この章では、Oracle Data Integratorを使用してデータ・サービスを構成および生成する方法について説明します。データ・サービスを使用すると、Webサービス・インタフェースを介してデータにアクセスできます。また、Oracle Data Integratorのチェンジ・データ・キャプチャ機能を使用して取得した変更にアクセスできます。

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

- 8.1項「データ・サービスの概要」

- 8.2項「データ・サービスの設定」

- 8.3項「データ・サービスの生成およびデプロイ」

8.1 データ・サービスの概要

データ・サービスは特殊なWebサービスで、データストアのデータにアクセスしたり、チェンジ・データ・キャプチャを使用して、それらのデータストアに対して取得された変更にアクセスできます。これらのWebサービスは、Oracle Data Integratorによって自動的に生成され、アプリケーション・サーバーのWebサービス・コンテナにデプロイされます。

生成されたデータ・サービスは、次の場所にデプロイできます。

- Java API for XML Web Service(JAX-WS)を実装しているWebサービス・スタック(Oracle WebLogic Server、IBM WebSphereなど)

- アプリケーション・サーバーにインストールされているApache Axis2

警告:

このバージョンでは、Axis2は推奨されていません。Axis2を使用しているユーザーは、データ・サービスの実装を移行してください。そのためには、データ・サービスをJAX-WSコンテナで再生成して再デプロイします。

8.2 データ・サービスの設定

データ・サービスは、Webサービス・コンテナ(Webサービス・スタックがインストールされているアプリケーション・サーバー)にデプロイします。このWebサービス・コンテナは、Axis2またはJAX-WSテクノロジに関連付けられたトポロジにデータ・サーバー形式で宣言する必要があります。

データ・サービスをアプリケーション・サーバーにデプロイする際は、そのアプリケーション・サーバーのデータにアクセスするために、データ・ソースもトポロジに定義してデプロイするか、そのアプリケーション・サーバーに作成する必要があります。

データ・サービスを設定するには、次の各項で説明する手順を実行します。

- 8.2.1項「Webサービス・コンテナの構成」

- 8.2.2項「データ・ソースの設定」

- 8.2.3項「モデルの構成」

8.2.1 Webサービス・コンテナの構成

Oracle Data Integratorでデータ・サービスをWebサービス・コンテナにデプロイするには、そのWebサービス・コンテナをトポロジ内でデータ・サーバーとして宣言する必要があります。

注意:

Webサービス・コンテナとデータを格納するサーバーを混同しないように注意してください。どちらもOracle Data Integratorではデータ・サーバーとして宣言されますが、前者はデータを格納しません。それらはデータ・サービスを公開する目的にのみ使用されます。

Oracle Data Integratorで宣言されたWebサービス・コンテナでは、次の3つのモードのいずれかを使用してWebサービスをデプロイします。

- ファイルをサーバーに直接コピーします(サーバーに対するファイル・アクセス権がある場合)。

- FTPを使用してサーバーにアップロードします。

- Axis2のWebサービスのアップロードメソッドを使用してアップロードします。

Webサービス・コンテナを構成するための次の手順は、使用するWebサービス・コンテナのタイプおよびデプロイ・モードによって異なります。

Webサービス・コンテナを構成するには:

1. トポロジ・ナビゲータで、「物理アーキテクチャ」パネルの「テクノロジ」ノードを展開します。

2. Webサーバー・コンテナに対応するテクノロジ(Axis2またはJAX-WS)を選択します。Oracle WebLogic ServerまたはJEE 5と互換性のある別のアプリケーション・サーバーを使用している場合は、JAX-WSを使用します。

3. 右クリックして「新規データ・サーバー」を選択します。

4. 「定義」タブで、次のフィールドに値を入力します:

- 名前: Oracle Data Integratorに表示されるデータ・サーバーの名前。
データ・サーバーの名前を付ける場合は、命名標準の<TECHNOLOGY_NAME>_<SERVER_NAME>を使用することをお薦めします。

- 公開されたサービスのベースURL: Webサービスを使用できるベースURLを入力します。Axis2の場合は、http://<host>:<HTTP Port>/axis2/services/で、Oracle WebLogic Serverの場合は、http://<host>:<HTTP Port>/です。

5. 次のいずれかのデプロイ・オプションを選択します。

- Webサービスをディレクトリへ保存: Webサービスを作成するディレクトリ。Webサービスを個別にコンテナにデプロイする場合は、アプリケーション・サーバー上のネットワーク・ディレクトリまたはローカル・ディレクトリを使用できます。

- WebサービスをFTPによりアップロード: 生成されたWebサービスをコンテナにアップロードする場合にこのオプションを選択します。アップロード操作を実行するには、「FTP URL」、および「ユーザー名」と「パスワード」を入力する必要があります。

- Axis2によるWebサービスのアップロード: Axis2 Webサービスのアップロード・メカニズムを使用して、生成されたWebサービスをコンテナにアップロードする場合にこのオプションを選択します。このオプションが表示されるのは、Axis2コンテナのみです。アップロード操作を実行するには、「Axis2 WebアプリケーションのベースURL」(通常は、http://<host>:<HTTP Port>/axis2/axis2admin/)、およびAxis2の「ユーザー名」と「パスワード」を入力する必要があります。

6. 「ファイル」メニューから「保存」をクリックします。データ・サーバーが物理アーキテクチャに表示されます。

7. このデータ・サーバーを選択し、右クリックして「新規物理スキーマ」を選択します。新規の物理スキーマのエディタが表示されます。「コンテキスト」タブで、新規物理スキーマの論理スキーマを作成するか、新規物理スキーマを既存の論理スキーマに関連付けます。論理スキーマを作成する手順は、第4章「トポロジの設定」を参照してください。

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

必要なことは、Webコンテナの物理スキーマを1つ構成することです。デプロイするコンテナの条件をコンテキストで設定するため、ここでは論理スキーマ/コンテキスト/物理スキーマの関連付けが重要です。

8.2.2 データ・ソースの設定

Oracle Data Integratorで生成するデータ・サービスには、ソースおよびターゲットの接続情報が含まれていません。かわりに、データ・サービスは、Webサービス・コンテナ内またはアプリケーション・サーバー上に定義されているデータ・ソースを使用します。これらのデータ・ソースには、データへのアクセスに必要な接続プロパティが含まれています。各データ・ソースは、Oracle Data Integratorトポロジ内にすでに定義されているデータ・サーバーに対応している必要があります。

データ・ソースを設定するには、次のいずれかを実行します。

- アプリケーション・サーバー・コンソールからデータ・ソースを構成します。詳細は、アプリケーション・サーバーのドキュメントを参照してください。

- コンテナがOracle WebLogic Serverの場合は、Oracle Data Integratorからデータ・ソースをデプロイします。データ・ソースのデプロイの詳細は、第4章「トポロジの設定」を参照してください。

8.2.3 モデルの構成

データ・サービスを構成するには、最初にモデルを作成して移入する必要があります。詳細は、第5章「モデルの作成およびリバースエンジニアリング」を参照してください。

適切なサービス・ナレッジ・モジュール(SKM)をプロジェクトの1つにインポートしておく必要があります。SKMには、データ・サービスを生成するコード・テンプレートが含まれています。KMのインポートの詳細は、第9章「統合プロジェクトの作成」を参照してください。

データ・サービスのモデルを構成するには:

1. デザイナ・ナビゲータの「モデル」ツリーで、モデルを選択します。

2. そのモデルをダブルクリックし、編集します。

3. 「サービス」タブで、次の各フィールドに値を入力します。

- アプリケーション・サーバー: すでに定義したコンテナに対応する論理スキーマを選択します。

- ネームスペース: WebサービスWSDLで使用するネームスペースを入力します。

- パッケージ名: Webサービスを格納するために生成するJavaパッケージの名前。通常、この名前の形式はcom.<company name>.<project name>です。

- データソースの名前: コンテナに定義されている名前。使用するアプリケーション・サーバーに応じて、データ・ソースはローカルまたはグローバルになります。

- データ・ソースがグローバルの場合は、「データソース名」フィールドにデータ・ソース名のみ入力する必要があります。

- データ・ソースがローカルの場合は、データ・ソース名の前にjava:/comp/env/を付ける必要があります。

OC4Jはデフォルトでグローバル・データ・ソースを使用し、Tomcatはローカル・データ・ソースを使用します。詳細は、アプリケーション・サーバーのドキュメントを参照してください。

- データ・サービスの名前: この名前は、モデル・レベルでのデータ・サービス操作に使用されます。後でデータストアごとにデータ・サービス名を定義することもできます。

4. リストからサービス・ナレッジ・モジュール(SKM)を選択し、そのオプションを設定します。KMとそのオプションの詳細は、Oracle Fusion Middleware Oracle Data Integrator接続性およびナレッジ・モジュール・ガイドを参照してください。プロジェクトにインポートされたSKMのみがこのリストに表示されます。

5. 「デプロイ済データストア」タブに移動します。

6. データ・サービスとともに公開するすべてのデータストアを選択します。データストアごとに、「データ・サービス名」および「公開済エンティティ」の名前を入力します。

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

必要に応じて、生成されたデータ・サービスの構成をデータストア・レベルおよび列レベルで微調整することもできます。

たとえば、許可する操作を列ごとに指定できます。このオプションの重要な使用方法の1つは、データ・サービスを介して書き込まれないように列をロックすることです。

データ・サービス・オプションをデータストア・レベルで構成するには:

1. デザイナ・ナビゲータの「モデル」ツリーで、データストアを選択します。

2. このデータストアをダブルクリックし、編集します。

3. 「サービス」タブを選択します。

4. データストアをデプロイする場合は、「データ・サービスとしてデプロイ」を選択します。

5. データストアの「データ・サービス名」および「公開済エンティティ」の名前を入力します。

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

データ・サービス・オプションを列レベルで構成するには:

1. デザイナ・ナビゲータの「モデル」ツリーで、列を選択します。

2. この列をダブルクリックし、編集します。

3. 「サービス」タブを選択します。

4. 許可する操作を「選択」、「挿入」、「削除」から選択します。「挿入」アクションには、「更新」アクションが含まれます。

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

8.3 データ・サービスの生成およびデプロイ

モデル、データ・ソースおよびコンテナを構成した後は、データ・サービスを生成してデプロイできます。

8.3.1 データ・サービスの生成およびデプロイ

モデルにデータ・サービスを生成すると、モデル・レベルのデータ・サービスおよび選択したデータストアのデータ・サービスがモデルに生成されます。

モデルにデータ・サービスを生成するには:

1. デザイナ・ナビゲータの「モデル」ツリーで、モデルを選択します。

2. 右クリックして「サービスの生成」を選択します。「データ・サービスを生成中」ウィンドウが開きます。

3. 「データ・サービスを生成中」ウィンドウで、次の各フィールドに値を入力します。

- 生成されたデータ・サービスを格納: 生成されたソース・コードおよびコンパイルされたWebサービスがここに配置されます。このディレクトリは、生成後に削除できる一時的な場所です。データ・サービスに対して生成されたソース・コードをここで確認できます。

- コンテキスト: データ・サービスを生成してデプロイするコンテキスト。このコンテキストの選択は、次の3つに影響します。

- 生成時のJDBC/Javaデータ型バインディングの決定

- データの提供に使用される物理スキーマの決定

- デプロイ先の物理Webサービス・コンテナの決定

- 生成フェーズ: 1つ以上の生成フェーズを選択します。通常のデプロイでは、3つのフェーズすべてを選択する必要があります。ただし、新規のSKMをテストする場合などには、生成フェーズのみを実行すると便利です。各フェーズの意味は、次の表を参照してください。

4. 「OK」をクリックし、データ・サービスの生成およびデプロイを開始します。

フェーズ

説明

コードの生成

このフェーズは、次の操作を実行します。

- 生成ディレクトリの内容を削除します。

- SKMのコード・テンプレートを使用して、データ・サービスのJavaソース・コードを生成します。

コンパイル

このフェーズは、次の操作を実行します。

- Webサービス・フレームワークを抽出します。

- Javaソース・コードをコンパイルします。

デプロイメント

このフェーズは、次の操作を実行します。

- コンパイル・コードをパッケージ化します。

- コンテナに対して選択したデプロイ方法を使用して、パッケージをデプロイ・ターゲットにデプロイします。

非推奨

10.xスタイルのWSDLの生成

非推奨

これは、生成フェーズではありません。Axis2 Webサービスの生成時に使用できるオプションです。10g ODI WSDLと互換性のあるWebサービスを生成する場合に、このオプションを選択します。

8.3.2 生成サービスの概要

Oracle Data Integratorで生成されるデータ・サービスには、モデル・レベルのサービスとデータストア・レベルのサービスがあります。次に、これらのサービスについて説明します。

モデル・レベルのサービス

モデルが一貫性セットCDCに対応している場合、データ・サービスはモデル・レベルで生成されます。

モデル・レベルでは、次のサービスを使用できます。

- extend Window(パラメータなし): ウィンドウの拡張操作を実行します。

- lock(サブスクライバ名): 名前付きサブスクライバの一貫性セットをロックします。複数のサブスクライバの一貫性セットをロックするには、複数のOdiInvokeWebServiceステップを使用するなどして、このサービスを複数回コールします。

- unlock(サブスクライバ名): 名前付きサブスクライバの一貫性セットをロック解除します。

- purge(パラメータなし): 使用された変更をパージします。

これらの操作の詳細は、第6章「チェンジ・データ・キャプチャの使用」を参照してください。

データストア・レベルのサービス

生成された各データ・サービスによって提供される操作の範囲は、その生成に使用されたSKMに応じて異なります。Oracle Data Integratorに付属するSKMでは、複数の共通プロパティを共有しています。ほとんどの場合、公開されるエンティティの名前が各操作の名前の一部となります。次に、公開エンティティCustomerを使用した例を示します。

データストア・レベルでは、次の操作を使用できます。

- 単一のエンティティに対する操作。これらの操作では、主キーの値を指定することで単一のレコードを操作できます。新規行が存在する場合は、その行を記述する他のフィールドを指定する必要があります。例: addcustomer、getcustomer、deletecustomer、updatecustomer。

- フィルタで指定されたエンティティ・グループに対する操作。これらの操作では、1つまたは複数のフィールドの値を指定してフィルタを定義し、各行に追加された変更に対応する他の値をオプションで指定します。通常、戻される行の最大数も指定できます。例: getcustomerfilter、deletecustomerfilter、updatecustomerfilter。

- エンティティのリストに対する操作。このリストは、前述の単一のエンティティの場合と同様に、個々のエンティティを複数指定することで作成します。例: addcustomerlist、deletecustomerlist、getcustomerlist、updatecustomerlist。

8.3.3 データ・サービスのテスト

生成されたデータ・サービスをテストする最も簡単な方法は、OdiInvokeWebService Oracle Data Integratorツールのグラフィカル・インタフェースを使用することです。詳細は、第15章「Oracle Data IntegratorでのWebサービスの使用」を参照してください。

第IV部

統合プロジェクトの開発

この部では、Oracle Data Integratorでの統合プロジェクトの開発方法について説明します。

この部の内容は次のとおりです。

- 第9章「統合プロジェクトの作成」

- 第10章「パッケージの使用」

- 第11章「統合インタフェースの使用」

- 第12章「プロシージャ、変数、順序およびユーザー関数の使用」

- 第13章「シナリオの処理」

- 第14章「ロード計画の使用」

- 第15章「Oracle Data IntegratorでのWebサービスの使用」

- 第16章「Oracle Data Quality製品の使用」

- 第17章「ショートカットの使用」

9 統合プロジェクトの作成

この章では、統合プロジェクトに関係する様々なコンポーネントについて説明し、プロジェクトの開始方法についても説明します。

この章は次の項で構成されています。

- 9.1項「統合プロジェクトの概要」

- 9.2項「新規プロジェクトの作成」

- 9.3項「ナレッジ・モジュールの管理」

- 9.4項「フォルダを使用したプロジェクトの編成」

9.1 統合プロジェクトの概要

統合プロジェクトは複数のコンポーネントで構成されています。これらのコンポーネントには、フォルダなどの編成用オブジェクト、インタフェースや変数などの開発オブジェクトがあります。統合プロジェクトに関係する様々なコンポーネントの詳細は、9.1.1項「Oracle Data Integratorプロジェクトのコンポーネント」を参照してください。

プロジェクトには、ユーザーの作業に適応するライフ・サイクルも定義されています。プロジェクトの一般的なライフ・サイクルについては、9.1.2項「プロジェクトのライフ・サイクル」を参照してください。

9.1.1 Oracle Data Integratorプロジェクトのコンポーネント

プロジェクトに関係するコンポーネントには、プロジェクトに保持するコンポーネントと、プロジェクトで参照するグローバル・コンポーネントがあります。さらに、プロジェクトでは、モデルやトポロジで定義されているコンポーネントも使用します。

9.1.1.1 Oracle Data Integratorプロジェクトのコンポーネント

次のコンポーネントはプロジェクト内に格納されます。これらは、デザイナ・ナビゲータの「プロジェクト」アコーディオンにある、そのプロジェクトのノードに表示されます。

フォルダ

フォルダは、プロジェクトの作業を編成する際に役立つコンポーネントです。フォルダにはサブフォルダを挿入できます。フォルダには、パッケージ、インタフェースおよびプロシージャが格納されます。

パッケージ

パッケージは、Oracle Data Integratorで最大の実行単位です。パッケージは、実行ダイアグラム内に編成された一連のステップで構成されるワークフローです。パッケージによって、プロジェクトの他のコンポーネント(インタフェース、プロシージャ、変数など)が整理され、参照されます。パッケージの詳細は、第10章「パッケージの使用」を参照してください。

インタフェース

インタフェースは、再利用可能なデータ・フローです。1つ以上のソース・データストアからのデータストアまたは一時ターゲット構造のロードを定義する宣言的ルールのセットで構成されています。インタフェースの詳細は、第11章「統合インタフェースの使用」を参照してください。

プロシージャ

プロシージャは、インタフェースの概念に適合しない一連の操作をグループ化した、再利用可能なコンポーネントです。

プロシージャの例:

- 待機してファイルを解凍する

- FTPを介してファイルを一括送信する

- 電子メールを受信する

- データベースをパージする

変数

変数の値はOracle Data Integratorに格納されます。この値は、実行中に変化する可能性があります。

順序

順序は、使用時に自動的に増分される変数です。その値は、前に使用されてから次に使用されるまで持続します。

ユーザー関数

ユーザー関数を使用すると、テクノロジ依存の実装を定義する場合に、カスタマイズされた関数や関数の別名を定義できます。ユーザー関数は、インタフェースとプロシージャで使用できます。

前述のコンポーネントの詳細は、第12章「プロシージャ、変数、順序およびユーザー関数の使用」を参照してください。

ナレッジ・モジュール

Oracle Data Integratorでは、プロジェクト設計の様々な局面でナレッジ・モジュールを使用します。ナレッジ・モジュールは、特定のテクノロジに関連するコード・テンプレートであり、特定の機能(データのロード、リバースエンジニアリング、ジャーナル化)を提供します。

マーカー

プロジェクトのコンポーネントには、その概要説明や編成を反映するためにフラグを指定できます。フラグはマーカーを使用して定義します。これらのマーカーは、グループに編成し、プロジェクト内のほとんどのオブジェクトに適用できます。詳細は、第18章「作業の編成およびドキュメント化」を参照してください。

シナリオ

完了したパッケージ、インタフェース、プロシージャまたは変数コンポーネントはシナリオにコンパイルされます。シナリオは、本番用の実行単位で、自動的に実行されるようにスケジュールできます。シナリオの詳細は、第13章「シナリオの処理」を参照してください。

9.1.1.2 グローバル・コンポーネント

グローバル・コンポーネントは、プロジェクト・オブジェクトと類似していますが、主な相違点はその有効範囲にあります。グローバル・コンポーネントにはグローバル有効範囲があるため、すべてのプロジェクトで使用できます。グローバル・オブジェクトには、変数、ナレッジ・モジュール、順序、マーカー、ユーザー関数などがあります。

9.1.2 プロジェクトのライフ・サイクル

プロジェクトのライフ・サイクルは、開発チームの方法論や組織によって異なります。統合オブジェクトを作成、使用および保守する際は、次の手順をガイドラインとして考慮してください。

1. 新規プロジェクトを作成し、そのプロジェクトに適したナレッジ・モジュールをインポートします。

2. フォルダ、マーカーおよびドキュメントを使用してプロジェクトの組織と作業を定義します。

3. 再利用可能なコンポーネント(インタフェース、プロシージャ、変数、順序)を作成します。単位テストを実行します。

4. これらのコンポーネントをパッケージにまとめます。統合テストを実行します。

5. 作業をシナリオにリリースします。

9.2 新規プロジェクトの作成

プロジェクトを作成するには:

1. デザイナ・ナビゲータで、「プロジェクト」アコーディオンのツールバーにある「新規プロジェクト」をクリックします。

2. プロジェクトの「名前」を入力します。

3. 自動的に生成されたプロジェクト・コードをそのまま使用するか変更します。このコードはこのプロジェクト内のオブジェクトの識別に使用されるため、簡潔な文字列にすることをお薦めします。たとえば、プロジェクト名がCorporate Datawarehouseの場合は、簡潔なコードとしてCORP_DWHを使用できます。

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

「プロジェクト」ツリーに、空のフォルダが1つある新規プロジェクトが表示されます。

9.3 ナレッジ・モジュールの管理

ナレッジ・モジュール(KM)は、Oracle Data Integrator Open Connectorテクノロジのコンポーネントです。KMには、Oracle Data Integratorが特定のテクノロジまたはテクノロジのセットに対する特定の組合せのタスクを実行するために必要な知識が記載されています。

Oracle Data Integratorでは、6つの異なるタイプのナレッジ・モジュールを使用します。

- RKM(リバース・ナレッジ・モジュール)は、特定のテクノロジのデータ・モデルについて、カスタマイズされたリバースエンジニアリングを実行するために使用します。このKMはデータ・モデルで使用します。第5章「モデルの作成およびリバースエンジニアリング」を参照してください。

- LKM(ロード・ナレッジ・モジュール)は、ソース・システム(ファイル、ミドルウェア、データベースなど)からデータを抽出するために使用します。これらのKMは、インタフェースで使用されます。第11章「統合インタフェースの使用」を参照してください。

- JKM(ジャーナル化ナレッジ・モジュール)は、変更追跡用にソース・データベースのデータ変更(挿入、更新および削除)のジャーナルを作成するために使用します。このKMは、データ・モデルでチェンジ・データ・キャプチャに対して使用します。第6章「チェンジ・データ・キャプチャの使用」を参照してください。

- IKM(統合ナレッジ・モジュール)は、ターゲット表にデータを統合(ロード)するために使用します。これらのKMは、インタフェースで使用されます。第11章「統合インタフェースの使用」を参照してください。

- CKM(チェック・ナレッジ・モジュール)は、ソースおよびターゲットの制約違反がないことをチェックするために使用します。このKMは、データ・モデルの静的チェックおよびインタフェースのフロー・チェックで使用します。第5章「モデルの作成およびリバースエンジニアリング」および第11章「統合インタフェースの使用」を参照してください。

- SKM(サービス・ナレッジ・モジュール)は、データ・サービスの作成に必要なコードを生成するために使用します。このKMはデータ・モデルで使用します。第8章「データ・サービスの使用」を参照してください。

9.3.1 プロジェクトおよびグローバル・ナレッジ・モジュール

ナレッジ・モジュールは、プロジェクト・ナレッジ・モジュールまたはグローバル・ナレッジ・モジュールとして作成して使用できます。グローバル・ナレッジ・モジュールはすべてのプロジェクトで使用できますが、プロジェクト・ナレッジ・モジュールはそのプロジェクト・ナレッジ・モジュールをインポートしたプロジェクトでのみ使用できます。

グローバルKMは「グローバル・オブジェクト」アコーディオンのデザイナ・ナビゲータにリストされ、プロジェクトKMはインポートしたプロジェクトの下に表示されます。ナレッジ・モジュールのインポート方法の詳細は、20.2.6項「オブジェクトのインポート」を参照してください。

グローバルKMを使用する場合は、次のことに注意してください:

- グローバルKMは、グローバル・オブジェクトのみを参照する必要があります。プロジェクト・オブジェクトは許可されていません。

- グローバルKMにタグを付ける場合、使用できるのはグローバル・マーカーのみです。

- プロジェクトKMからグローバルKMへの変換、またはその逆への変換は許可されません。

- グローバルKMを変更すると、その変更内容はナレッジ・モジュールを使用しているすべてのODIオブジェクトに表示されます。

- グローバルKMを削除するときは注意してください。KMが存在しないと実行エラーが発生します。

- グローバルKMとプロジェクトKMが一緒にリストされる場合は、グローバルKMとプロジェクトKMを区別するために、グローバルKMの名前に接頭辞GLOBALが使用されます。

- グローバルKMとプロジェクトKMが表示される順序は、コンテキストによって変わります:

- インタフェース・エディタのKMセレクタのリストには、最初にプロジェクトKM、次にグローバルKMが表示されます。GLOBALまたはPROJECT_CODE接頭辞が使用されます。

- モデル・エディタのKMセレクタのリストには、最初にグローバルKM、次にプロジェクトKMが表示されます。GLOBALまたはPROJECT_CODE接頭辞が使用されます。

9.3.2 ナレッジ・モジュールの命名規則

Oracle Data IntegratorのKMは、KMの選択を容易にするための規則に従って命名されています。この命名規則は、次のとおりです:

ロード・ナレッジ・モジュール

ロード・ナレッジ・モジュールの命名規則は次のとおりです。LKM <ソース・テクノロジ> to <ターゲット・テクノロジ> [(ロード・メソッド)]。

この命名規則で、ソース・テクノロジとターゲット・テクノロジは、このLKMで管理できるデータ移動のソースとターゲットを示します。テクノロジがSQLの場合、このテクノロジはJDBCおよびSQLをサポートする任意のテクノロジです。テクノロジがJMSの場合、このテクノロジはJMS接続をサポートする任意のテクノロジです。

ロード・メソッドは、データを移動する際に使用する技術的なメソッドです。このメソッドは、関係するテクノロジに固有のものです。メソッドが指定されていない場合は、標準のJava接続(JDBCやJMSなど)が技術的なメソッドとして使用され、データはランタイム・エージェントを介してロードされます。ソースまたはターゲット(あるいはその両方)のテクノロジに固有のロード・メソッドが指定されたKMを使用すると、通常はパフォーマンスが向上します。

LKMの例を次に示します。

- LKM Oracle to Oracle (DBLink): Oracle DBLinkを使用して、Oracleデータ・サーバーから別のOracleデータ・サーバーにデータをロードします。

- LKM File to Oracle (SQLLDR): SQLLoaderを使用して、ファイルからOracleデータ・サーバーにデータをロードします。

- LKM SQL to SQL: SQLをサポートするデータ・サーバーからSQLをサポートする別のデータ・サーバーにデータをロードします。これは最も汎用的なロード・ナレッジ・モジュールで、ほとんどのデータ・サーバーに対して使用できます。

統合ナレッジ・モジュール

統合ナレッジ・モジュールの命名規則は次のとおりです。IKM [<ステージング・テクノロジ>] <ターゲット・テクノロジ> [<統合モード>] [(<統合メソッド>)]。

この命名規則で、ターゲット・テクノロジは、データの統合先となるターゲットのテクノロジを示します。IKMでは、ターゲットとステージング領域のサーバーが異なる場合に、ステージング・テクノロジを指定できます。このようなKMを複数テクノロジIKMと呼びます。それらは、ターゲットをステージング領域として使用できない場合に使用します。たとえば、ファイル・テクノロジの場合がこれに該当します。

統合モードは、データ・フローからターゲットにレコードを統合する際に使用するモードです。一般的なモードは次のとおりです。

- 追加(Append): フローからターゲットにレコードを挿入します。挿入する前に、必要に応じてターゲットのすべてのレコードを削除することも可能です。既存のレコードは更新されません。

- 制御付き追加(Control Append): 前述のモードと同じですが、プロセスでデータ・フローがチェックされます。

- 増分更新(Incremental Update): 前述のモードと同じですが、既存のレコードをフローのデータで更新することが可能です。

- 緩やかに変化するディメンション(Slowly Changing Dimension): タイプ2の緩やかに変化するディメンション(SCD)を使用してデータを表に統合します。

統合メソッドは、データをターゲットに統合する際に使用する技術的なメソッドです。このメソッドは、関係するテクノロジに固有のものです。メソッドが指定されていない場合は、標準のJava接続(JDBCやJMSなど)およびSQL言語が技術的なメソッドとして使用されます。特定のテクノロジに固有の統合メソッドが指定されたKMを使用すると、通常はパフォーマンスが向上します。

IKMの例を次に示します。

- IKM Oracle Incremental Update (MERGE): 増分更新モードを使用して、Oracleステージング領域からOracleターゲットにデータを統合します。このKMではOracleの表のマージ機能を使用します。

- IKM SQL to File Append: SQL対応のステージング領域からファイルにデータを統合します。追加モードを使用します。

- IKM SQL Incremental Update: SQL対応のステージング領域から同じデータ・サーバーにあるターゲットにデータを統合します。このIKMは、ステージング領域がターゲットと同じデータ・サーバーに存在するすべてのケースに適しており、ほとんどのテクノロジに対して使用できます。

- IKM SQL to SQL Append: SQL対応のステージング領域から別のSQL対応のデータ・サーバーにあるターゲットにデータを統合します。このIKMは、ステージング領域がターゲットと異なるサーバーに存在するケースに適しており、ほとんどのテクノロジに対して使用できます。

チェック・ナレッジ・モジュール

チェック・ナレッジ・モジュールの命名規則は次のとおりです。CKM <ステージング・テクノロジ>。

この命名規則で、ステージング・テクノロジは、チェック対象のデータが存在するステージング領域のテクノロジです。

CKMの例を次に示します。

- CKM SQL: ステージング領域がSQL対応のデータ・サーバーにある場合に統合フローの品質をチェックします。これは最も汎用的なチェック・ナレッジ・モジュールで、ほとんどのテクノロジに対して使用できます。

- CKM Oracle: ステージング領域がOracleデータ・サーバーにある場合に統合フローの品質をチェックします。

リバースエンジニアリング・ナレッジ・モジュール

リバースエンジニアリング・ナレッジ・モジュールの命名規則は次のとおりです。RKM <リバース対象テクノロジ> [(リバース・メソッド)]。

この命名規則で、リバース対象テクノロジは、リバースエンジニアリングするデータ・モデルのテクノロジです。リバース・メソッドは、リバースエンジニアリング・プロセスを実行する際に使用する技術的なメソッドです。

RKMの例を次に示します。

- RKM Oracle: Oracleデータ・モデルをリバースエンジニアリングします。

- RKM Netezza: Netezzaデータ・モデルをリバースエンジニアリングします。

ジャーナル化ナレッジ・モジュール

ジャーナル化ナレッジ・モジュールの命名規則は次のとおりです。JKM <ジャーナル化対象テクノロジ> <ジャーナル化モード> (<ジャーナル化メソッド>)。

この命名規則で、ジャーナル化対象テクノロジは、チェンジ・データ・キャプチャをアクティブ化する対象のテクノロジです。ジャーナル化モードは、一貫性(Consistent)または簡易(Simple)です。これらのモードの詳細は、第6章「チェンジ・データ・キャプチャの使用」を参照してください。

ジャーナル化メソッドは、変更を取得するための技術的なメソッドです。指定されていない場合は、取得プロセスを実行するメソッドとしてトリガーが使用されます。

JKMの例を次に示します。

- JKM Oracle 11g Consistent (Streams): Oracle Streams機能を使用して、CDCをOracle 11gに対して一貫性セット・モードで有効化します。

- JKM Oracle Simple: トリガーを使用して、CDCをOracleに対して簡易モードで有効化します。

- JKM DB2 400 Simple (Journal): DB2/400ジャーナル・テクノロジを使用して、CDCをDB2/400に対して簡易モードで有効化します。

サービス・ナレッジ・モジュール

サービス・ナレッジ・モジュールの命名規則は次のとおりです。SKM <データ・サーバー・テクノロジ>。

この命名規則で、データ・サーバー・テクノロジは、Webサービスを使用してアクセスするデータが格納されているテクノロジです。

9.3.3 適切なナレッジ・モジュールの選択

Oracle Data Integratorには、多岐にわたる即時利用可能なナレッジ・モジュールが用意されています。統合プロジェクトの開始時には、そのプロジェクトに適したナレッジ・モジュールをインポートする必要があります。

プロジェクトの設定後に追加のKMをインポートしたり、使用するKMを後で変更することも可能です。次のガイドラインを使用すると、新規プロジェクトの開始時に適切なKMを選択できます。

- 汎用KMを使用してプロジェクトを開始します。SQL KMはほとんどすべてのテクノロジに対して使用できます。使用するソース/ターゲット・テクノロジに慣れていない場合は、標準のSQLを使用する汎用SQL KMでプロジェクトを開始できます。単純なプロジェクトは、汎用KM(LKM File to SQL、LKM SQL to SQL、IKM SQL to SQL Append、IKM SQL Control Append、CKM SQL)を使用して開始できます。

- 単純なKMを使用してプロジェクトを開始します。統合対象のテクノロジに慣れていない場合は、複雑な統合メソッドやモードを使用するKMでプロジェクトを開始しないでください。

- パフォーマンス向上のために、ソース/ターゲットの組合せに適したKMを選択します。選択したKMがテクノロジの組合せに固有であればあるほど、パフォーマンスが向上します。最適なパフォーマンスを得るには、ソース/ターゲットの組合せに適合したKMに切り替えて、そのソース/ターゲットの機能を活用してください。

- インフラストラクチャの制限に応じたKMを選択します。セキュリティ上の理由でターゲット・データ・サーバーをステージング領域として使用できない場合は、複数テクノロジIKMをプロジェクトで使用可能にしてください。

- JKMとSKMは必要な場合のみ選択します。チェンジ・データ・キャプチャやデータ・サービスを使用する予定がない場合は、JKMやSKMをインポートしないでください。必要な場合は後でインポートできます。

- KMのドキュメントとオプションを確認します。KMには、有用な情報が記載された説明フィールドがあります。KMの各オプションについても説明されています。すべてのKMの詳細は、Oracle Fusion Middleware Oracle Data Integrator接続性およびナレッジ・モジュール・ガイドを参照してください。

9.3.4 ナレッジ・モジュールのインポートおよび置換

2つの主要な操作を使用して、プロジェクト内のKMを管理できます:

- 新規のプロジェクトを作成する場合や、既存のプロジェクトで新しいKMを使用する場合は、KMをインポートする必要があります。プロジェクトKMまたはグローバルKMのいずれかをインポートできます。ナレッジ・モジュールの有効範囲の詳細は、9.3.1項「プロジェクトおよびグローバル・ナレッジ・モジュール」を参照してください。

- 既存のグローバルKMまたはプロジェクトKMの新規バージョンを使用する場合や、既存のKMを別のKMで置換する必要がある場合は、このKMを置換できます。

この項の内容は次のとおりです。

- プロジェクト・ナレッジ・モジュールのインポート

- ナレッジ・モジュールの置換

- グローバル・ナレッジ・モジュールのインポート

プロジェクト・ナレッジ・モジュールのインポート

プロジェクト・ナレッジ・モジュールをプロジェクトにインポートするには:

1. デザイナ・ナビゲータの「プロジェクト」アコーディオンで、KMをインポートするプロジェクトを選択します。

2. 右クリックして「インポート」→「ナレッジ・モジュールのインポート」の順に選択します。

3. 「ファイル・インポート・ディレクトリ」を指定します。このディレクトリにある使用可能なKMエクスポート・ファイルのリストが表示されます。

4. リストから複数のKMを選択し、「OK」をクリックします。

5. 選択したKMがインポートされ、インポート・レポートに表示されます。

6. 「閉じる」をクリックしてこのレポートを閉じます。

ナレッジ・モジュールがプロジェクトにインポートされます。インポートされたナレッジ・モジュールは、プロジェクトの「ナレッジ・モジュール」ノードの下に、KMタイプ別にグループ化されて表示されます。

注意:

ナレッジ・モジュールは「複製」モードでのみインポートできます。既存のナレッジ・モジュールを置換する場合は、次に説明する「置換のインポート」メソッドを使用します。KMを「複製」モードでインポートし、そのKMがすでにプロジェクトに存在している場合、ODIは接頭辞copy_ofが付いた新しいKMを作成します。

ナレッジ・モジュールの置換

グローバルKMまたはプロジェクトのKMを別のKMで置換し、その新しいKMをすべてのインタフェースで自動的に使用する場合は、「置換のインポート」モードを使用する必要があります。

ナレッジ・モジュールを置換モードでインポートするには:

1. デザイナ・ナビゲータで、置換するナレッジ・モジュールを選択します。

2. 右クリックして「置換のインポート」を選択します。

3. 「オブジェクトの置換」ダイアログで、置換に使用するKMのエクスポート・ファイルを選択します。

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

現在のナレッジ・モジュールが新規ナレッジ・モジュールで置換されます。

注意:

ナレッジ・モジュールを別のナレッジ・モジュールで置換する場合、Oracle Data Integratorでは、古いモジュールのオプションと名前が一致するオプションを使用して、新規モジュールのインタフェースのオプションが設定されます。ユーザーがインタフェースでKMオプションを設定していた場合は、新しいKMに同じ名前のオプションがあればその値が保持されます。新規オプションは、デフォルト値に設定されます。インタフェースでこれらの新規オプションの値を確認することをお薦めします。

構造や動作が異なるKMで現在のKMを置換(たとえば、IKMをRKMで置換)すると、問題が発生する可能性があります。新規KMを使用してインタフェースの設計と実行を確認することをお薦めします。

グローバル・ナレッジ・モジュールのインポート

Oracle Data Integratorにグローバル・ナレッジ・モジュールをインポートするには:

1. ナビゲータの「グローバル・オブジェクト」アコーディオンで「グローバル・ナレッジ・モジュール」ノードを選択します。

2. 右クリックして「ナレッジ・モジュールのインポート」を選択します。

3. 「インポート」ダイアログで、次の手順を実行します。

1. 「インポート・タイプ」の値を選択します。詳細は、20.1.3項「インポート・タイプ」を参照してください。

2. 「ファイル・インポート・ディレクトリ」を入力します。

3. インポートするファイル(1つまたは複数)をリストから選択します。

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

すべてのプロジェクトにグローバルKMが表示されます。

9.3.5 KMの暗号化および復号化

ナレッジ・モジュール(KM)を暗号化すると、重要なコードを保護できます。暗号化されたKMは、復号化しないかぎり、読み取ったり変更することはできません。暗号化されたKMまたはプロシージャによってログに生成されるコマンドも読み取ることはできません。

Oracle Data Integratorでは、個人暗号化鍵に基づいたDES暗号化アルゴリズムが使用されます。この鍵は、ファイルに保存して、暗号化または復号化操作を実行する際に再利用できます。

警告:

暗号化されたKMまたはプロシージャを暗号化鍵なしで復号化する方法はありません。したがって、この鍵は安全な場所に保管しておくことをお薦めします。

KMまたはプロシージャを暗号化するには:

1. デザイナ・ナビゲータの「プロジェクト」ツリーでプロジェクトを展開し、暗号化するKMを選択します。

2. 右クリックして「暗号化」を選択します。

3. 「暗号化オプション」ウィンドウで、次のいずれかのオプションを選択します。

- 個人キーで暗号化します: 個人キー・ファイルの場所を指定するか、個人キーの値を入力して、すでに存在している個人キーで暗号化します。

- 新規暗号化鍵を取得します: 新しい鍵を生成します。

4. 「OK」をクリックしてKMを暗号化します。新しい鍵の生成を選択した場合は、ウィンドウに新しい鍵も表示されます。このウィンドウで鍵をファイルに保存できます。

注意:

文字数が少なすぎる個人キーを入力すると、キー・サイズが無効であるというエラーが発生します。この場合は、より長い個人キーを入力してください。個人キーには、10個以上の文字数が必要です。

KMまたはプロシージャを復号化するには:

1. デザイナ・ナビゲータの「プロジェクト」ツリーでプロジェクトを展開し、復号化するKMを選択します。

2. 右クリックして「復号化」を選択します。

3. 「KM復号化」ウィンドウで、次のいずれかの操作を実行します。

- 既存の暗号化鍵ファイルを選択します。

- 個人キーに対応する文字列を入力(または貼付け)します。

4. 「OK」をクリックして復号化します。

9.4 フォルダを使用したプロジェクトの編成

プロジェクト内のインタフェース、プロシージャおよびパッケージは、フォルダとサブフォルダに編成されます。フォルダを使用してプロジェクトの正しい編成を維持することをお薦めします。フォルダを使用することで、プロジェクトで開発したオブジェクトの検索やメンテナンス・タスクが容易になります。編成の詳細は、第18章「作業の編成およびドキュメント化」を参照してください。

10 パッケージの使用

この章では、パッケージおよびステップの概要について説明します。また、パッケージの作成プロセスを紹介し、パッケージ内でのステップの処理に関する追加情報も提供します。

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

- 10.1項「パッケージの概要」

- 10.2項「新規パッケージの作成」

- 10.3項「ステップの使用」

- 10.4項「ステップの順序の定義」

- 10.5項「パッケージの実行」

10.1 パッケージの概要

パッケージはOracle Data Integratorで最大の実行単位です。パッケージは実行ダイアグラム内に編成された一連のステップで構成されます。

各ステップは、成功または失敗の実行結果となります。ステップは、実行結果(成功または失敗)に従って別のステップに分岐できます。

10.1.1 ステップの概要

表10-1に、様々なステップのタイプを示します。その他の詳細情報の参照先も示しています。

表10-1 ステップのタイプ

タイプ

説明

関連項目

フロー(インタフェース)

インタフェースを実行します。

10.3.1.1項「インタフェースの実行」

プロシージャ

プロシージャを実行します。

10.3.1.2項「プロシージャの実行」

変数

変数の値を宣言、設定、リフレッシュまたは評価します。

10.3.1.3項「変数のステップ」

Oracle Data Integratorツール

ツールボックスから使用可能なこれらのツールは、Oracle Data Integrator APIのすべてのコマンドへのアクセスや、オペレーティング・システム・コールの実行を可能にします。

10.3.1.4項「Oracle Data Integratorツール・ステップの追加」

モデル、サブモデルおよびデータストア

これらのオブジェクトに対してジャーナル化、静的チェックまたはリバースエンジニアリング操作を実行します。

10.3.1.5項「モデル、サブモデルおよびデータストアの関連ステップ」

図10-1 サンプル・パッケージ

「図10-1 サンプル・パッケージ」の説明

たとえば、図10-1に表示されている「Load Customers and Invoice」というパッケージの例は、次のアクションを実行します。

1. なんらかのバックアップ操作を実行する「System Backup」プロシージャを実行します。

2. 顧客グループ・データストアをロードする「Customer Group」インタフェースを実行します。

3. 顧客データストアをロードする「Customer」インタフェースを実行します。

4. 製品データストアをロードする「Product」インタフェースを実行します。

5. 「Last Invoice ID」ステップの変数をリフレッシュし、この変数の値をパッケージで後で使用できるように設定します。

6. 請求書ヘッダー・データストアをロードする「Invoice Header」インタフェースを実行します。

7. 請求書データストアをロードする「Invoice Lines」インタフェースを実行します。

8. 前述のいずれかのステップが失敗となると、このパッケージは、Oracle Data Integratorのツールを使用して電子メールを管理者に送信する「Send Alert」ステップを実行します。

10.1.2 パッケージの作成の概要

パッケージはパッケージ・ダイアグラム・エディタで作成されます。詳細は、10.1.3項「パッケージ・エディタの概要」を参照してください。

パッケージの作成は、次の主な手順で構成されます。

1. 新規パッケージを作成します。詳細は、10.2項「新規パッケージの作成」を参照してください。

2. パッケージでステップを使用します(追加、複製、削除など)。詳細は、10.3項「ステップの使用」を参照してください。

3. ステップの順序を定義します。詳細は、10.4項「ステップの順序の定義」を参照してください。

4. パッケージを実行します。詳細は、10.5項「パッケージの実行」を参照してください。

10.1.3 パッケージ・エディタの概要

パッケージ・エディタには、パッケージを設計するための単一の環境が用意されています。図10-2に、パッケージ・エディタの概観を示します。

図10-2 パッケージ・エディタ

「図10-2 パッケージ・エディタ」の説明

表10-2 パッケージ・エディタの各セクション

セクション

図の中の位置

説明

デザイナ・ナビゲータ

左側

デザイナ・ナビゲータには、プロジェクト、モデル、ソリューション、およびその他(グローバル)のコンポーネントがツリー状に表示されます。

パッケージ・ダイアグラム

中央

インタフェース、プロシージャ、データストア、モデル、サブモデル、変数などのコンポーネントにステップを作成するために、デザイナ・ナビゲータからパッケージ・ダイアグラムに、これらのコンポーネントをドラッグします。

このダイアグラムでは、ステップの順序の定義やステップの編成を実行することもできます。

「パッケージ」ツールボックス

パッケージ・ダイアグラムの左側

ツールボックスには、Oracle Data Integratorの使用可能なツールのリストが表示され、このリストからパッケージにツールを追加できます。これらのツールは、タイプ別にグループ化されています。

「パッケージ」ツールバー

パッケージ・ダイアグラムの最上部

パッケージ・ツールバーには、パッケージ内のステップを編成したり、ステップの順序を指定するツールがあります。

「プロパティ」パネル

パッケージ・ダイアグラムの下

このパネルには、パッケージ・ダイアグラムで選択されているオブジェクトのプロパティが表示されます。

10.2 新規パッケージの作成

新規パッケージを作成するには:

1. デザイナ・ナビゲータの「プロジェクト」ツリーで、パッケージを作成するフォルダの「パッケージ」ノードをクリックします。

2. 右クリックして「新規パッケージ」を選択します。

3. パッケージの「名前」を入力します。

4. 「ダイアグラム」タブに移動します。

5. 10.3項「ステップの使用」の説明に従って、ステップを追加します。

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

10.3 ステップの使用

パッケージは、編成された一連のステップです。パッケージの定義の大部分は、このパッケージのステップを使用することで構成されます。

10.3.1 ステップの追加

ステップの追加は、挿入するステップの性質によって異なります。ステップの各タイプの詳細は、表10-1を参照してください。次に、様々なタイプのステップを追加する手順を示します。

10.3.1.1 インタフェースの実行

フロー(インタフェース)ステップを挿入するには:

1. パッケージ・エディタを開き、「ダイアグラム」タブに移動します。

2. デザイナ・ナビゲータの「プロジェクト」ツリーから、パッケージに追加するインタフェースを選択します。

3. インタフェースをダイアグラムにドラッグ・アンド・ドロップします。フロー・ステップが表示されます。

4. ダイアグラムでステップのアイコンをクリックします。プロパティ・パネルが開きます。

5. 「一般」タブで、「ステップ名」フィールドを編集します。

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

10.3.1.2 プロシージャの実行

プロシージャ・ステップを挿入するには:

1. パッケージ・エディタを開き、「ダイアグラム」タブに移動します。

2. デザイナ・ナビゲータの「プロジェクト」ツリーから、パッケージに追加するプロシージャを選択します。

3. プロシージャをダイアグラムにドラッグ・アンド・ドロップします。プロシージャ・ステップが表示されます。

4. ダイアグラムでステップのアイコンをクリックします。プロパティ・パネルが開きます。

5. 「一般」タブで、「ステップ名」フィールドを編集します。

6. 「オプション」タブで、必要に応じてプロシージャのオプションを設定します。

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

10.3.1.3 変数のステップ

Oracle Data Integratorには、変数の様々なステップがあります。

- 変数の宣言: 変数をパッケージ(またはパッケージ内で使用されるトポロジの要素)で使用する場合は、パッケージに変数の宣言ステップを挿入することをお薦めします。このステップで、パッケージの変数を明示的に宣言します。

- 変数のリフレッシュ: このステップは、変数定義に指定されている問合せを実行して、変数をリフレッシュします。

- 変数の設定: このステップには2つの機能があります。

- 割当てでは、変数の現在の値を設定します。

- 増分では、指定の分量ずつ数値を増減します。

- 変数の評価: このステップは、変数の値と指定された値をオペレータに従って比較します。条件を満たすと、評価ステップはtrueとなり、それ以外の場合はfalseとなります。このステップを使用して、パッケージ内を分岐できます。

Declaring a Variable

変数の宣言ステップを挿入するには:

1. パッケージ・エディタを開き、「ダイアグラム」タブに移動します。

2. デザイナ・ナビゲータで、パッケージに追加する変数を選択します。プロジェクト変数の場合は「プロジェクト」ツリーから、グローバル変数の場合は「その他」ツリーから選択します。

3. 変数をダイアグラムにドラッグ・アンド・ドロップします。変数ステップが表示されます。

4. ダイアグラムでステップのアイコンをクリックします。プロパティ・パネルが開きます。

5. 「一般」タブで、「ステップ名」フィールドに名前を入力します。「ステップ・タイプ」で「変数の宣言」を選択します。

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

Refreshing a Variable

変数のリフレッシュ・ステップを挿入するには:

1. パッケージ・エディタを開き、「ダイアグラム」タブに移動します。

2. デザイナ・ナビゲータで、パッケージに追加する変数を選択します。プロジェクト変数の場合は「プロジェクト」ツリーから、グローバル変数の場合は「その他」ツリーから選択します。

3. 変数をダイアグラムにドラッグ・アンド・ドロップします。変数ステップが表示されます。

4. ダイアグラムでステップのアイコンをクリックします。プロパティ・パネルが開きます。

5. 「一般」タブで、「ステップ名」フィールドに名前を入力します。「ステップ・タイプ」で「変数のリフレッシュ」を選択します。

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

変数の設定

変数の設定ステップを挿入するには:

1. パッケージ・エディタを開き、「ダイアグラム」タブに移動します。

2. デザイナ・ナビゲータで、パッケージに追加する変数を選択します。プロジェクト変数の場合は「プロジェクト」ツリーから、グローバル変数の場合は「その他」ツリーから選択します。

3. 変数をダイアグラムにドラッグ・アンド・ドロップします。変数ステップが表示されます。

4. ダイアグラムでステップのアイコンをクリックします。プロパティ・パネルが開きます。

5. 「一般」タブで、「ステップ名」フィールドに名前を入力します。「ステップ・タイプ」で「変数の設定」を選択します。

6. 変数値に対して実行する操作に従って、「割当て」または「増分」を選択します。

7. 「値」フィールドに、設定する値または増分する値を入力します。この値に別の変数を指定することもできます。

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

変数の評価

変数の評価ステップを挿入するには:

1. パッケージ・エディタを開き、「ダイアグラム」タブに移動します。

2. デザイナ・ナビゲータで、パッケージに追加する変数を選択します。プロジェクト変数の場合は「プロジェクト」ツリーから、グローバル変数の場合は「その他」ツリーから選択します。

3. 変数をダイアグラムにドラッグ・アンド・ドロップします。変数ステップが表示されます。

4. ダイアグラムでステップのアイコンをクリックします。プロパティ・パネルが開きます。

5. 「一般」タブで、「ステップ名」フィールドに名前を入力します。「ステップ・タイプ」で「変数の評価」を選択します。

6. 変数値の比較に使用する「オペレータ」を選択します。

7. 「値」フィールドに、変数と比較する値を入力します。この値に別の変数を指定することもできます。

注意:

「値」フィールドには、値のリストを指定できます。INオペレータを使用する場合は、セミコロン(;)を使用してリストの値を区切ります。

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

変数の評価ステップは、評価結果に基づいて分岐できます。ステップのブランチの詳細は、10.4項「ステップの順序の定義」を参照してください。

10.3.1.4 Oracle Data Integratorツール・ステップの追加

Oracle Data Integratorには、パッケージで単純な操作を実行する際に使用できるツールが用意されています。ツールは、組込みツール、またはユーザーがデータ統合ツールボックスを拡充できるオープン・ツールにできます。

Oracle Data Integratorツール・ステップを挿入するには:

1. パッケージ・エディタを開き、「ダイアグラム」タブに移動します。

2. パッケージの「ツールボックス」から、使用するツールを選択します。オープン・ツールは、「プラグイン」グループに表示されます。

3. パッケージ・ダイアグラムをクリックします。ツールに対応するステップが表示されます。

4. プロパティ・パネルの「一般」タブで、「ステップ名」フィールドに名前を入力します。

5. ツールのパラメータに値を設定します。パラメータを選択すると、パラメータの説明が表示されます。詳細は、付録A「Oracle Data Integrator Toolsリファレンス」を参照してください。

6. 「コマンド」タブで、このツール・コールのコードを編集できます。

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

Oracle Data Integratorパッケージでは、次のツールがよく使用されます。

- OdiStartScen: Oracle Data Integratorシナリオを同期または非同期で開始します。OdiStartScenステップを作成するには、デザイナ・ナビゲータからダイアグラムにシナリオを直接ドラッグ・アンド・ドロップします。

- OdiInvokeWebService: Webサービスを呼び出し、レスポンスをXMLファイルに保存します。

- OSコマンド: オペレーティング・システム・コマンドをコールします。オペレーティング・システム・コマンドを使用すると、作成したパッケージがプラットフォーム依存となる可能性があります。

Oracle Data Integratorのツールのリストは、付録A「Oracle Data Integrator Toolsリファレンス」を参照してください。

注意:

ステップ・プロパティ・パネルを介してツールのパラメータを設定する場合は、グラフィカルなヘルパーにより、簡単に使用できる方法で値を選択できます。たとえば、パラメータにプロジェクト識別子が必要な場合は、グラフィカル・インタフェースで識別子の表現が再設計され、選択肢としてプロジェクト名のリストが表示されます。「コマンド」タブに切り替えることで、コマンドと識別子を確認できます。

10.3.1.5 モデル、サブモデルおよびデータストアの関連ステップ

モデル、サブモデルおよびデータストアに対してジャーナル化、静的チェックまたはリバースエンジニアリングを実行できます。これらのステップを作成するプロセスは、次の各項で説明します。

10.3.1.6 モデル、サブモデルまたはデータストアのチェック

パッケージにチェック・ステップを挿入するには:

注意:

この静的チェックを実行するには、モデルでCKMを定義する必要があります。

1. パッケージ・エディタを開き、「ダイアグラム」タブに移動します。

2. デザイナ・ナビゲータの「モデル」ツリーから、チェックするモデル、サブモデルまたはデータストアを選択します。

3. このモデル、サブモデルまたはデータストアをダイアグラムにドラッグ・アンド・ドロップします。

4. 「一般」タブまたはプロパティ・パネルで、「ステップ名」フィールドに名前を入力します。「ステップ・タイプ」で「モデル・チェック」、「データストア・チェック」または「サブモデル・チェック」を選択します。

5. この静的チェックでチェックした表からエラーのある行を削除する場合は、「チェック済表からのエラーの削除」を選択します。

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

10.3.1.7 モデルまたはデータストアのジャーナル化

ジャーナル化ステップを挿入するには:

注意:

ジャーナル化操作を実行するには、モデルでJKMを定義する必要があります。

1. パッケージ・エディタを開き、「ダイアグラム」タブに移動します。

2. デザイナ・ナビゲータの「モデル」ツリーから、チェックするモデルまたはデータストアを選択します。

3. このモデルまたはデータストアをダイアグラムにドラッグ・アンド・ドロップします。

4. 「一般」タブまたはプロパティ・パネルで、「ステップ名」フィールドに名前を入力します。「ステップ・タイプ」で「モデルのジャーナル化」または「データストアのジャーナル化」を選択します。

5. ジャーナル化オプションを選択します。これらのオプションの詳細は、第6章「チェンジ・データ・キャプチャの使用」を参照してください。

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

10.3.1.8 モデルのリバースエンジニアリング

リバースエンジニアリング・ステップを挿入するには:

1. パッケージ・エディタを開き、「ダイアグラム」タブに移動します。

2. デザイナ・ナビゲータの「モデル」ツリーから、リバースエンジニアリングするモデルまたはデータストアを選択します。

3. このモデルをダイアグラムにドラッグ・アンド・ドロップします。

4. 「一般」タブまたはプロパティ・パネルで、「ステップ名」フィールドに名前を入力します。「ステップ・タイプ」で「モデル・リバース」を選択します。

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

注意:

このリバースエンジニアリング・プロセスの実行には、モデル定義に設定されているリバースエンジニアリング・オプションが使用されます。

10.3.2 ステップの削除

ステップを削除するには:

1. パッケージ・ツールバーのタブで、「自由選択」ツールを選択します。

2. 削除するステップをダイアグラムで選択します。

3. 右クリックして「ステップの削除」を選択します。

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

ダイアグラムからステップが消去されます。

注意:

パッケージ・ダイアグラムでの削除操作は元に戻すことができません。

10.3.3 ステップの複製

ステップを複製するには:

1. パッケージ・ツールバーのタブで、「自由選択」ツールを選択します。

2. 複製するステップをダイアグラムで選択します。

3. 右クリックして「ステップの複製」を選択します。

ステップのコピーがダイアグラムに表示されます。

10.3.4 ステップの実行

ステップを実行するには:

1. パッケージ・ツールバーのタブで、「自由選択」ツールを選択します。

2. 実行するステップをダイアグラムで選択します。

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

4. 「実行」ウィンドウで、次の実行パラメータを選択します。

- ステップを実行する「コンテキスト」を選択します。

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

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

6. 「セッションを開始しました」ウィンドウが表示されます。

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

ステップの実行は、オペレータ・ナビゲータで確認できます。

10.3.5 ステップのリンクされたオブジェクトの編集

ステップのリンクされたオブジェクトは、ステップの作成元であるインタフェース、プロシージャ、変数などを指します。このオブジェクトは、パッケージ・ダイアグラムで編集できます。

ステップのリンクされたオブジェクトを編集するには:

1. パッケージ・ツールバーのタブで、「自由選択」ツールを選択します。

2. 編集するステップをダイアグラムで選択します。

3. 右クリックして「リンクされたオブジェクトの編集」を選択します。

リンクされたオブジェクトのエディタが開きます。

10.3.6 ステップのレイアウトの調整

ダイアグラムを見やすくするために、ダイアグラム内のステップを調整できます。

ダイアグラム内のステップを調整するには:

1. パッケージのツールバー・メニューから「自由選択」ツールを選択します。

2. 調整する複数のステップを選択します。

- [Ctrl]キーを押しながら各ステップを選択します。

- マウスの左ボタンを押したままダイアグラムでカーソルをドラッグします。

3. 選択したステップを調整するには、次のいずれかの方法を使用できます。

- ダイアグラムでステップをドラッグして位置を調整します。

- 右クリックし、コンテキスト・メニューから「垂直方向の位置合せ」または「水平方向の位置合せ」オプションを選択します。

ツールバーの「再編成」ボタンを使用して、ステップを自動的に再編成することもできます。

10.4 ステップの順序の定義

ステップを作成した後は、データ処理チェーンにおける各ステップの順序を再設定する必要があります。このチェーンには、次のルールがあります。

- ステップは、「最初のステップ」として定義された一意のステップで開始します。

- 各ステップには、成功または失敗という2つの終了状態があります。

- 失敗または成功したステップは、別のステップに続けるか、パッケージの終点にできます。

- 失敗した場合の再試行回数を定義できます。

パッケージの始点(最初のステップ)は1つですが、終了ステップは複数設定できます。

失敗条件

次の表に、ステップが失敗状態になる条件を示します。これ以外の状況では、ステップは成功状態で終了します。

ステップのタイプ

失敗条件

フロー

- インタフェース・コマンドでエラーが発生しました。

- エラーの最大許容数または最大許容率に到達しました。

プロシージャ

プロシージャ・コマンドでエラーが発生しました。

変数のリフレッシュ

リフレッシュ問合せの実行時にエラーが発生しました。

変数の設定

変数の設定時にエラーが発生しました(無効な値)。

変数の評価

ステップに定義された条件に一致しません。

変数の宣言

このステップには失敗条件がなく常に成功します。

Oracle Data Integratorツール

Oracle Data Integratorツールのリターン・コードがゼロではありません。このツールがOSコマンドの場合、ゼロ以外のコマンドのリターン・コードが失敗ケースです。

データストア、モデルまたはサブモデルのジャーナル化

ジャーナル化コマンドでエラーが発生しました。

データストア、モデルまたはサブモデルのチェック

チェック・プロセスでエラーが発生しました。

モデルのリバース

リバースエンジニアリング・プロセスでエラーが発生しました。

順序の定義

パッケージの最初のステップを定義するには:

1. パッケージ・ツールバーのタブで、「自由選択」ツールを選択します。

2. ダイアグラムで最初のステップとして設定するステップを選択します。

3. 右クリックして「最初のステップ」を選択します。

ステップのアイコンに、最初のステップであることを示す記号が表示されます。

成功時の次のステップを定義するには:

1. パッケージ・ツールバーのタブで、「成功時の次のステップ」ツールを選択します。

2. ダイアグラムでステップを選択します。

3. マウスのボタンを押したまま、成功時に進行するステップのアイコンまでカーソルを移動し、マウス・ボタンを放します。

4. この操作を繰り返し、成功時の一連の経路に配置するすべてのステップをリンクします。この経路は、「最初のステップ」で定義したステップから開始する必要があります。

経路が正常に設定されたことを示す緑色の矢印が、ステップの間に「OK」ラベル付きで表示されます。変数の評価ステップの場合は、「true」のラベルが付きます。

失敗時の次のステップを定義するには:

1. パッケージ・ツールバーのタブで、「失敗時の次のステップ」ツールを選択します。

2. ダイアグラムでステップを選択します。

3. マウスのボタンを押したまま、失敗時に進行するステップのアイコンまでカーソルを移動し、マウス・ボタンを放します。

4. この操作を繰り返し、ワークフロー論理に従ってステップをリンクします。

経路が正常に設定されていないことを示す赤色の矢印が、ステップの間に「ko」ラベル付きで表示されます。変数の評価ステップの場合は、緑色の矢印に「false」のラベルが付きます。

失敗時のパッケージの最終ステップを定義するには:

デフォルトでは、成功または失敗条件の後に別のステップにリンクされていないステップは、この成功または失敗の条件を満たすとパッケージを終了することになります。この動作は、ステップの動作を編集することで設定できます。

1. パッケージ・ツールバーのタブで、「自由選択」ツールを選択します。

2. 編集するステップを選択します。

3. プロパティ・パネルで、「拡張」タブを選択します。

4. 「失敗後の処理」または「成功後の処理」で、「終了」を選択します。ダイアグラムで、ステップの後ろのリンクが消去されます。

5. 必要に応じて、ステップの再試行回数と再試行間隔を「試行回数」および「試行間隔」に設定します。

10.5 パッケージの実行

パッケージを実行するには:

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

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

3. 「実行」ウィンドウで、次の実行パラメータを選択します。

- パッケージが実行される「コンテキスト」を選択します。

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

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

5. 「セッションを開始しました」ウィンドウが表示されます。

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

パッケージの実行は、オペレータ・ナビゲータで確認できます。

11 統合インタフェースの使用

この章では、統合インタフェースの使用方法について説明します。また、インタフェース・コンポーネントおよびインタフェース・エディタの概要も説明します。

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

- 11.1項「統合インタフェースの概要」

- 11.2項「インタフェース・エディタの概要」

- 11.3項「インタフェースの作成」

- 11.4項「クイック編集エディタの使用」

- 11.5項「統合インタフェースの設計: E-LTスタイルのインタフェースとETLスタイルのインタフェース」

11.1 統合インタフェースの概要

インタフェースは、1つ以上のソース・データストアからのデータストアまたは一時ターゲット構造のロードを定義する一連のルールで構成されています。

11.3項「インタフェースの作成」で統合インタフェースを作成するには、その前に、統合インタフェースの主要なコンポーネントとインタフェース・エディタについて理解する必要があります。統合インタフェースの設計に使用するコンポーネントの概要は、11.1.1項「統合インタフェースのコンポーネント」で説明します。インタフェース・エディタについては、11.2項「インタフェース・エディタの概要」で説明します。

11.1.1 統合インタフェースのコンポーネント

統合インタフェースは、次のコンポーネントによって構成および定義されます。

- ターゲット・データストア
ターゲット・データストアは、インタフェースによってロードされる要素です。永続データストア(モデル内で定義される)と、一時データストア(インタフェースによって作成される)があります。

- データセット
1つのターゲットはいくつかのデータセットからデータとともにロードされます。集合ベースの演算子(UNION、INTERSECTなど)を使用して、異なるデータセットをターゲット・データストアにマージできます。

各データセットは、ソース・データストアの1つのダイアグラムと、これらのソース・データストアからターゲット・データストアをロードする場合に使用するマッピングに対応します。

- ソース・データストアのダイアグラム
ソースのダイアグラムは、結合を使用して関係付けられた複数のソース・データストアで構成されています(フィルタ処理することもできます)。ソースのダイアグラムには、ターゲットのロードに関する追加情報をフェッチするためにルックアップも含まれています。

インタフェースのソースとして使用できるオブジェクトのタイプは、モデルからのデータストアとインタフェースからのデータストアの2タイプです。インタフェースを使用する場合は、そのターゲット・データストア(一時データストアの場合とそうでない場合)がソースとして使用されます。

インタフェースのソース・データストアは、ロード・プロセス時にフィルタ処理ができ、結合を使用して関係付ける必要があります。結合とフィルタはモデルからコピーするか、またはインタフェースで定義することもできます。結合とフィルタはSQL式の形式で実装されます。

- マッピング
マッピングは、1つのターゲット列をロードするために1つ以上のソース列で実行される変換を定義します。この変換は、SQL式の形式で実装されます。各データセットのターゲット列ごとに1つのマッピングがあります。ターゲットでマッピングが実行されると、同じマッピングがすべてのデータセットに適用されます。

- ステージング領域
ステージング領域は、いくつかの変換(結合、フィルタおよびマッピング)が実行される論理スキーマです。デフォルトでは、ステージング領域はターゲットの論理スキーマと同じスキーマです。

ステージング領域は別の場所(いずれかのソースを含む)に配置できます。これは、ターゲットの論理スキーマがステージング領域として不適切な場合に該当します。たとえば、ターゲットがファイル・データストアの場合は、ファイル・テクノロジには変換機能がないため、ステージング領域として不適切です。

マッピングは、ソース、ターゲットまたはステージング領域のいずれかで実行できます。フィルタおよび結合は、ソースまたはステージング領域のいずれかで実行できます。

- フロー
フローは、ソース、ステージング領域(ターゲットと異なる場合)、およびターゲット(結合やフィルタが実行される場所)の間のデータの流れを表します。また、フローには、このインタフェースで使用されるロード・メソッドや統合メソッドも含まれます。これらを選択するには、ロード・ナレッジ・モジュール(LKM)および統合ナレッジ・モジュール(IKM)を選択します。

- 制御
インタフェースでは、2つのポイントの制御が実装されます。フロー制御では、データがターゲットに統合されるまでのデータの流れがチェックされます。統合後制御では、インタフェースの最後でターゲット表の静的チェックが実行されます。フロー制御および統合後制御でのチェック計画は、チェック・ナレッジ・モジュール(CKM)で定義されます。

インタフェースは次のコンポーネントを使用します。これらのコンポーネントは、インタフェースの作成前に作成する必要があります。

- ロード・プロセスのソースおよびターゲットとして使用されるデータストア。これは、データ・モデルに移入する必要があります。詳細は、第5章「モデルの作成およびリバースエンジニアリング」を参照してください。

- インタフェースの実行コンテキストでの正しい物理スキーマと論理スキーマ、およびそれらのマッピング。ステージング領域がソースまたはターゲット以外のスキーマで定義される場合、これらはインタフェースの作成前に定義する必要があります。詳細は、第4章「トポロジの設定」を参照してください。

- フローで選択されるナレッジ・モジュール(IKM、LKM、CKM)。これは、プロジェクトにインポートされているか、グローバル・ナレッジ・モジュールとして使用できる必要があります。詳細は、第9章「統合プロジェクトの作成」を参照してください。

- マッピング式、フィルタ式または結合式で使用する変数、順序およびユーザー関数。これらはプロジェクトに作成する必要があります。詳細は、第12章「プロシージャ、変数、順序およびユーザー関数の使用」を参照してください。

11.2 インタフェース・エディタの概要

インタフェース・エディタでは、1つの環境で統合インタフェースを設計できます。インタフェース・エディタを使用すると、統合インタフェースを作成および編集できます。

図11-1 インタフェース・エディタ

「図11-1 インタフェース・エディタ」の説明

インタフェース・エディタは、表11-1に説明するセクションで構成されています。

表11-1 インタフェース・エディタのセクション

セクション

図の中の位置

説明

デザイナ・ナビゲータ

左側

デザイナ・ナビゲータには、プロジェクト、モデル、ソリューション、およびその他(グローバル)のコンポーネントがツリー状に表示されます。

ソース・ダイアグラム

中央

「モデル」ツリーからソース・データストアを、「プロジェクト」ツリーからインタフェースをソース・ダイアグラムにドラッグします。このダイアグラムでは、結合やフィルタを定義したり編集することもできます。

ソース・ダイアグラムのツールバー

中央、ソース・ダイアグラムの上部

このツールバーには、ソース・ダイアグラムで使用できるツール、およびダイアグラムの表示オプションが表示されます。

データセットのタブ

中央、ソース・ダイアグラムの下部

インタフェース・エディタでは、データセットがタブとして表示されます。

インタフェース・エディタのタブ

中央、データセットのタブの下部

インタフェース・エディタのタブは、インタフェース作成プロセスの順序に従って表示されています。次のタブがあります。

- 概要

- マッピング

- クイック編集

- フロー

- 制御

- シナリオ

- 実行

ターゲット・データストア・パネル

右上部

ターゲット・データストアをデザイナ・ナビゲータの「モデル」ツリーからターゲット・データストア・パネルにドラッグします。ターゲット・データストアとともに各列のマッピングがこのパネルに表示されます。プロパティ・インスペクタでデータストアを編集するには、データストアのタイトルまたは特定の列を選択します。このパネルでは、インタフェースの一時ターゲットを作成することもできます。

プロパティ・インスペクタ

下部

選択したオブジェクトのプロパティが表示されます。

プロパティ・インスペクタが表示されていない場合は、「表示」メニューから「プロパティ・インスペクタ」を選択します。

11.3 インタフェースの作成

インタフェースは標準プロセスに従って作成しますが、このプロセスはユースケースによって異なる場合があります。通常は、次の手順に従ってインタフェースを作成します。

1. 新規インタフェースの作成

2. ターゲット・データストアの定義

3. データセットの定義

4. ソース・データストアおよびルックアップの定義

5. マッピングの定義

6. インタフェース・フローの定義

7. フロー制御および統合後制御の設定

8. 統合インタフェースの実行

手順2から5は、クイック編集エディタを使用して実行することもできます。詳細は、11.4項「クイック編集エディタの使用」を参照してください。

11.3.1 新規インタフェースの作成

新規インタフェースを作成するには:

1. デザイナ・ナビゲータで、インタフェースを作成するプロジェクトの下にあるフォルダ内から「インタフェース」ノードを選択します。

2. 右クリックして「新規インタフェース」を選択します。インタフェース・エディタが表示されます。

3. 「定義」タブで、インタフェースの「名前」を入力します。

4. インタフェースのステージング領域および最適化コンテキストを選択します。

注意:

デフォルトでは、ステージング領域はターゲットに設定されます。インタフェースに必要な変換機能がターゲットにない場合は、別の論理スキーマにステージング領域を配置する必要があります。これは、ファイルやJMSなどの論理スキーマが該当します。インタフェースにターゲット・データストアを定義した後は、ステージング領域を特定の場所に設定できます。設定するには、「概要」タブから「ターゲットと異なるステージング領域」オプションをクリックし、ステージング領域として使用する論理スキーマを選択します。

インタフェースに一時ターゲット・データストアがある場合、「ターゲットと異なるステージング領域」オプションはグレー表示されます。この場合、ステージング領域とターゲットは、一時ターゲットが作成されたスキーマと同じスキーマ上にあります。このため、この論理スキーマを選択する必要があります。

Oracle Data Integratorには、軽量のデータベース・エンジンが組み込まれています。このエンジンは、ステージング領域として使用できるデータベース・エンジンがない場合(ファイル間の変換を実行する場合など)に使用できます。このエンジンを使用するには、ステージング領域スキーマとして「In_MemoryEngine」を選択します。このエンジンが適しているのは、少量のデータを処理する場合のみです。

最適化コンテキストは、インタフェースの最適化を設計する際に使用するデータストアの物理組織を定義します。この物理組織を使用して、データストアをソース・セットにグループ化し、変換が可能な場所を定義して、最後にフローの構造を計算します。たとえば、最適化コンテキストで、2つの異なる論理スキーマにある2つのデータストアを同じデータ・サーバーに配置することによって解決される場合、インタフェースでは2つのデータストア間の結合をソース上に設定できます。

5. 「マッピング」タブに移動して続行します。11.3.2項「ターゲット・データストアの定義」から11.3.5項「マッピングの定義」までに説明する手順は、インタフェース・エディタの「マッピング」タブで実行します。

ヒント:

「マッピング」タブで使用されるソース・データストア、ルックアップ、一時インタフェースまたはターゲット・データストアのエディタを表示するには、オブジェクトを右クリックして「開く」を選択します。

11.3.2 ターゲット・データストアの定義

ターゲット・データストアは、インタフェースによってロードされる要素です。永続データストア(モデル内で定義される)と、一時データストア(インタフェースによってステージング領域で作成される)があります。

11.3.2.1 永続ターゲット・データストア

インタフェースに永続ターゲット・データストアを挿入するには:

1. デザイナ・ナビゲータで、「モデル」ツリーを展開し、ターゲットとして挿入するデータストアを含むモデルまたはサブモデルを展開します。

2. データストアを選択して「ターゲット・データストア」パネルにドラッグします。ターゲット・データストアが表示されます。

3. 固定されたコンテキストでこのデータストアをターゲットにする場合は、プロパティ・インスペクタで、このデータストアのコンテキストを選択します。デフォルトでは、インタフェースが実行されるコンテキストでデータストアがターゲットになります。このステップはオプションです。

4. このターゲット・データストアの特定のパーティションをターゲットにする場合は、プロパティ・インスペクタで、このデータストアに定義されているパーティションまたはサブパーティションをリストから選択します。このステップはオプションです。

ターゲット・データストアを定義した後は、そのデータを表示できます。

インタフェースの永続ターゲット・データストアのデータを表示するには:

1. 「ターゲット・データストア」パネルで、ターゲット・データストアのタイトルを右クリックします。

2. 「データ」を選択します。

データ・エディタにターゲット・データストアのデータが表示されます。一時ターゲット・データストアはインタフェースによって作成されるため、そのデータは表示できません。

11.3.2.2 一時ターゲット・データストア

一時ターゲット・データストアを追加するには:

1. 「ターゲット・データストア」パネルで、ターゲット・データストアのタイトル<Temporary Target Datastore>を選択して、ターゲット・データストアのプロパティ・インスペクタを表示します。

2. プロパティ・インスペクタの「ダイアグラム・プロパティ」タブで、このデータストアの「名前」を入力します。

注意:

データストア名には、ODIの予約名(JRN_FLAG、JRN_SUBSCRIBER、JRN_DATEなど)は使用しないでください。これらの名前を使用すると、エラー表のようなODIの中間的な表で、列名重複のSQLエラーが発生する可能性があります。

3. 事前定義されたコンテキストでこのデータストアをターゲットにする場合は、このデータストアのコンテキストを選択します。デフォルトでは、インタフェースが実行されるコンテキストでデータストアがターゲットになります。このステップはオプションです。

4. 「一時データストアの場所」を指定します。ステージング領域として機能する物理スキーマの作業スキーマまたはデータ・スキーマに一時データストアを作成する場合は、「作業スキーマ」または「データ・スキーマ」を選択します。スキーマの詳細は、第4章「トポロジの設定」を参照してください。

注意:

一時ターゲット・データストアが作成されるのは、フローを定義する際にIKMオプションのCREATE_TARGET_TABLEをアクティブ化した場合のみです。

5. 「概要」タブに移動し、この一時ターゲット・データストアが作成される論理スキーマを選択します。

列のない一時ターゲット・データストアが作成されます。列を追加して構造を定義する必要があります。

一時ターゲット・データストアに列を追加するには:

1. 「ターゲット・データストア」パネルで、ターゲット・データストアの名前を示すタイトル・バーを右クリックします。

2. 「列の追加」を選択します。

3. 新しい空の列が「ターゲット・データストア」パネルに表示されます。この新しい列を選択します。

4. 「ターゲット・マッピング」プロパティ・インスペクタの「ダイアグラム・プロパティ」タブで、「ターゲット列」フィールド・グループに新しい列の定義を指定します。列の名前、データ型、長さおよびスケールを定義する必要があります。

一時ターゲット・データストアから列を削除するには:

1. 「ターゲット・データストア」パネルで、削除する列を右クリックします。

2. 「削除」を選択します。

ソース・データストアの1つまたは複数の列を一時ターゲット・データストアに追加するには:

1. 11.3.4項「ソース・データストアおよびルックアップの定義」の説明に従って、ソース・データストアを追加します。

2. ソース・ダイアグラムで、追加するソース・データストアの列を選択します。

3. 右クリックして「ターゲット表への列の追加」を選択します。

4. 列がターゲット・データストアに追加されます。データ型は自動的に設定されます。

ソース・データストアのすべての列を一時ターゲット・データストアに追加するには:

1. ソース・データストアを追加します。

2. ソース・ダイアグラムで、ソース・データストアを表すエンティティのタイトルを選択します。

3. 右クリックして「ターゲットに追加」を選択します。

4. 列がターゲット・データストアに追加されます。データ型は自動的に設定されます。

11.3.2.3 更新キーの定義

インタフェースで更新機能またはフロー制御機能を使用する場合は、ターゲット・データストアに更新キーを定義する必要があります。

更新キーによって、ターゲットへの挿入前に、更新またはチェック対象になる各レコードが識別されます。このキーには、モデルのターゲット・データストアで定義された一意キーか、またはインタフェースのキーとして指定された列のグループを使用できます。

一意キーから更新キーを定義するには:

1. 「ターゲット・データストア」パネルで、ターゲット・データストアの名前を示すタイトル・バーを選択して、プロパティ・インスペクタを表示します。

2. 「ダイアグラム・プロパティ」タブで、リストから「更新キー」を選択します。

注意:

このリストに表示されるのは、このデータストアのモデルに定義されている一意キーのみです。

次の場合は、列から更新キーを定義することもできます。

- データストアに一意キーがない場合。一時ターゲット・データストアの場合は常に該当します。

- すでに定義したキーに関係なく、キーを指定する場合。

列から更新キーを定義する場合は、更新キーを構成する各列を手動で選択します。

列から更新キーを定義するには:

1. 更新キーが選択されている場合は、選択を解除します。このステップは、永続データストアの場合のみ実行します。

2. 「ターゲット・データストア」パネルで、更新キーを構成する列を1つ選択して、プロパティ・インスペクタを表示します。

3. 「ダイアグラム・プロパティ」タブで、「キー」ボックスを選択します。「ターゲット・データストア」パネルで、列の前にキーの記号が表示されます。

4. 更新キーを構成する列ごとにこの操作を繰り返します。

11.3.3 データセットの定義

データセットはデータストアのグループからのデータの流れを表します。いくつかのデータセットを、UNIONおよびINTERSECTなどの集合ベースの演算子を使用してインタフェースのターゲット・データストアとしてマージできます。データセットのサポート、およびサポートされる集合ベースの演算子は、ステージング領域のテクノロジの機能によって異なります。

「DataSet構成」ダイアログでは、インタフェースのデータセットを追加、削除および順序付けしたり、データセット間の演算子を定義できます。集合ベースの演算子は、常にステージング領域で実行されることに注意してください。

統合インタフェースを設計するときは、各データセットのマッピングが一貫している必要があります。つまり、各データセットには、同じ数のターゲット列がマップされている必要があります。

新規データセットを作成するには:

1. ソース・ダイアグラムのツールバーで、「DataSetの追加/削除」をクリックして「DataSet構成」ダイアログを表示します。

2. 「新規DataSetの追加」をクリックします。新規データセット用の新しい行がリストの最後に追加されます。

3. 「DataSet名」フィールドに新規データセットの名前を指定します。この名前は、データセットのタブに表示されます。

4. 「演算子」フィールドで、データセットの集合ベースの演算子を選択します。さらにデータセットを追加する場合は、ステップ2から4を繰り返します。

5. 「閉じる」をクリックします。

データセットの順序を調整するには:

1. 「DataSet構成」ダイアログでデータセットを選択します。

2. 「上」矢印キーや「下」矢印キーをクリックして、リスト内でデータストアの位置を上または下に移動します。

データセットを削除するには:

1. 「DataSet構成」ダイアログでデータセットを選択します。

2. 「削除」をクリックします。

11.3.4 ソース・データストアおよびルックアップの定義

ソース・データストアには、ターゲット・データストアのロードに使用されるデータが含まれています。インタフェース・ソースとして、モデルのデータストア、およびインタフェースのターゲットである一時データストアの2つのタイプのデータストアを使用できます。

別のインタフェースのターゲットである一時データストアをソースまたはルックアップ表として使用する場合は、次のいずれかを選択できます。

- 永続的な一時データストアを使用する: 最初のインタフェースを実行して一時データストアを作成およびロードし、2番目のインタフェースを実行してデータを取得します。通常は、パッケージ内の2つのインタフェースを順序付けます。

- 永続データストアを使用しない: 2番目のインタフェースによって、一時データストアのロードに対応した下位選択が生成されます。ソース・インタフェースのすべてのデータストアは同じデータ・サーバーに属する必要があるため(たとえば、ソース・インタフェースに複数のソース・セットを含めることはできません)、このオプションは常に使用できるわけではありません。このオプションをアクティブ化するには、ソースで「一時インタフェースを導出表として使用」を選択します。一時インタフェースを導出表として使用する場合、次のことにご注意ください:

- 生成される下位選択構文は、標準的な下位選択構文(デフォルトの動作)または最初のインタフェースで使用されるIKMからカスタマイズされた構文のいずれかになります。

- 導出表文のオプションを定義するコマンドを除くすべてのIKMコマンドでは、「導出表の下位選択文に現在のコマンドを使用」が無視されます。この制限により、たとえば、一時索引の管理はサポートされません。

インタフェースのソース・データストアは、ロード・プロセス時にフィルタ処理ができ、結合を使用して関係付ける必要があります。結合とフィルタはモデルから自動的にコピーするか、またはインタフェースで定義することもできます。

ルックアップは、モデルまたはインタフェースのターゲット・データストアからのデータストア(ルックアップ表と呼ばれます)で、結合式を使用してソース・データストア(駆動表)に関連付けられます。データはルックアップからフェッチされてマッピングで使用されます。

ルックアップ・データはマッピング式で使用されます。ルックアップ表は、ルックアップ・ウィザードを使用して追加されます。データベースに応じて、次の2つの構文がルックアップで使用できます。

- FROM句内のSQL左外部結合: ルックアップは標準ソースとして処理され、左外部結合式はルックアップをその駆動表に関連付けるために生成されます。

- SELECT句内のSQL式: ルックアップは、ルックアップ表からデータをフェッチするSELECT句内で実行されます。この構文は、小規模なルックアップ表では効率的な場合があります。

11.3.4.1 ソース・データストアの定義

インタフェースに永続タイプのソース・データストアを追加するには:

1. デザイナ・ナビゲータで、「モデル」ツリーを展開し、ソースとして挿入するデータストアを含むモデルまたはサブモデルを展開します。

2. データストアを選択してソース・ダイアグラムにドラッグします。ソース・データストアがダイアグラムに表示されます。

3. プロパティ・インスペクタの「ダイアグラム・プロパティ」タブで、ソース・データストアの「別名」を変更します。別名は、列名の接頭辞として使用されます。これは、マッピング式、結合式およびフィルタ式の読みやすさを向上させるためのオプションのステップです。

4. 固定されたコンテキストでこのデータストアからデータを取得する場合は、このデータストアのコンテキストを選択します。デフォルトでは、インタフェースが実行されるコンテキストでデータストアにアクセスします。このステップはオプションです。

5. このデータストアの特定のパーティションからデータを取得する場合は、このデータストアに定義されているパーティションまたはサブパーティションをリストから選択します。このステップはオプションです。

注意:

データストアに定義されたモデル・フィルタが存在するか、またはそのデータストアとダイアグラム内の既存のデータストアの間に参照が存在する場合、それらはデータストアとともに表示されます。これらの参照とフィルタは、インタフェースに結合とフィルタとしてコピーされます。これらの結合やフィルタは、モデルから参照やフィルタへのリンクではありません。したがって、モデルの参照やフィルタを変更しても、インタフェースの結合やフィルタに影響を与えることはありません(逆も同様です)。

注意:

ソース・データストアがジャーナル化される場合、インタフェース・フローではジャーナル化されたデータのみを使用できます。ソース・データストアのプロパティの「ジャーナル化されたデータのみ」ボックスを選択します。ジャーナル化フィルタがダイアグラム内に自動的に作成されます。詳細は、第6章「チェンジ・データ・キャプチャの使用」を参照してください。

インタフェースに一時タイプのソース・データストアを追加するには:

1. デザイナ・ナビゲータで、「プロジェクト」ツリーを展開し、ソースとして挿入するインタフェースを含むプロジェクトを展開します。

2. インタフェースを選択してソース・ダイアグラムにドラッグします。ソース・データストアがダイアグラムに表示されます。

3. プロパティ・インスペクタの「ダイアグラム・プロパティ」タブで、ソース・データストアの「別名」を変更します。別名は、列名の接頭辞として使用されます。これは、マッピング式、結合式およびフィルタ式の読みやすさを向上させるためのオプションのステップです。

4. インタフェースで一時データストアのロードに対応する下位選択を生成する場合は、「一時インタフェースを導出表として使用(下位選択)」ボックスを選択します。このボックスが選択されていない場合は、現在のインタフェースが実行される前に、一時データストアをロードするインタフェースが実行されることを確認してください。

注意:

「一時インタフェースを導出表として使用(下位選択)」チェック・ボックスは、ソース・データストアが別のインタフェースの一時ターゲット・データストアである場合にのみ使用できます。次の場合は、チェック・ボックスは無効化され、一時インタフェースを導出表として使用することはできません。

- ソース一時インタフェースを導出表として使用できない。ターゲット・データストアの論理スキーマに、コンテキストの物理スキーマが関連付けられていない。

- 導出表として使用するソース一時インタフェースのテクノロジで、導出表がサポートされていない。

- ソース一時インタフェースを導出表として使用できない。ステージング領域の論理スキーマに、最適化コンテキストの物理スキーマが関連付けられていない。

- ソース一時インタフェースを導出表として使用できない。ステージング領域とターゲット・データストアが同じデータ・サーバー上に存在しない。ターゲット・コンテキストを強制的に最適化コンテキスト以外の別のコンテキストにした可能性があります。

- ソース一時インタフェースはジャーナル化されたデータストアを使用しているため、導出表として使用できない。

- ソース一時インタフェースを導出表として使用できない。このインタフェースのすべてのソース・データストアは、ターゲットと同じデータ・サーバー内に存在し、ジャーナル化されていない必要があります。

- ソース一時インタフェースを導出表として使用できない。論理スキーマで定義されているソース・データストアに、最適化コンテキストの物理スキーマが関連付けられていない。

- ソース一時インタフェースを導出表として使用できない。ソース・データストアが、ターゲットと同じデータ・サーバー上に存在しない。

インタフェースからソース・データストアを削除するには:

1. ソース・ダイアグラムで、ソース・データストアを表すエンティティのタイトルを右クリックします。

2. 「削除」を選択します。

3. 「確認」ダイアログで、「OK」をクリックします。

ソース・データストアが、関連付けられたフィルタや結合とともに削除されます。このソース・データストアに、マッピングで使用された列が含まれていた場合、そのマッピングはエラーになることに注意してください。

インタフェースのソース・データストアのデータまたは行数を表示するには:

1. ソース・ダイアグラムで、ソース・データストアを表すエンティティのタイトルを右クリックします。

2. ソース・データストアの行数を表示する場合は行数を選択し、ソース・データストアのデータを表示する場合は「データの表示」を選択します。

ウィンドウにソース・データストアの行数またはデータが表示されます。

11.3.4.2 ルックアップの定義

インタフェースにルックアップを追加するには:

1. ソース・ダイアグラムのツールバー・メニューから、「新規ルックアップの追加」を選択します。ルックアップ表ウィザードが開きます。

2. ルックアップ表ウィザードで、左ペインから「駆動表」を選択します。現在のダイアグラムのソース・データストアが表示されます。ルックアップはリストに表示されないことに注意してください。

3. 右側の「ルックアップ表」ペインにあるツリーから、次のいずれかを実行します。

- 「データストア」タブで、ルックアップ表として使用するデータストアをモデルから選択します。

- 「インタフェース」タブで、ターゲットをルックアップ表として使用するインタフェースを選択します。このターゲットが一時ターゲットのときに、インタフェースで一時データストアのロードに対応する下位選択を生成する場合は、「一時インタフェースを導出表として使用(下位選択)」ボックスを選択します。このボックスが選択されていない場合は、現在のインタフェースが実行される前に、一時データストアをロードするインタフェースが実行されることを確認してください。

4. ルックアップ表の別名を変更します。別名は、列名の接頭辞として使用されます。これは、式の読みやすさを向上させるためのオプションのステップです。

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

6. 左ペインで、結合する駆動表からソース列(1列または複数列)を選択します。

7. 右ペインで、結合するルックアップ表の列(1列または複数列)を選択します。

8. 「結合」をクリックします。結合条件が「結合条件」テキスト・フィールドに表示されます。このフィールドの結合条件は編集できます。

9. ルックアップのオプションを指定します。

- 実行: ルックアップの実行場所(「ソース」または「ステージング領域」)。

- ルックアップ・タイプ: SQLコードの生成時に、「FROM句内のSQL左外部結合」を使用するか、または「SELECT句内のSQL式」を使用するかを指定します。

10. 「終了」をクリックします。データセットのソース・ダイアグラムにルックアップが表示されます。

注意:

このルックアップから列を使用するには、ルックアップを表すグラフィカル・アーティファクトを展開する必要があります。ダイアグラムでルックアップ・アイコンを右クリックし、「表示モード」→「シンボル」の順に選択します。

ルックアップ表を編集するには:

1. データセットのソース・ダイアグラムでルックアップを選択します。ルックアップ表のプロパティがプロパティ・インスペクタに表示されます。

2. プロパティ・インスペクタで、ルックアップのプロパティを編集します。

ここでは、駆動表およびルックアップ表を変更できません。これらの表を変更するには、ルックアップを削除してから再作成する必要があります。

ルックアップ表を削除するには:

1. データセットのソース・ダイアグラムでルックアップを選択します。

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

11.3.4.3 ソースでのフィルタの定義

ソース・データストアにフィルタを定義するには:

1. ソース・ダイアグラムで、フィルタ処理するソース・データストアの列(1列または複数列)を選択し、その列をソース・ダイアグラムにドラッグ・アンド・ドロップします。フィルタが表示されます。このフィルタをクリックして、プロパティ・インスペクタを開きます。

2. プロパティ・インスペクタの「ダイアグラム・プロパティ」タブで、「実装」式を変更して必要なフィルタを作成します。「式エディタを起動します」ボタンをクリックして、式エディタを呼び出すこともできます。フィルタ式はSQL条件の形式である必要があります。たとえば、CUSTOMER表(別名がCUSTOMERのソース・データストア)からNAMEがnullでない顧客を取得する場合、式はCUSTOMER.NAME IS NOT NULLとなります。

3. 実行場所として、「ソース」または「ステージング領域」を選択します。

4. 「DBMSで式を確認してください」をクリックして、式を検証します。

5. 「アクティブ・フィルタ」ボックスを選択して、このフィルタを有効または無効にします。デフォルトでは、有効になっています。

6. フィルタの実行を最適化するためにODIで一時索引を自動的に生成する場合は、「一時索引の作成」リストから、作成する索引タイプを選択します。このステップはオプションです。

注意:

一時索引の作成は、フロー全体では時間を要する操作です。実行統計を検討して、索引を使用して短縮できる実行時間と、一時索引の作成に要する時間を比較することをお薦めします。

ソース・データストアのフィルタを削除するには:

1. ソース・ダイアグラムで、フィルタを選択します。

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

フィルタ処理後のデータまたは行数を表示するには:

1. ソース・ダイアグラムで、フィルタを選択します。

2. 右クリックして、フィルタ処理後の行数を表示する場合は行数を選択し、フィルタ処理されたデータを表示する場合は「データの表示」を選択します。

ウィンドウにフィルタ処理後のデータまたは行数が表示されます。

11.3.4.4 ソース間の結合の定義

インタフェースのソース・データストア間の結合を作成するには:

1. ソース・ダイアグラムで、結合する最初のソース・データストアの列を選択し、結合する2番目のソース・データストアの列にドラッグ・アンド・ドロップします。2つのデータストアをリンクする結合が表示されます。この結合をクリックして、プロパティ・インスペクタを開きます。

2. プロパティ・インスペクタの「ダイアグラム・プロパティ」タブで、「実装」式を変更して必要な結合を作成します。「式エディタを起動します」ボタンをクリックして、式エディタを呼び出すこともできます。結合式はSQL式の形式である必要があります。

3. 実行場所として、「ソース」または「ステージング領域」を選択します。

4. オプションで、「DBMSで式を確認してください」をクリックして、式を検証できます。

5. 結合のタイプ(右/左、内部/外部、相互、自然)を選択します。結合によって取得される行の説明テキストが更新されます。

6. この結合で順序付き結合構文を使用する場合は、「順序付き結合(ISO)」ボックスを選択し、この結合が生成される「順序番号」を指定します。このステップはオプションです。

7. 「アクティブな句」ボックスを選択して、この結合を有効または無効にします。デバッグを行う場合は結合を無効にできます。デフォルトでは、有効になっています。

8. この結合の実行を最適化するためにODIで一時索引を自動的に生成する場合は、「一時索引の対象」リストから、作成する索引タイプを選択します。このステップはオプションです。

注意:

一時索引の作成は、フロー全体では時間を要する操作です。実行統計を検討して、索引を使用して短縮できる実行時間と、一時索引の作成に要する時間を比較することをお薦めします。

インタフェースのソース・データストア間の結合を削除するには:

1. ソース・ダイアグラムで、結合を選択します。

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

結合後のデータまたは行数を表示するには:

1. ソース・ダイアグラムで、結合を選択します。

2. 右クリックして、結合によって戻された行数を表示する場合は行数を選択し、結合の結果を表示する場合は「データの表示」を選択します。

ウィンドウに結合後のデータまたは行数が表示されます。

11.3.5 マッピングの定義

マッピングでは、1つのターゲット列をロードするために、ソース列(1列または複数列)での変換を定義します。

マッピングが空の場合は、ソースまたはターゲット・データストアを追加したときに、列名を一致させて自動的に生成されます。ユーザー定義のマッピングは、常に自動マッピングより優先されます。

列名を一致させて自動マッピングを再生成するには:

1. ターゲット・データストアを右クリックします。

2. 「自動マッピングの再実行」を選択します。

ターゲット・データストアの列が、ソース・データストアの同じ名前の列に自動的にマップされます。

ターゲット列のマッピングを定義するには:

1. 「ターゲット・データストア」パネルで、ターゲット・データストアの列を選択して、プロパティ・インスペクタを表示します。

2. プロパティ・インスペクタの「ダイアグラム・プロパティ」タブで、「実装」を変更して必要な変換を作成します。モデル内のすべての表の列は、テキストにドラッグ・アンド・ドロップできます。「式エディタを起動します」をクリックして、式エディタを呼び出すこともできます。

3. オプションで、「DBMSで式を確認してください」をクリックして、式を検証します。

4. 実行場所として、「ソース」、「ターゲット」または「ステージング領域」を選択します。マッピングを設計するときは、いくつかの制限があります。マッピングでこれらの制限に違反している場合は、「ターゲット・データストア」パネルでターゲット列に赤い十字アイコンが表示されます。たとえば、次のような制限があります。

- 定数を含むマッピングは、ソース・データストアを選択しないとソースにマップできません。

- 参照ソース列を含むマッピングは、ターゲットにマップできません。

- 必須列はマップする必要があります。

- 1つのデータセットにマップされたマッピングは、他のすべてのデータセットにマップされる必要があります。

5. 「挿入」または「更新」操作でマッピングを実行する場合は、「更新」ボックスを選択します。また、「UD1」から「UD10」のボックスを選択して、KM固有のオプションを列で有効にすることもできます。これらのオプションの使用は任意ですが、ナレッジ・モジュールのドキュメントで指示されている場合は使用する必要があります。そうでない場合、オプションは無視されます。

6. このマッピングをインタフェースの実行で使用する場合は、「アクティブ・マッピング」を選択します。無効になっているマッピングにマッピング・テキストを入力すると、そのマッピングは自動的に有効になることに注意してください。

ヒント:

作業を続行する前に、ソース・ダイアグラムのツールバーから「インタフェース・エラー・レポートの表示」をクリックして、ダイアグラム内の一貫性やエラーを確認できます。このレポートには、インタフェースに存在する可能性があるエラー(誤った場所に配置されたマッピングなど)が表示されます。

この段階では、インタフェースに対してナレッジ・モジュールがまだ選択されていないため、エラーが発生する場合があります。

11.3.6 インタフェース・フローの定義

「フロー」タブで、マップされたデータのロードおよび統合計画を定義します。Oracle Data Integratorでは、インタフェースのダイアグラムの構成に応じてフローが自動的に計算されます。また、データ・フローのデフォルトのKM (グローバルKMおよびプロジェクトKM)が提示されます。「フロー」タブでは、データ・フローを表示し、データのロードおよび統合に使用するKMを選択できます。

フローには、次の項目が表示されます。

- ソース・セット: 同じデータセット内にあり、同じ物理データ・サーバーに配置され、ソースに配置された結合によって結合されているソース・データストアは、フロー・ダイアグラムの単一のソース・セットにグループ化されます。ソース・セットは、同時に抽出できるデータストアのグループを表します。

- データセット: データセットは、ステージング領域に黄色のボックスとして表示されます。

- ステージング領域: 様々なデータセットやターゲット(同じデータ・サーバー上にある場合)、場合によってはいくつかのソース(同じデータ・サーバー上にある場合)を示すボックスとして表示されます。

- ターゲット: ステージング領域とは別のスキーマにターゲットが存在する場合(「ターゲットと異なるステージング領域」オプションが選択されている場合)、ターゲットは個別のボックスとして表示されます。

フローでは、次のKMを使用します。

- LKM: データの移動方法を定義します。データをソースからステージング領域に移動するためのLKMをソース・セットごとに1つ選択します。ステージング領域がターゲットと異なり、ステージング領域に対して単一のテクノロジIKMが選択されている場合は、ステージング領域からターゲットにデータを移動するためにそれを選択することもできます。

- IKM: データをターゲットに統合する方法を定義します。通常は、ターゲットで1つのIKMを選択します。ステージング領域がターゲットと異なる場合は、ステージング領域からターゲットにデータを移動して統合する複数テクノロジIKMを選択できます。

注意:

インタフェースで選択できるのは、グローバルKMまたはプロジェクトにすでにインポートされているKMのみです。作業を続行する前に、適切なKMをプロジェクトにインポート済であることを確認してください、

使用中のLKMを変更するには:

1. 「フロー」タブで、ソース・セットの1つ、またはステージング領域(ターゲット・グループと異なる場合)のタイトルをクリックして選択します。このオブジェクトのプロパティ・インスペクタが開きます。

2. ソース・セットで作業している場合は、そのソース・セットの名前を変更します。これは、フローの読みやすさを向上させるためのオプションのステップです。

3. 「LKMセレクタ」リストからLKMを選択します。

4. KMには、ほとんどのユース・ケースで機能するデフォルト・オプションが設定されています。KMオプションは、必要に応じて変更できます。
以前のKMのKMオプションは、あるKMから別のKMに切り替えるときに同音意義を使用して保持されます。KMを何度も変更すると、カスタムのKMオプション値が失われる場合があります。

使用中のIKMを変更するには:

1. 「フロー」タブで、ターゲットのタイトルをクリックして選択します。このオブジェクトのプロパティ・インスペクタが開きます。

2. プロパティ・インスペクタで、「IKMセレクタ」リストからIKMを選択します。

3. データ・フローにDISTINCT文を自動的に適用して行の重複を回避する場合は、重複なしオプションを選択します。

4. KMには、ほとんどのユース・ケースで機能するデフォルト・オプションが設定されています。KMオプションは、必要に応じて変更できます。
以前のKMのKMオプションは、あるKMから別のKMに切り替えるときに同音意義を使用して保持されます。KMを何度も変更すると、カスタムのKMオプション値が失われる場合があります。

設定する重要なオプションはFLOW_CONTROLです。このオプションによって、フロー制御がトリガーされ、フロー制御の設定が必要になります。

注意:

増分更新計画を使用するナレッジ・モジュールでは、フロー制御と同様に、インタフェースのターゲット・データストアに対して更新キーを設定する必要があります。

注意:

KMとそのオプションの詳細は、KMに関する説明、およびOracle Fusion Middleware Oracle Data Integrator接続性およびナレッジ・モジュール・ガイドを参照してください。

11.3.7 フロー制御および統合後制御の設定

統合インタフェースでは、2つの制御ポイントを設定できます。フロー制御では、データがターゲットに統合されるまでのデータの流れがチェックされます。統合後制御では、インタフェースの最後でターゲット表の静的チェックが実行されます。

11.3.7.1 フロー制御の設定

フロー制御計画では、データがこのデータストアに統合される前に、ターゲット・データストアに定義された制約に対してデータをチェックする方法を定義します。これは、CKMで定義されます。フロー制御を実行するには、IKMのFLOW_CONTROLオプションをtrueに設定する必要があります。また、フロー制御では、このインタフェースのターゲット・データストアで更新キーが選択されている必要があります。詳細は、11.3.2.3項「更新キーの定義」を参照してください。

インタフェースで使用するCKMを定義するには:

1. インタフェースの「制御」タブで、「CKMセレクタ」リストからCKMを選択します。

2. KMのオプションを設定します。

3. チェック対象の制約を選択します。

4. 「許容されているエラーの最大数」を入力します。このフィールドが空の場合、許容されるエラーの数は無限であることに注意してください。許容されているエラーの数に達すると、フロー制御(ある場合)または統合後制御(ある場合)時にインタフェースが停止します。

5. フロー制御または統合後制御時に、エラーが固定の数ではなくある割合に達したときにインタフェースを停止する場合は、「%」ボックスを選択します。この割合は、次の式を使用して計算されます。

errors_detected * 100 / checked_rows

この場合:

- checked_rowsは、フロー制御または統合後制御時にチェックされる行の数です。

- errors_detectedは、フロー制御または統合後制御時に検出されたエラーの数です。

この式は、インタフェースの実行の最後に計算されます。この式の結果が指定の割合を超えている場合、インタフェースのステータスはエラー状態になります。フロー制御時にインタフェースが失敗してエラー状態になった場合、ターゲットに対する変更は実行されません。統合後制御時にインタフェースが失敗してエラー状態になった場合、ターゲットに対して実行された変更はナレッジ・モジュールでコミットされません。

11.3.7.2 統合後制御の設定

統合後制御計画では、ターゲット・データストアに定義された制約に対してデータをチェックする方法を定義します。このチェックは、データがターゲット・データストアに統合された後に実行されます。これは、CKMで定義されます。統合後制御を実行するには、IKMのSTATIC_CONTROLオプションをtrueに設定する必要があります。統合後制御では、インタフェースのターゲット・データストアのデータ・モデルに主キーが定義されている必要があります。

「許容されているエラーの最大数」については、フロー制御と同じ動作が適用されます。

統合後制御では、フロー制御と同じCKMを使用します。

11.3.8 統合インタフェースの実行

インタフェースを作成した後は、そのインタフェースを実行できます。

インタフェースを実行するには:

1. インタフェースの編集時に、ツールバーの「実行」をクリックします。

2. 「実行」ダイアログで、次の実行パラメータを選択します:

- インタフェースが実行されるコンテキストを選択します。

- インタフェースを実行する論理エージェントを選択します。

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

4. 「セッションを開始しました」ウィンドウが表示されます。

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

11.4 クイック編集エディタの使用

クイック編集エディタを使用すると、非グラフィカルな形式で、インタフェース・エディタの「マッピング」タブと同じアクションを実行できます。

- コンポーネントの追加および削除

- コンポーネントの編集

- データセットの追加、削除および構成

- ターゲット・データストアの変更

クイック編集エディタを使用すると、次の作業を実行できます。

- インタフェース・コンポーネントを表形式で操作します。

- コンポーネント編集時のコンポーネント・プロパティの一括更新。詳細は、11.4.2項「コンポーネントの編集」を参照してください。

- 共通タスクでのキーボード・ナビゲーションの使用。詳細は、11.4.6項「共通タスクでのキーボード・ナビゲーションの使用」を参照してください。

次のコンポーネントのプロパティは、クイック編集エディタで表形式で表示して、編集できます。

- ソース

- ルックアップ

- 結合

- フィルタ

- マッピング

インタフェース・エディタの「マッピング」タブですでに定義されたコンポーネントがクイック編集エディタに表示され、クイック編集エディタで定義されたコンポーネントは「マッピング」タブにも反映されることに注意してください。

11.4.1 コンポーネントの追加および削除

クイック編集エディタを使用すると、統合インタフェースのコンポーネントを追加または削除できます。

11.4.1.1 コンポーネントの追加

クイック編集エディタを使用してソース、ルックアップ、結合、フィルタまたは一時ターゲット列を追加するには:

1. インタフェース・エディタで、「クイック編集」タブに移動します。

2. 「データセットの選択」リストから、新規コンポーネントを追加するデータセットを選択します。

3. 追加するコンポーネントのセクションを展開します。

4. ツールバー・メニューから「追加」を選択します。

5. 次に実行するタスクは、追加するコンポーネントのタイプによって異なります。
新しい一時ターゲット列を追加する場合は、一時ターゲット列を表す新しい行がターゲット・データストア表に追加されます。このターゲット・データストア表では、ニーズに従って一時ターゲット列のセルを直接変更できます。

ソース、ルックアップ、結合またはフィルタを追加する場合は、ウィザードに従って次のステップに進みます。

- ソースの追加ウィザード

- ルックアップ表ウィザード

- 表の結合ウィザード

- 表のフィルタ・ウィザード

ソースの追加ウィザード

ソースの追加ウィザードを使用して、インタフェースのソースを追加します。データストアまたは統合インタフェースは、ソースとして追加できます。

データストアをインタフェースのソースとして追加するには:

1. 「データストア」タブを選択します。
ソースの追加ウィザードに、インタフェースのソースとして使用できるデータストアのリスト、およびそのモデルとモデル・フォルダが表示されます。

2. リストから、インタフェースのソースとして追加するデータストアを選択します。
検索フィールドにデータストア名の一部または全部を入力すると、リスト内を検索したり、このリストをフィルタ処理することができます。

3. データストアの別名を変更します(オプション)。

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

統合インタフェースをインタフェースのソースとして追加するには:

1. 「インタフェース」タブを選択します。
ソースの追加ウィザードに、インタフェースのリストが表示されます。

2. リストから、インタフェースのソースとして追加するインタフェースを選択します。
検索フィールドにインタフェース名の一部または全部を入力すると、リスト内を検索したり、このリストをフィルタ処理することができます。

3. インタフェースの別名を変更します(オプション)。

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

ルックアップ表ウィザード

ルックアップ表ウィザードを使用してルックアップ表を統合インタフェースに追加します。詳細は、11.3.4.2項「ルックアップの定義」を参照してください。

表の結合ウィザード

表の結合ウィザードを使用して、インタフェースのソース・データストア間の結合を作成します。

結合を作成するには:

1. 「結合基準の指定」セクションの「左側のソース」リストから、結合の左列が含まれるソース・データストアを選択します。

2. 「右側のソース」リストから、結合の右列が含まれるソース・データストアを選択します。

3. 左側のソース列と右側のソース列を選択し、「結合」をクリックします。「結合条件」フィールドに結合条件が表示されます。

4. 結合条件を変更して、必要な結合を作成できます。結合式はSQL式の形式である必要があります。「式エディタを起動します」をクリックして式エディタを呼び出し、結合条件を変更できます。

5. 実行場所として、「ソース」または「ステージング領域」を選択します。

6. 作成する結合のタイプを選択します。選択できるタイプは、「内部結合」、「相互」、「自然」、「左外部」、「右外部」または「完全」です。結合によって取得される行の説明テキストが更新されます。

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

表のフィルタ・ウィザード

表のフィルタ・ウィザードを使用して、ソース・データストアのフィルタ基準を定義します。

ソース・データストアにフィルタを定義するには:

1. ソース・リストから、フィルタ処理するソース・データストアを選択します。

2. 列リストから、フィルタを作成するソース列を選択します。「フィルタ条件」フィールドにフィルタ条件が表示されます。

3. フィルタ条件を変更して、必要なフィルタを作成できます。「式エディタを起動します」をクリックして式エディタを呼び出すことができます。フィルタ式はSQL条件の形式である必要があります。

4. 実行場所として、「ソース」または「ステージング領域」を選択します。

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

11.4.1.2 コンポーネントの削除

クイック編集エディタを使用してソース、ルックアップ、結合、フィルタまたは一時ターゲット列を削除するには:

1. インタフェース・エディタで、「クイック編集」タブに移動します。

2. 「データセットの選択」リストから、コンポーネントを削除するデータセットを選択します。

3. 削除するコンポーネントのセクションを展開します。

4. 削除する行を選択します。

5. ツールバー・メニューから「削除」を選択します。
選択したコンポーネントが削除されます。

11.4.2 コンポーネントの編集

クイック編集エディタを使用してソース、ルックアップ、結合、フィルタ、マッピングまたはターゲット列のプロパティを編集するには:

1. インタフェース・エディタで、「クイック編集」タブに移動します。

2. 「データセットの選択」リストから、変更するコンポーネントが含まれるデータセットを選択します。

3. 変更するコンポーネントのセクションを展開します。

4. 新しい値を選択または入力して、表入力を変更します。

一括更新の実行

一括更新を実行すると、複数のコンポーネント・プロパティを一度に更新できます。クイック編集エディタで一括更新を実行するには、コンポーネント表でコピー-貼付け機能を使用します。

注意:

コピー-貼付け機能は、テキスト・セル、ドロップダウン・リストおよびチェック・ボックスで使用できます。

コンポーネント・プロパティの一括更新を実行するには:

1. コンポーネント表で、他のセルに適用する値が含まれるセルを選択します。

2. セルの値をコピーします。

3. 同じ列にある複数のセルを選択します。

4. コピーした値を貼り付けます。

選択したすべてのセルに、コピーした値が設定されます。

11.4.3 データセットの追加、削除および構成

クイック編集エディタを使用すると、データセットを作成、削除および構成できます。

クイック編集エディタを使用してデータセットを作成、削除および構成するには:

1. 「データセットの選択」リストから、「データセットの管理」を選択します。

2. 「DataSet構成」ダイアログが表示されます。11.3.3項「データセットの定義」の説明に従ってデータセットを定義します。

11.4.4 ターゲット・データストアの変更

クイック編集エディタを使用すると、統合インタフェースのターゲット・データストアを変更できます。

クイック編集エディタを使用してインタフェースのターゲット・データストアを変更するには:

1. インタフェース・エディタで、「クイック編集」タブに移動します。

2. 「マッピング」セクションを展開します。

3. 「ターゲット・データストアの追加または変更」をクリックします。

4. 「ターゲット・データストアの追加または変更」ダイアログで、次のいずれかを実行します。

- 一時ターゲット・データストアを作成する場合は、「一時ターゲットの使用」を選択し、新しい一時ターゲット・データストアの名前を入力します。

- 永続ターゲット・データストアを使用する場合は、リストから、インタフェースのターゲットとして追加するデータストアを選択します。
検索フィールドにデータストア名の一部または全部を入力すると、リスト内を検索したり、このリストをフィルタ処理することができます。

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

11.4.5 表のカスタマイズ

クイック編集エディタの表は、次の2つの方法でカスタマイズできます。

- 表のツールバーから「列の選択」を選択します。次に、ドロップダウン・リストから、表に表示する列を選択します。

- 「表のカスタマイズ」ダイアログを使用します。

1. 表のツールバーから「列の選択」を選択します。

2. ドロップダウン・メニューから「列の選択」を選択します。

3. 「表のカスタマイズ」ダイアログで、表に表示する列を選択します。

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

11.4.6 共通タスクでのキーボード・ナビゲーションの使用

この項では、クイック編集エディタで使用するキーボード・ナビゲーションについて説明します。

表11-2は、クイック編集エディタの共通タスクと、使用するキーボード・ナビゲーションを示しています。

表11-2 共通タスクでのキーボード・ナビゲーション

ナビゲーション

タスク

矢印キー

ナビゲート: 1つのセルを上、下、左または右に移動します。

[Tab]

次のセルに移動します。

[Shift]+[Tab]

前のセルに移動します。

[Space]

テキストの編集の開始、リストの項目の表示、またはチェック・ボックスの値の変更を行います。

[Ctrl]+[C]

選択内容をコピーします。

[Ctrl]+[V]

選択内容を貼り付けます。

[Esc]

セルへの入力を取り消します。

[Enter]

セルへの入力を完了して次のセルに移動するか、ボタンをアクティブ化します。

[Del]

選択した内容をクリアします(テキスト・フィールドのみ)。

[Back Space]

アクティブなセル内で、選択した内容を削除するか、前の文字を削除します(テキスト・フィールドのみ)。

[Home]

行の最初のセルに移動します。

[End]

行の最後のセルに移動します。

[Page Up]

列の最初のセルに移動します。

[Page Down]

列の最後のセルに移動します。

11.5 統合インタフェースの設計: E-LTスタイルのインタフェースとETLスタイルのインタフェース

E-LTスタイルの統合インタフェースでは、ターゲット上に存在するステージング領域でデータが処理されます。ステージング領域とターゲットは同じRDBMSに配置されます。データはソースからターゲットにロードされます。E-LTスタイルの統合インタフェースを作成するには、11.3項「インタフェース作成」で説明している標準の手順に従ってください。

ETLスタイルのインタフェースでは、ターゲットと異なるステージング領域でデータが処理されます。データは最初にソースから抽出され、次にステージング領域にロードされます。ステージング領域でデータ変換が実行され、中間結果がステージング領域の一時表に保存されます。データのロードと変換は標準のELT KMを使用して実行されます。

Oracle Data Integratorには、データをステージング領域からターゲットにロードする方法が2通り用意されています。

- 複数接続IKMの使用

- LKMと単一接続IKMの使用

使用するKM計画に応じて フローおよび静的制御がサポートされます。詳細は、Oracle Fusion Middleware Oracle Data Integrator接続性およびナレッジ・モジュール・ガイドで、ETLスタイルのインタフェースの設計に関する説明を参照してください。

複数接続IKMの使用

複数接続IKMを使用すると、ステージング領域とソースが異なるデータ・サーバーにある場合にターゲットを更新できます。図11-2は、複数接続IKMを使用してターゲット・データを更新する統合インタフェースの構成を示しています。

図11-2 複数接続IKMを使用したETLインタフェース

「図11-2 複数接続IKMを使用したETLインタフェース」の説明

複数接続IKMを使用する場合の詳細は、Oracle Fusion Middleware Oracle Data Integrator接続性およびナレッジ・モジュール・ガイドで、使用しているステージング領域のテクノロジに対応する章を参照してください。

ETLスタイルのインタフェースで複数接続IKMを使用するには:

1. 11.3項「インタフェース作成」で説明している標準の手順を使用して統合インタフェースを作成します。ここでは、ETLスタイルに固有の手順のみ説明します。

2. インタフェース・エディタの「定義」タブで、「ターゲットと異なるステージング領域」を選択し、ソース表の論理スキーマ、またはソース、ターゲットのどちらでもない別の論理スキーマを選択します。このスキーマはステージング領域として使用されます。

3. 「フロー」タブで、いずれかのソース・セットのタイトルをクリックして選択します。このオブジェクトのプロパティ・インスペクタが開きます。

4. 「LKMセレクタ」リストで、データをソースからステージング領域にロードするLKMを選択します。使用できるLKMを確認するには、Oracle Fusion Middleware Oracle Data Integrator接続性およびナレッジ・モジュール・ガイドで、使用しているステージング領域のテクノロジに対応する章を参照してください。

5. オプションで、KMのオプションを変更します。

6. 「フロー」タブで、ターゲットのタイトルをクリックして選択します。このオブジェクトのプロパティ・インスペクタが開きます。
プロパティ・インスペクタの「IKMセレクタ」リストで、データをステージング領域からターゲットにロードするETL複数接続IKMを選択します。使用できるIKMを確認するには、Oracle Fusion Middleware Oracle Data Integrator接続性およびナレッジ・モジュール・ガイドで、使用しているステージング領域のテクノロジに対応する章を参照してください。

7. オプションで、KMのオプションを変更します。

LKMと単一接続IKMの使用

専用の複数接続IKMがない場合は、標準のエクスポートLKMを標準の単一接続IKMと組み合せて使用します。図11-3は、エクスポートLKMと単一接続IKMを使用してターゲット・データを更新する統合インタフェースの構成を示しています。エクスポートLKMは、フロー表をステージング領域からターゲットにロードするために使用します。単一接続IKMは、データ・フローをターゲット表に統合するために使用します。

図11-3 LKMと単一接続IKMを使用したETLインタフェース

「図11-3 LKMと単一接続IKMを使用したETLインタフェース」の説明

この構成(LKM + エクスポートLKM + 単一接続IKM)には、次の制限があります:

- ソースがステージング領域と同じデータ・サーバーにある場合(インタフェース・エディタで明示的に選択)、簡易CDCも一貫性CDCもサポートされません

- 一時索引はサポートされません

標準のLKMを単一接続IKMと組み合せて使用する場合の詳細は、Oracle Fusion Middleware Oracle Data Integrator接続性およびナレッジ・モジュール・ガイドで、使用しているステージング領域のテクノロジに対応する章を参照してください。

ETLスタイルのインタフェースでLKMと単一接続IKMを使用するには:

1. 11.3項「インタフェース作成」で説明している標準の手順を使用して統合インタフェースを作成します。ここでは、ETLスタイルに固有の手順のみ説明します。

2. インタフェース・エディタの「定義」タブで、「ターゲットと異なるステージング領域」を選択し、ソース表の論理スキーマ、またはソース、ターゲットのどちらでもない別の論理スキーマを選択します。

3. 「フロー」タブで、ソース・セットを1つ選択します。

4. プロパティ・インスペクタの「LKMセレクタ」リストで、データをソースからステージング領域にロードするLKMを選択します。使用できるLKMを確認するには、Oracle Fusion Middleware Oracle Data Integrator接続性およびナレッジ・モジュール・ガイドで、使用しているステージング領域のテクノロジに対応する章を参照してください。

5. オプションで、KMのオプションを変更します。

6. ステージング領域を選択します。プロパティ・インスペクタの「LKMセレクタ」リストで、データをステージング領域からターゲットにロードするLKMを選択します。使用できるLKMを確認するには、Oracle Fusion Middleware Oracle Data Integrator接続性およびナレッジ・モジュール・ガイドで、使用しているステージング領域のテクノロジに対応する章を参照してください。

7. オプションで、オプションを変更します。

8. ターゲットのタイトルをクリックして選択します。このオブジェクトのプロパティ・インスペクタが開きます。
プロパティ・インスペクタの「IKMセレクタ」リストで、ターゲットを更新する標準の単一接続IKMを選択します。使用できるIKMを確認するには、Oracle Fusion Middleware Oracle Data Integrator接続性およびナレッジ・モジュール・ガイドで、使用しているステージング領域のテクノロジに対応する章を参照してください。

9. オプションで、KMのオプションを変更します。

12 プロシージャ、変数、順序およびユーザー関数の使用

この章では、プロシージャ、変数、順序およびユーザー関数の使用方法について説明します。これらのコンポーネントの概要についても説明します。

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

- 12.1項「プロシージャの使用」

- 12.2項「変数の使用」

- 12.3項「順序の使用」

- 12.4項「ユーザー関数の使用」

12.1 プロシージャの使用

この項では、プロシージャの概要について説明し、Oracle Data Integratorでプロシージャを作成および使用する方法について説明します。

12.1.1 プロシージャの概要

プロシージャは、エージェントが実行できる一連のコマンドです。これらのコマンドは、Oracle Data Integratorでアクセスできるすべてのテクノロジ(OS、JDBC、JMSコマンドなど)に関係しています。

プロシージャは、インタフェース・フレームワークに適応しないアクションをグループ化できる、再利用可能なコンポーネントです。プロシージャの使用は、必要な作業がインタフェースで実現できない場合のみ検討してください。その場合は、外部プログラムやスクリプトを記述するのではなく、Oracle Data Integratorにコードを挿入し、パッケージからそのコードを実行します。インタフェースとは対象的に、プロシージャを使用する場合はすべてのコードを手動で開発する必要があります。

プロシージャは複数のコマンドラインで構成されているため、異なる言語が混在している場合があります。すべてのコマンドラインには、2つのコマンド(ソースに対して実行可能なコマンドと、ターゲットに対して実行可能なコマンド)を含めることができます。コマンドラインは順番に実行されます。オプションで制御されているコマンドラインはスキップできる場合があります。オプションを使用して、コマンドラインをコマンドのコードと同様に実行するかどうかがパラメータ化されます。

プロシージャ内のコードは、文字列オプションおよびODI置換APIを使用して汎用化できます。

プロシージャを作成する前に、次の点に注意してください。

- プロシージャでデータ変換を実行することは可能ですが、この目的でのプロシージャの使用はお薦めできません。かわりに、インタフェースを使用してください。

- データ操作用に特定の繰返しタスクを自動化するには、複雑なプロシージャを記述するよりも、そのタスクをナレッジ・モジュールに変換することを検討してください。詳細は、Oracle Data Integratorナレッジ・モジュール開発者ガイドを参照してください。

- オペレーティング・システム固有のコマンドはできるだけ使用しないでください。このようなコマンドを使用すると、コードはエージェントを実行しているオペレーティング・システムに依存します。2つの異なるオペレーティング・システム(UNIXとWindowsなど)で2つのエージェントが同じプロシージャを実行すると、適切に動作しません。

次の各項では、プロシージャを作成および使用する方法について説明します。

12.1.2 プロシージャの作成

プロシージャは標準プロセスに従って作成しますが、ユースケースによって異なる場合があります。次の手順は、プロシージャの作成に際して一般的に実行する手順です。

1. 新規プロシージャの作成

2. プロシージャのオプションの定義

3. プロシージャのコマンドの作成および管理

プロシージャを作成するときは、次のコーディング・ガイドラインを理解することが重要です。

- プロシージャのコードの記述

- 置換APIの使用

- RDBMSトランザクションの処理

- ソース・データとターゲット・データのバインド

12.1.2.1 新規プロシージャの作成

新規プロシージャを作成するには:

1. デザイナ・ナビゲータで、プロシージャを作成するプロジェクトのフォルダ内にある「プロシージャ」ノードを選択します。

2. 右クリックして「新規プロシージャ」を選択します。

3. 「定義」タブで、プロシージャの「名前」を入力します。

4. プロシージャで同時に複数の接続を管理する場合は、「複数接続」を選択します。
複数接続: ある接続(「ソース」タブで指定したソース接続)に送信されたコマンドによって取得されたデータを、別の接続(「ターゲット」タブで指定したターゲット接続)に送信されたコマンドで使用する場合は、複数接続プロシージャを選択すると便利です。このデータは、実行エージェントを介して渡されます。一度に1つの接続にアクセスする場合(別の接続にもアクセスできますが、一度に1つの接続のみにアクセスする場合)、「複数接続」ボックスは選択しないままにします。

5. 「ターゲット・テクノロジ」を選択します。「複数接続」ボックスを選択した場合は「ソース・テクノロジ」も選択します。新規の各プロシージャ行は、このテクノロジに基づいています。これらのフィールドを空のままにして、各プロシージャ・コマンドにテクノロジを指定することもできます。

注意:

プロシージャを保存する際に、ソース・テクノロジとターゲット・テクノロジの選択は必須ではありません。ただし、関連するコマンドを特定のテクノロジや論理スキーマに関連付ける必要がある場合は、プロシージャの実行に失敗する可能性があります。

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

新規プロシージャが作成され、プロジェクトのツリーにある「プロシージャ」リストに表示されます。

12.1.2.2 プロシージャのオプションの定義

プロシージャのオプションは、作業ステップでパラメータと同様に機能し、コードの再利用性が向上します。

次の2つのタイプのオプションがあります。

- チェック・ボックスと呼ばれるブール型オプション。この値を使用すると、コマンドを実行するかどうかを個別に決定できます。このオプションは、if文と同じように機能します。

- 値およびテキスト・オプション。それぞれ短いテキスト情報または長いテキスト情報を渡すのに使用します。これらのオプションの値は、getOption()置換メソッドを使用してプロシージャのコマンドのコード内でのみリカバリできます。パッケージでプロシージャを使用する場合、その値はステップの中で設定できます。

プロシージャのオプションを作成するには:

1. デザイナ・ナビゲータで、プロシージャのノードを選択します。

2. 右クリックして「新規オプション」を選択します。プロシージャ・オプション・エディタが表示されます。

3. 次の各フィールドに値を入力します。

- 名前: グラフィカル・インタフェースに表示されるオプションの名前。

- タイプ: オプションのタイプ。

- チェック・ボックス: ブール型(Yes = 1/No = 0)のオプション。これはプロシージャとKMでのみ使用され、タスクの実行が必要かどうかを決定するオプションです。

- デフォルト値: 英数字型のオプション。最大250文字です。

- テキスト: 英数字型のオプション。サイズは無制限です。このタイプのオプションへのアクセスは、デフォルト値タイプのオプションより低速です。

- 説明: オプションの短い説明。「チェック・ボックス」タイプのオプションの場合は、この説明がコマンド・エディタに表示されます。コマンド・エディタでは、コマンドの実行をトリガーするオプションを選択します。

- 位置: プロシージャまたはKMのオプション・リストが表示されるときのオプションの表示順を決定します。

- ヘルプ: オプションに関する使用上の説明。KMの場合は、インタフェースでKMを選択するとプロパティ・パネルに表示されます。

- デフォルト値: プロシージャまたはKMのユーザーが値を指定しなかった場合にオプションに設定される値。

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

5. プロシージャに必要なオプションごとにこれらの操作を繰り返します。

オプションが、「プロジェクト」アコーディオンの「プロシージャ」ノード、およびプロシージャ・エディタの「オプション」タブに表示されます。

12.1.2.3 プロシージャのコマンドの作成および管理

プロシージャのコマンドラインを作成するには:

1. デザイナ・ナビゲータで、コマンドを作成するプロシージャをダブルクリックします。プロシージャ・エディタが開きます。

2. プロシージャ・エディタで、「詳細」タブに移動します。

3. 「追加」をクリックします。新規コマンドの名前を入力します。コマンドライン・エディタが開きます。

4. コマンドライン・エディタで、次のフィールドに入力します:

- ログ・カウンタ: このコマンドで処理される行の数を記録するカウンタ(「挿入」、「更新」、「削除」または「エラー」)を示します。ログ・カウンタは、InsertまたはUpdate SQL文で戻される挿入、更新、削除およびエラーの行に対してのみ機能することに注意してください。
プロシージャを実行した後は、オペレータ・ナビゲータにカウンタの結果を表示できます。この結果は、「レコード統計」セクションにあるステップとタスクのエディタの「定義」タブに表示されます。

- ログ・レベル: コマンドのログ・レベル。実行時に、このコマンドに生成されたタスクは、この値および実行パラメータに定義されたログ・レベルに基づいてセッション・ログに記録されます。実行パラメータの詳細は、表21-1を参照してください。

- エラーの無視: コマンドがエラーを戻してもプロシージャを停止しない場合は、選択する必要があります。このボックスを選択すると、プロシージャ・コマンドは「エラー」ではなく「警告」の状態になり、プロシージャは停止しません。

5. 「ターゲットに対するコマンド」タブで、次のフィールドに入力します。

- テクノロジ: このコマンドに使用するテクノロジ。設定しないと、プロシージャ・エディタで指定されているテクノロジが使用されます。

- トランザクション分離: コマンドのトランザクション分離レベル。

- コンテキスト: 実行用の強制コンテキスト。未定義のままにすると、実行コンテキストが使用されます。任意のコンテキストにコードを移植できるようにするには、未定義のままにします。

- スキーマ: コマンド実行用の論理スキーマ。

- トランザクション: コマンドを実行するトランザクション。

- コミット: トランザクションのコマンドのコミット・モードを指定します。

- コマンド: 実行するコマンドのテキスト。「式エディタを起動します」をクリックして、式エディタを呼び出すこともできます。

コマンドは、選択したテクノロジに適した言語で入力する必要があります。詳細は、プロシージャのコードの記述を参照してください。

置換メソッドを使用してコードを汎用化し、トポロジ情報に依存することをお薦めします。置換APIの使用を参照してください。

「トランザクション」および「コミット」オプションを使用すると、コマンドをトランザクション内で実行できます。詳細は、RDBMSトランザクションの処理を参照してください。

注意:

「トランザクション」、「コミット」および「トランザクション分離」オプションは、トランザクションをサポートするテクノロジでのみ機能します。

ほとんどのプロシージャで使用されるのは、ターゲットに対するコマンドのみです。場合によっては、データを読み取り、そのデータを使用してアクションを実行する必要があります。このようなユースケースでは、「ソースに対するコマンド」タブでデータを読み取るコマンドを指定し、「ターゲットに対するコマンド」タブでそのデータを使用して実行するアクションを指定します。詳細は、ソース・データとターゲット・データのバインドを参照してください。このユースケースに該当しない場合、ステップ6はスキップします。

6. 複数接続プロシージャの場合は、「ソースに対するコマンド」タブでステップ5を繰り返します。

7. オプション値に関係なくこのコマンドを常に実行する場合は、「オプション」セクションで「常に実行」ボックスを選択します。そうでない場合は、コマンドの実行を制御するブール型のオプションを選択します。選択したオプションを「はい」に設定した場合は、実行時にコマンドが実行されます。

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

コマンドを複製するには:

1. プロシージャの「詳細」タブに移動します。

2. 複製するコマンドを選択します。

3. 右クリックして「複製」を選択します。コマンドライン・エディタが開きます。選択したコマンドのコピーが表示されます。

4. 必要な変更を加えて、「ファイル」メニューから「保存」をクリックします。

新しいコマンドが「詳細」タブに表示されます。

コマンドラインを削除するには:

1. プロシージャの「詳細」タブに移動します。

2. 削除するコマンドラインを選択します。

3. エディタのツールバーから「削除」をクリックします。

コマンドラインがリストから削除されます。

コマンドラインを並べ替えるには:

コマンドラインは、プロシージャ・エディタの「詳細」タブに表示されている順序で実行されます。この順序の並べ替えが必要になる場合があります。

1. プロシージャの「詳細」タブに移動します。

2. 移動するコマンドラインをクリックします。

3. エディタのツールバーから、矢印をクリックしてコマンドラインを適切な位置に移動します。

プロシージャのコードの記述

プロシージャ内のコマンドは、いくつかの言語で記述できます。次が含まれます:

- SQL: または、ターゲットのRDBMSでサポートされている言語(PL/SQL、Transact SQLなど)。通常、これらのコマンドには、データ操作言語(DML)またはデータ定義言語(DDL)の文を含めることができます。結果セットを戻すSELECT文またはストアド・プロシージャを使用する場合は、いくつかの制限があります。SQLコマンドを記述するには、次の選択が必要です。

- SQL文をサポートする有効なRDBMSテクノロジ(Teradata、Oracleなど)。

- 文が実行される場所を示す論理スキーマ。この論理スキーマは、実行時に、この文を実行する場所として選択された物理データ・サーバーの場所に変換されます。

- トランザクション処理用の追加情報(RDBMSトランザクションの処理の項を参照)。

- オペレーティング・システム・コマンド: 外部プログラムを実行する場合に便利です。この場合、使用するコマンドは、実行を担当するエージェントのオペレーティング・システムのコマンド・インタプリタから実行される動作と同様に動作する必要があります。この動作では、オブジェクトは、エージェントが実行されているプラットフォームに依存しています。オペレーティング・システム・コマンドを記述するには、現在のステップのテクノロジ・リストから「オペレーティング・システム」を選択します。OdiOSCommandツールは、OSコマンド・インタプリタの呼出しや設定が不要であるため、このような種類の操作に使用することをお薦めします。

- ODIツール: ODIには、特定のタスクを実行するためにプロシージャで使用できる広範囲の組込みツールが用意されています。これらのツールには、ファイル操作、電子メール・アラート、イベント処理などの機能が含まれています。これらのツールの詳細は、オンライン・ドキュメントを参照してください。ODIツールを使用するには、現在のステップのテクノロジ・リストから「ODITools」を選択します。

- スクリプト言語: コマンドはOracle Data Integratorでサポートされている任意のスクリプト言語で記述できます。ODIがデフォルトでサポートしているスクリプト言語はJython、Groovy、NetRexxおよびJava BeanShellで、現在のステップのテクノロジ・リスト・ボックスからアクセスできます。

置換APIの使用

実行のコンテキストに依存しないコマンドをプロシージャに記述する場合は、ODI置換APIの使用をお薦めします。このAPIの詳細は、オンライン・ドキュメントを参照してください。置換APIは通常、次のように使用します。

- getObjectName()を使用して、実行コンテキストに関係なく、現在の論理スキーマにあるオブジェクトの修飾名をハード・コーディングせずに取得します。

- getInfo()を使用して、現在のステップに関する一般情報(ドライバ、URL、ユーザーなど)を取得します。

- getSession()を使用して、現在のセッションに関する情報を取得します。

- getOption()を使用して、プロシージャの特定のオプションの値を取得します。

- getUser()を使用して、プロシージャを実行するODIユーザーに関する情報を取得します。

Oracle Data Integratorの置換メソッドを使用してオブジェクト・プロパティにアクセスする場合、フレックスフィールドのコードを指定すると、Oracle Data Integratorは、そのコードをオブジェクト・インスタンスのフレックスフィールド値で置き換えます。フレックスフィールドの作成および使用方法の詳細は、『Oracle Fusion Middleware Oracle Data Integratorナレッジ・モジュール開発者ガイド』の「フレックスフィールドの使用」を参照してください。

RDBMSトランザクションの処理

Oracle Data Integratorのプロシージャには、複数のステップまたはプロシージャにわたるトランザクション処理に対する拡張メカニズムが含まれています。トランザクション処理はRDBMSステップにのみ適用され、多くの場合、基礎となるデータベースのトランザクション機能に依存しています。たとえば、プロシージャ内では、エラー発生時にコミットまたはロールバックされる一連のステップを定義できます。また、同じサーバー上でステップに対する依存トランザクション・セットを最大10 (0から9)まで定義できます。基礎となるデータベースがトランザクションをサポートしている場合は、トランザクション処理の使用をお薦めします。トランザクションごとにデータベースへの接続が開くことに注意してください。

ただし、このメカニズムを使用する場合、パラレル環境ではセッション全体でデッドロックが発生する可能性があるため、注意が必要です。

ソース・データとターゲット・データのバインド

Oracle Data Integratorにおけるデータ・バインディングはプロシージャ内のメカニズムで、SQL SELECT文で戻されるすべての行に対してアクションを実行できます。

ソース・データとターゲット・データをバインドするには:

1. コマンドライン・エディタを開きます。

2. 「ソースに対するコマンド」タブで、SELECT文を指定します。

3. 「ターゲットに対するコマンド」タブで、アクション・コードを指定します。アクション・コード自体は、INSERT、UPDATE、DELETEの各SQL文、または他のコード(ODIツール・コール、Jython、Groovyなど)のいずれかです。ODIツール構文の詳細は、付録A「Oracle Data Integrator Toolsリファレンス」を参照してください。

ソース結果セットで戻された値は、SELECT文で戻された列名を使用してアクション・コードで参照できます。これらの値をターゲットのINSERT、UPDATEまたはDELETEの各SQL文で使用する場合は常に、値の先頭にコロン(:)を付ける必要があります。これによって、バインド変数として機能します。ターゲット文がDML文でない場合、これらの値は先頭にハッシュ記号(#)を付ける必要があります。これによって、置換変数として機能します。また、「ソース」タブの結果セットがハッシュ記号(#)を使用して「ターゲット」タブに渡されている場合は、「ソース」タブのコマンドから戻された値の数だけターゲット・コマンドが実行されます。

次に、このメカニズムの一般的な使用例を示します。この強力なメカニズムを使用するアプリケーションは他にも多数あります。

例12-1 リモートSQLデータベースからのデータのロード

データをOracle PRODUCT表からTeradata PARTS表に挿入する場合を考えてみます。表12-1で、プロシージャのステップでこれを実装する方法の詳細を説明します。

表12-1 リモートSQLデータベースからデータをロードするプロシージャの詳細

ソース・テクノロジ

Oracle

ソース論理スキーマ

ORACLE_INVENTORY

ソース・コマンド

select PRD_ID       MY_PRODUCT_ID,
PRD_NAME     PRODUCT_NAME,
from   <%=odiRef.getObjectName("L","PRODUCT","D")%>

ターゲット・テクノロジ

Teradata

ターゲット論理スキーマ

TERADATA_DWH

ターゲット・コマンド

insert into PARTS
(PART_ID, PART_ORIGIN, PART_NAME)
values
(:MY_PRODUCT_ID, 'Oracle Inventory',
:PRODUCT_NAME)

ODIでは、SELECT文で戻されたすべてのレコードが暗黙的にループされ、その値は「:MY_PRODUCT_ID」と「:PRODUCT_NAME」バインド変数にバインドされます。次に、適切なデータ型変換が実行された後、その値を使用してINSERT文がトリガーされます。

ターゲット・テクノロジとソース・テクノロジでそれぞれバッチ更新と配列フェッチがサポートされている場合、ODIでは、すべてのバッチについてメモリー内に配列が準備されます。これによって、トランザクション全体の効率が向上します。

注意:

このメカニズムは、ターゲット表での高速ロードまたは複数ロードに比較して効率が低いことが判明しています。このメカニズムは、非常に少量のデータに対してのみ使用することを検討してください。

このメカニズムの詳細は、ロード計画でのエージェントの使用に関する項を参照してください。

例12-2 複数の電子メールの送信

データ・ウェアハウスのロード中に問題が発生したときに、電子メールで警告を受信する全ユーザーの情報が記載された表を考えてみます。表12-2で説明するように、この動作は単一のプロシージャ・ステップを使用して実行できます。

表12-2 複数の電子メールを送信するプロシージャの詳細

ソース・テクノロジ

Oracle

ソース論理スキーマ

ORACLE_DWH_ADMIN

ソース・コマンド

Select FirstName FNAME, EMailaddress EMAIL
From <%=odiRef.getObjectName("L","Operators","D")%>
Where RequireWarning = 'Yes'

ターゲット・テクノロジ

ODITools

ターゲット論理スキーマ

なし

ターゲット・コマンド

OdiSendMail -MAILHOST=my.smtp.com -FROM=admin@mycompany.com “-TO=#EMAIL” “-SUBJECT=Job Failure”
Dear #FNAME,
I'm afraid you'll have to take a look at ODI Operator, because session <%=snpRef.getSession(“SESS_NO”)%> has just failed!
-Admin

–TOパラメータは、ソースのSELECT文のEmail列から取得された値に置換されます。したがって、OdiSendMailコマンドは、Operators表に登録されているすべてのオペレータに対してトリガーされます。

12.1.3 プロシージャの使用

プロシージャは、次の方法で使用できます。

- デザイナ・ナビゲータで直接プロシージャを実行して、プロシージャの実行をテストします。

- インタフェースおよび他の開発アーティファクトとともにパッケージでプロシージャを使用して、データ統合ワークフローを構築します。

- プロシージャのシナリオを生成して、ランタイム環境でこのプロシージャのみ起動するようにします。

12.1.3.1 プロシージャの実行

プロシージャを実行するには:

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

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

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

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

5. 「セッションを開始しました」ウィンドウが表示されます。

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

注意:

実行中に、プロシージャでは、プロシージャ・エディタの「オプション」タブに設定されているオプション値が使用されます。

12.1.3.2 パッケージでのプロシージャの使用

プロシージャはパッケージ・ステップとして使用できます。パッケージ・ステップでプロシージャを実行する方法の詳細は、10.3.1.2項「プロシージャの実行」を参照してください。パッケージ・ステップでプロシージャを使用する場合、使用するのは作成済プロシージャのコピーではなく、プロシージャへのリンクです。パッケージの外部でこのプロシージャが変更された場合は、このプロシージャを使用するパッケージも変更されます。

注意:

プロシージャの「オプション」タブに設定されているオプション値を使用しない場合は、プロシージャ・ステップの「オプション」タブに新規のオプション値を直接設定します。

12.1.3.3 プロシージャのシナリオの生成

本番環境でプロシージャを実行するためのシナリオを生成したり、パッケージを作成せずにプロシージャを使用して実行をスケジュールすることができます。生成したシナリオは、このプロシージャを実行する単一ステップのシナリオとなります。プロシージャのシナリオの生成方法については、13.2項「シナリオの生成」を参照してください。

12.1.4 プロシージャの暗号化と復号化

ナレッジ・モジュール(KM)またはプロシージャを暗号化すると、重要なコードを保護できます。暗号化されたKMまたはプロシージャは、復号化しないかぎり、読み取ったり変更することはできません。また、暗号化されたKMまたはプロシージャによってログに生成されるコマンドも、読み取ることはできません。

Oracle Data Integratorでは、個人暗号化鍵に基づいたDES暗号化アルゴリズムが使用されます。この鍵は、ファイルに保存して、暗号化操作または復号化操作を実行する際に再利用できます。

警告:

暗号化されたKMまたはプロシージャを暗号化鍵なしで復号化する方法はありません。したがって、この鍵は安全な場所に保存しておくことを強くお薦めします。また、すべての開発作業で一意の鍵を使用することをお薦めします。

12.1.4.1 KMまたはプロシージャの暗号化

KMまたはプロシージャを暗号化するには:

1. 暗号化するKMまたはプロシージャを右クリックします。

2. 「暗号化」を選択します。

3. 「暗号化オプション」ダイアログで、次のいずれかを実行します。

- 「個人キーで暗号化します」オプションを選択し、既存の暗号化鍵ファイルを選択します。

- 「個人キーで暗号化します」オプションを選択し、個人キーに対応する文字列を入力(または貼付け)します。

- 「新規暗号化鍵を取得します」オプションを使用して、Oracle Data Integratorで鍵を生成します。

4. 暗号化が終了すると、「暗号化鍵」ダイアログが表示されます。鍵はこのダイアログから保存できます。

入力した個人キーの文字数が少なすぎると、キー・サイズが無効であるというエラーが発生します。この場合は、より長い個人キーを入力してください。個人キーには、10個以上の文字数が必要です。

12.1.4.2 KMまたはプロシージャの復号化

KMまたはプロシージャを復号化するには:

1. 復号化するKMまたはプロシージャを右クリックします。

2. 「復号化」を選択します。

3. 「KM復号化」または「プロシージャ復号化」ダイアログで、次のいずれかを実行します。

- 既存の暗号化鍵ファイルを選択します。

- 個人キーに対応する文字列を入力(または貼付け)します。

復号化が終了すると、メッセージが表示されます。

12.2 変数の操作

この項では、変数の概要について説明し、Oracle Data Integratorで変数を作成および使用する方法について説明します。

12.2.1 変数の概要

変数は、単一の値を格納するオブジェクトです。この値には、文字列、数値または日付を使用できます。変数の値はOracle Data Integratorに格納されます。変数はプロジェクト内の複数の場所で使用でき、変数の値は実行時に更新できます。

変数は、そのタイプに応じて次のような特性を備えています。

- 作成時にデフォルト値を定義できます。

- 変数の値は、その変数を使用してシナリオを実行するときにパラメータとして渡すことができます。

- 変数の値は、いずれかのデータ・サーバーで実行された文の結果を使用してリフレッシュできます。たとえば、現在の日時はデータベースから取得できます。

- 変数の値は、パッケージ・ステップで設定または増分できます。

- 変数の値は、初期値からセッションの各ステップ実行後の値まで追跡できます。詳細は、12.2.3.11項「変数と順序の追跡」を参照してください。

- 変数を評価して、パッケージに条件やブランチを作成できます。

- 変数は、インタフェース、プロシージャ、ステップなどの式やコードで使用できます。

変数は、任意の式(SQLなど)、およびリポジトリのメタデータ内で使用できます。変数は、その変数が含まれているコマンドがエージェントまたはグラフィカル・インタフェースによって実行される際に解決されます。

変数は、グローバル変数として作成するか、プロジェクト内に作成できます。どちらで作成するかによって、変数の有効範囲が定義されます。グローバル変数はすべてのプロジェクトで使用できますが、プロジェクト変数は、その変数を定義したプロジェクト内でのみ使用できます。

変数の有効範囲の詳細は、12.2.3項「変数の使用」を参照してください。

次の各項では、変数を作成および使用する方法について説明します。

12.2.2 変数の作成

次の手順で変数を作成します。

1. デザイナ・ナビゲータで、プロジェクト内の「変数」ノードを選択するか、「その他」ビューの「グローバル変数」ノードを選択します。

2. 右クリックして「新規変数」を選択します。変数エディタが開きます。

3. 次の変数パラメータを指定します。

プロパティ

説明

名前

変数の名前。変数が使用される書式で指定します。この名前には、変数が使用されるテクノロジでセパレータ(空白など)と解釈される文字は使用できません。変数名は大/小文字が区別されます。したがって、「YEAR」と「year」は2つの異なる変数とみなされます。変数名は最大400文字に制限されています。

データ型

変数には次のタイプがあります。

- 英数字(整数または10進値を表わすテキストを含む、最大255文字のテキスト)

- 日付 (この書式は、標準仕様のISOの日付と時間の次の書式です。YYYY-MM-DDThh:mm:ssZ)
ここで大文字のTは、日付要素と時間要素の区切りに使用します。次に例を示します。

2011-12-30T13:49:02は、2011年12月30日の午後1時49分2秒を表します。

- 数値(整数、最大10桁(変数をデジタルとしてリフレッシュすると、デジタル部分が切り捨てられます))

- テキスト(長さの制限なし)

履歴の保持

このパラメータは、変数が保持される値の時間の長さを示します。

- 履歴なし: 変数の値は、セッションの実行中はメモリー内に保持されます。

- 最新の値: Oracle Data Integratorでは、変数によって保持される最新の値がリポジトリに格納されます。

- すべての値: Oracle Data Integratorでは、この変数が持つすべての値の履歴が保持されます。

セキュアな値

変数が記録されないようにする場合は、「セキュアな値」を選択します。これは、変数にパスワードやその他の機密データが含まれている場合に便利です。「セキュアな値」が選択されている場合:

- 変数は追跡されません: 変数はソース・コードまたはターゲット・コードで未解決の状態で表示され、リポジトリでの追跡や履歴化は行われません。

- 「履歴の保持」パラメータは自動的に「履歴なし」に設定され、編集できません。

デフォルト値

デフォルトで変数に割り当てられた値。

説明

変数の詳細な説明。

4. 変数の値を問合せで設定する場合は、次の手順を実行します。

1. 「リフレッシュ中」タブを選択します。

2. コマンドを実行する論理スキーマを選択し、スキーマのテクノロジの言語でコマンド・テキストを編集します。コマンド・テキストは式エディタを使用して編集できます。問合せ式の構文には、getObjectNameなどの置換メソッドを使用することをお薦めします。

3. 「DBMSで問合せをテスト中」をクリックして、式の構文をチェックします。

4. 「リフレッシュ」をクリックし、問合せを即時に実行して変数をテストします。「履歴の保持」パラメータが「すべての値」または「最新の値」に設定されている場合は、変数エディタの「履歴」タブに戻り値を表示できます。変数の値がどのように計算されるかの詳細は、変数値のリフレッシュに関する注意事項を参照してください。

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

デザイナ・ナビゲータの「プロジェクト」または「その他」ツリーに変数が表示されます。

ヒント:

変数の参照には、式エディタの使用をお薦めします。式エディタを使用すると、一般的な構文エラーを回避できます。たとえば、式エディタで変数を選択すると、その変数の有効範囲に応じて変数名の先頭に適切なコードが自動的に付きます。変数の参照方法の詳細は、変数の有効範囲を参照してください。

変数値のリフレッシュに関する注意事項

- 数値のセッション変数は、デフォルト値なしで定義されることがあります。セッション変数の以前の値がリポジトリ内にも残っていない場合、その変数値は未定義であるとみなされます。このような数値のセッション変数の値の問合せが行われた場合(たとえば、リフレッシュ中に問合せがあった場合)、ODIからは0が結果として返されます。

- 数値以外のセッション変数(日付、英数字、テキストなど)がデフォルト値なしで定義されている場合、このような変数の値の問合せが行われると、ODI-17506: Variable has no value: <var_name>エラーが発生します。

- ロード計画変数は、デフォルト値および永続的な値を持ちません。開始時に、ロード計画では変数のデフォルト値、または実行コンテキスト内の変数の履歴化された値/最新値は考慮されません。変数の値は、ロード計画の開始時に指定した値、またはロード計画内で設定/リフレッシュした値です。ロード計画変数が起動値として渡されない場合、ロード計画変数の起動値は未定義であるとみなされます。さらに、この変数がリフレッシュされず、ロード計画ステップで上書きされない場合は、ステップ内の変数の値も未定義になります。数値のロード計画変数の値が未定義である場合は、数値のセッション変数と同じように動作し、たとえば値の問合せが行われると、0が返されます。詳細は、14.2.3項「ロード計画での変数の使用」を参照してください。

- 数値以外のロード計画変数については、現在のODIリポジトリの設計では、未定義の値とnullの値の保持を区別できないという制限があります。そのため、数値以外のロード計画変数の値が未定義である場合、現時点では、null値が保持されているものとしてODIで処理されます。

- コマンドや式(SQLテキストなど)で、null値を持つセッション変数またはロード計画変数が参照された場合は、空の文字列(""の二重引用符なしの長さが0の文字列)が、テキストの変数参照の値として使用されます。

12.2.3 変数の使用

再利用可能なパッケージ、または、複雑な条件ロジック、インタフェースおよびプロシージャが含まれるパッケージを作成する場合は、変数の使用をお薦めします。変数は、ODI内のすべての場所で使用できます。変数の値は、「履歴の保持」パラメータが「すべての値」または「最新の値」に設定されている場合は、ODIリポジトリに永続的に保存されます。「履歴の保持」パラメータが「履歴なし」に設定されている場合は、現在のセッションの実行中に限り、変数の値がエージェントのメモリーに保持されます。

この項では、Oracle Data Integratorでの変数の使用方法の概要を説明します。変数は、次のように使用できます。

- パッケージでの変数の使用

- インタフェースでの変数の使用

- オブジェクト・プロパティでの変数の使用

- プロシージャでの変数の使用

- 変数内での変数の使用

- データストアのリソース名での変数の使用

- シナリオへの変数の受渡し

- 変数のシナリオの生成

- 変数と順序の追跡

変数の有効範囲

パッケージ、統合インタフェースおよびプロシージャの変数を参照するには、式エディタを使用します。式エディタを使用すると、変数はリポジトリから直接取得されます。

式エディタが使用できない場合は、変数名の先頭にGLOBALまたはPROJECT_CODEを手動で付ける必要があります。

オブジェクト内のMY_VARという変数を参照するには、次のように行います。

- #MY_VAR: この構文を使用する場合は、変数とその変数を参照するオブジェクトは同じプロジェクトに存在している必要があります。変数の値は置換されます。正確に指定するために、変数名の先頭にプロジェクト名を付けた完全修飾構文を使用することを検討してください。

- #MY_PROJECT_CODE.MY_VAR: この構文を使用すると、変数を含むプロジェクトを明示的に示して変数を使用できます。たとえば、グローバル・レベルとプロジェクト・レベルに同じ名前の変数が2つ存在する場合でも、正確に指定できます。変数の値は実行時に置換されます。

- #GLOBAL.MY_VAR: この構文を使用すると、グローバル変数を参照できます。変数の値はコード内で置換されます。詳細は、グローバル・オブジェクトに関する項を参照してください。

- ハッシュ(#)ではなくコロン(:)を使用: 変数の先頭にハッシュ記号ではなくコロンを付けると、変数をSQLバインド変数として使用できます。ただし、この構文はSQL DML文にのみ適用され、OSコマンドやODI APIコールには適用されないという制約があります。さらに、バインド変数を使用すると、パフォーマンスが低下する場合があります。実行時に最適なパフォーマンスを得るには、#文字を先頭に付けたODI変数の使用をお薦めします。

- 先頭にコロン(:)が付いたODI変数を参照すると、RDBMSエンジンで実行計画を決定するときに変数の名前が置換されません。変数が置換されるのは、RDBMSでリクエストが実行されるときです。このメカニズムをバインディングと呼びます。バインディング・メカニズムを使用する場合、RDBMSでは変数が使用される列の定義で指定されたタイプと同じタイプのデータが使用されるとみなされるため、文字列を格納する変数をデリミタ(引用符など)で囲む必要はありません。
たとえば、変数TOWN_NAME = :GLOBAL.VAR_TOWN_NAMEを使用する場合は、VARCHAR型が使用されるとみなされます。

- 先頭に#文字が付いたODI変数を参照すると、テクノロジでコードが実行される前に、変数の名前が値で置換されます。変数参照は一重引用符で囲む必要があります(例: TOWN = '#GLOBAL.VAR_TOWN')。変数のコールは、OSコマンド、SQLおよびODI APIコールに対して機能します。

12.2.3.1 パッケージでの変数の使用

変数は、次のような様々な目的でパッケージ内で使用できます。

- 変数の宣言: 変数をパッケージで(またはパッケージ内で使用されるトポロジの特定の要素で)使用する場合は、そのパッケージに変数の宣言ステップを挿入することを強くお薦めします。このステップは、パッケージの変数を明示的に宣言します。変数の宣言ステップの作成方法については、変数の宣言を参照してください。値を設定、リフレッシュまたは評価するためにパッケージで明示的に使用する他の変数は、宣言する必要がありません。

- SQL SELECT文からの変数のリフレッシュ: 変数のリフレッシュ・ステップでは、変数値を計算するコマンドまたは問合せを再実行できます。変数のリフレッシュ・ステップの作成方法については、変数のリフレッシュを参照してください。

- 変数の値の割当て: 「割当て」タイプの変数の設定ステップでは、変数の現在の値を設定します。
Oracle Data Integratorでは、次の方法で変数に値を割り当てることができます。

- SQL SELECT文から変数値を取得する方法: 変数の作成時に、変数値を取得するSQL文を定義します。たとえば、変数NB_OF_OPEN_ORDERSを作成し、SQL文をselect COUNT(*) from <%=odiRef.getObjectName("L","ORDERS","D")%> where STATUS = 'OPEN'に設定できます。
次に、パッケージで変数をドラッグ・アンド・ドロップし、「プロパティ」パネルで「変数のリフレッシュ」オプションを選択します。これによって、実行時にODIエージェントがSQL文を実行し、結果セットの最初の戻り値を変数に割り当てます。

- パッケージに値を明示的に設定する方法: パッケージの有効範囲内で、変数に値を手動で割り当てることもできます。変数をパッケージにドラッグ・アンド・ドロップし、「プロパティ」パネルで「変数の設定」および「割当て」オプションを選択し、設定する値を指定します。

- 値を増分する方法: 増分が適用されるのは、数値データ型を使用して定義された変数のみです。数値変数をパッケージにドラッグ・アンド・ドロップし、「プロパティ」パネルで「変数の設定」および「割当て」オプションを選択し、任意の増分を指定します。増分値には正の数または負の数を指定できます。

- 実行時に値を割り当てる方法: 変数を含むパッケージから生成されたシナリオを開始するときに、その変数の値を設定できます。これを行うには、StartScenarioコマンドでVARIABLE=VALUEリストを指定します。OdiStartLoadPlan APIコマンド、および21.3.2項「コマンドラインからのシナリオの実行」を参照してください。
変数の割当てステップの作成方法については、変数の設定を参照してください。

- 数値の増分: 「増分」タイプの変数の設定ステップでは、指定した量のみ数値を増減します。変数の設定ステップの使用方法については、変数の設定を参照してください。

- 条件ブランチの値の評価: 変数の評価ステップはIF-ELSEステップと同様に機能します。比較の結果に基づいて、パッケージ内の変数およびブランチの現在値をテストします。たとえば、変数EXEC_A_AND_BがYESに設定されている場合のみ、パッケージのインタフェースAとBを実行し、そうでない場合はインタフェースBとCを実行するとします。これを行うには、変数をパッケージ・ダイアグラムにドラッグ・アンド・ドロップし、「プロパティ」パネルで「変数の評価」タイプを選択します。パッケージの変数を評価することによって、再利用可能で複雑なワークフローを柔軟に設計できます。変数の評価ステップの作成方法については、変数の評価を参照してください。

12.2.3.2 インタフェースでの変数の使用

変数は、次の2つの方法でインタフェース内で使用できます。

1. ナレッジ・モジュールのテキスト・オプションの値として使用する方法

2. すべてのOracle Data Integrator式(マッピング、フィルタ、結合、制約など)で使用する方法

変数の値を式のテキストに置換するには、変数名の前に#文字を追加します。エージェントまたはグラフィカル・インタフェースによって、実行前にコマンドの変数の値が置換されます。

次に、YEARというグローバル変数の使用例を示します。

Update CLIENT set LASTDATE = sysdate where DATE_YEAR = '#GLOBAL.YEAR' /* DATE_YEAR is CHAR type */
Update CLIENT set LASTDATE = sysdate where DATE_YEAR = #GLOBAL.YEAR /* DATE_YEAR is NUMERIC type */

SQL言語のバインド変数メカニズムも使用できますが、あまり効率的ではありません。これは、リレーショナル・データベース・エンジンでは、問合せの実行計画の作成時に変数の値を認識できないためです。例:次に例を示します。

update CLIENT set LASTDATE = sysdate where DATE_YEAR =:GLOBAL.YEAR

フィルタまたは結合式に使用される日付型変数には、"バインド変数"メカニズムを使用する必要があります。次の例は、フィルタを示しています。

SRC.END_DATE > :SYSDATE_VAR

変数SYSDATE_VARは、リフレッシュ問合せselect sysdate from dualを持つ"日付"型変数です

日付変数に置換メソッドが使用される場合、RDBMS固有の変換関数を使用して、文字列を日付形式に変換する必要があります。

式エディタでは、ほとんどの式に変数をドラッグ・アンド・ドロップできます。

表12-3 インタフェースでの変数の使用例

タイプ

式

マッピング

'#PRODUCT_PREFIX' || PR.PRODUCT_CODE

現在のプロジェクトのPRODUCT_PREFIX変数をPRODUCT_CODEに連結します。変数の値は置換されて文字列を戻すため、変数を一重引用符で囲む必要があります。

結合

CUS.CUST_ID = #DEMO.UID * 000 + FF.CUST_NO

DEMOプロジェクトのUID変数の値に000を乗算し、CUST_NO列を加算してから、CUST_ID列に結合します。

フィルタ

ORDERS.QTY between #MIN_QTY and #MAX_QTY

MIN_QTYとMAX_QTYのしきい値に従って注文をフィルタ処理します。

オプション値

TEMP_FILE_NAME: #DEMO.FILE_NAME

FILE_NAME変数をTEMP_FILE_NAMEオプションの値として使用します。

12.2.3.3 オブジェクト・プロパティでの変数の使用

トポロジのリソース名やスキーマ名などのグラフィカル・モジュールのフィールドでは、変数を置換変数として使用することも可能です。この場合、Oracle Data Integratorのグラフィカル・モジュールのフィールドでは、変数の完全修飾名(例: #GLOBAL.MYTABLENAME)を直接使用する必要があります。

この方法を使用すると、実行時の次のような要素をパラメータ化できます。

- ファイルや表の物理名(データストアの「リソース」フィールド)、またはその場所(トポロジの物理スキーマのスキーマ(データ))

- 物理スキーマ

- データ・サーバーURL

12.2.3.4 プロシージャでの変数の使用

表12-4に示すように、変数はプロシージャのコード内で使用できます。

表12-4 プロシージャでの変数の使用例

ステップID:

ステップのタイプ

ステップ・コード

説明

1

SQL

Insert into #DWH.LOG_TABLE_NAME

Values (1, 'Loading Step Started', current_date)

実行時にのみ名前が判明するログ表に行を追加します。

2

Jython

f = open('#DWH.LOG_FILE_NAME', 'w')

f.write('Inserted a row in table %s' % ('#DWH.LOG_TABLE_NAME') )

f.close()

LOG_FILE_NAME変数で定義されるファイルを開き、行を挿入したログ表の名前を書き込みます。

プロシージャでは、できるだけ、変数ではなくオプションを使用することを検討してください。オプションは入力パラメータと同様に機能します。したがって、パッケージ内のプロシージャを実行するときは、オプション値を適切な値に設定できます。

表12-4に示す例の場合、ステップ1のコードは次のように記述します。

Insert into <%=snpRef.getOption(“LogTableName”)%>
Values (1, 'Loading Step Started', current_date)

次に、プロシージャをパッケージ・ステップとして使用するときは、LogTableNameオプションの値を#DWH.LOG_TABLE_NAMEに設定します。

Groovyスクリプトを使用している場合、"#varname"や"#GLOBAL.varname"のように、変数名を二重引用符(")で囲む必要があります。そうしないと、変数はODI変数値に置き換えられません。

12.2.3.5 変数内での変数の使用

表12-5に示すように、他の変数値に依存する変数を使用すると便利な場合があります。

表12-5 別の変数内での変数の使用例

変数名

変数の詳細

説明

STORE_ID

英数字変数。パラメータとしてシナリオに渡されます。

店舗のIDを指定します。

STORE_NAME

英数字変数。

SELECT文:

Select name
From <%=odiRef.getObjectName("L","STORES","D")%>
Where id='#DWH.STORE_ID'||'#DWH.STORE_CODE'

現在の店舗の名前は店舗表から導出されます。この店舗表は、STORE_ID変数とSTORE_CODE変数の連結によって戻された値によってフィルタ処理された表です。

表12-5の場合、次のようにしてパッケージを構築します。

1. STORE_ID変数をドラッグ・アンド・ドロップして宣言します。これによって、実行時にこの変数をシナリオに渡すことができます。

2. STORE_NAME変数をドラッグ・アンド・ドロップして、その値をリフレッシュします。このステップを実行すると、エージェントは適切なSTORE_ID値を使用して問合せの選択を実行し、対応するSTORE_NAME値を取得します。

3. これらの変数を使用する他のインタフェースまたはプロシージャをドラッグ・アンド・ドロップします。

"バインド変数"メカニズムを使用して、他の"日付"型変数を参照する"日付"型変数のリフレッシュ問合せを定義する必要があります。例:

VAR1"日付"型変数は、リフレッシュ問合せselect sysdate from dualを持ちます

VAR_VAR1"日付"型変数は、リフレッシュ問合せselect :VAR1 from dualを持つ必要があります

12.2.3.6 データストアのリソース名での変数の使用

ソースまたはターゲット・データストアの名前が動的である場合があります。一般的な例には、接頭辞と動的な接尾辞(現在日付など)で構成されたファイル名を使用して、フラット・ファイルをデータ・ウェアハウスにロードする場合があります。たとえば、3月26日の注文ファイルの名前はORD2009.03.26.datになります。

以前に宣言されている変数を使用できるのは、シナリオ内のデータストアのリソース名のみであることに注意してください。

ロード・インタフェースを開発するには、次のステップを実行します:

1. DWHプロジェクトにFILE_SUFFIX変数を作成し、そのSQL SELECT文でcurrent_date (または実際のファイル接尾辞の書式に一致する適切な日付変換)を選択するように設定します。

2. モデル内にORDERSファイル・データストアを定義し、そのリソース名をORD#DWH.FILE_SUFFIX.datに設定します。

3. インタフェースでファイル・データストアを通常どおりに使用します。

4. 次のようにパッケージを設計します。

1. FILE_SUFFIX変数をドラッグ・アンド・ドロップしてリフレッシュします。

2. ORDERSデータストアを使用するすべてのインタフェースをドラッグ・アンド・ドロップします。

これで、実行時に、ソース・ファイル名が適切な値に置換されます。

注意:

データストアのリソース名の変数は、そのプロジェクト・コードを使用して完全修飾する必要があります。

このメカニズムを使用しているときは、デザイナ内からデータストアのデータを表示できません。

12.2.3.7 サーバーURLでの変数の使用

異なる場所ごとにコンテキストを使用するよりも、データ・サーバーのURL定義に変数を使用するほうが適切な場合があります。たとえば、ソースの数が多い(100以上)場合や、トポロジが外部の別の表に定義されている場合は、サーバーの定義のURLに含まれる変数を参照できます。

Oracleデータベースでホストされ、店舗で使用している250のソース・アプリケーションからウェアハウスをロードする場合を考えてみます。店舗ごとに1つのコンテキストを定義する方法も可能ですが、この方法ではトポロジが複雑になり、保守が困難になります。かわりに、店舗に接続するためのすべての物理情報を参照する表を定義し、データ・サーバーの定義のURLに変数を使用できます。例12-3に、Oracle Data Integratorでの実装方法を示します。

例12-3 サーバーの定義のURLでの変数の参照

1. 次のように、StoresLocation表を作成します。

表12-6 StoresLocation表

店舗ID

店舗名

店舗URL

アクティブ

1

Denver

10.21.32.198:1521:ORA1

YES

2

San Francisco

10.21.34.119:1525:SANF

NO

3

New York

10.21.34.11:1521:NY

YES

...

...

...

...

2. EDWプロジェクトに次の3つの変数を作成します。

- STORE_ID: 入力パラメータとして現在の店舗IDを使用します。

- STORE_URL: SELECT文select StoreUrl from StoresLocation where StoreId = #EDW.STORE_IDを使用して、現在の店舗IDに対する現在のURLをリフレッシュします。

- STORE_ACTIVE: SELECT文select IsActive from StoresLocation where StoreId = #EDW.STORE_IDを使用して、現在の店舗IDに対する現在のアクティビティ・インジケータをリフレッシュします。

3. 全店舗用に1つの物理データ・サーバーを定義し、そのJDBC URLを次のように設定します。
jdbc:oracle:thin:@#EDW.STORE_URL

4. 店舗からデータをロードするためのパッケージを定義します。
入力変数STORE_IDを使用して、StoresLocation表のSTORE_URL変数とSTORE_ACTIVE変数の値をリフレッシュします。STORE_ACTIVEがYESに設定されている場合は、次の3ステップがトリガーされます。インタフェースでは、STORE_URL変数の値に従って、エージェントが存在するソース・データストアを参照します。

New York店についてUNIXでこのシナリオを開始するには、次のオペレーティング・システム・コマンドを発行します。

startscen.sh LOAD_STORE 1 PRODUCTION “EDW.STORE_ID=3”

すべての店舗についてLOAD_STOREシナリオを並行してトリガーする場合は、次のように単一のSELECT/アクション・コマンドを使用するプロシージャを作成する必要があります。

表12-7 SELECT/アクション・コマンド

ソース・テクノロジ

Oracle(StoresLocation表を含むデータ・サーバーのテクノロジ)。

ソース論理スキーマ

StoresLocation表を含む論理スキーマ。

ソース・コマンド

Select StoreId
From StoresLocation

ターゲット・テクノロジ

ODITools

ターゲット論理スキーマ

なし

ターゲット・コマンド

SnpsStartScen “-SCEN_NAME=LOAD_STORE” “-SCEN_VERSION=1” “-SYNC_MODE=2” “-EDW.STORE_ID=#StoreId”

LOAD_STOREシナリオは、適切なSTORE_ID値を使用してすべての店舗に対して実行されます。店舗に対応するURLが設定されます。

詳細は、「ソース・データとターゲット・データのバインド」、および4.3項「エージェントの管理」を参照してください。

12.2.3.8 接続時または切断時のコマンドでの変数の使用

接続時または切断時のSQLコマンドには変数を使用できます。詳細は、4.2.2.3項「データ・サーバーの作成(詳細設定)」を参照してください。

12.2.3.9 シナリオへの変数の受渡し

動作をカスタマイズするために変数をシナリオに渡すこともできます。これを行うには、シナリオを実行するOSコマンドラインで変数の名前とその値を渡します。詳細は、21.3.2項「コマンドラインからのシナリオの実行」を参照してください。

12.2.3.10 変数のシナリオの生成

変数をリフレッシュするために単一ステップのシナリオを生成できます。

変数のシナリオを生成する方法については、13.2項「シナリオの生成」を参照してください。

12.2.3.11 変数と順序の追跡

変数と順序を追跡すると、実行済のセッション中に使用されたOracle Data Integratorユーザー変数の実際の値を判断できます。また、変数の追跡機能では、変数がソース/ターゲット操作で使用されたのか、または評価ステップなどの内部操作で使用されたのかも判断できます。

変数の追跡は複数のレベルで実行および構成されます:

- 変数を定義するときに、変数が記録されないようにする場合は「セキュアな値」を選択します。これは、変数にパスワードやその他の機密データが含まれている場合に便利です。「セキュアな値」を選択すると、変数は追跡されません。変数はソース・コードまたはターゲット・コードに未解決の状態で表示され、リポジトリでの追跡や履歴化は行われません。詳細は、12.2.2項「変数の作成」を参照してください。

- セッションの実行時または再開時には、「実行」または「セッションの再開」ダイアログで「ログ・レベル6」を選択すると、変数の追跡を有効にできます。ログ・レベル6は、ログ・レベル5と動作は同じですが、変数の追跡が追加されています。

- オペレータ・ナビゲータで実行結果を確認する場合、次を行えます:

- セッション・ステップ・エディタまたはセッション・タスク・エディタの「変数値と順序値」セクションで、追跡された変数と順序を表示します。

- セッション・タスク・エディタで、実行のソース/ターゲット操作を確認します。解決済の変数値および順序値とともにコードを表示するには、セッション・タスク・エディタの「コード」タブで「値の表示/非表示」をクリックします。解決済の変数値には置換モードの変数(#VARIABLE)のみ表示され、変数値が表示される場合、コードが読取り専用であることに注意してください。

変数と順序の追跡は、デバッグ目的に役立ちます。オペレータ・ナビゲータでエラーを分析する方法および変数の追跡を有効化する方法の詳細は、22.2.3項「失敗したセッションの処理」を参照してください。

変数の追跡は、ODI StudioセッションとODIコンソール・セッションで使用できます。

Oracle Data Integratorで変数を追跡する場合は、次の点に注意してください:

- セッション中に変数がとる値ごとに追跡できます。

- 追跡されたすべての変数の値は、ステップ・レベルおよびタスク・レベルで表示できます。これには変数がステップまたはタスクによって変更された場合も含まれ、ステップ・エディタまたはタスク・エディタに変数の名前と新しい値が表示されます。

- ステップまたはタスクのソース・コードとターゲット・コードは、解決済の変数値および順序値とともに表示することも、変数名と順序名を表示して変数値は非表示にすることもできます。変数値が表示されている場合、コードは読取り専用になることに注意してください。

- 「セキュアな値」として定義された変数(パスワードなど)は、解決済のコード・リストにも変数リストにも表示されません。セキュアな変数は、リフレッシュされても、リポジトリに値が保持されません。また、セキュアな変数のリフレッシュは、2つのセッション間では機能しません。

- セッションがパージされると、そのセッションにアタッチされたすべての変数値もセッションとともにパージされます。

- バインド変数(:VARIABLE_NAME)とネイティブ順序(:<SEQUENCE_NAME>_NEXTVAL)は追跡できず、置換された変数と順序(#VARIABLE_NAMEと#<SEQUENCE_NAME>_NEXTVAL)のみを追跡できます。

- 追跡された値は、セッションがエクスポートまたはインポートされるときに、セッションの一部としてエクスポートおよびインポートされます。

12.3 順序の使用

この項では、順序の概要について説明し、Oracle Data Integratorで順序を作成および使用する方法について説明します。

12.3.1 順序の概要

順序は、使用されるたびに自動的に増分する変数です。次の使用までの間、値はリポジトリに格納されるか、外部RDBMS表内で管理されます。順序には、文字列、リスト、タプルまたはディクショナリを使用できます。

Oracle Data Integratorの順序は、RDBMSエンジンからネイティブ順序をマップしたり、RDBMSエンジンにネイティブ順序が存在しない場合に順序をシミュレートすることを目的にしています。ネイティブ以外の順序の値は、リポジトリに格納するか、外部RDBMS表のセル内で管理できます。

順序は、グローバル順序として作成するか、またはプロジェクト内で作成することが可能です。グローバル順序はすべてのプロジェクトに共通ですが、プロジェクト順序はそれを定義したプロジェクト内でのみ使用できます。

Oracle Data Integratorでは3つのタイプの順序がサポートされています。

- 標準順序: 現在の値がリポジトリに格納されます。

- 特定の順序: 現在の値がRDBMS表のセルに格納されます。Oracle Data Integratorは、値を読み取り、行をロックして(同時更新の場合)、最後の増分後に行を更新します。

- ネイティブ順序: RDBMSが管理する順序をマップします。

標準順序および特定の順序については、次の点に注意してください。

- Oracle Data Integratorでは、複数ユーザー管理に使用される順序をロックしますが、順序の再開位置については処理しません。つまり、SQL文のROLLBACKでは、トランザクションの開始時の値に順序を戻すことはできません。

- Oracle Data Integratorの標準順序および特定の順序は、一部のRDBMSで順序が存在しないことを補う目的で開発されています。ネイティブ順序が存在する場合は、その順序を使用してください。これによって、エージェントとデータベース間の対話が減少するため、処理速度が向上する可能性があります。

- 標準順序と特定の順序の値(#<SEQUENCE_NAME>_NEXTVAL)は追跡できますが、ネイティブ順序は追跡できません。詳細は、12.2.3.11項「変数と順序の追跡」を参照してください。

次の各項では、順序を作成および使用する方法について説明します。

12.3.2 順序の作成

順序を作成する手順は、順序タイプによって異なります。該当する項を参照してください。

- 標準順序の作成

- 特定の順序の作成

- ネイティブ順序の作成

12.3.2.1 標準順序の作成

標準順序を作成するには:

1. デザイナ・ナビゲータで、プロジェクト内の「順序」ノードを選択するか、「その他」ビューの「グローバル順序」ノードを選択します。

2. 右クリックして「新規順序」を選択します。順序エディタが開きます。

3. 順序の「名前」を入力し、「標準順序」を選択します。

4. 「増分」に入力します。

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

デザイナ・ナビゲータの「プロジェクト」または「その他」ツリーに順序が表示されます。

12.3.2.2 特定の順序の作成

順序値を特定のデータ・スキーマ内の表に格納する場合、このオプションを選択します。

特定の順序を作成するには:

1. デザイナ・ナビゲータで、プロジェクト内の「順序」ノードを選択するか、「その他」ビューの「グローバル順序」ノードを選択します。

2. 右クリックして「新規順序」を選択します。順序エディタが開きます。

3. 順序の「名前」を入力し、「特定の順序」を選択します。

4. 「増分」の値を入力します。

5. 次の順序パラメータを指定します。

スキーマ

順序表を含む論理スキーマ

表

順序値を含む表

列

順序値を含む列の名前

単一行を取得するフィルタ

順序表に複数の行が含まれている場合に、Oracle Data Integratorで表内の特定の行を検索できるようにフィルタを入力します。このフィルタによって、データ・サーバーのSQL構文が取得されます。

例: CODE_TAB = '3'

フィルタは、式エディタを使用して編集できます。「DBMSで問合せをテスト中」をクリックして、式の構文をチェックします。

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

デザイナ・ナビゲータの「プロジェクト」または「その他」ツリーに順序が表示されます。

注意:

Oracle Data Integratorで特定の順序の値にアクセスする場合、スキーマで実行される問合せは、SELECT 列 FROM 表 WHERE フィルタの形式となります。

12.3.2.3 ネイティブ順序の作成

順序がデータベース・エンジンに実装される場合、このオプションを選択します。位置および増分は、データベース・エンジンによって完全に処理されます。

ネイティブ順序を作成するには:

1. デザイナ・ナビゲータで、プロジェクト内の「順序」ノードを選択するか、「その他」ビューの「グローバル順序」ノードを選択します。

2. 右クリックして「新規順序」を選択します。順序エディタが開きます。

3. 順序の「名前」を入力し、「ネイティブ順序」を選択します。

4. ネイティブ順序を含む論理スキーマを選択します。

5. 「ネイティブ順序名」に入力するか、「参照」ボタンをクリックして、データ・サーバーから取得されたリストから順序を選択します。

6. 「参照」ボタンをクリックした場合は、「ネイティブ順序選択」ダイアログで「コンテキスト」を選択して、論理スキーマのこのコンテキストでの順序リストを表示します。

7. いずれかの順序を選択して、「OK」をクリックします。

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

デザイナ・ナビゲータの「プロジェクト」または「その他」ツリーに順序が表示されます。

12.3.3 順序およびID列の使用

順序を増分するには、エージェントがデータを1行ずつ処理する必要があります。したがって、多数のレコードを処理する場合に順序を使用することはお薦めできません。このような場合は、データベース固有の順序(Teradata、IBM DB2、Microsoft SQL ServerのID列、またはOracleの順序など)を使用します。

順序は、次のようなOracle Data Integratorのすべての式で使用できます。

- マッピング

- フィルタ

- 結合

- 制約

- ...

順序は、次のいずれかとして使用できます。

- 置換された値。#<SEQUENCE_NAME>_NEXTVAL構文を使用します。

- SQL文のバインド変数。:<SEQUENCE_NAME>_NEXTVAL構文を使用します。

置換された値として順序を使用する場合

順序は、#<SEQUENCE_NAME>_NEXTVAL構文を使用して、すべての文で使用できます。

この構文を使用すると、コマンドの実行前に順序値が1回のみ増分され、その値でコマンドのテキストが置換されます。順序値はすべてのレコードで同一になります。

バインド変数として順序を使用する場合

順序は、KMまたはプロシージャのターゲット・コマンドのSQL文の場合のみ、:<SEQUENCE_NAME>_NEXTVAL構文で使用できます。

この構文を使用すると、順序値が増分され、ターゲットSQLコマンドのバインド変数として渡されます。順序値は、コマンドによるレコードの処理ごとに増分されます。順序タイプに応じて動作が異なります。

- ネイティブ順序は常に、レコードが処理されるたびに増分されます。

- 標準順序および特定の順序は、ランタイム・エージェントによって解決され、レコードがエージェントを経由した場合のみ増分されます。このような順序を使用するKMまたはプロシージャのコマンドでは、ターゲット・コマンドで単一のINSERT/UPDATE...SELECTを使用するのではなく、ソース・コマンドでSELECT文を使用し、ターゲット・コマンドでINSERTまたはUPDATE文を使用する必要があります。

例:

- SQL文insert into fac select :NO_FAC_NEXTVAL, date_fac, mnt_facでは、SQL文が10,000行を処理した場合でも、標準順序または特定の順序の値が増分されるのは1回のみです。これは、エージェントが各レコードを処理するのではなく、データベース・エンジンにコマンドを送信するのみであるためです。ネイティブ順序は行ごとに増分されます。

- 行ごとに標準順序または特定の順序の値を増分するには、データがエージェントを経由する必要があります。これを行うには、ソース・コマンドでSELECTを実行し、ターゲット・コマンドでINSERTを実行するKMまたはプロシージャを使用します。

SELECT date_fac, mnt_fac /* on the source connection */

INSERT into FAC (ORDER_NO, ORDER_DAT, ORDER_AMNT) values (:NO_FAC_NEXTVAL, :date_fac, :mnt_fac) /* on the target connection */

順序の有効範囲

変数とは異なり、順序の有効範囲はコード内で明示的に宣言する必要はありません。

12.3.3.1 標準順序および特定の順序を使用する際のヒント

表に挿入された各行で順序が確実に更新されるには、各行がエージェントで処理される必要があります。この動作を保証するには、次の手順を実行します。

1. ターゲットで実行される順序を格納するマッピングを作成します。

2. 挿入に対してのみアクティブになるようにマッピングを設定します。順序に対する更新はサポートされません。

3. 増分更新のIKMを使用する場合は、順序が移入される列が使用中の更新キーに含まれていないことを確認します。たとえば、データストアの主キーをロードするために順序を使用する場合は、インタフェースの更新キーとして代替キーを使用する必要があります。

4. Oracle Data Integratorの順序をバインド構文(:<SEQUENCE_NAME>_NEXTVAL)で使用する場合は、IKMによってすべてのデータがエージェント経由で転送されるようにデータ・フローを構成する必要があります。これは、生成された統合ステップをオペレータでチェックすることにより検証できます。異なる接続では、単一のSELECT...INSERT文ではなく個別のINSERTコマンドとSELECTコマンドを実行する必要があります。

順序の制限

順序には次の制限があります。

- 順序とともにマップされた列では、not nullをチェックできません。

- 同様に、順序を参照している主キーまたは代替キーでは、静的制御およびフロー制御を実行できません。

12.3.3.2 ID列

一部のデータベースでは、増分する一意の値が自動的に移入されるID列をネイティブで提供しています。

ID列を移入する場合は、次の手順を実行する必要があります。

1. ID列をロードするマッピングは、空白および非アクティブにする必要があります。挿入または更新に対してアクティブにしないでください。

2. 増分更新のIKMを使用する場合は、使用中の更新キーにID列が含まれていないことを確認します。ID列が主キーに含まれている場合は、インタフェースの更新キーとして代替キーを定義する必要があります。

ID列の制限

ID列には次の制限があります。

- ID列ではnot nullをチェックできません。

- ID列を含む主キーまたは代替キーでは、静的制御およびフロー制御を実行できません。

12.4 ユーザー関数の使用

この項では、ユーザー関数の概要について説明し、Oracle Data Integratorでユーザー関数を作成および使用する方法について説明します。

12.4.1 ユーザー関数の概要

ユーザー関数を使用すると、インタフェースまたはプロシージャで使用できるカスタマイズされた関数を定義できます。同一で複雑な変換パターンを異なるインタフェース内の異なるデータストアに割り当てる必要がある場合は、プロジェクトでユーザー関数を使用することをお薦めします。ユーザー関数によって、コードの共有や再利用が促進され、異なるターゲット・プラットフォーム間における開発作業の維持や移植が容易になります。

ユーザー関数は1つ以上のテクノロジに実装され、マッピング、結合、フィルタおよび条件で使用できます。12.4.3項「ユーザー関数の使用」を参照してください。

関数は、グローバル関数として作成するか、またはプロジェクト内に作成できます。グローバル関数はすべてのプロジェクトに共通で、プロジェクト内の関数はそれが定義されているプロジェクトに関連付けられます。

ユーザー関数は別のユーザー関数を呼び出すことができます。ただし、ユーザー関数がその関数自体を再帰的に呼び出すことはできません。

注意:

集計関数はユーザー関数でサポートされていません。集計関数コードは作成されますが、GROUP BY式は生成されません。

次の各項では、ユーザー関数を作成および使用する方法について説明します。

12.4.2 ユーザー関数の作成

ユーザー関数を作成するには:

1. デザイナ・ナビゲータで、プロジェクト内の「ユーザー関数」ノードを選択するか、「その他」ビューの「グローバル・ユーザー関数」ノードを選択します。

2. 右クリックして「新規ユーザー関数」を選択します。ユーザー関数エディタが開きます。

3. 次の各フィールドに値を入力します。

- 名前: ユーザー関数の名前。たとえば、NullValueと指定します。

- グループ: ユーザー関数のグループ。存在しないグループ名を入力すると、関数の保存時にそのグループ名で新規グループが作成されます。

- 構文: 式エディタに表示されるユーザー関数の構文。関数の引数はこの構文で指定する必要があります。たとえば、NullValue($(variable), $(default))と指定します。

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

デザイナ・ナビゲータの「プロジェクト」または「その他」ツリーに関数が表示されます。実装が含まれていないため、まだ使用できません。

実装を作成するには:

1. デザイナ・ナビゲータで、実装を作成するユーザー関数をダブルクリックします。ユーザー関数エディタが開きます。

2. ユーザー関数エディタの「実装」タブで「実装の追加」をクリックします。「実装」ダイアログが開きます。

3. 「実装構文」フィールドに、実装のコードを入力します。たとえば、nvl($(variable), $(default))と入力します。

4. 実装のリンクされたオブジェクトの各ボックスを選択します。

5. 新規テクノロジでこの構文を使用する場合は、「新しいテクノロジを自動的に含む」を選択します。

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

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

実装を変更するには:

1. ユーザー関数エディタの「実装」タブで、実装を選択して「編集」をクリックします。

2. ユーザー関数の「実装」タブで、実装を選択して「実装の編集」をクリックします。「実装」ダイアログが開きます。

3. この実装の実装構文およびリンクされたテクノロジを変更します。

4. 新規テクノロジでこの構文を使用する場合は、「新しいテクノロジを自動的に含む」を選択します。

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

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

実装を削除するには:

ユーザー関数の「実装」タブで、実装を選択して「実装の削除」をクリックします。

特定のテクノロジでユーザー関数を使用可能にするには:

1. 特定のテクノロジのテクノロジ・エディタを開きます。

2. 「言語」列で、テクノロジの言語を選択します。

3. 「デフォルト」を選択します。

4. 「定義」タブのテクノロジ・タイプ・リストから対応するテクノロジが選択されていることを確認します。Oracle Data Integrator APIは、ユーザー関数では機能しません。

12.4.3 ユーザー関数の使用

ユーザー関数は、次のようなOracle Data Integratorのすべての式で使用できます。

- マッピング

- フィルタ

- 結合

- 制約

- ...

ユーザー関数は、その構文を指定して直接使用できます。たとえば、NullValue(CITY_NAME, 'No City')と指定します。

ユーザー関数は、1つ以上のテクノロジに実装されます。たとえば、Oracleのnvl(VARIABLE,DEFAULT_VALUE)関数は、VARIABLEまたはDEFAULT_VALUE (VARIABLEがnullの場合)の値を戻しますが、これと同等の関数を持たないテクノロジも存在するため、次の式で置換する必要があります。

case when VARIABLE is null
then DEFAULT_VALUE
else VARIABLE
end

ユーザー関数では、NullValue(VARIABLE,DEFAULT_VALUE)という関数を宣言し、前述の構文に対応する2つの実装を定義できます。実行時に、命令が実行されるテクノロジに応じて、NullValue関数はいずれかの構文で置換されます。

次の例では、様々なテクノロジに応じたコードに変換されるユーザー関数の実装方法を示します。

日付を指定すると月の名前を戻すユーザー関数を定義する場合を考えてみます。この関数は、Oracle、TeradataまたはMicrosoft SQL Serverで実行するときにマッピングで使用できます。表12-8に、この関数をユーザー関数として実装する方法を示します。

表12-8 様々なテクノロジに応じたコードに変換されるユーザー関数(例1)

関数名

GET_MONTH_NAME

関数構文

GET_MONTH_NAME($(date_input))

説明

date_inputに指定された日付から月の名前を取得します。

Oracleでの実装

Initcap(to_char($(date_input), 'MONTH'))

Teradataでの実装

case
when extract(month from $(date_input)) = 1 then 'January'
when extract(month from $(date_input)) = 2 then 'February'
when extract(month from $(date_input)) = 3 then 'March'
when extract(month from $(date_input)) = 4 then 'April'
when extract(month from $(date_input)) = 5 then 'May'
when extract(month from $(date_input)) = 6 then 'June'
when extract(month from $(date_input)) = 7 then 'July'
when extract(month from $(date_input)) = 8 then 'August'
when extract(month from $(date_input)) = 9 then 'September'
when extract(month from $(date_input)) = 10 then 'October'
when extract(month from $(date_input)) = 11 then 'November'
when extract(month from $(date_input)) = 12 then 'December'
end

Microsoft SQLでの実装

datename(month, $(date_input))

これで、この関数をインタフェースで安全に使用し、マッピング、フィルタおよび結合を作成できます。Oracle Data Integratorでは、式の実行場所に応じて適切なコードが生成されます。

様々なテクノロジに応じてコードに変換されるユーザー関数の別の例として、次のマッピングを定義します。

substring(GET_MONTH_NAME(CUSTOMER.LAST_ORDER_DATE), 1, 3)。Oracle Data Integratorでは、実行テクノロジに応じて次のようなコードが生成されます。

表12-9 様々なテクノロジに応じたコードに変換されるユーザー関数(例2)

Oracleでの実装

substring(Initcap(to_char(CUSTOMER.LAST_ORDER_DATE 'MONTH')) , 1, 3)

Teradataでの実装

substring(case    when extract(month from CUSTOMER.LAST_ORDER_DATE) = 1 then 'January' when extract(month from CUSTOMER.LAST_ORDER_DATE) = 2 then 'February'        ...end, 1, 3)

Microsoft SQLでの実装

substring(datename(month, CUSTOMER.LAST_ORDER_DATE) , 1, 3)

関数は、グローバル関数として作成するか、またはプロジェクト内に作成できます。グローバル関数はすべてのプロジェクトに共通で、プロジェクト内の関数はそれが定義されているプロジェクトに関連付けられます。

ユーザー関数は別のユーザー関数を呼び出すことができます。

13 シナリオの処理

この章では、シナリオの処理方法について説明します。シナリオは、ソース・コンポーネント(インタフェース、パッケージ、プロシージャ、変数)を本番に移行するために設計されます。シナリオは、このコンポーネント用のコード(SQL、シェルなど)の生成結果として作成されます。

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

- 13.1項「シナリオの概要」

- 13.2項「シナリオの生成」

- 13.3項「シナリオの再生成」

- 13.4項「シナリオ・グループの生成」

- 13.5項「シナリオのエクスポート」

- 13.6項「本番へのシナリオのインポート」

- 13.7項「シナリオの暗号化および復号化」

13.1 シナリオの概要

コンポーネントが完成し、テストした後、実際の状況に対応するシナリオを生成できます。この操作は、デザイナ・ナビゲータで実行します。

シナリオのコード(生成された言語)は確定されます。確定後に、シナリオの作成の基となったコンポーネントが変更された場合でも、シナリオが変更されることはありません。

パッケージ、プロシージャ、インタフェースまたは変数のシナリオを生成できます。プロシージャ、インタフェースまたは変数用に生成されるシナリオは、プロシージャの実行、インタフェース、または変数のリフレッシュを行う単一ステップのシナリオです。

シナリオ変数は、シナリオで使用される変数であり、シナリオの開始時にその動作をパラメータ化するために設定する必要があります。

生成されたシナリオは、作業リポジトリに格納されます。格納されたシナリオは、エクスポートして別のリポジトリ(リモートまたはリモート以外)にインポートし、様々なコンテキストで使用できます。シナリオを作成できるのは開発作業リポジトリからのみですが、開発作業リポジトリと実行作業リポジトリの両方にインポートできます。

シナリオは、開発環境では、デザイナ・ナビゲータの「プロジェクト」ツリーにあるソース・コンポーネントの下に表示されます。また、開発環境および本番環境のオペレータ・ナビゲータの「シナリオ」ツリーに表示されます。

シナリオはバージョン管理することもできます。詳細は、第19章「バージョン管理の使用」を参照してください。

シナリオは、Oracle Data Integrator Studioのコマンドラインから起動でき、ランタイム・エージェントの組込みスケジューラまたは外部スケジューラを使用してスケジュールできます。シナリオの実行およびスケジュールについては、第21章「統合プロセスの実行」を参照してください。

13.2 シナリオの生成

オブジェクトに対するシナリオの生成では、本番環境でのデプロイおよび実行に使用する、このオブジェクト用のコードがコンパイルされます。

シナリオを生成するには:

1. デザイナ・ナビゲータで、プロジェクトの下にある、シナリオを生成するパッケージ、インタフェース、プロシージャまたは変数をダブルクリックします。対応するオブジェクト・エディタが表示されます。

2. 「シナリオ」タブで、「シナリオの生成」をクリックします。「新規シナリオ」ダイアログが表示されます。

3. シナリオの「名前」および「バージョン」を入力します。この名前は、オペレーティング・システム・コマンドで使用できるように、自動的に大文字に変換され、特殊文字はアンダースコアに置換されます。
シナリオの「名前」および「バージョン」フィールドは、次の値を使用して事前設定されます。

- 名前: そのコンポーネントに生成した最後のシナリオと同じ名前

- バージョン: バージョン番号は、自動的に増分されるか(最後のバージョンが整数の場合)、現在の日付が設定されます(最後のバージョンが整数でない場合)

そのコンポーネントにシナリオが作成されていない場合は、シナリオの最初のバージョンが自動的に作成されます。

新規シナリオの名前は、「シナリオ命名規則」ユーザー・パラメータに従って、コンポーネント名を基に命名されます。詳細は、付録B「ユーザー・パラメータ」を参照してください。

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

5. シナリオで変数を使用する場合は、「シナリオ変数」ダイアログで、シナリオのパラメータとして使用する変数を定義できます。

- すべての変数をパラメータとして使用する場合は、「すべてを使用」を選択します

- 選択した変数をパラメータとして使用する場合は、「選択済を使用」を選択します

- すべての変数の選択を解除する場合は、「なし」を選択します

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

シナリオは「シナリオ」タブに表示されます。また、プロジェクトの下にあるソース・オブジェクトの「シナリオ」ノードの下に表示されます。

13.3 シナリオの再生成

既存のシナリオを同じ名前とバージョン番号で再生成できます。再生成では、ソース・オブジェクトの内容から生成したシナリオで既存のシナリオを置換できます。既存のシナリオに関連付けられているスケジュールは保持されます。

シナリオを再生成するには:

1. 「プロジェクト」アコーディオンでシナリオを選択します。

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

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

注意:

シナリオの再生成は元に戻すことができません。重要なシナリオの場合は、新しいバージョン番号を使用してシナリオを生成することをお薦めします。

13.4 シナリオ・グループの生成

プロジェクトまたはフォルダにグループ化されたパッケージ、インタフェース、プロシージャおよび変数のセットが完成し、テストした後、シナリオを生成できます。この操作は、デザイナ・ナビゲータで実行します。

シナリオ・グループを生成するには:

1. オブジェクトのグループが含まれているプロジェクトまたはフォルダを選択します。

2. 右クリックして「すべてのシナリオを生成」を選択します。

3. 「シナリオ生成」ダイアログで、シナリオの「生成モード」を次の中から選択します。

- 置換: 各オブジェクトに対して、最終バージョンのシナリオを、同じID、名前およびバージョンの新しいシナリオで置換します。セッション、シナリオ・レポートおよびスケジュールは削除されます。オブジェクトに対するシナリオが存在していない場合は、バージョン番号001のシナリオが作成されます。

- 再生成: 各オブジェクトに対して、最終バージョンのシナリオを、同じID、名前およびバージョンの新しいシナリオで置換します。スケジュール、セッションおよびシナリオ・レポートは保持されます。オブジェクトに対するシナリオが存在していない場合、このモードではシナリオは作成されません。

- 作成: 各オブジェクトに対して、最終バージョンのシナリオと同じ名前で、バージョン番号が自動的に増分された新しいシナリオが作成されます。オブジェクトに対するシナリオが存在していない場合は、オブジェクト名に基づいて命名されたバージョン番号001のシナリオが作成されます。

注意:

そのコンポーネントにシナリオが作成されていない場合は、シナリオの最初のバージョンが自動的に作成されます。

新規シナリオの名前は、「シナリオ命名規則」ユーザー・パラメータに従って、コンポーネント名を基に命名されます。詳細は、付録B「ユーザー・パラメータ」を参照してください。

「作成」生成モードの選択時は、最終シナリオのバージョンが整数の場合、バージョン番号は自動的に1ずつ増加します。整数以外の場合は、現在の日付が自動的に設定されます。

4. 「生成するオブジェクト」セクションで、シナリオを生成するオブジェクトのタイプを選択します。

5. 「マーカー・フィルタ」セクションで、マーカー・グループのマーカーに従って、生成するコンポーネントをフィルタ処理できます。

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

7. シナリオで変数を使用する場合は、「シナリオ変数」ダイアログで、シナリオのパラメータとして使用する変数を定義できます。すべての変数をパラメータとして使用する場合は、「すべてを使用」を選択します。または、「選択済を使用」を選択してパラメータ変数を選択します。

13.5 シナリオのエクスポート

エクスポート(およびインポート)の手順によって、Oracle Data Integratorオブジェクトをあるリポジトリから別のリポジトリに転送できます。

単一のシナリオ、またはシナリオのグループをエクスポートできます。

1つのシナリオのエクスポートについては、20.2.4項「1つのODIオブジェクトのエクスポート」を参照してください。

シナリオ・グループをエクスポートするには:

1. シナリオのグループが含まれているプロジェクトまたはフォルダを選択します。

2. 右クリックして「すべてのシナリオのエクスポート」を選択します。「すべてのシナリオのエクスポート」ダイアログが開きます。

3. 「すべてのシナリオのエクスポート」ダイアログで、エクスポート・パラメータを次のように指定します。

パラメータ

説明

エクスポート・ディレクトリ

エクスポート・ファイルが作成されるディレクトリ。

「エクスポート・ディレクトリ」を指定しない場合、エクスポート・ファイルは「デフォルトのエクスポート・ディレクトリ」に作成されることに注意してください。

子コンポーネント・エクスポート

このオプションを選択すると、エクスポート対象のオブジェクトにリンクされたオブジェクトもエクスポートされます。これらのオブジェクトは、ツリーで、エクスポートされるオブジェクトの下に表示されるオブジェクトです。このオプションは選択されたままにしておくことをお薦めします。詳細は、子コンポーネントを伴うオブジェクトのエクスポートを参照してください。

既存のファイルを警告なしで置換します

このオプションを選択すると、既存のファイルがエクスポートのファイルで置換されます。

4. シナリオをエクスポートするオブジェクトのタイプを選択します。

5. 拡張オプションを設定します。一連のオプションを使用すると、XML出力ファイル形式をパラメータ化できます。デフォルト値のままにしておくことをお薦めします。

6. パラメータ

説明

XMLバージョン

エクスポート・ファイルに指定されるXMLバージョン。XMLファイル・ヘッダーのパラメータxmlバージョン

<?xml version="1.0" encoding="ISO-8859-1"?>

キャラクタ・セット

エクスポート・ファイルに指定するエンコーディング。XMLファイル・ヘッダーのパラメータencodingの値です。

<?xml version="1.0" encoding="ISO-8859-1"?>

Javaキャラクタ・セット

ファイル生成に使用されるJavaキャラクタ・セット。

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

XML形式のエクスポート・ファイルが指定した場所に作成されます。

13.6 本番へのシナリオのインポート

デザイナから生成したシナリオをエクスポートして、開発リポジトリまたは実行リポジトリにインポートできます。この操作は、シナリオを別のリポジトリ(異なる環境やサイト上など)にデプロイするために使用されます。

開発リポジトリへのシナリオのインポートは、デザイナ・ナビゲータまたはオペレータ・ナビゲータで実行します。実行リポジトリの場合、この目的で使用できるのはオペレータ・ナビゲータのみです。

シナリオをインポートする方法は、次の2通りあります。

- 「インポート」では、標準のオブジェクト・インポート・メソッドが使用されます。このインポート・プロセス時に、エクスポートしたシナリオに関連付けられているスケジュールをインポートするかどうかを選択できます。

- 「置換のインポート」では、既存のシナリオがエクスポート・ファイルの内容で置換されます。他のオブジェクトからこのシナリオへの参照は保持されます。元のシナリオのセッション、シナリオ・レポートおよびスケジュールは削除され、エクスポート・ファイルのスケジュールで置換されます。

シナリオは、バージョンおよびソリューションを使用して、本番にデプロイおよび転送することもできます。詳細は、第19章「バージョン管理の使用」を参照してください。

13.6.1 シナリオのインポート

1つ以上のシナリオをOracle Data Integratorにインポートするには:

1. オペレータ・ナビゲータで、「シナリオ」パネルを選択します。

2. 右クリックして「インポート」→「シナリオのインポート」の順に選択します。

3. 「インポート・タイプ」を選択します。インポート・タイプの詳細は、第20章「エクスポート/インポート」を参照してください。

4. 「ファイル・インポート・ディレクトリ」を指定します。

5. シナリオとともにエクスポートされたスケジュールもインポートする場合は、「スケジュールのインポート」オプションを選択します。

6. インポートするシナリオを「インポートするファイルを選択します」リストから1つ以上選択します。

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

シナリオは作業リポジトリにインポートされます。また、オペレータ・ナビゲータの「シナリオ」ツリーに表示されます。この作業リポジトリが開発リポジトリの場合、これらのシナリオは、そのソースのパッケージ、インタフェース、プロシージャまたは変数にも関連付けられます。

13.6.2 シナリオの置換

エクスポートしたシナリオでシナリオを置換する場合は、「置換のインポート」モードを使用します。

シナリオを置換モードでインポートするには:

1. デザイナ・ナビゲータまたはオペレータ・ナビゲータで、置換するシナリオを選択します。

2. シナリオを右クリックして、「置換のインポート」を選択します。

3. 「オブジェクトの置換」ダイアログで、シナリオのエクスポート・ファイルを指定します。

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

13.6.3 異なるリポジトリからのシナリオの使用

シナリオは、生成された作業リポジトリとは異なる作業リポジトリから操作する必要がある場合があります。

例

次に、このタイプのプロセスが発生する組織の例を2つ示します。

- 企業に、同じソフトウェア・アプリケーションを使用する代理店が多数ある場合。IT本部では、データを中央データ・センターに一元化するパッケージとシナリオを開発します。これらのシナリオは、各代理店で同様に実行されるように設計されます。

- 企業に、ソフトウェア・アプリケーションの開発、調整および運用を目的とした3つの別個のIT環境が存在している場合。この企業のプロセスでは、完全に独立した環境が要求されるため、リポジトリを共有できません。

前提条件

この組織の前提条件は、各環境(サイト、代理店または環境)に作業リポジトリをインストールしていることです。この作業リポジトリに関連付けられるマスター・リポジトリのトポロジには、論理アーキテクチャの観点から互換性がある必要があります(同じ論理スキーマ名)。物理アーキテクチャで記述される接続特性は、異なっていてもかまいません。

一部のプロシージャまたはインタフェースでコンテキスト・コードを明示的に指定する場合は、ターゲット・トポロジに同じコンテキスト・コードが含まれる必要があることに注意してください。トポロジ(つまり、物理アーキテクチャと論理アーキテクチャ)は、開発のマスター・リポジトリからエクスポートし、ターゲット・リポジトリにインポートすることもできます。この操作は、トポロジ・モジュールを使用して実行します。この場合、物理トポロジ(サーバーのアドレス)は、シナリオを操作する前にパーソナライズする必要があります。トポロジのインポートでは、ターゲット・リポジトリにすでに存在するデータ・サーバーは変更されず、単に新規データ・サーバーが参照されることにも注意してください。

異なる作業リポジトリからシナリオを操作するには:

1. 元のリポジトリからシナリオをエクスポートします(右クリックして「エクスポート」)

2. シナリオ・エクスポート・ファイルをターゲット環境に転送する

3. ターゲット環境でデザイナ・ナビゲータを開く(ターゲット・リポジトリに接続)

4. エクスポート・ファイルからシナリオをインポートする

13.7 シナリオの暗号化および復号化

シナリオを暗号化すると、重要なコードを保護できます。暗号化されたシナリオは実行できますが、復号化しないかぎり、読み取ったり変更することはできません。暗号化されたシナリオによってログに生成されるコマンドも読み取ることはできません。

Oracle Data Integratorでは、個人暗号化鍵に基づいたDES暗号化アルゴリズムが使用されます。この鍵は、ファイルに保存して、暗号化または復号化操作を実行する際に再利用できます。

警告:

暗号化されたシナリオまたはプロシージャを暗号化鍵なしで復号化する方法はありません。したがって、この鍵は安全な場所に保管しておくことをお薦めします。

シナリオを暗号化するには:

1. デザイナ・ナビゲータまたはオペレータ・ナビゲータで、暗号化するシナリオを選択します。

2. 右クリックして「暗号化」を選択します。

3. 「暗号化オプション」ダイアログで、次のいずれかの操作を実行します。

- 個人キーで暗号化します: 個人キー・ファイルの場所を指定するか、個人キーの値を入力して、すでに存在している個人キーで暗号化します。

- 新規暗号化鍵を取得します: 新しい鍵を生成します。

4. 「OK」をクリックしてシナリオを暗号化します。新しい鍵の生成を選択した場合は、ダイアログに新しい鍵も表示されます。「保存」をクリックして、鍵をファイルに保存します。

注意:

文字数が少なすぎる個人キーを入力すると、キー・サイズが無効であるというエラーが発生します。この場合は、より長い個人キーを入力してください。個人キーには、10個以上の文字数が必要です。

シナリオを復号化するには:

1. 復号化するシナリオを右クリックします。

2. 「復号化」を選択します。

3. 「シナリオ復号化」ダイアログで、次のいずれかの操作を実行します。

- 既存の暗号化鍵ファイルを選択します。

- 個人キーに対応する文字列を入力(または貼付け)します。

復号化が完了するとメッセージが表示されます。

14 ロード計画の使用

この章では、ロード計画の概要について説明します。ロード計画の作成方法について説明し、ロード計画の使用方法に関する情報を提供します。

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

- 14.1項「ロード計画の概要」

- 14.2項「ロード計画の作成」

- 14.3項「ロード計画の実行」

- 14.4項「本番でのロード計画の使用」

14.1 ロード計画の概要

Oracle Data Integratorは、大規模データ・ウェアハウスへのデータ移入に使用されることがよくあります。このようなユースケースでは、一般的に、何百ものシナリオを使用して、何千もの表にデータが移入されます。これらのシナリオの実行は、ソースからターゲットへのデータ・スループットが、バッチ・ウィンドウ内で最も効率的になるような方法で編成する必要があります。ロード計画は、このようなユースケースについて、シナリオの実行を順次ステップおよびパラレル・ステップの階層に編成するために役立ちます。

ロード計画は、Oracle Data Integratorの実行可能オブジェクトであり、並列または順次で、条件付きで実行可能なステップの階層を含めることができます。この階層のリーフはシナリオです。パッケージ、インタフェース、変数およびプロシージャは、実行用にシナリオの形式でロード計画に追加できます。詳細は、14.2項「ロード計画の作成」を参照してください。

ロード計画では複数のレベルで変数の設定と使用が可能です。詳細は、14.2.3項「ロード計画での変数の使用」を参照してください。また、ロード計画では、シナリオがエラーで終了した場合の例外処理計画もサポートされています。詳細は、14.2.4項「ロード計画の例外および再開可能の処理」を参照してください。

ロード計画は、コマンドライン、Oracle Data Integrator Studio、Oracle Data IntegratorコンソールまたはWebサービス・インタフェースから開始、停止および再開できます。また、ランタイム・エージェントの組込みスケジューラまたは外部スケジューラを使用してスケジュールできます。ロード計画を実行すると、ロード計画インスタンスが作成されます。このロード計画インスタンスを実行する各試行は、別々のロード計画実行です。詳細は、14.3項「ロード計画の実行」を参照してください。

ロード計画は本番環境で変更でき、本番のニーズに応じてステップを有効または無効にできます。ロード計画オブジェクトは、デザイナ・ナビゲータとオペレータ・ナビゲータで設計および表示できます。開発作業リポジトリに接続している場合は様々な設計操作(作成、編集、削除など)を実行できますが、実行作業リポジトリでは一部の設計操作は使用できません。詳細は、14.2.2.2項「ロード計画ステップの編集」を参照してください。

作成したロード計画は作業リポジトリに格納されます。ロード計画は、エクスポートして別のリポジトリにインポートし、異なるコンテキストで実行できます。また、バージョニングすることもできます。詳細は、14.4.3項「ロード計画のエクスポート、インポートおよびバージョニング」を参照してください。

ロード計画は、デザイナ・ナビゲータおよびオペレータ・ナビゲータの「ロード計画とシナリオ」アコーディオンに表示されます。ロード計画実行は、オペレータ・ナビゲータの「ロード計画実行」アコーディオンに表示されます。

14.1.1 ロード計画実行ライフ・サイクル

ロード計画の実行時またはスケジュール時に、このロード計画実行に使用する変数値、コンテキストおよび論理エージェントを指定します。

ロード計画を実行すると、ロード計画インスタンスと最初のロード計画実行が作成されます。このロード計画インスタンスは、元のロード計画から切り離されており、ロード計画実行はこのインスタンスの最初の実行試行に対応します。実行が再開されると、このロード計画インスタンスの下に新しいロード計画実行が作成されます。この結果、ロード計画インスタンスの各実行試行は、別々のロード計画実行としてログに保持されます。詳細は、14.3項「ロード計画の実行」を参照してください。

14.1.2 パッケージ、シナリオおよびロード計画の相違点

ロード計画は、Oracle Data Integratorの最大の実行可能オブジェクトです。そのステップではシナリオが使用されます。実行可能オブジェクトがロード計画で使用される場合、そのオブジェクトはシナリオに自動的に変換されます。たとえば、パッケージはロード計画ではシナリオの形式で使用されます。ロード計画自体はロード計画に追加できないことに注意してください。ただし、OdiStartLoadPlanツールを使用して、別のロード計画を開始するシナリオ実行ステップの形式でシナリオを追加することは可能です。

ロード計画は、パッケージまたはシナリオの代替オブジェクトではなく、パッケージおよびシナリオの実行を上位レベルで編成するために使用されます。

パッケージとは異なり、ロード計画は、並列性、再開可能および例外処理をネイティブでサポートします。ロード計画は本番にそのまま移行されるのに対して、パッケージはシナリオの形式で移行されます。また、ロード計画は本番環境で作成できます。

ロード計画インスタンスとロード計画実行はセッションに類似しています。相違点は、セッションは、再開時に新規実行が既存のセッションを上書きする点です。これに対し、新規ロード計画実行は既存のロード計画実行を上書きせず、このロード計画インスタンスに対する前のロード計画実行の後に追加されます。ロード計画インスタンスは実行時に変更できないことに注意してください。

14.1.3 ロード計画の構造

ロード計画は、一連の複数タイプのステップで構成されます。各ステップには、複数の子ステップを含めることができます。ステップ・タイプに応じて、ステップを並列または順次で、条件付きで実行できます。デフォルトで、ロード計画には空のルート・シリアル・ステップが含まれます。このルート・ステップは必須であり、ステップ・タイプは変更できません。

表14-1に、ロード計画ステップの様々なタイプと使用可能な子ステップを示します。

表14-1 ロード計画ステップ

タイプ

説明

使用可能な子ステップ

シリアル・ステップ

その子ステップのシリアル実行を定義します。子ステップには順序が設定され、子ステップは前の子ステップが終了した後でのみ実行されます。

ルート・ステップはシリアル・ステップです。

- シリアル・ステップ

- パラレル・ステップ

- シナリオ実行ステップ

- Caseステップ

パラレル・ステップ

その子ステップのパラレル実行を定義します。子ステップは、優先度順に即時に開始されます。

- シリアル・ステップ

- パラレル・ステップ

- シナリオ実行ステップ

- Caseステップ

シナリオ実行ステップ

シナリオの実行を開始します。

このタイプのステップには子ステップを設定できません。

Caseステップ

Whenステップ

Elseステップ

これらのステップの組合せによって、変数の値に基づいた条件ブランチが可能になります。

注意: Caseステップの下に複数のWhenステップがある場合は、条件を満たす最初に有効なWhenステップが実行されます。条件を満たすWhenステップがない場合、またはCaseステップにWhenステップが含まれていない場合は、Elseステップが実行されます。

Caseステップの場合

- Whenステップ

- Elseステップ

Whenステップの場合

- シリアル・ステップ

- パラレル・ステップ

- シナリオ実行ステップ

- Caseステップ

Elseステップの場合

- シリアル・ステップ

- パラレル・ステップ

- シナリオ実行ステップ

- Caseステップ

例外ステップ

ステップ階層の関連ステップで例外が発生した場合に実行されるステップのグループを定義します。同じ例外ステップをステップ階層内の複数のステップに関連付けることができます。

- シリアル・ステップ

- パラレル・ステップ

- シナリオ実行ステップ

- Caseステップ

図14-1に、Oracle Data Integratorで作成されたロード計画のサンプルを示します。このサンプルのロード計画では、データ・ウェアハウスがロードされます。

- 複数のディメンションが並列してロードされます。ロードされるのは、LOAD_TIME_DIM、LOAD_PRODUCT_DIM、LOAD_CUSTOMER_DIMの各シナリオ、地理的ディメンション、およびODI_VAR_SESS1変数の値に応じてCUST_NORTHシナリオまたはCUST_SOUTHシナリオです。

- 地理的ディメンションは一連の3つのシナリオ(LOAD_GEO_ZONE_DIM、LOAD_COUNTRIES_DIM、LOAD_CITIES_DIM)で構成されます。

- これらのディメンションがロードされた後、2つのファクト表が並列してロードされます(LOAD_SALES_FACTシナリオとLOAD_MARKETING_FACTシナリオ)。

図14-1 ロード計画のサンプル

「図14-1 ロード計画のサンプル」の説明

14.1.4 ロード計画エディタの概要

ロード計画エディタは、ロード計画を設計するための単一の環境を提供します。図14-2では、ロード計画エディタの概要を示しています。

図14-2 ロード計画エディタの「ステップ」タブ

「図14-2 ロード計画エディタの「ステップ」タブ」の説明

ロード計画ステップは、ロード計画エディタの「ステップ」タブで追加、編集および編成します。ステップ階層表では、ロード計画のステップの編成を定義します。この表の各行はステップを表し、その主なプロパティが表示されます。

パッケージ、統合インタフェース、変数、プロシージャ、シナリオなどのコンポーネントをデザイナ・ナビゲータからステップ階層表にドラッグして、これらのコンポーネントのシナリオ実行ステップを作成できます。

ステップ追加ウィザードまたはクイック・ステップ・ツールを使用して、このロード計画にシナリオ実行ステップや他のタイプのステップを追加することもできます。詳細は、14.2.2.1項「ロード計画ステップの追加」を参照してください。

ステップ階層表の上部にあるロード計画エディタのツールバーには、ロード計画のステップを作成、編成および順序付けするためのツールが用意されています。図14-2は、様々なツールバー・コンポーネントの詳細を示しています。

表14-2 「ロード計画」エディタのツールバー

アイコン

名前

説明

検索

ステップ階層表でステップを検索します。

すべて展開

ステップ階層表内のすべてのツリー・ノードを開きます。

すべて縮小

ステップ階層表内のすべてのツリー・ノードを閉じます。

ステップの追加

「ステップの追加」メニューを開きます。ステップ追加ウィザードまたはクイック・ステップ・ツールのいずれかを選択して、ステップを追加できます。詳細は、14.2.2.1項「ロード計画ステップの追加」を参照してください。

ステップの削除

選択したステップおよびそのすべての子ステップを削除します。

並べ替え矢印: 上に移動、下に移動、外に移動、内に移動

並べ替え矢印を使用して、選択したステップを必要な位置に移動します。

ステップ階層表の下にあるプロパティ・パネルには、ステップ階層表で選択したオブジェクトのプロパティが表示されます。

14.2 ロード計画の作成

この項では、ODI Studioで新規ロード計画を作成する方法について説明します。

1. 新規ロード計画を作成します。詳細は、14.2.1項「新規ロード計画の作成」を参照してください。

2. ロード計画にステップを追加し、ロード計画の順序を定義します。詳細は、14.2.2項「ロード計画ステップの順序の定義」を参照してください。

3. 例外の処理方法を定義します。詳細は、14.2.4項「ロード計画の例外および再開可能の処理」を参照してください。

14.2.1 新規ロード計画の作成

ロード計画は、デザイナ・ナビゲータまたはオペレータ・ナビゲータから作成できます。

新規ロード計画を作成するには:

1. デザイナ・ナビゲータまたはオペレータ・ナビゲータで、「ロード計画とシナリオ」アコーディオンのツールバーにある「新規ロード計画」をクリックします。ロード計画エディタが表示されます。

2. ロード計画エディタで、「名前」と「説明」にこのロード計画に対する値を入力します。

3. オプションで、次のパラメータを設定します:

- ログ・セッション: ロード計画によって開始されるセッションに対するセッション・ログの保持方法を選択します。可能な値は次のとおりです。

- 常時: 常にセッション・ログを保持します(デフォルト)。

- なし: セッション・ログを保持しません。「失敗したステップから再開」または「失敗したタスクから再開」として構成されているシナリオ実行ステップの場合、再開のためにセッション全体を保持する必要があるため、エージェントはパラメータが「エラー」に設定されている場合と同様に動作します。

- エラー: セッションがエラー状態で完了した場合のみ、セッション・ログを保持します。

- ログ・セッション・ステップ: ロード計画によって開始される各セッションのセッション・ステップに対するログの保守方法を選択します。このプロパティは、セッション・ログを保持する場合のみ適用されます。可能な値は次のとおりです。

- シナリオ設定別: シナリオ設定に応じてセッション・ステップ・ログが保持されます。パッケージから作成されたシナリオの場合、「ジャーナルへのステップのログ」という拡張ステップ・プロパティでステップを保持するかどうかを指定できます。他のシナリオでは、すべてのステップが保持されます(デフォルト)。

- なし: セッション・ステップ・ログを保持しません。「失敗したステップから再開」または「失敗したタスクから再開」として構成されているシナリオ実行ステップの場合、再開のためにセッション全体を保持する必要があるため、エージェントはパラメータが「エラー」に設定されている場合と同様に動作します。

- エラー: ステップがエラー状態の場合のみ、セッション・ステップ・ログが保持されます。

- セッション・タスクのログ・レベル: セッションのログ・レベルを選択します。この値は、単位シナリオの開始時の「ログ・レベル」の値に対応します。デフォルトは5です。シナリオ実行ステップが「失敗したステップから再開」または「失敗したタスクから再開」として構成されている場合、再開のためにセッション全体を保持する必要があるため、このパラメータは無視されます。

- キーワード: このロード計画から開始されるセッションに対して設定されるキーワードのカンマ区切りのリストを入力します。これらのキーワードによって、セッション・フォルダや自動分類によるODIログの編成が容易になります。これらのキーワードは、子ステップのレベルで上書きできることに注意してください。詳細は、22.3.3項「ログの管理」を参照してください。

4. 「ステップ」タブに移動し、14.2.2項「ロード計画ステップの順序の定義」の説明に従ってステップを追加します。

5. ロード計画に条件ブランチが必要な場合、またはシナリオで変数が使用される場合は、「変数」タブに移動し、14.2.3.1項「ロード計画の変数の宣言」の説明に従って変数を宣言します。

6. ロード計画ステップが失敗した場合に使用される例外ステップを追加するには、「例外」タブに移動し、14.2.4.1項「例外フローの定義」の説明に従って例外ステップを定義します。

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

ロード計画が「ロード計画とシナリオ」アコーディオンに表示されます。関連するロード計画とシナリオを、ロード計画とシナリオ・フォルダにグループ化して、ロード計画を編成できます。

14.2.2 ロード計画ステップの順序の定義

ロード計画は、子ステップを階層に編成したものです。この階層では、ステップの条件付き処理が並列または順次で行えます。

実行フローは2つのステージで構成できます:

- 設計時。ステップ階層の定義時に構成できます。

- ロード計画にステップを追加する際に、ステップ・タイプを選択します。ステップ・タイプによって、使用可能な子ステップとこれらの子ステップの実行方法が定義されます。実行方法には、並列、順次、変数の値に基づく条件付き(Caseステップ)があります。ステップ・タイプの詳細は、表14-1を参照してください。

- ロード計画にステップを追加する際に、ステップの挿入位置も決定します。子ステップを追加、選択したステップの後に兄弟ステップを追加、または選択したステップの前に兄弟ステップを追加できます。詳細は、14.2.2.1項「ロード計画ステップの追加」を参照してください。

- また、ステップを必要な位置にドラッグするか、またはステップ表のツールバーにある矢印を使用して、ロード計画ステップの順序を再編成することもできます。詳細は、表14-2を参照してください。

- 設計時および実行時。ステップを有効または無効にして構成できます。ステップ階層表で、ステップを有効または無効にできます。あるステップを無効にすると、そのすべての子ステップも無効になることに注意してください。無効にしたステップとそのすべての子ステップは、ロード計画の実行時に実行されません。

この項の内容は次のとおりです。

- ロード計画ステップの追加

- ロード計画ステップの編集

- ステップの削除

- ステップの複製

14.2.2.1 ロード計画ステップの追加

ロード計画ステップを追加するには、ステップ追加ウィザードを使用するか、または特定のステップ・タイプ用のクイック・ステップ・ツールを選択します。ロード計画ステップの各タイプの詳細は、表14-1を参照してください。シナリオ実行ステップを作成するには、パッケージ、統合インタフェース、変数、プロシージャまたはシナリオなどのコンポーネントを、デザイナ・ナビゲータからステップ階層表にドラッグすることもできます。Oracle Data Integratorによって、挿入したコンポーネントに対するシナリオ実行ステップが自動的に作成されます。

追加したロード計画ステップは、必要最小限の設定でステップ階層に挿入されます。ロード計画ステップの構成方法の詳細は、14.2.2.2項「ロード計画ステップの編集」を参照してください。

ステップ追加ウィザードを使用したロード計画ステップの追加

ステップ追加ウィザードを使用してロード計画ステップを挿入するには:

1. ロード計画エディタを開き、「ステップ」タブに移動します。

2. ステップ階層表のステップを選択します。

3. ロード計画エディタのツールバーで、「ステップの追加」→「ステップ追加ウィザード」の順に選択します。

4. ステップ追加ウィザードで、次の項目を選択します。

- 「ステップ・タイプ」。使用可能なステップ・タイプは、シリアル、パラレル、シナリオ実行、Case、WhenおよびElseです。各種ステップ・タイプの詳細は、表14-1を参照してください。

- 「ステップの場所」。このパラメータは、ステップが追加される場所を定義します。

- 子ステップを選択に追加: 選択したステップの下にステップが追加されます。

- 兄弟ステップを選択の後に追加: 選択したステップの後に同じレベルでステップが追加されます。

- 兄弟ステップを選択の前に追加: 選択したステップの前に同じレベルでステップが追加されます。

注意:

現在の選択に対して有効な値のみが「ステップ・タイプ」および「ステップの場所」に表示されます。

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

6. 追加しているステップ・タイプに対する表14-3の指示に従います。

表14-3 ステップの追加ウィザードのアクション

ステップのタイプ

説明と必須作業

シリアル・ステップまたはパラレル・ステップ

新しいロード計画ステップのステップ名を入力します。

シナリオ実行ステップ

1. 「ルックアップ・シナリオ」ボタンをクリックします。

2. 「ルックアップ・シナリオ」ダイアログで、ロード計画に追加するシナリオを選択し、「OK」をクリックします。
または、実行可能オブジェクトに対するシナリオを作成してこのシナリオを使用するには、「実行可能なオブジェクト・タイプ」選択ボックスで該当するオブジェクト・タイプを選択した後、このシナリオ実行ステップで実行する実行可能オブジェクトを選択し、「OK」をクリックします。新しいシナリオ名とバージョンを入力し、「OK」をクリックします。該当するオブジェクトに対する新規シナリオが作成され、このシナリオ実行ステップで使用されます。

ヒント: 設計時に、まだ存在していないシナリオを使用してシナリオ実行ステップを作成する場合があります。この場合、既存のシナリオを選択するかわりに、シナリオ名とバージョン番号を直接入力して、「終了」をクリックします。後で、シナリオ実行ステップの変更ウィザードを使用してシナリオを選択できます。詳細は、シナリオ実行ステップのシナリオの変更を参照してください。

バージョン番号-1を使用すると、シナリオの最新バージョンが使用されます。

3. 「ステップ名」にはシナリオの名前が自動的に移入され、「バージョン」フィールドにはシナリオのバージョン番号が移入されます。オプションで、ステップ名を変更します。

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

5. 「ロード計画に追加」列で、ロード計画変数に追加するシナリオ変数を選択します。シナリオで特定の変数が起動パラメータとして使用されている場合、その変数はロード計画変数に自動的に追加されます。
詳細は、14.2.3項「ロード計画での変数の使用」を参照してください。

Case

1. 条件ブランチに使用する変数を選択します。リストからいずれかのロード計画変数を選択するか、または「ルックアップ変数」をクリックして新規変数をロード計画に追加し、追加した変数をこのCaseステップに使用します。
詳細は、14.2.3項「ロード計画での変数の使用」を参照してください。

2. 「ステップ名」に変数のステップ・タイプと名前が自動的に設定されます。オプションで、ステップ名を変更します。
詳細は、14.2.2.2項「ロード計画ステップの編集」を参照してください。

When

1. WHEN句の評価で使用する演算子を選択します。可能な値は次のとおりです。

- より小さい(<)

- 以下(<=)

- 異なる(<>)

- 等しい(=)

- より大きい(>)

- 以上(>=)

- Nullでない

- NULLである

2. WHEN句の評価で使用する「値」を入力します。

3. 「ステップ名」には、使用される演算子が自動的に設定されます。オプションで、ステップ名を変更します。
詳細は、14.2.2.2項「ロード計画ステップの編集」を参照してください。

Else

「ステップ名」には、ステップ・タイプが自動的に移入されます。オプションで、ステップ名を変更します。

詳細は、14.2.2.2項「ロード計画ステップの編集」を参照してください。

7. 「終了」をクリックします。

8. ステップがステップ階層に追加されます。

注意:

ステップを必要な位置にドラッグするか、またはステップ表のツールバーにある並べ替え矢印を使用してステップ階層のステップを移動して、ロード計画ステップの順序を再編成できます。

クイック・ステップ・ツールを使用したロード計画ステップの追加

クイック・ステップ・ツールを使用してロード計画ステップを挿入するには:

1. ロード計画エディタを開き、「ステップ」タブに移動します。

2. ステップ階層で、子ステップを作成するロード計画ステップを選択します。

3. ステップのツールバーで、「ステップの追加」を選択し、追加するステップ・タイプに対応するクイック・ステップのオプションを選択します。表14-4に、クイック・ステップ・ツールのオプションを示します。

表14-4 クイック・ステップ・ツール

クイック・ステップ・ツールのオプション

説明と必須作業

選択項目の後にシリアル・ステップを追加します。デフォルト値が使用されます。これらの値は、ステップ階層表またはプロパティ・インスペクタで変更できます。詳細は、14.2.2.2項「ロード計画ステップの編集」を参照してください。

選択項目の後にパラレル・ステップを追加します。デフォルト値が使用されます。これらの値は、ステップ階層表またはプロパティ・インスペクタで変更できます。詳細は、14.2.2.2項「ロード計画ステップの編集」を参照してください。

選択項目の後にシナリオ実行ステップを追加します。表14-3のシナリオ実行ステップに関する指示に従います。

選択項目の後にCaseステップを追加します。表14-3のCaseステップに関する指示に従います。

選択項目の後にWhenステップを追加します。表14-3のWhenステップに関する指示に従います。

選択項目の後にElseステップを追加します。表14-3のElseステップに関する指示に従います。

注意:

クイック・ステップ・ツールでは、現在の選択項目に対して有効なステップ・タイプのみが有効になります。

14.2.2.2 ロード計画ステップの編集

ロード計画ステップを編集するには:

1. ロード計画エディタを開き、「ステップ」タブに移動します。

2. ステップ階層表で、変更するロード計画ステップを選択します。プロパティ・インスペクタにステップのプロパティが表示されます。

3. 必要に応じて、ロード計画ステップのプロパティを編集します。

次の操作は、ステップ編集時の一般的なタスクです:

- シナリオ実行ステップのシナリオの変更

- シナリオ実行ステップの拡張オプションの設定

- シナリオ実行ステップのリンクされたオブジェクトを開く

- Caseステップのテスト変数の変更

- 例外および再開動作の定義

- シナリオの再生成

- シナリオの最新バージョンへのリフレッシュ

シナリオ実行ステップのシナリオの変更

シナリオを変更するには:

1. 「ステップ」または「例外」タブのステップ階層表で、シナリオ実行ステップを選択します。

2. プロパティ・インスペクタの「ステップ・プロパティ」セクションで、「ルックアップ・シナリオ」をクリックします。シナリオ実行ステップの変更ウィザードが開きます。

3. シナリオ実行ステップの変更ウィザードで、「ルックアップ・シナリオ」をクリックし、表14-3のシナリオ実行ステップに対応する指示に従います。

シナリオ実行ステップの拡張オプションの設定

プロパティ・インスペクタで、シナリオ実行ステップの次のプロパティを設定できます:

- 優先度: シナリオを並列して開始する必要がある場合のこのステップの優先度。0から100 (100が最も高い優先度)の整数値です。デフォルトは0です。シナリオ実行ステップの優先度は、実行中のロード計画内のすべての実行可能シナリオの間で評価されます。優先度が最も高いシナリオ実行ステップが最初に実行されます。

- コンテキスト: ステップ実行に使用されるコンテキスト。デフォルト・コンテキストは、ロード計画の実行時に「ロード計画の開始」ダイアログで定義されるロード計画コンテキストです。コンテキストのみを指定して、論理エージェントの値を指定しない場合、ステップは、ロード計画を開始した同じ物理エージェントで開始されますが、この指定したコンテキスト内で開始されます。

- 論理エージェント: ステップ実行に使用される論理エージェント。デフォルトでは、ロード計画の実行時に「ロード計画の開始」ダイアログで定義される論理エージェントが使用されます。論理エージェントのみを設定してコンテキストを設定しない場合、ステップは、ロード計画の開始時に指定したコンテキストで解決された、指定の論理エージェントに対応する物理エージェントで開始されます。論理エージェント値を指定しない場合、ステップは、ロード計画を開始した同じ物理エージェントで開始されます(ステップにコンテキストを指定しているかどうかは関係ありません)。

シナリオ実行ステップのリンクされたオブジェクトを開く

シナリオ実行ステップは、パッケージ、統合インタフェース、変数、プロシージャまたはシナリオに対して作成できます。シナリオ実行ステップが作成されると、元のオブジェクトのオブジェクト・エディタを開いてシナリオ実行ステップを編集できます。

シナリオ実行ステップのリンクされたオブジェクトを表示および編集するには:

1. 「ステップ」または「例外」タブのステップ階層表で、シナリオ実行ステップを選択します。

2. 右クリックして「リンクされたオブジェクトを開く」を選択します。

リンクされたオブジェクトのオブジェクト・エディタが表示されます。

Caseステップのテスト変数の変更

WHEN文で定義されたテストの評価に使用する変数を変更するには:

1. 「ステップ」タブまたは「例外」タブのステップ階層表で、Caseステップを選択します。

2. プロパティ・インスペクタの「ステップ・プロパティ」セクションで、「ルックアップ変数」をクリックします。「Caseステップの変更」ダイアログが開きます。

3. 「Caseステップの変更」ダイアログで、「ルックアップ変数」をクリックし、Caseステップに対応する表14-3のCaseステップに対応する指示に従います。

例外および再開動作の定義

例外および再開の動作は、ステップ階層表のステップに設定できます。詳細は、14.2.4項「ロード計画の例外および再開可能の処理」を参照してください。

シナリオの再生成

特定のロード計画ステップのシナリオをその子ステップのシナリオも含めてすべて再生成するには:

1. 「ステップ」タブまたは「例外」タブのステップ階層表から、ロード計画ステップを選択します。

2. 右クリックして「再生成」を選択します。このオプションは、バージョン番号が-1のシナリオには使用できないことに注意してください。

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

注意:

シナリオの再生成は元に戻すことができません。重要なシナリオの場合は、新しいバージョン番号を使用してシナリオを生成することをお薦めします。

シナリオの最新バージョンへのリフレッシュ

特定のロード計画ステップのシナリオ・ステップをその子ステップのシナリオも含めてすべて変更し、シナリオのバージョンを各シナリオに使用可能な最新バージョンに設定するには:

1. 「ステップ」タブまたは「例外」タブのステップ階層表から、ロード計画ステップを選択します。

2. 右クリックして「シナリオを最新バージョンにリフレッシュ」を選択します。最新のシナリオ・バージョンは、シナリオ作成タイムスタンプによって決定されることに注意してください。ODIエージェントの実行中の最新のシナリオの決定では、シナリオ・バージョン文字列の値がアルファベットの昇順でソートされ、そのリストの最後のシナリオが選択されます。

注意:

このオプションは、バージョン番号が-1のシナリオには使用できません。

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

14.2.2.3 ステップの削除

ステップを削除するには:

1. ロード計画エディタを開き、「ステップ」タブに移動します。

2. ステップ階層表で、削除するステップを選択します。

3. ロード計画エディタのツールバーで、「ステップの削除」選択します。

ステップとその子ステップがステップ階層表から削除されます。

注意:

ステップ階層表での削除操作は元に戻すことができません。

14.2.2.4 ステップの複製

ステップを複製するには:

1. ロード計画エディタを開き、「ステップ」タブに移動します。

2. ステップ階層表で、複製するステップを右クリックして「選択の複製」を選択します。

3. 子ステップも含めたこのステップのコピーが作成され、元のステップの後の兄弟ステップとしてステップ階層表に追加されます。

これで、このステップを移動および編集できます。

14.2.3 ロード計画での変数の使用

ロード計画で使用するプロジェクト変数とグローバル変数は、ロード計画エディタでロード計画変数として宣言されます。これらの変数はすべてのステップで自動的に使用可能になり、その値がロード計画ステップに渡されます。

変数の値は、ロード計画の開始時に起動パラメータとしてロード計画に渡されます。ステップ・レベルでは、変数値を設定するか、またはリフレッシュを強制的に実行して、ステップとその子ステップの変数値を上書きできます。

注意:

開始時に、ロード計画では変数のデフォルト値、または実行コンテキスト内の変数の履歴化された値/最新値は考慮されません。変数の値は、ロード計画の開始時に指定した値、またはロード計画内で設定/リフレッシュした値です。

変数は、シナリオ実行ステップ(変数の値は起動パラメータとしてシナリオに渡されます)、または条件付きブランチのCase/When/Elseステップで使用できます。

この項の内容は次のとおりです。

- ロード計画の変数の宣言

- ステップの変数値の設定

14.2.3.1 ロード計画の変数の宣言

ロード計画変数を宣言するには:

1. ロード計画エディタを開き、「変数」タブに移動します。

2. ロード計画エディタのツールバーから、「変数の追加」を選択します。「ルックアップ変数」ダイアログが表示されます。

3. 「ルックアップ変数」ダイアログで、ロード計画に追加する変数を選択します。

4. 変数は、ロード計画エディタの「変数」タブと各ステップのプロパティ・インスペクタに表示されます。

14.2.3.2 ステップの変数値の設定

ステップ内の変数の値は、親ステップの値から継承されます。つまり、最終的にはロード計画の開始時に変数に指定した値から継承されます。

ElseステップとWhenステップを除く各ステップの場合、変数値を上書きすることもでき、このステップとその子ステップに使用される値を変更することもできます。

ステップ・レベルで変数値をオーバーライドするには:

1. ロード計画エディタを開き、「ステップ」タブに移動します。

2. ステップ階層表で、変数値を上書きするステップを選択します。

3. プロパティ・インスペクタで、「変数」セクションに移動します。このロード計画に対して定義されている変数がこの変数表にリストされます。次の変数パラメータを変更できます。
このステップとすべての子ステップの変数値を指定する場合は、「上書き」を選択します。変数値の上書きを選択すると、次のいずれかを実行できます。

- 「値」フィールドに新しい変数値を設定できます。

- 「リフレッシュ」を選択して、ステップの実行前にこの変数をリフレッシュできます。「リフレッシュ」オプションを選択できるのは、変数値をリフレッシュするために「問合せの選択」が定義されている変数のみです。

14.2.4 ロード計画の例外および再開可能の処理

ロード計画には、実行フローでエラーを処理するために、例外と再開可能の2つの機能が用意されています。

例外

例外ステップには、ロード計画エディタの「例外」タブで定義されたステップの階層が含まれます。

特定の例外ステップをロード計画の1つ以上のステップに関連付けることができます。ロード計画のステップでエラーが発生した場合は、関連付けられている例外ステップが自動的に実行されます。

必要に応じて、失敗したステップの親ステップに対して例外を生成するように設定できます。例外を生成すると、親ステップが失敗するため、親ステップの例外ステップを実行できます。

再開可能

ロード計画実行が失敗後に再開されるとき、失敗したロード計画ステップは、「再開タイプ」パラメータに応じて再開されます。たとえば、パラレル・ステップでそのすべての子ステップを再開するか、または失敗した子ステップのみを再開するかを定義できます。

この項の内容は次のとおりです。

- 例外フローの定義

- 例外処理の使用

- 再開動作の定義

14.2.4.1 例外フローの定義

例外ステップは、ロード計画エディタの「例外」タブで作成および定義します。

このタブには、例外ステップのリストが含まれます。各例外ステップは、ロード計画ステップの階層に存在します。「例外」タブは、ロード計画エディタの「ステップ」タブに類似しています。主な相違点は次のとおりです。

- 例外ステップ階層にルート・ステップはありません。各例外ステップは、個別のルート・ステップになります。

- シリアル、パラレル、シナリオ実行およびCaseの各ステップには、「ステップ」タブで同じプロパティを設定できますが、例外処理のプロパティ・グループは設定されません。エラーが発生した例外ステップによって他の例外ステップを生成することはできません。

例外ステップは、ステップ追加ウィザードを使用するか、またはロード計画エディタのツールバーで「ステップの追加」→「例外ステップ」を選択することによって、クイック・ステップ・ツールで作成できます。デフォルトで、例外ステップは、「例外」というステップ名で作成されます。この名前は、ステップ階層表またはプロパティ・インスペクタで変更できます。

ステップ追加ウィザードを使用して例外ステップを作成するには:

1. ロード計画エディタを開き、「例外」タブに移動します。

2. ロード計画エディタのツールバーで、「ステップの追加」→「ステップ追加ウィザード」の順に選択します。

3. ステップ追加ウィザードで、「ステップ・タイプ」リストから「例外」を選択します。

注意:

「ステップ・タイプ」には、現在の選択項目に対して有効な値のみが表示されます。

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

5. 「ステップ名」フィールドに、例外ステップの名前を入力します。

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

7. 例外ステップがステップ階層に追加されます。

これで、この例外ステップの下に新しいステップを追加して階層を編成することによって、例外フローを定義できます。

14.2.4.2 例外処理の使用

ロード計画ステップの例外処理の定義では、このロード計画ステップに例外ステップを関連付け、例外動作を定義します。例外ステップは、WhenステップとElseステップを除く各ステップに対して設定できます。

ロード計画ステップの例外処理を定義するには:

1. ロード計画エディタを開き、「ステップ」タブに移動します。

2. ステップ階層表で、例外動作を定義するステップを選択します。プロパティ・インスペクタにステップのプロパティが表示されます。

3. プロパティ・インスペクタの「例外ハンドリング」セクションで、パラメータを次のように設定します。

- タイムアウト: このステップの最大実行時間(秒)を入力します。この時間を超えると、ステップはロード計画によって中断されます。タイムアウトに到達すると、ステップにエラーのマークが付けられ、例外ステップ(定義されている場合)が実行されます。この場合、例外ステップはタイムアウトになりません。必要に応じて、長時間実行状態になる可能性に備えて、親ステップにタイムアウトを設定できます。
ステップがタイムアウト前に失敗して例外ステップが実行された場合、そのステップと例外ステップの実行時間の合計はタイムアウトを超えることができません。タイムアウトを超える場合は、タイムアウトに到達した時点で例外ステップが失敗します。

デフォルト値のゼロ(0)は、タイムアウトが無限であることを示します。

- 例外ステップ: リストから、このステップが失敗した場合に実行する例外ステップを選択します。このリストに表示されるのは、ロード計画エディタの「例外」タブで作成および定義された例外ステップのみであることに注意してください。例外ステップの作成方法の詳細は、14.2.4.1項「例外フローの定義」を参照してください。

- 例外動作: 例外が発生した場合のこのステップの動作を定義します。次の中から選択します。

- 例外を実行して生成: 例外ステップ(ある場合)を実行し、親ステップに対する例外を生成します。

- 例外を実行して無視: 例外ステップ(ある場合)を実行し、例外を無視します。親ステップには実行が成功したことが通知されます。ただし、例外ステップ自体で例外が発生した場合は、親ステップに失敗が通知されます。

パラレル・ステップのみの場合は、次のパラメータを設定できます。

エラーがある子の最大数: このステップがエラー状態と認識されるまでに許容される、エラー状態の子ステップの最大数が表示されます。失敗した子ステップの数がこの値を超えると、パラレル・ステップは失敗と認識されます。現在実行中の子ステップは、このパラレル・ステップの「再開タイプ」パラメータに応じて、続行または停止されます。

- 再開タイプが「失敗した子から再開」の場合、ロード計画はすべての子セッション(現在実行中のセッションと実行待機中のセッション)の実行と完了を待機した後で、親ステップに対するエラーを生成します。

- 再開タイプが「すべての子の再開」の場合、ロード計画は実行中のすべての子セッションを停止し、新しい子セッションを開始せずに親ステップに対するエラーを生成します。

14.2.4.3 再開動作の定義

「再開タイプ」オプションでは、ロード計画再開時のエラー・ステップの再開方法を定義します。「再開タイプ」パラメータは、プロパティ・インスペクタの「例外ハンドリング」セクションで定義できます。

ステップ・タイプに応じて、「再開タイプ」パラメータには、表14-5にリストした値を設定できます。

表14-5 再開タイプの値

ステップのタイプ

値と説明

シリアル

- すべての子の再開: ロード計画の再開時にこのステップがエラーの場合、一連のステップは最初のステップから再開されます。

- 失敗から再開: ロード計画の再開時にこのステップがエラーの場合、一連の子ステップは失敗したステップから開始されます。

パラレル

- すべての子の再開: ロード計画の再開時にこのステップがエラーの場合は、すべての子ステップがステータスに関係なく再開されます。これがデフォルト値になります。

- 失敗した子から再開: ロード計画の再開時にこのステップがエラーの場合は、失敗した子ステップのみが並列して再開されます。

シナリオ実行

- 新規セッションから再開: ロード計画の再開時にこのシナリオ実行ステップがエラーの場合は、シナリオが開始され、新規セッションが作成されます。これがデフォルト値になります。

- 失敗したステップから再開: ロード計画の再開時にこのシナリオ実行ステップがエラーの場合は、エラーのステップからセッションが再開されます。このステップ内のすべてのタスクが再開されます。

- 失敗したタスクから再開: ロード計画の再開時にこのシナリオ実行ステップがエラーの場合は、エラーのタスクからセッションが再開されます。

失敗したステップまたはタスクから再開されるセッションには、21.4項「セッションの再開」で説明する制限が適用されます。

14.3 ロード計画の実行

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

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

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

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

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

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

- ロード計画を実行する「論理エージェント」を選択します。

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

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

5. 「ロード計画が開始しました」ダイアログが表示されます。

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

ロード計画実行が開始します。ロード計画インスタンスが最初のロード計画実行とともに作成されます。ロード計画実行はオペレータ・ナビゲータで確認できます。詳細は、第22章「統合プロセスの監視」を参照してください。また、ロード計画に対する他のランタイム操作の詳細は、第21章「統合プロセスの実行」を参照してください。

14.4 本番でのロード計画の使用

本番でのロード計画の使用には、次のタスクが含まれます:

- ロード計画の開始、監視、停止および再開。詳細は、14.4.1項「本番でのロード計画の実行」を参照してください。

- ロード計画のスケジューリング。詳細は、14.4.2項「ロード計画のスケジューリング」を参照してください。

- 環境間のロード計画の移動。14.4.3項「ロード計画のエクスポート、インポートおよびバージョニング」を参照してください。

14.4.1 本番でのロード計画の実行

本番では、次のタスクを実行して、ロード計画を対話形式で実行できます:

- ロード計画の実行

- ロード計画実行の再開

- ロード計画実行の停止

14.4.2 ロード計画のスケジューリング

シナリオおよびロード計画の実行は、Oracle Data Integrator組込みスケジューラまたは外部スケジューラを使用してスケジュールできます。詳細は、21.9項「シナリオとロード計画のスケジューリング」を参照してください。

14.4.3 ロード計画のエクスポート、インポートおよびバージョニング

ロード計画をエクスポートして、開発リポジトリまたは実行リポジトリにインポートできます。この操作は、ロード計画を別のリポジトリ(異なる環境やサイト上など)にデプロイするために使用されます。

エクスポート(およびインポート)の手順によって、Oracle Data Integratorオブジェクトをあるリポジトリから別のリポジトリに転送できます。

14.4.3.1 ロード計画のエクスポート

1つのロード計画をエクスポートするか、または複数のロード計画を一度にエクスポートすることが可能です。

1つのロード計画のエクスポートについては、20.2.4項「1つのODIオブジェクトのエクスポート」で説明している標準の手順に従います。

複数のロード計画を一度にエクスポートする方法の詳細は、20.2.5項「複数のODIオブジェクトのエクスポート」を参照してください。

ロード計画をエクスポートするときに「子オブジェクトをエクスポート」を選択した場合は、そのすべての子ステップ、スケジュールおよび変数もエクスポートされることに注意してください。

注意:

ロード計画のエクスポートには、ロード計画が参照するシナリオは含まれません。ロード計画で使用されるシナリオは、個別にエクスポートする必要があります。シナリオのエクスポート方法については、13.5項「シナリオのエクスポート」を参照してください。

14.4.3.2 ロード計画のインポート

開発リポジトリへのロード計画のインポートは、デザイナ・ナビゲータまたはオペレータ・ナビゲータで実行します。実行リポジトリの場合、この目的で使用できるのはオペレータ・ナビゲータのみです。

ロード計画のインポートでは、標準のオブジェクト・インポート・メソッドが使用されます。詳細は、20.2.6項「オブジェクトのインポート」を参照してください。

注意:

ロード計画のエクスポートには、ロード計画が参照するシナリオは含まれません。ロード計画で使用されるシナリオは、個別にインポートする必要があります。

14.4.3.3 ロード計画のバージョン管理

ロード計画は、バージョンおよびソリューションを使用して、本番にデプロイおよび転送することもできます。詳細は、第19章「バージョン管理の使用」を参照してください。

15 Oracle Data IntegratorでのWebサービスの使用

この章では、Oracle Data IntegratorのWebサービスでの使用方法について説明します。

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

- 15.1項「Oracle Data IntegratorのWebサービスの概要」

- 15.2項「データ・サービス」

- 15.3項「Oracle Data Integratorランタイム・サービス」

- 15.4項「サードパーティWebサービスの呼出し」

15.1 Oracle Data IntegratorのWebサービスの概要

Oracle Data Integratorは、サービス指向アーキテクチャ(SOA)への次のエントリ・ポイントを提供します。

- データ・サービス

- Oracle Data Integratorランタイム・サービス

- サードパーティWebサービスの呼出し

図15-1は、異なるタイプのWebサービスが相互作用する方法を示しています。

図15-1 Webサービスの作用

「図15-1 Webサービスの作用」の説明

この図は、データ・サービス、ランタイムWebサービス(パブリックWebサービスおよびエージェントWebサービス)およびOdiInvokeWebServiceツールを含む単純な例を示しています。

データ・サービスおよびランタイムWebサービスのコンポーネントはサードパーティ・アプリケーションによって呼び出されるのに対し、OdiInvokeWebServiceツールはサードパーティWebサービスを呼び出します。

- データ・サービスは、データストア(ソースおよびターゲットの両方のデータストア)に含まれるデータ、ならびにチェンジ・データ・キャプチャ・フレームワークによりトラップされた変更内容へのアクセスを可能にします。このWebサービスはOracle Data Integratorによって生成され、Java EEアプリケーション・サーバーにデプロイされます。

- パブリックWebサービスは、リポジトリに接続してコンテキストおよびシナリオのリストを取得します。このWebサービスはJava EEアプリケーション・サーバーにデプロイされます。

- エージェントWebサービスは、Oracle Data Integratorエージェントに対してシナリオの開始と監視およびセッションの再開を命令します。このWebサービスはJava EEエージェントまたはスタンドアロン・エージェントに組み込まれている点に注意してください。

- OdiInvokeWebServiceツールはパッケージで使用され、サードパーティWebサービスのポート上で、特定の操作(BPELプロセスのトリガーなど)を呼び出します。

Oracle Data IntegratorのランタイムWebサービスとデータ・サービスは、2つの異なるタイプのWebサービスです。Oracle Data IntegratorのランタイムWebサービスでは、WebサービスによってOracle Data Integratorの機能にアクセスできますが、データ・サービスはOracle Data Integratorによって生成され、Webサービスを使用してデータにアクセスできます。

15.2 データ・サービス

データ・サービスは、データストアに含まれるデータ、ならびにチェンジ・データ・キャプチャを使用してこれらのデータストア用に取得された変更内容へのアクセスを可能にする、特殊なWebサービスです。これらのWebサービスはOracle Data Integratorによって自動生成され、アプリケーション・サーバーのWebサービス・コンテナにデプロイされます。

データ・サービスの設定、生成およびデプロイ方法の詳細は、第8章「データ・サービスの使用」を参照してください。

15.3 Oracle Data Integratorランタイム・サービス

Oracle Data Integratorランタイム・サービスは、サービス指向アーキテクチャ(SOA)でユーザーがOracle Data Integratorの機能を活用できるようにするWebサービスです。これらのWebサービスはサードパーティ・アプリケーションによって開始され、Oracle Data Integratorで開発されたシナリオの開始を管理します。

ODIランタイム・サービスにより各種ODI実行タスク(シナリオの実行、セッションの再開、実行コンテキストおよびシナリオのリストなど)を実行する方法については、21.11項「Webサービスを使用した実行の管理」を参照してください。21.11項では、SOAPリクエストおよびレスポンスの例も示しています。

15.4 サードパーティWebサービスの呼出し

この項では、Oracle Data IntegratorにおけるサードパーティWebサービスの呼出し方法について説明します。

この項の内容は次のとおりです。

- 15.4.1項「Webサービスの呼出しの概要」

- 15.4.2項「OdiInvokeWebServiceツールの使用」

- 15.4.3項「統合フローにおけるWebサービスの呼出し」

15.4.1 Webサービスの呼出しの概要

Webサービスは次のように呼び出せます:

- Oracle Data IntegratorパッケージまたはプロシージャでOdiInvokeWebServiceツールを使用: このツールでは、サードパーティWebサービスを呼び出し、Oracle Data Integratorで処理可能なXMLファイルにレスポンスを保存できます。

- データ・サービスのテスト目的: 生成したデータ・サービスが正しく動作しているかどうかをテストする最も簡単な方法は、OdiInvokeWebServiceツールのグラフィカル・インタフェースを使用する方法です。詳細は、15.4.2項「OdiInvokeWebServiceツールの使用」を参照してください。

15.4.2 OdiInvokeWebServiceツールの使用

OdiInvokeWebServiceツールでは、HTTPまたはHTTPSプロトコルを使用してWebサービスを呼び出し、返されたレスポンスをXMLファイルに書き込むことができます。レスポンスは、XMLペイロード、またはSOAPのヘッダーと本文が含まれている完全なSOAPメッセージで書き込まれます。OdiInvokeWebServiceツールでは、記述ファイル(WSDL)のURLが提供されるWebサービスのポート上で特定の操作を呼び出します。この操作にSOAPリクエストが必要な場合は、リクエスト・ファイルまたはツール・コマンドで提供されます。Webサービス・リクエストのレスポンスは、Oracle Data Integratorで使用可能なXMLファイルに書き込まれます。

注意:

Webサービス操作が一方向でレスポンスを返さない場合、レスポンス・ファイルは生成されません。

Webサービス・リクエストの作成方法の詳細は、15.4.3項「統合フローにおけるWebサービスの呼出し」を参照してください。

注意:

XMLペイロードの形式を使用すると、OdiInvokeWebServiceツールでは、リクエストのSOAPヘッダーがサポートされません。たとえば、保護されたWebサービスの呼出しなど、SOAPヘッダーを処理するためには、完全なSOAPメッセージを使用して、SOAPヘッダーを手動で変更します。

このツールは、パッケージのツール・ステップで、およびプロシージャやナレッジ・モジュールで、標準のOracle Data Integratorツールとして使用されます。パッケージにおけるツール・ステップの作成方法は10.3.1.4項「Oracle Data Integratorツール・ステップの追加」を、またOdiInvokeWebServiceツール・パラメータの詳細は付録A「OdiInvokeWebService」を参照してください。

OdiInvokeWebServiceツールには、コードを生成するための拡張エディタが用意されています。この拡張エディタは、パッケージ内でOdiInvokeWebServiceツールを使用する場合またはデータ・サービス・テストを実行する場合に使用できます。この拡張エディタでは、次の操作が可能です。

- WSDLへの接続

- 「プロパティ」ペインで指定されたパラメータに加えて、ツールのパラメータを指定する

- 自動選択されたポートにおける特定の操作を選択し、SOAPエディタでリクエスト・パラメータを指定する

- Webサービスの呼出し

- SOAPエディタでのWebサービス・レスポンスの閲覧

図15-2では、拡張エディタの概要を示しています。

図15-2 OdiInvokeWebService拡張エディタ

「図15-2 OdiInvokeWebService拡張エディタ」の説明

拡張エディタは、表15-1に説明するセクションで構成されています。

表15-1 拡張エディタの各セクション

セクション

アイコン名

図の中の位置

説明

Webサービス記述

ファイル(WSDL)のURL

上

ここには、WSDLの場所を入力します。

ポート

左

Webサービスのポートがデフォルトで設定されます。Webサービスで複数のポートを使用できる場合は、適切なポートを選択します。

Webサービスの呼出し

ツールバー・アイコン

現在のWebサービスをすぐに呼び出し、SOAPエディタにレスポンスを表示します。

パネル位置の切替え

ツールバー・アイコン

SOAPエディタを垂直または水平に並べて表示します。

レスポンスXSDのエクスポート

ツールバー・アイコン

現在のレスポンスXMLスキーマ記述をファイルに保存します。

デフォルトのリクエストに戻す

ツールバー・アイコン

現在のリクエストを破棄して、デフォルトの空白のリクエスト構造に戻します。

空のオプション・コンポーネントの削除

ツールバー・アイコン

すべての空のオプション・コンポーネントを問合せから削除します。有効な問合せを作成するために、この操作が必要になる場合があります。

実行前のクリーンアップ

ツールバー・アイコン

「Webサービスの呼出し」をクリックすると、SOAPリクエストにある空のオプション要素が自動的に削除されます。実行時のパッケージ・ステップでは、このチェックボックスは機能しません。

リクエスト・ファイルの使用

ツールバー・アイコン

SOAPエディタで指定されたパラメータのかわりに、ファイルに格納されたSOAPリクエストを使用します。

タイムアウト(ミリ秒)

ツールバー・アイコン

リクエストの完了を待つ最長期間を指定します。

操作

選択したポートの操作リスト。

オプション

HTTPリクエストのオプション:

- タイムアウト: この期間Webサービス・リクエストが待っても応答がない場合は、サーバーからレスポンスがないとみなされてエラーが発生します。デフォルトのタイムアウトは15秒です。

- HTTP認証: このチェックボックスを選択する場合は、HTTPサーバーで認証されるユーザー名とパスワードを指定してください。

SOAPエディタ

中央と右

SOAPエディタの左パネルまたは「ソース」タブにWebサービス・リクエストが表示され、右パネルにSOAPレスポンスが表示されます。

SOAPエディタ

SOAPエディタでは、WebサービスのXMLリクエストを図を使用して作成し、レスポンスを表示できます。

OdiInvokeWebServiceステップを作成している場合、SOAPエディタに入力されたこのSOAPリクエストはそのステップにより保存されます。

エディタの左側にはリクエストの構造が表示され、右側にはレスポンスの構造が表示されます。この配置を変更するには、「パネル位置の切替え」をクリックします。リクエストは、階層形式のエディタ表示(「SOAPエディタ」タブ)またはXML形式(「ソース」タブ)のいずれかで表示されます。「SOAPエディタ」タブを使用している場合は、SOAPエンベロープの本文のみを編集できます。SOAPヘッダーを含めたエンベロープ全体を編集または表示するには、「ソース」タブを使用する必要があります。

エディタでは、リクエストの各要素の値(およびオプションで属性)を入力できます。

警告:

空の要素は、Webサービスにそのまま渡されます。文字列の場合、これは空の文字列に相当します。数値タイプまたは日付タイプの場合、これはエラーの原因となる可能性があります。nullの文字列、数値または日付を送信する場合、nil="true"属性を使用することをお薦めします。空の要素を削除するには、拡張エディタ・ツールバーの「空白のオプション要素の削除」をクリックします。

オプションの要素はイタリックで表示されます。繰返し可能な要素は、名前の後に...(n*)が付けられます。

任意の要素を右クリックして、次のいずれかの操作を実行できます(可能な場合)。

- コンテンツの複製 - 要素の構造およびコンテンツをコピーします。

- 構造の複製 - 構造をコピーしますが、すべてのフィールドが空のままとなります。

- 削除 - 要素を削除します。

- エクスポート・リクエスト - SOAPリクエスト全体をXMLファイルにエクスポートします。

結果

インタフェースのこの部分は、OdiInvokeWebServiceツール・ステップをパッケージで使用している場合にかぎり、レスポンスをXMLファイルに書き込む方法を制御するために表示されます。

図15-3 OdiInvokeWebServiceツールの「結果」セクション

「図15-3 OdiInvokeWebServiceツールの「結果」セクション」の説明

- ファイル・モード(-RESPONSE_MODE): NEW_FILE、FILE_APPEND、NO_FILEのいずれか

- 結果ファイル(-RESPONSE_FILE): 書き込む結果ファイルの名前

- 結果ファイルの形式(-RESPONSE_FILE_FORMAT): Webサービス・レスポンス・ファイルの形式(使用可能な値はXML (デフォルト)とSOAP)

- XMLキャラクタ・セット(-RESPONSE_XML_ENCODING): XMLファイルに書き込む文字エンコーディングの名前

- Javaキャラクタ・セット(-RESPONSE_FILE_CHARSET): ファイルの書込み時に使用される文字エンコーディングの名前

これらのパラメータの詳細は、A.5.23項「OdiInvokeWebService」を参照してください。

注意:

結果ファイル・パラメータは、実行時にのみ考慮されます。「Webサービスの呼出し」をクリックした際に、結果ファイルは生成されません。

15.4.3 統合フローにおけるWebサービスの呼出し

OdiInvokeWebServiceツールを使用したWebサービスのコール

Webサービスをコールするには:

1. パッケージでOdiInvokeWebServiceツール・ステップを作成するか、データストアを右クリックしてコンテキスト・メニューの「Webサービスのテスト」を選択します。

2. WSDLの場所を入力します。次のいずれかを使用できます。

- サーバーにデプロイされたWSDLのURL (例: http://host:8080/services/WSCustomer?wsdl)

- ローカル・ファイルの位置(例: c:/DataServices/WSCustomer.wsdl)

3. ポートを選択します(複数のポートが使用可能な場合)。

4. 左側のリストから操作を選択します。

5. SOAPエディタで、Webサービス・ペイロードを入力します。OdiInvokeWebServiceツールでは、SOAPリクエストのXML本文のみ、またはSOAPのヘッダーと本文で構成される完全なSOAPエンベロープの2つのWebサービス・リクエスト形式をサポートしています。

注意:

入力形式(リクエスト)と出力形式(レスポンス)は独立しています。Oracle Data Integratorでは、入力メッセージ形式が自動的に認識され、RESPONSE_FILE_FORMAT (デフォルトはXML)に従ってレスポンスが書き込まれます。ただし、拡張エディタでは、リクエスト・ファイル形式によって、レスポンス・ファイル形式が決まります。XMLペイロード・メッセージを使用して呼出しをテストすると、レスポンスはXMLペイロードになります。完全なSOAPメッセージを使用してテストすると、レスポンスは完全なSOAPメッセージになります。Oracle Data IntegratorでWebサービス・リクエスト・ファイルを生成する方法は、リクエスト・ファイルの生成を参照してください。

6. (オプション)「空白のオプション要素の削除」をクリックして、指定されていないオプション・リクエスト・パラメータを削除します。一部のWebサービスでは、空の要素は無効として処理されます。

7. 「Webサービスの呼出し」をクリックして、Webサービスをすぐに呼び出します。レスポンスはSOAPエディタの右側ペインに表示されます。

8. OdiInvokeWebServiceツール・ステップを作成している場合、レスポンス・ファイル・パラメータを定義します。

9. 「ファイル」メニューから、「保存」を選択します。

レスポンス・ファイルの処理

OdiInvokeWebServiceツールを使用してWebサービスをコールする場合、レスポンスはXMLファイルに書き込まれます。

このXMLファイルの処理は、次のガイドラインを使用してOracle Data Integratorで実行できます。

1. Webサービスを一度呼び出し、「レスポンスXSDのエクスポート」オプションを使用してXMLスキーマをエクスポートします。

2. このXMLスキーマ・ファイルに基づいてレスポンス・ファイルのXMLモデルを作成し、XSDをリバースエンジニアリングしてモデル構造を取得します。

3. XMLテクノロジの標準Oracle Data Integratorインタフェース・ソースを使用して、レスポンスの情報を処理できます。

XMLファイル処理の詳細は、Oracle Data Integrator接続性およびモジュール・ガイドを参照してください。

注意:

Oracle Data Integratorにおいて各XMLファイルはモデルとして定義されます。リクエストまたはレスポンス・ファイルにXMLファイル処理を使用する際に、リクエストまたはレスポンス・ファイルごとにモデルが作成されます。モデルを配置するにはモデル・フォルダを使用することをお薦めします。詳細は、18.2項「フォルダによるモデルの編成」を参照してください。

Oracle Data Integratorでは、Webサービス・レスポンスを処理するためのOdiXMLConcatおよびOdiXMLSplitツールが用意されています。これらのツールの使用方法は、付録A「カテゴリごとのODIツール」のXMLの項を参照してください。

リクエスト・ファイルの生成

リクエスト・ファイルを作成するには、複数の方法があります。

- OdiInvokeWebServiceツールの「拡張」タブにあるSOAPエディタで、リクエストを直接作成します。使用可能な形式はXMLです。

- レスポンス・ファイルの処理を実行する場合と同様に、XMLドライバを使用します。XMLドライバを使用してリクエスト・ファイルを生成する場合、リクエストは完全なSOAPではなく、簡略化されたXML形式になります。テンプレート・リクエストの生成にはSOAPエディタを使用してください。

- ODIを使用して以前に生成した外部リクエスト・ファイルを使用します。使用可能な形式はXMLおよびSOAPです。

- SOAPリクエストを作成します。SOAPリクエストを生成するには、たとえば、JDeveloperによって提供されるHTTPアナライザなど、サードパーティ・ツールを使用する必要があります。詳細は、Oracle SOA Suite開発者ガイドのHTTPアナライザの使用に関する説明を参照してください。
SOAPリクエストを使用してWebサービスをコールするには、OdiInvokeWebServiceツールを使用したWebサービスのコールで説明している標準の手順を実行し、次の手順を実行してWebサービス・リクエストをSOAP形式で作成します。

1. サードパーティ・ツールでSOAPリクエストを作成します。

2. SOAPリクエストをコピーし、ODI StudioのSOAPエディタの「ソース」タブに、SOAPメッセージ全体を貼り付けます。

3. オプションで、リクエストを編集します。

Webサービス・レスポンスはSOAP形式になります。

リクエストに対するバインディング・メカニズムの使用

プロシージャでWebサービス・コールを使用する場合、バインディング・メカニズムを使用できます。この方法では、問合せによって返された行ごとにWebサービスをコールし、行の値に基づいてリクエストをパラメータ化できます。詳細は、バインディングのソースおよびターゲット・データを参照してください。

16 Oracle Data Quality製品の使用

この章では、Oracle Data Integratorでデータ品質製品を使用する方法について説明します。

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

- 16.1項「Oracle Data Quality製品の概要」

- 16.2項「データ品質プロセス」

16.1 Oracle Data Quality製品の概要

Oracle Data ProfilingおよびOracle Data Quality for Data Integrator (あわせてOracle Data Quality製品とも呼ばれます)は、Oracle Data Integratorのインライン・データ品質機能を拡張して、より高度なデータ・ガバナンス機能を提供します。

完全なデータ品質システムには、データのプロファイリング、整合性および品質が含まれます。

- プロファイリングによって、データの調査および品質評価が可能になります。ビジネス・ユーザーは、データ品質の課題を明確に把握し、データの品質を一定期間監視および追跡できます。プロファイリングは、Oracle Data Profilingによって処理されます。プロファイリングを使用すると、ビジネス・ユーザーは、メトリックを介してデータの品質を評価し、このデータに基づいてルールを検出または推測し、データ品質の変化を一定期間監視できます。

- 整合性の制御は、情報システムのアプリケーションに含まれるデータ全体の一貫性を確保するために必要です。アプリケーション・データは、情報システムによって課せられる制約および宣言的ルールに対して有効でない場合があります。たとえば、顧客が指定されていない注文や製品が指定されていない注文明細などが検出される可能性があります。Oracle Data Integratorには、これらの制約違反を検出し、リサイクルまたはレポート作成のために格納する作業環境が組み込まれています。Oracle Data Integratorの静的チェックおよびフロー・チェックは整合性チェックです。

- 品質には、整合性が含まれ、その範囲はさらに複雑な品質処理までおよびます。ルール・ベースのエンジンによって、統合プロセスの一環としてデータ品質基準が適用され、名前および住所を含むあらゆるタイプのデータのクレンジング、標準化、拡充、照合および重複除去が行われます。Oracle Data Quality for Data Integratorによって、データ品質および名前と住所のクレンジングが企業の統合戦略の中心となります。

16.2 データ品質プロセス

この項で説明するデータ品質プロセスでは、Oracle Data Integrator製品を使用してシステムから抽出したデータを、Oracle Data Quality製品でプロファイリングおよびクレンジングします。さらに、クレンジングしたデータを、Oracle Data Integratorを使用して元のシステムに再統合します。

品質プロセスのには:

1. Oracle Data Integratorで、クレンジングするデータが含まれる品質入力ファイルを作成します。

2. このファイルに基づいて、Oracle Data Qualityにエンティティを作成します。

3. 品質の問題を特定するためのプロファイリング・プロジェクトを作成します。

4. このエンティティをクレンジングするOracle Data Qualityプロジェクトを作成します。

5. ランタイム用にデータ品質プロジェクトをエクスポートします。

6. RKM Oracle Data Qualityを使用して、エンティティをリバースエンジニアリングします。

7. インタフェースでOracle Data Qualityの入力ファイルおよび出力ファイルを使用します。

8. OdiDataQualityツールを使用して、Oracle Data Integratorからこの品質プロジェクトを実行します。

9. パッケージ内のプロセスを順序付けします。

16.2.1 品質入力ファイルの作成

Oracle Data Qualityでは、品質プロジェクトのソースとしてクレンジングするデータが含まれるフラット・ファイルが使用されます。この品質入力ファイルは、Data Integratorで作成し、インタフェースを使用して任意のソース・データストアからロードできます。このファイルは、「ファイル」タブで次のパラメータが定義されているファイル・データストアである必要があります。

パラメータ

値

ファイル・フォーマット

デリミタ付き

ヘッダー(行数)

1

レコード・セパレータ

MS-DOS

フィールド・セパレータ

その他

[フィールド・セパレータ]その他

,(カンマ記号 - 16進では2C)

テキスト・デリミタ

" (二重引用符)

小数点セパレータ

空、指定なし

ファイル・データストアの作成の詳細は、第5章「モデルの作成およびリバースエンジニアリング」を参照してください。フラット・ファイルのロードの詳細は、Oracle Fusion Middleware Oracle Data Integrator接続性およびナレッジ・モジュール・ガイドのファイルを参照してください。

16.2.2 エンティティの作成

Oracle Data Quality for Data Integratorへのデータ・ソースのインポートとは、デリミタ付きソース・ファイルに基づいてエンティティを作成することを意味します。

16.2.2.1 ステップ1: ローダー接続の検証

管理者は、Oracle Data Quality for Data Integratorのインストール時に、少なくとも1つのローダー接続を設定する必要があります。このローダー接続を使用して、Oracle Data Quality入力ファイルにアクセスします。入力ファイルがデリミタ付きファイルであるため、このローダー接続にはデリミタ付きローダー接続が必要です。ステップ1では、このデリミタ付きローダー接続の設定を検証する必要があります。また、必要なすべてのデータおよびスキーマ・ファイルが、ローダー接続によって定義されたディレクトリにコピーされていることを確認してください。

メタベース・マネージャにアクセスできない場合は、メタベース管理者にローダー接続の確認を依頼してください。

メタベース・マネージャへのアクセス権があるメタベース・ユーザーの場合は、次の手順に従います。

ローダー接続を検証するには:

1. メタベース・マネージャを開きます(「スタート」→「プログラム」→「Oracle」→「Oracle Data Profiling and Quality」→「Metabase Manager」)。

2. 管理モードに設定されていることを確認します。

3. 「Control Admin」ノードを展開します。

4. 「ローダー接続」をダブルクリックします。

5. 右側のローダー接続のリスト・ビューに各ローダー接続が表示され、その名前、タイプ、データ・ファイルおよびパラメータが示されます。情報を参照して、管理者によって作成されたローダー接続がデリミタ付きローダー接続であること、データおよびスキーマのディレクトリが正しい場所を指していることを確認します。

注意:

完全なメタベース権限があるメタベース・ユーザーの場合は、新規ローダー接続を作成できます。

16.2.2.2 ステップ2: エンティティの作成およびデータのインポート

エンティティの作成ウィザードを使用して、エンティティを作成します。このウィザードを使用すると、各ステップを実行して、ロードするデータを選択できます。提供されるインタフェースを使用して、接続およびスキーマの設定を指定できます。また、エンティティでのデータの表示方法をカスタマイズするオプションも指定できます。

デリミタ付きソース・ファイルをOracle Data Quality for Data Integratorにインポートするには:

1. Oracle Data Quality for Data Integratorにインポートするフラット・ファイルを、ローダー接続の定義時に指定したデータ・ディレクトリ内にコピーします。

2. Windowsの「スタート」メニューをクリックし、「プログラム」→「Oracle」→「Oracle Data Profiling and Quality」→「Oracle Data Profiling and Quality」の順に選択します。

3. メタベース・ユーザーとしてユーザー・インタフェースにログインします。Oracle Data Profiling and Qualityのユーザー・インタフェースが開きます。

4. メイン・メニューから、「分析」→「エンティティの作成」の順に選択します。

5. 右上のペインに、エンティティの作成ウィザードが開きます。

6. エンティティの作成ウィザードの接続ページで、ステップ1で確認した、管理者から提供されたローダー接続を選択します。

7. フィルタおよび接続の設定をデフォルトのままにし、「次へ」をクリックします。

8. Oracle Data Qualityによって、ステップ4で選択したローダー接続を使用してデータ・ソースに接続されます。接続に失敗する場合は、メタベース管理者に連絡してください。

9. 「エンティティ選択」ダイアログで、インポートするデータ・ソース・ファイル名をリストから選択し、「次へ」をクリックします。

10. 選択したデータ・ファイルのスキーマ設定を選択します。この設定は、16.2.1項「Quality入力ファイルの作成」で説明したファイルのパラメータに対応します。

- デリミタ: , (カンマ)

- 引用符: " (二重引用符)

- 属性情報: 1行目の名前

- レコードはCR/LFで終了: 選択

- 文字エンコーディング: ascii

デリミタ付きファイルに対するエンティティの構成の詳細は、Oracle Data ProfilingおよびOracle Data Qualityのオンライン・ヘルプを参照してください。

注意:

Oracle Data Integratorを使用してファイルを生成する場合、これらのファイル形式のパラメータは、データストア定義の「ファイル」タブで指定したファイル形式に対応する必要があります。

11. スキーマの設定の選択後、「プレビュー」をクリックします。プレビュー・モードでは、選択したスキーマ設定に基づいて、エンティティでデータがどのように表示されるかが示されます。データは下部のリスト・ビュー内に表示されます。プレビュー・モードを使用して、新規エンティティでのデータの表示方法をカスタマイズします。

12. 続行する準備が整った後、「閉じる」をクリックします。

13. 「次へ」をクリックします。「ロード・パラメータ」ダイアログが開きます。次のようにパラメータを指定します。

- 「すべての行」を選択します。

- デフォルトのジョブ名はそのままにします。

14. 「次へ」をクリックして続行します。

15. 設定の確認で、設定のリストを確認し、「終了」をクリックしてエンティティの作成ジョブをスケジュールします。「ジョブのスケジュール」ウィンドウが開きます。

16. 「即時実行」をクリックします。

16.2.2.3 ステップ3: エンティティの確認

データのインポート処理中に、Oracle Data Quality for Data Integratorによって、データ・ファイルはエンティティ、属性および行の3つの基本コンポーネント(メタベース・オブジェクト)に変換されます。

次に示す確認作業を実行して、必要なデータがメタベースに正常にインポートされ、メタベース・エクスプローラに適切に表示されることを確認します。

1. インポートしたデータ・ファイルごとに、1つのエンティティが対応していることを確認します。

2. アンダースコア(_)またはマイナス記号(-)の文字を除いて、列名に特殊文字が含まれていないことを確認します。マイナス記号およびアンダースコアは、データのロード・プロセス時にスペースに変換されます。

3. インポートしたフィールドごとに、1つの属性が対応していることを確認します。

4. インポートしたデータ行ごとに、1つのエンティティ行が存在することを確認します。

16.2.3 プロファイリング・プロジェクトの作成

これでOracle Data Profilingを使用してデータ・プロファイリング・プロジェクトを実行して、品質の問題を検出する準備ができました。プロファイリングによって、エンタープライズ・データの品質が検出および分析されます。最も詳細なレベルでデータが分析され、データの異常、フィルタおよびデータ・ルールの破棄、データ・リレーションシップの不整合および経営目標を妨げる可能性があるデータに関するその他の懸念事項が識別されます。

データ・プロファイリングの詳細は、Oracle Data ProfilingおよびOracle Data Qualityのオンライン・ヘルプのOracle Data Profilingの使用に関する説明を参照してください。

16.2.4 Oracle Data Qualityプロジェクトの作成

ここでは、Oracle Data Qualityプロジェクトを作成して、データを検証および変換し、不一致や冗長性などのデータの問題を解決します。

Oracle Data Quality for Data Integratorは、各国固有のデータを含め、多数のビジネス・コンテキストおよびアプリケーション全体のフィールド、値およびレコードを修復および修正するための強力なツールです。Oracle Data Quality for Data Integratorでは、データを標準化、クレンジングおよび拡充する処理、カスタマイズのためのチューニング機能およびリアルタイムで結果を表示する機能が使用可能です。

品質プロジェクトは、入力ファイルをクレンジングし、クレンジング後のデータを出力ファイルにロードします。Oracle Data Qualityプロジェクトの最後に、データ品質プロジェクトに応じて、入力ファイルが複数の出力ファイルに分割される場合があります。

重要: データ品質プロジェクトには多数の一時エンティティが含まれ、統合プロセスに有効ではないエンティティもあります。Oracle Integratorで使用するためにリバースエンジニアリングされるエンティティを制限するには、エンティティ名に基づいたフィルタを使用できます。このフィルタを効果的に使用するために、Oracle Data Integratorで使用するエンティティの名前を品質プロジェクト内で一貫性のある方法で変更することをお薦めします。たとえば、エンティティの名前をODI_IN_XXX、出力(および一致しない)ファイルの名前をODI_OUT_XXX(XXXはエンティティ名)に変更します。

データ品質プロジェクトの詳細は、Oracle Data ProfilingおよびOracle Data Qualityのオンライン・ヘルプのOracle Data Qualityの使用に関する説明を参照してください。

16.2.5 データ品質プロジェクトのエクスポート

Oracle Data Integratorでは、Oracle Data Qualityからエクスポートしたプロジェクトを実行できます。データ品質プロジェクトの作成完了後、Oracle Data Integrator用にエクスポートする必要があります。エクスポートしたプロジェクトには、プロジェクトの各プロセス・モジュールのデータ・ファイル、データ・ディクショナリ言語(DDL)ファイル、設定ファイル、出力ファイルと統計ファイル、ユーザー定義の表およびスクリプトが含まれます。エクスポートしたプロジェクトは、ユーザー・インタフェースなしでUNIXまたはWindowsプラットフォームで実行可能であり、必要となるのはOracle Data Qualityサーバーのみです。

バッチ・スクリプトを作成するには:

1. エクスプローラまたはプロジェクト・ワークフローで、Oracle Data Qualityプロジェクトを右クリックし、「エクスポート」→ODQバッチ・プロジェクト→データなしの順に選択します。

2. フォルダの参照で、プロジェクトのエクスポート先のフォルダを選択または作成します。

3. 「OK」をクリックします。ファイルをコピー中であることを示すメッセージ・ウィンドウが表示されます。このエクスポート処理によって、指定した場所に、メタベース名に基づいて命名されたフォルダ(<metabase_name>)が作成されます。このフォルダには、projectNサブフォルダ(NはOracle Data Qualityでのプロジェクト識別子)が含まれます。このプロジェクト・フォルダには、様々なフォルダとともに、次のフォルダが含まれます。

- data: このフォルダには、入出力データおよび一時データ・ファイルが格納されます。これらのファイルの拡張子は.DATです。このエクスポートではデータなしを指定したため、このフォルダは空です。

- ddl: このフォルダには、エンティティのメタデータ・ファイル(.DDXおよび.XML)が格納されます。これらのファイルには、データ・ファイルのフィールドが記述されます。ファイルには接頭辞eNN_(NNはエンティティ番号)が付加されます。各エンティティは、2つのメタデータ・ファイルに記述されます。eNN_<name of the entity>.ddxは、列が重複している可能性があるエンティティの記述です(固定ファイル用)。enNN_<name of the entity_csv.ddxは、列が重複していないエンティティの記述です(固定ファイルおよびデリミタ付きファイル用)。これらのファイルをリバースエンジニアリング・プロセスで使用することをお薦めします。

- scripts: このフォルダには、バッチ・スクリプトrunprojectNが格納されます。このスクリプトによって、品質プロセスが実行されます。このスクリプトは、Oracle Data Integratorによってトリガーされます。

- settings: このフォルダには、設定ファイル(.ddt、.sto、.stt、.stx)および構成ファイルconfig_batch.tblが格納されます。

4. メッセージ・ウィンドウの終了後、指定したフォルダを調べ、すべてのフォルダおよびファイルが正しく作成されていることを確認します。

5. エクスポートしたプロジェクトをランタイム・マシン上のフォルダに移動します。このマシンには、Oracle Data Qualityサーバーがインストールされている必要があります。これは品質プロジェクトを実行するマシンです。

6. テキスト・エディタで、projectNフォルダの/batch/settingsサブフォルダ内にあるバッチ・スクリプト(runprojectN)および構成ファイル(config_batch.tbl)を開きます。

7. 次の変更を実行してプロジェクトのランタイム・ディレクトリを構成します。

- config_batch.tblで、DATABASEパラメータに対して、projectNフォルダを含むディレクトリの場所(絶対パス)を指定します。

- runprojectNで、TS_PROJECTパラメータに対して、projectNディレクトリの場所(絶対パス)を指定します。

たとえば、config_batch.tblおよびrunproject2.*ファイルの場所がC:\oracle\oracledq\metabase_ data\metabase\oracledq\project2\batch\である場合は、次のように指定します。

- \settings\config_batch.tbl: DATABASE = C:\oracle\oracledq\metabase_ data\metabase\oracledq\project2\batch

- \scripts\runprojectN.*: set TS_PROJECT=C:\oracle\oracledq\metabase_ data\metabase\oracledq\project2\batch

8. 変更内容を保存し、config_batch.tblファイルを閉じます。

9. runprojectNで、ファイルの最終行を非コメント化します(最終行の先頭にある::文字を削除)。

10. 変更内容を保存し、runprojectNファイルを閉じます。

11. Oracle Data Integratorでは、CSV形式のファイル(通常、カンマ区切りで1行目がヘッダー行)を使用してデータ品質プロジェクトに入力データが提供されます。出力データも同じ形式を使用する必要があります。
/settingsディレクトリで、エディタを使用して、プロジェクトの最初のプロセスに対応する設定ファイルを開きます。最初のプロセスが変換である場合、通常、このファイルの名前はeN_transfmr_p1.stx(Nは品質入力ファイルに対応するエンティティの内部ID)です。

12. 設定ファイルの次の入力パラメータを変更します:

- DATA_FILE_NAMEに、実行時の品質入力ファイルの名前および場所(絶対パス)を指定します。

- FILE_DELIMITERに、品質入力ファイルで使用するデリミタを指定します。

- START_RECORDに、データが開始する行番号を指定します。たとえば、1行目がヘッダー行である場合は、この値に2を指定する必要があります。

たとえば、品質入力ファイルcustomer_master.csv(カンマ区切りで1行目がヘッダー行)がC:/oracle/oracledq/metabase_data/metabase/oracledq/Data/にある場合、次のセクションを編集する必要があります。

<CATEGORY><INPUT><PARAMETER><INPUT_SETTINGS>
<ARGUMENTS>
<ENTRY>
<ENTRY_ID>1</ENTRY_ID>
<FILE_QUALIFIER>Customer_Master(1)</FILE_QUALIFIER>
<DATA_FILE_NAME>$(INPUT)/e1_customer_master.dat</DATA_FILE_NAME>
<DDL_FILE_NAME>$(DDL)/e1_customer_master.ddx</DDL_FILE_NAME>
<FILE_DELIMITER/>
<USE_QUOTES_AS_QUALIFIER/>
<START_RECORD/>

次のようにします。

<CATEGORY><INPUT><PARAMETER><INPUT_SETTINGS>
<ENTRY>
<ENTRY_ID>1</ENTRY_ID>
<FILE_QUALIFIER>Customer_Master(1)</FILE_QUALIFIER>
<DATA_FILE_NAME>C:\oracle\oracledq\metabase_data\metabase\oracledq\Data\customer_master.csv</DATA_FILE_NAME>
<DDL_FILE_NAME>$(DDL)/e1_customer_master.ddx</DDL_FILE_NAME>
<FILE_DELIMITER>,</FILE_DELIMITER>
<USE_QUOTES_AS_QUALIFIER/>
<START_RECORD>2</START_RECORD>

13. 変更内容を保存し、設定ファイルを閉じます。

14. /settingsディレクトリで、出力(クレンジング済)データを生成するプロセスの設定に対応するファイルを開きます。通常、データ・リコンストラクタ・プロセスで終了するクレンジング・プロジェクトの場合、名前にeNN_datarec_pXX.stxが付きます。設定ファイル内で次の値を変更して、生成される出力ファイルのフルパスを指定します。

<CATEGORY><OUTPUT><PARAMETER>
<OUTPUT_SETTINGS>
<ARGUMENTS>
<FILE_QUALIFIER>OUTPUT</FILE_QUALIFIER>
<DATA_FILE_NAME>C:\oracle\oracledq\metabase_data\metabase\oracledq\Data\customer_master_cleansed.csv</DATA_FILE_NAME>
<DDL_FILE_NAME>$(DDL)/e36_us_datarec_p11.ddx</DDL_FILE_NAME>

15. 変更内容を保存し、設定ファイルを閉じます。

16. 有効な出力ファイルを生成するデータ品質プロセスが複数ある場合(たとえば、国ごとに1つのデータ・リコンストラクタ)。プロセスごとに前述の2つの手順を繰り返します。

16.2.6 エンティティのリバースエンジニアリング

品質プロセスに入力データを提供し、その出力データをData Integratorの統合プロセスで使用するには、これらのエンティティをリバースエンジニアリングする必要があります。この操作は、Oracle Data Quality RKMに基づいてカスタマイズされたリバースエンジニアリング・メソッドを使用して実行します。RKMは、データ品質プロジェクトの/ddlフォルダにある.ddxファイルからメタデータを読み取ります。

データ品質プロジェクトのエンティティをリバースエンジニアリングするには:

1. RKM Oracle Data QualityをOracle Data Integratorプロジェクトにインポートします。

2. トポロジ・マネージャで、ファイル・テクノロジの物理スキーマを挿入します。ディレクトリ(スキーマ)とディレクトリ(作業スキーマ)の両方に、データ・フォルダの絶対パスを指定します。たとえば、C:\oracle\oracledq\metabase_data\metabase\oracledq\projectN\dataのように指定します。
このディレクトリには、変換の実行に使用されるエージェントからアクセスできる必要があります。Oracle Data Integratorは、スキーマでインタフェースのソースおよびターゲット・データ構造を調べます。RKMは出力データ・ファイルにアクセスし、それをリバースエンジニアリングします。

3. ファイル・モデルを作成し、/ddlフォルダをリバースエンジニアリングします。

1. デザイナ・ナビゲータで、「モデル」パネルを展開します。

2. 右クリックして「新規モデル」を選択します。

3. 「定義」タブで、次の各フィールドに値を入力します。
名前: ユーザー・インタフェースで使用するモデルの名前。

テクノロジ: ファイル

論理スキーマ: モデルの基礎となる論理スキーマを選択します。

4. 「リバース」タブで次のように選択します。

パラメータ

値/操作

リバース

カスタマイズ済

コンテキスト

リバースエンジニアリング・コンテキスト

リバースエンジニアリングするオブジェクトの型

表

KM

RKM Oracle Data Qualityの選択

5. 表16-1で示すように、RKMオプションを設定します。

表16-1 RKM Oracle Data QualityのKMオプション

パラメータ

デフォルト値

説明

DDX_FILE_NAME

*.ddx

処理するDDXファイル用のマスク。品質プロジェクトで使用するエンティティに対して命名規則を使用している場合は、これらのエンティティのみを戻すマスクを入力します。たとえば、入力および出力エンティティに対してODI_IN_XXおよびODI_OUT_XX命名規則を使用した場合は、ODI*_csv.ddxマスクを指定します。

USE_FRIENDLY_NAMES

いいえ

リバースエンジニアリング・プロセスで、DDXファイルに指定されたフィールド名に基づいてデータストアの列に対してユーザーにわかりやすい名前を生成する場合は、このオプションを「はい」に設定します。

USE_LOG

はい

リバースエンジニアリング・プロセスのアクティビティをログ・ファイルに記録する場合は「はい」に設定します。

LOG_FILE_NAME

/temp/reverse.log

ログ・ファイルの名前。

4. 「適用」をクリックします。これでモデルは作成されましたが、データストアはまだ格納されていません。

5. 「リバース」をクリックします。これでモデルにデータストアが格納され、「モデル」ビューで表示できます。

16.2.7 Use Oracle Data Quality Input and Output Files in Interfaces

Oracle Data Integratorで、データ品質の入力および出力ファイルをソースまたはターゲットとして使用するインタフェースを作成できます。

たとえば、次のことができます:

- データストアを使用して様々なソースから入力ファイルをロードするインタフェースの作成

- クレンジング後に出力データを元のソースに再統合するインタフェースの作成

16.2.8 Oracle Data Integratorからの品質プロジェクトの実行

OdiDataQualityツールは、Oracle Data Qualityプロジェクトを実行するバッチ・ファイルを実行します。このツールは、runprojectNスクリプト・ファイルのパスをパラメータとして使用します。同期モード(ツールが品質プロセスの完了を待機)または非同期モードで実行できます。

OdiDataQualityツールとそのパラメータの詳細は、A.5.3項「OdiDataQuality」を参照してください。

16.2.9 パッケージ内のプロセスの順序付け

次のプロセスを順序付けして、Oracle Data Integratorでパッケージを作成します。

1. 1つ以上のインタフェースによる、クレンジングするデータを含む品質入力ファイルの作成

2. OdiDataQualityツール・ステップによる、Oracle Data Qualityプロセスの起動

3. 1つ以上のインタフェースによる、Oracle Data Quality出力ファイルからターゲット・データストアへのデータのロード

17 ショートカットの使用

この章では、ショートカットの概要およびOracle Data Integratorでのショートカットの使用方法について説明します。

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

- 17.1項「ショートカットの概要」

- 17.2項「ショートカット・エディタの概要」

- 17.3項「ショートカットの作成」

- 17.4項「プロジェクトでのショートカットの使用」

17.1 ショートカットの概要

Oracle Data Integratorは、様々なバージョンのソース・アプリケーションから大規模データ・ウェアハウスへのデータ移入に使用されることがよくあります。同じ表と列、同じ制約、同じ変換など、同じソース・アプリケーションの異なる2つのバージョン間によくある大きな共通性を示すために、Oracle Data Integratorにはショートカットが導入されました。ショートカットは共通のオブジェクトに対して個別の場所で作成されます。これらのショートカットは、デプロイ時(たとえば、設計リポジトリからランタイム・リポジトリへのエクスポート時)に、ソース・アプリケーションの指定バージョンに対する最終オブジェクトとしてマテリアライズされます。

17.1.1 ショートカットの概念

ショートカットは、Oracle Data Integratorオブジェクトへのリンクです。データストア、統合インタフェース、パッケージおよびプロシージャのショートカットを作成できます。

参照先オブジェクトは、ショートカットによって直接参照されるオブジェクトです。ショートカットの参照先オブジェクトがショートカットである場合もあります。

ベース・オブジェクトは元のベース・オブジェクトです。ショートカットに関連付けられる実際のオブジェクトです。ベース・オブジェクトへの変更は、このオブジェクトに対して作成されたすべてのショートカットに反映されます。

ショートカットをマテリアライズすると、設計リポジトリで、最終的なベース・オブジェクトと同じプロパティを持つ実際のオブジェクトに変換されます。マテリアライズされたショートカットでは、その名前、関係およびオブジェクトIDが保持されます。

特定のタグに基づいてショートカットのマテリアライズを管理するために、リリース・タグが導入されました。リリース・タグは、フォルダおよびモデル・フォルダに追加できます。

詳細は、17.4項「プロジェクトでのショートカットの使用」を参照してください。

17.1.2 ショートカット・オブジェクト

ショートカットは、データストア、統合インタフェース、パッケージおよびプロシージャのODIオブジェクトに対して作成できます。

アイコンに表示される矢印によって、ショートカットを元のオブジェクトと区別できます。表17-1に、ショートカット・アイコンを示します。

表17-1 ショートカット・アイコン

ショートカット・アイコン

ショートカット・オブジェクト

データストア

統合インタフェース

パッケージ

プロシージャ

ショートカットの子は、デザイナ・ナビゲータで実際のオブジェクトと同じノードに表示されます。

ショートカット作成のためのガイドライン

ショートカットは、通常、参照先オブジェクトと同様に使用されます。ただし、ショートカットを作成する場合は、次のルールが適用されます:

- データストア: 異なるモデル/サブモデルにわたってデータストアのオブジェクト・ショートカットを作成できますが、ソース・モデルと宛先モデルは同じテクノロジで定義する必要があります。また、モデルにデータストアや、表名が同じ別のデータストアへのショートカットを含めることはできません。1つのモデル内の2つのショートカットに、同じベース・オブジェクトを含めることはできません。
データストアのショートカットは、統合インタフェースのソースまたはターゲットとして、あるいはパッケージ内のデータストアとして使用できます。データストアのショートカットが含まれているインタフェースやパッケージは、ベース・データストアに加え、データストアのショートカットやモデルを参照します。

- パッケージ、インタフェースおよびプロシージャ: 特定のODIフォルダに属しているパッケージ、インタフェースおよびプロシージャのオブジェクト・ショートカットを作成できます。
プロジェクト内のインタフェース、プロシージャおよびパッケージのショートカットは、同じオブジェクトに属しているオブジェクト(統合インタフェース、プロシージャおよびパッケージ)のみを参照できます。

- パッケージのショートカットは、ロード計画ステップで使用できます

- インタフェースのショートカットは、インタフェース、パッケージまたはロード計画ステップ内で使用できます

- プロシージャのショートカットは、パッケージまたはロード計画ステップで使用できます

ショートカットをロード計画ステップに追加すると、Oracle Data Integratorでショートカット・オブジェクトがシナリオ実行ステップに変換されます。

17.2 ショートカット・エディタの概要

ショートカット・エディタには、Oracle Data Integratorでショートカットを編集および管理するための単一の環境が用意されています。図17-1に、ショートカット・エディタの概要を示します。

図17-1 パッケージ・ショートカットのショートカット・エディタ

「図17-1 パッケージ・ショートカットのショートカット・エディタ」の説明

ショートカット・エディタには、次のタブがあります:

- 定義
ショートカットの名前、参照先オブジェクトおよびベース・オブジェクトが含まれています

- 実行(パッケージ、インタフェースおよびプロシージャのショートカットの場合のみ)
「直接実行」と「シナリオ実行」タブで構成され、以前の実行結果が表示されます

- シナリオ(パッケージ、インタフェースおよびプロシージャのショートカットの場合のみ)
このコンポーネント用に生成されたシナリオが表形式で表示されます

- バージョン
ショートカットのバージョンを管理するために必要な詳細が含まれています

ショートカット・エディタには、参照を処理するための2つのボタンがあります:

- 参照先オブジェクトの表示: 参照先オブジェクトのエディタを表示する場合にクリックします

- ベース・オブジェクトの表示: ベース・オブジェクトのエディタを表示する場合にクリックします

17.3 ショートカットの作成

ショートカットは、ベース・オブジェクトと同じ名前にできます。ショートカット名は変更できますが、オブジェクトを使用およびマテリアライズする際に、ショートカット・オブジェクト名をベース名のかわりに使用する必要があることに注意してください。

ショートカットは、一度に1つ以上のオブジェクトに対して作成することも、複数の場所で同じオブジェクトに対して作成することもできます。

また、1つのフォル内ダの2つのショートカット・オブジェクトが同じベース・オブジェクトを参照できないことに注意し、ショートカット作成のためのガイドラインに従ってください。

ショートカットを作成するには:

1. デザイナ・ナビゲータで、ショートカットを作成するオブジェクトを選択します。
同じタイプのオブジェクトを複数選択できます。

2. オブジェクトを右クリックして「コピー」を選択します。

3. ショートカットを挿入する場所に移動します。挿入する場所は、別のフォルダまたはモデルの親である必要があります。

4. フォルダまたはモデルを右クリックし、「ショートカットとして貼付け」を選択します。
「ショートカットとして貼付け」メニュー項目は、次の場合にのみ使用可能になります:

- 前の操作が「コピー」操作でした。

- コピーされたオブジェクトが、ショートカットを作成できるオブジェクトです。詳細は、17.1.2項「ショートカット・オブジェクト」を参照してください。

- 新しい場所はコピーされたオブジェクトに対して有効です。適切な場所は次のとおりです:

- データストアのショートカットの場合: ソース・モデルとは異なるモデルまたはサブモデルのノード

- インタフェース、パッケージおよびプロシージャのショートカットの場合: ソース・フォルダと同じプロジェクトにあるソース・フォルダ以外のフォルダ・ノード

5. デザイナ・ナビゲータに新しいショートカットが表示されます。

ヒント:

ショートカットは一度に複数作成できます。詳細は、17.4.1項「ショートカットによる選択の複製」を参照してください。

17.4 プロジェクトでのショートカットの使用

この項では、Oracle Data Integratorプロジェクトでショートカットを使用するときに実行できるアクションについて説明します。次の処理を実行できます。

- ショートカットによる選択の複製

- 参照ショートカットへのジャンプ

- ベース・オブジェクトへのジャンプ

- ショートカットの実行

- ショートカットのマテリアライズ

- ショートカットのエクスポートおよびインポート

- リリース・タグの使用

- 拡張アクション

17.4.1 ショートカットによる選択の複製

指定のモデルまたはフォルダ内のオブジェクトに対して、一度に複数のショートカットを作成できます。

- モデル・ノードに対して迅速に大量のショートカットを作成すると、新しいモデルは、データストアがすべてショートカットとして作成されたソース・モデルのコピーになります。

- フォルダ・ノードに対して迅速に大量のショートカットを作成すると、新しいフォルダは、インタフェース、パッケージおよびプロシージャがすべてショートカットとして作成されたソース・フォルダのコピーになります。

迅速に大量のショートカットを作成するには:

1. デザイナ・ナビゲータで、フォルダまたはモデルのノードを選択します。

2. 右クリックして「ショートカットによる選択の重複」を選択します。

17.4.2 参照ショートカットへのジャンプ

デザイナ・ナビゲータでの現在の選択を参照先オブジェクトに移動する場合は、このアクションを使用します。

参照先オブジェクトにジャンプするには:

1. デザイナ・ナビゲータで、参照先オブジェクトを検索するショートカットを選択します。

2. 右クリックして「ショートカット」→「ショートカットを辿る」の順に選択します。

デザイナ・ナビゲータで参照先オブジェクトが選択されます。

17.4.3 ベース・オブジェクトへのジャンプ

デザイナ・ナビゲータでの現在の選択をベース・オブジェクトに移動する場合は、このアクションを使用します。

ベース・オブジェクトにジャンプするには:

1. デザイナ・ナビゲータで、ベース・オブジェクトを検索するショートカットを選択します。

2. 右クリックして「ショートカット」→「ベースにジャンプ」の順に選択します。

デザイナ・ナビゲータでベース・オブジェクトが選択されます。

17.4.4 ショートカットの実行

ショートカットを実行すると、ショートカットが参照している基礎となるプロシージャが実行されます。ショートカットはOracle Data Integratorの他のオブジェクトと同様に実行されます。詳細は、第21章「統合プロセスの実行」を参照してください。

17.4.5 ショートカットのマテリアライズ

ショートカットをマテリアライズすると、設計リポジトリで、最終的なベース・オブジェクトと同じプロパティを持つ実際のオブジェクトに変換されます。マテリアライズされたショートカットでは、その名前、関係およびオブジェクトIDが保持されます。ショートカットへの直接参照はすべて新規のオブジェクトを指し示すように自動的に更新されます。これはリリース・タグにも適用されます。マテリアライズされたショートカットにリリース・タグが含まれている場合は、リリース・タグ・フォルダまたはモデル内のベース・オブジェクトに対するすべての参照が、新しいオブジェクトに変更されることになります。

注意:

インタフェース・ショートカットをマテリアライズする際、これが一時インタフェースの場合、またはインタフェースに複数の論理スキーマ環境がある場合、たとえばインタフェースにソース・データストアと同じ論理スキーマのステージング領域がある場合、マテリアライズされたインタフェースにフローの変更などのエラーが含まれることがあります。マテリアライズされたインタフェースを確認してください。

17.4.6 ショートカットのエクスポートおよびインポート

ショートカットは、マテリアライズされたオブジェクトとして、またはショートカットとしてエクスポートおよびインポートできます。

標準および複数エクスポートでは、マテリアライズはサポートされていません。標準または複数エクスポートを使用している場合、ショートカットはショートカット・オブジェクトとしてエクスポートされます。インポートでは、ショートカットはショートカットとしてインポートされます。

スマート・エクスポートを実行する際、そのエクスポートにショートカットが含まれている場合は、ショートカットをマテリアライズするように選択できます:

- ショートカットをマテリアライズしないことを選択すると、ショートカットとベース・オブジェクトの両方がエクスポートされます。

- ショートカットをマテリアライズするように選択すると、ショートカットがショートカットと同じオブジェクトIDを持つ実際のオブジェクトに変換されてエクスポート・ファイルに格納されます。このエクスポート・ファイルは、別のリポジトリにインポートすることも、元のリポジトリに戻すこともできます。

- このエクスポート・ファイルを別のリポジトリにインポートすると、元のショートカット・オブジェクトは実際のオブジェクトになります。

- このエクスポート・ファイルを元のリポジトリにインポートすると、マテリアライズされたオブジェクトのIDがショートカットのIDと照合されることになります。この照合プロセスを管理するには、スマート・インポート機能を使用します。スマート・インポート機能は、マテリアライズされたオブジェクトでショートカットを置換できます。

詳細は、20.2.7項「スマート・エクスポートおよびスマート・インポート」を参照してください。

17.4.7 リリース・タグの使用

特定のタグに基づいてショートカットのマテリアライズを管理するために、リリース・タグが導入されました。リリース・タグは、テキスト文字列の形式でフォルダおよびモデル・フォルダに追加できます。

リリース・タグについて、次のことに注意してください:

- 2つのモデルのリリース・タグと論理スキーマが同じでない可能性があります。リリース・タグは、モデルおよびフォルダに設定されます。

- リリース・タグは、マテリアライズおよびエクスポートでのみ使用されます。

- フォルダのリリース・タグは、フォルダのパッケージ、インタフェースおよびプロシージャの内容にのみ適用されます。リリース・タグは、サブフォルダには継承されません。

新規のリリース・タグを追加したり既存のリリース・タグを割り当てるには:

1. 「デザイナ・ナビゲータ」ツールバーのメニューから、「リリース・タグの編集...」を選択します。
リリース・タグ・ウィザードが開きます。

2. 「リリース・タグ名」フィールドで、次のいずれかの操作を実行します:

- 新しいリリース・タグ名を入力する

- リストからリリース・タグ名を選択する

このリリース・タグ名は、指定のフォルダに追加されます。

3. 使用可能なフォルダが、左側の使用可能リストに表示されます。リリース・タグを追加するフォルダを使用可能リストから選択し、矢印を使用して選択済リストに移動します。

4. リリース・タグをモデルに追加する場合は、「次>」をクリックします。
リリース・タグをモデルに追加しない場合は、「終了」をクリックします。

5. 使用可能なモデルおよびモデル・フォルダが、左側の使用可能リストに表示されます。リリース・タグを追加するモデルまたはモデル・フォルダ(あるいはその両方)を使用可能リストから選択し、矢印を使用して選択済リストに移動します。

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

選択したプロジェクト・フォルダおよびモデルにリリース・タグが追加されます。

ヒント:

指定のリリースのすべてのオブジェクトをスマート・エクスポートに追加するように選択することで、スマート・エクスポートの実行時にリリース・タグを使用できます。詳細は、20.2.7.1項「スマート・エクスポートの実行」を参照してください。

17.4.8 拡張アクション

この項では、ショートカットで実行できる拡張アクションについて説明します。次のような拡張アクションがあります:

- データストアのショートカットに対するデータ/データの表示アクション

- モデル、サブモデルまたはデータストアのショートカットに対する静的チェックの実行

- データストア・ショートカットのエラー・レコードの確認

- ショートカットのシナリオの生成

- ショートカット・モデルのリバースエンジニアリング

データストアのショートカットに対するデータ/データの表示アクション

データストアのショートカットに対してデータ・アクションまたはデータの表示アクションを実行し、ショートカットが参照している基礎となるデータストアのデータを表示または編集できます。

ショートカットが参照しているデータストアのデータを表示または編集するには、5.4項「データストアのデータの編集および表示」で説明している標準の手順に従ってください。

モデル、サブモデルまたはデータストアのショートカットに対する静的チェックの実行

モデル、サブモデルまたはデータストアのショートカットに対して静的チェックを実行できます。この拡張アクションにより、このショートカットが参照している基礎となるオブジェクトに対して静的チェックが実行されます。

モデル、サブモデルまたはデータストアのショートカットに対して静的チェックを実行するには、5.6.3項「モデル、サブモデルまたはデータストアに対する静的チェックの実行」で説明している標準の手順に従ってください。

データストア・ショートカットのエラー・レコードの確認

データストアのショートカットが参照しているデータストアのエラー・レコードを確認できます。

データストアのショートカットのエラー・レコードを確認するには、5.6.4項「エラーのあるレコードの確認」で説明している標準の手順に従ってください。

ショートカットのシナリオの生成

インタフェース、パッケージおよびプロシージャのショートカットからシナリオを生成できます。この拡張アクションにより、ショートカットが参照している基礎となるオブジェクトのシナリオが生成されます。生成されたシナリオは、デザイナ・ナビゲータの参照先オブジェクトの下ではなく、ショートカットの下に表示されることに注意してください。

ショートカットのシナリオを生成するには、13.2項「シナリオの生成」で説明している標準の手順に従ってください。

ショートカット・モデルのリバースエンジニアリング

RKM Oracleを使用してショートカット・モデルをリバース・エンジニアリングできます。このナレッジ・モジュールには、データベースから取得する実際の表と同じ表名のショートカットを管理するSHORTCUT_HANDLING_MODEオプションがあります。このオプションには、3つのいずれかの値を使用できます:

- ALWAYS_MATERIALIZE: 競合するショートカットが常にマテリアライズされ、データストアがリバースされます(デフォルト)。

- ALWAYS_SKIP: 競合するショートカットが常にスキップされ、リバースされません。

- PROMPT: 検出されたショートカット競合ダイアログが表示されます。競合するショートカットの処理方法を定義できます:

- 競合するデータストアのショートカットをマテリアライズし、リバースエンジニアリングする場合は、「マテリアライズ」を選択します。

- 競合するショートカットをスキップする場合は、「マテリアライズ」の選択を解除します。選択を解除したデータストアはリバースされず、ショートカットがそのまま残ります。

注意:

データストア・ショートカットを含むモデルをリバースエンジニアリングする際、ショートカットをマテリアライズする場合、リバースエンジニアリング・プロセスでは、データストア・ショートカットとは別の列を持つデータベース・オブジェクトを増分処理します。たとえば、データストア・ショートカットにデータベース・オブジェクトに存在しない列がある場合、その列は他の場所で使用されるという仮定のもとに、リバースおよびマテリアライズされたデータストアから削除されません。

他のRKMまたは標準リバース・エンジニアリングを使用してショートカット・モデルをリバース・エンジニアリングする場合、競合するショートカットがマテリアライズされ、データストアがリバースされます。

リバースエンジニアリングの詳細は、第5章「モデルの作成およびリバースエンジニアリング」を参照してください。

第V部

統合プロジェクトの管理

この部では、Oracle Data Integratorでのプロジェクトの編成方法と保守方法について説明します。

この部の内容は次のとおりです。

- 第18章「作業の編成およびドキュメント化」

- 第19章「バージョン管理の使用」

- 第20章「エクスポート/インポート」

18 作業の編成およびドキュメント化

この章では、Oracle Data Integratorでの作業を編成し、ドキュメント化する方法について説明します。

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

- 18.1項「フォルダを使用したプロジェクトの編成」

- 18.2項「フォルダを使用したモデルの編成」

- 18.3項「相互参照の使用」

- 18.4項「マーカーおよびメモの使用」

- 18.5項「同時変更の処理」

- 18.6項「PDFレポートの作成」

18.1 フォルダを使用したプロジェクトの編成

Oracle Data Integratorで統合プロジェクトの作成を開始する前に、プロジェクトをどのように編成するかを考えておくことをお薦めします。

後でプロジェクトを再編成することは危険を伴う可能性があります。新しい場所を反映するために、リンクや相互参照をすべて手動で指定し直すことが必要になる場合があります。

プロジェクト内では、インタフェース、プロシージャおよびパッケージがフォルダとサブフォルダに編成されます。プロジェクトは、プロジェクト固有の基準に従って、関連するプロジェクト・コンポーネントをフォルダとサブフォルダにグループ化して、適切な編成を維持することをお薦めします。フォルダを使用することで、プロジェクトで開発したオブジェクトの検索やメンテナンス・タスクが容易になります。サブフォルダは、レベルの数に制限なく作成できます。

マーカーを使用してプロジェクトを編成することもできます。詳細は、18.4項「マーカーおよびメモの使用」を参照してください。

18.1.1 新規フォルダの作成

新規フォルダを作成するには:

1. デザイナ・ナビゲータで、「プロジェクト」アコーディオンを展開します。

2. フォルダを追加するプロジェクトを選択します。

3. 右クリックして「新規フォルダ」を選択します。

4. 「名前」フィールドに、フォルダの名前を入力します。

5. 「ファイル」メイン・メニューから「保存」を選択します。

空のフォルダが表示されます。

サブフォルダを作成するには:

1. 18.1.1項「新規フォルダの作成」の説明に従って、新しいフォルダを作成します。

2. 新しいフォルダを親フォルダにドラッグ・アンド・ドロップします。

18.1.2 プロジェクト・フォルダの調整

プロジェクト階層内でプロジェクト・フォルダを調整するには、フォルダを別のフォルダまたはプロジェクトにドラッグ・アンド・ドロップします。プロジェクトのフォルダを別のプロジェクトに移動することはできません。

18.2 フォルダを使用したモデルの編成

モデル・フォルダは、プロジェクト固有の基準に従って、関連するモデルをグループ化します。モデル・フォルダに別のモデル・フォルダを含めることもできます。サブフォルダは、レベルの数に制限なく作成できます。

マーカーを使用してモデルを編成することもできます。詳細は、18.4項「マーカーおよびメモの使用」を参照してください。

18.2.1 新規モデル・フォルダの作成

モデル・フォルダを作成するには:

1. デザイナ・ナビゲータで、「モデル」アコーディオンを展開します。

2. 「モデル」アコーディオンのツールバーで、「新規モデル・フォルダ」をクリックします。

3. 「名前」フィールドに、フォルダの名前を入力します。

4. 「ファイル」メイン・メニューから「保存」を選択します。

空のモデル・フォルダが表示されます。

18.2.2 モデル・フォルダの調整

モデルをフォルダに移動するには:

1. デザイナ・ナビゲータで、「モデル」アコーディオンを展開します。

2. モデルを選択して、移動先のモデル・フォルダのアイコンにドラッグ・アンド・ドロップします。

現在の場所から選択したモデル・フォルダに、モデルが移動します。

モデル・フォルダを調整する場合は、次のことに注意してください。

- 1つのフォルダに同時に存在できるのは1つのモデルのみです。

- モデル・フォルダは、別のモデル・フォルダにも移動できます。

18.2.3 サブモデルの作成および編成

サブモデルは、階層構造内でモデルのデータストアを分類できるオブジェクトです。構造のルートはモデルです。サブモデルは、モデル内の同種のデータストアを機能的にグループ化します。モデルのデータストアは、ドラッグ・アンド・ドロップを使用して、または自動配布でサブモデルに挿入できます。

分類操作は、次のように実行されます。

- リバースエンジニアリング・プロセス中に、RKMによってサブモデルが作成され、それらのサブモデルにデータストアが自動的に配布されることがあります。たとえば、ERPシステムからの大きなデータ・モデルを処理するRKMでは、この方法が使用されます。

- 既存のデータストアをサブモデルにドラッグ・アンド・ドロップし、手動で分類します。

- データストアの名前に基づく配布を使用して自動的に分類します。

サブモデルを作成するには:

1. デザイナ・ナビゲータで、「モデル」アコーディオンを展開します。

2. 「モデル」アコーディオンで、サブモデルを追加するモデルまたはサブモデルを選択します。

3. 右クリックして「新規サブモデル」を選択します。

4. 「定義」タブで、「名前」フィールドにサブモデルの名前を入力します。

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

データストアのない新しいサブモデルが作成されます。

サブモデルの調整

データストアをサブモデルに手動で格納するには:

1. デザイナ・ナビゲータで、「モデル」アコーディオンを展開します。

2. 「モデル」アコーディオンで、サブフォルダに移動するデータストアを選択します。

3. サブモデルにドラッグ・アンド・ドロップします。

データストアがモデルから消去され、サブモデルに表示されます。

自動配布の設定

配布では、サブモデルへのデータストアの自動配布を定義できます。

データストア名が自動割当てマスクと比較されます。データストア名がこのパターンに一致する場合は、このサブモデルにデータストアが移動します。この操作は、データストア配布ルールに従って、手動または自動で実行できます。

2つの方法で分類できます。

- サブモデルの「配布」タブで「配布」をクリックすることで、現在のルールがデータストアに適用されます。

- リバースエンジニアリング・プロセスの最後に、すべてのサブモデル・ルールが適用され、「リバースエンジニアリング後のマスク・アプリケーションの順序」の値に従って、すべてのサブモデルに順序が定義されます。

サブモデルへのデータストアの自動配布を設定するには:

1. サブモデルの「配布」タブで、「データストア配布ルール」を選択します。
データストア配布ルールでは、処理の対象として考慮し、自動割当てマスクと比較するデータストアを決定します。

- 自動配布なし: データストアの配布は考慮されません。手動で配布する必要があります。

- すべてのデータストアの自動配布がまだサブモデルの中にありません: サブモデル・ツリーのルート・モデルにあるデータストアの配布が考慮されます。

- すべてのデータストアの自動配布: モデル(およびサブモデル)のすべてのデータストアの配布が考慮されます。

2. 「自動割当てマスク」フィールドに、このサブモデルに分類するためにデータストア名が一致する必要があるパターンを入力します。

3. 「リバースエンジニアリング後のマスク・アプリケーションの順序」フィールドに、リバース操作の終了時にすべてのルールに適用する順序を入力します。その結果、すべてのデータストアに対して上位の順序に設定されているルールが優先されます。未分類のデータストアに対して上位の順序に設定されているルールは、他のルールのパターンにより無視されたデータストアにのみ適用されます。リバース操作の終了時に、新規のデータストアは未分類とみなされます。すでにサブモデルで分類されているデータストアは、それぞれのサブモデルに関連付けられたままです。

4. 「配布」をクリックします。現在のルールがデータストアに適用されます。

18.3 相互参照の使用

Oracle Data Integratorのオブジェクト(データストア、モデル、インタフェースなど)は、様々な関係 -単純な使用上の関連(統合インタフェースによるナレッジ・モジュールの使用)から、コード解釈関係などの複雑な関連(インタフェースのマッピングまたはフィルタでの変数の使用)まで - によって相互にリンクされます。これらの関係は、相互参照として実装されます。それらは、作業リポジトリ内の関連オブジェクト間の整合性をチェックしたり、整合性を維持するために使用されます。たとえば、相互参照により、作業リポジトリのいずれかの場所で現在参照されているオブジェクトは、削除されないように保護されます。

すべての関係が相互参照として表示されるわけではありません。

- マスター・リポジトリのオブジェクトとの関係(テクノロジとデータ・モデルの関連など)は、相互参照として実装されませんが、オブジェクト・コード(コンテキスト・コード、テクノロジ・コード、データ型コードなど)に基づく弱い参照として実装されます。これらのコードが変更されると、参照内の整合性が失われる可能性があります。

- 作業リポジトリ内の強い関係(プロジェクトに属するフォルダ)は、グラフィカル・ユーザー・インタフェースおよびリポジトリ内で(ホスト・データベースの外部キーとして)強制的に適用されます。これらの関係は、通常、破損することはありません。

18.3.1 相互参照の表示

オブジェクトを変更する場合は、その変更による他の開発作業への影響を分析する必要があります。たとえば、列の長さを変更すると、この列をソースまたはターゲットとして使用している統合インタフェースの変更も必要になります。相互参照を使用すると、特定のオブジェクトの参照元または参照先オブジェクトを即時に識別できるため、効果的な影響分析を実行できます。

相互参照は、表18-1の説明のようにデザイナ・ナビゲータに表示されます。

表18-1 デザイナ・ナビゲータの相互参照

アコーディオン

アイコン

説明

「プロジェクト」および「その他」アコーディオン

オブジェクト・ノードの下に「使用」および「使用者」ノードが表示されます。「使用」ノードには、現在のオブジェクトを参照しているオブジェクトのリストが表示されます。たとえば、変数の場合は、その変数を参照するステップが格納されているパッケージと、マッピングやフィルタなどでこの変数を使用しているインタフェースが表示されます。「使用者」ノードには、現在のオブジェクトを使用しているオブジェクトのリストが表示されます。

「モデル」アコーディオン

オブジェクト・ノードの下に「使用」ノードが表示され、現在のデータストア、モデルまたはサブモデルをインタフェースのソースまたはターゲットとして(あるいはパッケージ・ステップで)参照しているオブジェクトのリストが表示されます。

「モデル」アコーディオン

「移入に使用」および「移入者」ノードには、現在のデータストアを移入元または移入先とするデータストアが表示されます。

これらの相互参照ノードは展開できます。参照元または参照先のオブジェクトは、相互参照ノードから表示または編集できます。

18.3.2 欠落参照の解決

バージョン・リストア操作を実行すると、作業リポジトリのオブジェクトが、存在しないオブジェクトを参照する状況が発生する可能性があります。この状況は、一般的に、統合インタフェースで使用されていたすべての関連モデルをリストアせずに、古いバージョンのプロジェクトをリストアした場合に発生します。

このような状況で、存在しないオブジェクトを参照するオブジェクト(インタフェースなど)を開くと、Oracle Data Integratorで欠落参照のエラー・メッセージが表示されます。相互参照が欠落しているオブジェクトは、欠落参照マーカー付きでツリーに表示されます。

オブジェクトの欠落参照の詳細を表示するには:

1. デザイナ・ナビゲータで、欠落参照マーカーのあるオブジェクトをダブルクリックします。

2. オブジェクト・エディタが開きます。オブジェクト・エディタで、「参照がありません」タブを選択します。

3. このタブに、相互参照が欠落している参照オブジェクトのリストが表示されます。

欠落参照を解決するには:

欠落相互参照は2つの方法で解決できます:

- 欠落参照オブジェクトをインポートまたはリストアします。詳細は、第19章「バージョン管理の使用」および第20章「エクスポート/インポート」を参照してください。

- 参照元オブジェクトを変更することで、欠落オブジェクトに対する参照を削除します(たとえば、存在しない変数を参照する「変数のリフレッシュ」ステップをパッケージから削除し、それを別の変数で置換します)。

注意:

テキスト(インタフェースのマッピング/結合/フィルタ、プロシージャ・コマンドなど)に1つ以上の欠落参照がある場合、このテキストに適用される最初の変更には追加のチェックが考慮されません。これは、テキストの一部が、存在しないオブジェクトを引き続き参照しているとしても、テキストが変更され、相互参照が算定されると、欠落参照がすべて削除されるためです。

18.4 マーカーおよびメモの使用

プロジェクトとモデルのほぼすべての要素には、プロジェクトの概要説明や開発支援を目的として、説明的なマーカーとメモを関連付けることができます。

18.4.1 マーカー

フラグは、マーカーを使用して定義します。これらのマーカーは、グループに編成し、プロジェクトまたはモデル内のほとんどのオブジェクトに適用できます。

一般的なマーカー・グループは、次のとおりです。

- 開発サイクル(開発、テスト、本番)

- 優先度(低、中、緊急、クリティカル)

- 進捗状況(10%、20%など)

グローバル・マーカーとプロジェクト・マーカー

マーカーは、プロジェクトまたは「その他」ビュー(グローバル・マーカー)で定義します。プロジェクト・マーカーは、そのプロジェクトのオブジェクトでのみ使用できます。グローバル・マーカーは、リポジトリのすべてのモデルで使用できます。

オブジェクトへのフラグの指定

オブジェクトにアイコン・マーカーでフラグを指定するには:

1. デザイナ・ナビゲータの「プロジェクト」または「モデル」アコーディオンで、オブジェクトを選択します。

2. 右クリックして「マーカーの追加」を選択し、マーカー・グループと設定するマーカーを選択します。

マーカー・アイコンがツリーに表示されます。マークされたオブジェクトは、マーカーのノードにも表示されます。したがって、特定のマーカーが付いたすべてのオブジェクトを参照できます。

ツリーで、自動増分マーカー・グループに属するアイコン・マーカーをクリックすると、マーカーがマーカー・グループ内の次のマーカーに切り替わり、それに応じてアイコンも変化します。

注意:

マーカーおよびメモ・フラグの表示オプションが選択されていない場合、マーカーは表示されません。詳細は、マーカーおよびメモの非表示化を参照してください。

オブジェクトに文字列、数値および日付マーカーでフラグを指定するには:

1. デザイナ・ナビゲータの「プロジェクト」または「モデル」アコーディオンで、オブジェクトをダブルクリックします。

2. オブジェクト・エディタで、「マーカー」タブを選択します。

3. 「マーカーの挿入」をクリックします。

4. 新しい行で、「グループ」および「マーカー」を選択します。必要に応じて「値」も設定できます。

マーカーに関連付けられているアイコンがある場合は、そのアイコンがツリーに表示されます。

マーカーを使用したフィルタ処理

マーカーは情報目的で使用されます(プロジェクトの進捗状況やリソースについてグローバル・ビューを提供するなど)。パッケージをフィルタ処理してシナリオ生成を自動化する場合もマーカーを使用できます。詳細は、13.4項「シナリオ・グループの生成」を参照してください。

マーカーのノードには、特定のマーカーを使用しているすべてのオブジェクトのリストが表示されます。

マーカーのカスタマイズ

新規プロジェクトは、デフォルト・マーカー付きで作成されます。特定のプロジェクトのマーカーやグローバル・マーカーは、カスタマイズ可能です。

マーカー・グループを定義するには:

1. デザイナ・ナビゲータで、「プロジェクト」アコーディオンの「マーカー」ノードをクリックするか、「その他」アコーディオンの「グローバル・マーカー」ノードをクリックします。

2. 右クリックして「新規マーカー・グループ」を選択します。

3. 「グループ名」フィールドにマーカー・グループの名前を入力し、その「表示プロパティ」と「属性」を定義します。

4. 「新規マーカーを挿入」をクリックし、グループに新しいマーカーを作成します。

5. マーカーの「アイコン」を選択します。マーカーに日付または数値が格納される場合、アイコンは「<なし>」に設定します。

6. マーカーの「名前」、「タイプ」およびその他のオプションを選択します。

7. ステップ4から6を繰り返し、グループにその他のマーカーを追加します。

8. 「ファイル」メイン・メニューから「保存」を選択します。

18.4.2 メモ

メモは、事実上すべてのオブジェクトに添付できる文字数に制限のないテキストで、「メモ」タブに表示されます。オブジェクトにメモが添付されると、オブジェクトの横にメモ・アイコンが表示されます。

オブジェクトのメモを編集するには:

1. オブジェクトを右クリックします。

2. 「メモの編集」を選択します。

3. 「メモ」タブが選択された状態でオブジェクト・エディタが開きます。

マーカーおよびメモの非表示化

ツリー・ビューのマーカーとメモのフラグは、画面を見やすくするために一時的に非表示にできます。

すべてのマーカーおよびメモのフラグを非表示にするには:

デザイナ・ナビゲータのツールバー・メニューで、「マーカーおよびメモ・フラグの表示」オプションの選択を解除します。この設定はマシンごとに保存されます。

18.5 同時変更の処理

複数のユーザーが同じOracle Data Integratorプロジェクトまたはモデルを同時に操作できます。各ユーザーはすべて同じリポジトリに接続されるため、ユーザーによる変更は同時に発生するとみなされます。

Oracle Data Integratorでは、この同時変更を処理するために、同時編集のチェックおよびオブジェクトのロックという2つの方法を提供しています。この2つの方法は、同時に、または個別に使用できます。

18.5.1 同時編集のチェック

ユーザー・パラメータ「同時編集のチェック」を1に設定すると、ユーザーは、自分が保存しようとしているオブジェクトに対して他のユーザーが作業を実行した場合に、その作業の削除を実行できなくなります。詳細は、付録B「ユーザー・パラメータ」を参照してください。

このパラメータが1に設定されている場合、オブジェクトに対する変更をユーザーが保存しようとすると、そのユーザーがファイルを開いてから、別のユーザーが同じオブジェクトに変更を追加していないかどうかがOracle Data Integratorによってチェックされます。別のユーザーが変更を追加していた場合、オブジェクトは保存できないため、変更を保存しようとしたユーザーは、その変更を取り消す必要があります。

18.5.2 オブジェクトのロック

オブジェクト・ロック・メカニズムのアクティブ化は、Oracle Data Integratorで自動的に、Oracle Data Integratorを閉じる際に、または手動で適用されます。

自動オブジェクト・ロック

このメカニズムは自動的にアクティブ化されます。オブジェクトをユーザー・インタフェースで開くと、そのオブジェクトをロックするかどうかを尋ねるポップアップ・ウィンドウが表示されます。オブジェクトのロック中は、ロックを所有しているユーザーのみがオブジェクトを変更(編集や削除など)できます。他のユーザーは、その他の操作(実行など)を実行できますが、その際に警告が表示されます。

ユーザーにロックされたオブジェクトは、黄色のロック・アイコン付きで表示されます。別のユーザーにロックされたオブジェクトは、赤色のロック・アイコン付きで表示されます。

編集ウィンドウを閉じる際は、オブジェクトのロックを解除するかどうかを尋ねるポップアップ・ウィンドウが表示されます。

これらのウィンドウは、「開く時にオブジェクトをロック」および「閉じる時にオブジェクトをロック解除」のユーザー・パラメータで構成します。詳細は、付録B「ユーザー・パラメータ」を参照してください。

ユーザー・インタフェースを閉じる際のロックの解放

Oracle Data Integratorと閉じる際、ロックしているオブジェクトのロックを解除するか、開いているオブジェクトを保存するかを尋ねるウィンドウが表示されます。

オブジェクトのロックはOracle Data Integratorに接続していない場合も維持できます。その間、他のユーザーはこれらのオブジェクトを編集できません。

ロックの手動管理

オブジェクトのロックは手動で管理することもできます。

オブジェクトを手動でロックするには:

1. ツリーでオブジェクトを選択します。

2. 右クリックして「ロック」→「ロック」の順に選択します。

ロック・アイコンがツリーのオブジェクトの横に表示されます。

オブジェクトのロックを手動で解除するには:

1. ツリーでオブジェクトを選択します。

2. 右クリックして「ロック」→「ロック解除」の順に選択します。

ロック・アイコンがツリーに表示されなくなります。

すべてのロックを管理するには:

1. ODIメニューから「ロックされたオブジェクト」を選択します。

2. ロックされたオブジェクト・エディタに、ロックを解除できるすべてのロック済オブジェクトが表示されます。

注意:

スーパーバイザ権限のユーザーは、他のすべてのユーザーのロックを削除できます。

18.6 PDFレポートの作成

Oracle Data Integratorでは、PDF生成機能を使用して、次のような様々なタイプのレポートを印刷したり、レポートを共有することができます。

- 物理アーキテクチャ、論理アーキテクチャまたはコンテキストのトポロジ・レポート

- バージョン比較結果のレポート

- ODIオブジェクトのレポート

- ダイアグラム・レポート

注意:

生成されたレポートを表示するには、PDF生成を起動する前に、付録B「ユーザー・パラメータ」にAcrobat® Reader(tm)の場所を指定する必要があります。

18.6.1 トポロジ・レポートの生成

Oracle Data Integratorでは、物理アーキテクチャ、論理アーキテクチャまたはコンテキストのトポロジ・レポートをPDF形式で生成できます。

トポロジ・レポートを生成するには:

1. トポロジ・ナビゲータのツールバー・メニューから「レポートの生成」を選択し、生成するレポートのタイプを選択します。

- 物理アーキテクチャ

- 論理アーキテクチャ

- コンテキスト

2. レポート生成エディタで、PDFレポートの出力先を「PDFファイルの場所」に入力します。「PDFファイルの場所」の指定を省略すると、Adobe(tm) PDF形式のレポートは、ユーザー・パラメータに指定されているPDF生成用のデフォルト・ディレクトリに生成されます。詳細は、付録B「ユーザー・パラメータ」を参照してください。

3. 生成後にPDFレポートを表示する場合は、「ファイルを生成後に開きますか。」オプションを選択します。

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

18.6.2 バージョン比較結果のレポートの生成

バージョン比較ツールを介して比較結果のレポートを作成および印刷できます。詳細は、19.3.3項「比較結果レポートの生成および印刷」を参照してください。

18.6.3 Oracle Data Integratorオブジェクトのレポートの生成

デザイナ・ナビゲータでは、オブジェクトのタイプに従って様々なタイプのレポートを生成できます。表18-2に、ODIオブジェクトの様々なレポート・タイプを示します。

表18-2 ODIオブジェクトの様々なレポート・タイプ

オブジェクト

レポート

プロジェクト

ナレッジ・モジュール

プロジェクト・フォルダ

フォルダ、パッケージ、インタフェース、プロシージャ

モデル・フォルダ

モデル・フォルダ

モデル

モデル

サブモデル

サブモデル

デザイナ・ナビゲータでレポートを生成するには:

1. デザイナ・ナビゲータで、レポートを生成するオブジェクトを選択します。

2. 右クリックして「印刷」→<オブジェクト>の印刷の順に選択します。

3. レポート生成エディタで、PDFレポートの出力先を「PDFファイルの場所」に入力します。「PDFファイルの場所」の指定を省略すると、Adobe(tm) PDF形式のレポートは、ユーザー・パラメータに指定されているPDF生成用のデフォルト・ディレクトリに生成されます。詳細は、付録B「ユーザー・パラメータ」を参照してください。

4. 生成後にPDFレポートを表示する場合は、「ファイルを生成後に開きますか。」オプションを選択します。

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

18.6.4 ダイアグラム・レポートの生成

ダイアグラムの完全なPDFレポートを生成できます。詳細は、7.2.5項「ダイアグラムの印刷」を参照してください。

19 バージョン管理の使用

この章では、Oracle Data Integratorでのバージョン管理の使用方法について説明します。

Oracle Data Integratorは、変更を管理および保護するための包括的なシステムを提供します。バージョン管理システムでは、開発されたオブジェクト(プロジェクト、モデルなど)のフラグが自動設定され、「新規」または「変更」といったこれらのオブジェクトのステータスが示されます。また、これらのオブジェクトを固定のチェックポイントの時点でバックアップし、後でこれらのチェックポイントからリストアできます。これらのチェックポイントは、個別のオブジェクトについてはバージョンの形式で、またオブジェクトの一貫性グループについてはソリューションの形式で作成されます。

注意:

Oracle、Hypersonic SQLおよびMicrosoft SQL Serverなどのデータベース・エンジンにインストールされたマスター・リポジトリについては、バージョン管理がサポートされています。バージョン管理をサポートしている認証済データベース・エンジンの全リストについては、次の場所にあるOTNのプラットフォーム認証ドキュメントを参照してください: http://www.oracle.com/technology/products/oracle-data-integrator/index.html

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

- 19.1項「オブジェクト・フラグの使用」

- 19.2項「バージョンの使用」

- 19.3項「バージョン比較ツールの使用」

- 19.4項「ソリューションの作成」

19.1 オブジェクト・フラグの使用

デザイナ・ナビゲータでオブジェクトが作成または変更されると、ツリーの中のオブジェクト・アイコン上にオブジェクトのステータスを示すフラグが表示されます。表19-1ではこれらのフラグをリストしています。

表19-1 オブジェクト・フラグ

フラグ

説明

オブジェクト・ステータスは挿入済です。

オブジェクト・ステータスは「更新済」です。

オブジェクトが挿入、更新または削除されると、その親オブジェクトは再帰的に「更新済」としてフラグが指定されます。たとえば、パッケージにステップが挿入された場合、このステップは挿入済としてフラグが指定され、このステップが含まれるパッケージ、フォルダおよびプロジェクトは、「更新済」としてフラグが指定されます。

オブジェクト・バージョンがチェック・インされると(詳細は19.2項「バージョンの使用」を参照)、このオブジェクトのフラグはリセットされます。

19.2 バージョンの使用

バージョンとは、オブジェクトのバックアップ・コピーです。バージョンは指定の時間にチェック・インされ、後でリストアできます。バージョンはマスター・リポジトリに保存され、「オブジェクト」ウィンドウの「バージョン」タブに表示されます。

次のオブジェクトはバージョンとしてチェック・インできます。

- プロジェクト、フォルダ

- パッケージ、シナリオ

- インタフェース、プロシージャ、ナレッジ・モジュール

- 順序、ユーザー関数、変数

- モデル、モデル・フォルダ

- ソリューション

- ロード計画

バージョンのチェック・イン

バージョンをチェック・インするには:

1. バージョンをチェック・インするオブジェクトを選択します。

2. 右クリックして、「バージョン」→「作成」の順に選択します。

3. 「作成」ダイアログで、「前のバージョン」(>>)をクリックし、すでにチェック・インされているバージョンのリストを開きます。

4. 「バージョン」フィールドでバージョン番号が自動生成されます。必要に応じてこのバージョン番号を変更します。

5. 「説明」フィールドにこのバージョンの詳細を入力します。

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

バージョンがチェック・インされると、オブジェクトのフラグがリセットされます。

オブジェクトの前のバージョンの表示

オブジェクトの前のバージョンを表示するには:

オブジェクトの編集時、「バージョン」タブには、チェック・イン済バージョン、チェック・イン日およびチェック・イン操作を実行したユーザーの名前のリストが表示されます。

バージョンのリストア

バージョンをリストアするには:

1. バージョンをリストアするオブジェクトを選択します。

2. 右クリックして、「バージョン」→「リストア」の順に選択します。

3. 「リストア」ダイアログに、既存のバージョンのリストが表示されます。

4. リストアするバージョンを選択し、「OK」をクリックします。

5. 「OK」をクリックしてリストア操作を確認します。

警告:

バージョンのリストアは元に戻せません。現在のオブジェクトは完全に消去され、選択したバージョンで置き換えられます。

バージョンの参照

バージョンを参照するには:

Oracle Data Integratorに組み込まれたバージョン・ブラウザというツールは、リポジトリに格納されたバージョンの表示に使用されます。

1. メイン・メニューから、「ODI」→「バージョン・ブラウザ」の順に選択します。

2. オブジェクトの「タイプ」ドロップダウン・リストおよびオブジェクトの「名前」ドロップダウン・リストを使用して、バージョン・リストを表示する対象オブジェクトをフィルタリングします。

「バージョン・ブラウザ」から、バージョンのリストア、XMLファイル形式でのバージョンのエクスポートまたは既存のバージョンの削除が可能です。

注意:

バージョン・ブラウザには、バージョン・ブラウザを開いたときに存在するバージョンが表示されます。「リフレッシュ」をクリックすると、それ以降に作成された新しいバージョンがすべて表示されます。

バージョン・ブラウザによるバージョンの削除

バージョン・ブラウザによりバージョンを削除するには:

1. バージョン・ブラウザを開きます。

2. 削除するバージョンを選択します。

3. 右クリックして、「削除」を選択します。

バージョンが削除されます。

バージョン・ブラウザによるバージョンのリストア

バージョン・ブラウザによりバージョンをリストアするには:

1. バージョン・ブラウザを開きます。

2. リストアするバージョンを選択します。

3. 右クリックして、「リストア」を選択します。

4. 「OK」をクリックしてリストア操作を確認します。

バージョンはリポジトリにリストアされます。

バージョン・ブラウザによるバージョンのエクスポート

バージョン・ブラウザによりバージョンをエクスポートするには:

この操作では、バージョンをリストアせずにファイルにエクスポートします。このエクスポート内容は別のリポジトリにインポートできます。

注意:

バージョンをエクスポートすると、バージョンに含まれるオブジェクトがエクスポートされ、バージョン情報はエクスポートされません。これにより、旧バージョンを実際にリポジトリにリストアせずにエクスポートできます。

1. バージョン・ブラウザを開きます。

2. エクスポートするバージョンを選択します。

3. 右クリックして、「エクスポート」を選択します。

4. 「エクスポート・ディレクトリ」を選択し、「エクスポート名」を指定します。既存のエクスポート・ファイルを確認なしで消去するには、「既存のファイルを警告なしで置換します」を選択します。

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

バージョンは指定の場所にエクスポートされます。

19.3 バージョン比較ツールの使用

Oracle Data Integratorには、包括的なバージョン比較ツールが用意されています。このグラフィカル・ツールは、オブジェクトの2種類のバージョンを表示して比較するためのものです。

バージョン比較ツールには、次の機能が備わっています。

- 比較結果を色分けし並べて表示: 比較結果は2つのペインに並べて表示され、2つの比較対象バージョンの差異が色分けされます。

- 比較結果をツリーに編成: 比較ツールのツリーでは、比較結果がノード・オブジェクトの階層リストに表示されます。ここではノードの開閉が同期化されます。

- PDF形式でのレポートの作成および印刷: バージョン比較ツールでは、オブジェクトの特定の2つのバージョンにおける差異をリストしたPDFレポートを生成および印刷できます。

- サポートされるオブジェクト: バージョン比較ツールでは、次のオブジェクトがサポートされています: プロジェクト、フォルダ、パッケージ、シナリオ、インタフェース、プロシージャ、ナレッジ・モジュール、順序、ユーザー関数、変数、モデル、モデル・フォルダおよびソリューション。

- 差異ビューア機能: このバージョン比較ツールは差異ビューアであり、参照目的でのみ提供されます。オブジェクト・バージョンの編集またはマージはサポートされていません。オブジェクトを編集したり、2つのバージョンの変更点をマージする必要がある場合は、対象オブジェクトに直接手動で変更を加える必要があります。

19.3.1 2つのバージョンの差異の表示

オブジェクトの特定の2つのバージョンにおける差異を表示するには、バージョン比較ツールを開きます。

バージョン比較ツールを開くには、次の3つの方法があります。

「プロジェクト」ツリーでオブジェクトを選択する方法

1. デザイナ・ナビゲータの「プロジェクト」ツリーで、バージョンを比較するオブジェクトを選択します。

2. オブジェクトを右クリックします。

3. 「バージョン」→「バージョンの比較」の順に選択します。

4. 「バージョンの比較」エディタで、オブジェクトの現在のバージョンの比較対象となるバージョンを選択します。

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

6. バージョン比較ツールが開きます。

オブジェクトの「バージョン」タブを使用する方法

1. デザイナ・ナビゲータで、バージョンを比較するオブジェクトのオブジェクト・エディタを開きます。

2. 「バージョン」タブに移動します。
「バージョン」タブには、このオブジェクトについて作成されたすべてのバージョンのリストが表示されます。このリストには、作成日、バージョンを作成したユーザーの名前および説明(指定した場合)も示されます。

3. <CTRL>キーを押したまま、比較する2つのバージョンを選択します。

4. 右クリックして「比較」を選択します。

5. バージョン比較ツールが開きます。

バージョン・ブラウザを使用する方法

1. メイン・メニューから、「ODI」→「バージョン・ブラウザ」の順に選択します。

2. 比較する2つのバージョンを選択します。比較できるのは同一オブジェクトのバージョンのみである点に注意してください。

3. 右クリックして「比較」を選択します。

4. バージョン比較ツールが開きます。

バージョン比較ツールでは、2つのバージョンの差異が示されます。左ペインには選択したオブジェクトの新しいバージョン、右ペインには旧バージョンが表示されます。

差異は色でハイライト表示されます。次の色コードが適用されます。

色

説明

白(デフォルト)

変更なし

赤

削除済

緑

追加済/新規

黄

オブジェクト変更済

橙

フィールド変更済(このフィールド内の値は変更されています)

注意:

いずれかのバージョンに1つのオブジェクトが存在しない場合(削除された場合など)、(空の値により)空のオブジェクトとして表されます。

19.3.2 比較フィルタの使用

オブジェクトのバージョンが作成された後は、バージョン比較ツールを様々な時点で使用できます。

バージョンの作成またはチェック・インについては、バージョンの使用のトピックで説明しています。

バージョン比較ツールには、比較結果をカスタマイズする2種類のフィルタが用意されています。

- オブジェクト・フィルタ: 対応するチェック・ボックス(「新規」、「削除済」、「変更」または変更なし、あるいはそのすべて)を選択して、新規追加オブジェクト、削除済オブジェクト、変更済オブジェクトまたは変更なしのオブジェクトのいずれを表示するか、あるいはそのすべてを表示するかを決定できます。

- フィールド・フィルタ: 対応するチェック・ボックス(「新規」、「削除済」、「変更」または変更なし、あるいはそのすべて)を選択して、新規追加フィールド、削除済フィールド、変更済フィールドまたは変更なしのフィールドのいずれを表示するか、あるいはそのすべてを表示するかを決定できます。

19.3.3 比較結果レポートの生成および印刷

デザイナ・ナビゲータで比較結果のレポートを生成するには:

1. バージョン比較ツールで、プリンタ・アイコンをクリックします。

2. 「レポート生成」ダイアログで、ニーズに応じて「オブジェクト」および「フィールド・フィルタ」を設定します。

3. 「PDFファイルの場所」フィールドで、レポートの書込み先となるファイル名を指定します。パスを指定しない場合、ファイルはPDFファイルのデフォルト・ディレクトリに書き込まれます。これはユーザー・プリファレンスです。

4. ファイルの生成後にこれを表示する場合、「ファイルを生成後に開きますか。」の横のボックスを選択します。
生成されたレポートをAcrobat® Reader(tm)で表示するには、「ファイルを生成後に開きますか。」を選択します。

注意:

生成されたレポートを表示するために、ユーザー・パラメータでAcrobat® Reader(tm)の場所を指定する必要があります。詳細は、付録B「ユーザー・パラメータ」を参照してください。

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

ステップ0で指定したファイルに、Adobe(tm) PDF形式のレポートが書き込まれます

19.4 ソリューションの使用

ソリューションは、包括的で一貫性のある、オブジェクトの相互依存したバージョンのセットです。他のオブジェクトと同様、ソリューションはバージョンとして指定の時間にチェック・インし、後日リストアできます。ソリューションはマスター・リポジトリに保存されます。1つのソリューションが、そのソリューションの要素と呼ばれるバージョンのグループを構築します。

ソリューションは相互参照を使用して自動的に構築されます。相互参照のスキャンによって、ソリューションには特定のオブジェクトに必要なすべての従属オブジェクトが自動的に組み込まれます。たとえば、ソリューションにプロジェクトを追加すると、このプロジェクトのインタフェースで使用されるすべてのモデルのバージョンが自動的にチェック・インされ、ソリューションに追加されます。ソリューションとの間で要素を手動で追加したり削除することもできます。

ソリューションは、デザイナ・ナビゲータおよびオペレータ・ナビゲータの「ソリューション」アコーディオンに表示されます。

次のオブジェクトをソリューションに追加できます。

- プロジェクト

- モデル、モデル・フォルダ

- シナリオ

- ロード計画

- グローバル変数、ナレッジ・モジュール、ユーザー関数および順序。

ソリューションを作成するには:

1. デザイナ・ナビゲータまたはオペレータ・ナビゲータの「ソリューション」ツールバー・メニューから、「新規ソリューション」を選択します。

2. ソリューション・エディタで、ソリューションの「名前」および「説明」を入力します。

3. 「ファイル」メニューから「保存」を選択します。

結果のソリューションは、要素を追加できる空のシェルです。

19.4.1 ソリューションにおける要素の使用

この項では、ソリューションの要素を使用する際に実行できる様々なアクションについて説明します。

要素の追加

要素を追加するには、ソリューション・エディタでツリーから「要素」リストにオブジェクトをドラッグします。Oracle Data Integratorでは相互参照がスキャンされ、この要素が正しく作用するために必要な「必須要素」が追加されます。追加対象オブジェクトが前回のバージョンのチェック・イン以降に挿入または更新されている場合、これらのオブジェクトの新規バージョンを作成するよう促されます。

要素の削除

ソリューションから要素を削除するには、「要素」リストで削除する要素を選択し、「削除」ボタンをクリックします。この要素はリストに表示されなくなります。オブジェクトの既存のチェック・イン済バージョンは影響されません。

オブジェクトのロールバック

オブジェクトをソリューションに格納されたバージョンにロールバックするには、リストアする要素を選択して「リストア」ボタンをクリックします。選択した要素はすべてソリューションのバージョンからリストアされます。

19.4.2 ソリューションの同期化

ソリューションを同期化すると、ソリューションに含まれていない必須要素が自動的に追加され、変更済の要素の新規バージョンが作成され、さらに不要な要素が自動削除されます。同期化プロセスでは、リポジトリに格納された要素(プロジェクト、モデルなど)によって、ソリューションのコンテンツが最新の状態になります。

ソリューションを同期化するには:

1. 同期化するソリューションを開きます。

2. 「要素」セクションのツールバー・メニューで「同期化」をクリックします。

3. Oracle Data Integratorでは相互参照がスキャンされます。相互参照によってソリューションが最新であることが示された場合、メッセージが表示されます。最新でない場合は、ソリューションとの間で追加または削除する要素のリストが表示されます。これらの要素は、プリンシパル要素(手動で追加されます)、必須要素(プリンシパル要素によって直接的または間接的に参照されます)および未使用の要素(プリンシパル要素では参照されません)にグループ化されます。

4. 「同意」ボックスを選択し、必須要素をバージョニングして含めるか、未使用の要素を削除します。

5. 「OK」をクリックしてソリューションを同期化します。新規バージョンの作成を必要とする要素について、バージョン作成の各ウィンドウが表示される場合があります。

ソリューション・コンテンツを最新の状態に保つには、ソリューションを定期的に同期化する必要があります。また、これはソリューション・バージョンをチェック・インする前に行う必要があります。

19.4.3 ソリューションのリストアとチェック・イン

ソリューション・バージョンをチェック・インおよびリストアする手順は、単一要素に使用する方法に類似しています。詳細は、19.2項「バージョンの使用」を参照してください。

オペレータ・ナビゲータまたはデザイナ・ナビゲータでソリューションをリストアし、シナリオを本番にインポートすることもできます。

ソリューションからシナリオをリストアするには:

1. ソリューションをダブルクリックし、ソリューション・エディタを開きます。

2. 「プリンシパル要素」または「必須要素」セクションからシナリオを選択します。プロジェクトおよびインタフェースなどのその他の要素はリストアできないので注意してください。

3. 「要素」セクションのツールバー・メニューで「リストア」をクリックします。

「シナリオ」タブでシナリオにアクセスできるようになりました。

バージョン・ブラウザを使用してシナリオをリストアすることもできます。バージョン・ブラウザによるバージョンのリストアを参照してください。

注意:

ソリューションをリストアする場合、ソリューション内の要素は自動的にリストアされません。これらの要素はソリューション・エディタから手動でリストアする必要があります。

19.4.4 ソリューションのインポートとエクスポート

ソリューションは、Oracle Data Integratorのその他のオブジェクトと同様にエクスポートおよびインポートできます。エクスポート/インポートは、マスター・リポジトリどうしのソリューションの転送に使用します。詳細は、第20章「エクスポート/インポート」を参照してください。

20 エクスポート/インポート

この章では、Oracle Data Integratorでエクスポートおよびインポート操作を管理する方法について説明します。また、インポートおよびエクスポートの概念についても説明します。

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

- 20.1項「インポートおよびエクスポートの概念」

- 20.2項「オブジェクトのエクスポートおよびインポート」

- 20.3項「リポジトリ・レベルのエクスポート/インポート」

- 20.4項「技術環境のエクスポート」

- 20.5項「ログのエクスポートおよびインポート」

20.1 インポートおよびエクスポートの概念

この項では、Oracle Data Integratorでのエクスポートおよびインポート操作の基本概念について説明します。エクスポートおよびインポート操作を実行するには、この項で説明する概念を明確に理解する必要があります。

20.1.1 内部識別子(ID)

エクスポートおよびインポート操作を実行する前に、Oracle Data Integratorにおける内部識別子(ID)の概念を詳細に理解することが重要です。

複数の作業リポジトリ間でオブジェクトの一意性を維持するために、ODIでは特殊なメカニズムを使用して、オブジェクト(テクノロジ、データ・サーバー、モデル、プロジェクト、統合インタフェース、KMなど)に対して一意のIDを生成します。Oracle Data Integratorでは、すべてのオブジェクトが内部IDによって識別されます。内部IDは各オブジェクトの「バージョン」タブに表示されます。

ODIのマスター・リポジトリと作業リポジトリは、それぞれ一意の内部IDによって識別されます。この3桁のリポジトリIDは、ODIインストールのすべての作業リポジトリ間で一意である必要があり、オブジェクトの内部IDを計算するのに使用されます。

オブジェクトの内部IDは、自動的に増分された数値にリポジトリIDの値を加えて計算されます(<UniqueNumber><RepositoryID>)。

リポジトリIDが3桁より短い場合、欠落している桁には「0」が補足されます。たとえば、リポジトリのIDが5の場合、このリポジトリ内のオブジェクトの内部IDは1005、2005、3005、1234567005などが可能です。同じリポジトリ内で作成されたすべてのオブジェクトは、最後の3桁が同じ(この例では005)になることに注意してください。

この内部IDは、リポジトリのオブジェクト・タイプに対して一意であり、そのオブジェクト・タイプのリポジトリ間でも一意です。これは、内部IDにリポジトリ固有のIDが含まれているためです。このメカニズムによって、次のことが可能になります。

- リポジトリ間のエクスポートやインポートを実行したときに、IDの競合を回避できます。

- 各オブジェクトの内部IDを調べると、そのオブジェクトの作成元を判別できます。内部IDの最後の3桁は常に、そのオブジェクトが作成されたリポジトリを参照します。

エクスポート/インポートの重要なルールとガイドライン

オブジェクトIDの構造により、次のガイドラインに従ってください。

- 各作業リポジトリには、異なる内部IDが常に必要です。同じIDの作業リポジトリには、同じオブジェクトが含まれるとみなされます。

- 内部IDが同一の2つのマスター/作業リポジトリの間でエクスポート/インポート操作を実行すると、インポート時にオブジェクトが上書きされる危険性があります。同じIDの2つのリポジトリ内のオブジェクトは同じとみなされます。

20.1.2 オブジェクト間の関係

Oracle Data Integratorでは、すべてのオブジェクトが、オブジェクト間の依存関係とともにリレーショナル・データベース・スキーマ(リポジトリ)に格納されます。これらのオブジェクトが格納されたリポジトリ表では、IDを使用した参照として依存関係が維持されます。ターゲット・データストアを統合インタフェースにドラッグ・アンド・ドロップすると、そのデータストアのIDへの参照のみがインタフェース・オブジェクトに格納されます。このインタフェースをエクスポートして、別の作業リポジトリにシノニム・モードでインポートする場合は、インポート先の作業リポジトリに同じIDのデータストアがすでに存在している必要があります。存在しない場合は、インポートによって欠落参照が作成されます。欠落参照を解決するには、インポートしたオブジェクトを直接変更するか、欠落しているオブジェクトをインポートします。

スマート・エクスポートおよびスマート・インポート機能またはソリューションを使用すると、一連の依存オブジェクトをエクスポートおよびインポートできます。

- エクスポート/インポートの実行時に依存関係を維持するには、ソリューションとバージョニングを組み合せて使用します。第19章「バージョン管理の使用」を参照してください。

- 依存関係が自動的に決定されるため、スマート・エクスポートおよびスマート・インポート機能を使用することをお薦めします。

このため、このデータストアを保持するモデルまたはサブモデルは、統合インタフェースをインポートする前に、シノニム・モードでエクスポートおよびインポートする必要があります。

作業リポジトリのオブジェクトとマスター・リポジトリのオブジェクト間にも依存関係があります。作業リポジトリ内での依存関係はIDベースです。これに対して、作業のオブジェクトとマスターのオブジェクト間の依存関係は、IDではなくコードに基づいています。これは、マスター・リポジトリのオブジェクトのコード(たとえば、マスターのOracleテクノロジのコードはORACLE)のみが作業リポジトリで参照されることを意味します。

適切な順序でオブジェクトをインポートすることが重要です。スマート・エクスポートおよびスマート・インポート機能を使用して、この依存関係を保持することもできます。表20-1では、統合インタフェースをシノニム・モードでインポートするときの統合インタフェースと他のオブジェクトの依存関係を示します。スマート・エクスポートでは、インタフェースをエクスポートすると、この依存オブジェクトが自動的に含まれることに注意してください。

表20-1 作業リポジトリおよびマスター・リポジトリでの統合インタフェースの依存関係

シノニム・モードでインポートする際の作業オブジェクトの他のオブジェクトへの依存関係

マスター・リポジトリのオブジェクトへの依存関係

- (親/子)フォルダ: このインタフェースを保持するフォルダは、最初にインポートする必要があります。

- (参照)モデル/サブモデル: インタフェースで参照されるデータストア定義を保持するモデル/サブモデルはすべて、最初にインポートする必要があります。列、データ型、主キー、外部キー(参照)、条件を含むデータストア定義は、エクスポートされたインタフェースで使用している定義と完全に同じである必要があります。

- (参照)インタフェース内で使用されるグローバル変数、順序および関数は、最初にインポートする必要があります。

- (参照)インタフェース内で使用されるローカル変数、順序および関数は、最初にインポートする必要があります。

- (参照)インタフェース内で参照されるナレッジ・モジュールは、最初にインポートする必要があります。

- (参照)現在のインタフェースでソースとして使用されるインタフェースは、最初にインポートする必要があります。

- テクノロジ・コード

- コンテキスト・コード

- 論理スキーマ名

- データ型コード

- インタフェースの最適化コンテキストの物理サーバー名

20.1.3 インポート・タイプ

Oracle Data Integratorでは、いくつかのモードを使用して、オブジェクト、トポロジまたはリポジトリをインポートできます。

この項の内容を慎重に検討して、使用するインポート・タイプを決定してください。

インポート・タイプ

説明

複製

このモードでは、(新しい内部IDが付いた)新規オブジェクトをターゲット・リポジトリに作成し、エクスポート・ファイルのすべての要素を挿入します。この新規オブジェクトのIDは、オブジェクトが作成されるリポジトリ(ターゲット・リポジトリ)のIDに基づきます。

エクスポートに含まれるオブジェクト間の依存関係(親/子関係など)は、新規の親IDに一致するように再計算されます。エクスポートに含まれないオブジェクトへの参照は再計算されません。

このモードは、「新しい」要素を挿入するためのモードであることに注意してください。

「複製」モードは、オブジェクトをターゲット・リポジトリに複製するために使用します。あるリポジトリから別のリポジトリにオブジェクトを転送する場合は、オブジェクトの新しいバーションが出荷される可能性や、更新を行う可能性を考慮して、3つのシノニム・モードを使用するほうが適切です。

このインポート・タイプは、マスター・リポジトリをインポートする場合は使用できません。既存のリポジトリのエクスポートを使用して新しいマスター・リポジトリを作成するには、マスター・リポジトリ・インポート・ウィザードを使用します。

シノニム・モードINSERT

同じオブジェクト(内部IDが同じ)をターゲット・リポジトリに挿入しようとします。元のオブジェクトIDは保持されます。

同じタイプと同じ内部IDのオブジェクトがすでに存在している場合は、何も挿入されません。

エクスポートに含まれるオブジェクト間の依存関係(親/子関係など)は保持されます。エクスポートに含まれないオブジェクトへの参照は再計算されません。

着信属性のいずれかが参照制約に違反している場合、インポート操作は中断され、エラー・メッセージが表示されます。

セッションをインポートできるのは、このモードのみです。

シノニム・モードUPDATE

リポジトリ内の同じオブジェクト(内部IDが同じ)を変更しようとします。

このインポート・タイプでは、ターゲット・リポジトリにすでに存在しているオブジェクトが、エクスポート・ファイルの内容で更新されます。

オブジェクトが存在しない場合、オブジェクトはインポートされません。

このインポート・タイプでは、リポジトリ存在するがエクスポート・ファイルに存在しない子オブジェクトは削除されません。たとえば、変数があるプロジェクトがターゲット・リポジトリにあり、このプロジェクトを変数がないものに置換する場合、このモードでは、プロジェクト名などは更新されますが、プロジェクト内の変数は削除されません。このような場合は、「シノニム・モードINSERT_UPDATE」を使用する必要があります。

シノニム・モードINSERT_UPDATE

ターゲット・リポジトリにIDが同一のODIオブジェクトが存在しない場合、このインポート・タイプでは、エクスポート・ファイルの内容で新規オブジェクトが作成されます。すでに存在しているオブジェクト(IDが同一)は更新され、新規オブジェクトは挿入されます。

既存の子オブジェクトは更新され、存在しない子オブジェクトは挿入されます。さらに、リポジトリ内に存在するがエクスポート・ファイルに存在しない子オブジェクトは削除されます。

エクスポートに含まれるオブジェクト間の依存関係(親/子関係など)は保持されます。エクスポートに含まれないオブジェクトへの参照は再計算されません。

子コンポーネントを含まずにエクスポートが実行された場合、このインポート・タイプはお薦めできません。このインポート・モードでは、既存のオブジェクトのサブコンポーネントがすべて削除されます。

置換のインポート

このインポート・タイプでは、ターゲット・リポジトリにすでに存在しているオブジェクトが、インポート・ファイルで指定したタイプと同じオブジェクト・タイプのオブジェクトに置換されます。

このインポート・タイプでのサポート対象は、シナリオ、ナレッジ・モジュール、アクションおよびアクション・グループのみで、すべての子オブジェクトが、インポートしたオブジェクトの子オブジェクトに置換されます。

「置換のインポート」モードを使用する際は、次のことに注意してください。

統合インタフェースで使用される別のODIコンポーネント(KMなど)でオブジェクトが現在使用されている場合、この関係はインポートによって影響を受けません。インタフェースではプロジェクト内の新しいKMが自動的に使用されます。

警告:

- ナレッジ・モジュールを別のナレッジ・モジュールで置換する場合、Oracle Data Integratorでは、古いモジュールのオプションと名前が一致するオプションを使用して新規モジュールのオプションが設定されます。新規オプションは、デフォルト値に設定されます。インタフェースでこれらの新規オプションの値を確認することをお薦めします。

- 本質的に異なるKMで現在のKMを置換すると、問題が発生する可能性があります。新規KMを使用してインタフェースの設計と実行を確認することをお薦めします。

20.1.4 インポート/エクスポートのヒント

この項では、インポートおよびエクスポート操作のヒントを説明します。

リポジトリID

一般的なルールとして、IDの競合を回避するために、常に各リポジトリに対して異なる内部IDを使用してください。スマート・インポート機能では、IDの競合が検証されることに注意してください。詳細は、20.2.7項「スマート・エクスポートおよびスマート・インポート」を参照してください。

エクスポート/インポート・レポート

エクスポートまたはインポートの操作が完了するたびにレポートが表示されます。このレポートを慎重に調べて、インポート・プロセスで発生したエラーを確認することをお薦めします。

このレポートには、実行したエクスポートまたはインポート操作に応じて、たとえば、次のような詳細が提供されます:

- インポート・タイプ

- インポートしたオブジェクト:インポートしたオブジェクトごとに、オブジェクト・タイプ、元のオブジェクト名、インポートで使用したオブジェクト名、元のID、およびインポート後に再計算された新しいIDが表示されます。

- 削除したオブジェクト:削除したオブジェクトごとに、オブジェクト・タイプ、オブジェクト名、および元のIDが表示されます。

- 作成した欠落参照: インポート後に検出された欠落参照のリストが表示されます。

- 修正した欠落参照: インポート中に修正した欠落参照のリストが表示されます。

スマート・エクスポートまたはスマート・インポート操作の完了後に表示されるレポートには、たとえば、無視されたオブジェクト、マージされたオブジェクト、上書きされたオブジェクトなど、エクスポートまたはインポート時のオブジェクトに対する処理内容が表示されます。

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

欠落参照

欠落参照を回避するために、スマート・エクスポートおよびスマート・インポート機能またはソリューションを使用して依存関係を管理してください。詳細は、20.2.7項「スマート・エクスポートおよびスマート・インポート」および19.4項「ソリューションの使用」を参照してください。

インポート・タイプ

インポート・タイプは慎重に選択してください。詳細は、20.1.3項「インポート・タイプ」を参照してください。

20.2 オブジェクトのエクスポートおよびインポート

Oracle Data Integratorオブジェクトのエクスポートおよびインポートは、異なるリポジトリ間でのオブジェクトの転送を意味します。

Oracle Data Integratorオブジェクトをエクスポートするときは、XMLエクスポート・ファイルが作成されます。20.1.2項「オブジェクト間の関係」で説明するように、ODIオブジェクトには依存関係があります。この依存関係はXMLエクスポート・ファイルにエクスポートされます。

このXMLファイルの内容は、使用するエクスポート方法によって異なります。

- 子コンポーネントを伴うオブジェクトのエクスポート

- 子コンポーネントを伴わないオブジェクトのエクスポート

どちらを選択するかは目的によって決まります。部分的なエクスポートが必要な場合は、子コンポーネントを伴わないエクスポートを使用します。

複数のODIオブジェクトのエクスポート機能は、オブジェクトの同じセットを定期的にエクスポートする場合に便利です。

エクスポートを実行した後は、要件に適したインポート計画を選択することが非常に重要です。

スマート・エクスポートおよびスマート・インポート機能は、軽量で一貫したエクスポートおよびインポートのメカニズムです。この機能は、単一または複数のODIオブジェクトのエクスポートおよびインポートをサポートします。エクスポートまたはインポート時に発生する一般的な多くの問題を回避するために、この機能を使用することをお薦めします。

この項の内容は次のとおりです。

- 20.2.1項「子コンポーネントを伴うオブジェクトのエクスポート」

- 20.2.2項「子コンポーネントを伴わないオブジェクトのエクスポート」

- 20.2.3項「部分的なエクスポート/インポート」

- 20.2.4項「1つのODIオブジェクトのエクスポート」

- 20.2.5項「複数のODIオブジェクトのエクスポート」

- 20.2.6項「オブジェクトのインポート」

- 20.2.7項「スマート・エクスポートおよびスマート・インポート」

20.2.1 子コンポーネントを伴うオブジェクトのエクスポート

これは、オブジェクトをエクスポートする際の最も一般的なオプションです。このオプションでは、現在のオブジェクトとともにそのすべてのサブコンポーネントもエクスポートできます。

オブジェクトを子コンポーネントとともにエクスポートすると、すべてのコンテナ依存オブジェクト(直接の親/子関係があるオブジェクト)もエクスポートされます。参照先オブジェクトはエクスポートされません。

たとえば、プロジェクトとその子コンポーネントをエクスポートする場合、エクスポートには、プロジェクト定義とともに、そのプロジェクトに含まれるすべてのオブジェクト(フォルダ、インタフェース、プロシージャ、パッケージ、ナレッジ・モジュール、変数、順序、関数など)が含まれます。ただし、20.1.2項「オブジェクト間の関係」ですでに説明したように、データストアや列など、プロジェクトの外部にある参照先の依存オブジェクトはエクスポートに含まれません。エクスポートされるのは、このようなオブジェクトの数値ID参照のみです。

20.2.2 子コンポーネントを伴わないオブジェクトのエクスポート

このオプションは、インポート・プロセスの制御が必要な特殊な状況の場合に便利です。このオプションでは、オブジェクトの最上位レベルの定義のみがエクスポートされ、そのサブオブジェクトはエクスポートされません。

たとえば、子を伴わずにモデルをエクスポートした場合、このモデルを新規リポジトリにインポートすると、インポートにはモデル定義のみが含まれ、基礎となるサブモデルやデータストアは含まれません。

20.2.3 部分的なエクスポート/インポート

数千のインタフェースを含む大規模なプロジェクトから、一部のインタフェースのみを別の作業リポジトリにエクスポートする場合は、プロジェクト全体をエクスポートしてからインポートするか、または、次に説明するように部分的なエクスポート/インポートを手動で実行できます。

1. プロジェクトのサブ項目で参照されるすべてのモデルをエクスポートし、シノニム・モードで新規リポジトリにインポートしてモデルのIDを保持します。

2. 子を伴わずにプロジェクトをエクスポートし、シノニム・モードでインポートします。これにより、新規リポジトリに空のプロジェクトが作成されます(IDはソースと同じ)。

3. 任意の第1レベルのフォルダを子を伴わずにエクスポートし、シノニム・モードでインポートします。空のフォルダが新規リポジトリに作成されます。

4. エクスポートするすべてのオブジェクトで参照されるマーカー、ナレッジ・モジュール、変数、順序などをすべてエクスポートし、シノニム・モードでインポートします。シノニム・モードまたは複製モードの詳細は20.1.3項「インポート・タイプ」を参照し、ナレッジ・モジュールをシノニム・モードでインポートする際の特別な注意についてはオブジェクトIDへの影響に関する項を参照してください。

5. 最後に、目的のインタフェースをエクスポートし、シノニム・モードで新規リポジトリにインポートします。

20.2.4 1つのODIオブジェクトのエクスポート

1つのOracle Data Integratorオブジェクトをエクスポートすることは、1つの単独のODIオブジェクトをあるリポジトリから別のリポジトリに転送することを意味します。

Oracle Data Integratorからオブジェクトをエクスポートするには:

1. 適切なOracle Data Integratorナビゲータで、エクスポートするオブジェクトを選択します。

2. オブジェクトを右クリックし、「エクスポート」を選択します。
このメニュー項目が表示されない場合、このタイプのオブジェクトにエクスポート機能はありません。

3. 「エクスポート」ダイアログで、表20-2の説明に従ってエクスポート・パラメータを設定します。

表20-2 オブジェクトのエクスポート・パラメータ

プロパティ

説明

エクスポート・ディレクトリ

エクスポート・ファイルが作成されるディレクトリ。

エクスポート名

エクスポートに付けられる名前。

子コンポーネント・エクスポート

このオプションを選択すると、エクスポートするオブジェクトにリンクしているオブジェクトもエクスポートされます。これらのオブジェクトは、ツリー表示では、エクスポートしたオブジェクトの下に表示されます。このオプションは選択されたままにしておくことをお薦めします。詳細は、子コンポーネントを伴うオブジェクトのエクスポートを参照してください。

ロード計画をエクスポートする場合は、このオプションを選択してもシナリオはエクスポートされません。

既存のファイルを警告なしで置換します

このオプションを選択すると、既存のファイルはエクスポートのファイルによって上書きされます。エクスポート・ファイルと同じ名前のファイルがすでに存在している場合、そのファイルはエクスポート・ファイルによって上書きされます。

拡張オプション

この一連のオプションを使用すると、XML出力ファイル形式をパラメータ化できます。デフォルト値のままにしておくことをお薦めします。

XMLバージョン

エクスポート・ファイルに指定されるXMLバージョン。XMLファイル・ヘッダーのパラメータxml versionの値です。

<?xml version="1.0" encoding="ISO-8859-1"?>

キャラクタ・セット

エクスポート・ファイルに指定するエンコーディング。XMLファイル・ヘッダーのパラメータencodingの値です。

<?xml version="1.0" encoding="ISO-8859-1"?>

Javaキャラクタ・セット

ファイル生成に使用されるJavaキャラクタ・セット。

少なくとも「エクスポート名」は指定する必要があります。

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

オブジェクトがXMLファイルとして指定した場所にエクスポートされます。

20.2.5 複数のODIオブジェクトのエクスポート

「複数オブジェクトをエクスポート」アクションを使用して、一度に1つ以上のオブジェクトをエクスポートできます。これにより、複数のODIオブジェクトを単一のzipファイルまたはディレクトリにエクスポートしたり、オブジェクトの既存のリストを再利用してエクスポートすることができます。

複数のオブジェクトをエクスポートおよびインポートするためのさらに強力なメカニズムとして、ソリューション、およびスマート・エクスポートおよびスマート・インポートがあります。詳細は、19.4項「ソリューションの使用」または20.2.7項「スマート・エクスポートおよびスマート・インポート」を参照してください。

複数のオブジェクトを一度にエクスポートするには:

1. デザイナ、トポロジ、セキュリティまたはオペレータ・ナビゲータのツールバー・メニューから「エクスポート」を選択します。

2. 「選択項目のエクスポート」ダイアログで、「複数オブジェクトをエクスポート」を選択します。

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

4. 「複数オブジェクトをエクスポート」ダイアログで、表20-2の説明に従ってエクスポート・パラメータを指定します。
オブジェクトは、.xmlファイルにして直接ディレクトリにエクスポートするか、.xmlファイルが含まれるzipファイルにしてエクスポートします。zipファイルを生成する場合は、「ZIPファイルとして保存」を選択し、「ZIPファイル名」フィールドにzipファイルの名前を入力します。

5. エクスポートするオブジェクトのリストを次のように指定します。

1. Oracle Data Integratorのナビゲータから複数のオブジェクトをエクスポート・リストにドラッグ・アンド・ドロップします。異なるナビゲータから複数のオブジェクトを一度にエクスポートできることに注意してください。

2. 「オブジェクトのリストをロード」をクリックして、以前に保存したオブジェクトのリストをロードします。これは、オブジェクトの同じリストを定期的にエクスポートする場合に便利です。

3. オブジェクトの現在のリストを保存するには、「エクスポート・リストを保存」をクリックしてファイル名を指定します。ファイルがすでに存在している場合は、警告なしに上書きされます。

6. 「OK」をクリックしてエクスポートを開始します。

複数のオブジェクトを一度にインポートするには、ソリューションまたはスマート・インポートを使用する必要があります。詳細は、19.4項「ソリューションの使用」および20.2.7項「スマート・エクスポートおよびスマート・インポート」を参照してください。

20.2.6 オブジェクトのインポート

インポートおよびエクスポートによって、オブジェクト(インタフェース、ナレッジ・モジュール、モデルなど)をあるリポジトリから別のリポジトリに転送できます。

ナレッジ・モジュールをインポートする場合は、インポート計画を慎重に選択してください(ナレッジ・モジュールの有効範囲に応じてインポート計画が異なる可能性があります)。詳細は、9.3.1項「プロジェクトおよびグローバル・ナレッジ・モジュール」を参照してください。

この項の内容は次のとおりです。

- ODIオブジェクトのインポート

- 11g環境への10gオブジェクトのインポート

- プロジェクトKMのインポート

- 置換モードでのKMのインポート

- グローバル・ナレッジ・モジュールのインポート

ODIオブジェクトのインポート

Oracle Data Integratorのオブジェクトをインポートするには:

1. ナビゲータで、オブジェクトのインポート先となるオブジェクトまたはオブジェクト・ノードを選択します。

2. オブジェクトを右クリックし、「インポート」を選択して、インポートするオブジェクトのタイプを選択します。

3. 「インポート」ダイアログで、次の手順を実行します。

1. 「インポート・タイプ」の値を選択します。詳細は、20.1.3項「インポート・タイプ」を参照してください。

2. 「ファイル・インポート・ディレクトリ」を入力します。

3. インポートするファイル(1つまたは複数)をリストから選択します。

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

XML形式のファイルが作業リポジトリにインポートされ、インポートしたオブジェクトがOracle Data Integratorのナビゲータに表示されます。

オブジェクトのインポート先となる親またはノードは、使用するインポート・タイプによって異なります。「複製」モードを使用すると、オブジェクトは、インポート・オプションが選択された場所にインポートされます。シノニム・モードでのインポートの場合、オブジェクトは、インポート・ファイルでオブジェクトの親IDによって指定された親の下にインポートされます。

11g環境への10gオブジェクトのインポート

バージョニング可能な10gオブジェクトは、11g ODI環境にインポートすることができます。

次のオブジェクトはバージョンとしてチェック・インでき、インポートできます。

- プロジェクト、フォルダ

- パッケージ、シナリオ

- インタフェース、プロシージャ、ナレッジ・モジュール

- 順序、ユーザー関数、変数

- モデル、モデル・フォルダ

- ソリューション

- ロード計画

プロジェクトKMのインポート

Oracle Data Integratorプロジェクトにナレッジ・モジュールをインポートするには:

1. デザイナ・ナビゲータで、KMをインポートするプロジェクトを選択します。

2. プロジェクトを右クリックし、「インポート」→「ナレッジ・モジュールのインポート」の順に選択します。

3. 「インポート」ダイアログで、次の手順を実行します。

1. 「インポート・タイプ」を「複製」に設定します。詳細は、20.1.3項「インポート・タイプ」を参照してください。

2. 「ファイル・インポート・ディレクトリ」を入力します。

3. インポートするナレッジ・モジュール・ファイル(1つまたは複数)をリストから選択します。

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

ナレッジ・モジュールが作業リポジトリにインポートされ、プロジェクトの「ナレッジ・モジュール」ノードの下に表示されます。

置換モードでのKMのインポート

通常、ナレッジ・モジュールは、「複製」モードで新規プロジェクトにインポートされます。

グローバルKMまたはプロジェクトのKMを別のKMで置換し、その新しいKMをすべてのインタフェースで自動的に使用する場合は、「置換のインポート」モードを使用する必要があります。

ナレッジ・モジュールを置換モードでインポートするには:

1. 置換するナレッジ・モジュール・ファイルを選択します。

2. ナレッジ・モジュールを右クリックし、「置換のインポート」を選択します。

3. 「オブジェクトの置換」ダイアログで、ナレッジ・モジュール・エクスポート・ファイルを指定します。

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

現在のナレッジ・モジュールが新規ナレッジ・モジュールで置換されます。

警告:

Oracle Data Integratorでナレッジ・モジュールを別のナレッジ・モジュールで置換すると、古いモジュールのオプションと一致するオプション名を使用して新規モジュールのオプションが設定されます。新規オプションは、デフォルト値に設定されます。

インタフェースでこれらの新規オプションの値を確認するとともに、新規KMを使用してインタフェースの設計と実行も確認することをお薦めします。

詳細は、20.1.3項「インポート・タイプ」で置換のインポート・モードの説明を参照してください。

グローバル・ナレッジ・モジュールのインポート

Oracle Data Integratorにグローバル・ナレッジ・モジュールをインポートするには:

1. ナビゲータの「グローバル・オブジェクト」アコーディオンで「グローバル・ナレッジ・モジュール」ノードを選択します。

2. 右クリックして「ナレッジ・モジュールのインポート」を選択します。

3. 「インポート」ダイアログで、次の手順を実行します。

1. 「インポート・タイプ」の値を選択します。詳細は、20.1.3項「インポート・タイプ」を参照してください。

2. 「ファイル・インポート・ディレクトリ」を入力します。

3. インポートするファイル(1つまたは複数)をリストから選択します。

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

すべてのプロジェクトにグローバルKMが表示されます。

20.2.6.1 オブジェクトのインポート

インポートおよびエクスポートによって、オブジェクト(インタフェース、ナレッジ・モジュール、モデルなど)をあるリポジトリから別のリポジトリに転送できます。ナレッジ・モジュールをインポートする場合は、インポート計画を慎重に選択してください(ナレッジ・モジュールの有効範囲に応じてインポート計画が異なる可能性があります)。詳細は、9.3.1項「プロジェクトおよびグローバル・ナレッジ・モジュール」を参照してください。

この項の内容は次のとおりです。

- ODIオブジェクトのインポート

- プロジェクトKMのインポート

- 置換モードでのKMのインポート

- グローバル・ナレッジ・モジュールのインポート

ODIオブジェクトのインポート

Oracle Data Integratorのオブジェクトをインポートするには:

1. ナビゲータで、オブジェクトのインポート先となるオブジェクトまたはオブジェクト・ノードを選択します。

2. オブジェクトを右クリックし、「インポート」を選択して、インポートするオブジェクトのタイプを選択します。

3. 「インポート」ダイアログで、次の手順を実行します。

1. 「インポート・タイプ」の値を選択します。詳細は、20.1.3項「インポート・タイプ」を参照してください。

2. 「ファイル・インポート・ディレクトリ」を入力します。

3. インポートするファイル(1つまたは複数)をリストから選択します。

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

XML形式のファイルが作業リポジトリにインポートされ、インポートしたオブジェクトがOracle Data Integratorのナビゲータに表示されます。

オブジェクトのインポート先となる親またはノードは、使用するインポート・タイプによって異なります。「複製」モードを使用すると、オブジェクトは、インポート・オプションが選択された場所にインポートされます。シノニム・モードでのインポートの場合、オブジェクトは、インポート・ファイルでオブジェクトの親IDによって指定された親の下にインポートされます。

プロジェクトKMのインポート

Oracle Data Integratorプロジェクトにナレッジ・モジュールをインポートするには:

1. デザイナ・ナビゲータで、KMをインポートするプロジェクトを選択します。

2. プロジェクトを右クリックし、「インポート」→「ナレッジ・モジュールのインポート」の順に選択します。

3. 「インポート」ダイアログで、次の手順を実行します。

1. 「インポート・タイプ」を「複製」に設定します。詳細は、20.1.3項「インポート・タイプ」を参照してください。

2. 「ファイル・インポート・ディレクトリ」を入力します。

3. インポートするナレッジ・モジュール・ファイル(1つまたは複数)をリストから選択します。

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

ナレッジ・モジュールが作業リポジトリにインポートされ、プロジェクトの「ナレッジ・モジュール」ノードの下に表示されます。

置換モードでのKMのインポート

通常、ナレッジ・モジュールは、「複製」モードで新規プロジェクトにインポートされます。

グローバルKMまたはプロジェクトのKMを別のKMで置換し、その新しいKMをすべてのインタフェースで自動的に使用する場合は、「置換のインポート」モードを使用する必要があります。

ナレッジ・モジュールを置換モードでインポートするには:

1. 置換するナレッジ・モジュール・ファイルを選択します。

2. ナレッジ・モジュールを右クリックし、「置換のインポート」を選択します。

3. 「オブジェクトの置換」ダイアログで、ナレッジ・モジュール・エクスポート・ファイルを指定します。

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

現在のナレッジ・モジュールが新規ナレッジ・モジュールで置換されます。

警告:

Oracle Data Integratorでナレッジ・モジュールを別のナレッジ・モジュールで置換すると、古いモジュールのオプションと一致するオプション名を使用して新規モジュールのオプションが設定されます。新規オプションは、デフォルト値に設定されます。

インタフェースでこれらの新規オプションの値を確認するとともに、新規KMを使用してインタフェースの設計と実行も確認することをお薦めします。

詳細は、20.1.3項「インポート・タイプ」で置換のインポート・モードの説明を参照してください。

グローバル・ナレッジ・モジュールのインポート

Oracle Data Integratorにグローバル・ナレッジ・モジュールをインポートするには:

1. ナビゲータの「グローバル・オブジェクト」アコーディオンで「グローバル・ナレッジ・モジュール」ノードを選択します。

2. 右クリックして「ナレッジ・モジュールのインポート」を選択します。

3. 「インポート」ダイアログで、次の手順を実行します。

1. 「インポート・タイプ」の値を選択します。詳細は、20.1.3項「インポート・タイプ」を参照してください。

2. 「ファイル・インポート・ディレクトリ」を入力します。

3. インポートするファイル(1つまたは複数)をリストから選択します。

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

すべてのプロジェクトにグローバルKMが表示されます。

20.2.7 スマート・エクスポートおよびスマート・インポート

壊れているリンク、IDの競合など、エクスポートまたはインポート時に発生する一般的な多くの問題を回避するために、スマート・エクスポートおよびスマート・インポート機能を使用することをお薦めします。スマート・エクスポートおよびスマート・インポート機能は、様々な優れた機能を提供する軽量で一貫したエクスポートおよびインポートのメカニズムです。

スマート・エクスポートは、オブジェクトとそのオブジェクト依存関係すべてを自動的にエクスポートします。一貫したリポジトリのサブセットを作成している間、すべてのオブジェクト依存関係はOracle Data Integratorによって自動的に管理されるため、スマート・エクスポートは、一貫した軽量のオブジェクト・セットをリポジトリ間で移動する場合や、変更された一連のオブジェクトのみを含める場合(たとえば、パッチを適用する場合)に特に便利です。

スマート・インポートでは、次が提供されています:

- インポート対象オブジェクトとリポジトリ内にすでにあるオブジェクト間の自動化されたカスタマイズ可能なオブジェクト照合ルール

- 一致するオブジェクトがリポジトリにあった場合にインポート対象オブジェクトに適用する一連のアクション

- スマート・インポート時に検出された壊れているリンクや競合ごとにデフォルトで使用するソリューションを提示する、プロアクティブな問題検出と解決策

20.2.7.1 スマート・エクスポートの実行

スマート・エクスポートを実行するには:

1. デザイナ、トポロジ、セキュリティまたはオペレータ・ナビゲータのツールバー・メニューから「エクスポート」を選択します。

2. 「選択項目のエクスポート」ダイアログで、「スマート・エクスポート」を選択します。

注意:

このオプションは、作業リポジトリに接続している場合にのみ使用可能です。

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

4. 「スマート・エクスポート」ダイアログで、エクスポート・パラメータを次のように指定します:

1. 「エクスポート名」フィールドに、エクスポートの名前を入力します(必須)。デフォルトはSmartExport.xmlです。

2. オブジェクトは、ディレクトリの単一の.xmlファイルに直接にエクスポートされるか、単一の.xmlファイルを格納したzipファイルとしてエクスポートされます。zipファイルを生成する場合は、「ZIPファイルとして保存」を選択し、「ZIPファイル名」フィールドにzipファイルの名前を入力します。

3. オプションで、「エンコーディング・オプション」セクションでXML出力ファイル形式をカスタマイズします。デフォルト値のままにしておくことをお薦めします。

プロパティ

説明

XMLキャラクタ・セット

エクスポート・ファイルに指定するエンコーディング。XMLファイル・ヘッダーのパラメータencodingの値です。

<?xml version="1.0" encoding="ISO-8859-1"?>

Javaキャラクタ・セット

ファイル生成に使用されるJavaキャラクタ・セット。

4. 「依存関係」セクションで、Oracle Data Integratorのナビゲータから左側の「選択したオブジェクト」リストに、スマート・エクスポートに追加するオブジェクトをドラッグ・アンド・ドロップします。異なるナビゲータから複数のオブジェクトを一度にエクスポートできることに注意してください。
エクスポート対象オブジェクトが、サポートするために必要な関連するすべての親オブジェクトおよび子オブジェクトとともにツリーに表示されます。

必要に応じて、この手順を繰り返します。

注意:

- エクスポートにショートカットが含まれている場合は、ショートカットをマテリアライズするかどうかを指定します。「いいえ」を選択すると、ショートカットとベース・オブジェクトの両方がエクスポートされます。

- 太字のオブジェクト名は、このオブジェクトがスマート・エクスポートに明示的に追加されたことを示します。削除できるのは、太字で表示されたオブジェクトのみです。オブジェクトを削除すると、削除したオブジェクトの子オブジェクトおよび依存オブジェクトも削除されます。明示的に追加したオブジェクトの子オブジェクトも太字で表示され、削除できることに注意してください。エクスポート・ツリーからオブジェクトを削除するには、オブジェクトを右クリックして「オブジェクトの削除」を選択します。削除したオブジェクトが別のオブジェクトの依存オブジェクトである場合、ツリーにはそのまま残りますが太字ではなくなります。

- グレー表示されているオブジェクト名は、このオブジェクトがエクスポートされない依存オブジェクト(テクノロジなど)であることを示します。

5. オプションで、エクスポートするオブジェクトのリストを変更します。単一のオブジェクトの削除、すべてのオブジェクトの削除、リリース・タグによるオブジェクトの追加、およびショートカットの追加を実行できます。詳細は、エクスポートするオブジェクトのリストの変更を参照してください。

6. ショートカットなどの相互参照オブジェクトがある場合は、右側の「依存関係」リストに表示されます。親オブジェクトは「使用」ノードに表示されなくなり、子オブジェクトは「使用者」ノードに表示されなくなります。

5. 「エクスポート」をクリックして、エクスポート・プロセスを開始します。

スマート・エクスポートにより、「選択したオブジェクト」リストのすべてのオブジェクトが含まれている単一のファイルが生成されます。このエクスポート・ファイルは、スマート・インポートの入力ファイルとして使用できます。詳細は、20.2.7.2項「スマート・インポートの実行」を参照してください。

スマート・エクスポートの結果は、スマート・エクスポート・レポートで確認できます。

「スマート・エクスポート」ツールバー

「スマート・エクスポート」ツールバーでは、エクスポートするオブジェクトを管理したり、依存関係を表示するためのツールが提供されます。図20-3は、様々なツールバー・コンポーネントの詳細を示しています。

表20-3 「スマート・エクスポート」ツールバー

アイコン

名前

説明

検索

「選択したオブジェクト」リストまたは「依存関係」リストでオブジェクトを検索します。

すべて展開

「選択したオブジェクト」リストまたは「依存関係」リストのすべてのツリー・ノードを展開します。

すべて縮小

「選択したオブジェクト」リストまたは「依存関係」リストのすべてのツリー・ノードを閉じます。

すべてクリア

リストからすべてのオブジェクトを削除します。警告: リリース・タグとマテリアライズの選択も削除されます。

リリース・タグによりオブジェクトを追加

「選択したオブジェクト」リストにすでにあるオブジェクトと同じリリース・タグのオブジェクトをすべて追加します。

エクスポートするオブジェクトのリストの変更

エクスポートするオブジェクトのリストを変更する場合は、次のアクションを実行できます:

- リストから1つのオブジェクトを削除する
「選択したオブジェクト」リストから削除できるのは、スマート・エクスポートに明示的に追加したオブジェクト(太字のオブジェクト)のみです。

1つのオブジェクトを削除するには:

1. 「選択したオブジェクト」リストで、削除するオブジェクトを選択します。

2. 右クリックして「オブジェクトの削除」を選択します。

オブジェクトおよびその依存関係が「選択したオブジェクト」リストから削除され、スマート・エクスポートの対象外となります。

注意:

削除するオブジェクトがエクスポートする別のオブジェクトの依存オブジェクトである場合、そのオブジェクトはリストに残りますが太字ではなくなります。

- リストからすべてのオブジェクトを削除する
「選択したオブジェクト」リストからすべてのオブジェクトを削除するには、「スマート・エクスポート」ツールバーの「すべてクリア」を選択します。

注意:

このアクションを実行すると、リリース・タグとマテリアライズの選択も削除されます。

- リリース・タグを使用してオブジェクトを追加する
特定のリリースのフォルダまたはモデル・フォルダを追加するには:

1. 「スマート・エクスポート」ツールバーの「リリース・タグによりオブジェクトを追加」を選択します。
「リリース・タグ選択」ダイアログが開きます。

2. 「リリース・タグ選択」ダイアログで、「リリース・タグ」リストからリリース・タグを選択します。このリリース・タグのすべてのオブジェクトがスマート・エクスポートに追加されます。これらのオブジェクトをスマート・エクスポートに個別に追加する必要はありません。
「リリース・タグ選択」ダイアログに、スマート・エクスポートにすでに追加されているリリース・タグのリストが表示されます。

3. 「OK」をクリックし、選択したリリース・タグのオブジェクトをスマート・エクスポートに追加します。

「選択したオブジェクト」リストのオブジェクト名の後にリリース・タグの名前が表示されます。

注意:

リリース・タグがある「選択したオブジェクト」リストにフォルダまたはモデル・フォルダを追加する場合は、「確認」ダイアログで「OK」をクリックして、指定のリリースの全オブジェクトをスマート・エクスポートに自動的に追加するように選択できます。

- ショートカットを追加する
スマート・エクスポートにショートカットを追加する場合は、ショートカットのマテリアライズを選択できます。スマート・エクスポートに追加したショートカットをマテリアライズしないように選択すると、ショートカットおよびそのすべての依存オブジェクト(ベース・オブジェクトなど)がエクスポートされます。ショートカットをマテリアライズするように選択すると、ショートカットがマテリアライズされ、ショートカットを介して参照されるベース・オブジェクトは対象外となります。

20.2.7.2 スマート・インポートの実行

スマート・インポートを実行するには:

1. デザイナ、トポロジ、セキュリティまたはオペレータ・ナビゲータのツールバー・メニューから「インポート...」を選択します。

2. 「選択項目のインポート」ダイアログで、「スマート・インポート」を選択します。

3. 「OK」をクリックします。
スマート・インポート・ウィザードが開きます。

4. 「ステップ1 - ファイルの選択」(最初の画面)で、インポート設定を次のように指定します:

1. 「ファイルの選択」フィールドに、インポートするスマート・エクスポート・ファイルの場所を入力します。

2. オプションで、「レスポンス・ファイル」フィールドからレスポンス・ファイルを選択し、すべてのフィールドをプリセットして前のスマート・インポート・ウィザードを再実行するようにします。

3. 「次>」をクリックして、スマート・インポート・ウィザードの次のステップに移動します。
Oracle Data Integratorにより、インポートする潜在的な各オブジェクトと一致するオブジェクトがリポジトリに含まれているかどうかを検証する照合プロセスが起動されます。

5. 「ステップ2 - インポート・アクション」(2番目の画面)で、照合プロセスの結果を確認し、発生した問題を修正します。この画面の1行目に、検出された問題の件数が表示されます。
スマート・インポート・ウィザードにより、各フィールドのデフォルト値が提示されることに注意してください。

1. オブジェクト照合の詳細セクションで「インポート・オブジェクト」列のノードを展開し、このスマート・インポートでインポートできるオブジェクトに移動します。

2. 「アクション」列で、インポート操作時にオブジェクトに対して実行するアクションを選択します。表20-4に、使用可能な値を示します。

表20-4 インポート時のアクション

アクション

説明

マージ

コンテナの場合は、ターゲット・コンテナをソース・コンテナで上書きし、マージするために子をループすることを意味します。それぞれの子には異なるアクションを指定できます。インポート・ファイルに存在しない子のFCOは削除されません。「マージ」アクションは、データストアに対しても使用でき、データストアはSCOレベルでマージされます。

上書き

ターゲット・オブジェクトをソース・オブジェクトで上書きします。インポート後に残っている子オブジェクトは、ソース・オブジェクトからインポートされた子オブジェクトです。これは、すべての子オブジェクトにあてはまります(あるプロジェクトで別のプロジェクトを上書きすると、そのプロジェクトのすべてのフォルダが置換され、余分なフォルダは削除されます)。

コピーの作成

名前/ID/コードが同じ既存のオブジェクトとの競合を回避するために、必要なフィールド名の変更やフィールドの変更を含めてソース・オブジェクトを作成します。このアクションにより、インポートされるオブジェクトとの間の一貫性および関係が維持されます。

再使用

オブジェクトはインポートしませんが、そのオブジェクトに関連するすべてのオブジェクトをインポートし、ターゲット・オブジェクトにリンクする機能があります。基本的に、このアクションは一致するターゲット・オブジェクトでソース・オブジェクトを上書きすることに相当します。

無視

ソース・オブジェクトを処理しません。

3. 「リポジトリ・オブジェクト」列で、必要なリポジトリ・オブジェクトを選択します。これは、インポート・オブジェクトに最も一致するリポジトリ・オブジェクトです。

4. 照合プロセスで問題(壊れているリンク、コードの競合など)が検出された場合は、「問題」列に警告アイコンが表示されます。問題の詳細は、問題の詳細セクションに表示されます。

注意:

クリティカルな問題をすべて修正するまで、「次>」ボタンは使用できません。

5. 問題の詳細セクションの表には、照合プロセスで検出された問題のリストが表示されます。問題を修正するには、「アクション」列で、実行するアクションを選択します。表20-5で、実行可能なアクションについて説明します。

表20-5 問題を修正するために実行可能なアクション

アクション

説明

無視

クリティカルな問題に対しては使用できません

変更

IDの衝突の場合、新しい値は常にNEW_IDです。名前またはコードの衝突が検出されている場合は、「修正」フィールドに新しい値を指定します。

変更しない

値が変更された問題の場合は、一致しているターゲット・オブジェクトの値が保持されます。

リンクの修正

壊れているリンクの場合は、「修正」フィールドで「検索」をクリックします。

注意:

Oracle Data Integratorには、問題ごとにデフォルトで使用するソリューションが用意されています。ただし、インポート・アクションに対する選択によっては、実際のインポート・プロセスでも欠落参照となる可能性があります。

6. 「修正」列で、修正を指定します。たとえば、壊れているリンクの場合は、「検索」をクリックし、「壊れたリンク・ターゲット・オブジェクト選択」ダイアログでターゲット・オブジェクトを選択します。

7. 「次>」をクリックして、スマート・インポート・ウィザードの次のステップに移動します。

6. 「ステップ3 - サマリー」(3番目の画面)で、インポート・ファイル名および発生した問題を確認します。

1. 「ファイルの選択」フィールドで、インポート・ファイル名を確認します。

2. スマート・インポートに未解決の警告が存在する場合は、この画面に表示されます。クリティカルな問題は、この画面には表示されません。修正するには、「戻る」をクリックします。

3. オプションで、「レスポンス・ファイルの保存」を選択して、別のインポートで再使用できるレスポンス・ファイルを作成し、すべてのフィールドをプリセットしてこのスマート・インポート・ウィザードを再実行できるようにします。

4. 「終了」をクリックし、スマート・インポートを起動して、スマート・インポート・ウィザードを終了します。

スマート・インポートの結果は、スマート・インポート・レポートで確認できます。

20.3 リポジトリ・レベルのエクスポート/インポート

リポジトリ・レベルでは、マスター・リポジトリや作業リポジトリをエクスポートおよびインポートできます。

20.3.1 マスター・リポジトリのエクスポートおよびインポート

マスター・リポジトリのエクスポート/インポート手順を実行すると、リポジトリ全体(トポロジ・ドメインおよびセキュリティ・ドメインを含む)をあるリポジトリから別のリポジトリに転送できます。

この操作は、エクスポートしたオブジェクトを既存のリポジトリにインポートする際、または新規マスター・リポジトリを作成する際に、トポロジ・ナビゲータで実行できます。

トポロジ・ナビゲータでのマスター・リポジトリのエクスポート

マスター・リポジトリのエクスポート時にエクスポートされるオブジェクトは、オブジェクト、メソッド、プロファイル、ユーザー、言語、バージョン(オプションが選択されている場合)、ソリューション(オプションが選択されている場合)、オープン・ツール、パスワード・ポリシー、エンティティ、リンク、フィールド、ルックアップ、テクノロジ、データ型、データ型の変換、論理エージェント、コンテキストおよび子オブジェクトです。

マスター・リポジトリをエクスポートするには:

1. デザイナ、トポロジ、セキュリティまたはオペレータ・ナビゲータのツールバー・メニューから「エクスポート」を選択します。

2. 「選択項目のエクスポート」ダイアログで、「マスター・リポジトリをエクスポート」を選択します。

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

4. 「マスター・リポジトリのエクスポート」ダイアログで、表20-2の説明に従ってエクスポート・パラメータを設定します。
マスター・リポジトリおよびそのトポロジとセキュリティ設定は、.xmlファイルとしてディレクトリに直接エクスポートされるか、または.xmlファイルを含むzipファイルとしてエクスポートされます。zipファイルを生成する場合は、「ZIPファイルにエクスポート」を選択し、「ZIPファイル名」フィールドにzipファイルの名前を入力します。

5. リポジトリに格納されているオブジェクトのすべての格納済バージョンをエクスポートする場合は、「バージョンのエクスポート」を選択します。エクスポートするリポジトリのサイズを削減し、無関係なプロジェクト作業の転送を回避するには、このオプションの選択を解除できます。

6. リポジトリに格納されているすべての格納済ソリューションをエクスポートする場合は、「ソリューションのエクスポート」を選択します。同じ理由により、このオプションの選択を解除することもできます。

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

指定したエクスポート・ディレクトリにエクスポート・ファイルが作成されます。

マスター・リポジトリのインポート

エクスポートされたマスター・リポジトリのオブジェクトを既存のマスター・リポジトリにインポートするには:

1. デザイナ、トポロジ、セキュリティまたはオペレータ・ナビゲータのツールバー・メニューから「インポート...」を選択します。

2. 「選択項目のインポート」ダイアログで、「マスター・リポジトリをインポート」を選択します。

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

4. 「インポート」ダイアログで、次の手順を実行します。

1. 「インポート・タイプ」の値を選択します。詳細は、20.1.3項「インポート・タイプ」を参照してください。

2. ファイルをフォルダからインポートするか、ZIPファイルからインポートするかを選択します。

3. ファイル・インポート・フォルダまたはzipファイルを入力します。

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

これで、インポートしたオブジェクトがマスター・リポジトリに格納されます。

注意:

ソース・リポジトリとターゲット・リポジトリの内部IDが同じである場合、インポートを行うことはできません。ターゲット・リポジトリのIDが同じである場合、リポジトリを再番号付けできます。この操作の実行には注意が必要です。リスクの詳細は20.1.1項「内部識別子(ID)」、リポジトリを再番号付けする方法については3.8.3項「ポジトリの再番号付け」を参照してください。

以前のマスター・エクスポートを使用した新規マスター・リポジトリの作成

別のマスター・リポジトリのエクスポートを使用して新規マスター・リポジトリを作成するには:

1. 「ファイル」→「新規」を選択して新規ギャラリを開きます。

2. 新規ギャラリの「カテゴリ」ツリーで、「ODI」を選択します。

3. 項目リストから、「マスター・リポジトリ・インポート・ウィザード」を選択します。

4. 「OK」をクリックします。
マスター・リポジトリ・インポート・ウィザードが表示されます。

5. 「データベース接続」で、次のようにパラメータを指定します。

- ログイン: マスター・リポジトリに対して作成した表の所有者のユーザーID/ログイン。

- JDBCドライバ: リポジトリをホストするテクノロジへのアクセスに使用するドライバ。

- JDBC URL: リポジトリをホストするデータ・サーバーの完全なパス。
「JDBCドライバ」パラメータと「URL」パラメータは同期化され、デフォルト値はテクノロジによって異なります。

- ユーザー: 表の所有者のユーザーID/ログイン。

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

- DBAユーザー: データベース管理者のユーザー名

- DBAパスワード: このユーザーのパスワード

6. 「リポジトリ構成」で、次のようにパラメータを指定します。

- ID: デフォルトの0とは異なる新規マスター・リポジトリの特定のID。これは、リポジトリ間のインポートおよびエクスポートに影響を与えます。

警告:

すべてのマスター・リポジトリには、異なる識別子が必要です。選択する識別子が既存のリポジトリの識別子と異なることを確認してください。

- ZIPファイルを使用: 圧縮されたエクスポート・ファイルを使用する場合は、「ZIPファイルを使用」ボックスを選択し、「ZIPファイルのエクスポート」フィールドでマスター・リポジトリのエクスポートを含むファイルを選択します。

- エクスポート・パス: 圧縮されていないエクスポートを使用する場合は、「エクスポート・パス」フィールドでエクスポートを含むディレクトリを選択します。

- テクノロジ: リポジトリの基礎となるテクノロジをリストから選択します。

7. 「テスト接続」をクリックして、マスター・リポジトリへの接続をテストします。
「情報」ダイアログが開き、接続が確立されたかどうかが表示されます。

8. 「次へ」をクリックします。

9. パスワード記憶域の詳細を指定します。

- エクスポートに定義された構成を使用する場合は、「エクスポートに指定されたパスワード記憶域構成の使用」を選択します。

- エクスポートに定義された構成を使用しない場合は、「新規パスワード記憶域構成の使用」を選択し、次のオプションを選択します。

- パスワードをOracle Data Integratorリポジトリに格納する場合は、「内部パスワード記憶域」を選択します。

- JPS資格証明ストア・フレームワーク(CSF)を使用してデータ・サーバーおよびコンテキスト・パスワードを格納する場合は、「外部パスワード記憶域」を選択します。資格証明ストアにアクセスするには、表24-2の説明に従って「MBeanサーバー・パラメータ」を指定します。

パスワード記憶域の詳細は、24.3.1項「外部パスワード記憶域の設定」を参照してください。

10. マスター・リポジトリ・インポート・ウィザードで「終了」をクリックして、入力内容を確認します。

新規リポジトリが作成され、エクスポートしたコンポーネントがこのマスター・リポジトリにインポートされます。

20.3.2 トポロジおよびセキュリティ設定のエクスポート/インポート

トポロジまたはセキュリティをエクスポートしてからインポートすると、あるマスター・リポジトリから別のマスター・リポジトリにドメインを転送できます。

トポロジおよびセキュリティ設定のエクスポート

次のドメインをエクスポートできます。

- トポロジ: トポロジ全体(論理アーキテクチャと物理アーキテクチャ。ローカル・リポジトリ、データ・サーバー、ホスト、エージェント、一般アクション、テクノロジ、データ型、論理スキーマおよびコンテキストを含みます)。

- 論理トポロジ: テクノロジ(接続、データ型または言語情報)、論理エージェント、論理スキーマ、アクションおよびアクション・グループ。

- セキュリティ: オブジェクト、メソッド、ユーザー、プロファイル、権限、パスワード・ポリシーおよびホスト。

- 実行環境: テクノロジ、データ・サーバー、コンテキスト、一般アクション、ロード・バランス・エージェント、物理スキーマおよびエージェント。

トポロジ/セキュリティをエクスポートするには:

1. デザイナ、トポロジ、セキュリティまたはオペレータ・ナビゲータのツールバー・メニューから「エクスポート」を選択します。

2. 「選択項目のエクスポート」ダイアログで、次のいずれかを選択します:

- トポロジのエクスポート

- 論理トポロジのエクスポート

- セキュリティ設定のエクスポート

- 実行環境のエクスポート

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

4. 「エクスポート」ダイアログで、表20-2の説明に従ってエクスポート・パラメータを指定します。
トポロジおよびセキュリティ設定は、.xmlファイルとしてディレクトリに直接エクスポートされるか、または.xmlファイルを含むzipファイルとしてエクスポートされます。zipファイルを生成する場合は、「ZIPファイルにエクスポート」を選択し、「ZIPファイル名」フィールドにzipファイルの名前を入力します。

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

指定したエクスポート・ディレクトリにエクスポート・ファイルが作成されます。

トポロジおよびセキュリティ設定のインポート

トポロジ・エクスポートをインポートするには:

1. デザイナ、トポロジ、セキュリティまたはオペレータ・ナビゲータのツールバー・メニューから「インポート...」を選択します。

2. 「選択項目のインポート」ダイアログで、次のいずれかを選択します:

- トポロジのインポート

- 論理トポロジのインポート

- セキュリティ設定のインポート

- 実行環境のインポート

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

4. 「インポート」ダイアログで、次の手順を実行します。

1. インポート・モードを選択します。詳細は、20.1.3項「インポート・タイプ」を参照してください。

2. トポロジ・エクスポートをフォルダからインポートするか、Zipファイルからインポートするかを選択します。

3. 「ファイル・インポート・ディレクトリ」を入力します。

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

指定したファイルがマスター・リポジトリにインポートされます。

20.3.3 作業リポジトリのエクスポートおよびインポート

作業リポジトリをインポートまたはエクスポートすると、すべての作業リポジトリのオブジェクトをあるリポジトリから別のリポジトリに転送できます。

作業リポジトリのエクスポート

作業リポジトリをエクスポートするには:

1. デザイナ、トポロジ、セキュリティまたはオペレータ・ナビゲータのツールバー・メニューから「エクスポート」を選択します。

2. 「選択項目のエクスポート」ダイアログで、「作業リポジトリのエクスポート」を選択します。

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

4. 「エクスポート」ダイアログで、表20-2の説明に従ってエクスポート・パラメータを設定します。
作業リポジトリおよびそのモデルとプロジェクトは、.xmlファイルとしてディレクトリに直接エクスポートされるか、または.xmlファイルを含むzipファイルとしてエクスポートされます。zipファイルを生成する場合は、「ZIPファイルにエクスポート」を選択し、「ZIPファイル名」フィールドにzipファイルの名前を入力します。

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

指定したエクスポート・ディレクトリにエクスポート・ファイルが作成されます。

作業リポジトリのインポート

作業リポジトリをインポートするには:

1. デザイナ、トポロジ、セキュリティまたはオペレータ・ナビゲータのツールバー・メニューから「インポート...」を選択します。

2. 「選択項目のインポート」ダイアログで、「作業リポジトリのインポート」を選択します。

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

4. 「インポート」ダイアログで、次の手順を実行します。

1. インポート・モードを選択します。詳細は、20.1.3項「インポート・タイプ」を参照してください。

2. 作業リポジトリをフォルダからインポートするか、Zipファイルからインポートするかを選択します。

3. 「ファイル・インポート・ディレクトリ」を入力します。

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

指定したファイルが作業リポジトリにインポートされます。

20.4 技術環境のエクスポート

この機能を使用すると、任意のディレクトリに技術環境の詳細を含むカンマ区切り(.csv)ファイルを生成できます。この情報は、サポート用として役立ちます。

このファイルの形式はカスタマイズできます。

技術環境ファイルを生成するには:

1. デザイナ、トポロジ、セキュリティまたはオペレータ・ナビゲータのツールバー・メニューから「エクスポート」を選択します。

2. 「選択項目のエクスポート」ダイアログで、「技術環境のエクスポート」を選択します。

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

4. 「技術環境」ダイアログで、表20-6の説明に従ってエクスポート・パラメータを指定します。

表20-6 技術環境のエクスポート・パラメータ

プロパティ

説明

エクスポート・ディレクトリ

エクスポート・ファイルが作成されるディレクトリ。

ファイル名

.cvsエクスポート・ファイルの名前。

拡張オプション

この一連のオプションを使用すると、XML出力ファイル形式をパラメータ化できます。デフォルト値のままにしておくことをお薦めします。

キャラクタ・セット

エクスポート・ファイルに指定するエンコーディング。XMLファイル・ヘッダーのパラメータencodingの値です。

<?xml version="1.0" encoding="ISO-8859-1"?>

フィールド・コード

生成される各レコードの最初のフィールドには、行に存在する情報の種類を識別するためのコードが含まれます。これらのコードは、必要に応じてカスタマイズできます。

- Oracle Data Integrator情報レコード・コード: Oracle Data Integratorの現在のバージョンおよび現在のユーザーが記録される行を識別するために使用するコード。このコードはレコードの最初のフィールドに使用されます。

- マスター・レコード・コード、作業レコード・コード、エージェント・レコード・コード、テクノロジ・レコード・コード: マスター・リポジトリ、作業リポジトリ、稼働中のエージェント、データ・サーバーやそのバージョンなどの情報を含む行のコード。

レコード・セパレータ、フィールド・セパレータ

これらのセパレータは、ファイル内のレコード(行)、および1レコード内のフィールドを区切る文字を定義します。

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

20.5 ログのエクスポートおよびインポート

ログ・データは、アーカイブ目的でエクスポートおよびインポートできます。詳細は、22.3.3.4項「ログ・データのエクスポートおよびインポート」を参照してください。

第VI部

統合プロセスの実行および監視

この部では、統合プロセスの実行方法と監視方法について説明します。

この部の内容は次のとおりです。

- 第21章「統合プロセスの実行」

- 第22章「統合プロセスの管理」

- 第23章「Oracle Data Integratorコンソールの使用」

21 統合プロセスの実行

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

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

- 21.1項「ODI実行の理解」

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

- 21.3項「シナリオの実行」

- 21.4項「セッションの再起動」

- 21.5項「セッションの停止」

- 21.6項「ロード計画の実行」

- 21.7項「ロード計画実行の再開」

- 21.8項「ロード計画実行の停止」

- 21.9項「シナリオとロード計画のスケジューリング」

- 21.10項「実行のシミュレーション」

- 21.11項「Webサービスを使用した実行の管理」

21.1 ODI実行の理解

実行は、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項「ロード計画の概要」を参照してください。

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

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

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

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

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

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

6. セッションの処理中に、エージェントはリポジトリ内の実行ログを更新し、実行統計とエラー・メッセージをレポートします。
セッションが開始された後は、オペレータ・ナビゲータなどを使用してそのセッションをログで監視できます。セッションの監視に関する詳細は、第22章「統合プロセスの監視」を参照してください。

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

注意:

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

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

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

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

- インタフェース実行の詳細は、11.3.8項「統合インタフェースの実行」を参照してください。

- プロシージャ実行の詳細は、12.1.3項「プロシージャの使用」を参照してください。

- パッケージ実行の詳細は、10.5項「パッケージの実行」を参照してください。

- モデル操作の詳細は、5.2項「モデルの作成およびリバースエンジニアリング」、5.6項「モデルのデータ品質のチェック」および6.2項「ジャーナル化の設定」を参照してください。

21.3 シナリオの実行

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

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

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

- Webサービスからの実行。詳細は、21.11.2項「Webサービスを使用したシナリオの実行」を参照してください。

- ODIコンソールからの操作。23.2.3項「シナリオおよびセッションの管理」を参照してください。

注意:

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

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

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

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

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

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

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

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

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

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

21.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>] [-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と動作は同じですが、変数の追跡が追加されていることに注意してください。詳細は、12.2.3.11項「変数と順序の追跡」を参照してください。

例: 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コマンドラインでは、変数名の接頭辞にハッシュ記号(#)を使用しないでください。

21.4 セッションの再開

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

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

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

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

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

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

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

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

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

- Webサービスからの実行。詳細は、21.11.4項「Webサービスを使用したセッションの再開」を参照してください。

- ODIコンソールからの操作。23.2.3項「シナリオおよびセッションの管理」を参照してください。

警告:

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

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

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

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

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

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

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

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

注意:

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

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

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

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

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

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

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

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

- コマンドラインからセッションを再開すると、デフォルトでは、そのセッションはリモートのランタイム・エージェントに対しては開始されませんが、コマンドラインから開始されたローカルの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パラメータが入力されていないと、セッションの実行に使用された前回のログ・レベルが再利用されることに注意してください。詳細は、12.2.3.11項「変数と順序の追跡」を参照してください。

[-AGENT_URL=<remote_agent_url>

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

注意:

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

注意:

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

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

21.5 セッションの停止

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

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

- 標準: セッションは、現在のタスクの終了後に停止されます。

- 即時: 現在のタスクがすぐに中断されてセッションが停止されます。このモードを使用すると、長時間実行されているタスク、たとえば長いSQL文をその完了前に停止できます。

注意:

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

注意:

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

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

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

- コマンドラインからのセッションの停止。

- ODIコンソールからの操作。23.2.3項「シナリオおよびセッションの管理」を参照してください。

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

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

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

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

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

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

21.5.2 コマンドラインからのセッションの停止

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

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

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

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

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

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

パラメータ

説明

<session_id>

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

[-AGENT_URL=<remote_agent_url>

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

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

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

注意:

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

21.6 ロード計画の実行

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

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

- コマンドラインからのロード計画の実行。

- Webサービスからの実行。詳細は、21.11.5項「Webサービスを使用したロード計画の実行」を参照してください。

- ODIコンソールからの操作。23.2.4項「ロード計画の管理」を参照してください。

注意:

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

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

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

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

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

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

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

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

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

- 「ログ・レベル」を選択します。この値以下のログ・レベルが定義されているすべてのセッションは、セッション完了時に、セッション・ログに保持されます。ただし、オブジェクトの実行が異常終了した場合は、この設定にかかわらず、すべてのタスクが保持されます。
ログ・レベル6は、ログ・レベル5と動作は同じですが、変数の追跡が追加されていることに注意してください。詳細は、12.2.3.11項「変数と順序の追跡」を参照してください。

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

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

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

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

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

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

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

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

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

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

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

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

["-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"

21.7 ロード計画実行の再開

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

注意:

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

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

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

- コマンドラインからのロード計画の再開。

- Webサービスからの実行。詳細は、21.11.7項「Webサービスを使用したロード計画インスタンスの再開」を参照してください。

- ODIコンソールからの操作。23.2.4項「ロード計画の管理」を参照してください。

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

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

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

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

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

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

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

21.7.2 コマンドラインからのロード計画の再開

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

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

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

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

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

["-AGENT_URL=<agent_url>"]

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

21.8 ロード計画実行の停止

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

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

- 標準停止: 標準停止モードでは、ロード計画の停止を担当するエージェントが、このロード計画のセッションを実行している各エージェントに、標準停止シグナルを送信します。各エージェントは、セッションの現在のタスクが完了するのを待機し、その後、セッションをエラーで終了します。ロード計画によって例外ステップが実行されることはありません。すべての例外が終了すると、ロード計画はエラー状態に移行されます。

- 即時停止: 即時停止モードでは、ロード計画の停止を担当するエージェントが、このロード計画のセッションを実行している各エージェントに、即時停止シグナルを送信します。各エージェントは、セッションの現在のタスクが完了するのを待機せずに、セッションをエラーで即時に終了します。ロード計画によって例外ステップが実行されることはありません。すべての例外が終了すると、ロード計画はエラー状態に移行されます。

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

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

- コマンドラインからのロード計画実行の停止。

- Webサービスからの実行。詳細は、21.11.6項「Webサービスを使用したロード計画実行の停止」を参照してください。

- ODIコンソールからの操作。23.2.4項「ロード計画の管理」を参照してください。

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

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

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

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

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

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

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

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

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

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

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

- ロード計画実行シグナルは、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のコマンド・コールとは異なる場合があります。

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

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

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

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

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

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

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

例:

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

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

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

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

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

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

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

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

プロパティ

説明

コンテキスト

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

エージェント

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

ログ・レベル

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

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

プロパティ

説明

アクティブ

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

非アクティブ

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

アクティブな期間

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

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

プロパティ

説明

実行

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

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

プロパティ

説明

なし(1回実行)

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

複数回

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

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

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

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

制約

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

21.9.1.3 スケジュールの表示

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

注意:

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

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

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

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

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

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

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

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

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

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

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

注意:

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

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

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

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

選択したエージェント

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

選択した作業リポジトリ

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

スケジュールの範囲

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

更新

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

時間範囲

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

シナリオ詳細

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

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

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

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

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

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

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

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

- 21.3.2項「コマンドラインからのシナリオの実行」

- 21.11.2項「Webサービスを使用したシナリオの実行」

- 21.6.2項「コマンドラインからのロード計画の実行」

- 21.11.5項「Webサービスを使用したロード計画の実行」

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

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

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

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

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

注意:

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

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

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

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

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

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

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

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

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

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

- 21.11.1項「ランタイムWebサービスの概要」

- 21.11.2項「Webサービスを使用したシナリオの実行」

- 21.11.3項「Webサービスを使用したセッション・ステータスの監視」

- 21.11.4項「Webサービスを使用したセッションの再開」

- 21.11.5項「Webサービスを使用したロード計画の実行」

- 21.11.6項「Webサービスを使用したロード計画実行の停止」

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

- 21.11.8項「Webサービスを使用したロード計画実行ステータスの監視」

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

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

- 21.11.11項「コマンドラインからのWebサービスへのアクセス」

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

- 21.11.13項「WS-Addressingの使用」

- 21.11.14項「コールバックを使用する非同期Webサービスの使用」

21.11.1 ランタイム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ユーザーと作業リポジトリの名前のみです。

21.11.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要素の値に応じたレスポンスでセッション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>

21.11.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>

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

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

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

- D: 完了

- E: エラー

- M: 警告

- Q: キュー

- R: 実行中

- W: 待機中

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

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

21.11.5 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>

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

エージェント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>

21.11.7 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>

21.11.8 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>

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

注意:

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

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

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

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

注意:

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

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

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

21.11.11 コマンドラインからの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> -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と動作は同じですが、変数の追跡が追加されていることに注意してください。詳細は、12.2.3.11項「変数と順序の追跡」を参照してください。

例: 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

冗長モード。

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

この章の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エージェントでのみ使用できます。

21.11.13 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サービスのアドレス指定: 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/

21.11.14 コールバックを使用する非同期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ヘッダーが送信されます。

22 統合プロセスの監視

この章では、オペレータ・ナビゲータで開発実行を管理する方法について説明します。オペレータ・ナビゲータのユーザー・インタフェースの概要も示します。

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

- 22.1項「監視の概要」

- 22.2項「実行結果の監視」

- 22.3項「実行の管理」

22.1 監視の概要

開発実行の監視には、実行が成功した場合またはエラーになった場合の実行結果の表示、および開発実行の管理が含まれます。この項では、Oracle Data Integratorの監視機能の概要を示します。実行結果の使用方法については、22.2項「実行結果の監視」を参照してください。開発実行の管理方法については、22.3項「実行の管理」を参照してください。

22.1.1 オペレータ・ナビゲータの概要

オペレータ・ナビゲータを使用すると、実行結果を表示でき、セッションの開発実行および本番のシナリオとロード計画を管理できます。

オペレータ・ナビゲータは、マスター・リポジトリに定義されているトポロジを使用して、この情報を作業リポジトリに格納します。

オペレータ・ナビゲータでは、現在のユーザーが使用できるオブジェクトが6つのアコーディオンに表示されます。

- 「セッション・リスト」には、日付、物理エージェント、ステータス、キーワードなどの単位で編成されたすべてのセッションが表示されます。

- 「階層セッション」には、子セッションとともに階層構造に編成された実行セッションが表示されます。

- 「ロード計画実行」には、ロード計画インスタンスのロード計画実行が表示されます。

- 「スケジューリング」には、物理エージェントとスケジュールのリストが表示されます。

- 「ロード計画とシナリオ」には、使用可能なシナリオとロード計画のリストが表示されます。

- 「ソリューション」には、ソリューションのリストが表示されます。

オペレータ・ナビゲータのツールバー・メニュー

主な監視タスクは、オペレータ・ナビゲータのツールバー・メニューから実行できます。オペレータ・ナビゲータのツールバー・メニューから、表22-1で説明されている機能にアクセスできます。

表22-1 オペレータ・ナビゲータのツールバー・メニュー項目

アイコン

メニュー項目

説明

リフレッシュ

「リフレッシュ」をクリックすると、オペレータ・ナビゲータ・アコーディオンのツリーをリフレッシュできます。

フィルタ

アクティブ化されたフィルタ

「フィルタ」をクリックすると、オペレータ・ナビゲータに表示するセッションに対するフィルタを定義できます。

自動リフレッシュ

「自動リフレッシュ」をクリックすると、オペレータ・ナビゲータ・アコーディオンのツリーを自動的にリフレッシュできます。

ナビゲータの接続

「ナビゲータの接続」をクリックすると、オペレータ・ナビゲータのツールバー・メニューにアクセスできます。オペレータ・ナビゲータのツールバー・メニューから、次の処理を実行できます。

- シナリオのインポート

- ログのインポートおよびエクスポート

- 複数のエクスポートの実行

- ログのパージ

- スケジューリング情報の表示

- 失効したセッションの除去

22.1.2 シナリオ

シナリオは、ソース・コンポーネント(インタフェース、パッケージ、プロシージャ、変数)を本番に移行するために設計されます。シナリオは、このコンポーネント用のコード(SQL、シェルなど)の生成結果として作成されます。

シナリオが実行されると、セッションが作成されます。

本番環境にインポートしたシナリオは、ロード計画とシナリオ・フォルダに編成できます。詳細は、22.3.4項「シナリオとロード計画の管理」を参照してください。

22.1.3 セッション

Oracle Data Integratorでは、実行がセッションになります。セッションは、オペレータ・ナビゲータで表示および管理できます。

セッションは、実行エージェントによって起動される(シナリオ、インタフェース、パッケージまたはプロシージャなどの)実行です。セッションはステップで構成され、ステップはタスクで構成されます。

ステップは、タスクとセッションの間に位置する実行単位です。パッケージまたはシナリオ内の1つのステップに対応します。たとえば、インタフェースまたは単一の変数を実行した場合、結果のセッションのステップは1つのみです。

セッションで使用するデータ・サーバーに対して接続時のコマンドと切断時のコマンドを設定した場合は、「接続時のコマンド」と「切断時のコマンド」という特別な2つのステップが作成されています。詳細は、接続時または切断時のコマンドの設定を参照してください。

タスクは、最小の実行単位です。KM内のコマンド、プロシージャなどに対応します。

セッションはセッション・フォルダにグループ化できます。セッション・フォルダでは、特定のキーワードを指定して起動されたセッションが自動的にグループ化されます。詳細は、22.3.3.3項「セッション・フォルダを使用したログの編成」を参照してください。

22.1.4 ロード計画

ロード計画は、Oracle Data Integratorの最大の実行可能オブジェクトです。そのステップではシナリオが使用されます。ロード計画は、子ステップを階層に編成したものです。この階層では、ステップの条件付き処理が並列または順次で行えます。

本番環境にインポートしたロード計画は、ロード計画とシナリオ・フォルダに編成できます。詳細は、22.3.4項「シナリオとロード計画の管理」を参照してください。

22.1.5 ロード計画の実行

ロード計画を実行すると、ロード計画インスタンスとそのインスタンスの最初のロード計画実行が作成されます。このロード計画インスタンスは元のロード計画から切り離されるため、個別に変更できます。ロード計画インスタンスが再開されるたびに、そのロード計画インスタンスのロード計画実行が作成されます。ロード計画実行は、インスタンスの実行の試行に対応しています。詳細は、14.1.1項「ロード計画実行ライフ・サイクル」を参照してください。

実行時に、ロード計画実行では、ロード計画で順番に並べられたシナリオに対応するセッションを開始します。

ロード計画実行のリストには、ロード計画実行のみが表示されることに注意してください。各実行は、ロード計画インスタンスIDと試行(実行)番号で識別されます。

22.1.6 スケジュール

シナリオとロード計画の実行は、Oracle Data Integratorの組込みスケジューラまたは外部スケジューラを使用してスケジュールできます。これらの方法については、21.9項「シナリオとロード計画のスケジューリング」を参照してください。

スケジュールは、デザイナ・ナビゲータおよびオペレータ・ナビゲータ内で、シナリオまたはロード計画の「スケジューリング」ノードの下に表示されます。各スケジュールで、開始日と反復サイクルを指定できます。

22.1.7 ログ

Oracle Data Integratorのログは、リポジトリに格納されているすべてのセッションおよびロード計画のインスタンス/実行に対応します。このログは、監視のためにエクスポート、パージまたはフィルタ処理できます。詳細は、22.3.3項「ログの管理」を参照してください。

22.1.8 ステータス

セッション、ステップ、タスクまたはロード計画実行には、常にステータスが割り当てられます。表22-2に、割り当てられる可能性がある6つのステータス値を示します。

表22-2 ステータス値

ステータス名

セッションのステータス・アイコン

ロード計画のステータス・アイコン

ステータスの説明

完了

ロード計画、セッション、ステップまたはタスクは正常に実行されました。

前回の実行で完了

ロード計画ステップは前回のロード計画実行で実行されました。このアイコンは再開後に表示されます。

エラー

ロード計画、セッション、ステップまたはタスクは、エラーのために終了しました。

実行中

ロード計画、セッション、ステップまたはタスクは実行中です。

待機中

ロード計画、セッション、ステップまたはタスクは実行を待機中です。

警告(セッションとタスクのみ)

- セッションの場合: セッションは正常に完了しましたが、データ品質チェック中にエラーが検出されました。

- タスクの場合: タスクはエラーで終了しましたが、このタスクではエラーが許容されるため、セッションは停止されませんでした。

キュー(セッションのみ)

セッションは、エージェントが実行可能な状態になるのを待機中です。

セッションが終了すると、そのステータスは最後に実行されたステップのステータス(「完了」または「エラー」)になります。ステップが終了すると、そのステータスは最後に実行されたタスクのステータスになります(タスクによって「警告」が戻された場合を除きます。この場合、ステップのステータスは「完了」になります)。

ロード計画のすべての子ステップが正常に実行された場合、そのロード計画は成功(「完了」ステータス)です。ロード計画の子ステップの少なくとも1つがエラーになり、ルート・ステップに対して例外が生成された場合は、ステータスが「エラー」になります。

22.2 実行結果の監視

Oracle Data Integratorでロード計画が実行された場合は、実行がセッションまたはロード計画実行になります。セッションはステップで構成され、ステップはタスクで構成されます。セッションは、オペレータ・ナビゲータで表示および管理できます。

ロード計画実行はオペレータ・ナビゲータに表示されます。ロード計画実行の各ステップを確認するには、その実行用のエディタを開きます。ロード計画に関連付けられているセッションが、残りのセッションとともにオペレータ・ナビゲータに表示されます。

22.2.1 セッションの監視

セッションを監視するには:

1. オペレータ・ナビゲータで、「セッション・リスト」アコーディオンを展開します。

2. 「すべての実行」ノードを展開し、ナビゲータのツールバーの「リフレッシュ」をクリックします。

3. オプションで、フィルタをアクティブ化し、表示されるセッションの数を削減します。詳細は、22.3.3.1項「セッションのフィルタ処理」を参照してください。

4. セッションのリストで、セッションのステータスを確認します。

22.2.2 ロード計画実行の監視

ロード計画実行を監視するには:

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

2. 「すべての実行」ノードを展開し、ナビゲータのツールバーの「リフレッシュ」をクリックします。

3. リストで、ロード計画実行のステータスを確認します。

4. ロード計画実行をダブルクリックし、ロード計画実行エディタを開きます。

5. ロード計画実行エディタで、「ステップ」タブを選択します。

6. ロード計画の各ステップの状態を確認します。このタブで、次のタスクを実行できます。

- エディタのツールバーで「リフレッシュ」をクリックし、表の内容を更新します。

- シナリオ実行ステップの場合は、「セッションID」列内をクリックし、このロード計画によって開始されたステップのセッションを開きます。

22.2.3 失敗したセッションの処理

セッションがエラーまたは警告で終了した場合は、エラーをオペレータ・ナビゲータで分析できます。

エラーを分析するには:

1. オペレータ・ナビゲータで、エラーが発生したセッション、ステップおよびタスクを識別します。

2. エラーが発生したタスクをダブルクリックします。タスク・エディタが開きます。

3. 「実行統計」セクションの「定義」タブに、セッションを停止したエラーを示すリターン・コードとメッセージが表示されます。

4. 「コード」タブにタスクのソース・コードとターゲット・コードが表示され、確認および編集できます。
オプションで、解決済の変数値および順序値とともにコードを表示するには、「値の表示/非表示」をクリックします。次の点に注意してください。

- 変数値が表示されている場合、コードは読取り専用になります。これで変数値を追跡できます。

- パスワードとして使用される変数は表示されません。

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

5. 「接続」タブで、コードが実行されたソース接続とターゲット接続を確認できます。

「コード」タブでコマンドのコードを修正して、変更内容を適用します。このアクションの実行後、セッションの再開が可能です。セッションは、エラーが発生したタスクから再開されます。

注意:

セッションのタスクのコードを修正しても、実行されたソース・オブジェクト(インタフェース、プロシージャ、パッケージまたはシナリオ)は修正されません。このソース・オブジェクトはデザイナ・ナビゲータで修正する必要があり、シナリオ(ある場合)は再生成する必要があります。セッション内のコードの変更は、問題をデバッグするために有効です。

警告:

セッションが失敗した場合は、ソース・システムとターゲット・システムに対するすべての接続およびトランザクションがロールバックされます。この結果、トランザクションでコミットされていない文は適用されません。

22.2.4 成功したセッションの確認

セッションが正常に終了した場合は、実行された変更をオペレータ・ナビゲータで表示できます。これらの変更には、挿入、更新、削除、エラーの数、合計行数などのレコード統計の他、実行の開始時間と終了時間、継続時間(秒)、リターン・コードおよびメッセージ(ある場合)などの実行統計があります。

セッション・レベルの統計では、このセッションの全ステップの統計が集計され、各ステップの統計では、このステップ内の全タスクの統計が集計されます。

実行統計を確認するには:

1. オペレータ・ナビゲータで、確認するセッション、ステップまたはタスクを識別します。

2. セッション、ステップまたはタスクをダブルクリックします。対応するエディタが開きます。

3. レコード統計および実行統計が「定義」タブに表示されます。インタフェースまたはデータストア・チェックが実行されたセッション・ステップの場合は、ターゲット表の詳細も表示されることに注意してください。

レコード統計

プロパティ

説明

挿入数

セッション/ステップ/タスク中に挿入された行数。

更新数

セッション/ステップ/タスク中に更新された行数。

削除数

セッション/ステップ/タスク中に削除された行数。

エラー数

セッション/ステップ/タスク中にエラーが発生した行数。

行数

セッション/ステップ/タスク中に処理された合計行数。

実行統計

プロパティ

説明

開始

セッション/ステップ/タスクの実行開始日時。

終了

セッション/ステップ/タスクの実行終了日時。

期間(秒)

セッション/ステップ/タスクの実行に要した時間。

リターン・コード

セッション/ステップ/タスクのリターン・コード。

ターゲット表の詳細

プロパティ

説明

表名

ターゲット・データストアの名前。

モデル・コード

ターゲット・データストアが保存されているモデルのコード。

リソース名

ターゲット・データストアのリソース名。

論理スキーマ

このデータストアの論理スキーマ。

強制コンテキスト・コード

ターゲット・データストアのコンテキスト。

22.2.5 失敗したロード計画の処理

ロード計画がエラーで終了した場合は、失敗したセッションおよびロード計画の失敗の原因となったセッションを確認します。失敗したセッションのソースを修正します。

ロード計画インスタンスは再開できます。詳細は、21.7項「ロード計画実行の再開」を参照してください。

ロード計画インスタンスは、そのステップに定義されている再開タイプに基づいて再開されることに注意してください。詳細は、14.2.4項「ロード計画の例外および再開可能の処理」を参照してください。

また、ロード計画実行が次回再開したときに、ロード計画のこの特定のステップを無視するように、ロード計画実行エディタの「ステップ」タブで、失敗したロード計画ステップの実行ステータスを「エラー」から「完了」に変更することもできます。これは、このロード計画ステップが失敗する原因のエラーを現時点では修正できない場合や、このロード計画ステップに関係なく残りのロード計画を実行する必要がある場合などに便利です。

22.2.6 成功したロード計画の確認

ロード計画が正常に終了した場合は、ロード計画実行エディタから実行統計を確認できます。

ロード計画で開始した各セッションの統計は、セッション・エディタで確認することもできます。

ロード計画実行の実行統計を確認するには:

1. オペレータ・ナビゲータで、確認するロード計画実行を識別します。

2. ロード計画実行をダブルクリックします。対応するエディタが開きます。

3. 「ステップ」タブに、レコードと実行統計が表示されます。

22.3 実行の管理

開発実行の管理は、オペレータ・ナビゲータで実行します。実行するアクションに応じて、実行プロセス中または実行終了後に実行を管理できます。実行可能なアクションは、次のとおりです。

- セッションの管理

- ロード計画実行の管理

- ログの管理

- シナリオとロード計画の管理

- スケジュールの管理

22.3.1 セッションの管理

セッションの管理には、次のタスクが含まれます。

- ランタイム・オブジェクトまたはシナリオを実行することで新規セッションを作成できます。セッションの開始の詳細は、第21章「統合プロセスの実行」を参照してください。

- 進行中のセッションを中断できます。セッションの停止方法については、21.5項「セッションの停止」を参照してください。

- 失敗したセッションまたはユーザー・アクションによって停止されたセッションを再開できます。セッションの再開については、21.4項「セッションの再開」を参照してください。

これらのタスクに加えて、本番では失効したセッションの処理が必要になる場合があります。

22.3.1.1 失効したセッションの除去

失効したセッションとは、エージェントまたはリポジトリのクラッシュ後、誤って実行状態のままになったセッションのことです。

セッションが失効した場合は、このセッションを開始したエージェントによって自動的に検出され、そのステータスが「エラー」に変更されます。オペレータ・ナビゲータまたはトポロジ・ナビゲータで、特定のエージェントに対して、失効したセッションを除去するように手動でリクエストできます。

失効したセッションを手動で除去するには:

1. 次のいずれかの操作を行います。

- オペレータ・ナビゲータのツールバー・メニューから「失効したセッションの除去」を選択します。

- トポロジ・ナビゲータで、「物理アーキテクチャ」アコーディオンから「エージェント」を選択し、右クリックして「失効したセッションの除去」を選択します。

「失効したセッションの除去」ダイアログが開きます。

2. 「失効したセッションの除去」ダイアログで、失効したセッションを除去するための基準を指定します。

- リストから、失効したセッションを除去するエージェントを選択します。
すべてのエージェントの失効したセッションを除去する場合は、「すべてのエージェントを除去」を選択します。

- リストから、除去する作業リポジトリを選択します。
すべての作業リポジトリの失効したセッションを除去する場合は、「すべての作業リポジトリを除去」を選択します。

3. 「OK」をクリックすると、除去処理を開始します。除去処理の進行状況が進行状況バーに示されます。

22.3.2 ロード計画実行の管理

ロード計画実行の管理には、次のタスクが含まれます:

- ロード計画を実行することで新規ロード計画のインスタンスと実行を作成できます。ロード計画の開始については、21.6項「ロード計画の実行」を参照してください。

- 進行中のロード計画実行を中断できます。ロード計画実行の停止方法については、21.8項「ロード計画実行の停止」を参照してください。

- 失敗したロード計画実行またはユーザー・アクションによって停止されたロード計画実行を再開できます。ロード計画実行の再開については、21.7項「ロード計画実行の再開」を参照してください。

22.3.3 ログの管理

Oracle Data Integratorには、ログ・データを管理するためのソリューションが複数用意されています。

- セッションのフィルタ処理: オペレータ・ナビゲータに特定の実行セッションのみを表示する場合

- ログのパージ: 過去のセッションの情報を削除する場合

- セッション・フォルダを使用したログの編成

- ログ・データのエクスポートおよびインポート: アーカイブ目的の場合

- ODIコンポーネントのランタイム・ロギング (ODI Studio、ODI Java EEエージェントおよびODIスタンドアロン・エージェント)

22.3.3.1 セッションのフィルタ処理

ユーザー、ステータス、セッション継続時間などのパラメータに基づいてログ・セッションをフィルタ処理すると、オペレータ・ナビゲータに特定の実行セッションのみを表示できます。現在のフィルタに一致しないセッションは、ビューで非表示になりますが、ログからは削除されません。

セッションをフィルタ処理するには:

1. オペレータ・ナビゲータのツールバー・メニューで、「フィルタ」をクリックします。フィルタの定義エディタが開きます。

2. フィルタの定義エディタで、必要に応じてフィルタ基準を設定します。デフォルト設定ではすべてのセッションが選択されることに注意してください。

- セッション番号: すべてのセッションを表示する場合は、空白を使用します。

- セッション名: ワイルドカードとして%を使用します。たとえば、DWH%と指定すると、名前がDWHで始まるすべてのセッションが一致します。

- セッションの実行コンテキスト。

- セッションの実行に使用されるエージェント。

- セッションを開始したユーザー。

- ステータス: 「実行中」、「待機中」など。

- 実行の日付: 開始日または終了日(あるいはその両方)を指定します。

- 継続時間が次より長い: 基準となる秒数を指定します。

3. 「適用」をクリックして現在のフィルタをプレビューします。

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

これらの基準と一致しないセッションは、「セッション・リスト」アコーディオンで非表示になります。ツールバーの「フィルタ」ボタンがアクティブ化されます。

フィルタを解除するには、オペレータのツールバー・メニューにある「フィルタ」をクリックします。現在のフィルタが解除され、すべてのセッションがリストに表示されます。

22.3.3.2 ログのパージ

ログのパージを使用すると、過去のセッションおよびロード計画実行をログから削除できます。この方法は、作業リポジトリにアーカイブされたセッションおよびロード計画の量を適切に保つために使用されます。パージは定期的に実行することをお薦めします。このパージは、シナリオでOdiPurgeLogツールを使用して自動化できます。

ログをパージするには:

1. オペレータ・ナビゲータのツールバー・メニューから、「ナビゲータの接続」→「ログのパージ」の順に選択します。ログのパージ・エディタが開きます。

2. ログのパージ・エディタで、削除するセッションまたはロード計画実行に対して、表22-3にリストされている基準を設定します。

表22-3 ログのパージ・パラメータ

パラメータ

説明

パージ・タイプ

パージするオブジェクトを選択します。

範囲

この時間範囲のセッションまたはロード計画実行(あるいはその両方)が削除されます。

セッション・ログのみのパージを選択した場合、ロード計画実行の一部として起動したセッションはフィルタ基準と一致した場合でもパージされません。ロード計画実行をパージした場合は、フィルタ基準に一致したロード計画実行、およびそのロード計画実行の一部として直接開始したセッションとその子/孫セッションが削除されます。

コンテキスト

このコンテキストで実行されたセッションまたはロード計画実行(あるいはその両方)が削除されます。

エージェント

このエージェントによって実行されたセッションまたはロード計画実行(あるいはその両方)が削除されます。

ステータス

このステータスのセッションまたはロード計画実行(あるいはその両方)が削除されます。

ユーザー

このユーザーによって実行されたセッションまたはロード計画実行(あるいはその両方)が削除されます。

名前

このセッション名と一致するセッションまたはロード計画実行(あるいはその両方)が削除されます。%をワイルドカードとして使用して、セッション名マスクを指定できます。

シナリオ・レポートのパージ

「シナリオ・レポートのパージ」を選択した場合は、シナリオ・レポート(各シナリオの実行ノードの下に表示されるレポート)もパージされます。

指定したフィルタと一致するセッションまたはロード計画実行(あるいはその両方)のみが次のように削除されます。

- セッション・ログのみのパージを選択した場合、ロード計画実行の一部として開始したセッションはフィルタ基準と一致した場合でもパージされません。

- ロード計画実行をパージした場合は、フィルタ基準に一致したロード計画実行、およびそのロード計画実行の一部として直接開始したセッションとその子/孫セッションが削除されます。

- ロード計画実行がフィルタと一致した場合は、関連するすべてのセッションもフィルタ基準と一致するかどうかに関係なくパージされます。

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

Oracle Data Integratorによって、セッションまたはロード計画実行(あるいはその両方)がログから削除されます。

注意:

オペレータ・ナビゲータで1つ以上のセッションまたはロード計画実行を選択して[Delete]キーを押す方法で、セッションまたはロード計画実行を削除することもできます。この方法でロード計画実行を削除すると、対応するセッションが削除されます。

22.3.3.3 セッション・フォルダを使用したログの編成

セッション・フォルダを使用すると、ログを編成できます。セッション・フォルダでは、特定のキーワードを使用して開始されたセッションおよびロード計画実行を自動的にグループ化します。セッション・フォルダは、「セッション・リスト」または「ロード計画実行」アコーディオンの「キーワード」ノードの下に作成されます。

各セッション・フォルダには、関連付けられた1つ以上のキーワードがあります。セッション・フォルダのすべてのキーワードを使用して起動されたセッションは、そのフォルダの下に自動的に分類されます。

新規セッション・フォルダを作成するには:

1. オペレータ・ナビゲータで、「セッション・リスト」または「ロード計画実行」アコーディオンに移動します。

2. 「キーワード」ノードを右クリックして、「新規セッション・フォルダ」を選択します。

3. 「フォルダ名」を指定します。

4. 「追加」をクリックして、キーワードをリストに追加します。追加するキーワードごとにこの手順を繰り返します。

注意:

特定のセッション・フォルダの中ですべてのキーワードを含むセッションまたはロード計画のみが、そのセッション・フォルダの下に表示されます。キーワードの照合では、大文字と小文字が区別されます。

表22-4は、セッション・フォルダ・キーワードの照合方法の例を示しています。

表22-4 セッション・フォルダ・キーワードの照合

セッション・フォルダ・キーワード

セッション・キーワード

一致

DWH、Test、Batch

Batch

いいえ - すべてのキーワードが一致する必要があります。

Batch

DWH、Batch

はい - セッションのその他のキーワードは無視されます。

DWH、Test

Test、dwh

いいえ - 照合では大文字と小文字が区別されます。

キーワードを使用してセッションを開始するには、たとえば、-KEYWORDSパラメータを使用してコマンドラインからシナリオを開始できます。詳細は、第21章「統合プロセスの実行」を参照してください。

注意:

セッション・フォルダのキーワード照合は動的に処理されます。セッション・フォルダのキーワードが変更されるか、新規フォルダが作成されると、既存のセッションは即時に再分類されます。

22.3.3.4 ログ・データのエクスポートおよびインポート

アーカイブ目的でログ・データをエクスポートおよびインポートします。

ログ・データのエクスポート

ログ・データのエクスポートでは、アーカイブ目的でログ・ファイルをエクスポートできます。

ログをエクスポートするには:

1. デザイナ、トポロジ、セキュリティまたはオペレータ・ナビゲータのツールバー・メニューから「エクスポート」を選択します。

2. 「選択項目のエクスポート」ダイアログで、「ログのエクスポート」を選択します。

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

4. 「ログのエクスポート」ダイアログで、表22-5の説明に従って、ログ・エクスポート・パラメータを設定します。

表22-5 ログ・エクスポート・パラメータ

プロパティ

説明

ディレクトリへエクスポート

エクスポート・ファイルが作成されるディレクトリ。

ZIPファイルにエクスポート

このオプションを選択した場合は、すべてのログ・エクスポート・ファイルを含んだ単一の圧縮ファイルが作成されます。選択しない場合は、ログ・エクスポート・ファイルのセットが作成されます。

ZIPファイル名

圧縮されたエクスポート・ファイルの名前。

フィルタ

この一連のオプションによって、指定したパラメータに応じてエクスポートするログ・ファイルをフィルタ処理できます。

ログ・タイプ

ログを取得するオブジェクトをリストから選択します。選択可能な値は、「すべて」、「ロード計画実行およびアタッチされたセッション」または「セッション」です。

開始および終了

実行日: 「開始」の日付または「終了」の日付、またはその両方を指定します。

エージェント

セッションの実行に使用されるエージェント。特定のエージェントに基づいたフィルタ処理を行わない場合は、デフォルトの「すべてのエージェント」の値をそのまま使用します。

コンテキスト

セッションの実行コンテキスト。コンテキストに依存したフィルタ処理を行わない場合は、デフォルトの「すべてのコンテキスト」の値をそのまま使用します。

ステータス

指定できる状態はDone、Error、Queued、Running、Waiting、Warning、All Statesです。特定のセッション状態に基づいたフィルタ処理を行わない場合は、デフォルトの「すべての状態」の値をそのまま使用します。

ユーザー

セッションを起動したユーザー。特定のユーザーに基づいたフィルタ処理を行わない場合は、デフォルトの「すべてのユーザー」の値をそのまま使用します。

セッション名

ワイルドカードとして%を使用します。たとえば、DWH%と指定すると、名前がDWHで始まるすべてのセッションが一致します。

拡張オプション

この一連のオプションによって、出力ファイル形式をパラメータ化できます。

キャラクタ・セット

エクスポート・ファイルに指定するエンコーディング。XMLファイル・ヘッダーのパラメータencodingの値です。

<?xml version="1.0" encoding="ISO-8859-1"?>

Javaキャラクタ・セット

ファイル生成に使用されるJavaキャラクタ・セット。

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

ログ・データは、指定した場所にエクスポートされます。

OdiExportLogツールを使用してログ・データのエクスポートを自動化することもできます。

ログ・データのインポート

ログ・データのインポートでは、アーカイブ目的でエクスポートされたログ・ファイルを作業リポジトリにインポートできます。

ログをインポートするには:

1. デザイナ、トポロジ、セキュリティまたはオペレータ・ナビゲータのツールバー・メニューから「インポート...」を選択します。

2. 「選択項目のインポート」ダイアログで、「ログのインポート」を選択します。

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

4. 「ログのインポート」ダイアログで、次の手順を実行します。

1. インポート・モードを選択します。セッションは、「シノニム・モードINSERT」モードでのみインポートできることに注意してください。詳細は、20.1.3項「インポート・タイプ」を参照してください。

2. ファイルをフォルダからインポートするか、ZIPファイルからインポートするかを選択します。

3. ファイル・インポート・フォルダまたはzipファイルを入力します。

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

指定したフォルダまたはZIPファイルが作業リポジトリにインポートされます。

22.3.3.5 ODIコンポーネントのランタイム・ロギング

ランタイム・ロギングを設定してODIコンポーネントを追跡したり、様々な問題の調査やシステムの監視のために詳細なレベルに設定することができます。ODI Studio、ODI Java EEエージェントおよびODIスタンドアロン・エージェントのODIコンポーネントを追跡できます。

注意:

詳細なロギングでは、ODIのパフォーマンスは低下します。

ログ・レベル

ログ・レベルは、log_handler要素またはlogger要素(あるいはその両方)に対して設定できます。ログ・レベルを設定する場合は、次の点に注意してください。

- log_handlerに対して設定した場合は、そのlog_handlerのすべての使用に適用されます。

- loggerに対して設定した場合は、そのハンドラのすべてと、明示的にレベルが設定されていない下位のすべてのloggerに適用されます。

- メッセージのログ・レベルが次の条件に該当する場合、そのメッセージはログに記録されます。

- そのloggerのレベル以上(>=)、かつ

- そのlog_handlerのレベル以上(>=)

表22-6に、Javaのログ・レベルとOracle Javaデバッグ・レベル(OJDL)のマッピングを示します。

表22-6 Javaのログ・レベルとOJDLのログ・レベルのマッピング

Javaのログ・レベル

OJDLのログ・レベル

SEVERE intValue()+100

INCIDENT_ERROR:1

SEVERE

ERROR:1

WARNING

WARNING:1

INFO

NOTIFICATION:1

CONFIG

NOTIFICATION:16

FINE

TRACE:1

FINER

TRACE:16

FINEST

TRACE:32

ランタイム・ロギングの設定

ランタイム・ロギングを設定するには、それぞれのODIログ出力とログ・ハンドラを有効にして、ODIロギング・システム構成ファイルの関連するログ・レベルを設定する必要があります。

1. ODIコンポーネントのODIロギング・システム構成ファイルを開きます。
各コンポーネントは、それぞれ固有の構成ファイルを持っています。

- ODI Studio:

$ODI_HOME/oracledi/client/odi/bin/ODI-logging-config.xml

- ODI Java EEエージェント:

../user_projects/domains/odi11115/config/fmwconfig/logging/oraclediagent-logging.xml

- ODI Standalone Agent:

$ODI_HOME/oracledi/agent/bin/ODI-logging-config.xml

2. ログ・ファイルのパスが有効で、既存のパスであることを確認します。

<log_handler name="ODI-file-handler" class="oracle.core.ojdl.logging.ODLHandlerFactory"
level="ALL">
<property name="format" value="ODL-Text"/>
<property name="path" value="/u01/oracle/odi11g/oracledi/agent/log/${LOG_FILE}"/>
<property name="maxFileSize" value="1000000"/> <!-- in bytes -->
<property name="maxLogSize" value="50000000"/> <!-- in bytes -->
<property name="encoding" value="UTF-8"/>
</log_handler>

ログ・ファイルのパスについては、次の点に注意してください。

- ODIスタンドアロン・エージェントの場合、デフォルト値は既存のフォルダを指していません。ログ・フォルダを作成するか、別のパスを設定してください。

- Windowsの場合、次のようなパスになります。

%ODI_HOME%\oracledi\agent\log\${LOG_FILE}

- WindowsおよびUnixでは、相対パスを使用できます。

3. ログ出力を有効にして、ログ・レベルを設定します。たとえば、oracle.odi.agentのログ出力の場合、次のようにして最も詳細なロギング設定を有効にできます。

<logger name="oracle.odi.agent" level="TRACE:32" useParentHandlers="false">
<handler name="ODI-file-handler"/>
<handler name="ODI-console-handler"/>
</logger>

4. 対象を変更するには、構成ファイルを保存します。

例 INFO (NOTIFICATION:1)メッセージ

次の場合、INFO (NORTIFICATION:1)メッセージはログに記録されます。

- loggerのレベル(継承されている場合を含む)が<= NOTIFICATION:1

- log_handlerのレベルが<= NOTIFICATION:1 (例: TRACE:1)

次の場合、INFO (NORTIFICATION:1)メッセージはログに記録されません。

- loggerのレベル(継承されている場合を含む)が> NOTIFICATION:1

- log_handlerのレベルが> NOTIFICATION:1 (例: WARNING:1)

ランタイム・ログ出力はoracle.odi.agentがコールされます。各メッセージ・レベルで対象となる内容は次のとおりです。

NOTIFICATION:1 (or INFO) Agent Level
NOTIFICATION:16 (or CONFIG) the above + Session Level
TRACE:1 (or FINE) the above + Step Level
TRACE:16 (or FINER) the above + Task + SQL
TRACE:32 (or FINEST) the above + more detail

oracle.odi.agentのコンソール・レベルは、エージェントの起動メッセージ(NOTIFICATION:1)が表示されるように設定することをお薦めします。

22.3.4 シナリオとロード計画の管理

オペレータ・ナビゲータで、シナリオまたはロード計画を使用して実行を管理することもできます。

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

オペレータ・ナビゲータからのシナリオの起動については、21.3.1項「ODI Studioからのシナリオの実行」を、ロード計画の実行方法については、21.6項「ロード計画の実行」を参照してください。

22.3.4.1 ロード計画とシナリオ・フォルダ

オペレータ・ナビゲータでは、複数のシナリオとロード計画をロード計画とシナリオ・フォルダにグループ化して簡単に編成できます。ロード計画とシナリオ・フォルダには、別のロード計画とシナリオ・フォルダを含めることができます。

ロード計画とシナリオ・フォルダを作成するには:

1. オペレータ・ナビゲータで、「ロード計画とシナリオ」アコーディオンに移動します。

2. 「ロード計画とシナリオ」ツールバー・メニューから、「新規ロード計画とシナリオ・フォルダ」を選択します。

3. ロード計画とシナリオ・フォルダ・エディタの「定義」タブで、フォルダの名前を入力します。

4. 「ファイル」メニューから、「保存」を選択します。

これでシナリオとロード計画を再編成できます。シナリオとロード計画をロード計画とシナリオ・フォルダにドラッグ・アンド・ドロップします。

22.3.4.2 ロード計画、シナリオおよびソリューションの本番へのインポート

デザイナから生成されたロード計画またはシナリオをエクスポートして、開発リポジトリまたは実行リポジトリにインポートできます。この操作は、ロード計画またはシナリオを別のリポジトリ(異なる環境やサイト上など)にデプロイするために使用されます。

開発リポジトリへのロード計画またはシナリオのインポートは、デザイナ・ナビゲータまたはオペレータ・ナビゲータで実行します。実行リポジトリの場合、この目的で使用できるのはオペレータ・ナビゲータのみです。

本番へのシナリオのインポート方法の詳細は、13.6項「本番へのシナリオのインポート」を、ロード計画インポートの詳細は、14.4.3.2項「ロード計画のインポート」を参照してください。

同様に、複数のシナリオが含まれるソリューションをインポートすると、シナリオのグループを一度に簡単に転送およびリストアできます。詳細は、第19章「バージョン管理の使用」を参照してください。実行リポジトリへの接続時は、ソリューションからリストアできるのはシナリオのみであることに注意してください。

22.3.5 スケジュールの管理

1つのシナリオまたは1つのロード計画には必ず1つのスケジュールが関連付けられます。スケジュールはオペレータ・ナビゲータで作成できます。詳細は、21.9項「シナリオとロード計画のスケジューリング」を参照してください。

シナリオまたはロード計画のインポート時にすでに存在しているスケジュールを一緒にインポートすることもできます。詳細は、13.6項「本番へのシナリオのインポート」および14.4.3項「ロード計画のエクスポート、インポートおよびバージョニング」を参照してください。

すべてのエージェントのスケジュールされたタスク、または特定のエージェントのスケジュールされたタスクを表示できます。詳細は、21.9.1.3項「スケジュールの表示」を参照してください。

23 Oracle Data Integratorコンソールの使用

この章では、Oracle Data Integratorコンソールの使用方法について説明します。コンソール・ユーザー・インタフェースの概要も示します。

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

- 23.1項「Oracle Data Integratorコンソールの概要」

- 23.2項「Oracle Data Integratorコンソールの使用」

23.1 Oracle Data Integratorコンソールの概要

Oracle Data Integratorコンソールは、Oracle Data Integratorのランタイム・アーキテクチャを管理および監視し、設計時のオブジェクトを参照するためのWebベースのコンソールです。

この項の内容は次のとおりです。

- Oracle Data Integratorコンソールの概要

- Oracle Data Integratorコンソールのインタフェース

23.1.1 Oracle Data Integratorコンソールの概要

Oracle Data Integratorコンソールは、様々なタイプのユーザーが使用できるWebベースのコンソールです。

- 管理者は、Oracle Data Integratorコンソールを使用して、リポジトリの作成とインポート、およびトポロジ(データ・サーバー、スキーマなど)の構成ができます。

- 本番オペレータは、Oracle Data Integratorコンソールを使用して、シナリオとロード計画の管理、セッションとロード計画実行の監視、およびOracle Data Integratorで生成されたエラー表の内容の管理を実行できます。

- ビジネス・ユーザーおよび開発者は、このインタフェースで開発アーティファクトを参照します。この作業には、たとえばデータ系統機能やフロー・マップ機能を使用します。

このWebインタフェースは、Oracle Fusion Middleware Controlコンソールとシームレスに統合されているため、Fusion Middlewareの管理者は、Oracle Data Integratorのコンポーネントおよびセッションの詳細にドリルダウンできます。

注意:

Fusion Middleware Control Extension for Oracle Data Integratorには、Oracle Data Integratorコンソールが必要です。この拡張によってドメイン内のOracle Data Integratorコンポーネントを検出および表示するには、Oracle Data Integratorコンソールがインストールおよび構成されている必要があります。

23.1.2 Oracle Data Integratorコンソールのインタフェース

Oracle Data Integratorコンソールは、ADF-Facesフレームワークを使用したWebインタフェースです。

図23-1は、Oracle Data Integratorコンソールのレイアウトを示しています。

図23-1 Oracle Data Integratorコンソール

「図23-1 Oracle Data Integratorコンソール」の説明

Oracle Data Integratorコンソールでは、左側のパネルの2つのナビゲーション・タブに、現在のユーザーが使用できるオブジェクトが表示されます。

- 「参照」タブには、参照および編集可能なリポジトリ・オブジェクトが表示されます。このタブでは、セッションおよびエラー表の管理もできます。

- 「管理」タブは、リポジトリおよびリポジトリ接続の管理に使用します。このタブを使用できるのは、スーパーバイザ権限がある接続ユーザー、または最初のリポジトリ接続を設定するユーザーです。

右側のパネルには次のタブが表示されます。

- 「検索」タブは常に表示可能で、接続されているリポジトリ内のオブジェクトを検索できます。

- マスター/詳細タブは、参照または編集中のオブジェクトごとに表示されます。同時に複数のオブジェクトの参照または編集が可能であることに注意してください。

ナビゲーション・タブの上部にある検索フィールドを使用すると、ナビゲーション・タブが閉じている場合でも「検索」タブを開くことができます。

ナビゲーション・タブの使用

ナビゲーション・タブでは、リポジトリに含まれているオブジェクトを参照できます。オブジェクトまたはノードが選択されている場合、ナビゲーション・タブのツールバーには、このオブジェクトまたはノードに対して使用できるアクションのアイコンが表示されます。このオブジェクトに対して使用できないアクションのアイコンは、グレー表示されます。たとえば、「参照」タブの「トポロジ」ノードの下にあるデータ・サーバー・オブジェクトは編集および追加できますが、「デザイナ」ノードの下にあるプロジェクトは編集できません。同時に開くことができるタブの数は10までであることに注意してください。

23.2 Oracle Data Integratorコンソールの使用

この項では、Oracle Data Integratorコンソールで使用できる様々なタイプの操作について説明します。コンソールで管理できる各オブジェクト・タイプを中心に説明するのではなく、コンソールでオブジェクトを管理するための秘訣を提供します。

この項の内容は次のとおりです。

- Oracle Data Integratorコンソールへの接続

- 一般的なユーザー操作

- シナリオおよびセッションの管理

- ロード計画の管理

- ログのパージ

- データ系統およびフロー・マップの使用

- 管理操作の実行

注意:

Oracle Data Integratorコンソールでは、マスター・リポジトリに定義されているセキュリティが使用されます。ユーザーに許可されない操作は、このユーザーに対してグレー表示されます。

また、「管理」タブを使用できるのは、スーパーバイザ権限があるユーザーのみです。

23.2.1 Oracle Data Integratorコンソールへの接続

Oracle Data Integratorコンソールは、管理者が定義したリポジトリ接続を介してリポジトリに接続します。

Oracle Data Integratorコンソールに接続するには、事前にOracle Data Integratorコンソールがインストールされている必要があります。Oracle Data Integratorコンソールのインストールの詳細は、Oracle Fusion Middleware Oracle Data Integratorインストレーション・ガイドを参照してください。

注意:

Oracle Data Integratorコンソールに初めて接続するとき、リポジトリ接続が構成されていない場合は、最初のリポジトリ接続を作成するために「管理」タブにアクセスできます。詳細は、リポジトリ接続の作成を参照してください。最初のリポジトリ接続の作成後、「管理」タブはログイン・ページからは使用できなくなり、このタブを使用できるのはスーパーバイザ権限のあるユーザーのみになります。

Oracle Data Integratorコンソールへの接続

Oracle Data Integratorコンソールに接続するには:

1. Webブラウザを開き、Oracle Data IntegratorコンソールがインストールされているURLに接続します。例: http://odi_host:8001/odiconsole/。

2. 「リポジトリ」リストから、接続するマスター・リポジトリまたは作業リポジトリに対応するリポジトリ接続を選択します。

3. 「ユーザーID」および「パスワード」を指定します。

4. 「サインイン」をクリックします。

23.2.2 一般的なユーザー操作

この項では、一般的なユーザーがOracle Data Integratorコンソールで使用できる一般的な操作について説明します。

この項では次の操作について記載しています:

注意:

シナリオおよびロード計画に対する作成、編集および削除操作は許可されていません。ODIコンソールでこれらのオブジェクトに対して実行可能な操作の詳細は、23.2.3項「シナリオおよびセッションの管理」および23.2.4項「ロード計画の管理」を参照してください。

- オブジェクトの表示

- オブジェクトの編集

- オブジェクトの作成

- オブジェクトの削除

- オブジェクトの検索

オブジェクトの表示

オブジェクトを表示するには:

1. 「参照」または「管理」ナビゲーション・タブでオブジェクトを選択します。

2. ナビゲーション・タブのツールバーで「表示」をクリックします。オブジェクトの単純なページまたはマスター/詳細ページが開きます。

オブジェクトの編集

オブジェクトを編集するには:

1. 「参照」または「管理」ナビゲーション・タブでオブジェクトを選択します。

2. ナビゲーション・タブのツールバーで「更新」をクリックします。オブジェクトの編集ページが開きます。

3. オブジェクトの各フィールドの値を変更します。

4. このオブジェクトの編集ページで「保存」をクリックします。

オブジェクトの作成

オブジェクトを作成するには:

1. 「参照」または「管理」ナビゲーション・タブで、作成するオブジェクトの親ノードに移動します。たとえば、コンテキストを作成する場合は、「参照」タブで、「トポロジ」→「コンテキスト」ノードに移動します。

2. ナビゲーション・タブのツールバーで「作成」をクリックします。このオブジェクトの「追加」ダイアログが表示されます。

3. オブジェクトの各フィールドに値を指定します。

4. このオブジェクトの「追加」ダイアログで「保存」をクリックします。ナビゲーション・タブに新しいオブジェクトが表示されます。

オブジェクトの削除

オブジェクトを削除するには:

1. 「参照」または「管理」ナビゲーション・タブでオブジェクトを選択します。

2. ナビゲーション・タブのツールバーで「削除」をクリックします。

3. 確認ウィンドウで「OK」をクリックします。

オブジェクトの検索

オブジェクトを検索するには:

1. 「検索」タブで、検索するオブジェクトに対応するタブを選択します。

- 「デザインタイム」タブでは、設計時オブジェクトを検索できます

- 「トポロジ」タブでは、トポロジ・オブジェクトを検索できます

- 「ランタイム」タブでは、ロード計画、シナリオ、シナリオ・フォルダまたはセッション・フォルダなどのランタイム・オブジェクトを検索できます

- 「セッション」タブでは、セッションを検索できます

- 「ロード計画実行」タブでは、ロード計画実行を検索できます

2. 検索パラメータを設定して検索を絞り込みます。
たとえば、設計時またはトポロジ・オブジェクトを検索する場合:

1. 「検索」 「テキスト」フィールドで検索するオブジェクトの名前の一部分を入力します。

2. 大文字と小文字を区別して検索する場合、「大/小文字区別」を選択します(この機能はセッションまたはロード計画実行検索では提供されていません)。

3. 「モデル/プロジェクト」(「デザイナ」タブ)または「トポロジ」(「トポロジ」タブ)で、検索するオブジェクトのタイプを選択します。すべてのオブジェクトを検索する場合は、「すべて」を選択します。

3. 「検索」をクリックします。

4. 「検索結果」がオブジェクト・タイプ別にグループ化されて表示されます。検索結果でオブジェクトをクリックすると、そのマスター/詳細ページが開きます。

23.2.3 シナリオおよびセッションの管理

この項では、Oracle Data Integratorコンソールで使用できる、シナリオおよびセッションに関連する操作について説明します。

この項では次の操作について記載しています:

- シナリオのインポート

- シナリオのエクスポート

- シナリオの実行

- セッションの停止

- セッションの再開

- 失効したセッションの除去

- データ統計およびエラー・レコードの管理

シナリオのインポート

シナリオをインポートするには:

1. 「参照」ナビゲーション・タブを選択します。

2. 「ランタイム」→「シナリオ/ロード計画」→「シナリオ」の順に移動します。

3. ナビゲーション・タブのツールバーで「インポート」をクリックします。

4. 「インポート・モード」を選択し、シナリオXMLファイルでエクスポート・ファイルを選択します。

5. 「シナリオのインポート」をクリックします。

シナリオのエクスポート

シナリオをエクスポートするには:

1. 「参照」ナビゲーション・タブを選択します。

2. 「ランタイム」→「シナリオ/ロード計画」→「シナリオ」の順に移動します。

3. ナビゲーション・タブのツールバーで「エクスポート」をクリックします。

4. 「シナリオのエクスポート」ダイアログで、次のパラメータを設定します。

- 「シナリオ名」リストから、エクスポートするシナリオを選択します。

- 「Javaキャラクタ・セットのエンコーディング」フィールドに、エクスポート・ファイルのJavaキャラクタ・セットを入力します。

- 「XMLキャラクタ・セットのエンコーディング」フィールドに、エクスポート・ファイルに指定するエンコーディングを入力します。

- 「XMLバージョン」フィールドに、エクスポート・ファイルに指定するXMLバージョンを入力します。

- オプションで、リンクされている子オブジェクトをエクスポートする場合は、「依存オブジェクトを含める」を選択します。

5. 「シナリオのエクスポート」をクリックします。

シナリオの実行

シナリオを実行するには:

1. 「参照」ナビゲーション・タブを選択します。

2. 「ランタイム」→「シナリオ/ロード計画」→「シナリオ」の順に移動します。

3. 実行するシナリオを選択します。

4. ナビゲーション・タブのツールバーで「実行」をクリックします。

5. この実行の「エージェント」、「コンテキスト」および「ログ・レベル」を選択します。

6. 「シナリオの実行」をクリックします。

セッションの停止

実行中のセッションの通常の停止または即時停止を実行できます。ステータスが「完了」、「警告」または「エラー」のセッションは停止できません。

セッションを停止するには:

1. 「参照」ナビゲーション・タブを選択します。

2. 「ランタイム」→「セッション/ロード計画実行」→「セッション」の順に移動します。

3. 停止するセッションを選択します。

4. ナビゲーション・タブのツールバーで「停止」をクリックします。

セッションの再開

セッションを再開するには:

1. 「参照」ナビゲーション・タブを選択します。

2. 「ランタイム」→「セッション/ロード計画実行」→「セッション」の順に移動します。

3. 再開するセッションを選択します。

4. ナビゲーション・タブのツールバーで「再開」をクリックします。

5. 「セッションの再開」ダイアログで、次のパラメータを設定します:

- エージェント: リストから、新しいセッションの実行に使用するエージェントを選択します。

- ログ・レベル: リストからログ・レベルを選択します。変数の追跡を有効にするには、「実行」または「セッションの再開」ダイアログで「ログ・レベル6」を選択します。ログ・レベル6は、ログ・レベル5と動作は同じですが、変数の追跡が追加されています。

6. 「セッションの再開」をクリックします。

失効したセッションの除去

失効したセッションを除去するには:

1. 「参照」ナビゲーション・タブを選択します。

2. 「ランタイム」→「セッション/ロード計画実行」→「セッション」の順に移動します。

3. ナビゲーション・タブのツールバーで「クリーン」をクリックします。

4. 「失効したセッションの除去」ダイアログで、失効したセッションを除去する「エージェント」を選択します。

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

データ統計およびエラー・レコードの管理

Oracle Data Integratorコンソールでは、レコード統計などのセッションの詳細を参照できます。セッションでフロー・チェック中または静的チェック中にエラーのあるデータが検出されると、これらのエラーはエラー表に分離されます。Oracle Data Integratorコンソールを使用して、エラーのある行を参照および管理することもできます。

注意:

エラーのあるデータが検出されたセッションは、「警告」ステータスで終了します。

エラーのあるデータを表示するには:

1. 「参照」ナビゲーション・タブを選択します。

2. 「ランタイム」→「セッション/ロード計画実行」→「セッション」の順に使用して、指定のセッションに移動します。ナビゲーション・タブのツールバーでセッションを選択し、「ビュー」をクリックします。
セッション・ページが表示されます。

3. セッション・ページで、「関係」セクションに移動して、「レコード統計」タブを選択します。
このタブには、このセッションで対象となっている各物理表、およびレコード統計が表示されます。

4. 「エラー」列に表示されている番号をクリックします。エラー表の内容が表示されます。

- 制約タイプ、名前、メッセージの内容、検出日などでエラーをフィルタ処理できます。「フィルタ結果」をクリックして、フィルタを適用します。

- 「問合せ結果」表でエラーをいくつか選択し、「削除」をクリックしてこれらのレコードを削除します。

- すべてのエラーを削除する場合は、「すべて削除」をクリックします。

注意:

削除操作は元に戻すことができません。

23.2.4 ロード計画の管理

この項では、Oracle Data Integratorコンソールで使用できるロード計画に関連する操作について説明します。

この項では次の操作について記載しています:

- ロード計画のインポート

- ロード計画のエクスポート

- ロード計画の実行

- ロード計画実行の停止

- ロード計画実行の再開

ロード計画のインポート

ロード計画をインポートするには:

1. 「参照」ナビゲーション・タブを選択します。

2. 「ランタイム」→「シナリオ/ロード計画」→「ロード計画」の順に移動します。

3. ナビゲーション・タブのツールバーで「インポート」をクリックします。

4. 「ロード計画のインポート」ダイアログで、「インポート・モード」の値を選択し、「ロード計画XMLファイルの選択」フィールドでエクスポート・ファイルを選択します。

5. 「インポート」をクリックします。

注意:

以前にエクスポートしたロード計画をインポートする場合、インポートされるロード計画には、ロード計画が参照するシナリオは格納されていません。ロード計画で使用されるシナリオは、個別にインポートする必要があります。詳細は、シナリオのインポートを参照してください。

ロード計画のエクスポート

ロード計画をエクスポートするには:

1. 「参照」ナビゲーション・タブを選択します。

2. 「ランタイム」→「シナリオ/ロード計画」→「ロード計画」の順に移動します。

3. エクスポートするロード計画を選択します。

4. ナビゲーション・タブのツールバーで「エクスポート」をクリックします。

5. 「エクスポート」ダイアログで、次のパラメータを設定します:

- 「ロード計画名」リストから、エクスポートするロード計画を選択します。

- 「Javaキャラクタ・セットのエンコーディング」フィールドに、エクスポート・ファイルのJavaキャラクタ・セットを入力します。

- 「XMLキャラクタ・セットのエンコーディング」フィールドに、エクスポート・ファイルに指定するエンコーディングを入力します。

- 「XMLバージョン」フィールドに、エクスポート・ファイルに指定するXMLバージョンを入力します。

- オプションで、リンクされている子オブジェクトをエクスポートする場合は、「依存オブジェクトを含める」を選択します。

6. 「エクスポート」をクリックします。

注意:

ロード計画のエクスポートには、ロード計画が参照するシナリオは含まれません。ロード計画で使用されるシナリオは、個別にエクスポートする必要があります。詳細は、シナリオのエクスポートを参照してください。

ロード計画の実行

ロード計画を実行するには:

1. 「参照」ナビゲーション・タブを選択します。

2. 「ランタイム」→「シナリオ/ロード計画」→「ロード計画」の順に移動します。

3. 実行するロード計画を選択します。

4. ナビゲーション・タブのツールバーで「実行」をクリックします。

5. 「論理エージェント」、「コンテキスト」、「ログ・レベル」の値を選択し、ロード計画で変数を使用する場合は、ロード計画変数の「起動値」を指定します。

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

ロード計画実行の停止

ロード計画実行に対して、通常の停止または即時停止を実行できます。実行中または待機中のロード計画実行を停止できます。

ロード計画実行を停止するには:

1. 「参照」ナビゲーション・タブを選択します。

2. 「ランタイム」→「セッション/ロード計画実行」→「ロード計画実行」の順に移動します。

3. 停止するロード計画実行を選択します。

4. ナビゲーション・タブのツールバーで「停止」をクリックします。

ロード計画実行の再開

ロード計画の実行を再開できるのは、現在のロード計画インスタンスに対して選択された実行がエラー・ステータスであり、さらに、同じロード計画の他のインスタンスが現在実行されていない場合のみです。

ロード計画実行を再開するには:

1. 「参照」ナビゲーション・タブを選択します。

2. 「ランタイム」→「セッション/ロード計画実行」→「ロード計画実行」の順に移動します。

3. 再開するロード計画実行を選択します。

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

5. ナビゲーション・タブのツールバーで「再開」をクリックします。

23.2.5 ログのパージ

この項では、Oracle Data Integratorコンソールで、過去のセッションまたはロード計画実行(あるいはその両方)をログから削除することで、ログをパージする方法について説明します。

ログをパージするには:

1. 「参照」ナビゲーション・タブを選択します。

2. 「ランタイム」→「セッション/ロード計画実行」の順に移動します。

3. ナビゲーション・タブのツールバーで「パージ」をクリックします。

4. 「セッション/ロード計画実行のパージ」ダイアログで、表23-1にリストされているパージ・パラメータを設定します。

表23-1 ログのパージ・パラメータ

パラメータ

説明

パージ・タイプ

パージするオブジェクトを選択します。

範囲

この時間範囲のセッションまたはロード計画実行(あるいはその両方)が削除されます。

セッション・ログのみのパージを選択した場合、ロード計画実行の一部として起動したセッションはフィルタ基準と一致した場合でもパージされません。ロード計画実行をパージした場合は、フィルタ基準に一致したロード計画実行、およびそのロード計画実行の一部として直接開始したセッションとその子/孫セッションが削除されます。

コンテキスト

このコンテキストで実行されたセッションまたはロード計画実行(あるいはその両方)が削除されます。

エージェント

このエージェントによって実行されたセッションまたはロード計画実行(あるいはその両方)が削除されます。

ステータス

このステータスのセッションまたはロード計画実行(あるいはその両方)が削除されます。

ユーザー

このユーザーによって実行されたセッションまたはロード計画実行(あるいはその両方)が削除されます。

名前

このセッション名と一致するセッションまたはロード計画実行(あるいはその両方)が削除されます。%をワイルドカードとして使用して、セッション名マスクを指定できます。

シナリオ・レポートのパージ

「シナリオ・レポートのパージ」を選択した場合は、シナリオ・レポート(各シナリオの実行ノードの下に表示されるレポート)もパージされます。

指定したフィルタと一致するセッションまたはロード計画実行(あるいはその両方)のみが次のように削除されます。

- セッション・ログのみのパージを選択した場合、ロード計画実行の一部として開始したセッションはフィルタ基準と一致した場合でもパージされません。

- ロード計画実行をパージした場合は、フィルタ基準に一致したロード計画実行、およびそのロード計画実行の一部として直接開始したセッションとその子/孫セッションが削除されます。

- ロード計画実行がフィルタと一致した場合は、関連するすべてのセッションもフィルタ基準と一致するかどうかに関係なくパージされます。

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

Oracle Data Integratorコンソールによって、セッションまたはロード計画実行(あるいはその両方)がログから削除されます。

23.2.6 データ系統およびフロー・マップの使用

この項では、Oracle Data Integratorコンソールで使用できる、データ系統およびフロー・マップ機能の使用方法について説明します。

- 「データ系統」では、特定のデータストアの観点からデータのフローを表示するグラフが示されます。このグラフでは、このデータ・フローを前後に移動でき、データ・フローをたどることもできます。

- 「フロー・マップ」では、データ構造(モデル、サブモデルおよびデータストア)と設計時オブジェクト(プロジェクト、フォルダ、パッケージ、インタフェース)間の関連のマップが示されます。このグラフでは、複数のデータ構造とそのデータ・フローで構成されるマップを描画できます。

この項では次の操作について記載しています:

- データ系統の使用

- フロー・マップの使用

データ系統の使用

データ系統を表示するには:

1. 「参照」ナビゲーション・タブを選択します。

2. 「デザインタイム」→「モデル」→「データ系統」の順に移動します。

3. ナビゲーション・タブのツールバーで「表示」をクリックします。

4. データ系統ページで、モデルを選択し、次にこのモデルのサブモデルとデータストアを選択します。

5. データストア・ノード間のインタフェースを表示する場合は、「インタフェースの表示」を選択します。

6. 「命名オプション」セクションで、データストア名およびインタフェース名に付加する接頭辞を選択します。

7. 「ビュー」をクリックして、データ系統グラフを描画します。このグラフは、ステップ4で選択したデータストアを中心に描画されます。
このグラフでは、次のアクションを使用できます:

- 「戻る」をクリックして、「データ系統」オプションに戻り、グラフを再描画します。

- ハンド・ツールを使用し、データストアをクリックして、このデータストアを中心に系統を再描画します。

- ハンド・ツールを使用し、インタフェースをクリックして、このインタフェースのページを表示します。

- 矢印ツールを使用して、グループを展開/縮小します。

- 移動ツールを使用して、グラフを移動します。

- ズーム・イン/ズーム・アウト・ツールを使用して、グラフのサイズを変更します。

- 表示オプションを選択して表示オプションを変更し、この新しいオプションでグラフをリフレッシュします。

フロー・マップの使用

フロー・マップを表示するには:

1. 「参照」ナビゲーション・タブを選択します。

2. 「デザインタイム」→「モデル」→「フロー・マップ」の順に移動します。

3. ナビゲーション・タブのツールバーで「表示」をクリックします。

4. データ系統ページで、モデルを1つ以上選択します。すべてのモデルを選択する場合は、「すべて」を選択します。

5. プロジェクトを1つ以上選択します。すべてのプロジェクトを選択する場合は、「すべて」を選択します。

6. 「マップの詳細レベルの選択」セクションで、マップの粒度を選択します。ここで選択するオブジェクトがグラフのノードになります。
マップにデータ構造のみを表示する場合は、「マップ内にプロジェクト、フォルダ、パッケージまたはインタフェースを表示しない。」を選択します。

7. オプションで、マップ内のオブジェクトのグループ化方法の指定セクションのオプションを使用して、マップ内のデータ構造および設計時オブジェクトのグループ化を指定します。

8. 「ビュー」をクリックして、フロー・マップのグラフを描画します。
このグラフでは、次のアクションを使用できます:

- 「戻る」をクリックして、「フロー・マップ」オプションに戻り、グラフを再描画します。

- ハンド・ツールを使用し、マップ内のノード(データストア、インタフェースなどを表すノード)をクリックして、このオブジェクトのページを開きます。

- 矢印ツールを使用して、グループを展開/縮小します。

- 移動ツールを使用して、グラフを移動します。

- ズーム・イン/ズーム・アウト・ツールを使用して、グラフのサイズを変更します。

23.2.7 管理操作の実行

この項では、Oracle Data Integratorコンソールで使用できる様々な管理操作について説明します。これらの操作は、スーパーバイザ権限のあるユーザーが使用できます。

この項では次の操作について記載しています:

- リポジトリ接続の作成

- データ・サーバーまたは物理エージェントの接続のテスト

- リポジトリの管理

- Java EEエージェントの管理

リポジトリ接続の作成

リポジトリ接続は、Oracle Data Integratorコンソールに対する接続定義です。この接続には、Oracle Data Integratorのユーザーとパスワードの情報は含まれません。

リポジトリ接続を作成するには:

1. 「管理」ナビゲーション・タブで「リポジトリ接続」ノードに移動します。

2. ナビゲーション・タブのツールバーで「作成」をクリックします。このオブジェクトの「リポジトリ接続の作成」ダイアログが表示されます。

3. リポジトリ接続の値を指定します:

- 接続別名: ログイン・ページに表示される接続名。

- マスターJNDI URL: マスター・リポジトリ・データベースに接続するためのデータソースのJNDI URL。

- スーパーバイザ・ユーザー名: スーパーバイザ権限を持つOracle Data Integratorユーザーの名前。Oracle Data Integratorコンソールでリポジトリへの接続に使用されます。このユーザーのパスワードは、WLSまたはWAS資格証明ストアに宣言されている必要があります。

- 作業JNDI URL: 作業リポジトリ・データベースに接続するためのデータソースのJNDI URL。このフィールドに値を指定しない場合リポジトリ接続で許可されるのはマスターへの接続のみで、ナビゲーションはトポロジ情報に限定されます。

- JNDI URL: 環境ネーミング・コンテキスト(ENC)を使用する場合は、このオプションを選択します。このオプションを選択すると、アプリケーション・サーバーのJNDIディレクトリでデータ・ソースを識別するために、Oracle Data Integratorコンソールによって、データ・ソース名に文字列java:comp/env/が自動的に付加されます。JNDI標準は、Oracle WebLogic Serverではサポートされておらず、グローバル・データ・ソースに対してはサポートされていないことに注意してください。

- デフォルト: ログイン・ページでこのリポジトリ接続がデフォルトで選択されるようにする場合は、このオプションを選択します。

4. 「保存」をクリックします。新規リポジトリ接続が「管理」ナビゲーション・タブに表示されます。

データ・サーバーまたは物理エージェントの接続のテスト

この項では、Oracle Data Integratorコンソールで、データ・サーバーの接続または物理エージェントの接続をテストする方法について説明します。

データ・サーバーの接続をテストするには:

1. 「参照」ナビゲーション・タブを選択します。

2. 「トポロジ」→「データ・サーバー」の順に移動します。

3. 接続をテストするデータ・サーバーを選択します。

4. ナビゲーション・タブのツールバーで「テスト接続」をクリックします。

5. 「テスト接続」ダイアログで、次を選択します:

- 物理エージェント: テストを実行する物理エージェント。

- トランザクション: コマンドの実行対象のトランザクション。このパラメータは、このデータ・サーバーに接続時または切断時のコマンドが定義されている場合にのみ表示されます。0から9のトランザクションおよび「自動コミット」トランザクションは、(プロシージャまたはナレッジ・モジュールによる)セッションで作成された接続に相当します。「クライアント・トランザクション」は、クライアント・コンポーネント(ODIコンソールおよびStudio)に相当します。

6. 「テスト」をクリックします。

テストが機能した場合は、接続が正常に実行されましたと示すダイアログが表示されます。機能しない場合は、エラー・メッセージが表示されます。

物理エージェントの接続をテストするには:

1. 「参照」ナビゲーション・タブを選択します。

2. 「トポロジ」→「エージェント」→「物理エージェント」の順に移動します。

3. 接続をテストする物理エージェントを選択します。

4. ナビゲーション・タブのツールバーで「テスト接続」をクリックします。

テストが機能した場合は、接続が正常に実行されましたと示すダイアログが表示されます。機能しない場合は、エラー・メッセージが表示されます。

リポジトリの管理

Oracle Data Integratorコンソールでは、リポジトリに関する管理操作(作成、インポート、エクスポート)を実行できます。これらの操作は、「管理」ナビゲーション・タブの「リポジトリ」ノードから使用できます。これらの管理操作によって、Oracle Data Integrator Studioを介して使用できる管理操作がWebインタフェースに再作成され、ODIコンソールから環境の設定および保守が可能になります。

これらの操作の詳細は、第3章「Oracle Data Integratorリポジトリの管理」および第20章「エクスポート/インポート」を参照してください。

Java EEエージェントの管理

Oracle Data Integratorコンソールでは、物理エージェントへのJDBCデータソースの追加、およびテンプレートの作成による物理エージェントのWebLogic Serverへのデプロイが可能です。

Java EEエージェント、データソースおよびテンプレートの詳細は、第4章「トポロジの設定」を参照してください。

データソースを物理エージェントに追加するには:

1. 「参照」ナビゲーション・タブを選択します。

2. 「トポロジ」→「エージェント」→「物理エージェント」の順に移動します。

3. 管理するエージェントを選択します。

4. ナビゲーション・タブのツールバーで「編集」をクリックします。

5. 「データソースの追加」をクリックします。

6. このデータソースの「JNDI名」を指定し、「データ・サーバー名」を選択します。このデータソースは、Java EEエージェントがデプロイされるマシンからこのデータ・サーバーに接続するために使用されます。

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

8. 「保存」をクリックして、変更内容を物理エージェントに保存します。

物理エージェントのテンプレートを作成するには:

1. 「参照」ナビゲーション・タブを選択します。

2. 「トポロジ」→「エージェント」→「物理エージェント」の順に移動します。

3. 管理するエージェントを選択します。

4. ナビゲーション・タブのツールバーで「編集」をクリックします。

5. 「エージェント・デプロイ」をクリックします。

6. エージェント・デプロイ・ウィザードのステップに従います。このウィザードによって、サーバー・テンプレート生成ウィザードがWebインタフェースに再作成されます。詳細は、第4章「Java EEアプリケーション・サーバーでのエージェントのデプロイ」を参照してください。

第VII部

セキュリティ設定の管理

この部では、Oracle Data Integratorでのセキュリティ設定の管理方法について説明します。

この部の内容は次のとおりです。

- 第24章「Oracle Data Integratorでのセキュリティの管理」

24 Oracle Data Integratorでのセキュリティの管理

この章では、Oracle Data Integratorでのセキュリティの設定方法について説明します。また、Oracle Data Integratorのセキュリティの概念およびコンポーネントの概要についても説明します。

この章の内容は、次のとおりです。

- 24.1項「Oracle Data Integratorのセキュリティの概要」

- 24.2項「セキュリティ・ポリシーの設定」

- 24.3項「高度なセキュリティ」

24.1 Oracle Data Integratorのセキュリティの概要

Oracle Data Integratorのセキュリティは、Oracle Data Integratorの設計時アーティファクト、ランタイム・アーティファクトおよびコンポーネントに対して認証されたユーザーが実行したすべてのアクションを保護するために使用されます。

セキュリティは、ユーザーおよびプロファイルの周囲に構築されます。これらのユーザーおよびプロファイルには、セキュリティ管理者によって、オブジェクト・タイプ(プロジェクト、モデル、インタフェースなど)または特定のオブジェクト・インスタンス(データ・ウェアハウス・プロジェクト、ODSプロジェクトなど)に対するメソッド(編集、削除など)が付与されています。

Oracle Data Integratorに関するすべてのセキュリティ情報はマスター・リポジトリに格納されます。

この項の内容は次のとおりです。

- 24.1.1項「オブジェクト、インスタンスおよびメソッド」

- 24.1.2項「プロファイル」

- 24.1.3項「ユーザー」

24.1.1 オブジェクト、インスタンスおよびメソッド

オブジェクトは、Oracle Data Integratorを介して処理された設計時アーティファクトまたはランタイム・アーティファクトの表現です。たとえば、エージェント、モデル、データストア、シナリオ、インタフェースおよびリポジトリさえもオブジェクトです。特定のオブジェクトには、2つの名前(エージェント/コンテキスト、プロファイル/メソッドなど)があります。これらのオブジェクトは、オブジェクト間のリンクを表し、これらのリンクもオブジェクトです。たとえば、エージェント/コンテキストは、コンテキストを介して関連付けられた物理/論理エージェントに対応しています。トポロジにあるこの関連付けは、このオブジェクトに対する権限によって変更できます。

インスタンスは、オブジェクトに関する特定の発生例です。たとえば、データウェアハウス・プロジェクトは、プロジェクト・オブジェクトのインスタンスです。

メソッドは、オブジェクトに対して実行できるアクションです。各オブジェクトには、事前定義された一連のメソッドがあります。

注意:

Oracle Data Integratorのオブジェクト・インスタンスとメソッドの概念は、オブジェクト指向プログラミングで使用されている概念に類似しています。

警告:

オブジェクトとメソッドはセキュリティ・ナビゲータに表示されますが、Oracle Data Integratorに事前定義されているオブジェクトとメソッドは変更できません。

24.1.2 プロファイル

プロファイルには、Oracle Data Integratorを使用するための一連の権限が含まれています。1つ以上のプロファイルをユーザーに割り当て、これらの権限をまとめたものをこのユーザーに付与できます。

プロファイル・メソッドは、オブジェクト・タイプのメソッドのプロファイルに付与される認可です。付与された各メソッドによって、このプロファイルのユーザーは、オブジェクト・タイプ(プロジェクト、モデル、データストアなど)のインスタンスに対してアクション(編集、削除など)を実行できます。

プロファイルに付与されたメソッドは、セキュリティ・ナビゲータの「プロファイル」アコーディオンにある該当プロファイルの下に表示されます。特定プロファイルにメソッドが表示されない場合、そのプロファイルからメソッドにアクセスすることはできません。

メソッドは、次のように一般権限または一般以外の権限として付与できます。

- 一般権限として付与されるメソッドは、オブジェクトのすべてのインスタンスにデフォルトで付与されます。

- 一般以外の権限として付与されるメソッドは、オブジェクトのすべてのインスタンスにはデフォルトで付与されませんが、インスタンスごとに付与できます。

汎用プロファイルと非汎用プロファイル

汎用プロファイルでは、すべてのオブジェクト・メソッドに対して「一般権限」オプションが選択されます。これは、このようなプロファイルのユーザーは、汎用プロファイルが認可されているオブジェクトのすべてのインスタンスに関するすべてのメソッドに対して、デフォルトで認可されることを意味します。

非汎用プロファイルでは、すべてのオブジェクト・メソッドに対して「一般権限」オプションが選択されないため、インスタンスのすべてのメソッドがデフォルトで認可されません。管理者は、各インスタンスのメソッドに対する権限をユーザーに付与する必要があります。

セキュリティ管理者がユーザーにどのインスタンスに対する権限もデフォルトで付与せず、インスタンスごとに権限を付与する場合は、そのユーザーに非汎用プロファイルを指定する必要があります。

セキュリティ管理者がユーザーにオブジェクト・タイプのすべてのインスタンスに対する権限をデフォルトで付与する場合は、そのユーザーに汎用プロファイルを指定する必要があります。

組込みプロファイル

Oracle Data Integratorには組込みプロファイルがいくつかあり、セキュリティ管理者は、作成したユーザーにこれらのプロファイルを割り当てることができます。

表24-1に、Oracle Data Integratorに付属の組込みプロファイルを示します。

表24-1 組込みプロファイル

プロファイル名

説明

CONNECT

Oracle Data Integratorに接続するための基本権限を付与するプロファイル。別のプロファイルとともに付与する必要があります。

DESIGNER

開発操作を実行するための権限を付与するプロファイル。このプロファイルは、主にプロジェクトで作業するユーザーに対して使用します。

NG_DESIGNER

非汎用バージョンのDESIGNERプロファイル。

METADATA_ADMIN

メタデータを管理するための権限を付与するプロファイル。このプロファイルは、主にモデルで作業するユーザーに対して使用します。

NG_METADATA_ADMIN

非汎用バージョンのMETATADA_ADMINプロファイル。

OPERATOR

ランタイム・オブジェクトを管理するための権限を付与するプロファイル。このプロファイルは、本番のユーザーに対して使用します。

REPOSITORY_EXPLORER

オブジェクトを表示するための権限を付与するプロファイル。このプロファイルは、オブジェクトを変更する必要のないユーザーに対して使用します。

NG_REPOSITORY_EXPLORER

非汎用バージョンのREPOSITORY_EXPLORERプロファイル。

SECURITY_ADMIN

セキュリティを編集するための権限を付与するプロファイル。このプロファイルはセキュリティ管理者に対して使用します。

TOPOLOGY_ADMIN

トポロジを編集するための権限を付与するプロファイル。このプロファイルは、システム管理者またはOracle Data Integrator管理者に対して使用します。

VERSION_ADMIN

バージョンおよびソリューションを作成、リストアおよび編集するための権限を付与するプロファイル。このプロファイルは、プロジェクト・マネージャや、バージョン管理操作の実行を担当する開発者に対して使用します。

NG_VERSION_ADMIN

非汎用バージョンのVERSION_ADMINプロファイル。

注意:

組込みプロファイルは変更しないでください。これは、これらのプロファイルが、Oracle Data Integratorの新規機能の保護に関連しているためです。自分のプロファイルまたは既存のプロファイルをカスタマイズする場合は、組込みプロファイルの複製を作成し、そのコピーをカスタマイズすることをお薦めします。

24.1.3 ユーザー

ユーザーはOracle Data Integratorのユーザーで、リポジトリへの接続に使用されるログイン名に対応しています。

ユーザーは、次の権限を継承します。

- 様々なプロファイルに付与されているすべての権限

- ユーザーに割り当てられているオブジェクトまたはインスタンス(あるいはその両方)に対する権限

ユーザー・メソッドは、ユーザーに付与されるオブジェクト・タイプのメソッドに対する権限です。付与された各メソッドによって、ユーザーは、オブジェクト・タイプ(プロジェクト、モデル、データストアなど)のインスタンスに対してアクション(編集、削除など)を実行できます。これらのメソッドはプロファイル・メソッドに類似していますが、ユーザーに適用されます。

ユーザーには、特定の作業リポジトリのインスタンスに対する権限を付与できます(インスタンスが存在する場合)。たとえば、開発者ユーザーに、PRODUCTIONリポジトリではなく、DEVELOPMENTリポジトリのLOAD_DATAWAREHOUSEシナリオに対する編集権限を付与できます。

オブジェクト・インスタンスによる認可は、オブジェクト・インスタンス上のユーザーに付与されます。このオブジェクト・インスタンスのこのユーザー特定のメソッドに権限を付与できます。

ユーザーのツリーに、特定のインスタンスに対するオブジェクト・インスタンス別認可が存在している場合は、そのユーザーに、特定のインスタンスのオブジェクト・メソッドに対する特定の権限が付与されています(これらの権限はオブジェクト・インスタンスのエディタで指定します)。インスタンスがユーザーのインスタンスのツリーに表示されない場合は、そのオブジェクト・タイプに対してユーザー・メソッド権限またはプロファイル・メソッド権限が適用されます。

インスタンスはマスター・リポジトリに関連付けられている別の作業リポジトリにレプリケートできるため、オブジェクト・インスタンス別認可は、マスター・リポジトリに関連付けられている作業リポジトリの1つまたは複数、あるいはすべてに対して定義できます。たとえば、LOAD_DATAWAREHOUSEシナリオ・インスタンスは、DEVELOPMENT、TESTおよびPRODUCTIONの各リポジトリにバージョニングなどを使用してレプリケートできます。インスタンスの権限は、リポジトリに応じて変更されます。

たとえば、一般的に、開発リポジトリのプロジェクトはテスト・リポジトリにレプリケートされます。開発者には、開発リポジトリ内のプロジェクトに対する編集権限が付与されますが、テスト・リポジトリでは付与されません。テスト・リポジトリで付与されるのは、プロジェクトに対する表示権限のみです。

24.2 セキュリティ・ポリシーの設定

この項では、様々なセキュリティの概念を使用してOracle Data Integratorでセキュリティを実施する方法について説明します。

この項は次のトピックで構成されています。

- 24.2.1項「セキュリティ・ポリシーの手法」

- 24.2.2項「プロファイルの管理」

- 24.2.3項「ユーザーの管理」

- 24.2.4項「権限の管理」

24.2.1 セキュリティ・ポリシーの手法

Oracle Data Integratorのセキュリティを定義するには、主に次の2つの手法があります。

- 保護強化手法: ユーザーにはオブジェクトに対する認可がデフォルトで付与されません。この手法で使用するのは、非汎用プロファイルのみです。セキュリティ管理者は、ユーザーにオブジェクト・インスタンスに対する認可を付与する必要があります。このポリシーの構成は、権限をインスタンス別に管理する必要があるため複雑です。

- 一般的手法: ユーザーは、保持しているプロファイルの権限を継承します。このポリシーは、ほとんどの環境に適しており、構成が簡単です。

保護強化手法を実装するには:

1. ユーザーを作成します。

2. ユーザーに非汎用プロファイル(組込みまたはカスタマイズ)を指定します。

3. オブジェクト・インスタンスの作成後に、その権限をユーザーに付与します。この操作は、新規のインスタンスすべてについて繰り返す必要があります。

一般的手法を実装するには:

1. ユーザーを作成します。

2. ユーザーに汎用プロファイル(組込みまたはカスタマイズ)を指定します。

注意:

汎用プロファイルと非汎用プロファイルを同時に使用すると、2つの手法を組み合せることができます。たとえば、ユーザーに対してDESIGNERとNG_METADATA_ADMINを使用すると、一般的手法でプロジェクトを管理し、保護強化手法でモデルを管理できます。

24.2.2 プロファイルの管理

プロファイルは作成または削除できます。また、ユーザーに割り当てたプロファイルをカスタマイズするために複製できます。

24.2.2.1 新規プロファイルの作成

プロファイルを作成するには:

1. セキュリティ・ナビゲータで、「プロファイル」アコーディオンを展開します。

2. 「プロファイル」アコーディオンのツールバーで、「新規プロファイル」をクリックします。

3. 「名前」フィールドに、プロファイルの名前を入力します。

4. 「ファイル」メイン・メニューから「保存」を選択します。

新規プロファイルが表示されます。

24.2.2.2 プロファイルの複製

プロファイルを複製するには:

1. セキュリティ・ナビゲータで、「プロファイル」アコーディオンを展開します。

2. プロファイルのリストから複製するプロファイルを選択します。

3. 右クリックして「複製」を選択します。

新規プロファイル(元のプロファイルのコピー)が表示されます。

24.2.2.3 プロファイルの削除

プロファイルを削除するには:

1. セキュリティ・ナビゲータで、「プロファイル」アコーディオンを展開します。

2. プロファイルのリストから削除するプロファイルを選択します。

3. 右クリックして「削除」を選択します。

4. 「確認」ダイアログで、「OK」をクリックします。

プロファイルがリストから削除されます。このプロファイルが付与されているすべてのユーザーは、このプロファイルに関連付けられている権限を失います。

24.2.3 ユーザーの管理

ユーザーは作成または削除できます。また、組込みプロファイルまたはカスタマイズしたプロファイルをユーザーに割り当てたり、それらのプロファイルを削除することができます。

24.2.3.1 新規ユーザーの作成

ユーザーを作成するには:

1. セキュリティ・ナビゲータで、「ユーザー」アコーディオンを展開します。

2. 「ユーザー」アコーディオンのツールバーで、「新規ユーザー」をクリックします。

3. 「名前」フィールドに、ユーザーの名前を入力します。

4. ユーザーの「イニシャル」を入力します。

5. 次のいずれかの操作を行います。

- 内部認証を使用する場合は、「パスワードを入力してください」をクリックし、このユーザーのパスワードを入力します。

- 外部認証を使用する場合は、「GUIDの取得」をクリックし、新規ユーザーを外部認証サービスのユーザーに関連付けます。Oracle Data Integratorのユーザー名は、外部認証記憶域のユーザー・ログインと一致している必要があります。一致が検出されると、グローバルの一意IDが「外部GUID」フィールドに表示されます。

6. 「ファイル」メイン・メニューから「保存」を選択します。

新規ユーザーが「ユーザー」アコーディオンに表示されます。

24.2.3.2 ユーザーへのプロファイルの割当て

プロファイルをユーザーに割り当てるには:

1. セキュリティ・ナビゲータで、「ユーザー」アコーディオンおよび「プロファイル」アコーディオンを展開します。

2. 割り当てるプロファイルを選択し、割当先のユーザーにドラッグします。

3. 「確認」ダイアログで、「OK」をクリックします。

このプロファイルが、割当先ユーザーの「プロファイル」の下に表示されます。このプロファイルに関連付けられている権限がユーザーに即時に付与されます。

24.2.3.3 ユーザーのプロファイルの削除

ユーザーのプロファイルを削除するには:

1. セキュリティ・ナビゲータで、「ユーザー」アコーディオンを展開します。

2. ユーザーの下にある「プロファイル」ノードを展開します。

3. 削除するプロファイルを右クリックします。

4. 「削除」を選択します。

5. 「確認」ダイアログで、「OK」をクリックします。

該当のプロファイルがこのユーザーの「プロファイル」から削除されます。このプロファイルを介してユーザーに割り当てられていたすべての権限が削除されます。

24.2.3.4 ユーザーの削除

ユーザーを削除するには:

1. セキュリティ・ナビゲータで、「ユーザー」アコーディオンを展開します。

2. ユーザーのリストから削除するユーザーを選択します。

3. 右クリックして「削除」を選択します。

4. 確認ウィンドウで「OK」をクリックします。

ユーザーがリストから削除されます。

24.2.4 権限の管理

ユーザーまたはプロファイルを作成した後は、それらに権限を付与できます。付与できるのは、オブジェクト・タイプに適用するプロファイル・メソッドとユーザー・メソッド、および特定のオブジェクト・インスタンスに適用するオブジェクト・インスタンス別認可(ユーザー用のみ)です。

24.2.4.1 プロファイル・メソッドまたはユーザー・メソッドの付与

プロファイル・メソッドまたはユーザー・メソッドを付与するには:

1. セキュリティ・ナビゲータで、「ユーザー」アコーディオンまたは「プロファイル」アコーディオンを展開します。

2. 「オブジェクト」アコーディオンを展開し、権限を付与するオブジェクトのノードを展開します。

3. 付与するメソッドを選択し、そのメソッドを付与するユーザーまたはプロファイルにドラッグします。

4. 確認ウィンドウで「OK」をクリックします。

メソッドがユーザーまたはプロファイルに付与されます。このメソッドは、ユーザーの「オブジェクト」ノードの下またはプロファイルの下に表示されます。

注意:

オブジェクトのすべてのメソッドの権限を付与するには、メソッドの1つをドラッグするかわりに、オブジェクト自体をユーザーまたはプロファイルにドラッグします。

24.2.4.2 プロファイル・メソッドまたはユーザー・メソッドの取消し

プロファイル・メソッドまたはユーザー・メソッドを取り消すには:

1. セキュリティ・ナビゲータで、「ユーザー」アコーディオンまたは「プロファイル」アコーディオンを展開します。

2. 権限を取り消す「プロファイル」、またはユーザーの下にある「オブジェクト」ノードを展開し、取り消す必要があるオブジェクトのメソッドを展開します。

3. メソッドを右クリックし、「削除」を選択します。

4. 「確認」ダイアログで、「OK」をクリックします。

メソッドがユーザーまたはプロファイルから取り消されます。このユーザーまたはプロファイルの「オブジェクト」ノードの下のメソッド・リストから、このメソッドの表示が消去されます。

24.2.4.3 オブジェクト・インスタンス別認可の付与

オブジェクト・インスタンス別認可をユーザーに付与するには:

1. セキュリティ・ナビゲータで、「ユーザー」アコーディオンを展開します。

2. デザイナ・ナビゲータ、オペレータ・ナビゲータまたはトポロジ・ナビゲータで、権限を付与するオブジェクトが格納されているアコーディオンを展開します。

3. オブジェクトを選択し、「ユーザー」アコーディオンのユーザーにドラッグします。オブジェクト・インスタンス別認可のエディタが表示されます。このエディタには、このインスタンスで使用可能なメソッドのリストと、このオブジェクトに格納されているインスタンスが表示されます。たとえば、プロジェクト・インスタンスの権限を付与する場合は、そのプロジェクトに格納されているフォルダ、インタフェースなどがエディタに表示されます。

4. 付与する権限をオブジェクトおよびメソッドごとに微調整します。リストから選択したメソッドには、次の簡単な権限ポリシーを実装できます。

- すべてのリポジトリのすべてのメソッドを付与するには「すべてのリポジトリ内の選択したメソッドを許可」をクリックします。

- すべてのリポジトリのすべてのメソッドを拒否するには「すべてのリポジトリ内の選択したメソッドを拒否」をクリックします。

- 特定の作業リポジトリのすべてのメソッドを付与するには、「選択したリポジトリ内の選択したメソッドを許可」をクリックし、リストからリポジトリを選択します。

5. 「ファイル」メイン・メニューから「保存」を選択します。

注意:

オブジェクト・インスタンス別認可をサポートしているのは、特定のオブジェクトのみです。これらのオブジェクト・タイプは、各ユーザーの「インスタンス」ノードの下にリストされています。

ユーザーに一般権限があるメソッドは、オブジェクト・インスタンス・エディタにリストされません。

24.2.4.4 オブジェクト・インスタンス別認可の取消し

オブジェクト・インスタンス別認可をユーザーから取り消すには:

1. セキュリティ・ナビゲータで、「ユーザー」アコーディオンを展開します。

2. 権限を取り消すユーザーの下にある「インスタンス」ノードを展開します。

3. 認可を取り消すインスタンスを右クリックし、「削除」を選択します。

4. 「確認」ダイアログで、「OK」をクリックします。

オブジェクト・インスタンスの認可が、ユーザーから取り消されます。

注意:

オブジェクト・インスタンス別認可を編集し、特定のメソッドをユーザーに対して拒否することで、メソッドごとに権限を取り消すこともできます。この操作の後に、インスタンスに対する権限がユーザーになくなると、そのインスタンスはセキュリティ・マネージャのツリーから削除されます。

24.2.4.5 未使用認可のクリーン・アップ

オブジェクト・インスタンス別認可は、マスター・リポジトリに格納されています。すべての作業リポジトリからオブジェクトを削除した場合でも、その認可の削除が必要とは限りません。特定の未使用認可が、エクスポート・ファイルやストアド・ソリューションに現在格納されているオブジェクトを参照している場合など、それらの認可の保持が必要な場合があります。

未使用認可をマスター・リポジトリから削除するには、セキュリティ・クリーン・アップ・ツールを定期的に使用する必要があります。未使用認可は、それらの認可がマスター・リポジトリまたはすべての作業リポジトリに存在しないオブジェクトを参照している場合に削除されます。

注意:

マスター・リポジトリに関連付けられているすべての作業リポジトリは、オブジェクトの存在を確認するためにアクセスできる必要があります。

未使用認可をクリーン・アップするには:

1. セキュリティ・ナビゲータのツールバー・メニューから「セキュリティ設定のクリーンアップ」を選択します。「セキュリティ・クリーンアップ・ツール」ダイアログが表示されます。

2. 「クリーニング可能」タブで、削除するクリーニング可能セキュリティ設定に対して「クリーン」を選択します。削除できないセキュリティ設定は、「クリーニング不可」タブに表示されます。

3. 「OK」をクリックし、選択したセキュリティ設定をクリーン・アップします。

24.3 高度なセキュリティ

この項では、いくつかの高度なセキュリティ機能を使用して、Oracle Data Integratorのセキュリティを向上させる方法について説明します。

この項の内容は次のとおりです。

- 24.3.1項「外部パスワード記憶域の設定」

- 24.3.2項「外部認証の設定」

- 24.3.3項「パスワード・ポリシーの実施」

- 24.3.4項「Oracle Access Manager 11gを使用したOracle Data IntegratorコンソールおよびEnterprise Managerのシングル・サインオン(SSO)の構成」

24.3.1 外部パスワード記憶域の設定

Oracle Java Platform Security(JPS)には、認証および認可のために標準のJavaセキュリティ・モデル・サービスが用意されています。

Oracle Data Integratorでは、すべてのセキュリティ情報がデフォルトでマスター・リポジトリに格納されます。このパスワード記憶域オプションは内部パスワード記憶域と呼ばれます。

Oracle Data Integratorでは、オプションで、重要なセキュリティ情報を格納するためにJPSを使用できます。Oracle Data IntegratorでJPSを使用すると、データ・サーバー・パスワードおよびコンテキスト・パスワードがJPS資格証明ストア・フレームワーク(CSF)に格納されます。このパスワード記憶域オプションは、外部パスワード記憶域と呼ばれます。

注意:

外部パスワード記憶域を使用した場合、ユーザー名、パスワード、権限などの他のセキュリティ詳細はマスター・リポジトリに残ります。外部認証を使用すると、認証を外部化し、ユーザーとパスワードをアイデンティティ・ストアに格納できます。詳細は、24.3.2項「外部認証の設定」を参照してください。

外部パスワード記憶域オプションを使用するには、JPSで構成されたWebLogic Serverインスタンスをインストールする必要があり、すべてのOracle Data Integratorコンポーネント(ランタイム・エージェントを含む)が、リモート資格証明ストアにアクセスできる必要があります。詳細は、Oracle Fusion Middlewareアプリケーション・セキュリティ・ガイドのOPSSを使用するためのJavaEEアプリケーションの構成を参照してください。

24.3.1.1 パスワード記憶域の設定

パスワード記憶域を設定または変更するには、次の4つの方法があります。

- マスター・リポジトリのインポート: パスワード記憶域を変更できます。

- マスター・リポジトリの作成: パスワード記憶域を定義できます。

- パスワード記憶域の切替え: 既存のマスター・リポジトリのパスワード記憶域を変更します。

- パスワード記憶域のリカバリ: 資格証明ストアのキャッシュをリカバリできます。

24.3.1.2 パスワード記憶域の切替え

Oracle Data Integratorリポジトリのパスワード記憶域を切り替えると、データ・サーバーとコンテキストのパスワードの格納方法が変更されます。この操作は、スーパーバイザ・ユーザーが実行する必要があります。

データ・サーバーのパスワードのパスワード記憶域オプションを変更するには、パスワード記憶域の切替えウィザードを使用します。

パスワード記憶域の切替えウィザードを起動する前に、次のタスクを実行します。

- Oracle Data Integrator Studioをリポジトリから切断します。

- Oracle Data Integratorリポジトリを使用しているすべてのコンポーネントをシャットダウンします。

パスワード記憶域の切替えウィザードを起動するには:

1. 「ODI」メイン・メニューから「パスワード記憶域」→「切替え」の順に選択します。

2. Oracle Data Integratorのマスター・リポジトリのログイン詳細を、マスター・リポジトリへの接続のときに定義したとおりに指定します。

3. 「次へ」をクリックします。

4. パスワード記憶域を次のように選択します。

- パスワードをOracle Data Integratorリポジトリに格納する場合は、「内部パスワード記憶域」を選択します。

- JPS資格証明ストア・フレームワーク(CSF)を使用して、データ・サーバーおよびコンテキストのパスワードを格納する場合は、「外部パスワード記憶域」を選択します。
外部パスワード記憶域を選択した場合は、表24-2の説明に従ってMBeanサーバー・パラメータを指定し、資格証明ストアにアクセスします。次に「テスト接続」をクリックし、MBeanサーバーへの接続を確認します。

表24-2 MBeanサーバー・パラメータ

ホスト

MBeanサーバー・ホスト(例: mymachine.oracle.com)

JMXポート

MBeanサーバー・ポート(例: 7001)

ユーザー

MBeanサーバー・ユーザー名(例: weblogic)

パスワード

MBeanサーバー・パスワード(例: weblogic)

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

パスワード記憶域オプションが変更されました。これで、Oracle Data Integratorリポジトリに再接続できます。

24.3.1.3 パスワード記憶域のリカバリ

Oracle Data Integratorでは、外部パスワード記憶域がクラッシュした場合にのみ使用されるパスワード・リカバリ・サービスを提供しています。この手順を使用すると、外部記憶域を使用できなくなるため、パスワード記憶域は強制的に内部パスワード記憶域になります。この操作は、スーパーバイザ・ユーザーが実行する必要があります。

警告:

パスワード記憶域のリカバリを実行すると、コンテキストのパスワード、データ・サーバーのパスワード、作業リポジトリのjdbcパスワードおよびESS関連パスワードが失われ、トポロジ・ナビゲータで手動で再入力する必要があります。

パスワードのリカバリを開始には、パスワード記憶域のリカバリ・ウィザードを使用します。

パスワード記憶域のリカバリ・ウィザードを起動するには:

1. 「ODI」メイン・メニューから「パスワード記憶域」→「リカバリ」の順に選択します。

2. Oracle Data Integratorのマスター・リポジトリのログイン詳細を、マスター・リポジトリへの接続のときに定義したとおりに指定します。

3. 「終了」をクリックします。

4. データ・サーバーおよびコンテキストのパスワードを手動で再入力します。詳細は、第4章「トポロジの設定」を参照してください。

24.3.2 外部認証の設定

Oracle Platform Security Services(OPSS)は、Javaアプリケーションの標準に基づいた移植可能なセキュリティ・フレームワークです。OPSSには、認証および認可のために標準のJavaセキュリティ・モデル・サービスが用意されています。

Oracle Data Integratorでは、すべてのユーザー情報およびユーザーの権限がデフォルトでマスター・リポジトリに格納されます。ユーザーがOracle Data Integratorにログインすると、マスター・リポジトリと照合してログが記録されます。この認証方法は、内部認証と呼ばれます。

Oracle Data Integratorでは、オプションでOPSSを使用して、外部のアイデンティティ・ストアと照合してユーザーを認証できます。アイデンティティ・ストアには、エンタープライズ・ユーザーとパスワードが記載されています。このようなアイデンティティ・ストアは、ユーザーおよびパスワードを定義し、Single-Sign On(SSO)を集中管理するために、アプリケーションではエンタープライズ・レベルで使用されます。このような構成で、リポジトリに含まれるのはエンタープライズ・ユーザーへの参照のみです。この認証方法は、外部認証と呼ばれます。

注意:

外部認証を使用した場合、外部化されるのはユーザーおよびパスワードのみです。Oracle Data Integratorの権限は、リポジトリ内に残ります。データ・サーバーおよびコンテキストのパスワードもマスター・リポジトリに残ります。データ・サーバーおよびコンテキストのパスワードを外部化するには、外部パスワード記憶域機能を使用します。詳細は、24.3.1項「外部パスワード記憶域の設定」を参照してください。

24.3.2.1 外部認証のためのODIコンポーネントの構成

外部認証オプションを使用するには、エンタープライズ・アイデンティティ・ストア(LDAP、Oracle Internet Directoryなど)を構成し、Oracle Data Integratorの各コンポーネントがデフォルトでそのアイデンティティ・ストアを参照するように構成する必要があります。

Oracle Data Integrator Studio

アイデンティティ・ストアに接続して使用するための構成は、jps-config.xmlファイルと呼ばれるOPSS構成ファイルにあります。詳細は、Oracle Fusion Middlewareアプリケーション・セキュリティ・ガイドのOPSSを使用するためのJavaEEアプリケーションの構成を参照してください。

このファイルをODI_HOME/client/odi/bin/ディレクトリにコピーします。Studioは、このアイデンティティ・ストアの構成を読み取り、構成したアイデンティティ・ストアと照合して認証します。

このファイルを別の場所に配置する場合は、ODI_HOME/client/odi/bin/odi.confファイルを編集し、構成ファイルの場所を設定するオプションを編集します。このオプションは、次の行に設定されています。

AddVMOption -Doracle.security.jps.config=./jps-config.xml

スタンドアロン・エージェント

アイデンティティ・ストアに接続して使用するための構成は、jps-config.xmlファイルと呼ばれるOPSS構成ファイルにあります。詳細は、Oracle Fusion Middlewareアプリケーション・セキュリティ・ガイドを参照してください。

このファイルをODI_HOME/agent/bin/ディレクトリにコピーします。このエージェントとコマンド行のスクリプトは構成したアイデンティティ・ストアと照合して認証されます。

Java EEコンポーネント

コンテナ(Java EEエージェント、Oracle Data Integratorコンソール)にデプロイされたOracle Data Integratorコンポーネントには、特定の構成は必要ありません。これらのコンポーネントでは、それぞれのコンテナの構成が使用されます。

Java EEコンテキストでのOPSS構成の詳細は、Oracle Fusion Middlewareアプリケーション・セキュリティ・ガイドのOracle Access Manager 10gを使用したSSO用のOAMアイデンティティ・アサーションの構成を参照してください。

24.3.2.2 認証モードの設定

パスワード記憶域を設定または変更するには、次の2つの方法があります。

- マスター・リポジトリの作成: 認証モードを定義できます。

- 認証モードの切替え: 既存のマスター・リポジトリの認証モードを変更します。

24.3.2.3 認証モードの切替え

Oracle Data Integratorリポジトリの認証モードを切り替えると、ユーザーの認証方法が変更されます。この操作は、スーパーバイザ・ユーザーが実行する必要があります。

警告:

外部認証から内部認証に切り替える際には、ユーザー・パスワードがアイデンティティ・ストアからリポジトリにコピーされません。パスワードは無効になります。すべてのユーザー・アカウントが期限切れになるので、切り替え時に作成されるSUPERVISORで再度アクティブにする必要があります。

内部認証から外部認証に切り替える際には、リポジトリに存在し、アイデンティティ・ストアのユーザーと一致するユーザーが自動的にマッピングされます。アイデンティティ・ストアのユーザーと一致しないユーザーは無効になります。スーパーバイザは、アイデンティティ・ストアの名前と一致するようにユーザーを編集する必要があります。

コンテキストのパスワードが失われます。データ・サーバーのパスワード、作業リポジトリのjdbcパスワードおよびESS関連パスワードは資格証明ストアから別の場所に移動します。

ユーザー認証モードを変更するには、認証モードの切替えウィザードを使用します。

認証モードの切替えウィザードを起動する前に、次のタスクを実行します。

- Oracle Data Integrator Studioをリポジトリから切断します。

- Oracle Data Integratorリポジトリを使用しているすべてのコンポーネントをシャットダウンします。

認証モードの切替えウィザードを使用するには:

1. 「ODI」メイン・メニューから「認証モードの切替え」を選択します。認証モードの切替えウィザードが表示されます。

2. Oracle Data Integratorのマスター・リポジトリのJDBC接続詳細を、マスター・リポジトリへの接続のときに定義したとおりに指定します。

3. 「次へ」をクリックします。

4. 現在使用中の認証モードによって、次のアクションが異なります。

- 内部認証を現在使用している場合は、外部認証に切り替えるようにプロンプトが表示されます。

- 外部認証を現在使用している場合は、内部認証に切り替えるようにプロンプトが表示されます。ウィザードがリポジトリに自動的に作成するSUPERVISORユーザーのパスワードを入力して確認する必要があります。

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

認証モードが変更されます。

- 外部認証から内部認証に切り替えた場合は、このウィザードに入力したパスワードを使用して、SUPERVISORでOracle Data Integratorリポジトリに再接続できます。接続した後は、各ユーザーを編集して再アクティブ化し、そのユーザーにパスワードを設定できます。

- 外部認証から内部認証に切り替えた場合は、スーパーバイザ権限のあるユーザーの1人としてOracle Data Integratorリポジトリに再接続し、切替え時に無効化されていたOracle Data Integratorユーザーを再度有効化できます。

内部認証への切替え後のユーザーの再アクティブ化

ユーザーを再アクティブ化するには:

1. セキュリティ・ナビゲータで、「ユーザー」アコーディオンを展開します。

2. ユーザーのリストから再度アクティブ化するユーザーを選択します。

3. 右クリックして「編集」を選択します。ユーザーのエディタが表示されます。

4. 「有効期限の許可」の選択を解除します。

5. このユーザーにパスワードを設定する場合は、「パスワードの変更」をクリックし、このユーザーの新規パスワードを入力します。

6. 「ファイル」メイン・メニューから「保存」を選択します。

外部認証への切替え後のユーザーの再有効化

ユーザーを再度有効化するには:

1. セキュリティ・ナビゲータで、「ユーザー」アコーディオンを展開します。

2. ユーザーのリストから再度有効化するユーザーを選択します。

3. 右クリックして「編集」を選択します。ユーザーのエディタが表示されます。

4. 「名前」フィールドに、アイデンティティ・ストアのログインのエンタープライズ・ユーザーと一致するユーザー名を入力します。

5. 「GUIDの取得」をクリックします。ユーザー名がアイデンティティ・ストアで一致した場合は、この外部ユーザーのGUIDが「外部GUID」フィールドに表示されます。

6. 「ファイル」メイン・メニューから「保存」を選択します。

24.3.2.4 ODI外部認証用のOPSS構成ファイルの構成

OPSS構成ファイルは、ポリシー、資格証明ストア、アイデンティティ・ストア、ログイン・モジュールおよび監査サービスを構成するために使用します。

デフォルトでは、OPSSサービスを構成するファイルには、jps-config.xml (Java EEアプリケーション用)またはjps-config-jse.xml (Java SEアプリケーション用)という名前が付けられます。

ODI Studio用の構成ファイルの構成

次のようにODI Studio用の構成ファイルを構成します:

1. LDAPサーバーのブートストラップ資格証明、つまりユーザー名とパスワードを隠すためのcwallet.ssoファイルを作成します(または、すでに存在する場合は更新します)。

1. <ODI_HOME>/oracle.odi.studio/oracledi/client/odi/binのodi_credtool.shスクリプトを実行します。

次を要求されます:

パラメータ

例

マップ名

Map:jps_map

キー名

Key:jps_key

ブートストラップ・ユーザー名

User name:cn=orcladmin

ブートストラップ・パスワード

マップ名とキー名は、非公開の資格証明との関連付けに使用するため、手順4で使用します。

2. 次のメッセージが表示されます。

The credential has been successfully added to the Oracle wallet file: cwallet.sso.
Please update your jps-config.xml file accordingly on values of the two properties:
bootstrap.security.principal.map,
bootstrap.security.principal.key

2. 同じディレクトリ内で、JPSテンプレート・ファイルのjps-config.xml_templateをjps-config.xmlにコピーします。デフォルトでは、このjps-config.xmlファイルがユーザーの外部認証に使用されます。

3. 前述の手順で入手したjps-config.xml内のLDAPサーバーを、使用するLDAPサーバー情報(URLや関連プロパティ、およびブートストラップ・マップとブートストラップ・キー)で構成します。

これらのLDAPプロパティは、このファイル内のJPS OID LDAPアイデンティティ・ストア・サービス・インスタンス構成セクション(<serviceInstance name="idstore.oid" provider="idstore.ldap.provider">で始まるセクション)にリストされています。

bootstrap.security.principal.mapおよびbootstrap.security.principal.keyプロパティは、手順1.1で入力したマップとキーと同じ値にしてください。

例: 24-1は、jps-config.xmlファイル内のLDAPサーバー構成の例です。

例24-1 jps-config.xmlファイル内のLDAPサーバー構成

--------------
<!-- JPS OID LDAP Identity Store Service Instance -->
<serviceInstance name="idstore.oid" provider="idstore.ldap.provider">
<property name="subscriber.name" value="dc=us,dc=oracle,dc=com" />
<property name="idstore.type" value="OID" />

<property name="bootstrap.security.principal.map" value="jps_map"/>
<property name="bootstrap.security.principal.key" value="jps_key"/>

<property name="ldap.url" value="ldap://example.oracle.com"/><extendedProperty>   <name>user.search.bases</name>   <values>    <value>cn=users,dc=us,dc=oracle,dc=com</value>   </values>  </extendedProperty>  <extendedProperty>   <name>group.search.bases</name>   <values>    <value>cn=groups,dc=us,dc=oracle,dc=com</value>   </values>  </extendedProperty>  <property name="username.attr" value="uid" />  <property name="groupname.attr" value="cn" /> </serviceInstance>
-----------------

4. ODI Studioを起動し、外部認証モードでマスター・リポジトリを作成します。

スタンドアロン・エージェント用の構成ファイルの構成

スタンドアロン・エージェントの場合は、odi_credtool.shスクリプトが<ODI_HOME>/oracle.odi.studio/oracledi/agent/binディレクトリにあること以外は、ODI Studioの場合の構成と同じ手順に従ってください。

24.3.3 パスワード・ポリシーの実施

パスワード・ポリシーは、内部認証の使用時にユーザー・パスワードに適用する一連のルールで構成されています。この一連のルールは、ユーザーがパスワードを定義したり、変更した場合に適用されます。

パスワード・ポリシーを定義するには:

1. セキュリティ・ナビゲータのツールバー・メニューから「パスワード・ポリシー」を選択します。
「パスワード・ポリシー」ダイアログが表示されます。このダイアログには、ルールのリストが表示されます。

2. パスワードを自動的に期限切れにする場合は、「パスワード有効日数」を選択し、パスワードの変更が必要になるまでの日数を設定します。

3. 「ポリシーの追加」をクリックします。「ポリシー定義」ダイアログが表示されます。ポリシーは、パスワードをチェックする一連の条件です。

4. この新規ポリシーに「名前」と「説明」を設定します。

5. 「ルール」セクションで、パスワードのテキストまたは長さに対する条件をいくつか追加します。たとえば、パスワードの最小文字数を定義できます。

6. 「一致する条件」リストで、パスワードが少なくとも1つの条件に一致する必要があるのか、またはすべての条件に一致する必要があるのかを選択します。

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

8. 必要な数のポリシーを追加し、アクティブ化するルールのポリシーに対して「アクティブ」を選択します。すべてのポリシーを満たすパスワードのみが、現在のポリシーで有効とみなされます。

9. 「OK」をクリックし、パスワード・ポリシーを更新します。

24.3.4 Oracle Access Manager 11gを使用したOracle Data IntegratorコンソールおよびEnterprise Managerのシングル・サインオン(SSO)の構成

このセクションでは、Oracle Access Manager (OAM) 11gを使用して、Oracle Data IntegratorコンソールおよびEnterprise Managerのシングル・サインオンをオプションで構成する方法について説明します。

Oracle Data IntegratorコンソールおよびEnterprise Managerのシングル・サインオンを構成するには:

1. ブラウザを使用して、OAMコンソールにログインします。

http://host:port/oamconsole

2. 「ポリシー構成」→「アプリケーション・ドメイン」に移動します。
「Policy Manager」ペインが表示されます。

3. webgateエージェントの登録時の名前を使用して作成したアプリケーション・ドメインを探します。

4. 「リソース」ノードを展開して、「作成」をクリックします。
リソース・ページが表示されます。

5. セキュリティ保護が必要なリソースを追加します。リソースごとに次の手順を行います。

1. 「リソース・タイプ」としてhttpを選択します。

2. WebGateエージェントの登録時に作成したホスト識別子を選択します。

3. 「リソースURL」を次のように入力します。

リソースURL

ODIコンポーネント

/odiconsole*

ODIコンソール

/odiconsole/.../*

ODIコンソール

/em*

Enterprise Manager

/em/.../*

Enterprise Manager

4. リソースの「説明」を入力し、「適用」をクリックします。

6. 「認証ポリシー」→保護されているリソース・ポリシーに移動し、新しく作成したリソースを追加します。

7. 「認可ポリシー」→保護されているリソース・ポリシーで同じ作業を行います。

8. WebTierで、(WT_ORACLE_HOME/instances/<your_instance>/config/OHS/ohs1/の)mod_wl_ohs.confファイルを変更し、ODIコンソールとEnterprise Managerを追加するために、新しい2つのLocationエントリを追加して、WebLogicHostにWebCenter Portal管理サーバーの実際のホストIDを使用します。

<Location /odiconsole*>
SetHandler weblogic-handler
WebLogicHost webcenter.example.com
WebLogicPort 7001
</Location>
<Location /em*>
SetHandler weblogic-handler
WebLogicHost webcenter.example.com
WebLogicPort 7001
</Location>

9. 変更を有効にするために、Oracle HTTP Serverを再起動します。
これで、次のリンクを使用してODIコンソールおよびEnterprise Managerにアクセスできるようになりました。

http://host:OHS port/odiconsole

http://host:OHS port/em

OAMのSSOログイン・フォームのプロンプトが表示されます。

ODIにあわせてOAM 11gをインストールして構成する方法の詳細は、Oracle Fusion Middleware Oracle Data Integratorインストレーション・ガイドの3.4項のODIとOracle Access Mananger 11gの統合を参照してください。

A Oracle Data Integrator Toolsリファレンス

この付録では、Oracle Data Integrator Toolsのリファレンス情報を提供します。この付録は、これらのツールを使用して統合シナリオを設計するアプリケーション開発者を対象としています。

この付録は次の項で構成されています:

- 付録A.1「Oracle Data Integrator Toolsの使用」

- 付録A.2「オープン・ツールの使用」

- 付録A.3「オープン・ツールの開発」

- 付録A.4「カテゴリ別ODIツール」

- 付録A.5「ODIツールのアルファベット順リスト」

A.1 Oracle Data Integrator Toolsの使用

Oracle Data Integrator Tools (Oracle Data Integratorコマンドとも呼ばれます)は、実行時に特定のタスクを処理するために用意されているコマンドです。これらのタスクは、一定の時間待機したり音を鳴らすなどの簡単なタスクの場合や、ANTスクリプトを実行したりサーバーから電子メールを読み込むなどの高度なタスクの場合があります。

これらは、パッケージ、プロシージャ・コマンドまたはナレッジ・モジュール・コマンドで使用され、コマンドラインから直接使用することもできます。

注意:

Oracle Data Integratorの以前のバージョンでは、内部Javaクラス(SnpsSendMailやSendMailなど)を使用したJythonまたはJavaスクリプトからの組込みツールのコールがサポートされていました。このメソッドを使用したツールの使用方法は、バージョン10.1.3.2.0以降非推奨になっているため、使用しないでください。

注意:

コマンド内で改行は使用できません。

A.1.1 パッケージでのツールの使用

Oracle Data Integratorのツールをパッケージに追加して使用する方法は、10.3.1.4項「Oracle Data Integratorツール・ステップの追加」を参照してください。

パッケージ内では、ツール・ステップに順序を付け、その成否に従ってステップを編成できます。詳細は、10.4項「ステップの順序の定義」および10.3.6項「ステップのレイアウトの調整」を参照してください。

パッケージでは、ツール・パラメータ変数値、順序またはOracle Data Integrator置換メソッド・コールでツールを直接使用できます。詳細は、第12章「プロシージャ、変数、順序およびユーザー関数の使用」を参照してください。

A.1.2 ナレッジ・モジュールまたはプロシージャ・コマンドでのツールの使用

KMまたはプロシージャでOracle Data Integratorツールを使用する方法は、12.1項「プロシージャの使用」を参照してください。

ナレッジ・モジュールまたはプロシージャでは、ツール・パラメータ変数値、順序、Oracle Data Integrator置換メソッド・コール、またはSELECT文の結果でツールを直接使用できます。詳細は、第12章「プロシージャ、変数、順序およびユーザー関数の使用」を参照してください。

A.1.3 コマンドラインからのツールの使用

注意:

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

コマンドラインからOracle Data Integratorツールを使用するには:

1. シェル(UNIX)またはコマンドライン・プロンプト(Windows)を起動します。

2. Oracle Data Integratorをインストールしたディレクトリのoracledi/agent/binサブディレクトリに移動します。

3. 次の構文を使用して、startcmd.bat (Windows)またはstartcmd.sh (UNIX)コマンドを起動します:

startcmd <command_name> [<command_parameters>]*

重要な注意事項

コマンドラインからツールを起動する場合は、次の点に注意してください。

- Windowsプラットフォームでは、等号(=)またはスペースが含まれているコマンド引数は、二重引用符で囲む必要があります。Windowsのコマンド・コールはUNIXのコマンド・コールとは異なることがあります。例:
<command_name>パラメータは大文字と小文字が区別されます。

startcmd.bat OdiSleep "-DELAY=5000" (Windows)
./startcmd.sh OdiSleep -DELAY=5000 (UNIX)

- ツールによっては、実行の際にリポジトリへの接続を必要とするものがあります。odiparamsファイルにリポジトリ接続が構成されていることを確認してください。詳細は、4.3項「エージェントの管理」を参照してください。

- 次のODIツールは、コマンドラインからの直接起動をサポートしていません。

- OdiInvokeWebService

- OdiRetrieveJournalData

- OdiRefreshJournalCount

A.2 オープン・ツールの使用

オープン・ツール機能には、パッケージやプロシージャで使用できるカスタムのサード・パーティ・ツールを開発するための拡張可能なプラットフォームがあります。Oracle Data Integratorに付属の標準ツールと同じように、オペレーティング・システムと相互に作用し、データを操作できます。

オープン・ツールはJavaで記述されています。独自のオープン・ツールの記述方法については、A.3項「オープン・ツールの開発」を参照してください。

オープン・ツールは、次のいくつかのファイルが格納されたJavaパッケージ(.zipまたは.jar)として配布されます:

- Javaのコンパイル済.classファイル

- アイコン・ファイルなどのその他のリソース

A.2.1 オープン・ツールのインストールおよび宣言

オープン・ツールを使用するには、その前に、オープン・ツールをインストールして追加する必要があります。

A.2.1.1 オープン・ツールのインストール

オープン・ツールをインストールするには、クラスパスまたはこのオープン・ツールを使用しているコンポーネントに、オープン・ツールJarを追加する必要があります。

オープン・ツールJarは、スタンドアロン・エージェントおよびStudioのドライバと同じディレクトリに追加する必要があります。詳細は、『Oracle Fusion Middleware Oracle Data Integratorインストレーション・ガイド』の「追加のドライバとオープン・ツールの追加」を参照してください。

オープン・ツールJarとJava EEエージェントをデプロイするためには、このエージェントのサーバー・テンプレートを生成する必要があります。オープン・ツールは、WLSテンプレート生成ウィザードの「ライブラリおよびドライバ」リストに表示されます。詳細は、4.3.2.1.2項「EEエージェントのためのサーバー・テンプレートの作成」を参照してください。

注意:

この操作は、ツールを使用する各ODI Studio、およびこのツールを使用してセッションを実行する各エージェントに対して実行する必要があります。

A.2.1.2 新しいオープン・ツールの宣言

この操作は、マスター・リポジトリでオープン・ツールを宣言し、このオープン・ツールをOracle Data Integrator Studioに表示できるようにします。

新しいツールを宣言するには、次のいずれかを実行します:

1. Oracle Data Integrator Studioで、「ODI」メニューから「オープン・ツールの追加/削除」を選択します。「オープン・ツールの追加」ダイアログが開きます。

2. 「オープン・ツールの追加/削除」ダイアログの「オープン・ツール・クラス名」フィールドにクラス名を入力します。

または:

1. 「ClassPathで検索します」をクリックし、オープン・ツールのJavaクラス名を参照します。クラスを名前で検索するには、上部のフィールドに名前の一部を入力します。

2. 「OK」をクリックします。
Oracle Data Integratorで現在使用可能なすべてのクラスの中には、オープン・ツールでないツールのクラスも表示されることに注意してください。クラスを追加するには、そのクラスの名前を把握している必要があります。

3. 「オープン・ツールの追加」をクリックします。

4. 目的のオープン・ツールが含まれている行を選択します。

- クラスパス上で見つかると、提供されているアイコン、構文、説明、プロバイダおよびバージョン番号が表示されます。

- 見つからない場合は、エラー・メッセージが表示されます。
クラスパスを変更するか、オープン・ツールを適切なディレクトリに移動してください。

注意:

この操作は、指定のマスター・リポジトリに対して1回のみ実行する必要があります。

注意:

名前がSnpまたはOdiで開始するオープン・ツール名は使用できません。名前がこれらの文字列で開始するオープン・ツールは無視されます。

A.2.2 パッケージまたはプロシージャでのオープン・ツールの使用

オープン・ツールは、Oracle Data Integratorにデフォルトで付属しているツールと同様に、パッケージまたはプロシージャで使用できます。

A.3 オープン・ツールの開発

オープン・ツールはJavaパッケージで、インタフェースoracle.odi.sdk.opentools.IOpenToolを実装するコンパイル済Javaクラスが含まれています。すべてのクラスおよびメソッドの詳細は、Oracle Data Integrator Open Tools APIリファレンス(Javadoc)を参照してください。

オープン・ツール・パッケージには通常2つのアイコンも含まれており、Oracle Data Integratorグラフィカル・インタフェースでオープン・ツールを表すために使用されます。

A.3.1 クラス

次の表は、オープン・ツールのクラスおよびインタフェースを示しています。

クラスまたはインタフェース

説明

IOpenTool

すべてのオープン・ツールが実装する必要のあるインタフェース。

OpenToolAbstract

いくつかのヘルパー・メソッドを備えたインタフェースの抽象化。可能なかぎり、インタフェースを直接実装するのではなく、このクラスを拡張してください。

IOpenToolParameter

オープン・ツールで使用されるパラメータが実装する必要のあるインタフェース。ほとんどの場合は、このインタフェースを実装せずに、OpenToolParameterを使用します。

OpenToolParameter

IOpenToolParameterの完全な実装。各OpenToolParameterが1つのパラメータを保持します。

OpenToolsExecutionException

オープン・ツールのメソッドによって必要に応じてスローされる例外クラス。

SimpleOpenToolExample

オープン・ツールの簡単な例であり、開始点として使用できます。

A.3.2 新しいオープン・ツールの開発

ここでは、基本的なオープン・ツールであるSimpleMessageBoxの開発について説明します。このクラスのソース・コードは、demo/plugins/srcディレクトリにあります。

1. 構文を定義します。この例では、オープン・ツールは次のようにコールされます:

SimpleMessageBox "-TEXT=<text message>" "-TITLE=<window title>"

2. 16x16および32x32のアイコンを作成します(通常は.gif形式)。

3. クラスを作成し、実装します。A.3.2.1項「クラスの実装」を参照してください。

4. クラスをコンパイルし、2つのアイコン・ファイルが含まれたパッケージを作成します。

5. A.2.1項「オープン・ツールのインストールおよび宣言」の説明に従って、オープン・ツールのインストールと宣言を実行します。

A.3.2.1 クラスの実装

クラスの実装は、次の手順で構成されます。

1. 宣言

2. パッケージのインポート

3. パラメータの定義

4. 情報関数の実装

5. 実行

A.3.2.1.1 宣言

クラスを宣言するには、その前に、パッケージ名を指定する必要があります。

パッケージ名の指定

適切な名前のパッケージにクラスを配置します。パッケージ名は、インストール時にオープン・ツールを識別するために使用されます。

package com.myCompany.OpenTools;

クラスの宣言

オープン・ツールの開発には、2つの基本的な手法があります:

- 既存のクラスを拡張してオープン・ツールに変換します。この場合は、インタフェースIOpenToolを既存のクラスに直接実装します。

- 新規のクラスを開発します。この場合は、抽象クラスOpenToolAbstractを拡張する方法が最も容易です。このクラスには、パラメータで使用するための追加のヘルパー・メソッドも含まれています。

public class SimpleMessageBox extends OpenToolAbstract {

A.3.2.1.2 パッケージのインポート

ほぼすべてのオープン・ツールには、次のオープン・ツールSDKパッケージをインポートする必要があります。

import oracle.odi.sdk.opentools.IOpenTool; /* All Open Tool classes need these three classes */

import oracle.odi.sdk.opentools.IOpenToolParameter;

import oracle.odi.sdk.opentools.OpenToolExecutionException;

import oracle.odi.sdk.opentools.OpenToolAbstract; /* The abstract class we extend for the Open Tool */

import oracle.odi.sdk.opentools.OpenToolParameter; /* The class we use for parameters */

この例では、メッセージ・ボックスを作成するために次のパッケージも必要です:

import javax.swing.JOptionPane; /* Needed for the message box used in this example */

A.3.2.1.3 パラメータの定義

OpenToolParameterオブジェクトを格納するプロパティを追加します。このプロパティは、構文に対してオブジェクトを定義する目的と、実際のユーザーからパラメータの値を取得する目的の両方に使用されます。このオープン・ツールのパラメータは、次のように静的配列を使用して定義するのが最も簡単です。この配列は、アクセッサ関数を介してアクセスされるため、プライベートにする必要があります。

private static final IOpenToolParameter[] mParameters = new IOpenToolParameter[]
{
new OpenToolParameter("-TEXT", "Message text", "Text to show in the messagebox (Mandatory).", true),
new OpenToolParameter("-TITLE", "Messagebox title", "Title of the messagebox.", false)
};

OpenToolParameter()コンストラクタに渡される4つのパラメータは、次のとおりです。

1. パラメータのコード(先頭のハイフンを含みます)。このコードは、getSyntax()によって戻される構文に対応している必要があります。

2. ユーザーが理解しやすい名前。この名前は、ユーザーがグラフィカル・インタフェースを使用してパラメータを設定する際に使用されます。

3. 説明のヘルプ・テキスト。

4. パラメータが必須かどうか。これはユーザーに表示する目印です。

注意:

Oracle Data Integratorでは、パラメータに必須フラグを付けなくてもかまいません。ただし、入力されるパラメータの組合せはすべて処理可能である必要があります。

パラメータを取得するには、アクセッサ関数getParameters()を実装する必要があります。

public IOpenToolParameter[] getParameters()
{
return mParameters;
}

A.3.2.1.4 情報関数の実装

オープン・ツールに関する情報を戻す関数であるgetDescription()、getVersion()、getProvider()を実装します。

public String getDescription() { return "This Open Tool displays a message box when executed."; }
public String getVersion() { return "v1.0"; }
public String getProvider() { return "My Company, Inc."; }

getSyntax()関数によって、Oracle Data Integratorのグラフィカル・インタフェースに表示されるオープン・ツールの名前と、パラメータの初期値が決定されます。パラメータ名が、getParameters()によって戻されたパラメータ名と一致していることを確認します。

public String getSyntax()
{
return "SimpleMessageBox \"-TEXT=<text message>\" \"-TITLE=<window title>\"";
}

getIcon()メソッドが、適切なサイズの2つのイメージにパスを戻します。次の例のようになります。

public String getIcon(int pIconType)
{
switch (pIconType)
{
case IOpenTool.SMALL_ICON:
return "/com/myCompany/OpenTools/images/SimpleMessageBox_16.gif";
case IOpenTool.BIG_ICON:
return "/com/myCompany/OpenTools/images/SimpleMessageBox_32.gif";
default:
return "";
}
}

A.3.2.1.5 実行

最後は、オープン・ツールが提供する機能を実際に実行するexecute()メソッドです。この場合は、メッセージ・ボックスが表示されます。OpenToolAbstractクラスを拡張する場合は、getParameterValue()メソッドを使用すると、実行時に設定されるパラメータ値を容易に取得できます。

注意:

すべての実行を捕捉して、OpenToolExecutionExceptionのみが発生するように対処する必要があります。

public void execute() throws OpenToolExecutionException
{
try
{
if (getParameterValue("-TITLE") == null || getParameterValue("-TITLE").equals("")) /* title was not filled in by user */
{
JOptionPane.showMessageDialog(null, (String) getParameterValue("-TEXT"), (String) "Message", JOptionPane.INFORMATION_MESSAGE);
} else
{
JOptionPane.showMessageDialog(null, (String) getParameterValue("-TEXT"),
(String) getParameterValue("-TITLE"),
JOptionPane.INFORMATION_MESSAGE);
}
}
/* Traps any exception and throw them as OpenToolExecutionException */
catch (IllegalArgumentException e)
{
throw new OpenToolExecutionException(e);
}
}

A.3.3 実行時のオープン・ツール

一般に、オープン・ツール・クラスは、非常に簡潔にインスタンス化されます。次のように使用されます。

インストール

ユーザーがオープン・ツールのインストールを選択すると、Oracle Data Integratorはクラスをインスタンス化し、getDescription()、getProvider()、getIcon()およびgetVersion()の各メソッドをコールして、クラスに関する情報を取得します。

パッケージでの使用

オープン・ツールがパッケージ内で使用される場合、そのクラスは、getDescription()、getProvider()、getIcon()およびgetVersion()の各メソッドをコールするために一時的にインスタンス化されます。さらに、オープン・ツールのコード名とそのデフォルト引数を取得するために、getSyntax()がコールされます。getParameters()メソッドは、引数のリストをユーザーに対して表示するためにコールされます。

実行

オープン・ツールがパッケージまたはプロシージャ内で実行される都度、クラスは繰り返しインスタンス化されます。実行完了後までインスタンスが維持されることはありません。execute()メソッドは1回のみコールされます。

ヒント:

付録A「オープン・ツールの使用」およびオープン・ツールSDKドキュメント(JavaDoc)も参照してください。

A.4 カテゴリ別ODIツール

この項では、Oracle Data Integratorツールのリストをカテゴリ別に示します:

A.4.1 メタデータ

- OdiReverseGetMetaData

- OdiReverseManageShortcut

- OdiReverseResetTable

- OdiReverseSetMetaData

A.4.2 Oracle Data Integratorオブジェクト

- OdiDeleteScen

- OdiExportAllScen

- OdiExportEnvironmentInformation

- OdiExportLog

- OdiExportMaster

- OdiExportObject

- OdiExportScen

- OdiExportWork

- OdiGenerateAllScen

- OdiImportObject

- OdiImportScen

A.4.3 ユーティリティ

- OdiAnt

- OdiBeep

- OdiDataQuality

- OdiEnterpriseDataQuality

- OdiKillAgent

- OdiOSCommand

- OdiPingAgent

- OdiPurgeLog

- OdiReinitializeSeq

- OdiStartLoadPlan

- OdiStartScen

- OdiUpdateAgentSchedule

A.4.4 インターネット関連タスク

- OdiFtpGet

- OdiFtpPut

- OdiInvokeWebService

- OdiReadMail

- OdiScpGet

- OdiScpPut

- OdiSftpGet

- OdiSftpPut

- OdiSendMail

A.4.5 ファイル

- OdiFileAppend

- OdiFileCopy

- OdiFileDelete

- OdiFileMove

- OdiFileWait

- OdiMkDir

- OdiOutFile

- OdiSqlUnload

- OdiUnZip

- OdiZip

A.4.6 SAP

- OdiSAPALEClientおよびOdiSAPALEClient3

- OdiSAPALEServerおよびOdiSAPALEServer3

A.4.7 XML

- OdiXMLConcat

- OdiXMLSplit

A.4.8 イベント検出

- OdiFileWait

- OdiReadMail

- OdiSleep

- OdiWaitForChildSession

- OdiWaitForData

- OdiWaitForLogData

- OdiWaitForTable

A.4.9 チェンジ・データ・キャプチャ

- OdiRefreshJournalCount

- OdiRetrieveJournalData

- OdiWaitForData

- OdiWaitForLogData

- OdiWaitForTable

A.5 ODIツールのアルファベット順リスト

この項では、Oracle Data Integratorツールのリストをアルファベット順に示します。

- OdiAnt

- OdiBeep

- OdiDataQuality

- OdiDeleteScen

- OdiEnterpriseDataQuality

- OdiExportAllScen

- OdiExportEnvironmentInformation

- OdiExportLog

- OdiExportMaster

- OdiExportObject

- OdiExportScen

- OdiExportWork

- OdiFileAppend

- OdiFileCopy

- OdiFileDelete

- OdiFileMove

- OdiFileWait

- OdiFtpGet

- OdiFtpPut

- OdiGenerateAllScen

- OdiImportObject

- OdiImportScen

- OdiInvokeWebService

- OdiKillAgent

- OdiMkDir

- OdiOSCommand

- OdiOutFile

- OdiPingAgent

- OdiPurgeLog

- OdiReadMail

- OdiRefreshJournalCount

- OdiReinitializeSeq

- OdiReverseGetMetaData

- OdiReverseManageShortcut

- OdiReverseResetTable

- OdiReverseSetMetaData

- OdiRetrieveJournalData

- OdiSAPALEClientおよびOdiSAPALEClient3

- OdiSAPALEServerおよびOdiSAPALEServer3

- OdiScpGet

- OdiScpPut

- OdiSendMail

- OdiSftpGet

- OdiSftpPut

- OdiSleep

- OdiSqlUnload

- OdiStartLoadPlan

- OdiStartScen

- OdiUnZip

- OdiUpdateAgentSchedule

- OdiWaitForChildSession

- OdiWaitForData

- OdiWaitForLogData

- OdiWaitForTable

- OdiXMLConcat

- OdiXMLSplit

- OdiZip

A.5.1 OdiAnt

このコマンドを使用してAntビルドファイルを実行します。

Antビルドファイルの詳細および例は、オンライン・ドキュメント(http://jakarta.apache.org/ant/manual/index.html)を参照してください。

使用方法

OdiAnt -BUILDFILE=<file> -LOGFILE=<file> [-TARGET=<target>]
[-D<property name>=<property value>]* [-PROJECTHELP] [-HELP]
[-VERSION] [-QUIET] [-VERBOSE] [-DEBUG] [-EMACS]
[-LOGGER=<classname>] [-LISTENER=<classname>] [-FIND=<file>]

パラメータ

パラメータ

必須

説明

-BUILDFILE=<file>

はい

Antビルドファイル。Antコマンドが含まれているXMLファイルです。

-LOGFILE=<file>

はい

指定のファイルをロギングに使用します。

-TARGET=<target>

いいえ

ビルド・プロセスのターゲット。

-D<property name>=<property value>

いいえ

プロパティとその値のリスト。

-PROJECTHELP

いいえ

プロジェクトに関するヘルプを表示します。

-HELP

いいえ

Antのヘルプを表示します。

-VERSION

いいえ

Antのバージョンを表示します。

-QUIET

いいえ

非冗長モードで実行します。

-VERBOSE

いいえ

冗長モードで実行します。

-DEBUG

いいえ

デバッグ情報を印刷します。

-EMACS

いいえ

ロギング情報を装飾なしで表示します。

-LOGGER=<classname>

いいえ

ロギングを実行するJavaクラス。

-LISTENER=<classname>

いいえ

クラス・インスタンスをリスナーとして追加します。

-FIND=<file>

いいえ

ファイル・システムのルートからAntビルドファイルを検索して使用します。

例

*.htmlファイルをftp.mycompany.comの/download/publicディレクトリから、FTPを介してC:\tempディレクトリにダウンロードします。

ステップ1: Antビルドファイルを生成します。

OdiOutFile -FILE=c:\temp\ant_cmd.xml
<?xml version="1.0"?>
<project name="myproject" default="ftp" basedir="/">
<target name="ftp">
<ftp action="get" remotedir="/download/public"
server="ftp.mycompany.com" userid="anonymous"
password="me@mycompany.com">
<fileset dir="c:\temp">
<include name="**/*.html"/>
</fileset>
</ftp>
</target>
</project>

ステップ2: Antビルドファイルを実行します。

OdiAnt -BUILDFILE=c:\temp\ant_cmd.xml -LOGFILE=c:\temp\ant_cmd.log

A.5.2 OdiBeep

このコマンドを使用して、エージェントをホスティングしているマシン上のデフォルトのビープ音またはサウンド・ファイルを再生します。

次のファイル形式がデフォルトでサポートされています。

- WAV

- AIF

- AU

注意:

他のファイル形式を再生するには、アプリケーション・クラスパスに適切なJavaSoundサービス・プロバイダ・インタフェース(JavaSound SPI)を追加する必要があります。

使用方法

OdiBeep [-FILE=<sound_file>]

パラメータ

パラメータ

必須

説明

-FILE

いいえ

再生するサウンド・ファイルのパスおよびファイル名。指定しない場合は、マシンのデフォルト・ビープ音が使用されます。

例

サウンド・ファイルc:\wav\alert.wavを再生します。

OdiBeep -FILE=c:\wav\alert.wav

A.5.3 OdiDataQuality

このコマンドを使用して、データ品質プロジェクトを起動するバッチ・ファイルを実行します。

使用方法

OdiDataQuality -BATCH_FILE=<batch_file> [-OUT_FILE=<stdout_file>]
[-ERR_FILE=<stderr_file>] [-SYNCHRONOUS=<yes|no>]

パラメータ

パラメータ

必須

説明

-BATCH_FILE=<batch_file>

はい

実行するデータ品質バッチ・ファイルの場所。ファイル名は絶対パスで指定する必要があります。このバッチ・ファイルはオペレーティング・システムに依存しており、runprojectNと呼ばれています。

例:

C:\oracle\oracledq\metabase_data\metabase\oracledq\project2\scripts\runproject2.cmd

-OUT_FILE=<stdout_file>

いいえ

標準出力のリダイレクト先となるファイル。リダイレクトしない場合は空白のままとし、絶対パスを使用します。

-ERR_FILE=<stderr_file>

いいえ

標準エラーのリダイレクト先となるファイル。リダイレクトしない場合は空白のままとし、絶対パスを使用します。

-SYNCHRONOUS=<yes|no>

いいえ

YESに設定すると、このツールは品質プロセスの完了を待機してから終了します。この場合は、エラー・コードを戻す可能性があります。NOに設定すると、品質プロセスの完了を待機せずに、ただちに終了します。

例

次のコマンドは、C:\oracle\oracledq\metabase_data\metabase\oracledqディレクトリにエクスポートされたデータ品質プロジェクトを実行します。

OdiDataQuality
"-BATCH_FILE=C:\oracle\oracledq\metabase_data\metabase\oracledq\project2\scripts\runproject2.cmd "
"-OUT_FILE=C:\temp\output file" "-SYNCHRONOUS=YES"

A.5.4 OdiDeleteScen

このコマンドを使用して、指定のシナリオ・バージョンを削除します。

使用方法

OdiDeleteScen -SCEN_NAME=<name> -SCEN_VERSION=<version>

パラメータ

パラメータ

必須

説明

-SCEN_NAME=<name>

はい

削除するシナリオの名前。

-SCEN_VERSION=<version>

はい

削除するシナリオの名前。

例

バージョン001のDWHシナリオを削除します。

OdiDeleteScen -SCEN_NAME=DWH -SCEN_VERSION=001

A.5.5 OdiEnterpriseDataQuality

このコマンドを使用して、Oracle Enterprise Data Quality (Datanomic)ジョブを呼び出します。

注意:

EnterpriseDataQualityツールは、Oracle Enterprise Data Qualityバージョン8.1.6以降をサポートしています。

使用方法

OdiEnterpriseDataQuality "-JOB_NAME=<EDQ job name>"
"-PROJECT_NAME=<EDQ project name>" "-HOST=<EDQ server hostname>"
"-PORT=<EDQ server JMX port>" "-USER=<EDQ user>"
"-PASSWORD=<EDQ user's password>" "-SYNCHRONOUS=<yes|no>" "-DOMAIN=-<EDQ_DOMAIN>"

パラメータ

パラメータ

必須

説明

-JOB_NAME=<EDQ job name>

はい

Enterprise Data Qualityジョブの名前

-PROJECT_NAME=<EDQ project name>

はい

Enterprise Data Qualityプロジェクトの名前

-HOST=<EDQ server hostname>

はい

Enterprise Data Qualityサーバーのホスト名。例: localhost

-PORT=<EDQ server JMX port>

はい

Enterprise Data QualityサーバーのJMXポート。例: 9005

-USER=<EDQ user>

はい

Enterprise Data Qualityサーバー・ユーザーのユーザー名。例: dnadmin

-PASSWORD=<EDQ user's password>

はい

Enterprise Data Qualityユーザーのパスワード

-SYNCHRONOUS=<yes|no>

いいえ

yesに設定すると、ツールは品質プロセスの完了を待機してから、可能性のあるエラー・コードで復帰します。noに設定すると、ツールは品質プロセスの完了を待機せずに、ただちに正常に終了します

-DOMAIN=<EDQ_DOMAIN>

いいえ

MBeanドメインの名前。デフォルトはdndirectorです。

例

次のコマンドは、CUSTOMERSという名前のプロジェクトに配置されているCLEANSE_CUSTOMERSと呼ばれるEnterprise Data Qualityジョブを実行します:

EnterpriseDataQuality "-JOB_NAME=CLEANSE_CUSTOMERS" "-PROJECT_NAME=CUSTOMERS"
"-HOST=machine.oracle.com" "-PORT=9005" "-USER=odi" "-PASSWORD=odi”
"DOMAIN=dndirector"

A.5.6 OdiExportAllScen

このコマンドを使用して、接続しているリポジトリからシナリオのグループをエクスポートします。

エクスポート・ファイルは、SCEN_<scenario name><scenario version>.xmlという名前です。このコマンドは、デザイナおよびオペレータで使用可能なエクスポート機能の動作を再現します。

使用方法

OdiExportAllScen -TODIR=<directory> [-FORCE_OVERWRITE=<yes|no>]
[-FROM_PROJECT=<project_id>] [-FROM_FOLDER=<folder_id>]
[-FROM_PACKAGE=<package_id>] [-RECURSIVE_EXPORT=<yes|no>]
[-XML_VERSION=<1.0>] [-XML_CHARSET=<charset>]
[-JAVA_CHARSET=<charset>] [-EXPORT_PACK=<YES|NO>]
[-EXPORT_POP=<YES|NO>] [-EXPORT_TRT=<YES|NO>]
[-EXPORT_VAR=<YES|NO>]

パラメータ

パラメータ

必須

説明

-TODIR=<directory>

はい

エクスポート・ファイルが作成されるディレクトリ。

-FORCE_OVERWRITE=<yes|no>

いいえ

yesに設定すると、既存のエクスポート・ファイルが警告なしに上書きされます。デフォルトはNoです。

-FROM_PROJECT=<project_id>

いいえ

エクスポートするシナリオが含まれているプロジェクトのID。これは、プロジェクト・ウィンドウの「バージョン」タブに表示される内部識別子です。このパラメータが設定されていない場合は、すべてのプロジェクトのシナリオがエクスポートの対象になります。

-FROM_FOLDER=<folder_id>

いいえ

エクスポートするシナリオが含まれているフォルダのID。これは、フォルダ・ウィンドウの「バージョン」タブに表示される内部識別子です。このパラメータが設定されていない場合は、すべてのフォルダのシナリオがエクスポートの対象になります。

-FROM_PACKAGE=<package_id>

いいえ

エクスポートするシナリオが含まれているソース・パッケージのID。これは、パッケージ・ウィンドウの「バージョン」タブに表示される内部識別子です。このパラメータが設定されていない場合は、すべてのコンポーネントのシナリオがエクスポートの対象になります。

-RECURSIVE_EXPORT=<yes|no>

いいえ

yesに設定すると、すべての子オブジェクト(スケジュール)がシナリオとともにエクスポートされます。デフォルトはyesです。

-XML_VERSION=<1.0>

いいえ

XMLヘッダーに表示するXMLバージョンを設定します。デフォルトは1.0です。

-XML_CHARSET=<charset>

いいえ

XMLエクスポート・ファイル内に<?xml version="1.0" encoding="ISO-8859-1"?>のタグで指定されるエンコーディング。デフォルト値はISO-8859-1です。サポートされているエンコーディングは、次のURLで確認できます。

http://java.sun.com/j2se/1.4.2/docs/guide/intl/encoding.doc.html

-JAVA_CHARSET=<charset>

いいえ

ターゲット・ファイルのエンコーディング。デフォルト値はISO-8859-1です。サポートされているエンコーディングは、次のURLで確認できます。

http://java.sun.com/j2se/1.4.2/docs/guide/intl/encoding.doc.html

-EXPORT_PACK=<YES|NO>

いいえ

パッケージに関連付けられているシナリオをエクスポートするかどうかを示します。デフォルト値はYESです。

-EXPORT_POP=<YES|NO>

いいえ

インタフェースに関連付けられているシナリオをエクスポートするかどうかを示します。デフォルト値はNOです。

-EXPORT_TRT=<YES|NO>

いいえ

プロシージャに関連付けられているシナリオをエクスポートするかどうかを示します。デフォルト値はNOです。

-EXPORT_VAR=<YES|NO>

いいえ

変数に関連付けられているシナリオをエクスポートするかどうかを示します。デフォルト値はNOです。

例

内部識別子が10022のDW01プロジェクトのすべてのシナリオとすべての依存オブジェクトを/temp/ディレクトリにエクスポートします。

OdiExportAllScen -FROM_PROJECT=10022 -TODIR=/temp/ -RECURSIVE_EXPORT=yes

A.5.7 OdiExportEnvironmentInformation

このコマンドを使用して、指定したディレクトリに技術環境の詳細をカンマ区切り(.csv)ファイルでエクスポートします。この情報は、メンテナンスやサポートの際に必要です。

使用方法

OdiExportEnvironmentInformation -TODIR=<toDir> -FILE_NAME=<FileName>
[-CHARSET=<charset>] [-SNP_INFO_REC_CODE=<row_code>]
[-MASTER_REC_CODE=<row_code>] [-WORK_REC_CODE=<row_code>]
[-AGENT_REC_CODE=<row_code>] [-TECHNO_REC_CODE=<row_code>]
[-RECORD_SEPARATOR_HEXA=<rec_sep>]
[-FIELD_SEPARATOR_HEXA=<field_sep] [-TEXT_SEPARATOR=<text_sep>]

パラメータ

パラメータ

必須

説明

-TODIR=<toDir>

はい

エクスポートのターゲット・ディレクトリ。

-FILE_NAME=<FileName>

はい

CSVエクスポート・ファイルの名前。デフォルトはsnps_tech_inf.csvです。

-CHARSET=<charset>

いいえ

エクスポート・ファイルのキャラクタ・セット。

-SNP_INFO_REC_CODE=<row_code>

いいえ

Oracle Data Integratorの現在のバージョンおよび現在のユーザーを記述した行を識別するためのコード。このコードは、レコードの最初のフィールドで使用されます。デフォルトはSUNOPSISです。

-MASTER_REC_CODE=<row_code>

いいえ

マスター・リポジトリに関する情報が含まれている行のコード。デフォルトはMASTERです。

-WORK_REC_CODE=<row_code>

いいえ

作業リポジトリに関する情報が含まれている行のコード。デフォルトはWORKです。

-AGENT_REC_CODE=<row_code>

いいえ

実行中の各種エージェントに関する情報が含まれている行のコード。デフォルトはAGENTです。

-TECHNO_REC_CODE=<row_code>

いいえ

データ・サーバーとそのバージョンなどに関する情報が含まれている行のコード。デフォルトはTECHNOです。

-RECORD_SEPARATOR_HEXA=<rec_sep>

いいえ

ファイル内の行(またはレコード)を区切る1文字以上の16進コードの文字。デフォルトはO0D0Aです。

-FIELD_SEPARATOR_HEXA=<field_sep>

いいえ

レコード内のフィールドを区切る1文字以上の16進コードの文字。デフォルトは2Cです。

-TEXT_SEPARATOR=<text_sep>

いいえ

STRINGフィールドを区切る16進コードの文字。デフォルトは22です。

例

技術環境の詳細を/temp/snps_tech_inf.csvエクスポート・ファイルにエクスポートします。

OdiExportEnvironmentInformation "-TODIR=/temp/"
"-FILE_NAME=snps_tech_inf.csv" "-CHARSET=ISO8859_1"
"-SNP_INFO_REC_CODE=SUNOPSIS" "-MASTER_REC_CODE=MASTER"
"-WORK_REC_CODE=WORK" "-AGENT_REC_CODE=AGENT"
"-TECHNO_REC_CODE=TECHNO" "-RECORD_SEPARATOR_HEXA=0D0A"
"-FIELD_SEPARATOR_HEXA=2C" "-TEXT_SEPARATOR_HEXA=22"

A.5.8 OdiExportLog

このコマンドを使用して、実行ログをZIPエクスポート・ファイルにエクスポートします。

使用方法

OdiExportLog -TODIR=<toDir> [-EXPORT_TYPE=<logsToExport>]
[-ZIPFILE_NAME=<zipFileName>] [-XML_CHARSET=<charset>]
[-JAVA_CHARSET=<charset>] [-FROMDATE=<from_date>] [-TODATE=<to_date>]
[-AGENT=<agent>] [-CONTEXT=<context>] [-STATUS=<status>]
[-USER_FILTER=<user>] [-NAME=<sessionOrLoadPlanName>]

パラメータ

パラメータ

必須

説明

-EXPORT_TYPE=<logsToExport>

いいえ

ログをエクスポートする対象を指定します:

- LOAD_PLAN_RUN: 子セッションの階層に沿ってロード計画実行が起動したセッションもすべて含め、エクスポート基準と一致するすべてのロード計画実行がエクスポートされます。

- SESSION: エクスポート・フィルタ基準と一致するすべてのセッション・ログがエクスポートされます。ロード計画セッションはすべてセッション・ログのエクスポート時に除外されます。

- ALL: フィルタ基準と一致するすべてのロード計画実行とセッション・ログがエクスポートされます。

-TODIR=<toDir>

はい

エクスポートのターゲット・ディレクトリ。

-ZIPFILE_NAME=<zipFileName>

いいえ

圧縮ファイルの名前。

-XML_CHARSET=<charset>

いいえ

エクスポート・ファイルに指定されるXMLバージョン。XMLファイル・ヘッダーのxml versionパラメータで、<?xml version="1.0" encoding="ISO-8859-1"?>のように指定されます。デフォルト値はISO-8859-1です。サポートされているエンコーディングは、次のURLで確認できます。

http://java.sun.com/j2se/1.4.2/docs/guide/intl/encoding.doc.html

-JAVA_CHARSET=<charset>

いいえ

結果ファイルのJava文字エンコーディング。デフォルト値はISO8859_1です。サポートされているエンコーディングは、次のURLで確認できます。

http://java.sun.com/j2se/1.4.2/docs/guide/intl/encoding.doc.html

-FROMDATE=<from_date>

いいえ

エクスポートの開始日。yyyy/MM/dd hh:mm:ssの書式を使用します。この日付以降のすべてのセッションがエクスポートされます。

-TODATE=<to_date>

いいえ

エクスポートの終了日。yyyy/MM/dd hh:mm:ssの書式を使用します。この日付までのすべてのセッションがエクスポートされます。

-AGENT=<agent>

いいえ

指定した名前のエージェント(<agent>)によって実行されたセッションのみをエクスポートします。

-CONTEXT=<context>

いいえ

指定したコンテキスト(<context>)で実行されたセッションのみをエクスポートします。

-STATUS=<status>

いいえ

指定した状態のセッションのみをエクスポートします。状態の種類は、「完了」、「エラー」、「キュー」、「実行中」、「待機中」および「警告」です。

-USER_FILTER=<user>

いいえ

指定したユーザー(<user>)が起動したセッションのみをエクスポートします。

-NAME=<sessionOrLoadPlanName>

いいえ

エクスポートするセッションまたはロード計画の名前。

例

ログをエクスポートして圧縮し、/temp/log2.zipエクスポート・ファイルを生成します。

OdiExportLog "-EXPORT_TYPE=ALL" "-TODIR=/temp/" "-ZIPFILE_NAME=log2.zip"
"-XML_CHARSET=ISO-8859-1" "-JAVA_CHARSET=ISO8859_1"

A.5.9 OdiExportMaster

このコマンドを使用して、マスター・リポジトリをディレクトリまたはzipファイルにエクスポートします。マスター・リポジトリに格納されているバージョンまたはソリューション(あるいはその両方)をエクスポートするオプションがあります。

使用方法

OdiExportMaster -TODIR=<toDir> [-ZIPFILE_NAME=<zipFileName>]
[-EXPORT_SOLUTIONS=<yes|no>] [-EXPORT_VERSIONS=<yes|no>]
[-XML_CHARSET=<charset>] [-JAVA_CHARSET=<charset>]

パラメータ

パラメータ

必須

説明

-TODIR=<toDir>

はい

エクスポートのターゲット・ディレクトリ。

-ZIPFILE_NAME=<zipFileName>

いいえ

圧縮ファイルの名前。

-EXPORT_SOLUTIONS=<yes|no>

いいえ

リポジトリに格納されているすべてのソリューションをエクスポートします。

-EXPORT_VERSIONS=<yes|no>

いいえ

リポジトリに格納されているオブジェクトのすべてのバージョンをエクスポートします。

-XML_CHARSET=<charset>

いいえ

エクスポート・ファイルに指定されるXMLバージョン。XMLファイル・ヘッダーのxml versionパラメータで、<?xml version="1.0" encoding="ISO-8859-1"?>のように指定されます。デフォルト値はISO-8859-1です。サポートされているエンコーディングは、次のURLで確認できます。

http://java.sun.com/j2se/1.4.2/docs/guide/intl/encoding.doc.html

-JAVA_CHARSET=<charset>

いいえ

結果ファイルのJava文字エンコーディング。デフォルト値はISO8859_1です。サポートされているエンコーディングは、次のURLで確認できます。

http://java.sun.com/j2se/1.4.2/docs/guide/intl/encoding.doc.html

例

マスター・リポジトリをエクスポートして圧縮し、export.zipファイルを生成して/temp/ディレクトリに格納します。

OdiExportMaster "-TODIR=/temp/" "-ZIPFILE_NAME=export.zip"
"-XML_CHARSET=ISO-8859-1" "-JAVA_CHARSET=ISO8859_1"
"-EXPORT_VERSIONS=YES"

A.5.10 OdiExportObject

このコマンドを使用して、現在のリポジトリからオブジェクトをエクスポートします。このコマンドは、ユーザー・インタフェースで使用可能なエクスポート機能の動作を再現します。

使用方法

OdiExportObject -CLASS_NAME=<class_name> -I_OBJECT=<object_id>
[-EXPORT_DIR=<directory>][-EXPORT_NAME=<export_name>|-FILE_NAME=<file_name>]
[-FORCE_OVERWRITE=<yes|no>][-RECURSIVE_EXPORT=<yes|no>] [-XML_VERSION=<1.0>]
[-XML_CHARSET=<charset>] [-JAVA_CHARSET=<charset>]

パラメータ

パラメータ

必須

説明

-CLASS_NAME=<class_name>

はい

エクスポートするオブジェクトのクラス。クラスのリストは次の表を参照してください。

-I_OBJECT=<object_id>

はい

オブジェクト識別子。オブジェクト編集ウィンドウの「バージョン」タブに表示される内部識別子です。

-FILE_NAME=<file_name>

いいえ

エクスポート・ファイルの名前。絶対パスまたはEXPORT_DIRからの相対パスを指定できます。

このファイル名は、Oracle Data Integrator標準エクスポート・ファイルの接頭辞および接尾辞に準拠しているかどうかに関係なく指定できます。この標準に完全に準拠する場合は、かわりにEXPORT_NAMEパラメータを使用します。EXPORT_NAMEが設定されている場合、このパラメータは使用できません。

-EXPORT_DIR=<directory>

いいえ

オブジェクトがエクスポートされるディレクトリ。このディレクトリ内に作成されたエクスポート・ファイルには、FILE_NAMEおよびEXPORT_NAMEパラメータに従って名前が指定されます。

FILE_NAMEまたはEXPORT_NAMEが指定されていない場合、エクスポート・ファイルには、<object_prefix>_<object_name>.xmlという名前が自動的に指定されます。たとえば、Datawarehouseというプロジェクトは、PRJ_Datawarehouse.xmlにエクスポートされます。

-EXPORT_NAME=<export_name>

いいえ

エクスポート名。このパラメータを使用して、<object_prefix>_<export_name>.xmlという名前のエクスポート・ファイルを生成します。このパラメータはFILE_NAMEとは併用できません。

-FORCE_OVERWRITE=<yes|no>

いいえ

yesに設定すると、同じ名前の既存のエクスポート・ファイルが強制的に上書きされます。デフォルトはNoです。

-RECURSIVE_EXPORT=<yes|no>

いいえ

yesに設定すると、すべての子オブジェクトが現在のオブジェクトとともにエクスポートされます。たとえば、プロジェクトをエクスポートしている場合は、そのプロジェクト内のすべてのフォルダ、KMなどが、プロジェクト・エクスポート・ファイルにエクスポートされます。デフォルトはYesです。

-XML_VERSION=<1.0>

いいえ

XMLヘッダーに表示するXMLバージョンを設定します。デフォルトは1.0です。

-XML_CHARSET=<charset>

いいえ

XMLファイル内に<?xml version="1.0" encoding="ISO-8859-1"?>のタグで指定されるエンコーディング。デフォルト値はISO-8859-1です。サポートされているエンコーディングは、次のURLで確認できます。

http://java.sun.com/j2se/1.4.2/docs/guide/intl/encoding.doc.html

-JAVA_CHARSET=<charset>

いいえ

ターゲット・ファイルのエンコーディング。デフォルト値はISO-8859-1です。サポートされているエンコーディングは、次のURLで確認できます。

http://java.sun.com/j2se/1.4.2/docs/guide/intl/encoding.doc.html

クラスのリスト

オブジェクト

クラス名

列

SnpCol

条件/フィルタ

SnpCond

コンテキスト

SnpContext

データ・サーバー

SnpConnect

データストア

SnpTable

フォルダ

SnpFolder

インタフェース

SnpPop

言語

SnpLang

モデル

SnpModel

パッケージ

SnpPackage

物理スキーマ

SnpPschema

プロシージャまたはKM

SnpTrt

プロシージャまたはKMのオプション

SnpUserExit

プロジェクト

SnpProject

リファレンス

SnpJoin

シナリオ

SnpScen

順序

SnpSequence

Step

SnpStep

Sub-Model

SnpSubModel

テクノロジ

SnpTechno

ユーザー関数

SnpUfunc

変数

SnpVar

オブジェクトのバージョン

SnpData

例

内部識別子が10022のDW01プロジェクトとその依存オブジェクトすべてを/temp/dw1.xmlエクスポート・ファイルにエクスポートします。

OdiExportObject -CLASS_NAME=SnpProject -I_OBJECT=10022
-FILE_NAME=/temp/dw1.xml -FORCE_OVERWRITE=yes
-RECURSIVE_EXPORT=yes

A.5.11 OdiExportScen

このコマンドを使用して、現在の作業リポジトリからシナリオをエクスポートします。

使用方法

OdiExportScen -SCEN_NAME=<scenario_name> -SCEN_VERSION=<scenario_version>
[-EXPORT_DIR=<directory>][-FILE_NAME=<file_name>|EXPORT_NAME=<export_name>]
[-FORCE_OVERWRITE=<yes|no>][-RECURSIVE_EXPORT=<yes|no>] [-XML_VERSION=<1.0>]
[-XML_CHARSET=<encoding>] [-JAVA_CHARSET=<encoding>]

パラメータ

パラメータ

必須

説明

-SCEN_NAME=<scenario_name>

はい

エクスポートするシナリオの名前。

-SCEN_VERSION=<scenario_version>

はい

エクスポートするシナリオのバージョン。

-FILE_NAME=<file_name>

はい

エクスポート・ファイルの名前。絶対パスまたはEXPORT_DIRからの相対パスを指定できます。

このファイル名は、シナリオのOracle Data Integrator標準エクスポート・ファイルの接頭辞および接尾辞に準拠しているかどうかに関係なく指定できます。この標準に完全に準拠する場合は、かわりにEXPORT_NAMEパラメータを使用します。EXPORT_NAMEが設定されている場合、このパラメータは使用できません。

-EXPORT_DIR=<directory>

いいえ

シナリオがエクスポートされるディレクトリ。このディレクトリ内に作成されたエクスポート・ファイルには、FILE_NAMEおよびEXPORT_NAMEパラメータに従って名前が指定されます。

FILE_NAMEまたはEXPORT_NAMEが指定されていない場合、エクスポート・ファイルには、SCEN_<scenario_name> <scenario_version>.xmlという名前が自動的に指定されます。

-EXPORT_NAME=<export_name>

いいえ

エクスポート名。このパラメータを使用して、SCEN_<export_name>.xmlという名前のエクスポート・ファイルを生成します。このパラメータはFILE_NAMEとは併用できません。

-FORCE_OVERWRITE=<yes|no>

いいえ

Yesの場合は、既存のエクスポート・ファイルが上書きされます。

-RECURSIVE_EXPORT=<yes|no>

いいえ

シナリオの下にあるオブジェクトが強制的にエクスポートされます。デフォルトはYesです。

-XML_VERSION=<1.0>

いいえ

生成されたXMLファイル内に<?xml version="1.0" encoding="ISO-8859-1"?>のタグで指定されるバージョン。デフォルト値は1.0です。

-XML_CHARSET=<encoding>

いいえ

XMLファイル内に<?xml version="1.0" encoding="ISO-8859-1"?>のタグで指定されるエンコーディング。デフォルト値はISO-8859-1です。サポートされているエンコーディングは、次のURLで確認できます。

http://java.sun.com/j2se/1.4.2/docs/guide/intl/encoding.doc.html

-JAVA_CHARSET=<encoding>

いいえ

ターゲット・ファイルのエンコーディング。デフォルト値はISO-8859-1です。サポートされているエンコーディングは、次のURLで確認できます。

http://java.sun.com/j2se/1.4.2/docs/guide/intl/encoding.doc.html

例

LOAD_DWHシナリオとその依存オブジェクトすべてをバージョン1で/temp/load_dwh.xmlエクスポート・ファイルにエクスポートします。

OdiExportScen -SCEN_NAME=LOAD_DWH -SCEN_VERSION=1
-FILE_NAME=/temp/load_dwh.xml -RECURSIVE_EXPORT=yes

A.5.12 OdiExportWork

このコマンドを使用して、作業リポジトリをディレクトリまたはZIPエクスポート・ファイルにエクスポートします。

使用方法

OdiExportWork -TODIR=<directory> [-ZIPFILE_NAME=<zipFileName>]
[-XML_CHARSET=<charset>] [-JAVA_CHARSET=<charset>]

パラメータ

パラメータ

必須

説明

-TODIR=<directory>

はい

エクスポートのターゲット・ディレクトリ。

-ZIPFILE_NAME=<zipFileName>

いいえ

圧縮ファイルの名前。

-XML_CHARSET=<charset>

いいえ

エクスポート・ファイルに指定されるXMLバージョン。XMLファイル・ヘッダーのxml versionパラメータで、<?xml version="1.0" encoding="ISO-8859-1"?>のように指定されます。デフォルト値はISO-8859-1です。サポートされているエンコーディングは、次のURLで確認できます。

http://java.sun.com/j2se/1.4.2/docs/guide/intl/encoding.doc.html

-JAVA_CHARSET=<charset>

いいえ

結果ファイルのJava文字エンコーディング。デフォルト値はISO8859_1です。サポートされているエンコーディングは、次のURLで確認できます。

http://java.sun.com/j2se/1.4.2/docs/guide/intl/encoding.doc.html

例

作業リポジトリをエクスポートして圧縮し、/temp/workexport.zipエクスポート・ファイルを生成します。

OdiExportWork "-TODIR=/temp/" "-ZIPFILE_NAME=workexport.zip"

A.5.13 OdiFileAppend

このファイルを使用して、一連のファイルを単一ファイルに連結します。

使用方法

OdiFileAppend -FILE=<file> -TOFILE=<target_file> [-OVERWRITE=<yes|no>]
[-CASESENS=<yes|no>] [-HEADER=<n>] [-KEEP_FIRST_HEADER=<yes|no]

パラメータ

パラメータ

必須

説明

-FILE=<file>

はい

連結するファイルのフル・パス。汎用文字を指定するには「*」を使用します。

例:

/var/tmp/*.log (/var/tmpフォルダ内にあるlog拡張子のファイルすべて)

arch_*.lst (arch_で開始するlst拡張子のファイルすべて)

-TOFILE=<target_file>

はい

ターゲット・ファイル。

-OVERWRITE=<yes|no>

いいえ

ターゲット・ファイルが存在する場合に上書きするかどうかを示します。デフォルトでは、値はNoに設定されています。

-CASESENS=<yes|no>

いいえ

ファイル検索時に、Oracle Data Integratorで大文字と小文字が区別されるかどうかを示します。デフォルトでは、ファイルは大文字で検索されます。

-HEADER=<n>

いいえ

連結前にソース・ファイルから削除するヘッダー行の行数。デフォルトでは、行は削除されません。

HEADERパラメータを省略すると、連結ではファイル編集が不要になるため、より迅速に実行されます。

-KEEP_FIRST_HEADER=<yes|no>

いいえ

連結時に最初のファイルのヘッダー行を維持するために使用されます。

例

/var/tmpフォルダの*.logファイルを/home/all_files.logファイルに連結します。

OdiFileAppend -FILE=/var/tmp/*.log -TOFILE=/home/all_files.log

各店の日次売上のファイルを、最初のファイルのヘッダーを維持しながら連結します。

OdiFileAppend -FILE=/data/store/sales_*.dat -TOFILE=/data/all_stores.dat
-OVERWRITE=yes -HEADER=1 -KEEP_FIRST_HEADER=yes

A.5.14 OdiFileCopy

このコマンドを使用して、ファイルまたはフォルダをコピーします。

使用方法

OdiFileCopy -DIR=<directory> -TODIR=<target_directory> [-OVERWRITE=<yes|no>]
[-RECURSE=<yes|no>] [-CASESENS=<yes|no>]

OdiFileCopy -FILE=<file> -TOFILE=<target_file>|-TODIR=<target_directory>
[-OVERWRITE=<yes|no>] [-RECURSE=<yes|no>] [-CASESENS=<yes|no>]

パラメータ

パラメータ

必須

説明

-DIR=<directory>

-FILE省略時は、はい

コピーするディレクトリ(またはフォルダ)。

-FILE=<file>

-DIR省略時は、はい

コピーするファイルのフル・パス。汎用文字を指定するには「*」を使用します。

例:

/var/tmp/*.log (/var/tmpフォルダ内にあるlog拡張子のファイルすべて)

arch_*.lst (arch_で開始するlst拡張子のファイルすべて)

-TODIR=<target_directory>

-DIR指定時は、はい

コピーのターゲット・ディレクトリ。

ディレクトリをコピーする場合(-DIR)、このパラメータは、コピーされるディレクトリの名前を示します。

1つ以上のファイルをコピーする場合(-FILE)、このパラメータは、コピー先ディレクトリを示します。

-TOFILE=<target_file>

-TODIR省略時は、はい

宛先ファイル。このパラメータは、-DIRパラメータとは併用できません。

このパラメータで、次のことを指定します。

- コピーするファイルが1つのみの場合は、宛先ファイルの名前(汎用文字は使用不可)。

- 複数のファイルをコピーする場合は、宛先ファイルの新しい名前のマスク。

TODIRとTOFILEは同時に使用できないパラメータです。両方を指定すると、TODIRのみが考慮され、TOFILEは無視されます。

-OVERWRITE=<yes|no>

いいえ

フォルダのファイルがすでに存在している場合、上書きするかどうかを示します。デフォルトでは、値はNoに設定されています。

-RECURSE=<yes|no>

いいえ

ディレクトリに別のディレクトリが含まれている場合に、ファイルを再帰的にコピーするかどうかを示します。Noの値を指定すると、ディレクトリ内のファイルのみがコピーされ、サブディレクトリはコピーされません。デフォルトはYesです。

-CASESENS=<yes|no>

いいえ

ファイル検索時に、Oracle Data Integratorで大文字と小文字が区別されるかどうかを示します。デフォルトでは、検索対象のファイルはすべて大文字です(Noに設定されます)。

例

hostsファイルを/etcディレクトリから/homeディレクトリにコピーします。

OdiFileCopy -FILE=/etc/hosts -TOFILE=/home/hosts

*.csvファイルすべてを/etcディレクトリから/homeディレクトリに上書きでコピーします。

OdiFileCopy -FILE=/etc/*.csv -TODIR=/home -OVERWRITE=yes

*.csvファイルすべてを/etcディレクトリから/homeディレクトリにコピーし、拡張子を.txtに変更します。

OdiFileCopy -FILE=/etc/*.csv -TOFILE=/home/*.txt -OVERWRITE=yes

C:\odiディレクトリとそのサブディレクトリをC:\Program Files\odiディレクトリにコピーします。

OdiFileCopy -DIR=C:\odi "-TODIR=C:\Program Files\odi" -RECURSE=yes

A.5.15 OdiFileDelete

このコマンドを使用して、ファイルまたはディレクトリを削除します。

このツールの最も一般的なユースケースを次の表に示します:

- xは指定されていることを意味します。

- oは省略されていることを意味します。

-DIR

-FILE

-RECURSE

動作

x

x

x

名前のあるすべてのファイル、または-FILEで指定されたマスクと一致する名前のファイルがすべて、-DIRとそのすべてのサブディレクトリから削除されます。

x

o

x

-FILEのサブディレクトリが削除されます。

x

x

o

名前のあるすべてのファイル、または-FILEで指定されたマスクと一致する名前のファイルがすべて-DIRから削除されます。

x

o

o

-DIRが削除されます。

使用方法

OdiFileDelete -DIR=<directory> | -FILE=<file> [-RECURSE=<yes|no>] [-CASESENS=<yes|no>]
[-NOFILE_ERROR=<yes|no>] [-FROMDATE=<from_date>] [-TODATE=<to_date>]

パラメータ

パラメータ

必須

説明

-DIR=<directory>

-FILE省略時は、はい

1. -FILEを省略した場合は、削除するディレクトリ(フォルダ)の名前を指定します。

2. -FILEを指定した場合は、ファイルを削除するパスを指定します。

-FILE=<file>

-DIR省略時は、はい

削除するファイルの名前またはマスク。-DIRを省略した場合は、フル・パスを指定してください。ワイルドカード文字を指定するには「*」を使用します。

例:

/var/tmp/*.log (/var/tmpディレクトリ内にある.logファイルすべて)

/bin/arch_*.lst (arch_で開始する.lstファイルすべて)

-RECURSE=<yes|no>

いいえ

1. -FILEが省略されている場合、-RECURSEパラメータは無効です。すべてのサブディレクトリが暗黙的に削除されます。

2. -FILEが指定されてい場合は、このディレクトリとそのサブディレクトリすべてからファイルを削除するかどうかを-RECURSEパラメータで指定します。

デフォルトはYesです。

-CASESENS=<yes|no>

いいえ

Oracle Data Integratorがファイル名を照合する際に、大文字と小文字を区別するかどうかを指定します。

-NOFILE_ERROR=<yes|no>

はい

指定のディレクトリまたはファイルがない場合、エラーを生成するかどうかを指定します。

-FROMDATE=<from_date>

いいえ

変更日がこの日付より後のファイルが削除されます。日付は、yyyy/MM/dd hh:mm:ssの書式で指定する必要があります。

FROM_DATEは対象に含まれません。

-FROMDATEを省略した場合は、変更日が-TODATEの日付より前のすべてのファイルが削除されます。

FROMDATEとTODATEの両方のパラメータを省略した場合は、-FILEパラメータ値と一致するすべてのファイルが削除されます。

-TODATE=<to_date>

いいえ

変更日がこの日付より前のファイルが削除されます。日付は、yyyy/MM/dd hh:mm:ssの書式で指定する必要があります。

TO_DATEは対象に含まれません。

-TODATEを省略した場合は、変更日が-FROMDATEの日付より後のすべてのファイルが削除されます。

FROMDATEとTODATEの両方のパラメータを省略した場合は、-FILEパラメータ値と一致するすべてのファイルが削除されます。

注意:

-DIRパラメータと-FILEパラメータを組み合せてファイルとディレクトリを同時に削除することはできません。その場合は、OdiFileDeleteを2回コールする必要があります。

例

c:\data\inputディレクトリからmy_data.datファイルを削除します。ファイルが欠落している場合はエラーを生成します。

OdiFileDelete -FILE=c:\data\input\my_data.dat -NOFILE_ERROR=yes

binディレクトリからすべての.txtファイルを削除します。ただし、.TXTファイルは除きます。

OdiFileDelete "-FILE=c:\Program Files\odi\bin\*.txt" -CASESENS=yes

次の文も同じ結果になります。

OdiFileDelete "-DIR=c:\Program Files\odi\bin" "-FILE=*.txt" -CASESENS=yes

/bin/usr/nothingToDoHereディレクトリを削除します。

OdiFileDelete "-DIR=/bin/usr/nothingToDoHere"

C:\tempディレクトリから、変更時刻が10/01/2008 00:00:00から10/31/2008 22:59:00までの間(10/01/2008から10/31/2008までは対象外)のファイルをすべて削除します。

OdiFileDelete -DIR=C:\temp -FILE=* -NOFILE_ERROR=NO -FROMDATE=FROMDATE=10/01/2008 00:00:00 -TODATE=10/31/2008 22:59:00

C:\tempディレクトリから、変更時刻が10/31/2008 17:00:00より前のすべてのファイルを削除します。ディレクトリ内に日付基準を満たす削除対象ファイルがない場合は、エラーがスローされます。

OdiFileDelete -DIR=C:\temp -FILE=* -NOFILE_ERROR=YES -TODATE=10/31/2008 17:00:00

C:\tempディレクトリから、変更時刻が10/01/2008 08:00:00より後のすべてのファイルを削除します。

OdiFileDelete -DIR=C:\temp -FILE=* -NOFILE_ERROR=NO -FROMDATE=10/01/2008 08:00:00

A.5.16 OdiFileMove

このコマンドを使用して、ファイルまたはディレクトリを別のファイルまたはディレクトリに移動(または名前を変更)します。

使用方法

OdiFileMove -FILE=<file> -TODIR=<target_directory>|-TOFILE=<target_file>
[-OVERWRITE=<yes|no>] [-RECURSE=<yes|no>] [-CASESENS=<yes|no>]

OdiFileMove -DIR=<directory> -TODIR=<target_directory> [-OVERWRITE=<yes|no>]
[-RECURSE=<yes|no>] [-CASESENS=<yes|no>]

パラメータ

パラメータ

必須

説明

-DIR=<directory>

-FILE省略時は、はい

移動または名前を変更するディレクトリ(またはフォルダ)。

-FILE=<file>

-DIR省略時は、はい

移動または名前を変更するファイルのフル・パス。汎用文字を指定するには「*」を使用します。

例:

/var/tmp/*.log (/var/tmpディレクトリ内にあるlog拡張子のファイルすべて)

arch_*.lst (arch_で開始するlst拡張子のファイルすべて)

-TODIR=<target_directory>

-DIR指定時は、はい

移動のターゲット・ディレクトリ。

ディレクトリを移動する場合(-DIR)、このパラメータはディレクトリの新しい名前を示します。

1つ以上のファイルを移動する場合(-FILE)、このパラメータは移動先ディレクトリを示します。

-TOFILE=<target_file>

-TODIR省略時は、はい

ターゲット・ファイル。このパラメータは、-DIRパラメータとは併用できません。

このパラメータで、次のことを指定します。

- 単一のファイルを移動する場合は、ターゲット・ファイルの新しい名前(汎用文字は使用不可)。

- 複数のファイルを移動する場合は、新しいファイル名のマスク。

-OVERWRITE=<yes|no>

いいえ

ファイルまたはディレクトリがすでに存在している場合、上書きするかどうかを示します。デフォルトでは、値はnoです。

-RECURSE=<yes|no>

いいえ

ディレクトリに別のディレクトリが含まれている場合に、ファイルを再帰的に移動するかどうかを示します。noの値を指定すると、移動するディレクトリ内のファイルのみが移動し、サブディレクトリは移動しません。

-CASESENS=<yes|no>

いいえ

ファイル検索時に、Oracle Data Integratorで大文字と小文字が区別されるかどうかを示します。デフォルトでは、検索対象のファイルはすべて大文字です。

例

hostというファイルの名前をhosts.oldに変更します。

OdiFileMove -FILE=/etc/hosts -TOFILE=/etc/hosts.old

hostsファイルを/etcディレクトリから/home/odiディレクトリに移動します。

OdiFileMove -FILE=/etc/hosts -TOFILE=/home/odi/hosts

すべての*.csvファイルを/etcディレクトリから/home/odiディレクトリに上書きで移動します。

OdiFileMove -FILE=/etc/*.csv -TODIR=/home/odi -OVERWRITE=yes

すべての*.csvファイルを/etcディレクトリから/home/odiディレクトリに移動し、拡張子を.txtに変更します。

OdiFileMove -FILE=/etc/*.csv -TOFILE=/home/odi/*.txt -OVERWRITE=yes

C:\odiディレクトリの名前をC:\odi_is_wonderfulに変更します。

OdiFileMove -DIR=C:\odi -TODIR=C:\odi_is_wonderful

C:\odiディレクトリとそのサブフォルダをC:\Program Files\odiディレクトリに移動します。

OdiFileMove -DIR=C:\odi "-TODIR=C:\Program Files\odi" -RECURSE=yes

A.5.17 OdiFileWait

このコマンドを使用して、ファイル・イベントを管理します。このコマンドは、ディレクトリを定期的にスキャンし、特定の数のファイルがマスクと一致して表示されることを、指定のタイムアウトに達するまで待機します。指定のファイルが見つかると、これらのファイルに対してアクションがトリガーされます。

使用方法

OdiFileWait -DIR=<directory> -PATTERN=<pattern>
[-ACTION=<DELETE|COPY|MOVE|APPEND|ZIP|NONE>] [-TODIR=<target_directory>]
[-TOFILE=<target_file>] [-OVERWRITE=<yes|no>] [-CASESENS=<yes|no>]
[-FILECOUNT=<n>] [-TIMEOUT=<n>] [-POLLINT=<n>] [-HEADER=<n>]
[-KEEP_FIRST_HEADER=<yes|no>] [-NOFILE_ERROR=<yes|no>]

パラメータ

パラメータ

必須

説明

-ACTION=

<DELETE|COPY|MOVE|APPEND|ZIP|NONE>

いいえ

見つかったファイルに対するアクション:

DELETE: 見つかったファイルを削除します。

COPY: 見つかったファイルをTODIRディレクトリにコピーします。

MOVE: 見つかったファイルをTODIRフォルダに移動するか、TOFILEで指定された名前に変更します。

APPEND: 見つかったすべてのファイルを連結し、TOFILEで指定された結果ファイルを作成します。ソース・ファイルは削除されます。

ZIP: 見つかったファイルを圧縮し、TOFILEで指定されたZIPファイルに格納します。

NONE: アクションを実行しません。これがデフォルトの動作です。

-DIR=<directory>

はい

スキャンするディレクトリ(またはフォルダ)

-PATTERN=<pattern>

はい

スキャンするファイル名のマスク。汎用文字を指定するには「*」を使用します。

例:

*.log (log拡張子のファイルすべて)

arch_*.lst (arch_で開始するlst拡張子のファイルすべて)

-TODIR=<target_directory>

いいえ

アクションのターゲット・ディレクトリ。アクションによって次のようになります:

COPY: ファイルのコピー先ディレクトリ。

MOVE: ファイルの移動先ディレクトリ。

-TOFILE=<target_file>

いいえ

宛先ファイル。アクションによって次のようになります:

MOVE: 移動したファイルの名前変更マスク。

APPEND: 連結の結果ファイルの名前。

ZIP: ZIP結果ファイルの名前。

COPY: コピーされたファイルの名前変更マスク。名前変更ルールは、次のとおりです。

- 元のファイル名の英数文字が、<target_file>で指定された英数文字で置換されます。

- -TOFILEの「?」は、元の記号がこの位置に保持されます。

- -TOFILEの「*」は、元のファイル名の残りの記号すべてを意味します。

-OVERWRITE=<yes|no>

いいえ

宛先ファイルが存在する場合に、そのファイルを上書きするかどうかを示します。デフォルトでは、値はnoに設定されています。

このオプションをAPPENDと併用すると、ターゲット・ファイルには、最後に処理されたファイルの内容のみが格納されます。

-CASESENS=<yes|no>

いいえ

ファイル検索で大文字と小文字が区別されるかどうかを示します。デフォルトでは、検索対象のファイルは大文字です。

-FILECOUNT=<n>

いいえ

待機するファイルの最大数(デフォルトは0)。この数に到達すると、コマンドは終了します。

0の値では、タイムアウトに到達するまで、すべてのファイルを待機します。

このパラメータが0で、タイムアウトも0の場合、このパラメータは暗黙的に1に設定されます。

-TIMEOUT=<n>

いいえ

ミリ秒単位の最大待機時間(デフォルトは0)。

この待機時間に到達すると、FILECOUNTパラメータの値に関係なく、コマンドは次のコマンドに制御を譲ります。

0の値は、待機時間が無制限であることを示します(FILECOUNTパラメータに指定されたメッセージ読取り最大数まで待機します)。

-POLLINT=<n>

いいえ

新規ファイルを検索する間隔(ミリ秒単位)。デフォルトは1000 (1秒)に設定されています。これは、Oracle Data Integratorが1秒間隔で新しいメッセージを検索することを意味します。OdiFileWaitの最中に書き込まれたファイルは、この間隔の合間に(ファイル・サイズ未変更で)閉じた後でのみ検索の対象となります。

-HEADER=<n>

いいえ

このパラメータはAPPENDアクションでのみ有効です。

連結前にファイルから削除するヘッダー行の行数。デフォルトでは削除されません(0)。

-KEEP_FIRST_HEADER=<yes|no>

いいえ

このパラメータはAPPENDアクションでのみ有効です。

連結時に最初のファイルのヘッダー行を維持するために使用されます。デフォルトはYesです。

-NOFILE_ERROR=<yes|no>

いいえ

ファイルが見つからない場合の動作を示します。

No (デフォルト)の値は、ファイルが見つからない場合もエラーを生成しないことを示します。

例

c:\eventsディレクトリのflag.txtファイルを時間制限なしで待機し、ファイルが検出された場合は先に進みます。

OdiFileWait -ACTION=NONE -DIR=c:\events -PATTERN=flag.txt -FILECOUNT=1
-TIMEOUT=0 -POLLINT=1000

c:\eventsディレクトリのflag.txtファイルを時間制限なしで待機し、ファイルが検出された場合はそのファイルを削除します。

OdiFileWait -ACTION=DELETE -DIR=c:\events -PATTERN=flag.txt -FILECOUNT=1
-TIMEOUT=0 -POLLINT=1000

売上ファイル(*.dat)を5分間待機し、c:\sales_inディレクトリを1秒間隔でスキャンして、C:\sales_okディレクトリのsales.datファイルに連結します。その際、最初のファイルのヘッダーは維持します。

OdiFileWait -ACTION=APPEND -DIR=c:\sales_in -PATTERN=*.dat
TOFILE=c:\sales_ok\sales.dat -FILECOUNT=0 -TIMEOUT=350000 -POLLINT=1000
-HEADER=1 -KEEP_FIRST_HEADER=yes -OVERWRITE=yes

売上ファイル(*.dat)を5分間待機し、c:\sales_inディレクトリを1秒間隔でスキャンして、C:\sales_okディレクトリにファイルをコピーします。その際、ファイルは上書きしません。

OdiFileWait -ACTION=COPY -DIR=c:\sales_in -PATTERN=*.dat -TODIR=c:\sales_ok
-FILECOUNT=0 -TIMEOUT=350000 -POLLINT=1000 -OVERWRITE=no

売上ファイル(*.dat)を5分間待機し、c:\sales_inディレクトリを1秒間隔でスキャンして、これらのファイルをzipファイルにアーカイブします。

OdiFileWait -ACTION=ZIP -DIR=c:\sales_in -PATTERN=*.dat
-TOFILE=c:\sales_ok\sales.zip -FILECOUNT=0 -TIMEOUT=350000
-POLLINT=1000 -OVERWRITE=yes

売上ファイル(*.dat)を5分間待機し、c:\sales_inディレクトリを1秒間隔でスキャンして、C:\sales_okディレクトリにファイルを移動します。その際、ファイルは上書きしません。ファイル名に.bakを追加します。

OdiFileWait -ACTION=MOVE -DIR=c:\sales_in -PATTERN=*.dat
-TODIR=c:\sales_ok -TOFILE=*.bak -FILECOUNT=0 -TIMEOUT=350000
-POLLINT=1000 -OVERWRITE=no

A.5.18 OdiFtpGet

このコマンドを使用して、FTPサーバーからファイルをダウンロードします。

使用方法

OdiFtpGet -HOST=<ftp server host name> -USER=<ftp user>
[PASSWORD=<ftp user password>] -REMOTE_DIR=<remote dir on ftp host>
[-REMOTE_FILE=<file name under the -REMOTE_DIR>] -LOCAL_DIR=<local dir>
[-LOCAL_FILE=<file name under the –LOCAL_DIR>] [-PASSIVE_MODE=<yes|no>]
[-TIMEOUT=<time in seconds>]

パラメータ

パラメータ

必須

説明

-HOST=<host name of the Ftp server>

はい

FTPサーバーのホスト名。

-USER=<host name of the Ftp user>

はい

FTPサーバーのユーザー。

-PASSWORD=<password of the Ftp user>

いいえ

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

-REMOTE_DIR=<dir on ftp host>

はい

リモートFTPホスト上のディレクトリ・パス。

-REMOTE_FILE=<file name under -REMOTE DIR>

いいえ

-REMOTE_DIR引数で指定されたディレクトリのファイル名。この引数が欠落している場合は、-LOCAL_FILEファイル名を使用してファイルがコピーされます。-LOCAL_FILE引数も欠落している場合は、-LOCAL_DIRが-REMOTE_DIRに再帰的にコピーされます。

-LOCAL_DIR=<local dir path>

はい

ローカル・マシン上のディレクトリ・パス。

-LOCAL_FILE=<local file>

いいえ

-LOCAL_DIR引数で指定されたディレクトリのファイル名。この引数が欠落している場合は、-LOCAL_DIRにあるすべてのファイルおよびディレクトリが、-REMOTE_DIRに再帰的にコピーされます。

コピーするファイルをフィルタ処理するには、「*」を使用して汎用文字を指定します。

例:

- *.log (log拡張子のファイルすべて)

- arch_*.lst (arch_で開始するlst拡張子のファイルすべて)

-PASSIVE_MODE

いいえ

Noに設定すると、FTPセッションでアクティブ・モードが使用されます。デフォルト値はyesで、パッシブ・モードで実行されます。

-TIMEOUT=<timeout value>

いいえ

ソケット接続がタイムアウトするまでの秒数。

例

FTPサーバー・マシン上のリモート・ディレクトリ/test_copy555をローカル・ディレクトリC:\temp\test_copyに再帰的にコピーします。

OdiFtpGet -HOST=machine.oracle.com -USER=test_ftp -PASSWORD=<password> -LOCAL_DIR=C:\temp\test_copy -REMOTE_DIR=/test_copy555

FTPサーバー・マシン上のリモート・ディレクトリ/にあるSales*.txtパターンと一致するすべてのファイルをローカル・ディレクトリC:\temp\にコピーします。また、FTP接続にはアクティブ・モードを使用します。

OdiFtpGet -HOST=machine.oracle.com -USER=test_ftp -PASSWORD=<password> -LOCAL_DIR=C:\temp -LOCAL_FILE=Sales*.txt -REMOTE_DIR=/ -PASSIVE_MODE=NO

A.5.19 OdiFtpPut

このコマンドを使用して、ローカル・ファイルをFTPサーバーにアップロードします。

使用方法

OdiFtpPut -HOST=<ftp server host name> -USER=<ftp user>
[PASSWORD=<ftp user password>] -REMOTE_DIR=<remote dir on ftp host>
[-REMOTE_FILE=<file name under the -REMOTE_DIR>] -LOCAL_DIR=<local dir>
[-LOCAL_FILE=<file name under the –LOCAL_DIR>] [-PASSIVE_MODE=<yes|no>]
[-TIMEOUT=<time in seconds>]

パラメータ

パラメータ

必須

説明

-HOST=<host name of the Ftp server>

はい

FTPサーバーのホスト名。

-USER=<host name of the Ftp user>

はい

FTPサーバーのユーザー。

-PASSWORD=<password of the Ftp user>

いいえ

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

-REMOTE_DIR=<dir on ftp host>

はい

リモートFTPホスト上のディレクトリ・パス。

-REMOTE_FILE=<file name under -REMOTE DIR>

いいえ

-REMOTE_DIR引数で指定されたディレクトリのファイル名。この引数が欠落している場合は、-LOCAL_FILEファイル名を使用してファイルがコピーされます。-LOCAL_FILE引数も欠落している場合は、-LOCAL_DIRが-REMOTE_DIRに再帰的にコピーされます。

-LOCAL_DIR=<local dir path>

はい

ローカル・マシン上のディレクトリ・パス。

-LOCAL_FILE=<local file>

いいえ

-LOCAL_DIR引数で指定されたディレクトリのファイル名。この引数が欠落している場合は、-LOCAL_DIRにあるすべてのファイルおよびディレクトリが、-REMOTE_DIRに再帰的にコピーされます。

コピーするファイルをフィルタ処理するには、「*」を使用して汎用文字を指定します。

例:

- *.log (log拡張子のファイルすべて)

- arch_*.lst (arch_で開始するlst拡張子のファイルすべて)

-PASSIVE_MODE

いいえ

Noに設定すると、FTPセッションでアクティブ・モードが使用されます。デフォルト値はyesで、パッシブ・モードで実行されます。

-TIMEOUT=<timeout value>

いいえ

ソケット接続がタイムアウトするまでの秒数。

例

ローカル・ディレクトリC:\temp\test_copyをFTPサーバー・マシン上のリモート・ディレクトリ/test_copy555に再帰的にコピーします。

OdiFtpPut -HOST=machine.oracle.com -USER=test_ftp -PASSWORD=<password>
-LOCAL_DIR=C:\temp\test_copy -REMOTE_DIR=/test_copy555"

ローカル・ディレクトリC:\temp\にあるSales*.txtパターンと一致するすべてのファイルをFTPサーバー・マシン上のリモート・ディレクトリ/にコピーします。

OdiFtpPut -HOST=machine.oracle.com -USER=test_ftp -PASSWORD=<password> -LOCAL_DIR=C:\temp -LOCAL_FILE=Sales*.txt -REMOTE_DIR=/

ローカル・ディレクトリC:\temp\にあるSales1.txtファイルをFTPサーバー・マシン上のリモート・ディレクトリ/にSample1.txtファイルとしてコピーします。

OdiFtpPut -HOST=machine.oracle.com -USER=test_ftp -PASSWORD=<password> -LOCAL_DIR=C:\temp -LOCAL_FILE=Sales1.txt -REMOTE_DIR=/Sample1.txt

A.5.20 OdiGenerateAllScen

このコマンドを使用して、フォルダまたはプロジェクトに含まれ、マーカーによってフィルタ処理された設計時コンポーネント(パッケージ、インタフェース、プロシージャまたは変数)から一連のシナリオを生成します。

使用方法

OdiGenerateAllScen -PROJECT=<project_id> [-FOLDER=<folder_id>]
[-MODE=<REPLACE|CREATE>] [-GRPMARKER=<marker_group_code>
-MARKER=<marker_code>] [-GENERATE_PACK=<YES|NO>]
[-GENERATE_POP=<YES|NO>] [-GENERATE_TRT=<YES|NO>]
[-GENERATE_VAR=<YES|NO>]

パラメータ

パラメータ

必須

説明

-PROJECT=<project_id>

はい

シナリオを生成するコンポーネントが含まれているプロジェクトのID。

-FOLDER=<folder_id>

いいえ

シナリオを生成するコンポーネントが含まれているフォルダのID。

-MODE=<REPLACE|CREATE>

いいえ

シナリオ生成モード:

- 置換(デフォルト): 最後に生成されたシナリオが新規に生成されたシナリオで置換されます。その際、名前またはバージョンは変更されません。このシナリオにリンクしているスケジュールは削除されます。
シナリオがない場合は、新規のシナリオが生成されます。

- 作成: コンポーネントに最後に生成されたシナリオと同じ名前の新規シナリオが作成されます。バージョン番号は、最新バージョンが整数の場合は自動的に増分され、整数でない場合は現在の日付に設定されます。
そのコンポーネントにシナリオが作成されていない場合は、シナリオの最初のバージョンが自動的に作成されます。

新しいシナリオの名前は、「シナリオ命名規則」ユーザー・パラメータに従ったコンポーネント名に基づいて命名されます。

-GRPMARKER=<marker_group_code>

いいえ

シナリオを生成するコンポーネントのフィルタ処理に使用するマーカーが含まれているグループ。

GRPMARKERとMARKERを指定すると、マーカー・コードとマーカー・グループ・コードで識別され、マーカーにフラグが指定されているコンポーネントに対してのみシナリオが(再)生成されます。

-MARKER=<marker_code>

いいえ

シナリオを生成するコンポーネントのフィルタ処理に使用するマーカー。

GRPMARKERとMARKERを指定すると、マーカー・コードとマーカー・グループ・コードで識別され、マーカーにフラグが指定されているコンポーネントに対してのみシナリオが(再)生成されます。

-GENERATE_PACK=<YES|NO>

いいえ

パッケージに関連付けられているシナリオを(再)生成するかどうかを指定します。デフォルト値はYESです。

-GENERATE_POP=<YES|NO>

いいえ

インタフェースに関連付けられているシナリオを(再)生成するかどうかを指定します。デフォルト値はNOです。

-GENERATE_TRT=<YES|NO>

いいえ

プロシージャに関連付けられているシナリオを(再)生成するかどうかを指定します。デフォルト値はNOです。

-GENERATE_VAR=<YES|NO>

いいえ

変数に関連付けられているシナリオを(再)生成するかどうかを指定します。デフォルト値はNOです。

例

OdiGenerateAllScen -PROJECT=1003は、現在のリポジトリでIDが1003のプロジェクトに、すべてのシナリオを生成します。

A.5.21 OdiImportObject

このコマンドを使用して、エクスポート・ファイルの内容をリポジトリにインポートします。このコマンドは、ユーザー・インタフェースから使用可能なインポート機能の動作を再現します。

このツールを使用する際は注意が必要です。リポジトリに存在しないオブジェクトに依存するオブジェクトをインポートすると、正しく機能しない可能性があります。このAPIは、上位レベルのオブジェクト(プロジェクト、モデルなど)をインポートする目的で使用することをお薦めします。

警告:

インポート・タイプと、オブジェクトをリポジトリにインポートする順序は、慎重に指定してください。インポートの詳細は、第20章「エクスポート/インポート」を参照してください。

使用方法

OdiImportObject -FILE_NAME=<FileName> [-WORK_REP_NAME=<workRepositoryName>]
-IMPORT_MODE=<DUPLICATION | SYNONYM_INSERT |  SYNONYM_UPDATE | SYNONYM_INSERT_UPDATE> [-IMPORT_SCHEDULE=<yes|no>]

パラメータ

パラメータ

必須

説明

-FILE_NAME=<FileName>

はい

インポートするXMLエクスポート・ファイルの名前。

-WORK_REP_NAME=<workRepositoryName>

いいえ

オブジェクトのインポート先作業リポジトリの名前。この作業リポジトリは、接続しているマスター・リポジトリに定義されている必要があります。このパラメータの指定を省略すると、オブジェクトは現在のマスター・リポジトリまたは作業リポジトリにインポートされます。

-IMPORT_MODE=<DUPLICATION | SYNONYM_INSERT | SYNONYM_UPDATE | SYNONYM_INSERT_UPDATE>

はい

オブジェクトのインポート・モード。デフォルト値はDUPLICATIONです。詳細は、20.1.3項「インポート・タイプ」を参照してください。

-IMPORT_SCHEDULE=<yes|no>

いいえ

選択したファイルがシナリオ・エクスポート・ファイルの場合は、そのファイルに格納されているスケジュールをインポートします。デフォルトはnoです。

例

/temp/DW01.xmlエクスポート・ファイル(プロジェクト)をWORKREP作業リポジトリにDUPLICATIONモードを使用してインポートします。

OdiImportObject -FILE_NAME=/temp/DW01.xml -WORK_REP_NAME=WORKREP
-IMPORT_MODE=DUPLICATION

A.5.22 OdiImportScen

このコマンドを使用して、エクスポート・ファイルから現在の作業リポジトリにシナリオをインポートします。

使用方法

OdiImportScen -FILE_NAME=<FileName> [-IMPORT_MODE=<DUPLICATION |
SYNONYM_INSERT | SYNONYM_UPDATE | SYNONYM_INSERT_UPDATE>] [IMPORT_SCHEDULE=<yes|no>

パラメータ

パラメータ

必須

説明

-FILE_NAME=<FileName>

はい

エクスポート・ファイルの名前。

-IMPORT_MODE=<DUPLICATION | SYNONYM_INSERT | SYNONYM_UPDATE | SYNONYM_INSERT_UPDATE>

いいえ

シナリオのインポート・モード。デフォルト値はDUPLICATIONです。インポート・タイプの詳細は、20.1.3項「インポート・タイプ」を参照してください。

-IMPORT_SCHEDULE=<yes|no>

いいえ

シナリオ・エクスポート・ファイルに格納されているスケジュールをインポートします。デフォルトはnoです。

例

/temp/load_dwh.xmlエクスポート・ファイル(シナリオ)を現在の作業リポジトリにDUPLICATIONモードを使用してインポートします。

OdiImportScen -FILE_NAME=/temp/load_dwh.xml -IMPORT_MODE=DUPLICATION

A.5.23 OdiInvokeWebService

注意:

このツールはOdiExecuteWebServiceツールに代わるものです。

このコマンドを使用して、HTTP/HTTPSを介してWebサービスを呼び出し、レスポンスをXMLファイルに書き込みます。

このツールは、記述ファイル(WSDL)のURLが提供されているWebサービスのポートで、特定の操作を呼び出します。

この操作にWebサービス・リクエストが必要な場合は、リクエスト・ファイルで、またはツール・コール(<XML Request>)に直接書き込まれて提供されます。このリクエスト・ファイルには、2つの異なる形式(XML本文のみに対応するXML、またはSOAPのヘッダーと本文が格納された完全なSOAPエンベロープに対応するSOAP)をRESPONSE_FILE_FORMATパラメータで指定できます。Webサービス・リクエストのレスポンスは、後でOracle Data Integratorで処理できるXMLファイルに書き込まれます。Webサービス操作が一方向でレスポンスを返さない場合、レスポンス・ファイルは生成されません。

注意:

このツールは、コマンドラインでstartcmdを使用して実行できません。

使用方法

OdiInvokeWebService -URL=<url> -PORT=<port> -OPERATION=<operation>
[<XML Request>][-REQUEST_FILE=<xml_request_file>] [-RESPONSE_MODE=<NO_FILE|NEW_FILE|FILE_APPEND>]
[-RESPONSE_FILE=<xml_response_file>] [-RESPONSE_XML_ENCODING=<charset>]
[-RESPONSE_FILE_CHARSET=<charset>]
[-RESPONSE_FILE_FORMAT=<XML|SOAP>][-HTTP_USER=<user>]
[-HTTP_PASS=<password>] [-TIMEOUT=<timeout>]

パラメータ

パラメータ

必須

説明

-URL=<url>

はい

Webサービスを記述しているWebサービス記述ファイル(WSDL)のURL。

-PORT_TYPE=<port_type>

はい

呼び出すWSDLポート・タイプの名前。

-OPERATION=<operation>

はい

呼び出すWebサービス操作の名前。

<XML Request>

いいえ

SOAP (Simple Object Access Protocol)形式のリクエスト・メッセージ。このメッセージは、OdiInvokeWebServiceコールの直後の行に指定する必要があります。

このリクエストは、場所がREQUEST_FILEパラメータで指定されているファイルを介して渡すこともできます。

-REQUEST_FILE=<xml_request_file>

いいえ

SOAP (Simple Object Access Protocol)形式のリクエスト・メッセージが含まれているXMLファイルの場所。

このリクエストは、ツール・コール(<xmlRequest>)に直接書き込むこともできます。

-RESPONSE_MODE=<NO_FILE|NEW_FILE|FILE_APPEND>

いいえ

レスポンス・ファイルの生成モード。このパラメータの値は、次のいずれかです。

- NO_FILE (デフォルト): レスポンス・ファイルは生成されません。

- NEW_FILE: 新しいレスポンス・ファイルが生成されます。既存のファイルがある場合は上書きされます。

- FILE_APPEND: レスポンスがファイルに追加されます。ファイルが存在しない場合は作成されます。

-RESPONSE_FILE=<file>

場合による

結果を書き込むファイルの名前。-RESPONSE_MODEがNEW_FILEまたはAPPENDの場合は必須です。

-RESPONSE_FILE_CHARSET=<charset>

場合による

レスポンス・ファイルの文字エンコーディング。次の表を参照してください。-RESPONSE_MODEがNEW_FILEまたはAPPENDの場合は必須です。

-RESPONSE_XML_ENCODING=<charset>

場合による

レスポンス・ファイルのXML宣言ヘッダーに示される文字エンコーディング。次の表を参照してください。-RESPONSE_MODEがNO_FILEでない場合は必須です。

-RESPONSE_FILE_FORMAT=<XML|SOAP>

いいえ

リクエストおよびレスポンス・ファイルの形式。

- XMLを選択すると(デフォルト)、リクエストはSOAP本文として処理されます。リクエストを送信する前に、デフォルトのSOAPヘッダーとエンベロープ・コンテンツがこの本文に追加されます。レスポンスはSOAPエンベロープとヘッダーから取り除かれ、レスポンス・ファイルにはレスポンスの本文のみが書き込まれます。

- SOAPを選択すると、リクエストは完全なSOAPエンベロープとして処理され、そのまま送信されます。レスポンスもそのままレスポンス・ファイルに書き込まれます。

-HTTP_USER=<user>

いいえ

HTTPサーバーで認証するユーザー・アカウント。

-HTTP_PASS=<password>

いいえ

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

-TIMEOUT=<timeout>

いいえ

Webサービス・リクエストは、この時間が経過するまで応答を待機した後、サーバーがレスポンスを戻さないと判断してエラーを生成します。デフォルトは15秒。

次の表に、最も一般的なXML/Java文字エンコーディングの一部を示します。より完全なリストは、次の場所から入手できます。

http://java.sun.com/j2se/1.4.2/docs/guide/intl/encoding.doc.html

XMLキャラクタ・セット

Javaキャラクタ・セット

US-ASCII

ASCII

UTF-8

UTF8

UTF-16

UTF-16

ISO-8859-1

ISO8859_1

例

次のWebサービス・コールは、指定された国の首都を戻します(ISO国別コードはリクエストで送信されます)。リクエストおよびレスポンスの形式と、使用できるポートおよび操作が、URLパラメータで渡されるWSDLに定義されていることに注意してください。

OdiInvokeWebService -
-URL=http://www.oorsprong.org/websamples.countryinfo/CountryInfoService.wso
?WSDL -PORT_TYPE=CountryInfoServiceSoapType -OPERATION=CapitalCity
-RESPONSE_MODE=NEW_FILE -RESPONSE_XML_ENCODING=ISO-8859-1
"-RESPONSE_FILE=/temp/result.xml" -RESPONSE_FILE_CHARSET=ISO8859_1 -RESPONSE_FILE_FORMAT=XML
<CapitalCityRequest>
<sCountryISOCode>US</sCountryISOCode>
</CapitalCityRequest>

生成した/temp/result.xmlファイルの内容は、次のようになります。

<CapitalCityResponse>
<m:CapitalCityResponse>
<m:CapitalCityResult>Washington</m:CapitalCityResult>
</m:CapitalCityResponse>
</CapitalCityResponse>

パッケージ

Oracle Data Integratorには、パッケージ内でOdiInvokeWebServiceをコールするための特別なグラフィカル・インタフェースが用意されています。詳細は、第15章「Oracle Data IntegratorでのWebサービスの使用」を参照してください。

A.5.24 OdiKillAgent

このコマンドを使用して、スタンドアロン・エージェントを停止します。

アプリケーション・サーバーにデプロイされているJava EEエージェントは、このツールでは停止できません。アプリケーション・サーバーのユーティリティを使用して停止する必要があります。

使用方法

OdiKillAgent (-PORT=<TCP/IP Port>|-NAME=<physical_agent_name>) [-IMMEDIATE=<yes|no>] [-MAX_WAIT=<timeout>]

パラメータ

パラメータ

必須

説明

-PORT=<TCP/IP Port>

いいえ

このパラメータを指定すると、ローカル・マシンの指定ポートで実行中のエージェントが停止されます。

-NAME=<physical_agent_name>

はい

このパラメータを指定すると、指定した名前の物理エージェントが停止されます。このエージェントには、ローカルまたはリモートのエージェントを指定できます。エージェントはマスター・リポジトリで宣言する必要があります。

-IMMEDIATE=<yes|no>

いいえ

このパラメータをyesに設定すると、実行中のセッションの完了を待機せずにエージェントが停止されます。noに設定すると、実行中のセッションがすべて完了した後、またはMAX_WAITタイムアウトに到達した後で、エージェントが停止されます。デフォルト値はNoです。

-MAX_WAIT=<timeout>

いいえ

このパラメータは、IMMEDIATEがNoに設定されている場合に使用できます。このパラメータには、実行中のセッションに関係なくエージェントを停止するタイムアウトをミリ秒単位で定義します。デフォルトは0です。これは、タイムアウトが発生せず、実行中のセッションすべてが完了した後で、エージェントが停止されることを意味します。

例

ODI_AGT_001物理エージェントをただちに停止します。

OdiKillAgent -NAME=ODI_AGT_001 -IMMEDIATE=yes

A.5.25 OdiMkDir

このコマンドを使用して、ディレクトリ構造を作成します。

親ディレクトリが存在しない場合、このコマンドは親ディレクトリを再帰的に作成します。

使用方法

OdiMkDir -DIR=<directory>

パラメータ

パラメータ

必須

説明

-DIR=<directory>

はい

作成するディレクトリ(またはフォルダ)。

例

C:\tempにodiディレクトリを作成します。C:\tempがない場合はそのディレクトリも作成されます。

OdiMkDir "-DIR=C:\temp\odi"

A.5.26 OdiOSCommand

このコマンドを使用して、コマンドを実行するオペレーティング・システムのコマンド・シェルを呼び出し、出力結果をファイルにリダイレクトします。

次のオペレーティング・システムがサポートされます。

- Windows 95、98、ME (command.comを使用)

- Windows NT、2000、XP (cmdを使用)

- POSIX準拠のOS (shを使用)

次のオペレーティング・システムはサポートされていません。

- Mac OS

使用方法

OdiOSCommand [-OUT_FILE=<stdout_file>] [-ERR_FILE=<stderr_file>]
[-FILE_APPEND=<yes|no>] [-WORKING_DIR=<workingdir>]
[-SYNCHRONOUS=<yes|no>]]  [CR/LF <command> |
-COMMAND=<command>]

パラメータ

パラメータ

必須

説明

-COMMAND=<command>

はい

実行するコマンド。スペースを使用する引数はコマンド・シェルで適切に解釈されるように引用符で囲みます。複数行コマンドの場合は、OdiOSCommand行の後に-COMMANDパラメータを指定せずに、コマンド全体をRAWテキストとして渡します。

-OUT_FILE=<stdout_file>

いいえ

標準出力のリダイレクト先ファイルの絶対名。

-ERR_FILE=<stderr_file>

いいえ

標準エラー出力のリダイレクト先ファイルの絶対名。

-FILE_APPEND=<yes|no>

いいえ

出力ファイルを上書きせずに追加するかどうか。

-WORKING_DIR=<workingdir>

いいえ

コマンドが実行されるディレクトリ。

-SYNCHRONOUS=<yes|no>

いいえ

yesの場合、セッションはコマンドの終了を待機します。noの場合、セッションはエラー・コード0で即時に続行します。デフォルトでは、同期モードで実行されます。

例

次のコマンドは、c:\work\load.batファイル(Windowsマシン)を実行し、出力ストリームをファイルに追加します。

OdiOSCommand "-OUT_FILE=c:\work\load-out.txt"
"-ERR_FILE=c:\work\load-err.txt" "-FILE_APPEND=YES"
"-WORKING_DIR=c:\work" c:\work\load.bat

A.5.27 OdiOutFile

このコマンドを使用して、テキスト・ファイルに内容を書き込むか追加します。

使用方法

OdiOutFile -FILE=<file_name> [-APPEND] [-CHARSET_ENCODING=<encoding>]
[-XROW_SEP=<hexadecimal_line_break>] [CR/LF <text> | -TEXT=<text>]

パラメータ

パラメータ

必須

説明

-FILE=<file_name>

はい

ターゲット・ファイル。パスは、絶対パスまたは実行エージェントの場所に対する相対パスを指定できます。

-APPEND

いいえ

<Text>をファイルの最後に追加するかどうかを示します。このパラメータが指定されていない場合は、現存するファイルが上書きされます。

-CHARSET_ENCODING=<encoding>

いいえ

ターゲット・ファイルのエンコーディング。デフォルト値はISO-8859-1です。サポートされているエンコーディングは、次のURLで確認できます。

http://java.sun.com/j2se/1.4.2/docs/guide/intl/encoding.doc.html

-XROW_SEP=<hexadecimal_line_break>

いいえ

行セパレータ(改行)として使用する文字の16進コード。0A (UNIXの改行)がデフォルトになります。Windowsの改行の場合は値を0D0Aにします。

CR/LF <text> または -TEXT=<text>

はい

ファイルに書き込むテキスト。このテキストは、OdiOutFileコマンドの次の行(改行のCR/LFがテキストの始まりを示す)に入力することも、-TEXTパラメータを使用して定義することもできます。このOracle Data IntegratorコマンドをOSのコマンドラインからコールする場合は、-TEXTパラメータを使用してください。テキストには、変数または代入メソッドを指定できます。

例

次のコマンドは、コマンドを実行したエージェントのUNIXマシンに/var/tmp/my_file.txtファイルを生成します。

OdiOutFile -FILE=/var/tmp/my_file.txt
Welcome to Oracle Data Integrator
This file has been overwritten by <%=odiRef.getSession("SESS_NAME")%>

次のコマンドは、コマンドを実行するエージェントのNTマシンのhostsファイルにPLUTONエントリを追加します。

OdiOutFile -FILE=C:\winnt\system32\drivers\etc\hosts -APPEND
195.10.10.6 PLUTON pluton

A.5.28 OdiPingAgent

このコマンドを使用して、指定のエージェントに対してテストを実行します。このコマンドは、エージェントが開始されていないとエラーになります。

使用方法

OdiPingAgent -AGENT_NAME=<physical_agent_name>

パラメータ

パラメータ

必須

説明

-AGENT_NAME=<physical_agent_name>

はい

テストする物理エージェントの名前。

AGENT_NAMEを使用する古い構文も有効ですが、非推奨です。

例

物理エージェントAGENT_SOLARIS_DEVをテストします。

OdiPingAgent -AGENT_NAME=AGENT_SOLARIS_DEV

A.5.29 OdiPurgeLog

このコマンドを使用して、実行ログをパージします。

OdiPurgeLogツールは、フィルタ基準と一致するすべてのセッション・ログまたはロード計画実行(あるいはその両方)をパージします。

PURGE_TYPEパラメータは、パージするオブジェクトを定義します。

- SESSIONを選択すると、基準と一致するすべてのセッション・ログがパージされます。親セッションが基準と一致すると、子セッションと孫セッションがパージされます。ロード計画の実行によって起動されたセッションは子セッションも含めて、パージされません。

- LOAD_PLAN_RUNを選択すると、基準と一致するすべてのロード計画ログがパージされます。ロード計画実行から起動されたセッションは、ロード計画実行自体に関連付けられているセッションが基準と一致しない場合でもすべてパージされることに注意してください。

- ALLを選択すると、基準と一致するセッション・ログとロード計画実行の両方がパージされます。

COUNTパラメータを使用すると、ログに保持する(フィルタ処理後の)セッションまたはロード計画実行(あるいはその両方)の件数を定義できます。ARCHIVEパラメータを使用すると、パージしたセッションまたはロード計画実行(あるいはその両方)を自動的にアーカイブできます。

注意:

「実行中」、「待機中」または「キュー」ステータスのロード計画およびセッションはパージされません。

使用方法

OdiPurgeLog [-PURGE_TYPE=<SESSION|LOAD_PLAN_RUN|ALL>]
[-COUNT=<session_number>][-FROMDATE=<from_date>] [TODATE=<to_date>]
[-CONTEXT_CODE=<context_code>] [-USER_NAME=<user_name>]
[-AGENT_NAME=<agent_name>] [-PURGE_REPORTS=<Yes|No>] [-STATUS=<D|E|M>]
[-NAME=<session_or_load_plan_name>] [-ARCHIVE=<Yes|No>] [-TODIR=<directory>]
[-ZIPFILE_NAME=<zipfile_name>] [-XML_CHARSET=<charset>] [-JAVA_CHARSET=<charset>]

パラメータ

パラメータ

必須

説明

-PURGE_TYPE=<SESSION|LOAD_PLAN_RUN|ALL>

いいえ

フィルタ基準: セッション・ログのみ、ロード計画ログのみ、または両方をパージします。デフォルトはSESSIONです。

-COUNT=<session_number>

いいえ

指定したフィルタ基準と一致するセッションまたはロード計画実行(あるいはその両方)の最新件数を保持し、残りをパージします。このパラメータが未指定またはゼロの場合は、フィルタ基準と一致するすべてのセッションまたはロード計画実行(あるいはその両方)をパージします。

-FROMDATE=<from_date>

いいえ

フィルタ基準: パージの開始日。yyyy/MM/dd hh:mm:ssの書式を使用します。

-FROMDATEを省略すると、最も古いセッションまたはロード計画実行(あるいはその両方)からパージが実行されます。

-TODATE=<to_date>

いいえ

フィルタ基準: パージの終了日。yyyy/MM/dd hh:mm:ssの書式を使用します。

-TODATEを省略すると、最新のセッションまたはロード計画実行(あるいはその両方)までパージが実行されます。

-CONTEXT_CODE=<context_code>

いいえ

フィルタ基準: <context_code>で実行されたセッションまたはロード計画実行(あるいはその両方)のみをパージします。

CONTEXT_CODEを省略すると、すべてのコンテキストに対してパージが実行されます。

-USER_NAME=<user_name>

いいえ

フィルタ基準: <user_name>で起動されたセッションまたはロード計画実行(あるいはその両方)のみをパージします。

-AGENT_NAME=<agent_name>

いいえ

フィルタ基準: <agent_name>で実行されたセッションまたはロード計画実行(あるいはその両方)のみをパージします。

-PURGE_REPORTS=<0|1>

いいえ

1の場合は、シナリオ・レポート(各シナリオの実行ノードの下に表示)もパージされます。

-STATUS=<D|E|M>

いいえ

フィルタ基準: 指定した状態のセッションまたはロード計画実行(あるいはその両方)のみをパージします。

- D: 完了

- E: エラー

- M: 警告

このパラメータが指定されていない場合は、前述のすべての状態のセッションまたはロード計画実行(あるいはその両方)がパージされます。

-NAME=<session_or_load_plan_name>

いいえ

フィルタ基準: セッション名またはロード計画名のフィルタ。

-ARCHIVE=<Yes|No>

いいえ

Yesに設定すると、パージする前にセッションまたはロード計画実行(あるいはその両方)をエクスポートします。

-TODIR=<directory>

いいえ

エクスポートのターゲット・ディレクトリ。このパラメータは、ARCHIVEがyesに設定されている場合は必須です。

-ZIPFILE_NAME=<zipfile_name>

いいえ

圧縮ファイルの名前。

エクスポートのターゲット・ディレクトリ。このパラメータは、ARCHIVEがyesに設定されている場合は必須です。

-XML_CHARSET=<charset>

いいえ

エクスポート・ファイルのXMLエンコーディング。デフォルト値はISO-8859-1です。サポートされているエンコーディングは、次のURLで確認できます。

http://java.sun.com/j2se/1.4.2/docs/guide/intl/encoding.doc.html

-JAVA_CHARSET=<charset>

いいえ

エクスポート・ファイルのエンコーディング。デフォルト値はISO8859_1です。サポートされているエンコーディングは、次のURLで確認できます。

http://java.sun.com/j2se/1.4.2/docs/guide/intl/encoding.doc.html

例

2001/03/25 00:00:00から2001/08/31 21:59:00に実行されたすべてのセッションをパージします。

OdiPurgeLog "-FROMDATE=2001/03/25 00:00:00" "-TODATE=2001/08/31 21:59:00"

内部エージェントによってGLOBALコンテキストで実行され、現在はエラー・ステータスのロード計画実行すべてをパージします。

OdiPurgeLog "-PURGE_TYPE=LOAD_PLAN_RUN" "-CONTEXT_CODE=GLOBAL"
"-AGENT_NAME=Internal" "-STATUS=E"

A.5.30 OdiReadMail

このコマンドを使用して、電子メールおよび添付ファイルをPOPまたはIMAPアカウントから読み取ります。

このコマンドは、USERとPASSで指定された接続パラメータを使用して、メール・サーバーMAILHOSTに接続します。実行エージェントは、MAX_MSG件のメッセージを受信するまで、またはTIMEOUTで指定された最大待機時間に達するまで、メールボックスからメッセージを読み取ります。抽出されたメッセージは、SUBJECTおよびSENDERのパラメータで指定されているようなフィルタと一致している必要があります。これらの基準を満たすメッセージは、その内容と添付ファイルがFOLDERパラメータで指定されたディレクトリに抽出されます。KEEPパラメータがnoに設定されている場合、取得したメッセージはメールボックスから削除されます。

使用方法

OdiReadMail -MAILHOST=<mail_host> -USER=<mail_user>
-PASS=<mail_user_password> -FOLDER=<folder_path>
[-PROTOCOL=<pop3|imap>] [-FOLDER_OPT=<none|sender|subject>]
[-KEEP=<no|yes>] [-EXTRACT_MSG=<yes|no>] [-EXTRACT_ATT=<yes|no>]
[-MSG_PRF=<my_prefix>] [-ATT_PRF=<my_prefix>] [-USE_UCASE=<no|yes>]
[-NOMAIL_ERROR=<no|yes>] [-TIMEOUT=<timeout>] [-POLLINT=<pollint>]
[-MAX_MSG=<max_msg>] [-SUBJECT=<subject_filter>] [-SENDER=<sender_filter>]
[-TO=<to_filter>] [-CC=<cc_filter>]

パラメータ

パラメータ

必須

説明

-MAILHOST=<mail_host>

はい

POPまたはIMAPメール・サーバーのIPアドレス。

-USER=<mail_user>

はい

有効なメール・サーバーのアカウント。

-PASS=<mail_user_password>

はい

メール・サーバー・アカウントのパスワード。

-FOLDER=<folder_path>

はい

添付ファイルおよびメッセージ用のストレージ・フォルダのフル・パス。

-PROTOCOL=<pop3|imap>

いいえ

メール・アクセスのタイプ(POP3またはIMAP)。デフォルトはPOP3です。

-FOLDER_OPT=<none|sender|subject>

いいえ

次のパラメータに従ってFOLDERディレクトリにサブディレクトリを作成できます。

- none (デフォルト): アクションなし。

- sender: 送信者の外部名でサブディレクトリが作成されます。

- subject: メッセージの件名でサブディレクトリが作成されます。

senderおよびsubjectフォルダ・オプションでは、スペースと、英数字以外の文字(@など)は、生成されたフォルダ名ではアンダースコアに置き換えられます。

-KEEP=<no|yes>

いいえ

yes: フィルタと一致するメッセージを読み込んだ後、そのメッセージをメールボックス内に保持します。

no (デフォルト): フィルタと一致するメッセージを読み込んだ後、そのメッセージをメールボックスから削除します。

-EXTRACT_MSG=<yes|no>

いいえ

yes (デフォルト): メッセージの本文をファイルに抽出します。

no: メッセージの本文をファイルに抽出しません。

-EXTRACT_ATT=<yes|no>

いいえ

yes (デフォルト): 添付ファイルをファイルに抽出します。

no: 添付ファイルを抽出しません。

-MSG_PRF=<my_prefix>

いいえ

メッセージ本文を格納するファイルの接頭辞。デフォルトはMSGです。

-ATT_PRF=<my_prefix>

いいえ

添付ファイルを格納するファイルの接頭辞。元のファイル名は維持されます。

-USE_UCASE=<no|yes>

いいえ

yes: ファイル名を強制的に大文字にします。

no (デフォルト): 元の大文字と小文字を維持します。

-NOMAIL_ERROR=<no|yes>

いいえ

yes: メールが指定の基準と一致しない場合は、エラーを生成します。

no (デフォルト): 指定の基準に対応するメールがない場合は、エラーを生成しません。

-TIMEOUT=<timeout>

いいえ

ミリ秒単位の最大待機時間(デフォルトは0)。

この待機時間に到達すると、コマンドは終了します。

0の値(デフォルト)は、待機時間が無制限であることを示します(MAX_MSGパラメータで指定された最大メッセージ数に達するまで)。

-POLLINT=<pollint>

いいえ

新しいメッセージをスキャンする検索間隔(ミリ秒単位)。デフォルトは1000 (1秒)です。

-MAX_MSG=<max_msg>

いいえ

抽出するメッセージの最大数(デフォルトは1)。この数に到達すると、コマンドは終了します。

-SUBJECT=<subject_filter>

いいえ

件名に応じたメッセージのフィルタ処理に使用するパラメータ。

-SENDER=<sender_filter>

いいえ

送信者に応じたメッセージのフィルタ処理に使用するパラメータ。

-TO=<to_filter>

いいえ

アドレスに応じたメッセージのフィルタ処理に使用するパラメータ。このオプションを繰り返し使用すると、複数のフィルタを作成できます。

-CC=<cc_filter>

いいえ

コピーのアドレスに応じたメッセージのフィルタ処理に使用するパラメータ。このオプションを繰り返し使用すると、複数のフィルタを作成できます。

例

supportのメールを自動受信します。添付ファイルは切り離してエージェントのマシンのC:\supportフォルダに格納します。10秒の最大待機時間で、すべてのメッセージを待機します。

OdiReadMail -MAILHOST=mail.mymail.com -USER=myaccount -PASS=mypass
-KEEP=no -FOLDER=c:\support -TIMEOUT=0 -MAX_MSG=0
-SENDER=support@mycompany.com -EXTRACT_MSG=yes -MSG_PRF=TXT
-EXTRACT_ATT=yes

1分間隔で新しいメッセージをチェックし、メッセージが10件になるまで無期限で待機します。

OdiReadMail -MAILHOST=mail.mymail.com -USER=myaccount -PASS=mypass
-KEEP=no -FOLDER=c:\support -TIMEOUT=0 -MAX_MSG=10 -POLLINT=60000
-SENDER=support@mycompany.com -EXTRACT_MSG=yes -MSG_PRF=TXT
-EXTRACT_ATT=yes

A.5.31 OdiRefreshJournalCount

このコマンドを使用して、指定のジャーナル化サブスクライバについて、指定の表リストまたはCDCセットに対して消費する行の数をリフレッシュします。このリフレッシュは、論理スキーマと指定のコンテキスト上で実行されるため、制限されることがあります。

注意:

このコマンドは、簡易モードまたは一貫モードでジャーナル化された表に適しています。また、コマンドラインでstartcmdを使用して実行することはできません。

使用方法

OdiRefreshJournalCount -LSCHEMA=<logical_schema> -SUBSCRIBER_NAME=<subscriber_name>
(-TABLE_NAME=<table_name> | -CDC_SET_NAME=<cdc set name>)
[-CONTEXT=<context>] [-MAX_JRN_DATE=<to_date>]

パラメータ

パラメータ

必須

説明

-LSCHEMA=<logical_schema>

はい

ジャーナル化された表が格納されている論理スキーマ。

-TABLE_NAME=<table_name>

簡易CDCでは必須

チェックするジャーナル化表の名前、マスクまたはリスト。このパラメータでは3つの書式を使用できます。

- 表名

- 表名マスク: このマスクはポーリングする表を選択します。マスクはSQL LIKE構文を使用して指定されます。%記号は不特定数の文字、_記号はワイルドカードとして動作します。

- 表名リスト: カンマ区切りの表名のリスト。上で定義したマスクは使用できません。

このオプションは簡易モードでジャーナル化されたモデルの表でのみ機能します。

このパラメータはCDC_SET_NAMEとは併用できません。CDC_SET_NAMEが設定されていない場合は必須です。

-CDC_SET_NAME=<cdcSetName>

一貫性セットCDCでは必須

チェックするCDCセットの名前。

このオプションは一貫性モードでジャーナル化されたモデルの表でのみ機能します。

このパラメータはTABLE_NAMEとは併用できません。TABLE_NAMEが設定されていない場合は必須です。

-SUBSCRIBER_NAME=<subscriber_name>

はい

カウントをリフレッシュするサブスクライバの名前。

-CONTEXT=<context>

いいえ

論理スキーマを解決するコンテキスト。コンテキストの指定を省略すると、実行コンテキストが使用されます。

-MAX_JRN_DATE=<to_date>

いいえ

ジャーナル化イベントが考慮される最終日(日時)。

例

SALES_APPLICATIONスキーマのCUSTOMERS表で、SALES_SYNCサブスクライバについて記録されている変更数をリフレッシュします。このデータストアは簡易モードでジャーナル化されます。

OdiRefreshJournalCount -LSCHEMA=SALES_APPLICATION
-TABLE_NAME=CUSTOMERS -SUBSCRIBER_NAME=SALES_SYNC

SALES_APPLICATIONスキーマのSALES CDCセットのすべての表で、SALES_SYNCサブスクライバについて記録されている変更数をリフレッシュします。このデータストアは一貫性のセットCDCでジャーナル化されます。

OdiRefreshJournalCount -LSCHEMA=SALES_APPLICATION
-SUBSCRIBER_NAME=SALES_SYNC -CDC_SET_NAME=SALES

A.5.32 OdiReinitializeSeq

このコマンドを使用して、Oracle Data Integrator順序を再初期化します。

使用方法

OdiReinitializeSeq -SEQ_NAME=<sequence_name> -CONTEXT=<context>
-STD_POS=<position>

パラメータ

パラメータ

必須

説明

-SEQ_NAME=<sequence_name>

はい

再初期化する順序の名前。グローバル順序の場合はGLOBAL、プロジェクト順序の場合は<project code>を接頭辞として使用する必要があります。

-CONTEXT=<context>

はい

順序の再初期化が必要なコンテキスト。

-STD_POS=<position>

はい

順序の再初期化が必要な位置。

例

GLOBALコンテキストのグローバル順序SEQ_Iをゼロにリセットします。

OdiReinitializeSeq -SEQ_NAME=GLOBAL.SEQ_I -CONTEXT=GLOBAL
-STD_POS=0

A.5.33 OdiRetrieveJournalData

このコマンドを使用して、指定したジャーナル化サブスクライバについて、指定の表リストまたはCDCセットのジャーナル化イベントを取得します。この取得は、表を格納しているテクノロジに固有の方法で実行されます。この取得は、論理スキーマと指定のコンテキスト上で実行されます。

注意:

このツールは、簡易モードまたは一貫性セット・モードでジャーナル化された表に対して機能します。また、コマンドラインでstartcmdを使用して実行することはできません。

使用方法

OdiRetrieveJournalData -LSCHEMA=<logical_schema> -SUBSCRIBER_NAME=<subscriber_name>
(-TABLE_NAME=<table_name> | -CDC_SET_NAME=<cdc_set_name>)
[-CONTEXT=<context>] [-MAX_JRN_DATE=<to_date>]

パラメータ

パラメータ

必須

説明

-LSCHEMA=<logical_schema>

はい

ジャーナル化された表が格納されている論理スキーマ。

-TABLE_NAME=<table_name>

いいえ

チェックするジャーナル化表の名前、マスクまたはリスト。このパラメータでは3つの書式を使用できます。

- 表名

- 表名マスク: このマスクはポーリングする表を選択します。マスクはSQL LIKE構文を使用して指定されます。%記号は不特定数の文字、_記号はワイルドカードとして動作します。

- 表名リスト: カンマ区切りの表名のリスト。上で定義したマスクは使用できません。

このオプションは簡易モードでジャーナル化されたモデルの表でのみ機能します。

このパラメータはCDC_SET_NAMEとは併用できません。CDC_SET_NAMEが設定されていない場合は必須です。

-CDC_SET_NAME=<cdc_set_name>

いいえ

更新するCDCセットの名前。

このオプションは一貫性モードでジャーナル化されたモデルの表でのみ機能します。

このパラメータはTABLE_NAMEとは併用できません。TABLE_NAMEが設定されていない場合は必須です。

-SUBSCRIBER_NAME=<subscriber_name>

はい

データを取得するサブスクライバの名前。

-CONTEXT=<context>

いいえ

論理スキーマを解決するコンテキスト。コンテキストの指定を省略すると、実行コンテキストが使用されます。

-MAX_JRN_DATE=<to_date>

いいえ

ジャーナル化イベントが考慮される最終日(日時)。

例

SALES_APPLICATIONスキーマのCUSTOMERS表で、SALES_SYNCサブスクライバのジャーナル化イベントを取得します。

OdiRetrieveJournalData -LSCHEMA=SALES_APPLICATION
-TABLE_NAME=CUSTOMERS -SUBSCRIBER_NAME=SALES_SYNC

A.5.34 OdiReverseGetMetaData

このコマンドを使用して、リバース表内の指定モデルのメタデータをJDBCドライバの機能を介してリバースエンジニアリングします。通常、このコマンドの前にはOdiReverseResetTable、後にはOdiReverseSetMetaDataがあります。

注意:

- このコマンドは標準のリバースエンジニアリングと同様のテクニックを使用しており、使用されるJDBCドライバの機能に依存しています。

- 実行タイプのリポジトリではメタデータを使用できないため、このコマンドの使用は開発タイプのリポジトリに制限されます。

使用方法

OdiReverseGetMetaData -MODEL=<model_id>

パラメータ

パラメータ

必須

説明

-MODEL=<model_id>

はい

リバースエンジニアリングするモデル。

例

RKMの現在のモデルをリバースします。

OdiReverseGetMetaData -MODEL=<%=odiRef.getModel("ID")%>

A.5.35 OdiReverseManageShortcut

このコマンドは、モデル内でショートカットがリバースエンジニアリングされたときに、ショートカットをどのように処理するかを定義するために使用します。

使用方法

OdiReverseManageShortcut "-MODEL=<model_id>" "-MODE=MATERIALIZING_MODE"

パラメータ

パラメータ

必須

説明

-MODEL=<model_id>

はい

リバースするモデルの内部識別子。

-MODE=ALWAYS_MATERIALIZE|ALWAYS_SKIP|PROMPT

はい

このオプションには、次の値を使用できます:

- ALWAYS_MATERIALIZE: 競合するショートカットが常にマテリアライズされ、データストアがリバースされます(デフォルト)。

- ALWAYS_SKIP: 競合するショートカットが常にスキップされ、リバースされません。

- PROMPT: 検出されたショートカット競合ダイアログが表示されます。競合するショートカットの処理方法を定義できます。競合するデータストアのショートカットをマテリアライズし、リバースエンジニアリングする場合は、「マテリアライズ」を選択します。競合するショートカットをスキップする場合は、「マテリアライズ」の選択を解除します。選択を解除したデータストアはリバースされず、ショートカットがそのまま残ります。

例

OdiReverseManageShortcut -MODEL=125880 -MODE=ALWAYS_MATERIALIZE

A.5.36 OdiReverseResetTable

このコマンドを使用して、指定のモデルに対するリバース表の内容をリセットします。このコマンドは、通常、カスタマイズされたリバースエンジニアリング・プロセスの最初に使用されます。

使用方法

OdiReverseResetTable -MODEL=<model_id>

パラメータ

パラメータ

必須

説明

-MODEL=<model_id>

はい

リバースするモデルの内部識別子。

例

OdiReverseResetTable -MODEL=123001

A.5.37 OdiReverseSetMetaData

このコマンドを使用して、指定のデータ・モデルについて、リバース表のメタデータをリポジトリに統合します。

使用方法

OdiReverseSetMetaData -MODEL=<model_id> [-USE_TABLE_NAME_FOR_UPDATE=<true|false>]

パラメータ

パラメータ

必須

説明

-MODEL=<model_id>

はい

リバースするモデルの内部識別子。

-USE_TABLE_NAME_FOR_UPDATE=<true|false>

いいえ

- trueの場合は、TABLE_NAMEがターゲット表の更新キーとして使用されます。

- false (デフォルト)の場合は、RES_NAMEがターゲット表の更新キーとして使用されます。

例

OdiReverseSetMetaData -MODEL=123001 -USE_TABLE_NAME_FOR_UPDATE=true

A.5.38 OdiSAPALEClient and OdiSAPALEClient3

このコマンドを使用して、XMLソース・ファイルからSAP Internal Documents (IDoc)を生成し、これらのIDocをALE (Application Link Enabling)を使用してリモートtRFC Server (SAP R/3 Server)に転送します。

注意:

OdiSAPALEClientツールは、SAP Java Connector 2.xをサポートしています。SAP Java Connectors 3.xを使用する場合は、OdiSAPALEClient3ツールを使用してください。

OdiSAPALEClientの使用方法

OdiSAPALEClient -USER=<sap_logon> -ENCODED_PASSWORD=<password>
-GATEWAYHOST=<gateway_host> -SYSTEMNR=<system_number> -MESSAGESERVERHOST=<message_server> -R3NAME=<system_name> -APPLICATIONSERVERSGROUP=<group_name>
[-DIR=<directory>] [-FILE=<file>] [-CASESENS=<yes|no>]
[-MOVEDIR=<target_directory>] [-DELETE=<yes|no>] [-POOL_KEY=<pool_key>]
[-LANGUAGE=<language>] [-CLIENT=<client>] [-MAX_CONNECTIONS=<n>]
[-TRACE=<no|yes>]

OdiSAPALEClient3の使用方法

OdiSAPALEClient3 -USER=<sap_logon> -ENCODED_PASSWORD=<password>
-GATEWAYHOST=<gateway_host> -SYSTEMNR=<system_number> -MESSAGESERVERHOST=<message_server> -R3NAME=<system_name> -APPLICATIONSERVERSGROUP=<group_name>
[-DIR=<directory>] [-FILE=<file>] [-CASESENS=<yes|no>]
[-MOVEDIR=<target_directory>] [-DELETE=<yes|no>] [-POOL_KEY=<pool_key>]
[-LANGUAGE=<language>] [-CLIENT=<client>] [-MAX_CONNECTIONS=<n>]
[-TRACE=<no|yes>]

パラメータ

パラメータ

必須

説明

-USER=<sap_logon>

はい

SAPログオン。このユーザーはシステム・ユーザーの場合があります。

-PASSWORD=<password>

非推奨

SAPログオン・パスワード。このコマンドは非推奨です。かわりにENCODED_PASSWORDを使用してください。

-ENCODED_PASSWORD=<password>

はい

暗号化されたSAPログオン・パスワード。このパスワードはOSコマンドencode <password>を使用して暗号化できます。

-GATEWAYHOST=<gateway_host>

いいえ

ゲートウェイ・ホスト。MESSAGESERVERHOSTを指定しない場合は必須です。

-SYSTEMNR=<system_number>

いいえ

SAPシステム番号。GATEWAYHOSTを使用する場合は必須です。SAPシステム番号を使用すると、SAPロード・バランシング機能を使用できます。

-MESSAGESERVERHOST=<message_server>

いいえ

メッセージ・サーバーのホスト名。GATEWAYHOSTを指定しない場合は必須です。GATEWAYHOSTとMESSAGESERVERHOSTの両方のパラメータを指定した場合は、MESSAGESERVERHOSTが使用されます。

-R3NAME=<system_name>

いいえ

SAPシステムの名前(r3name)。MESSAGESERVERHOSTを使用する場合は必須です。

-APPLICATIONSERVERSGROUP=<group_name>

いいえ

アプリケーション・サーバーのグループ名。MESSAGESERVERHOSTを使用する場合は必須です。

-DIR=<directory>

いいえ

XMLソース・ファイル・ディレクトリ。このパラメータは、-FILEを指定しない場合に考慮されます。少なくとも-DIRまたは-FILEのいずれかのパラメータを指定する必要があります。

-FILE=<file>

いいえ

ソースXMLファイルの名前。このパラメータを省略すると、-DIRのすべてのファイルが処理されます。少なくとも-DIRまたは-FILEのいずれかのパラメータを指定する必要があります。

-CASESENS=<yes|no>

いいえ

ソース・ファイル名の大文字と小文字が区別されるかどうかを示します。デフォルトはNOです。

-MOVEDIR=<target_directory>

いいえ

このパラメータを指定すると、処理後にソース・ファイルがこのディレクトリに移動します。

-DELETE=<yes|no>

いいえ

処理後にソース・ファイルを削除します。デフォルトはyesです。

-POOL_KEY=<pool_key>

いいえ

接続プールの名前。デフォルトはODIです。

-LANGUAGE=<language>

いいえ

エラー・メッセージで使用する言語コード。デフォルトはENです。

-CLIENT=<client>

いいえ

クライアント識別子。デフォルトは001です。

-MAX_CONNECTIONS=<n>

いいえ

プールの最大接続数。デフォルトは3です。

-TRACE=<no|yes>

いいえ

生成されたIDocファイルをソース・ファイル・ディレクトリにアーカイブします。ソース・ファイルが(-MOVEDIRパラメータの指定で)移動すると、生成されたIDocsも移動します。デフォルトはnoです。

例

/sapディレクトリのすべてのファイルを処理し、SAPサーバーにIDocsとして送信します。処理後に、オリジナルのXMLと生成されたファイルは/logディレクトリに格納されます。

OdiSAPALEClient -USER=ODI -ENCODED_PASSWORD=xxx -SYSTEMNR=002
-GATEWAYHOST=GW001 -DIR=/sap -MOVEDIR=/log -TRACE=yes

A.5.39 OdiSAPALEServer and OdiSAPALEServer3

このコマンドを使用して、ALE (Application Link Enabling)を介して転送されたSAP IDocsを受信するtRFCリスナーを起動します。このリスナーにより、着信IDocsが指定されたディレクトリのXMLファイルに変換されます。

注意:

OdiSAPALEServerツールは、SAP Java Connector 2.xをサポートしています。SAP Java Connectors 3.xを使用する場合は、OdiSAPALEServer3ツールを使用してください。

OdiSAPALEServerの使用方法

OdiSAPALEServer -USER=<sap_logon> -ENCODED_PASSWORD=<password>
-GATEWAYHOST=<gateway_host> -SYSTEMNR=<system_number>
-GATEWAYNAME=<gateway_name> -PROGRAMID=<program_id> -DIR=<target_directory>
[-TIMEOUT=<n>] [-POOL_KEY=<pool_key>] [-LANGUAGE=<Language>]
[-CLIENT=<client>] [-MAX_CONNECTIONS=<n>]
[-INTERREQUESTTIMEOUT=<n>] [-MAXREQUEST=<n>] [-TRACE=<no|yes>]

OdiSAPALEServer3の使用方法

OdiSAPALEServer3 -USER=<sap_logon> -ENCODED_PASSWORD=<password>
-GATEWAYHOST=<gateway_host> -SYSTEMNR=<system_number>
-GATEWAYNAME=<gateway_name> -PROGRAMID=<program_id> -DIR=<target_directory>
[-TIMEOUT=<n>] [-POOL_KEY=<pool_key>] [-LANGUAGE=<Language>]
[-CLIENT=<client>] [-MAX_CONNECTIONS=<n>]
[-INTERREQUESTTIMEOUT=<n>] [-MAXREQUEST=<n>] [-TRACE=<no|yes>]

パラメータ

パラメータ

必須

説明

-USER=<UserName>

はい

SAPログオン。このユーザーはシステム・ユーザーの場合があります。

-ENCODED_PASSWORD=<password>

はい

暗号化されたSAPログオン・パスワード。このパスワードはOSコマンドencode <password>を使用して暗号化できます。

-GATEWAYHOST=<gateway_host>

はい

ゲートウェイ・ホスト。

-SYSTEMNR=<system_number>

はい

SAPシステム番号。

-GATEWAYNAME=<gateway_name>

はい

ゲートウェイ名。

-PROGRAMID=<program_id>

はい

プログラムID。tRFCサーバーによって使用される外部名です。

-DIR=<target_directory>

はい

ターゲットXMLファイルを格納するディレクトリ。これらのファイルの名前は、<IDOC Number>.xmlとなり、IDocタイプに基づいて名付けられたサブディレクトリに配置されます。デフォルトは./FromSAPです。

-POOL_KEY=<pool_key>

はい

接続プールの名前。デフォルトはODIです。

-LANG=<language>

はい

エラー・メッセージで使用する言語コード。デフォルトはENです。

-CLIENT=<client>

はい

SAPクライアント識別子。デフォルトは001です。

-TIMEOUT=<n>

いいえ

サーバーの存続期間(ミリ秒単位)。この期間の終了時にサーバーは自動的に停止します。このタイムアウトがゼロに設定されている場合、サーバーの存続期間は無限です。デフォルトは0です。

-MAX_CONNECTIONS=<n>

はい

接続のプールに対する最大許容接続数。デフォルトは3です。

-INTERREQUESTTIMEOUT=<n>

いいえ

nミリ秒の間隔の合間にIDOCを受信しない場合、リスナーは停止します。このタイムアウトがゼロに設定されている場合、タイムアウトは無限です。デフォルトは0です。

-MAXREQUEST=<n>

いいえ

リスナーが停止するまでの最大リクエスト数。このパラメータがゼロに設定されている場合、サーバーで予期されるリクエスト数は無限です。デフォルトは0です。

注意: -TIMEOUT、-INTERREQUESTTIMEOUTおよび-MAXREQUESTをすべてゼロに設定したり未設定にしておくと、-MAXREQUESTに1の値が自動的に適用されます。

-TRACE=<no|yes>

いいえ

デバッグ・トレースをアクティブにします。デフォルトはnoです。

例

2つのIDocファイルを待機し、/tempディレクトリにターゲットXMLファイルを生成します。

OdiSAPALEServer -POOL_KEY=ODI -MAX_CONNECTIONS=3 -CLIENT=001
-USER=ODI -ENCODED_PASSWORD=xxx -LANGUAGE=EN
-GATEWAYHOST=SAP001 -SYSTEMNR=002 -GATEWAYNAME=GW001
-PROGRAMID=ODI01 -DIR=/tmp -MAXREQUEST=2

A.5.40 OdiScpGet

このコマンドを使用して、SSHサーバーからファイルをダウンロードします。

使用方法

OdiScpGet -HOST=<ssh server host name> -USER=<ssh user> [-PASSWORD=<ssh user password>] -REMOTE_DIR=<remote dir on ftp host> [-REMOTE_FILE=<file name under the REMOTE_DIR>] -LOCAL_DIR=<local dir> [-LOCAL_FILE=<file name under the LOCAL_DIR>][-PASSIVE_MODE=<yes|no>] -TIMEOUT=<time in seconds>] [-IDENTITY_FILE=<full path to the private key file of the user>] [-KNOWNHOSTS_FILE=<full path to known hosts file>][COMPRESSION=<yes|no>][-STRICT_HOSTKEY_CHECKING=<yes|no>][-PROXY_HOST=<proxy server host name>] [-PROXY_PORT=<proxy server port>] [-PROXY_TYPE=<HTTP|SOCKS5>]

パラメータ

パラメータ

必須

説明

-HOST=<host name of the SSH server>

はい

SSHサーバーのホスト名。

-USER=<host name of the SSH user>

はい

SSHサーバーのユーザー。

-PASSWORD=<password of the Ftp user>

いいえ

SSHユーザーのパスワードまたはパスワードで保護されたアイデンティティ・ファイルのパスフレーズ。–IDENTITY_FILE引数が指定されている場合、この値はパスワードで保護された秘密鍵ファイルのパスフレーズとして使用されます。公開鍵認証に失敗した場合は、通常のユーザー・パスワード認証になります。

-REMOTE_DIR=<dir on remote SSH>

はい

リモートFTPホスト上のディレクトリ・パス。

-REMOTE_FILE=<file name under -REMOTE DIR>

いいえ

-REMOTE_DIR引数で指定されたディレクトリのファイル名。リモート・ファイル名と一致するサブディレクトリもすべてローカル・フォルダに転送されます。

この引数が欠落している場合は、-LOCAL_FILEファイル名を使用してファイルがコピーされます。-LOCAL_FILE引数も欠落している場合は、-LOCAL_DIRが-REMOTE_DIRに再帰的にコピーされます。

-LOCAL_DIR=<local dir path>

はい

ローカル・マシン上のディレクトリ・パス。

-LOCAL_FILE=<local file>

いいえ

-LOCAL_DIR引数で指定されたディレクトリのファイル名。この引数が欠落している場合は、-LOCAL_DIRにあるすべてのファイルおよびディレクトリが、-REMOTE_DIRに再帰的にコピーされます。

コピーするファイルをフィルタ処理するには、「*」を使用して汎用文字を指定します。

例:

- *.log (log拡張子のファイルすべて)

- arch_*.lst (arch_で開始するlst拡張子のファイルすべて)

-IDENTITY_FILE=<full path to the private key file of the user>

いいえ

ローカル・ユーザーの秘密鍵ファイル。この引数を指定すると、公開鍵認証が実施されます。–PASSWORD引数は、パスワードで保護された秘密鍵ファイルのパスワードとして使用されます。公開鍵認証に失敗した場合は、通常のユーザー・パスワード認証になります。

-KNOWNHOSTS_FILE=<full path to the known hosts file on the local machine>

いいえ

ローカル・マシンのKnown_Hostsファイルのフル・パス。Known_Hostsファイルには、ユーザーが信頼しているリモート・マシンのホスト・キーがすべて格納されます。この引数が欠落している場合は、Known_Hostsファイルとして<user home dir>/.ssh/Known_hostsファイル(存在する場合)が使用されます。

-COMPRESSION=<yes|no>

いいえ

データ圧縮を使用する場合はYesに設定します。デフォルトはNoです。

-STRICT_HOSTKEY_CHECKING=<YES|NO>

いいえ

この引数の値はYESまたはNOです。YES値が渡されると、厳密なホストキー・チェックが実行され、リモートSSHホスト・キーが–KNOWNHOSTS_FILEパラメータで指定された既知のホストに存在しない場合は、認証に失敗します。デフォルト値はYESです。

-PROXY_HOST

いいえ

接続に使用されるプロキシ・サーバーのホスト名。

-PROXY_PORT

いいえ

プロキシ・サーバーのポート番号。

-PROXY_TYPE

いいえ

接続するプロキシ・サーバーのタイプ。可能な値はHTTPまたはSOCKS5のみです。

-TIMEOUT=<timeout value>

いいえ

ソケット接続がタイムアウトするまでの秒数。

例

SSHサーバー・マシン上のリモート・ディレクトリ/test_copy555をローカル・ディレクトリC:\temp\test_copyに再帰的にコピーします。

OdiScpGet -HOST=machine.oracle.com -USER=test_ftp -PASSWORD=<password>
-LOCAL_DIR=C:\temp\test_copy -REMOTE_DIR=/test_copy555

SSHサーバー・マシン上のリモート・ディレクトリ/にあるSales*.txtパターンと一致するすべてのファイルをローカル・ディレクトリC:\temp\にコピーします。

OdiScpGet -HOST=machine.oracle.com -USER=test_ftp -PASSWORD=<password>
-LOCAL_DIR=C:\temp -REMOTE_FILE=Sales*.txt -REMOTE_DIR=/

SSHサーバー・マシン上のリモート・ディレクトリ/にあるSales1.txtファイルをローカル・ディレクトリC:\temp\にSample1.txtファイルとしてコピーします。

OdiScpGet -HOST=machine.oracle.com -USER=test_ftp -PASSWORD=<password>
-REMOTE_DIR=/ REMOTE_FILE=Sales1.txt -LOCAL_DIR=C:\temp
-LOCAL_FILE=Sample1.txt

SSHサーバー・マシン上のリモート・ディレクトリ/にあるSales1.txtファイルをローカル・ディレクトリC:\temp\にSample1.txtファイルとしてコピーします。アイデンティティ・ファイルのパスおよび既知のホスト・ファイルのパスを指定して、公開鍵認証を実施します。

OdiScpGet -HOST=machine.oracle.com -USER=test_ftp -PASSWORD=<password>
-REMOTE_DIR=/ -REMOTE_FILE=Sales1.txt -LOCAL_DIR=C:\temp
-LOCAL_FILE=Sample1.txt -IDENTITY_FILE=C:\Documents and Settings\username\.ssh\id_dsa -KNOWNHOSTS_FILE= C:\Documents and Settings\username\.ssh\Known_Hosts

SSHサーバー・マシン上のリモート・ディレクトリ/にあるSales1.txtファイルをローカル・ディレクトリC:\temp\にSample1.txtファイルとしてコピーします。アイデンティティ・ファイルのパスを指定して、公開鍵認証を実施します。STRICT_HOSTKEY_CHECKINGパラメータにNOの値を渡すことで、すべてのホストを信頼します。

OdiScpGet -HOST=machine.oracle.com -USER=test_ftp -PASSWORD=<password> -REMOTE_DIR=/ -REMOTE_FILE=Sales1.txt -LOCAL_DIR=C:\temp -LOCAL_FILE=Sample1.txt -IDENTITY_FILE=C:\Documents and Settings\username\.ssh\id_dsa -STRICT_HOSTKEY_CHECKING=NO

A.5.41 OdiScpPut

このコマンドを使用して、ファイルをSSHサーバーにアップロードします。

使用方法

OdiScpPut -HOST=<SSHserver host name> -USER=<SSH user> [-PASSWORD=<SSH user password>] -LOCAL_DIR=<local dir> [-LOCAL_FILE=<file name under the LOCAL_DIR>] -REMOTE_DIR=<remote dir on ftp host> [-REMOTE_FILE=<file name under the REMOTE_DIR>] [-PASSIVE_MODE=<yes|no>] [-TIMEOUT=<time in seconds>] [-IDENTITY_FILE=<full path to the private key file of the user>][-KNOWNHOSTS_FILE=<full path to known hosts file>][-COMPRESSION=<yes|no>][-STRICT_HOSTKEY_CHECKING=<yes|no>] <-PROXY_HOST=<proxy server host name>][-PROXY_PORT=<proxy server port>] [-PROXY_TYPE=<HTTP|SOCKS5>]

パラメータ

パラメータ

必須

説明

-HOST=<host name of the SSH server>

はい

SSHサーバーのホスト名。

-USER=<host name of the SSH user>

はい

SSHサーバーのユーザー。

-PASSWORD=<password of the SSH user>

いいえ

SSHユーザーのパスワードまたはパスワードで保護されたアイデンティティ・ファイルのパスフレーズ。–IDENTITY_FILE引数が指定されている場合、この値はパスワードで保護された秘密鍵ファイルのパスフレーズとして使用されます。公開鍵認証に失敗した場合は、通常のユーザー・パスワード認証になります。

-REMOTE_DIR=<dir on remote SSH

はい

リモートFTPホスト上のディレクトリ・パス。

-REMOTE_FILE=<file name under -REMOTE DIR>

いいえ

-REMOTE_DIR引数で指定されたディレクトリのファイル名。この引数が欠落している場合は、-LOCAL_FILEファイル名を使用してファイルがコピーされます。-LOCAL_FILE引数も欠落している場合は、-LOCAL_DIRが-REMOTE_DIRに再帰的にコピーされます。

-LOCAL_DIR=<local dir path>

はい

ローカル・マシン上のディレクトリ・パス。

-LOCAL_FILE=<local file>

いいえ

-LOCAL_DIR引数で指定されたディレクトリのファイル名。この引数が欠落している場合は、-LOCAL_DIRにあるすべてのファイルおよびディレクトリが、-REMOTE_DIRに再帰的にコピーされます。

コピーするファイルをフィルタ処理するには、「*」を使用して汎用文字を指定します。

例:

- *.log (log拡張子のファイルすべて)

- arch_*.lst (arch_で開始するlst拡張子のファイルすべて)

-IDENTITY_FILE=<full path to the private key file of the user>

いいえ

ローカル・ユーザーの秘密鍵ファイル。この引数を指定すると、公開鍵認証が実施されます。–PASSWORD引数は、パスワードで保護された秘密鍵ファイルのパスワードとして使用されます。公開鍵認証に失敗した場合は、通常のユーザー・パスワード認証になります。

-KNOWNHOSTS_FILE=<full path to the known hosts file on the local machine>

いいえ

ローカル・マシンのKnown_Hostsファイルのフル・パス。Known_Hostsファイルには、ユーザーが信頼しているリモート・マシンのホスト・キーがすべて格納されます。この引数が欠落している場合は、Known_Hostsファイルとして<user home dir>/.ssh/Known_hostsファイル(存在する場合)が使用されます。

-COMPRESSION=<yes|no>

いいえ

データ圧縮を使用する場合はYesに設定します。デフォルトはNoです。

-STRICT_HOSTKEY_CHECKING=<YES|NO>

いいえ

この引数の値はYESまたはNOです。YES値が渡されると、厳密なホストキー・チェックが実行され、リモートSSHホスト・キーが–KNOWNHOSTS_FILEパラメータで指定された既知のホストに存在しない場合は、認証に失敗します。デフォルト値はYESです。

-PROXY_HOST

いいえ

接続に使用されるプロキシ・サーバーのホスト名。

-PROXY_PORT

いいえ

プロキシ・サーバーのポート番号。

-PROXY_TYPE

いいえ

接続するプロキシ・サーバーのタイプ。可能な値はHTTPまたはSOCKS5のみです。

-TIMEOUT=<timeout value>

いいえ

ソケット接続がタイムアウトするまでの秒数。

例

ローカル・ディレクトリC:\temp\test_copyをFTPサーバー・マシン上のリモート・ディレクトリ/test_copy555に再帰的にコピーします。

OdiSftpPut -HOST=machine.oracle.com -USER=test_ftp -PASSWORD=<password> -LOCAL_DIR=C:\temp\test_copy -REMOTE_DIR=/test_copy555

ローカル・ディレクトリC:\temp\にあるSales*.txtパターンと一致するすべてのファイルをFTPサーバー・マシン上のリモート・ディレクトリ/にコピーします。

OdiSftpPut -HOST=machine.oracle.com -USER=test_ftp -PASSWORD=<password> -LOCAL_DIR=C:\temp -LOCAL_FILE=Sales*.txt -REMOTE_DIR=/

ローカル・ディレクトリC:\temp\にあるSales1.txtファイルをFTPサーバー・マシン上のリモート・ディレクトリ/にSample1.txtファイルとしてコピーします。

OdiSftpPut -HOST=machine.oracle.com -USER=test_ftp -PASSWORD=<password> -LOCAL_DIR=C:\temp -LOCAL_FILE=Sales1.txt -REMOTE_DIR=/ -REMOTE_FILE=Sample1.txt

ローカル・ディレクトリC:\temp\にあるSales1.txtファイルをFTPサーバー・マシン上のリモート・ディレクトリ/にSample1.txtファイルとしてコピーします。アイデンティティ・ファイルのパスおよび既知のホスト・ファイルのパスを指定して、公開鍵認証を実施します。

OdiSftpPut -HOST=machine.oracle.com -USER=test_ftp -PASSWORD=<password> -LOCAL_DIR=C:\temp -LOCAL_FILE=Sales1.txt -REMOTE_DIR=/ -REMOTE_FILE=Sample1.txt -IDENTITY_FILE=C:\Documents and Settings\username\.ssh\id_dsa -KNOWNHOSTS_FILE= C:\Documents and Settings\username\.ssh\Known_Hosts

ローカル・ディレクトリC:\temp\にあるSales1.txtファイルをFTPサーバー・マシン上のリモート・ディレクトリ/にSample1.txtファイルとしてコピーします。アイデンティティ・ファイルのパスを指定して、公開鍵認証を実施します。STRICT_HOSTKEY_CHECKINGパラメータにNOの値を渡すことで、すべてのホストを信頼します。

OdiSftpPut -HOST=machine.oracle.com -USER=test_ftp -PASSWORD=<password> -LOCAL_DIR=C:\temp -LOCAL_FILE=Sales1.txt -REMOTE_DIR=/ -REMOTE_FILE=Sample1.txt -IDENTITY_FILE=C:\Documents and Settings\username\.ssh\id_dsa -STRICT_HOSTKEY_CHECKING=NO

A.5.42 OdiSendMail

このコマンドを使用して、電子メールをSMTPサーバーに送信します。

使用方法

OdiSendMail -MAILHOST=<mail_host> -FROM=<from_user> -TO=<address_list>
[-CC=<address_list>] [-BCC=<address_list>] [-SUBJECT=<subject>]
[-ATTACH=<file_path>]* [-MSGBODY=<message_body> | CR/LF<message_body>]

パラメータ

パラメータ

必須

説明

-MAILHOST=<mail_host>

はい

SMTPサーバーのIPアドレス。

-FROM=<from_user>

はい

メッセージの送信者のアドレス。

例: support@mycompany.com

送信者の外部名を送信するには、次の表記法を使用できます。

"-FROM=Support center <support@mycompany.com>"

-TO=<address_list>

はい

受信者の電子メール・アドレス・リスト(カンマ区切り)。

例:

"-TO=sales@mycompany.com, support@mycompany.com"

-CC=<address_list>

いいえ

コピー(CC)受信者の電子メール・アドレス・リスト(カンマ区切り)。

例:

-CC=info@mycompany.com

-BCC=<address_list>

いいえ

コピー(BCC)受信者の電子メール・アドレス・リスト(カンマ区切り)。

例:

-BCC=manager@mycompany.com

-SUBJECT=<subject>

いいえ

メッセージの目的(件名)。

-ATTACH=<file_path>

いいえ

メッセージに結合するファイルの実行エージェントに対する相対パス。複数のファイルを結合するには、-ATTACH=...を繰り返す必要があります。

例: ファイル.profileおよび.cshrcをメールに添付する場合は、次のようにします。

-ATTACH=/home/usr/.profile -ATTACH=/home/usr/.cshrc

CR/LF <message_body>

または-MSGBODY=<message_body>

いいえ

メッセージ本文(テキスト)。このテキストは、OdiSendMailコマンドの次の行(改行のCR/LFがメール本文の始まりを示す)に入力することも、-MSGBODYパラメータを使用して定義することもできます。このOracle Data IntegratorコマンドをOSのコマンドラインからコールする場合は、-MSGBODYパラメータを使用してください。

例

OdiSendMail -MAILHOST=mail.mymail.com "-FROM=Application Oracle Data
Integrator<odi@mymail.com>" -TO=admin@mymail.com "-SUBJECT=Execution OK"
-ATTACH=C:\log\job.log -ATTACH=C:\log\job.bad
Hello Administrator !
Your process finished successfully. Attached are your files.
Have a nice day!
Oracle Data Integrator.

A.5.43 OdiSftpGet

このコマンドを使用して、SFTPサブシステムが有効なSSHサーバーからファイルをダウンロードします。

使用方法

OdiSftpGet -HOST=<ssh server host name> -USER=<ssh user> [-PASSWORD=<ssh user password>] -REMOTE_DIR=<remote dir on ftp host> [-REMOTE_FILE=<file name under the REMOTE_DIR>] -LOCAL_DIR=<local dir> [-LOCAL_FILE=<file name under the LOCAL_DIR>] [-PASSIVE_MODE=<yes|no>] [-TIMEOUT=<time in seconds>] [-IDENTITY_FILE=<full path to the private key file of the user>] [-KNOWNHOSTS_FILE=<full path to known hosts file>][COMPRESSION=<yes|no>][-STRICT_HOSTKEY_CHECKING=<yes|no>][-PROXY_HOST=<proxy server host name>][-PROXY_PORT=<proxy server port>] [-PROXY_TYPE=<HTTP| SOCKS5>]

パラメータ

パラメータ

必須

説明

-HOST=<host name of the SSH server>

はい

SSHサーバーのホスト名。

コロン(:)を前に付けることにより、ポート番号をホスト名に追加できます。例: machine.oracle.com:25

ポートが指定されていない場合、デフォルトでポート22が使用されます。

-USER=<host name of the SSH user>

はい

SSHサーバーのユーザー。

-PASSWORD=<password of the SSH user>

いいえ

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

-REMOTE_DIR=<dir on SSH host>

はい

リモートSSHホスト上のディレクトリ・パス。

-REMOTE_FILE=<file name under -REMOTE DIR>

いいえ

-REMOTE_DIR引数で指定されたディレクトリのファイル名。この引数が欠落している場合は、-LOCAL_FILEファイル名を使用してファイルがコピーされます。-LOCAL_FILE引数も欠落している場合は、-LOCAL_DIRが-REMOTE_DIRに再帰的にコピーされます。

-LOCAL_DIR=<local dir path>

はい

ローカル・マシン上のディレクトリ・パス。

-LOCAL_FILE=<local file>

いいえ

-LOCAL_DIR引数で指定されたディレクトリのファイル名。この引数が欠落している場合は、-LOCAL_DIRにあるすべてのファイルおよびディレクトリが、-REMOTE_DIRに再帰的にコピーされます。

コピーするファイルをフィルタ処理するには、「*」を使用して汎用文字を指定します。

例:

- *.log (log拡張子のファイルすべて)

- arch_*.lst (arch_で開始するlst拡張子のファイルすべて)

-IDENTITY_FILE=<full path to the private key file of the user>

いいえ

ローカル・ユーザーの秘密鍵ファイル。この引数を指定すると、公開鍵認証が実施されます。–PASSWORD引数は、パスワードで保護された秘密鍵ファイルのパスワードとして使用されます。公開鍵認証に失敗した場合は、通常のユーザー・パスワード認証になります。

-KNOWNHOSTS_FILE=<full path to the known hosts file on the local machine>

いいえ

ローカル・マシンのKnown_Hostsファイルのフル・パス。Known_Hostsファイルには、ユーザーが信頼しているリモート・マシンのホスト・キーがすべて格納されます。この引数が欠落している場合は、Known_Hostsファイルとして<user home dir>/.ssh/Known_hostsファイル(存在する場合)が使用されます。

-COMPRESSION=<yes|no>

いいえ

データ圧縮を使用する場合はYesに設定します。デフォルトはNoです。

-STRICT_HOSTKEY_CHECKING=<YES|NO>

いいえ

この引数の値はYESまたはNOです。YES値が渡されると、厳密なホストキー・チェックが実行され、リモートSSHホスト・キーが–KNOWNHOSTS_FILEパラメータで指定された既知のホストに存在しない場合は、認証に失敗します。デフォルト値はYESです。

-PROXY_HOST

いいえ

接続に使用されるプロキシ・サーバーのホスト名。

-PROXY_PORT

いいえ

プロキシ・サーバーのポート番号。

-PROXY_TYPE

いいえ

接続するプロキシ・サーバーのタイプ。可能な値はHTTPまたはSOCKS5のみです。

-TIMEOUT=<timeout value>

いいえ

ソケット接続がタイムアウトするまでの秒数。

例

SSHサーバー・マシン上のリモート・ディレクトリ/test_copy555をローカル・ディレクトリC:\temp\test_copyに再帰的にコピーします。

OdiSftpGet -HOST=machine.oracle.com -USER=test_ftp -PASSWORD=<password> -LOCAL_DIR=C:\temp\test_copy -REMOTE_DIR=/test_copy555

SSHサーバー・マシン上のリモート・ディレクトリ/にあるSales*.txtパターンと一致するすべてのファイルをローカル・ディレクトリC:\temp\にコピーします。

OdiSftpGet -HOST=machine.oracle.com -USER=test_ftp -PASSWORD=<password> -LOCAL_DIR=C:\temp -REMOTE_FILE=Sales*.txt -REMOTE_DIR=/

SSHサーバー・マシン上のリモート・ディレクトリ/にあるSales1.txtファイルをローカル・ディレクトリC:\temp\にSample1.txtファイルとしてコピーします。

OdiSftpGet -HOST=machine.oracle.com -USER=test_ftp -PASSWORD=<password> -REMOTE_DIR=/ -LOCAL_FILE=Sales1.txt -LOCAL_DIR=C:\temp -LOCAL_FILE=Sample1.txt

SSHサーバー・マシン上のリモート・ディレクトリ/にあるSales1.txtファイルをローカル・ディレクトリC:\temp\にSample1.txtファイルとしてコピーします。アイデンティティ・ファイルのパスおよび既知のホスト・ファイルのパスを指定して、公開鍵認証を実施します。

OdiSftpGet -HOST=machine.oracle.com -USER=test_ftp -PASSWORD=<password> -REMOTE_DIR=/ -REMOTE_FILE=Sales1.txt -LOCAL_DIR=C:\temp -LOCAL_FILE=Sample1.txt -IDENTITY_FILE=C:\Documents and Settings\username\.ssh\id_dsa -KNOWNHOSTS_FILE= C:\Documents and Settings\username\.ssh\Known_Hosts

SSHサーバー・マシン上のリモート・ディレクトリ/にあるSales1.txtファイルをローカル・ディレクトリC:\temp\にSample1.txtファイルとしてコピーします。アイデンティティ・ファイルのパスを指定して、公開鍵認証を実施します。STRICT_HOSTKEY_CHECKINGパラメータにNOの値を渡すことで、すべてのホストを信頼します。

OdiSftpGet -HOST=dev3 -USER=test_ftp -PASSWORD=<password> -REMOTE_DIR=/ -REMOTE_FILE=Sales1.txt -LOCAL_DIR=C:\temp -LOCAL_FILE=Sample1.txt -IDENTITY_FILE=C:\Documents and Settings\username\.ssh\id_dsa -STRICT_HOSTKEY_CHECKING=NO

A.5.44 OdiSftpPut

このコマンドを使用して、SFTPサブシステムが有効なSSHサーバーにファイルをアップロードします。

使用方法

OdiSftpPut -HOST=<ftp server host name> -USER=<ftp user> [-PASSWORD=<ftp user password>] -LOCAL_DIR=<local dir> [-LOCAL_FILE=<file name under the LOCAL_DIR>] -REMOTE_DIR=<remote dir on ftp host> [-REMOTE_FILE=<file name under the REMOTE_DIR>] [-PASSIVE_MODE=<yes | no>][-TIMEOUT=<time in seconds>] [-IDENTITY_FILE=<full path to the private key file of the user>] [-KNOWNHOSTS_FILE=<full path to known hosts file>][COMPRESSION=<yes|no>][-STRICT_HOSTKEY_CHECKING=<YES | NO>][-PROXY_HOST=<proxy server host name>][-PROXY_PORT=<proxy server port>][-PROXY_TYPE=<HTTP | SOCKS5>]

パラメータ

パラメータ

必須

説明

-HOST=<host name of the SSH server>

はい

SSHサーバーのホスト名。

コロン(:)を前に付けることにより、ポート番号をホスト名に追加できます。例: machine.oracle.com:25

ポートが指定されていない場合、デフォルトでポート22が使用されます。

-USER=<host name of the SSH user>

はい

SSHサーバーのユーザー。

-PASSWORD=<password of the SSH user>

いいえ

SSHユーザーのパスワードまたはパスワードで保護されたアイデンティティ・ファイルのパスフレーズ。–IDENTITY_FILE引数が指定されている場合、この値はパスワードで保護された秘密鍵ファイルのパスフレーズとして使用されます。公開鍵認証に失敗した場合は、通常のユーザー・パスワード認証になります。

-REMOTE_DIR=<dir on remote SSH

はい

リモートFTPホスト上のディレクトリ・パス。

-REMOTE_FILE=<file name under -REMOTE DIR>

いいえ

-REMOTE_DIR引数で指定されたディレクトリのファイル名。この引数が欠落している場合は、-LOCAL_FILEファイル名を使用してファイルがコピーされます。-LOCAL_FILE引数も欠落している場合は、-LOCAL_DIRが-REMOTE_DIRに再帰的にコピーされます。

-LOCAL_DIR=<local dir path>

はい

ローカル・マシン上のディレクトリ・パス。

-LOCAL_FILE=<local file>

いいえ

-LOCAL_DIR引数で指定されたディレクトリのファイル名。この引数が欠落している場合は、-LOCAL_DIRにあるすべてのファイルおよびディレクトリが、-REMOTE_DIRに再帰的にコピーされます。

コピーするファイルをフィルタ処理するには、「*」を使用して汎用文字を指定します。

例:

- *.log (log拡張子のファイルすべて)

- arch_*.lst (arch_で開始するlst拡張子のファイルすべて)

-IDENTITY_FILE=<full path to the private key file of the user>

いいえ

ローカル・ユーザーの秘密鍵ファイル。この引数を指定すると、公開鍵認証が実施されます。–PASSWORD引数は、パスワードで保護された秘密鍵ファイルのパスワードとして使用されます。公開鍵認証に失敗した場合は、通常のユーザー・パスワード認証になります。

-KNOWNHOSTS_FILE=<full path to the known hosts file on the local machine>

いいえ

ローカル・マシンのKnown_Hostsファイルのフル・パス。Known_Hostsファイルには、ユーザーが信頼しているリモート・マシンのホスト・キーがすべて格納されます。この引数が欠落している場合は、Known_Hostsファイルとして<user home dir>/.ssh/Known_hostsファイル(存在する場合)が使用されます。

-COMPRESSION=<yes|no>

いいえ

データ圧縮を使用する場合はYesに設定します。デフォルトはNoです。

-STRICT_HOSTKEY_CHECKING=<YES|NO>

いいえ

この引数の値はYESまたはNOです。YES値が渡されると、厳密なホストキー・チェックが実行され、リモートSSHホスト・キーが–KNOWNHOSTS_FILEパラメータで指定された既知のホストに存在しない場合は、認証に失敗します。デフォルト値はYESです。

-PROXY_HOST

いいえ

接続に使用されるプロキシ・サーバーのホスト名。

-PROXY_PORT

いいえ

プロキシ・サーバーのポート番号。

-PROXY_TYPE

いいえ

接続するプロキシ・サーバーのタイプ。可能な値はHTTPまたはSOCKS5のみです。

-TIMEOUT=<timeout value>

いいえ

ソケット接続がタイムアウトするまでの秒数。

例

ローカル・ディレクトリC:\temp\test_copyをFTPサーバー・マシン上のリモート・ディレクトリ/test_copy555に再帰的にコピーします。

OdiSftpPut -HOST=machine.oracle.com -USER=test_ftp -PASSWORD=<password> -LOCAL_DIR=C:\temp\test_copy -REMOTE_DIR=/test_copy555

ローカル・ディレクトリC:\temp\にあるSales*.txtパターンと一致するすべてのファイルをFTPサーバー・マシン上のリモート・ディレクトリ/にコピーします。

OdiSftpPut -HOST=machine.oracle.com -USER=test_ftp -PASSWORD=<password> -LOCAL_DIR=C:\temp -LOCAL_FILE=Sales*.txt -REMOTE_DIR=/

ローカル・ディレクトリC:\temp\にあるSales1.txtファイルをFTPサーバー・マシン上のリモート・ディレクトリ/にSample1.txtファイルとしてコピーします。

OdiSftpPut -HOST=machine.oracle.com -USER=test_ftp -PASSWORD=<password> -LOCAL_DIR=C:\temp -LOCAL_FILE=Sales1.txt -REMOTE_DIR=/Sample1.txt

ローカル・ディレクトリC:\temp\にあるSales1.txtファイルをFTPサーバー・マシン上のリモート・ディレクトリ/にSample1.txtファイルとしてコピーします。アイデンティティ・ファイルのパスおよび既知のホスト・ファイルのパスを指定して、公開鍵認証を実施します。

OdiSftpPut -HOST=machine.oracle.com -USER=test_ftp -PASSWORD=<password> -LOCAL_DIR=C:\temp -LOCAL_FILE=Sales1.txt -REMOTE_DIR=/Sample1.txt -IDENTITY_FILE=C:\Documents and Settings\username\.ssh\id_dsa -KNOWNHOSTS_FILE= C:\Documents and Settings\username\.ssh\Known_Hosts

ローカル・ディレクトリC:\temp\にあるSales1.txtファイルを、FTPサーバー・マシン上のリモート・ディレクトリ/にSample1.txtファイルとしてコピーします。アイデンティティ・ファイルのパスを指定して、公開鍵認証を実施します。STRICT_HOSTKEY_CHECKINGパラメータにNOの値を渡すことで、すべてのホストを信頼します。

OdiSftpPut -HOST=machine.oracle.com -USER=test_ftp -PASSWORD=<password> -LOCAL_DIR=C:\temp -LOCAL_FILE=Sales1.txt -REMOTE_DIR=/Sample1.txt -IDENTITY_FILE=C:\Documents and Settings\username\.ssh\id_dsa -STRICT_HOSTKEY_CHECKING=NO

A.5.45 OdiSleep

このコマンドを使用して、<delay>ミリ秒間待機します。

使用方法

OdiSleep -DELAY=<delay>

パラメータ

パラメータ

必須

説明

-DELAY=<delay>

はい

待機するミリ秒数。

例

OdiSleep -DELAY=5000

A.5.46 OdiSqlUnload

このコマンドを使用して、SQL問合せの結果をファイルに書き込みます。

このコマンドは、接続パラメータが<driver>、<url>、<user>および<encoded_pass>によって指定されたデータ・サーバーに対してSQL問合せ<sql_query>を実行します。その結果セットは<file_name>に書き込まれます。

使用方法

OdiSqlUnload -FILE=<file_name> -DRIVER=<driver> -URL=<url> -USER=<user>
-PASS=<password> [-FILE_FORMAT=<file_format>] [-FIELD_SEP=<field_sep> |
-XFIELD_SEP=<field_sep>] [-ROW_SEP=<row_sep> | -XROW_SEP=<row_sep>]
[-DATE_FORMAT=<date_format>][-CHARSET_ENCODING=<encoding>]
[-XML_CHARSET_ENCODING=<encoding>][-FETCH_SIZE=<array_fetch_size>]
( CR/LF <sql_query> | -QUERY=<sql_query> | -QUERY_FILE=<sql_query_file> )

パラメータ

パラメータ

必須

説明

-FILE=<file_name>

はい

実行エージェントに対して相対的な出力ファイルへのフル・パス

-DRIVER=<driver>

はい

データ・サーバーへの接続に使用するJDBCドライバの名前。

-URL=<url>

はい

データ・サーバーへのJDBC URL。

-USER=<user>

はい

SQL問合せの実行に使用されるデータ・サーバー上のユーザーのログイン。

-PASS=<password>

はい

データ・サーバーにログインするための暗号化されたパスワード。このパスワードは、システム・コマンドencode <clear_text_password>を使用して暗号化できます。

エージェント(.batまたは.sh)は、Oracle Data Integratorインスール・ディレクトリの/binサブディレクトリにあります。

-FILE_FORMAT=<file_format>

いいえ

次の3種類のいずれかのファイル形式を指定します。

- fixed: 固定サイズ記録

- variable: 可変サイズ記録

- xml: XMLファイル

<file_format>の指定を省略すると、形式はvariable.にデフォルト設定されます。

<file_format>がxmlの場合は、次の構造のXMLノードが生成されます。

<TABLE>

<ROW>

<column_name>![CDATA[VALUE]]</column_name>

<column_name>![CDATA[VALUE]]</column_name>

...

</ROW>

....

</TABLE>

-FIELD_SEP=<field_sep>

いいえ

FILE_FORMAT=variableの場合のASCII形式のフィールド・セパレータ文字。デフォルトの<field_sep>はタブ文字です。

-XFIELD_SEP=<field_sep>

いいえ

FILE_FORMAT=variableの場合の16進形式のフィールド・セパレータ文字。デフォルトの<field_sep>はタブ文字です。

-ROW_SEP=<row_sep>

いいえ

ASCII形式のレコード・セパレータ文字。デフォルトの<row_sep>はWindowsの改行です。たとえば、次の値を使用できます。

- Unix: -ROW_SEP=\n

- Windows: -ROW_SEP=\r\n

-XROW_SEP=<row_sep>

いいえ

16進形式のレコード・セパレータ文字。例: 0A。

-DATE_FORMAT=<date_format>

いいえ

日付データ型に使用する出力書式。この日付書式はJavaの日時書式パターンを使用して指定されます。これらのパターンのリストは、http://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.htmlを参照してください。

-CHARSET_ENCODING=<encoding>

いいえ

ターゲット・ファイルのエンコーディング。デフォルト値はISO-8859-1です。サポートされているエンコーディングの完全なリストは、次のURLで確認できます。

http://java.sun.com/j2se/1.4.2/docs/guide/intl/encoding.doc.html

-XML_CHARSET_ENCODING=<encoding>

いいえ

XMLファイル内に<?xml version="1.0" encoding="ISO-8859-1"?>のタグで指定されるエンコーディング。デフォルト値はISO-8859-1です。サポートされているエンコーディングのリストは、次のURLで確認できます。

http://java.sun.com/j2se/1.4.2/docs/guide/intl/encoding.doc.html

-FETCH_SIZE=<array_fetch_size>

いいえ

データ・サーバーとの通信ごとに、Data Integratorによってリクエストされる(レコードの読取り)行数。

-CR/LF=<sql_query> | -QUERY=<sql_query> | -QUERY_FILE=<sql_query_file>

はい

データ・サーバーに対して実行するSQL問合せ。問合せは、有効なレコードセットを戻すSELECT文またはストアド・プロシージャへのコールである必要があります。この問合せは、OdiSqlUnloadコマンドの次の行(改行のCR/LFが問合せの始まりを示す)に入力できます。-QUERYパラメータを使用して問合せを提供することも、-QUERY_FILEパラメータで指定されたファイルに問合せを格納することもできます。このコマンドをOSのコマンドラインからコールする場合は、-QUERYまたは-QUERY_FILEパラメータを使用する必要があります。

REQUESTおよびREQUEST_FILEを使用する古い構文も有効ですが、非推奨です。

例

次のコマンドは、Customers表での問合せの結果が格納されているカンマ区切りのC:\temp\clients.csvファイルを生成します。

OdiSqlUnload -FILE=C:\temp\clients.csv -DRIVER=sun.jdbc.odbc.JdbcOdbcDriver
-URL=jdbc:odbc:NORTHWIND_ODBC -USER=sa
-PASS=NFNEKKNGGJHAHBHDHEHJDBGBGFDGGH -FIELD_SEP=;
"-DATE_FORMAT=dd/MM/yyyy hh:mm:ss"

select cust_id, cust_name, cust_creation_date from Northwind.dbo.Customers

A.5.47 OdiStartLoadPlan

このコマンドを使用して、ロード計画を開始します。

使用方法

OdiStartLoadPlan -LOAD_PLAN_NAME=<load_plan_name> [-LOG_LEVEL=<log_level>] [-CONTEXT=<context_code>]
[-AGENT_URL=<agent_url>] [-AGENT_CODE=<logical_agent_code>]
[-ODI_USER=<ODI User>] [-ODI_PASS=<ODI Password>] [-KEYWORDS=<Keywords>]
[-<PROJECT_CODE>.<VARIABLE>=<var_value> ...]

パラメータ

パラメータ

必須

説明

-LOAD_PLAN_NAME=<load_plan_name>

はい

開始するロード計画の名前。

-LOG_LEVEL=<log_level>

いいえ

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

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

[-CONTEXT=<context_code>]

はい

実行コンテキストのコード。このパラメータを省略すると、コール元セッションの実行コンテキストで、ロード計画が開始されます(ある場合)。

[-AGENT_URL=<agent_url>]

いいえ

ロード計画を開始するリモート・エージェントのURL。

[-AGENT_CODE=<logical_agent_code>]

いいえ

このロード計画の開始を担当する論理エージェントのコード。このパラメータと-AGENT_URLを省略すると、現在のエージェントがこのロード計画を開始します。エージェントURLが指定されている場合、無視されます。

[-ODI_USER=<ODI user>]

いいえ

ロード計画の開始に使用するOracle Data Integratorユーザー。このユーザーの権限が使用されます。このパラメータを省略すると、ロード計画は、親セッションを起動したユーザーの権限を使用して開始されます。

[-ODI_PASS=<ODI Password>]

いいえ

Oracle Data Integratorユーザーのパスワード。このパスワードはエンコードされている必要があります。-ODI_USERを指定した場合、このパラメータは必須です。

-KEYWORDS=<keywords>

いいえ

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

-<VARIABLE>=<value>

いいえ

値がロード計画の実行に対するデフォルトとして設定されているプロジェクト変数またはグローバル変数のリスト。プロジェクト変数は<project_code>.<variable_name>、グローバル変数はGLOBAL.<variable_name>で指定します。このリストは、-<variable>=<value>という形式です。

例

同じエージェントのグローバル・コンテキストでロード計画LOAD_DWHを開始します:

OdiStartLoadPlan -LOAD_PLAN_NAME=LOAD_DWH -CONTEXT=GLOBAL

A.5.48 OdiStartScen

このコマンドを使用して、シナリオを開始します。

オプションのAGENT_CODEパラメータは、このシナリオを現在のエージェント以外の別のエージェントに適用する場合に使用します。

SYNC_MODEパラメータを使用すると、同期モードまたは非同期モードでシナリオを開始できます。

注意:

開始するシナリオは、コマンドが起動されるリポジトリに存在している必要があります。シナリオを本番に移行する場合は、このコマンドを使用して、コールされるシナリオをすべて取り込みます。ソリューションは、この目的でシナリオをグループ化するのに役立ちます。

使用方法

OdiStartScen -SCEN_NAME=<scenario> -SCEN_VERSION=<version>
[-CONTEXT=<context>] [-ODI_USER=<odi user> -ODI_PASS=<odi password>]
[-SESSION_NAME=<session_name>] [-LOG_LEVEL=<log_level>]
[-AGENT_CODE=<logical_agent_name>] [-SYNC_MODE=<1|2>]
[-KEYWORDS=<keywords>] [-<VARIABLE>=<value>]*

パラメータ

パラメータ

必須

説明

-SCEN_NAME=<scenario>

はい

開始するシナリオの名前。

-SCEN_VERSION=<version>

はい

開始するシナリオのバージョン。-1のバージョンを指定すると、最新バージョンのシナリオが実行されます。

-CONTEXT=<context>

いいえ

実行コンテキストのコード。このパラメータを省略すると、コール元セッションの実行コンテキストで、シナリオが実行されます。

-ODI_USER=<odi user>

いいえ

シナリオの実行に使用するOracle Data Integratorユーザー。このユーザーの権限が使用されます。このパラメータを省略すると、シナリオは、親セッションを起動したユーザーの権限を使用して実行されます。

-ODI_PASS=<odi password>

いいえ

Oracle Data Integratorユーザーのパスワード。このパスワードはエンコードされている必要があります。ユーザーを指定した場合、このパラメータは必須です。

-SESSION_NAME=<session_name>

いいえ

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

-LOG_LEVEL=<log_level>

いいえ

実行ログに保持するトレース・レベル(0から5)。デフォルト値は5。

-AGENT_CODE=<logical_agent_name>

いいえ

このシナリオの実行を担当する論理エージェントの名前。このパラメータを省略すると、現在のエージェントがこのシナリオを実行します。

-SYNC_MODE=<1|2>

いいえ

シナリオの同期モード。

1 - 同期モード(デフォルト)。シナリオの実行が終了するまで、コール元セッションの実行は抑制されます。

2 - 非同期モード。コール元セッションの実行は、コールされたシナリオの復帰に関係なく続行します。

-KEYWORDS=<keywords>

いいえ

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

-<VARIABLE>=<value>

いいえ

シナリオの実行時に値が設定される変数のリスト。このリストは「PROJECT.VARIABLE=値」または「GLOBAL.VARIABLE=値」の形式で指定します。

例

本番コンテキストでシナリオLOAD_DWHのバージョン2を開始します(同期モード)。

OdiStartScen -SCEN_NAME=LOAD_DWH -SCEN_VERSION=2
-CONTEXT=CTX_PRODUCTION

エージェント「UNIX Agent」が現在のコンテキストでシナリオLOAD_DWHのバージョン2を非同期モードで開始します。その際は、START_DATE (ローカル)変数とCOMPANY_CODE (グローバル)変数の値を渡します。

OdiStartScen -SCEN_NAME=LOAD_DWH -SCEN_VERSION=2 -SYNC_MODE=2
"-AGENT_CODE=UNIX Agent" -MY_PROJECT.START_DATE=10-APR-2002
-GLOBAL.COMPANY_CODE=SP4356

A.5.49 OdiUnZip

このコマンドを使用して、アーカイブ・ファイルをディレクトリに解凍します。

使用方法

OdiUnZip -FILE=<file> -TODIR=<target_directory> [-OVERWRITE=<yes|no>]
[-ENCODING=<file_name_encoding>]

パラメータ

パラメータ

必須

説明

-FILE=<file>

はい

解凍するZIPファイルへのフル・パス。

-TODIR=<target_file>

はい

宛先ディレクトリまたはフォルダ。

-OVERWRITE=<yes|no>

いいえ

解凍先ディレクトリにファイルがすでに存在している場合に、上書きするかどうかを示します。デフォルトはNoです。

-ENCODING=<file_name_encoding>

いいえ

アーカイブ・ファイル内部でファイル名に使用される文字エンコーディング。可能な値のリストは、次を参照してください:

http://java.sun.com/j2se/1.4.2/docs/guide/intl/encoding.doc.html

デフォルトは、プラットフォームのデフォルトの文字エンコーディングです。

例

C:\archive\ディレクトリのarchive_001.zipファイルをC:\TEMPディレクトリに解凍します。

OdiUnZip "-FILE=C:\archive\archive_001.zip" -TODIR=C:\TEMP\

A.5.50 OdiUpdateAgentSchedule

このコマンドを使用して、エージェントがタスクのスケジュールを強制的に再計算するようにします。

使用方法

OdiUpdateAgentSchedule -AGENT_NAME=<physical_agent_name>

パラメータ

パラメータ

必須

説明

-AGENT_NAME=<physical_agent_name>

はい

更新する物理エージェントの名前。

例

この例では、agt_s1という名前の物理エージェントがスケジュールを更新します。

OdiUpdateAgentSchedule -AGENT_NAME=agt_s1

A.5.51 OdiWaitForChildSession

このコマンドを使用して、現在のセッションの(OdiStartScenツールを使用して開始された)子セッションが完了するまで待機します。

このコマンドは、<parent_sess_number>で指定したセッションから起動されたセッションの終了を<polling_interval>秒間隔でチェックします。これらのすべての子セッション(場合によっては名前やキーワードでフィルタ処理される)が終了すると(ステータスは完了、警告またはエラー)、このコマンドは終了します。

使用方法

OdiWaitForChildSession [-PARENT_SESS_NO=<parent_sess_number>]
[-POLL_INT=<polling_interval>]
[-SESSION_NAME_FILTER=<session_name_filter>]
[-SESSION_KEYWORDS=<session_keywords>]
[-MAX_CHILD_ERROR=ALL|<error_number>]

パラメータ

パラメータ

必須

説明

-PARENT_SESS_NO=<parent_sess_number>

いいえ

親セッションのID。このパラメータの指定を省略すると、現在のセッションIDが使用されます。

-POLL_INT=<polling_interval>

いいえ

一連の子セッションの各終了テストの間隔(秒単位)。デフォルトは1です。

-SESSION_NAME_FILTER=<session_name_filter>

いいえ

名前がこのフィルタと一致する子セッションのみがテストされます。このフィルタには、SQL LIKE形式のパターンを使用できます。

-SESSION_KEYWORDS=<session_keywords>

いいえ

このカンマ区切りリストのすべてのキーワードと一致する子セッションのみがテストされます。リストの各要素には、SQL LIKE形式のパターンを使用できます。

-MAX_CHILD_ERROR= ALL | <error_number>

いいえ

このパラメータを使用すると、特定の数の子セッションがエラーで終了した場合に、OdiWaitForChildSessionを終了できます。

- ALL: すべての子セッションがエラーで終了した場合にエラーになります。

- <error_number>: <error_number>件以上の子セッションがエラーで終了した場合にエラーになります。

このパラメータがゼロ、負数または未指定の場合、OdiWaitForChildSessionは、障害が発生した子セッションの数に関係なく、エラー・ステータスで終了することはありません。

例

5秒のポーリング間隔で、現在のセッションの子セッションの中で、名前が「LOADxxx」に類似し、「MANDATORY」と「CRITICAL」のキーワードがある子セッションすべての終了を待機します。

OdiWaitForChildSession -PARENT_SESS_NO=<%=odiRef.getSession("SESS_NO")%>
-POLL_INT=5 -SESSION_NAME_FILTER=LOAD%
-SESSION_KEYWORDS=MANDATORY,CRITICAL

A.5.52 OdiWaitForData

このコマンドを使用して、表または一連の表について特定の数の行を待機します。このコマンドは、データが格納されている特定の数のオブジェクト(ビューなど)にも適用できます。

OdiWaitForDataコマンドは、表または一連の表に特定の数のレコードが移入されているかどうかをテストします。このテストは、いずれかの表で目的の数の行(-UNIT_ROWCOUNT)が検出されるか、すべての表を対象として累積で目的の数の行(-GLOBAL_ROWCOUNT)が検出されるか、またはタイムアウト(-TIMEOUT)に到達するかの、いずれかの条件が満たされるまで一定の間隔で(-POLLINT)繰り返されます。

検出された一連の行には、フィルタを適用できます。フィルタは、明示的なSQL where句(-SQLFILTER)、またはフィールド値と演算句を決定する-RESUME_KEY_xxxパラメータ(あるいはその両方)で指定されます。この2つの方法は累積(AND)されます。

行数は、絶対条件(表内の合計行数に対する)または差分条件(格納された参照値と現在の行数値の差異)のいずれかで判断できます。

複数の表を扱う場合は、次のようになります。

- -SQLFILTERパラメータと-RESUME_KEY_xxxパラメータは、関係するすべての表に適用されます。

- -UNIT_ROWCOUNTパラメータは、特定の表の個々について想定される行数を判断します。-GLOBAL_ROWCOUNTパラメータは、一連の表全体で累積された行数の合計を判断します。関係している表が1つのみの場合、-UNIT_ROWCOUNTパラメータと-GLOBAL_ROWCOUNTパラメータは同等です。

使用方法

OdiWaitForData -LSCHEMA=<logical_schema> -TABLE_NAME=<table_name>
[-OBJECT_TYPE=<list of object types>] [-CONTEXT=<context>]
[-RESUME_KEY_VARIABLE=<resumeKeyVariable>
-RESUME_KEY_COL=<resumeKeyCol>
[-RESUME_KEY_OPERATOR=<resumeKeyOperator>]|-SQLFILTER=<SQLFilter>]
[-TIMEOUT=<timeout>] [-POLLINT=<pollInt>]
[-GLOBAL_ROWCOUNT=<globalRowCount>]
[-UNIT_ROWCOUNT=<unitRowCount>] [-TIMEOUT_WITH_ROWS_OK=<yes|no>]
[-INCREMENT_DETECTION=<no|yes> [-INCREMENT_MODE=<M|P|I>]
[-INCREMENT_SEQUENCE_NAME=<incrementSequenceName>]]

パラメータ

パラメータ

必須

説明

-LSCHEMA=<logical_schema>

はい

表が格納されている論理スキーマ。

-TABLE_NAME=<table_name>

はい

チェックする表の名前、マスクまたは表名のリスト。このパラメータでは3つの書式を使用できます。

- 表名。

- 表名マスク: このマスクはポーリングする表を選択します。マスクはSQL LIKE構文を使用して指定されます。%記号は不特定数の文字、_記号は単一文字のワイルドカードです。

- 表名リスト。カンマ区切りの表名のリストです。上で定義したマスクを使用できます。

-OBJECT_TYPE=<list of object types>

いいえ

チェックするオブジェクトのタイプ。デフォルトでは、表のみがチェックされます。他のオブジェクトをチェック対象とするには、オブジェクト・タイプのカンマ区切りリストを指定します。次のオブジェクト・タイプがサポートされています。

- T: 表

- V: ビュー

-CONTEXT=<context>

いいえ

論理スキーマを解決するコンテキスト。コンテキストの指定を省略すると、実行コンテキストが使用されます。

-SQLFILTER=<SQLFilter>

いいえ

表に適用する明示的なSQLフィルタ。この文は、チェックされた表を格納しているテクノロジで有効な文である必要があります。

この文にはWHEREキーワードを使用できません。

-RESUME_KEY_VARIABLE=<resumeKeyVariable>

-RESUME_KEY_COL=<resumeKeyCol>

[-RESUME_KEY_OPERATOR=<resumeKeyOperator>]

いいえ

RESUME_KEY_xxxパラメータを使用すると、ポーリングした表で検出された一連の行をフィルタ処理できます。

- <key_column>: チェックした表の列名。

- <operator>: チェックした表を格納しているテクノロジで有効な比較演算子。このパラメータを省略すると、デフォルトで「>」の値が使用されます。

- <variable_name>: 事前に値が設定されている変数の名前。変数名の前には、「:」(連結)または「#」(代入)を接頭辞として付ける必要があります。変数の有効範囲は、Oracle Data Integrator構文で、グローバル変数の場合はGLOBAL.<variable name>、プロジェクト変数の場合は<project code>.<variable name>を明記してください。

-TIMEOUT=<timeout>

いいえ

データをポーリングする最大期間(ミリ秒単位)。この値がゼロの場合、タイムアウトは無限です。デフォルトは0です。

-POLLINT=<pollInt>

いいえ

データの各ポーリング間で待機する期間(ミリ秒単位)。デフォルト1000です。

-UNIT_ROWCOUNT=<unitRowCount>

いいえ

コマンドを終了するためにポーリング対象の表で必要とされる行数。デフォルトは1です。

-GLOBAL_ROWCOUNT=<globalRowCount>

いいえ

コマンドを終了するために一連の表全体で累積的に必要とされる合計行数。指定しないと、デフォルト値の 1 が使用されます。

-INCREMENT_DETECTION=<no|yes>

いいえ

コマンドで行数が考慮されるモードを、絶対条件(表内の合計行数に対する)または差分条件(格納された参照値と現在の行数値の差異)のいずれかで定義します。

- yesに設定すると、行カウントは差分モードで実行されます。表内の他の行数が、格納された参照値と比較されます。参照値はINCREMENT_MODEパラメータによって異なります。

- noに設定すると、カウントは、絶対行数モードで実行されます。

デフォルトはnoです。

-INCREMENT_MODE=<M|P|I>

いいえ

このパラメータは、連続するOdiWaitForDataコール間の参照値の永続性モードを指定します。

可能な値は次のとおりです。

- M: メモリー。参照値は非永続的です。OdiWaitForDataがコールされると、参照値は、ポーリングされる表の行数と等しい値になります。OdiWaitForDataが終了すると、値は消失します。このモードの後続のコールでは、新しい参照値が設定されます。

- P: 永続。参照値は永続的です。この参照値は、OdiWaitForDataの開始時に増分順序から読み取られ、OdiWaitForDataの終了時に増分順序に保存されます。増分順序が設定されていない場合(初回コール時)は、現在の表の行数が使用されます。

- I: 初期。参照値は初期化され、永続的です。この参照値は、OdiWaitForDataの開始時に、ポーリングされる表の行数と等しい値になります。OdiWaitForDataの終了時には、永続モード用として増分順序に保存されます。

デフォルトはMです。

マスクまたは表のリストがポーリングされた場合、永続または初期モードの使用はサポートされません。

-INCREMENT_SEQUENCE_NAME=<incrementSequenceName>

いいえ

このパラメータは、参照値の永続性のために使用する自動的に割り当てられた記憶領域の名前を指定します。この増分順序はリポジトリに格納されます。この名前の指定を省略すると、表の名前が使用されます。

この増分順序はOracle Data Integratorの順序ではありません。OdiWaitForDataへのコールの外部では順序として使用できません。

-TIMEOUT_WITH_ROWS_OK=<yes|no>

いいえ

このパラメータがYに設定されている場合に、少なくとも1行が検出され、必要な行数が挿入される前にタイムアウトが発生すると、リターン・コード0でAPIが終了します。それ以外の場合はエラーが発生します。デフォルトはYesです。

例

ORA_WAITFORDATAスキーマのDE1P1表に、フィルタと一致するレコードが200件格納されるまで待機します。

OdiWaitForData -LSCHEMA=ORA_WAITFORDATA -TABLE_NAME=DE1P1
-GLOBAL_ROWCOUNT=200 "-SQLFILTER=DATMAJ >
to_date('#MAX_DE1_DATMAJ_ORACLE_CHAR', 'DD/MM/YYYY HH24:MI:SS')"

SQLSRV_SALESのCITY_SRC表またはCITY_TRG表に新しいデータが表示されるまで最大4時間待機します。

OdiWaitForData LSCHEMA=SQLSRV_SALES TABLE_NAME=CITY%
-TIMEOUT=14400000 -INCREMENT_DETECTION=yes

A.5.53 OdiWaitForLogData

このコマンドを使用して、ジャーナル化された表またはそのリストで、変更が特定の件数に達するまで待機します。

OdiWaitForLogDataコマンドは、表または表のグループで行が変更されたかどうかを判断します。この変更は、Oracle Data Integratorのチェンジ・データ・キャプチャ(CDC)を簡易モード(-TABLE_NAMEパラメータを使用)または一貫性モード(-CDC_SET_NAMEパラメータを使用)で使用して検出されます。テストは、いずれかの表で目的の数(-UNIT_ROWCOUNT)の行変更が検出されるか、すべての表を対象として累積で目的の数(-GLOBAL_ROWCOUNT)の行変更が検出されるか、またはタイムアウト(-TIMEOUT)に到達するかの、いずれかの条件が満たされるまで、-POLLINTミリ秒間隔で繰り返されます。

注意:

このコマンドでは、ジャーナル化されたすべての操作(挿入、更新および削除)が考慮されます。

このコマンドは、簡易モードまたは一貫性モードでジャーナル化された表にのみ適しています。

使用方法

OdiWaitForLogData -LSCHEMA=<logical_schema>  -SUBSCRIBER_NAME=<subscriber_name>
(-TABLE_NAME=<table_name> | -CDC_SET_NAME=<cdcSetName>)
[-CONTEXT=<context>] [-TIMEOUT=<timeout>] [-POLLINT=<pollInt>]
[-GLOBAL_ROWCOUNT=<globalRowCount>]
[-UNIT_ROWCOUNT=<unitRowCount> [-OPTIMIZED_WAIT=<yes|no|AUTO>]
[-TIMEOUT_WITH_ROWS_OK=<yes|no>]

パラメータ

パラメータ

必須

説明

-CONTEXT=<context>

いいえ

論理スキーマを解決するコンテキスト(コンテキスト・コード)。コンテキストの指定を省略すると、実行コンテキストが使用されます。

-GLOBAL_ROWCOUNT=<globalRowCount>

いいえ

コマンドを終了するために、表またはCDCセットで必要とされる変更の合計数。デフォルトは1です。

-LSCHEMA=<logical_schema>

はい

ジャーナル化された表が格納されている論理スキーマ。

-OPTIMIZED_WAIT=<yes|no|AUTO>

いいえ

ジャーナルへのアクセスに使用する方法。

- yes: 最適化された方法。この方法は最近のバージョンのジャーナル化で機能します。非最適化モードよりも迅速に実行されます。

- no: 最適化されていない方法。ジャーナル化表に対してカウントが実行されます。パフォーマンスは低下しますが、旧バージョンのジャーナル化機能と互換性があります。

- AUTO: 複数の表がチェックされる場合は、最適化された方法が使用されます。それ以外の場合は、最適化されていない方法が使用されます。

デフォルトはAUTOです。

-POLLINT=<pollInt>

いいえ

各ポーリング間で待機する期間(ミリ秒単位)。デフォルト2000です。

-SUBSCRIBER_NAME=<subscriber_name>

はい

ジャーナル化情報の取得に使用するサブスクライバの名前。

-TABLE_NAME=<table_name>

はい

チェックするジャーナル化表の名前、マスクまたはリスト。このパラメータでは3つの書式を使用できます。

- 表名

- 表名マスク: このマスクはポーリングする表を選択します。マスクはSQL LIKE構文を使用して指定されます。%記号は不特定数の文字、_記号はワイルドカードとして動作します。

- 表名リスト: カンマ区切りの表名のリスト。上で定義したマスクは使用できません。

このオプションは簡易モードでジャーナル化されたモデルの表でのみ機能します。

このパラメータはCDC_SET_NAMEとは併用できません。CDC_SET_NAMEが設定されていない場合は必須です。

-CDC_SET_NAME=<cdcSetName>

はい

チェックするCDCセットの名前。このCDCセット名は完全修飾のモデル・コードで、通常はPHYSICAL_SCHEMA_NAME.MODEL_CODEです。

<%=odiRef.getObjectName("L", "model_code", "logical_schema", "D")%>のように、代入メソッドAPIコールを使用して、現在のコンテキストに取得できます。

このオプションは一貫性モードでジャーナル化されたモデルの表でのみ機能します。

このパラメータはTABLE_NAMEとは併用できません。TABLE_NAMEが設定されていない場合は必須です。

-TIMEOUT=<timeout>

いいえ

変更をポーリングする最大期間(ミリ秒単位)。この値がゼロの場合、タイムアウトは無限です。デフォルトは0です。

-TIMEOUT_WITH_ROWS_OK=<yes|no>

いいえ

このパラメータがyesに設定されている場合に、少なくとも1行が検出され、事前定義の行数がポーリングされる前にタイムアウトが発生すると、リターン・コード0でAPIが終了します。それ以外の場合はエラーが発生します。デフォルトはyesです。

-UNIT_ROWCOUNT=<unitRowCount>

いいえ

コマンドを終了するためにポーリングされる表のいずれかで必要とされる変更の数。デフォルトは1です。

-UNIT_ROWCOUNTと-CDC_SET_NAMEが同時に考慮されることはありません。

例

SALES_APPLICATIONスキーマのCUSTOMERS表で、SALES_SYNCサブスクライバについて記録されている行の変更が200になるまで待機します。

OdiWaitForLogData -LSCHEMA=SALES_APPLICATION
-TABLE_NAME=CUSTOMERS -GLOBAL_ROWCOUNT=200
-SUBSCRIBER_NAME=SALES_SYNC

A.5.54 OdiWaitForTable

このコマンドを使用して、表が作成されて事前定義の行数が移入されるまで待機します。

OdiWaitForTableコマンドは、指定の表が作成され、その表に特定の数のレコードが移入されたかどうかを定期的にテストします。このテストは、表が存在して目的の数の行(-GLOBAL_ROWCOUNT)が格納されるか、タイムアウト(-TIMEOUT)に到達するかの、いずれかの条件が満たされるまで-POLLINTミリ秒間隔で繰り返されます。

使用方法

OdiWaitForTable -CONTEXT=<context> -LSCHEMA=<logical_schema>
-TABLE_NAME=<table_name> [-TIMEOUT=<timeout>] [-POLLINT=<pollInt>]
[-GLOBAL_ROWCOUNT=<globalRowCount>]
[-TIMEOUT_WITH_ROWS_OK=<yes|no>]

パラメータ

パラメータ

必須

説明

-CONTEXT=<context>

いいえ

論理スキーマを解決するコンテキスト。コンテキストの指定を省略すると、実行コンテキストが使用されます。

-GLOBAL_ROWCOUNT=<globalRowCount>

いいえ

コマンドを終了するために表に必要とされる合計行数。デフォルトは1です。未指定の場合、表に新規行が挿入されたときにコマンドは終了します。

-LSCHEMA=<logical_schema>

はい

表を検索する論理スキーマ。

-POLLINT=<pollInt>

いいえ

各テスト間で待機する期間(ミリ秒単位)。デフォルト1000です。

-TABLE_NAME=<table_name>

はい

検索する表の名前。

-TIMEOUT=<timeout>

いいえ

表を検索する最大期間(ミリ秒単位)。この値がゼロの場合、タイムアウトは無限です。デフォルトは0です。

-TIMEOUT_WITH_ROWS_OK=<yes|no>

いいえ

このパラメータがyesに設定されている場合に、少なくとも1行が検出され、必要な行数が挿入される前にタイムアウトが発生すると、リターン・コード0でAPIが終了します。それ以外の場合はエラーが発生します。デフォルトはYesです。

例

ORA_WAITFORDATAスキーマのDE1P1表に、少なくとも1件のレコードが格納されるまで待機します。

OdiWaitForTable -LSCHEMA=ORA_WAITFORDATA -TABLE_NAME=DE1P1
-GLOBAL_ROWCOUNT=1

A.5.55 OdiXMLConcat

このコマンドを使用して、複数のXMLファイルから単一のファイルに要素を連結します。

このツールは、一連のソースXMLファイルから指定要素のインスタンスをすべて抽出し、単一のターゲットXMLファイルに連結します。このツールは、適格なXMLを解析して生成します。生成されたファイルに対するDTDの変更または生成は処理しません。既存のDTDへの参照は、HEADERパラメータで指定するか、-KEEP_XML_PROLOGUEを使用して元のファイルから保持できます。

注意:

このツールでは、XMLネームスペースはサポートされません。-ELEMENT_NAMEパラメータには、要素名のローカル部分を(ネームスペースも接頭辞値も付けずに)指定します。

使用方法

OdiXMLConcat -FILE=<file_filter> -TOFILE=<target_file> -XML_ELEMENT=<element_name> [-CHARSET_ENCODING=<encoding>] IF_FILE_EXISTS=<overwrite|skip|error>] [-KEEP_XML_PROLOGUE=<all|xml|doctype|none>] [-HEADER=<header>] [-FOOTER=<footer>]

パラメータ

パラメータ

必須

説明

-FILE=<file_filter>

はい

ソースXMLファイルのフィルタ。このフィルタでは、ファイルの標準的なワイルドカード(?、*)を使用します。ファイル名とディレクトリ名の両方を指定します。ソース・ファイルは同じフォルダまたは異なるフォルダから取得できます。

次に、有効なファイル・フィルタを示します。

- /tmp/files_*/customer.xml

- /tmp/files_*/*.*

- /tmp/files_??/customer.xml

- /tmp/files/customer_*.xml

- /tmp/files/customer_??.xml

-TOFILE=<target_file>

はい

要素の連結先ターゲット・ファイル。

-XML_ELEMENT=<element_name>

はい

ソース・ファイルから内容および子要素とともに抽出するXML要素(囲んでいる<>文字、接頭辞およびネームスペース情報を除く)のローカル名。

この要素の検出は再帰的ではありません。<element_name>の指定のインスタンスに<element_name>の別のインスタンスが含まれている場合は、上位レベルの要素のみが考慮され、子要素は最上位要素の内容の単なる一部として抽出されます。

-CHARSET_ENCODING=<encoding>

いいえ

ターゲット・ファイルのエンコーディング。デフォルト値はISO-8859-1です。サポートされているエンコーディングの完全なリストは、http://java.sun.com/j2se/1.4.2/docs/guide/intl/encoding.doc.htmlのURLで確認できます。

-IF_FILE_EXISTS=<overwrite|skip|error>

いいえ

ターゲット・ファイルが存在する場合の動作を定義します。

- overwrite: ターゲット・ファイルが存在する場合は上書きします。

- skip: このファイルには何もしません。

- error: エラーになります。

-KEEP_XML_PROLOGUE=<all|xml|doctype|none>

いいえ

ソース・ファイルのXMLプロローグをターゲット・ファイルにコピーします。このパラメータの値に従って、XMLプロローグの次の部分が保持されます。

- all: すべてのプロローグ(XMLおよびドキュメント・タイプ宣言)をコピーします。

- xml: XML宣言<?xml...?>のみをコピーし、ドキュメント・タイプ宣言はコピーしません。

- doctype: ドキュメント・タイプ宣言のみをコピーし、XML宣言はコピーしません。

- none: ソース・ファイルからプロローグをコピーしません。

注意: すべてまたは一部のプロローグを保持しない場合は、HEADERパラメータで指定する必要があります。

-HEADER=<header>

いいえ

各ターゲット・ファイルのプロローグ(ある場合)の後に追加する文字列。このパラメータを使用すると、カスタマイズしたXMLプロローグまたはルート要素を作成できます。

-FOOTER=<footer>

いいえ

各ターゲット・ファイルの終わりに追加する文字列。このパラメータを使用すると、ヘッダーに追加されたルート要素を閉じることができます。

例

次の例では、ord_iサブフォルダにあるord1.xml、ord2.xmlなどのファイルのIDOC要素の内容をMDSLS.TXT.XMLというファイルに連結します。その際、ターゲット・ファイルには<WMMBID02>というルート要素も追加されます。

OdiXMLConcat "-FILE=./ord_i/ord*.xml" "-TOFILE=./MDSLS.TXT.XML" -XML_ELEMENT=IDOC "-CHARSET_ENCODING=UTF-8" -IF_FILE_EXISTS=overwrite -KEEP_XML_PROLOGUE=xml "-HEADER=<WMMBID02>" "-FOOTER=</WMMBID02>"

OdiXMLConcat "-FILE=./o?d_*/ord*.xml" "-TOFILE=./MDSLS.TXT.XML" -XML_ELEMENT=IDOC "-CHARSET_ENCODING=UTF-8" -IF_FILE_EXISTS=overwrite -KEEP_XML_PROLOGUE=none "-HEADER=<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<WMMBID02>" "-FOOTER=</WMMBID02>"

次の例では、ord_iサブフォルダにあるord1.xml、ord2.xmlなどのファイルのEDI要素をMDSLS2.XMLというファイルに連結します。このファイルには、すべての<EDI>要素の上にEDI_BATCHという新しいルート要素が追加されます。

OdiXMLConcat "-FILE=./o?d_?/ord*.xml" "-TOFILE=./MDSLS2.XML" -XML_ELEMENT=EDI "-CHARSET_ENCODING=UTF-8" -IF_FILE_EXISTS=overwrite -KEEP_XML_PROLOGUE=xml "-HEADER= <EDI_BATCH>" "-FOOTER=</EDI_BATCH>"

A.5.56 OdiXMLSplit

このコマンドを使用して、単一のXMLファイルを複数のファイルに分割します。

このツールは、単一のソースXMLファイルに保存されている指定要素のインスタンスをすべて抽出し、複数のターゲットXMLファイルに分割します。このツールは、適格なXMLを解析して生成します。生成されたファイルに対するDTDの変更または生成は処理しません。既存のDTDへの参照は、HEADERパラメータで指定するか、-KEEP_XML_PROLOGUEを使用して元のファイルから保持できます。

注意:

このツールでは、XMLネームスペースはサポートされません。-ELEMENT_NAMEパラメータには、要素名のローカル部分を(ネームスペースも接頭辞値も付けずに)指定します。

使用方法

OdiXMLSplit -FILE=<file> -TOFILE=<file_pattern> -XML_ELEMENT=<element_name> [-CHARSET_ENCODING=<encoding>] [-IF_FILE_EXISTS=<overwrite|skip|error>] [-KEEP_XML_PROLOGUE=<all|xml|doctype|none>] [-HEADER=<header>] [-FOOTER=<footer>]

パラメータ

パラメータ

必須

説明

-FILE=<file>

はい

分割するソースXMLファイル。

-TOFILE=<file_pattern>

はい

ターゲット・ファイルのファイル・パターン。各ファイルは、生成される番号順序または分割の実行に使用されるXML要素の属性値を表すマスクを含んだパターンに従って命名されます。

- 順序番号マスク: *(スター)値を使用してファイル番号値の場所を示します。たとえば、<file_ pattern>がarget_*.xmlの場合、作成されるファイルはtarget_1.xml、target_2.xmlなどの名前になります。

- 属性値マスク: 角カッコの間に、ファイル名を作成するために挿入する<element_name>の属性の名前を指定します。たとえば、Customer_[CUSTID].xmlでは、分割に使用される要素の属性CUSTIDの値に応じてcustomer_041.xml、customer_123.xmlなどの名前のファイルが作成されます。値がいくつかの連続する要素にわたって繰り返される場合は、ターゲット・ファイルがOVERWRITEパラメータの値に従って上書きされる可能性があります。

パターンを使用して、単一のディレクトに異なるファイルを作成することも、異なるディレクトリに各ファイルを作成することもできます。次に、有効なパターンを示します。

- /tmp/files_*/customer.xml

- /tmp/files_[CUSTID]/customer.xml

- /tmp/files/customer_*.xml

- /tmp/files/customer_[CUSTID].xml

-XML_ELEMENT=<element_name>

はい

ソース・ファイルから内容および子要素とともに抽出するXML要素(囲んでいる<>文字、接頭辞およびネームスペース情報を除く)のローカル名。

この要素の検出は再帰的ではありません。<element_name>の指定のインスタンスに<element_name>の別のインスタンスが含まれている場合は、上位レベルの要素のみが考慮され、子要素は最上位要素の内容の単なる一部として抽出されます。

-CHARSET_ENCODING=<encoding>

いいえ

ターゲット・ファイルのエンコーディング。デフォルト値はISO-8859-1です。サポートされているエンコーディングの完全なリストは、http://java.sun.com/j2se/1.4.2/docs/guide/intl/encoding.doc.htmlのURLで確認できます。

-IF_FILE_EXISTS=<overwrite|skip|error>

いいえ

ターゲット・ファイルが存在する場合の動作を定義します。

- overwrite: ターゲット・ファイルが存在する場合は上書きします。

- skip: このファイルには何もしません。

- error: エラーになります。

-KEEP_XML_PROLOGUE=<all|xml|doctype|none>

いいえ

ソース・ファイルのXMLプロローグをターゲット・ファイルにコピーします。このパラメータの値に従って、XMLプロローグの次の部分が保持されます。

- all: すべてのプロローグ(XMLおよびドキュメント・タイプ宣言)をコピーします。

- xml: XML宣言<?xml...?>のみをコピーし、ドキュメント・タイプ宣言はコピーしません。

- doctype: ドキュメント・タイプ宣言のみをコピーし、XML宣言はコピーしません。

- none: ソース・ファイルからプロローグをコピーしません。

注意: すべてまたは一部のプロローグを保持しない場合は、HEADERパラメータで指定する必要があります。

-HEADER=<header>

いいえ

各ターゲット・ファイルのプロローグ(ある場合)の後に追加する文字列。このパラメータを使用すると、カスタマイズしたXMLプロローグまたはルート要素を作成できます。

-FOOTER=<footer>

いいえ

各ターゲット・ファイルの終わりに追加する文字列。このパラメータを使用すると、ヘッダーに追加されたルート要素を閉じることができます。

例

次の例では、MDSLS.TXT.XMLというファイルを複数のファイルに分割します。ord1.xml、ord2.xmlなどのファイルが作成され、ソース・ファイルに保存されているIDOC要素の各インスタンスが格納されます。

OdiXMLSplit "-FILE=./MDSLS.TXT.XML" "-TOFILE=./ord_i/ord*.xml" -XML_ELEMENT=IDOC "-CHARSET_ENCODING=UTF-8" -IF_FILE_EXISTS=overwrite -KEEP_XML_PROLOGUE=xml "-HEADER= <WMMBID02>" "-FOOTER= </WMMBID02>"

次の例では、前述の例と同様の方法でMDSLS.TXT.XMLというファイルを分割します。ただし、分割するIDOC要素のBEGIN属性の値を使用してファイル名が指定される点が前述の例とは異なります。この例ではXMLプロローグが保持されませんが、すべてヘッダーに生成されています。

OdiXMLSplit "-FILE= ./MDSLS.TXT.XML" "-TOFILE=./ord_i/ord[BEGIN].xml" -XML_ELEMENT=IDOC "-CHARSET_ENCODING=UTF-8" -IF_FILE_EXISTS=overwrite -KEEP_XML_PROLOGUE=none "-HEADER= <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<WMMBID02>" "-FOOTER=</WMMBID02>"

A.5.57 OdiZip

このコマンドを使用して、ディレクトリまたは複数のファイルからZIPファイルを作成します。

使用方法

OdiZip -DIR=<directory> -FILE=<file> -TOFILE=<target_file> [-OVERWRITE=<yes|no>]
[-RECURSE=<yes|no>] [-CASESENS=<yes|no>]
[-ENCODING=<file_name_encoding>]

パラメータ

パラメータ

必須

説明

-DIR=<directory>

FILEを指定しない場合は、はい

生成するZIPファイルのルートになるベース・ディレクトリ(またはフォルダ)。-DIRのみを指定して-FILEを指定しないと、このディレクトリの下にあるすべてのファイルが圧縮されます。

-FILE=<file>

DIRを指定しない場合は、はい

アーカイブするファイルのベース・ディレクトリからのパス。-FILEのみを指定して-DIRを指定しないと、-FILEが相対パスの場合は、現在の作業ディレクトリがデフォルトのディレクトリになります。

汎用文字を指定するには「*」を使用します。

例:

/var/tmp/*.log (/var/tmpディレクトリ内にあるlog拡張子のファイルすべて)

arch_*.lst (arch_で開始するlst拡張子のファイルすべて)

-TOFILE=<target_file>

はい

ターゲットZIPファイル。

-OVERWRITE=<yes|no>

いいえ

ターゲットZIPファイルがすでに存在している場合は、上書きするか(yes)、単に更新するか(no)を示します。デフォルトでは、既存のZIPファイルがある場合は更新されます。

-RECURSE=<yes|no>

いいえ

他のディレクトリが含まれるディレクトリの場合に、アーカイブを再帰的に実行するかどうかを示します。noの値を指定すると、コピーするディレクトリに含まれるファイルのみ(サブフォルダを含まない)がアーカイブされます。

-CASESENS=<yes|no>

いいえ

ファイル検索で大文字と小文字が区別されるかどうかを示します。デフォルトでは、ファイルは大文字で検索されます。

-ENCODING=<file_name_encoding>

いいえ

アーカイブ・ファイル内部でファイル名に使用される文字エンコーディング。

サポートされているエンコーディングは、次のURLで確認できます。

http://java.sun.com/j2se/1.4.2/docs/guide/intl/encoding.doc.html

デフォルトは、プラットフォームのデフォルトの文字エンコーディングです。

例

C:\Program files\odiディレクトリのアーカイブを作成します。

OdiZip "-DIR=C:\Program Files\odi" -FILE=*.* -TOFILE=C:\TEMP\odi_archive.zip

C:\Program files\odiディレクトリのアーカイブを作成します。このアーカイブにはodiディレクトリが保持されます。

OdiZip "-DIR=C:\Program Files" -FILE=odi\*.* -TOFILE=C:\TEMP\odi_archive.zip

B ユーザー・パラメータ

この付録では、Oracle Data Integratorのユーザー・パラメータのリストを示します。Oracle Data Integratorの動作は、ユーザー・パラメータによって構成されます。

ユーザー・パラメータを設定するには:

1. 「ODI」メイン・メニューから、「ユーザー・パラメータ」を選択します。

2. 「ユーザー・パラメータを編集中」ダイアログで、ユーザー・パラメータの値を設定します。

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

表 B-1に、ODIユーザー・パラメータの完全なリストを示します。

表B-1 ユーザー・パラメータ

パラメータ

値

説明

自動マッピング

Yes | No | Ask

列名の一致が検出されて新しいデータストアがインタフェースに追加されたときに、ソース列をターゲット列に自動的にマップします。詳細は、11.3.5項「マッピングの定義」を参照してください。

終了時に「ODIの終了」プロンプトを省略

Yes | No | Ask

このユーザー・パラメータがYesに設定されている場合、終了確認ダイアログは表示されません。

インタフェースの「問題の修正」ダイアログの表示を省略

Yes | No

Yesに設定すると、インタフェースの「問題の修正」ダイアログは表示されません。

Webサービスの省略操作により警告が変更されました

Yes | No | Ask

このユーザー・パラメータがYesに設定されている場合、操作変更済の警告は表示されません。

同時編集のチェック

0 | 1

オブジェクトへの変更を保存するときに、他のユーザーによって同じオブジェクトに異なる変更が追加されていないことを確認します。別のユーザーが変更していた場合、オブジェクトは保存できません。

詳細は、18.5.1項「同時編集のチェック」を参照してください。

デフォルト・エージェント

エージェント名

オブジェクトを実行する際に、「実行」オプション・ウィンドウにデフォルトで選択されるエージェント。無効なエージェント名が指定されている場合は、ローカル・エージェントが使用されます。

実行のデフォルト・コンテキスト

コンテキスト名

オブジェクトを実行する際に、「実行」ダイアログにデフォルトで選択されるコンテキスト。無効なコンテキスト名が指定されている場合は、デザイナで使用されるデフォルトのコンテキストが使用されます。

詳細は、第21章「統合プロセスの実行」を参照してください。

デザイナのデフォルト・コンテキスト

コンテキスト名

統合インタフェースを実行している場合、これは「実行」ダイアログにデフォルトで選択されるコンテキストです。

データ・サービス生成用のデフォルト・パス

ディレクトリ

生成されたデータ・サービスを格納するデフォルトのパス。生成されたソース・コードとコンパイルされたWebサービスは、Oracle Data Integratorによってこの場所に格納されます。このディレクトリは、生成後に削除される一時的な場所です。

8.3項「データ・サービスの生成およびデプロイ」を参照してください。

デフォルトのPDF生成ディレクトリ

ディレクトリ

レポートを生成する場合に、生成された.pdfファイルを保存するデフォルト・ディレクトリ。詳細は、18.6項「PDFレポートの作成」を参照してください。

2回のリフレッシュ間の遅延(秒)

数値

オペレータ・ナビゲータでの2回のリフレッシュの間に待機する秒数。自動リフレッシュ・モードが有効な場合にのみ適用されます。

シナリオにリンクされたセッションの削除

Yes | No | Ask

Yesに設定すると、オペレータ・ナビゲータの「シナリオ」アコーディオンでシナリオを削除すると、リンクされているセッションも自動的に削除されます。

ダイアグラム(PNG)を保存するためのディレクトリ

ディレクトリ

共通フォーマット・デザイナを使用してモデル・ダイアグラムを印刷するときに、生成される.pngファイルを保存するデフォルト・ディレクトリを指定します。詳細は、第7章「共通フォーマット・デザイナの使用」を参照してください。

ツリーでのロック・アイコンの表示

Yes | No

「デザイナ・ナビゲータ」ツリーで、ロックされているオブジェクトにロック・アイコンを表示します。このオプションを使用不可にすると、ツリー表示の場合は表示速度が向上します。詳細は、18.5.2項「オブジェクトのロック」を参照してください。

ツリーにリソース名を表示します。

Yes | No

データストアのリソース名を「モデル」アコーディオンに表示するかどうか。この表示は、リソース名がデータストア名と異なる場合に便利です。

「オペレータの表示制限」ダイアログの有効化

0 | 1

1の場合、オペレータの表示制限を超えるたびに、警告ダイアログが表示されます。

0の場合、警告ダイアログは表示されません。

特定のインタフェースの問題をプラットフォーム・コンパイラに対して有効化

Yes | No

Yesに設定すると、プラットフォーム・コンパイラに対して特定の問題を有効化するよう、インタフェースが確認されます。開発するインタフェースにプラットフォーム・コンパイラを使用しない場合、このパラメータは有効にしないことをお薦めします。

デフォルトJavaエンコーディングのエクスポート

Javaエンコーディング

デフォルトのエクスポートJavaエンコーディング。デフォルトはISO8859_1です。サポートされているエンコーディングのリストは、http://java.sun.com/j2se/1.4.2/docs/guide/intl/encoding.doc.htmlのURLで確認できます。

詳細は、第20章「エクスポート/インポート」を参照してください。

デフォルト・バージョンのエクスポート

0 | 1

1の場合は、マスター・リポジトリのエクスポート時にバージョニングされたオブジェクトがエクスポートされます。0の場合、バージョニングされたオブジェクトはエクスポートされません。デフォルトは1です。

詳細は、第20章「エクスポート/インポート」を参照してください。

デフォルトXMLキャラクタ・セットのエクスポート

キャラクタ・セット・エンコーディング

デフォルトのエクスポート・キャラクタ・セット・エンコーディング。デフォルトはISO-8859-1です。サポートされているエンコーディングのリストは、http://java.sun.com/j2se/1.4.2/docs/guide/intl/encoding.doc.htmlのURLで確認できます。

詳細は、第20章「エクスポート/インポート」を参照してください。

インタフェース・ダイアグラムのヘルプ

0 | 1

1の場合は、データストアが関連付けられていないインタフェース・ダイアグラムを編集すると、ヘルプ・メッセージが表示されます。

接続時および切断時ステップを非表示

Yes | No

このユーザー・パラメータがYesに設定されている場合、接続時および切断時ステップは表示されません。デフォルトはNoです。

DBMSがアクセス不能なモデルのリストをキャッシュに保持

Yes | No

このユーザー・パラメータがtrueに設定されている場合は、DBMSがアクセス不能なモデルのリストがキャッシュ内に保持されます。これによって、これらのモデルに含まれるノードの展開と表示の速度が向上します。

開く時にオブジェクトをロック

0 | 1| Ask

編集のためにオブジェクトを開くと、次のように機能します:

- 1: 自動的にロックされます。

- 0: ロックされません。

- Ask: オブジェクトをロックするかどうかを確認するプロンプトが表示されます。

詳細は、18.5.2項「オブジェクトのロック」を参照してください。

ASCII以外の文字をアンダースコアに変換することはできません

Yes | No

trueの場合、エクスポートまたは別名の生成中に文字が変換されることはありません。ただし、使用しているエンコードを完全にサポートしているプラットフォームでのみ使用してください。

オペレータの表示制限(0=制限なし)

数値

オペレータ・ナビゲータで表示するセッションの数がこの数を超えると、確認メッセージが表示されます。デフォルトは100です。

Oracle Data Integratorタイムアウト

数値

内部エージェントの場合のみ: データベース接続を断念するまで待機する秒数。タイムアウトの問題が頻繁に発生する場合は、この値を大きくします。デフォルトは30です。この値の変更は、アプリケーションを再起動すると有効になります。

PDFビューア

ファイルへのパス

生成された.pdfファイルを表示するプログラムのファイル名を含むパスを入力します。「ファイルを生成後に開きますか。」オプションを使用する場合は必須です。

詳細は、18.6項「PDFレポートの作成」を参照してください。

モデル・データストアのみの処理

Yes | No | Ask

このモデルにないデータストアのDDLコードを生成するかどうか。Askに設定すると、確認メッセージが表示されます。

詳細は、7.3項「DDLスクリプトの生成」を参照してください。

問合せバッファ・サイズ

数値

リポジトリで発行されたプリコンパイル済の文(問合せ)に使用されるキャッシュのサイズ。Oracleインスタンスのリポジトリにのみ適用されます。この値の変更は、アプリケーションを再起動すると有効になります。

シナリオ命名規則

命名規則

内部エージェントの場合のみ: このパラメータを使用して、Studioまたはツールを介してオブジェクトに作成される新しいシナリオのデフォルト命名パターンを定義します。このパターンには、次のタグを使用できます。

- %PROJECT_NAME% : オブジェクトが格納されているプロジェクトの名前。

- %FOLDER_PATH%: プロジェクト・ツリーでのオブジェクトまでのフォルダのパス。アンダースコアを使用して区切ります。

- %FOLDER_NAME(n)%: プロジェクト・ツリーの1番下から1番上のフォルダまでのパス上にある1つのフォルダの名前(n=1はオブジェクトの親に相当)。指定された添え字(n)に該当するフォルダがない場合は、空の文字列が戻ります。

- %FOLDER_NAME%: %FOLDER_NAME(1)%へのショートカット。

- %OBJECT_NAME%: シナリオのソース・オブジェクトの名前。

CDC変更のツリー表示

0 | 1

CDC変更をツリーに表示します(1=有効/0=無効)。デフォルトは1です。

第6章「チェンジ・データ・キャプチャの使用」を参照してください。

移動の警告をスキップ

Yes | No

Noに設定すると、ナビゲータ内でオブジェクトまたはフォルダを移動するときオブジェクト移動の警告ダイアログが表示されます。

ショートカット名変更済の警告をスキップ

Yes | No

Noに設定すると、ナビゲータ内でショートカットを移動するとき短縮名移動の警告ダイアログが表示されます。

閉じる時にオブジェクトをロック解除

0 | 1| Ask

変更したオブジェクトを閉じると、次のように機能します:

- 1: 自動的にロックが解除されます。

- 0: ロックは解除されません。

- Ask: オブジェクトのロックを解除するかどうかを確認するプロンプトが表示されます。

詳細は、18.5.2項「オブジェクトのロック」を参照してください。

新しいロード・バランシングの使用

Yes | No

内部エージェントの場合のみ: ロード・バランシングを使用している場合に、セッションがなくなったエージェントに対して、他のエージェントが開始していないセッションを再割当てできます。それ以外の場合、セッションの割当て可能回数はそれぞれ1回のみです。詳細は、4.3.3項「エージェントのロード・バランシング」を参照してください。

C Oracle Data IntegratorでのGroovyスクリプトの使用

この付録では、Groovy言語の概要を示し、Oracle Data IntegratorでGroovyスクリプトを使用する方法について説明します。この付録には次のセクションがあります。

- C.1項「Groovyの概要」

- C.2項「Groovyエディタの概要」

- C.3項「Groovyエディタの使用」

- C.4項「開発作業の自動化 - 例」

C.1 Groovyの概要

Groovyは、Javaプラットフォーム用のスクリプト言語で、Javaと同様の構文を持ちます。Groovyスクリプト言語では、ドット区切り表記法の採用により、コードの作成が簡素化されていますが、コレクション、文字列およびJavaBeansを操作する構文は引き続きサポートされています。強い型付け言語であるJavaがコンパイル時に実行されるのに対してGroovy式はランタイムに実行されるため、ADFビジネス・コンポーネントのGroovy言語式は、ビジネス・コンポーネント・カスタムJavaクラスで使用されるJavaコードとは異なります。また、Groovy式は動的にコンパイルされるため、式を使用するビジネス・コンポーネントのXML定義ファイル内に保存されます。ADFビジネス・コンポーネントは、エンティティ・オブジェクトの属性やビュー・オブジェクトの属性へのアクセスが有用な場所でGroovyスクリプト言語の使用をサポートしており、これには属性バリデータ(エンティティ・オブジェクトの場合)、属性のデフォルト値(エンティティ・オブジェクトまたはビュー・オブジェクトの場合)、一時属性値の計算(エンティティ・オブジェクトまたはビュー・オブジェクトの場合)、バインド変数のデフォルト値(ビュー・オブジェクトの問合せ文およびビュー基準フィルタの場合)、およびエラー・メッセージのプレースホルダ(エンティティ・オブジェクトの検証ルールの場合)などが含まれます。さらに、ADFビジネス・コンポーネントには、Groovy式で使用できる組込みキーワードの限定されたセットが用意されています。

Groovy言語の詳細は、次のWebサイトを参照してください:

http://groovy.codehaus.org/

C.2 Groovyエディタの概要

Groovyエディタは、ODI Studioのコンテキスト内でGroovyスクリプトを作成、編集および実行するための単一の環境を提供します。図C-1に、Groovyエディタの概要を示します。

図C-1 Groovyエディタ

「図C-1 Groovyエディタ」の説明

Groovyエディタには、構文の強調表示やデバッグを除く共通のコード・エディタ・コマンドなど、コード・エディタのすべての標準的な機能が用意されています。次のコマンドがサポートされており、コンテキスト・メニューまたは「ソース」メイン・メニューからアクセスできます。

- 空白の表示

- テキスト編集

- 行の結合

- 現在の行を削除

- 後続空白のトリミング

- 先頭のタブをスペースに変換

- 先頭のスペースをタブに変換

- マクロ設定の記録

- マクロの再生

- ブロックのインデント

- ブロックのインデント解除

C.3 Groovyエディタの使用

Groovyエディタでは、次のアクションを実行できます:

- Groovyスクリプトの作成

- 既存のGroovyスクリプトを開いて編集

- Groovyスクリプトの保存

- Groovyスクリプトの実行

- Groovyスクリプトの実行の停止

- 拡張アクションの実行

C.3.1 Groovyスクリプトの作成

ODI StudioでGroovyスクリプトを作成するには:

1. 「ツール」メイン・メニューから、「Groovy」→「新規スクリプト」を選択します。
Groovyエディタが開きます。

2. Groovyコードを入力します。

これで、スクリプトを保存または実行できます。

C.3.2 既存のGroovyスクリプトを開いて編集

以前に作成されたGroovyスクリプトを編集するには:

1. 「ツール」メイン・メニューから、「Groovy」→「スクリプトを開く」または「最近のスクリプト」を選択します。

2. Groovyファイルを選択して、「開く」をクリックします。
選択したファイルがGroovyエディタで開きます。

3. Groovyスクリプトを編集します。

これで、スクリプトを保存または実行できます。

C.3.3 Groovyスクリプトの保存

Groovyエディタで現在開いているGroovyスクリプトを保存するには:

「ツール」メイン・メニューから、「Groovy」→「スクリプトの保存」または「スクリプトの別名保存」を選択します。

注意:

メイン・ツールバーの「保存」オプションは、Groovyエディタに関連付けられていません。

C.3.4 Groovyスクリプトの実行

1つ以上のGroovyスクリプトを同時に実行することも、1つのスクリプトを並列で複数回実行することもできます。

実行できるのは、Groovyエディタで開かれているスクリプトのみです。ODI Studioでは、スクリプトの一部ではなく、Groovyスクリプト全体が実行されます。

ODI StudioでGroovyスクリプトを実行するには:

1. Groovyエディタで実行するスクリプトを選択します。

2. ツールバーの「実行」をクリックします。

3. スクリプトが実行されます。

これで、「ログ」ウィンドウで実行を確認できます。

スクリプトを実行するたびに独自の「ログ」ウィンドウが開かれることに注意してください。「ログ」ウィンドウの名前は、<script_name>の実行中の形式になります。

C.3.5 Groovyスクリプトの実行の停止

停止できるのは実行中のスクリプトのみです。実行中のスクリプトがない場合は、「停止」ボタンが非アクティブ化されます。

Groovyスクリプトの実行は、2つの方法で停止できます:

- 「ログ」タブで「停止」をクリックします。これにより、特定のスクリプトの実行が停止します。

- ツールバーで「停止」をクリックします。複数のスクリプトが実行中の場合は、実行を停止するスクリプトをドロップ・ダウン・リストから選択します。

C.3.6 拡張アクションの実行

この項では、Groovyエディタで実行できる拡張アクションを説明します。

カスタム・ライブラリの使用

たとえば外部ドライバが必要な場合、Groovyエディタは外部ライブラリにアクセスできます。

外部ライブラリを使用するには、次のいずれかを行います:

- カスタム・ライブラリをuserlibフォルダにコピーします。このフォルダは次の場所にあります:

- Windowsオペレーティング・システムの場合:
%APPDATA%/odi/oracledi/userlib

- UNIXオペレーティング・システムでは、次のようにします。
~/.odi/oracledi/userlib

- カスタム・ライブラリをadditional_path.txtファイルに追加します。このファイルはuserlibフォルダにあり、内容は次のとおりです:

; Additional paths file
; You can add here paths to additional libraries
; Examples:
;       C:\ java\libs\myjar.jar
;       C:\ java\libs\myzip.zip
;       C:\java\libs\*.jar will add all jars contained in the C:\java\libs\ directory
;       C:\java\libs\**\*.jar will add all jars contained in the C:\java\libs\ directory and subdirectories

追加のGroovy実行クラスパスの定義

ODI Studioで使用可能なすべてのクラスパスのエントリに加えて、Groovy実行クラスパスを定義できます。

追加のGroovy実行クラスパスを定義するには:

1. Groovyスクリプトを実行する前に、「ツール」メイン・メニューから「プリファレンス...」を選択します。

2. 「プリファレンス」ダイアログで、Groovyプリファレンス・ページに移動します。

3. クラスパスを入力し、「OK」をクリックします。

注意:

クラスパスを追加または変更した後、ODI Studioを再起動する必要はありません。

odiInputStream変数による入力の読込み

Oracle Data Integratorには、入力ストリームを読み込むためのodiInputStream変数が用意されています。この変数は次のように使用されます:

odiInputStream.withReader { println (it.readLine())}

この機能が使用されると、「ログ」タブの下部に「入力」テキスト・フィールドが表示されます。文字列テキストを入力し、[Enter]を押して、この値をスクリプトに渡します。値がスクリプトに渡されると、スクリプトは終了します。

例C-1は、入力ストリームの使用方法についての別の例を示しています。この例では、<script_name>の停止をクリックするまで入力を続けられます。

例C-1 InputStream

odiInputStream.withReader { reader ->
while (true) {
println reader.readLine();
}
}

複数のスクリプトの使用

複数のスクリプトを同時に使用する場合は、次の点に注意してください:

- 実行ごとにログ・タブが開きます。

- スクリプトが別のスクリプトを参照している場合は、2番目のスクリプトの出力はログ・タブにリダイレクトされません。これはGroovyの既知の制限で、回避策はありません。

ODIインスタンスの使用

Oracle Data Integratorには、変数odiInstanceが用意されています。この変数は、ODI Studioで実行されるすべてのGroovyスクリプトに使用できます。これは、スクリプトを実行するODIインスタンス(より正確には、リポジトリへの接続)を表します。ODI Studioがリポジトリに接続されていない場合、このインスタンスはNullになることに注意してください。

odiInstance変数は、コードを実行する前にODI Studioコードによって初期化されます。この目的にはGroovy SDKのバインドAPIを使用できます。例C-2は、odiInstance変数の使用方法を示しています。

C.4 開発タスクの自動化 - 例

Oracle Data Integratorでは、開発タスクを自動化するためにGroovyの使用がサポートされています。タスクの例は次のとおりです:

- 例C-2「プロジェクトの作成」

- 例C-4「外部ファイルからのクラス」

- 例C-3「外部Groovyファイル」

- 例C-5「Studio UIの自動化」

例C-2では、Groovyスクリプトを使用してODIプロジェクトを作成する方法を示します。

例C-2 プロジェクトの作成

import oracle.odi.core.persistence.transaction.ITransactionDefinition;
import oracle.odi.core.persistence.transaction.support.DefaultTransactionDefinition;
import oracle.odi.core.persistence.transaction.ITransactionManager;
import oracle.odi.core.persistence.transaction.ITransactionStatus;
import oracle.odi.domain.project.OdiProject;
import oracle.odi.domain.project.OdiFolder;

ITransactionDefinition txnDef = new DefaultTransactionDefinition();
ITransactionManager tm = odiInstance.getTransactionManager()
ITransactionStatus txnStatus = tm.getTransaction(txnDef)
OdiProject myProject = new OdiProject("New Project 1","NEW_PROJECT_1")
OdiFolder myFolder = new OdiFolder(myProject,"Test Folder 001")
odiInstance.getTransactionalEntityManager().persist(myProject)
tm.commit(txnStatus)

例C-3では、外部Groovyスクリプトをインポートする方法を示します。

例C-3 外部Groovyファイル

//Created by ODI Studio
import gd.Test1;
println "Hello World"
Test1 t1 = new Test1()
println t1.getName()

例C-4では、別のGroovyスクリプトからクラスをコールする方法を示します。

例C-4 外部ファイルからのクラス

import gd.GroovyTestClass

GroovyTestClass tc = new GroovyTestClass()
println tc.getClassLoaderName()

例C-5では、Studio UIの自動化を実装する方法を示します。

例C-5 Studio UIの自動化

import javax.swing.JMenuItem;
import javax.swing.JMenu;
import oracle.ide.Ide;

((JMenuItem)Ide.getMenubar().getGUI(false).getComponent(4)).doClick();
JMenu mnu = ((JMenu)Ide.getMenubar().getGUI(false).getComponent(4));
((JMenuItem)mnu.getMenuComponents()[0]).doClick()

Copyright © 2010, 2013, Oracle and/or its affiliates.All rights reserved.