ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Data Integrator接続およびナレッジ・モジュール・ガイド
11g リリース1(11.1.1)
B62261-05
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

14 IBM DB2 for iSeries

この章では、Oracle Data IntegratorでのIBM DB2 for iSeriesの使用方法について説明します。

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

14.1 概要

Oracle Data Integrator (ODI)では、IBM DB2 for iSeriesのデータがシームレスに統合されます。Oracle Data Integratorの機能(リバース・エンジニアリング、チェンジ・データ・キャプチャ、データ整合性チェックおよび統合インタフェースなど)は、IBM DB2 for iSeriesを使用した場合に最良の動作が得られるように設計されています。

14.1.1 概念

IBM DB2 for iSeriesの概念は、Oracle Data Integratorの概念に次のようにマップされます。1つのIBM DB2 for iSeriesサーバーは、Oracle Data Integratorの1つのデータ・サーバーに対応します。このサーバー内で、コレクションまたはスキーマがOracle Data Integrator物理スキーマにマップされます。1つのスキーマ内の関連する一連のオブジェクトが1つのデータ・モデルに対応し、各表、ビューまたはシノニムが、その属性、列および制約とともにODIデータストアとして表示されます。

Oracle Data Integratorでは、Java Database Connectivity (JDBC)を使用してIBM DB2 for iSeriesに接続します。

14.1.2 ナレッジ・モジュール

Oracle Data Integratorには、IBM DB2 for iSeriesデータを処理するためのナレッジ・モジュール(KM)が用意されています。これらのリストを表14-1に示します。これらの特定のIBM DB2 for iSeriesナレッジ・モジュールに加えて、IBM DB2 for iSeriesで汎用SQL KMを使用することもできます。詳細は、第4章「汎用SQL」を参照してください。

表14-1 IBM DB2 for iSeriesナレッジ・モジュール

ナレッジ・モジュール 説明

IKM DB2 400 Incremental Update

増分更新モードでIBM DB2 for iSeriesのターゲット表にデータを統合します。

IKM DB2 400 Incremental Update (CPYF)

増分更新モードでIBM DB2 for iSeriesのターゲット表にデータを統合します。このIKMはIKM DB2 400 Incremental Updateと似ていますが、セットベースのSQL操作ではなく、CPYF固有のOS/400コマンドを使用してターゲット表に書き込む点で異なります。

IKM DB2 400 Slowly Changing Dimension

データ・ウェアハウスでタイプ2の緩やかに変化するディメンションとして使用されるIBM DB2 for iSeriesのターゲット表に、データを統合します。

JKM DB2 400 Consistent

トリガーを使用してIBM DB2 for iSeries表の一貫したジャーナル化を行うためのジャーナル化インフラストラクチャを作成します。

JKM DB2 400 Simple

トリガーを使用してIBM DB2 for iSeries表の単純なジャーナル化を行うためのジャーナル化インフラストラクチャを作成します。

JKM DB2 400 Simple (Journal)

ジャーナルを使用してIBM DB2 for iSeries表の単純なジャーナル化を行うためのジャーナル化インフラストラクチャを作成します。

LKM DB2 400 Journal to SQL

IBM DB2 for iSeriesのソースからANSI SQL-92準拠ステージング領域のデータベースへデータをロードします。このLKMでは、ジャーナルに基づいてCDCインフラストラクチャをリフレッシュする際に、JKM DB2 400 Simple (Journal)でジャーナル化された表をソースとする場合があります。

LKM DB2 400 to DB2 400

CRTDDMFを使用してターゲット上にDDMファイルを作成し、CPYFを使用してソースからこのDDMファイルへデータを転送して、IBM DB2 for iSeriesのソース・データベースからIBM DB2 for iSeriesのステージング領域データベースへデータをロードします。

LKM SQL to DB2 400 (CPYFRMIMPF)

CPYFRMIPFでDB2ステージング領域にロードした一時ファイルを使用して、ANSI SQL-92準拠のソース・データベースからIBM DB2 for iSeriesのステージング領域データベースへデータをロードします。

RKM DB2 400

IBM DB2 for iSeriesのメタデータ(物理ファイル、表、ビュー、外部キー、一意キー)を取得します。


14.2 インストールおよび構成

IBM DB2 for iSeriesテクノロジでの作業を開始する前に、この項の情報を必ず読んでください。

14.2.1 システム要件および動作要件

インストールを実行する前に、システム要件および動作要件のドキュメントを読んで、使用する環境がインストールする製品の最低インストール要件を満たすことを確認する必要があります。

サポートされているプラットフォームおよびバージョンのリストには、次のOracle Technical Network (OTN)からアクセスできます。

http://www.oracle.com/technology/products/oracle-data-integrator/index.html

14.2.2 テクノロジ固有の要件

IBM DB2 for iSeries用の一部のナレッジ・モジュールでは、このデータベース固有の機能が使用されます。これらのナレッジ・モジュールの使用時には、次の制限が適用されます。

これらのトピックの追加情報は、IBM DB2 for iSeriesのドキュメントを参照してください。

システム・コマンドの使用

この項では、IBM DB2 for iSeriesのナレッジ・モジュールでiSeries固有のコマンドを使用する前に満たしておく必要がある要件を説明します。

  • CPYFまたはCPYFRMIPFなどのシステム・コマンドを使用するナレッジ・モジュールでは、iSeriesで稼働するエージェントがiSeriesシステムで稼働する必要があります。

ジャーナルでのCDCの使用

この項では、IBM DB2 for iSeriesでジャーナル・ベースのチェンジ・データ・キャプチャを使用する前に満たしておく必要がある要件を説明します。

14.2.3 接続性要件

この項では、IBM DB2 for iSeriesシステムに接続するための要件をリストします。

JDBCドライバ

Oracle Data Integratorは、デフォルトのIBM DB2 Datadirectドライバとともにインストールされます。このドライバではTCP/IPネットワーク・レイヤーが直接使用され、他のコンポーネントのインストールや構成は不要です。iSeriesへのエージェントのインストール時にIBMによって提供されるドライバ(ネイティブ・ドライバなど)をかわりに使用することもできます。

14.3 トポロジの設定

トポロジの設定には次が含まれます。

  1. DB2/400データ・サーバーの作成

  2. DB2/400物理スキーマの作成

14.3.1 DB2/400データ・サーバーの作成

IBM DB2/400データ・サーバーは、特定のユーザー・アカウントに接続された1つのiSeriesサーバーに対応します。このユーザーには、データ・サーバーの下に作成されたOracle Data Integrator内の物理スキーマに対応する、このサーバー内の複数のデータベースへのアクセス権が付与されます。

14.3.1.1 データ・サーバーの作成

『Oracle Fusion Middleware Oracle Data Integrator開発者ガイド』のデータ・サーバーの作成に関する項に記載されている標準の手順で、IBM DB2/400テクノロジ用データ・サーバーを作成します。この項では、IBM DB2/400データ・サーバーの定義に関する必須または固有のフィールドのみについて説明します。

  1. 「定義」タブ:

    • 名前: Oracle Data Integratorに表示されるデータ・サーバーの名前

    • サーバー: データ・サーバーの物理名

    • ユーザー/パスワード: DB2ユーザーおよびそのパスワード

  2. 「JDBC」タブ:

    • JDBCドライバ: weblogic.jdbc.db2.DB2Driver

    • JDBC URL: jdbc:weblogic:db2://hostname:port[;property=value[;...]]

14.3.2 DB2/400物理スキーマの作成

『Oracle Fusion Middleware Oracle Data Integrator開発者ガイド』の物理スキーマの作成に関する項に記載されている標準の手順で、IBM DB2/400物理スキーマを作成します。

この物理スキーマ内の作業スキーマおよびデータ・スキーマは、それぞれ1つのスキーマ(コレクションまたはライブラリ)に対応します。作業スキーマは一時スキーマを指す必要があり、データ・スキーマは統合するデータをホストするスキーマを指す必要があります。

『Oracle Fusion Middleware Oracle Data Integrator開発者ガイド』の論理スキーマの作成に関する項に記載されている標準の手順で、この物理スキーマ用の論理スキーマを作成し、特定のコンテキストで関連付けます。

14.4 統合プロジェクトの設定

IBM DB2 for iSeriesデータベースを使用してプロジェクトを設定するには、標準の手順に従います。『Oracle Fusion Middleware Oracle Data Integrator開発者ガイド』の統合プロジェクトの作成に関する項を参照してください。

IBM DB2 for iSeriesでの作業を開始するにあたり、使用するプロジェクトに次のナレッジ・モジュールをインポートすることをお薦めします。

14.5 IBM DB2/400モデルの作成およびリバース・エンジニアリング

この項には次のトピックが含まれます:

14.5.1 IBM DB2/400モデルの作成

『Oracle Fusion Middleware Oracle Data Integrator開発者ガイド』のモデルの作成に関する項に記載されている標準の手順で、IBM DB2/400モデルを作成します。

14.5.2 IBM DB2/400モデルのリバース・エンジニアリング

IBM DB2 for iSeriesでは、JDBCドライバの機能のみを使用する標準のリバース・エンジニアリング、およびRKMを使用してメタデータ取得する、カスタマイズされたリバース・エンジニアリングの両方がサポートされています。

通常は、標準のJDBCリバース・エンジニアリングを使用して作業を開始することを検討してください。

それ以外のメタデータを取得する場合に、カスタマイズされたリバース・エンジニアリングに切り替えることを検討してください。IBM DB2 for iSeriesのカスタマイズされたリバース・エンジニアリングでは、物理ファイル、データベース表、データベース・ビュー、列、外部キー、主キーおよび代替キーが取得されます。

標準のリバース・エンジニアリング

IBM DB2 for iSeriesで標準のリバース・エンジニアリングを実行するには、『Oracle Fusion Middleware Oracle Data Integrator開発者ガイド』のモデルのリバース・エンジニアリングに関する項に記載されている通常の手順を行います。

カスタマイズされたリバース・エンジニアリング

RKMを使用してIBM DB2 for iSeriesでカスタマイズされたリバース・エンジニアリングを実行するには、『Oracle Fusion Middleware Oracle Data Integrator開発者ガイド』のモデルのリバース・エンジニアリングに関する項に記載されている通常の手順を行います。この項では、IBM DB2/400テクノロジ固有のフィールドのみについて説明します。

IBM DB2/400モデルの「リバース」タブでKM: RKM DB2 400.<project name>を選択します。

14.6 チェンジ・データ・キャプチャの設定

Oracle Data Integratorでは、iSeriesでのチェンジ・データ・キャプチャを次の2つの方法で処理します。

14.6.1 トリガー・ベースCDCの設定

この方法では、単純ジャーナル化および一貫性セット・ジャーナル化がサポートされます。IBM DB2 for iSeries JKMでは、トリガーを使用してソース表でのデータ変更をキャプチャします。

Oracle Data Integratorには、トリガーを使用してIBM DB2 for iSeries表をジャーナル化するためのナレッジ・モジュールが用意されています。これらのリストを表14-2に示します。

ジャーナル化の設定方法およびキャプチャされた変更の使用方法の詳細は、『Oracle Fusion Middleware Oracle Data Integrator開発者ガイド』の「チェンジ・データ・キャプチャの使用」を参照してください。

表14-2 IBM DB2 for iSeriesジャーナル化ナレッジ・モジュール

KM 説明

JKM DB2 400 Consistent

トリガーを使用してIBM DB2 for iSeries表の一貫したジャーナル化を行うためのジャーナル化インフラストラクチャを作成します。

JKM DB2 400 Simple

トリガーを使用してIBM DB2 for iSeries表の単純なジャーナル化を行うためのジャーナル化インフラストラクチャを作成します。


14.6.2 ログ・ベースCDCの設定

この方法は、JKM DB2/400 Journal Simpleで設定され、LKM DB2/400 Journal to SQLで使用されます。これは、ジャーナル・コンテンツを取得するためのRPGプログラムも使用します。

14.6.2.1 動作の仕組み

iSeriesトランザクション・ジャーナルには、指定された期間のデータ変更の履歴がすべて含まれます。これは、iSeriesシステムによって、ジャーナル化される表について処理されます。ジャーナル化された表は、コレクションからの表、またはジャーナル・レシーバおよびジャーナルが作成されてジャーナル化が開始された表のいずれかです。

トランザクション・ジャーナルの読取りは、Oracle Data Integratorとともに提供されるジャーナル・リトリーバであるCDCRTVJRN RPGプログラムによって実行されます。このプログラムでは、Oracle Data Integrator CDCインフラストラクチャの表(J$表)およびその内容がトランザクション・ジャーナルからオンデマンドでロードされます。

このプログラムは、iSeriesシステム上でスケジュールするか、同じCDCRTVJRNという名前のストアド・プロシージャを介してKMでコールできます。このストアド・プロシージャはJKM DB2/400 Journal Simpleによって自動的に作成され、データの抽出が必要になったときにLKM DB2/400 Journal to SQLによって起動されます。

14.6.2.2 CDCRTVJRNプログラムの詳細

このプログラムは、指定された表のネイティブiSeriesジャーナルに接続し、変更されたデータ情報をOracle Data Integratorジャーナル(J$)内にキャプチャします。

このプログラムは次のように動作します。

  1. ジャーナル化された表の属性の取得:

    1. 表属性の取得: PK列、J$表名、最終のジャーナル読取り日付

    2. 短縮名、レコード・サイズなどの拡張属性(QSYS.QADBXREFシステム表を使用)

    3. iSeriesジャーナルの場所(QADBRTVFD() APIを使用)

  2. PK列情報の取得:

    1. 短縮名、データ型などのPK列属性(QSYS.QADBIFLDシステム表を使用)

    2. 実際の物理長などの拡張属性(QUSLFLD() APIを使用)

    3. 主キー列のデータの前処理(RPGからSQLへのデータ型変換)

  3. J$表へのネイティブ・ジャーナル情報の抽出:

    1. ネイティブ・ジャーナルの読取り(QJoRetrieveJournalEntries() APIを使用)

    2. 生データのネイティブSQLデータへの変換およびJ$表へのキャプチャ

    3. 変更回数の更新

このプログラムによって受け入れられるパラメータのリストを表14-3に示します。

表14-3 CDCRTVJRNプログラムのパラメータ

パラメータ RPG型 SQL型 説明

SbsTName

A138

Char(138)

サブスクライバ表のフルネーム(書式は<Lib>.<Table>)。

例: ODILIB.SNP_SUBSCRIBERS

JrnTName

A138

Char(138)

ジャーナルから抽出が行われる表のフルネーム。

例: FINANCE.MY_COMPANY_ORDERS

JrnSubscriber

A50

Char(50)

現在のサブスクライバの名前。これは、事前にサブスクライバのリストに追加されている必要があります。

LogMessages

A1

Char(1)

スプール・ファイルへのログインをアクティブ化するフラグ。使用できる値は、Y(ロギングの有効化)およびN(ロギングの無効化)です。


14.6.2.3 iSeriesへのCDCコンポーネントのインストール

ネイティブ・ジャーナルの読取りを有効にするためにiSeriesシステムにインストールする主要コンポーネントは次の2つです。

  • CDCRTVJRNプログラム。このプログラムは、iSeriesシステムにインストールされるアーカイブに含まれます。インストールの手順は後述の説明を参照してください。

  • CDCインフラストラクチャ。これには標準のCDCオブジェクト(J$表、ビューなど)、およびJKMにより作成され、LKMによってジャーナルの読取りに使用されるCDCRTVJRNストアド・プロシージャが含まれます。このストアド・プロシージャにより、CDCRTVJRNプログラムが実行されます。


注意:

このプログラムは、このiSeriesデータ・サーバーのデフォルト作業ライブラリとしてトポロジで定義されたライブラリ内で設定する必要があります。下の例では、このライブラリをODILIBと呼んでいます。


CDCRTVJRNプログラムのインストール

CDCRTVJRNプログラムをインストールするには、次のようにします。

  1. プログラムSAVFファイルの場所を特定します。これはODI_HOME/setup/manual/cdc-iseriesディレクトリにあるほか、Oracle Data Integrator Companion CDにも含まれています。

  2. iSeriesシステムに接続します。

  3. デフォルトの作業ライブラリが存在しない場合は、これを作成します。たとえば、次のコマンドを使用してODILIBライブラリを作成できます。

    CRTLIB LIB(ODILIB)
    
  4. このライブラリ内に、SAVFファイルと同じ名前の空の保存ファイルを作成します(必須)。次に例を示します。

    CRTSAVF FILE(ODILIB/SAVPGM0110)
    
  5. iSeriesシステムのライブラリ内に作成したファイルを上書きする形で、ローカルSAVFファイルをアップロードします。アップロード・プロセスがバイナリ・モードで実行されるようにしてください。

    アップロードを実行するFTPコマンド・シーケンスの例を次に示します。

    FTP 192.168.0.13
    LCD /oracle/odi/setup/manual/cdc-iseries/ BI CD ODILIB PUT SAVPGM0110 BYE
  • RSTOBJコマンドを使用して、保存ファイルからオブジェクトをリストアします。次に例を示します。

    RSTOBJ OBJ(*ALL) SAVLIB(CDCODIRELE) DEV(*SAVF) OBJTYPE(*ALL) SAVF(ODILIB/SAVPGM0110) RSTLIB(ODILIB)
    
  • オブジェクトが正しくリストアされていることを確認します。ターゲット・ライブラリには、CDCRTVJRNというプログラム・オブジェクトが含まれている必要があります。

    次のコマンドを使用してこのオブジェクトを表示します。

    WRKOBJ OBJ(ODILIB/CDCRTVJRN)
    

CDCRTVJRNストアド・プロシージャ

このプロシージャは、CDCRTVJRNプログラムをコールするために使用します。これは、ジャーナル化が開始されるとき、JKM DB2/400 Journal Simple KMによって自動的に作成されます。ジャーナル化の起動の詳細は、「チェンジ・データ・キャプチャ」を参照してください。

このストアド・プロシージャの構文は、次を参照してください。

create procedure ODILIB.CDCRTVJRN(
   SbsTName char(138), /* Qualified Subscriber Table Name */
   JrnTName char(138), /* Qualified Table Name */
   Subscriber char(50) , /* Subscriber Name */
   LogMessages char(1) /* Create a Log (Y - Yes, N - No) */
)
language rpgle
external name 'ODILIB/CDCRTVJRN'

注意:

このストアド・プロシージャおよびプログラムは、このiSeriesデータ・サーバーのデフォルト作業ライブラリとしてトポロジで定義されたライブラリ内にインストールする必要があります。


14.6.2.4 ネイティブ・ジャーナルでのCDCの使用

プログラムをインストールしてCDCを設定したら、ネイティブ・ジャーナルを使用するために、LKM DB2/400 Journal to SQLを使用してiSeriesシステムからジャーナル化されたデータを抽出します。取得プロセスがトリガーされるのは、このLKMのRETRIEVE_JOURNAL_ENTRIESオプションがtrueに設定されている場合です。

14.6.2.5 ジャーナル読取り時の問題

この項では、このチェンジ・データ・キャプチャ方法の使用時に発生する可能性がある問題をリストします。

CDCRTVJRNプログラムの制限

CDCRTVJRNプログラムには、次の制限があります。

  • iSeriesデータ・サーバーで指定されたユーザーによる、ソース表のジャーナル化およびiSeriesジャーナルの読取りが可能であることが必要です。

  • ソース表にはOracle Data Integratorで定義された1つのPKが含まれている必要があります。

  • Oracle Data Integratorで宣言されているPKは、データファイルの物理レコードの最初の4096オクテットに含まれている必要があります。

  • PK内の列数は16以下であることが必要です。

  • PKの列番号にPKの列名を追加した合計文字数は、255以下であることが必要です。

  • ラージ・オブジェクト・データ型は、PKではサポートされません。PKでサポートされるSQLタイプは、SMALLINT、INTEGER、BIGINT、DECIMAL(パック形式)、NUMERIC(ゾーン形式)、FLOAT、REAL、DOUBLE、CHAR、VARCHAR、CHAR VARYING、DATE、TIME、TIMESTAMPおよびROWIDのみです。

  • CDCRTVJRNの複数のインスタンスを同じシステム上で同時に起動しないでください。

  • ジャーナル・エントリの使用日(SNP_SUBSCRIBERS.JRN_CURFROMDATE)が順序初期化の日付より前の場合には、iSeriesジャーナルで順序番号を再初期化すると、プログラムに深刻な影響を与える(プログラムが停止する)可能性があります。この問題を回避するには、SNP_SUBSCRIBERS.JRN_CURFROMDATEで、それよりも後の日付を手動で設定する必要があります。

CDCRTVJRNプログラムのトラブルシューティング

ジャーナル読取りプロセスは、次のどちらかの方法でトレース・モードに設定できます:

  • LogMsgパラメータをYに設定して、問合せツールからCDCRTVJRNストアド・プロシージャをコールします。

  • CREATE_SPOOL_FILE LKMオプションを強制的に1に設定して、インタフェースを再起動します。

読取りプロセスのログは、WRKSPLFコマンドを使用して確認できるスプール・ファイルに格納されます。

また、DSPJRNコマンドを使用して、iSeriesジャーナルの未加工の内容を確認できます。

14.7 データ品質の設定

Oracle Data Integratorには、DB2/400で定義された制約と照合してデータの整合性をチェックするための汎用CKM SQLが用意されています。詳細は、『Oracle Fusion Middleware Oracle Data Integrator開発者ガイド』の「フロー制御および統合後制御の設定」を参照してください。

詳細は、第4章「汎用SQL」を参照してください。

14.8 インタフェースの設計

統合インタフェースのソース、ステージング領域またはターゲットとしてIBM DB2 for iSeriesを使用できます。

インタフェースまたはチェック用に選択したKMによって、このインタフェースまたはチェックの機能およびパフォーマンスが決まります。この項に示す推奨事項は、IBM DB2 for iSeriesデータ・サーバーに関連する様々な状況でのKMの選択に役立ちます。

14.8.1 IBM DB2 for iSeriesとの間でのデータのロード

インタフェースのソース、ターゲットまたはステージング領域としてIBM DB2 for iSeriesを使用できます。インタフェース・フロー・タブでの、IBM DB2 for iSeriesと別のタイプのデータ・サーバー間でデータをロードするためのLKMの選択は、インタフェースのパフォーマンスに関してきわめて重要です。

14.8.1.1 IBM DB2 for iSeriesからのデータのロード

Oracle Data Integratorには、IBM DB2 for iSeriesからターゲットまたはステージング領域のデータベースへデータをロードするための最適化された方法を実装するナレッジ・モジュールが用意されています。これらの最適化されたIBM DB2 for iSeries KMを表14-4にリストします。

これらのKM以外に、汎用SQL KMまたは関係するもう一方のテクノロジ固有のKMを使用して、IBM DB2 for iSeriesからターゲットまたはステージング領域のデータベースへデータをロードすることもできます。

表14-4 IBM DB2 for iSeriesからデータをロードするためのKM

ソースまたはステージング領域のテクノロジ KM 説明

IBM DB2 for iSeries

LKM DB2 400 to DB2 400

CRTDDMFを使用してターゲット上にDDMファイルを作成し、CPYFを使用してソースからこのDDMファイルへデータを転送して、IBM DB2 for iSeriesのソース・データベースからIBM DB2 for iSeriesのステージング領域データベースへデータをロードします。

IBM DB2 for iSeries

LKM DB2 400 Journal to SQL

IBM DB2 for iSeriesのソースからANSI SQL-92準拠ステージング領域のデータベースへデータをロードします。このLKMでは、ジャーナルに基づいてCDCインフラストラクチャをリフレッシュする際に、JKM DB2 400 Simple (Journal)でジャーナル化された表をソースとする場合があります。


14.8.1.2 IBM DB2 for iSeriesへのデータのロード

Oracle Data Integratorには、ソースまたはステージング領域からIBM DB2 for iSeriesデータベースへデータをロードするための最適化された方法を実装するナレッジ・モジュールが用意されています。これらの最適化されたIBM DB2 for iSeries KMを表14-5にリストします。

これらのKM以外に、汎用SQL KMまたは関係するもう一方のテクノロジ固有のKMも使用できます。

表14-5 IBM DB2 for iSeriesにデータをロードするためのKM

ソースまたはステージング領域のテクノロジ KM 説明

IBM DB2 for iSeries

LKM DB2 400 to DB2 400

CRTDDMFを使用してターゲット上にDDMファイルを作成し、CPYFを使用してソースからこのDDMファイルへデータを転送して、IBM DB2 for iSeriesのソース・データベースからIBM DB2 for iSeriesのステージング領域データベースへデータをロードします。

SQL

LKM SQL to DB2 400 (CPYFRMIMPF)

CPYFRMIPFでDB2ステージング領域にロードした一時ファイルを使用して、ANSI SQL-92準拠のソース・データベースからIBM DB2 for iSeriesのステージング領域データベースへデータをロードします。


14.8.2 IBM DB2 for iSeriesでのデータの統合

Oracle Data Integratorには、IBM DB2 for iSeries用に最適化されたデータ統合戦略を実装するナレッジ・モジュールが用意されています。これらの最適化されたIBM DB2 for iSeries KMを表14-6にリストします。I

これらのKM以外に、汎用SQL KMも使用できます。

インタフェース・フロー・タブのIKMの選択によって、統合のパフォーマンスおよび可能性が決まります。

表14-6 IBM DB2 for iSeriesにデータを統合するためのKM

KM 説明

IKM DB2 400 Incremental Update

増分更新モードでIBM DB2 for iSeriesのターゲット表にデータを統合します。

IKM DB2 400 Incremental Update (CPYF)

増分更新モードでIBM DB2 for iSeriesのターゲット表にデータを統合します。このIKMはIKM DB2 400 Incremental Updateと似ていますが、セットベースのSQL操作ではなく、CPYF固有のOS/400コマンドを使用してターゲット表に書き込む点で異なります。

IKM DB2 400 Slowly Changing Dimension

データ・ウェアハウスでタイプ2の緩やかに変化するディメンションとして使用されるIBM DB2 for iSeriesのターゲット表に、データを統合します。


緩やかに変化するディメンションの使用

緩やかに変化するディメンションを使用する場合は、ターゲット・データベースの各列に対して「緩やかに変化するディメンション」の値を必ず設定してください。この値は、「サロゲート・キー」、「自然キー」、列の上書きまたは挿入、「現在のレコード・フラグ」、「開始タイムスタンプ」および「終了タイムスタンプ」列を識別するために、IKM DB2 400 Slowly Changing Dimensionで使用されます。

14.9DB2 for iSeries固有の考慮事項

この項では、iSeries環境でOracle Data Integratorを使用する場合に固有の考慮事項を説明します。

14.9.1 iSeriesでのランタイム・エージェントのインストール

iSeriesでは、Oracle Data Integratorのスタンドアロン・エージェントをインストールできます。

詳細は、『Oracle Fusion Middleware Oracle Data Integratorインストレーション・ガイド』を参照してください。

14.9.2 iSeriesの代替接続方法

ほとんどの場合は、組込みIBM DB2 Datadirectドライバの使用が適切です。このドライバではTCP/IPネットワーク・レイヤーが直接使用され、他のコンポーネントをクライアント・マシンにインストールする必要はありません。iSeries上のDB2への接続方法は他にもあります。

14.9.2.1 クライアント・アクセスの使用

ODBCを介して、マシンにインストールされているIBMクライアント・アクセス・コンポーネントに接続することも可能です。この方法では良いパフォーマンスが得られず、リバース・エンジニアリングおよび他の一部の機能がサポートされません。そのため、この方法はお薦めしません。

14.9.2.2 IBM JT/400およびネイティブ・ドライバの使用

このドライバはjt400.zipファイルとして表示されるもので、使用するOracle Data Integratorインストールのdriversディレクトリにコピーする必要があります。

DB2 for iSeriesをiSeriesマシンにインストールされているJavaアプリケーションと接続する場合は、JT/400ドライバ(jt400.jar)のかわりにJT/400ネイティブ・ドライバ(jt400native.jar)を使用することがIBM社によって推奨されています。ネイティブ・ドライバは、DB2システムへの最適化されたアクセスを提供しますが、機能するのはiSeriesマシンからアクセスした場合のみです。

1つの接続で両方のドライバをシームレスにサポートするために、Oracle Data Integratorには組込みDriver Wrapper for AS/400が用意されています。このラッパーでは、可能な場合はネイティブ・ドライバを介して接続し、それ以外の場合はJT/400ドライバを使用します。AS/400システムにインストールされたエージェントを実行する場合は、このラッパーを使用することをお薦めします。

このドライバ・ラッパーを使用してデータ・サーバーを構成するには、次のようにします。

  1. 次の情報を使用して、ドライバおよびURLを、使用するAS/400サーバーに変更します。

    • ドライバ: com.sunopsis.jdbc.driver.wrapper.SnpsDriverWrapper

    • URL: jdbc:snps400:<machine_name>[;param1=value1[;param2=value2...]]

  2. ランタイム・エージェントがiSeriesにデプロイされているjavaマシンについて、次のjavaプロパティを設定します。

    • HOST_NAME: 現在のマシンを識別するホスト名の、カンマ区切りのリスト。

    • HOST_IP: 現在のマシンのIPアドレス。

    この値によって、データ・サーバーへのアクセスがiSeriesマシンまたはリモート・マシンのどちらから行われているかをラッパーが識別できます。

14.10 トラブルシューティング

この項では、Oracleナレッジ・モジュールの使用時に発生する可能性がある問題のトラブルシューティングに関する情報を提供します。この章の内容は、次のとおりです。

14.10.1 エラー・メッセージのトラブルシューティング

通常、Oracle Data Integratorのエラーは次のように表示されます。

java.sql.SQLException: The application server rejected the connection.(Signon was canceled.)
at ...
at ...
...

java.sql.SQLExceptioncodeは、単純に、JDBCドライバを介してデータベースへの問合せが行われ、エラーが戻されたことを示しています。このエラーはデータベースまたはドライバのエラーであることが多く、次のように解明する必要があります。

まず、太字のテキスト部分のみに注目してください。これは、DB2 for iSeriesのドキュメントで検索する必要があります。ここにシステム固有のエラー・コードが含まれている場合は、このコードを使用すると、エラーをすばやく識別できます。

このようなエラーが実行ログで検出された場合は、データベースに送信されたSQLコードを分析して、エラーの原因を特定する必要があります。このコードは、エラーのあるタスクの「説明」タブに表示されます。

14.10.2 一般的な問題および解決策

この項では、一般的な問題および解決策について説明します。

14.10.2.1 接続エラー

  • UnknownDriverException

    JDBCドライバが不正です。ドライバの名前を確認してください。

  • The application requester cannot establish the connection.(<name or IP address>) Cannot open a socket on host: <name or IP address>, port: 8471 (Exception: java.net.UnknownHostException:<name or IP address>)

    Oracle Data Integratorがデータベースに接続できません。原因は、マシン名またはIPアドレスが無効である、DB2/400サービスが起動していない、またはAS/400上のTCP/IPインタフェースが起動していない、のいずれかです。同じマシン名またはIPアドレスを使用してAS/400マシンのpingを試行し、システム管理者に依頼して適切なサービスが起動したことを確認してください。

  • Datasource not found or driver name not specified

    JDBC URLで指定されたODBCデータソースが不正です。

  • The application server rejected the connection.(Signon was canceled.) Database login failed, please verify userid and password. Communication Link Failure. Comm RC=8001 - CWBSY0001 - ...

    使用されているユーザー・プロファイルが無効です。このエラーは、無効なユーザー名または不正なパスワードを入力した場合に発生します。

  • Communication Link Failure

    ODBC接続でエラーが発生しました。詳細は、クライアント・アクセスのドキュメントを参照してください。

  • SQL5001 - Column qualifier or table &2 undefined. SQL5016 - Object name &1 not valid for naming convention

    使用するJDBC接続またはODBCデータソースが、不正な命名規則を使用するように構成されています。ODBCアドミニストレータを使用して正しい(*SQLまたは*SYS)命名規則が使用されるようにデータソースを変更するか、JDBC URLで適切なオプションを使用して命名規則を強制します(例: jdbc:as400://195.10.10.13;naming=system)。物理スキーマのローカル・オブジェクト・マスクでシステムの命名規則を使用する場合は、%SCHEMA.%OBJECTのかわりに%SCHEMA/%OBJECTを入力する必要があることに注意してください。

    使用するアプリケーションが*SYS専用に設計されている場合を除いて、常に*SQLを使用する必要があります。Oracle Data Integratorでは、デフォルトで*SQL命名規則が使用されます。

  • SQL0204 &1 in &2 type *&3 not found

    アクセスしようとしている表が存在しません。これは、コンテキスト選択または一連の操作でのエラーに関連する可能性があります(たとえば、この表が別のインタフェースで作成する必要がある一時表である場合など)。

  • Hexadecimal characters appear in the target tables. Accentuated characters are incorrectly transferred.

    iSeriesコンピュータによって、ファイル、表およびイベント・フィールド(列)に言語識別子またはCCSIDが添付されます。CCSID 65535は、ファイルまたはフィールドを言語非依存(つまり、16進データ)として識別する汎用コードです。そのため、ドライバによる変換は実行されません。ファイルのCCSIDを更新しない場合は、JDBC URLでフラグccsid=<ccsid code>およびconvert _ccsid_65535=yes|noを使用して変換を強制できます。詳細は、ドライバのドキュメントを参照してください。

  • SQL0901 SQL system error

    このエラーは、DB2/400システムの内部エラーです。

  • SQL0206 Column &1 not in specified tables

    マッピング、結合またはフィルタでの入力エラーです。列名でない文字列が列名として解釈されたか、列名にスペルミスがあります。

    構造が最近変更されたデータストアに関連付けられているエラー表にアクセスした場合にも、このエラーが表示されることがあります。エラー表に変更を反映するか、エラー表を削除して次回の実行時にOracle Data Integratorで再作成されるようにする必要があります。