15 IBM DB2 for iSeries

Oracle Data IntegratorでのIBM DB2 for iSeriesの使用方法を理解することが重要です。

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

15.1 概要

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

15.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に接続します。

15.1.2 ナレッジ・モジュール

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

表15-1 DB2 for iSeries KM

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

IKM DB2 400 Incremental Update

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

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表の単純なジャーナル化を行うためのジャーナル化インフラストラクチャを作成します。

RKM DB2 400

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

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

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

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

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

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

http://www.oracle.com/technetwork/middleware/data-integrator/documentation/index.html

15.2.2 テクノロジ固有の要件

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

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

ジャーナルでのCDCの使用

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

サポートされるデータ型の詳細は、IBM DB2 for iSeriesのドキュメントを参照してください。

15.2.3 接続性要件

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

JDBCドライバ

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

15.3 トポロジの設定

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

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

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

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

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

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

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

  1. 「定義」タブ:
    • 名前: Oracle Data Integratorに表示されるデータ・サーバーの名前

    • ホスト (データ・サーバー): ホストの名前またはIPアドレス

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

  2. 「JDBC」タブ:
    • JDBCドライバ: weblogic.jdbc.db2.DB2Driver

    • JDBC URL: jdbc:as400://<host>[;libraries=<library>][;<property>=<value>...]

      URLのパラメータは次のとおりです。

      • <host>: サーバーのネットワーク名またはIPアドレス

      • <library>: アクセスするデフォルト・ライブラリまたはコレクション

      • <property>=<value>: 接続プロパティ。利用可能なプロパティのリストについては、ドライバのドキュメントを参照してください。

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

『Oracle Data Integratorの管理』物理スキーマの作成に関する項の説明に従って、標準の手順を使用してIBM DB2/400物理スキーマを作成します。

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

『Oracle Data Integratorの管理』論理スキーマの作成に関する項の説明に従って、標準の手順を使用してこの物理スキーマ用の論理スキーマを作成し、特定のコンテキストで関連付けます。

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

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

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

  • IKM DB2 400 Slowly Changing Dimension

  • JKM DB2 400 Consistent

  • JKM DB2 400 Simple

  • RKM DB2 400

  • CKM SQL

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

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

15.5.1 IBM DB2/400モデルの作成

『Oracle Data Integratorでの統合プロジェクトの開発』モデルの作成に関する項の説明に従って、標準の手順を使用してIBM DB2/400モデルを作成します。

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

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

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

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

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

IBM DB2 for iSeriesで標準のリバース・エンジニアリングを実行するには、『Oracle Data Integratorでの統合プロジェクトの開発』モデルのリバース・エンジニアリングに関する項の説明に従って、通常の手順を使用します。

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

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

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

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

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

  • ジャーナル化された表でのトリガー・ベースCDC。この方法は、JKM DB2/400 SimpleまたはJKM DB2/400 Consistentで設定されます。このCDCは、他のシステムのCDCと同じです。詳細は、「トリガー・ベースCDCの設定」を参照してください。

  • ネイティブiSeriesトランザクション・ジャーナルを読み取る方法による、ログ・ベースCDC。この方法では、整合セットCDCはサポートされず、プラットフォーム固有の構成が必要になります。詳細は、「トリガー・ベースCDCの設定」を参照してください。

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

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

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

ジャーナル化の設定方法およびキャプチャされた変更の使用方法の詳細は、『Oracle Data Integratorでの統合プロジェクトの開発』のチェンジ・データ・キャプチャの使用に関する項を参照してください。

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

KM ノート

JKM DB2 400 Consistent

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

JKM DB2 400 Simple

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

15.6.2 ログ・ベースCDCの設定

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

15.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によって起動されます。

15.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. 変更回数の更新

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

表15-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(ロギングの無効化)です。

15.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.0.2.1
    LCD /oracle/odi/setup/manual/cdc-iseries/
    BI
    CD ODILIB
    PUT SAVPGM0110 
    BYE
    
  • RSTOBJコマンドを使用して、保存ファイルからオブジェクトをリストアします。たとえば:

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

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

    WRKOBJ OBJ(ODILIB/CDCRTVJRN)
    

例15-1 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データ・サーバーのデフォルト作業ライブラリとしてトポロジで定義されたライブラリ内にインストールする必要があります。

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

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

15.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ジャーナルの未加工の内容を確認できます。

15.7 データ品質の設定

Oracle Data Integratorには、DB2/400で定義された制約と照合してデータの整合性をチェックするための汎用CKM SQLが用意されています。詳細は、『Oracle Data Integratorでの統合プロジェクトの開発』フロー制御および静的制御に関する項を参照してください。

詳細は、汎用SQLを参照してください。

15.8 マッピングの設計

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

KM ノート

IKM DB2 400 Incremental Update

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

IKM DB2 400 Slowly Changing Dimension

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

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

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

15.9 DB2 for iSeries固有の考慮事項

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

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

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

詳細は、 Oracle Data Integratorのインストールと構成,を参照してください。

15.9.2 iSeriesの代替接続方法

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

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

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

15.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ドライバを使用します。

ドライバ・ラッパーを使用してデータ・サーバーを構成するには、次の情報を使用してドライバおよびURLをAS/400サーバーに変更します。

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

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

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

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

15.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コードを分析して、エラーの原因を特定する必要があります。このコードは、エラーのあるタスクの「説明」タブに表示されます。

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

この項では、一般的な障害と解決策について説明します。

15.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://192.0.2.1;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で再作成されるようにする必要があります。