ターゲット・データベースにロードする XML データには、 XML データを必要とする XML エレメントの ID が入っている必要があります。 XML 文書内にカタログ・エンティティーの ID を生成または配置するには、ID 解決コマンドを呼び出します。
ID リゾルバーは、1 次テーブルの ID だけを解決します。 1 次テーブルとは、KEYS または SUBKEYS テーブルにリストされているテーブルのことです。 KEYS または SUBKEYS にはないテーブルの ID を解決する必要がある場合は、 ID リゾルバーを実行する前に、テーブルを SUBKEYS テーブルに追加します。
メソッド
ID 解決コマンドでは、入力ファイルを処理する際に、ロード、更新、または混合メソッドを選択できます。
ロード・メソッド: ID リゾルバーのロード・メソッドは、 データベースにロードされたレコードの新規 ID を生成するために使用します。 このメソッドでは、レコードの新規 ID が作成されます。 以下の例は、新規データの ID を生成するために使用します。
![]()
![]()
![]()
![]()
![]()
idresgen -dbname db -dbuser user -dbpwd pwd -infile input.xml
-outfile output.xml -method load -customizer customizer注 : ロード・メソッドはデフォルトです。
![]()
QWEBCOMM/RESWCSID DATABASE(DATABASE_NAME) SCHEMA(MALL)
INSTROOT(/QIBM/UserData/WebCommerce/instances/mser) PASSWD(mypassword)
INFILE(input.xml) OUTFILE(output.xml) METHOD(*LOAD)
更新メソッド: ID リゾルバーに更新メソッドを指定する場合は、 入力ファイル内のレコードはすでにデータベースに存在している必要があります。 ID リゾルバーは、データベース内で ID を見付けます。 レコードがデータベースに存在しない場合は、ID リゾルバーはこのレコードの ID を解決できず、 エラーが発生したことを示します。 以下の例は、データベースにすでに存在するデータの ID を見付けるために使用します。
![]()
![]()
![]()
![]()
![]()
idresgen -dbname db -dbuser user -dbpwd pwd -infile input.xml
-outfile output.xml -method update -customizer customizer
![]()
QWEBCOMM/RESWCSID DATABASE(DATABASE_NAME) SCHEMA(MALL)
INSTROOT(/QIBM/UserData/WebCommerce/instances/mser) PASSWD(mypassword)
INFILE(input.xml) OUTFILE(output.xml) METHOD(*UPD)
混合メソッド: 入力データ・ファイルが、 データベースにすでに存在するレコードと新規のレコードを含んでいる場合は、 混合メソッドを使用して ID リゾルバーを実行する必要があります。 このメソッドでは、ID リゾルバーは、 レコードがデータベースに存在しない場合にのみレコードの新規 ID を作成します。 レコードがデータベースに存在する場合は、データベースから既存の ID が取得されます。 以下の例は、新規データの ID を生成し、 データベースにすでに存在するデータの ID を見付けるために使用します。
![]()
![]()
![]()
![]()
![]()
idresgen -dbname db -dbuser user -dbpwd pwd -infile input.xml
-outfile output.xml -method mixed -customizer customizer
![]()
QWEBCOMM/RESWCSID DATABASE(DATABASE_NAME) SCHEMA(MALL)
INSTROOT(/QIBM/UserData/WebCommerce/instances/mser) PASSWD(mypassword)
INFILE(input.xml) OUTFILE(output.xml) METHOD(*MIX)
トラブルシューティングのヒント
ID の解決中にエラーが発生する場合、以下の表を参照してください。
エラー | 使用されるメソッド | 考えられる原因 | 可能な解決方法 | |
未解決 (1 次キー) |
All | ID リゾルバーは、KEYS または SUBKEYS テーブルのどちらにも指定されて いないテーブル中の 1 次キー (ID) を解決しません。 | ID リゾルバーの実行前に、 1 次キーが解決される対象のテーブルの名前を、SUBKEYS テーブルに追加します。 | |
更新 | 1 次キーは、データベースを照会することによって解決されます。 データベース照会は、プロパティー・ファイルのエントリー情報または 指定されたテーブル用の固有索引のどちらかを使用することによって生成されます。 プロパティー・ファイルのエントリーが優先されます。 | 入力ファイル中の固有索引情報が正しいことを確認してください。
プロパティー・ファイルで適切なエントリーを作成または変更し、 適切なデータベース照会を生成して 1 次キーを解決することもできます。 |
||
未解決 (外部キー) |
All | ID リゾルバーは、 外部参照が KEYS または SUBKEYS テーブルのどちらにも指定されて いないテーブルに対するものである場合、 そのテーブルで外部キーを解決しません。 | ID リゾルバーの実行前に、
SUBKEYS テーブルに、参照されるテーブルの名前を追加します。
さらに、外部キー関係が、データベース・スキーマに存在することを確認してください。 |
|
外部キーは、 内部別名を使用するか、またはデータベースを照会することによって解決されます。 データベース照会は、内部別名が外部キーの解決に失敗した場合のみ作成されます。 | 内部別名は、1 次キーの使用、 およびプロパティー・ファイルのエントリーの使用によって生成されます。 | 入力ファイル中のソースおよび宛先として使用される 内部別名値が正しいことを確認してください。 | ||
データベース照会は、プロパティー・ファイルのエントリー情報または 指定されたテーブル用の固有索引のどちらかを使用することによって生成されます。 プロパティー・ファイルのエントリーが優先されます。 | 入力ファイル中の固有索引情報が正しいことを確認してください。
プロパティー・ファイルで適切なエントリーを作成または変更し、 適切なデータベース照会を生成して 1 次キーを解決することもできます。 |
![]() |