レプリケーションの手引きおよび解説書

収集プログラムおよび変更適用プログラム (AS/400 版)

この章では、 DB2 DataPropagator (AS/400 版) バージョン 7 の収集および変更適用プログラムのセットアップおよび操作方法について説明します。

収集および変更適用プログラム (AS/400 版) の操作に関する項を読む前に、 以下の項をお読みください。


共存に関する考慮事項

DB2 DataPropagator (AS/400 版) のバージョン 1 はバージョン 7 と同時に実行することができません。 現在バージョン 1 を使用しているか、バージョン 1 の複製構成要素をバージョン 5 の DB2 DataPropagator (AS/400 版) 環境で使用する場合は、 以下のいずれかを行う必要があります。

すべての複製管理作業で DJRA を使用する必要があります。 ただし、DJRA および DB2 コントロール・センターは両方とも、 複製ソースとサブスクリプション・セットを定義する基本複製管理機能を装備しています。 DJRA だけが、リモート・ジャーナルおよび基本キーとしての相対レコード番号 (RRN) の使用をサポートしています。


収集および変更適用プログラムのセットアップ

収集および変更適用プログラムのセットアップは、DB2 DataPropagator (AS/400 版) をインストールして、 最も生産的に動作するよう収集プログラムを調整することから構成されます。 ここでは、収集および変更適用プログラムのセットアップ方法について説明します。

DB2 DataPropagator (AS/400 版) のインストール

DB2 DataPropagator (AS/400 版) のインストールは、他のライセンス・プログラムと同じ方法で行います。 通常は、以下のステップに従ってインストールします。

  1. AS/400 のコマンド行で GO LICPGM と入力します。
  2. オプション 11 (ライセンス・プログラムのインストール) を選択します。
  3. ページをスクロールして、「DataPropagator Relational (AS/400 版) (5769DP3) (DataPropagator Relational for AS/400 (5769DP3))」 を見つけます。

    このウィンドウのインストール画面にプロダクト ID 番号 (5769DP3) が含まれていない場合、 AS/400 コマンド行で LICPGM を終了して RSTLICPGM と入力し、 5769DP3 をプロダクト ID に指定します。

    このウィンドウに ID 番号が含まれていれば、その番号の次に 1 と入力して、 Enter (実行) キーを押します。

AS/400 サーバーへの接続

DB2 (Windows NT 版) または DB2 (Windows 95 オペレーティング環境) クライアントから AS/400 サーバーに接続するには、 その前にワークステーションが正しく設定されているかどうか確認する必要があります。

たとえば、 AS/400 サーバーから DB2 (Windows NT 版) ワークステーションに接続するには、 以下のステップを使用してください。

  1. AS/400 サーバーにログオンして、 リレーショナル・データベースを探します。
    1. 接続先となる AS/400 サーバーにログオンします。
    2. dsprdbdire コマンドを実行依頼してから、 *LOCAL に local と指定します。
    3. 出力の中から、リレーショナル・データベースの名前を探します。 たとえば、以下の出力では、データベースの名前は DB2400E です。
               MYDBOS2             9.112.14.67    
               RCHASDPD            RCHASDPD       
               DB2400E             *LOCAL         
               RCHASLJN            RCHASLJN       
      
  2. DB2 (Windows NT 版) に AS/400 データベースをカタログ化します。
    1. Windows NT ワークステーションで、 「スタート」 ->「プログラム」 ->「DB2 (Windows NT 版) (DB2 for Windows NT)」 ->「コマンド・ウィンドウ (Command Window)」をクリックします。 DB2 CLP コマンド・ウィンドウが開きます。
    2. コマンド・ウィンドウで、 以下の 3 つのコマンドを正確な順序で入力します。
      db2 catalog tcpip node server_name remote server_name server 446 system 
      server_name ostype OS400 
      db2 catalog dcs database rdb_name AS rdb_name   
      db2 catalog database rdb_name AS rdb_name at node server_name 
      authentication dcs
      

      ここで、server_name は AS/400 システムの TCP/IP ホスト名で、 rdb_name1で説明されている AS/400 リレーショナル・データベースの名前です。

  3. コマンド・ウィンドウで、以下のコマンドを発行します。
    db2 terminate
    
  4. AS/400 システムにログオンするために使用する AS/400 ユーザー・プロファイルが CCSID37 を使用していることを確認します。
    1. AS/400 システムにログオンします。
    2. 以下のコマンドを入力します。ここで、 user はユーザー・プロファイルです。
      CHGUSRPRF USRPRF (user) CCSID(37)
      
    3. DB2 (Windows NT 版) および DB2 (AS/400 版) が接続されていることを確認するには、 以下のコマンドを発行します。
      db2 connect to rdb_name user user_name using password
      
  5. 次のように入力して、 DDM サーバーが AS/400 システムで始動していることを確認します。
    STRTCPSVR SERVER(*DDM)
    
  6. Windows NT ワークステーションで、 コントロール・センターまたは DJRA を使用して、AS/400 データベースを管理します。

DB2 DataPropagator (AS/400 版) のインストールの検査とカスタマイズ

インストールのプロセスで CRTDPRTBL コマンドが発行され、 自動的に複製制御表が作成されるため、複製管理ツールを使用する前に DB2 DataPropagator (AS/400 版) をインストールする必要があります。 これらの表は、まだ作成されていなければ、DataPropagator Relational の集合 (名前付き ASN) に作成されます。

インストール・プログラムは、このライブラリーの SQL ジャーナル、 ジャーナル・レシーバー、および実行管理機能オブジェクトも作成します。 表 8 で、作成される実行管理機能オブジェクトをリストします。

表 8. 実行管理機能オブジェクト
説明 オブジェクト・タイプ 名前
サブシステム記述 *SBSD QDPR/QZSNDPR
ジョブ待ち行列 *JOBQ QDPR/QZSNDPR
ジョブ記述 *JOBD QDPR/QZSNDPR

実行管理機能に関する注意事項: デフォルトの定義を変更するか、 または独自の定義を提供することができます。 これらの定義の変更について詳しくは、AS/400e シリーズ 実行管理の手引き V4 (SD88-5009) を参照してください。

複製制御表の作成

事故で複製制御表が削除されたり破壊されたりする場合、 DPR 表の作成 (CRTDPRTBL) コマンドを使用して、 手動でその表を作成することができます。 このコマンドを実行するための *ALLOBJ 権限を所有している必要があります。

重要: CRTDPRTBL コマンドは、 AS/400 の制御表を作成するために使用できる唯一のコマンドです。 DJRA を使用して、制御表を作成しないでください。

>>-CRTDPRTBL----+----------------------+-----------------------><
                |          .-7--.      |
                '-DPRVSN(--+-5--+---)--'
 

表 9. CRTDPRTBL コマンド・パラメーター定義 (AS/400 用)
パラメーター 定義およびプロンプト
DPRVSN 作成する制御表のバージョンを指定します。

7 (デフォルト)
バージョン 7 制御表を指定します。 システムは、デフォルトの SQL ジャーナルと一緒に、 複製ソースおよびターゲット用のすべての制御表を作成します。

5
バージョン 5 制御表を指定します。

収集プログラム (AS/400 版) のチューニング・パラメーターの指定

収集プログラムのパフォーマンスを制御するため、 チューニング・パラメーター表にある列の値を変更して、 サーバー上の 4 つのチューニング・パラメーターを調整することができます。

チューニング・パラメーターを指定するには、以下の作業のいずれかを行います。

収集プログラムの属性の変更

DPR 収集属性の変更 (CHGDPRCAPA) コマンドは、 収集プログラムのチューニング・パラメーター表にあるグローバル・オペレーティング・パラメーターを変更します。

F4 キーで CHGDPRCAPA コマンドを発行すると、 収集プログラム属性の現在の値が表示されます。

>>-CHGDPRCAPA----+---------------------------+------------------>
                 '-RETAIN(--+-*SAME---+---)--'
                            '-minutes-'
 
>-----+------------------------+-------------------------------->
      '-LAG(--+-*SAME---+---)--'
              '-minutes-'
 
>-----+---------------------------+----------------------------->
      '-FRCFRQ(--+-*SAME---+---)--'
                 '-seconds-'
 
>-----+---------------------------+----------------------------><
      '-CLNUPITV(--+-*SAME-+---)--'
                   '-1-100-'
 

表 10. CHGDPRCAPA コマンド・パラメーター定義 (AS/400 用)
パラメーター 定義およびプロンプト
RETAIN 新規の保存限度 (データが削除される前に CD 表と UOW 表に保存される時間) を分で指定します。

このパラメーターの値は、CLNUPITV パラメーターと一緒に動作します。 CLNUPITV 値が限界に達した時に、 UOW 表の行が、トランザクションがこのパラメーターの値より古いということを示していると、 CD および UOW 表にあるデータは削除されます。

RETAIN パラメーターの値が限界に達する前に、変更された情報をコピーするよう変更適用間隔を設定してください。 こうすると、表が不整合になるのを避けることができます。 表が不整合になると、変更適用プログラムは全最新表示を実行します。

*SAME (デフォルト)
値が変更されないままでいるよう指定します。

minutes
CD が保存される時間を分で指定します。 最大値は、35 000 000 です。 デフォルト値は、10 080 分 (7 日) です。
LAG 新規の遅延限度 (CD 表が消去されてキャプチャーの変更を初めからやり直す前に、 収集プログラムが遅れることのできる時間) を分で指定します。 遅れが限界に達すると (つまり、ジャーナル項目のタイム・スタンプが、 現在の時間から遅れの限界を引いたものより古くなると)、 収集プログラムは追いつくことができないほど遅れてしまったとみなします。 その後、収集プログラムは、 そのプログラムがジャーナルを処理している表のコールド・スタートを開始します。 それから、変更適用プログラムは全最新表示を実行して、 新しい開始点が付いた収集プログラムを提供します。 通常この値は、影響がまったくないので高めに設定します。

*SAME (デフォルト)
値が変更されないままでいるよう指定します。

minutes
CD 項目の遅れが許容される時間を分で指定します。 最大値は、 35 000 000 です。 デフォルト値は、10 080 分 (7 日) です。
FRCFRQ 収集プログラムが CD および UOW 表に変更を書き込む大体の頻度を指定します。

収集プログラムは、バッファーに空きがなくなったときか、 この時間が満了したときのいずれかに (いずれにしても早急に)、 変更適用プログラムが利用可能な変更を行います。

このパラメーターは、ソース表の変更比率を低めに抑えながら、 サーバー上の変更適用プログラムがすぐに利用できる変更をソース表に加えるために使用します。

これはグローバル値であり、すべての定義済みソース表で使用されます。 この値を低めに設定すると、プロセッサーの使用に影響を与える場合があります。

*SAME (デフォルト)
値が変更されないままでいるよう指定します。

seconds
収集プログラムが、CD 表および UOW 表の変更を、 変更適用プログラムが使用できるようにする前に、 バッファー・スペースに保持しておく時間を秒で指定します。 この値の範囲は、30〜600 秒にすることができます。 デフォルト値は 180 秒です。
CLNUPITV 収集プログラムが CD 表と UOW 表からの古いレコード (存在していれば) を枝取りするまでの時間の最大長を指定します。 このパラメーターは、RETAIN パラメーターと一緒に動作します。

このパラメーターの値は、時間から秒に変換され、 チューニング・パラメーター表の PRUNE_INTERVAL 列に保管されます。 PRUNE_INTERVAL 列が (CHGDPRCAPA コマンドを使用せずに) 手動で変更される場合、 F4 キーを使ってプロンプトを出すとき、丸めるために変更が表示される場合があります。

*SAME (デフォルト)
値が変更されないままでいるよう指定します。

1-100
枝取りする前に収集プログラムを待機させる時間の最大数を指定します。 有効な値は、1〜100 です。


収集および変更適用プログラムを実行する許可要件

ここでは、複製制御表に対する権限を授与したり取り消したりするのに使用できるコマンドについて説明します。権限の授与および 権限の取り消し

権限の授与

DPR 権限の授与 (GRTDPRAUT) コマンドは、 ユーザーが収集および変更適用プログラムを実行できるように、 複製制御表に対するユーザーのリストを許可します。 たとえば、収集および変更適用プログラムを実行しているユーザーの許可要件が、 複製ソースおよびターゲットを定義するユーザーの許可要件とは異なる場合があります。

権限を授与するための *ALLOBJ 権限を所有している必要があります。

>>-GRTDPRAUT---USER(--+---user-name---+---)--------------------->
                      '-*PUBLIC-------'
 
                                          .-7--.
>----AUT(--+-*REGISTRAR--+---)---DPRVSN(--+-5--+---)------------>
           +-*SUBSCRIBER-+
           +-*CAPTURE----+
           '-*APPLY------'
 
               .-*ALL------------.
>----APYQUAL(--+-*USER-----------+---)-------------------------><
               '-apply-qualifier-'
 

表 11. GRTDPRAUT コマンド・パラメーター定義 (AS/400 用)
パラメーター 定義およびプロンプト
USER 権限を所有するユーザーを指定します。

user-name
権限を所有するユーザーの名前を最大 50 まで指定します。

*PUBLIC
*PUBLIC をファイルに対して権限を授与するよう指定しますが、 (その権限が作業を行う上で不十分な場合には) 特定の権限を所有していないユーザー、 ファイルに関連付けられた許可リストにないユーザー、 およびグループ・プロファイルが権限を所有していないユーザーにのみ、 その権限が使用されます。
AUT 授与されている権限のタイプを指定します。

*REGISTRAR (デフォルト)
ユーザーが、サブスクリプション・セットを定義、変更、 および消去するための権限を授与されるよう指定します。

AUT(*REGISTRAR) 付き権限の完全なリストについては、 表 12 を参照してください。

*SUBSCRIBER
ユーザーが、サブスクリプション・セットを定義、変更、 および消去するための権限を授与されるよう指定します。

AUT(*SUBSCRIBER) 付き権限の完全なリストについては、 表 13 を参照してください。

*CAPTURE
ユーザーが、収集プログラムを実行するための権限を授与されるよう指定します。

AUT(*CAPTURE) を授与された権限の完全なリストについては、表 14 を参照してください。

*APPLY
ユーザーが、変更適用プログラムを実行するための権限を授与されるよう指定します。

このコマンドは、変更適用プログラムがアクセスする他のデータベースにあるオブジェクトに権限を授与することはありません。

変更適用処理が起動されるとき、 DRDA アプリケーション・サーバーのジョブに関連するユーザーは、 *APPLY 権限も授与されている必要があります。 ソースが AS/400 サーバーの場合、 USER パラメーターで指定されたアプリケーション・サーバー・ジョブのユーザーと、 APYQUAL パラメーターで指定された変更適用修飾子を指定したソース・サーバー・システムで、 GRTDPRAUT コマンドを実行する必要があります。

ターゲット・サーバーが制御サーバーと同じで、 その両方がコマンドが実行されるシステムに常駐していない場合、 権限がターゲット表に授与されることはありません。

AUT(*APPLY) を授与された権限の完全なリストについては、 表 15 を参照してください。

DPRVSN DB2 DataPropagator (AS/400 版) のバージョンを指定します。

7 (デフォルト)
DB2 DataPropagator (AS/400 版) のバージョン 7 を指定します。

5
DB2 DataPropagator (AS/400 版) のバージョン 5 を指定します。
APYQUAL USER パラメーターを同時に指定したユーザーによって使われる変更適用修飾子を指定します。 このパラメーターは、AUT(*APPLY) または AUT(*SUBSCRIBER) が指定されるときだけ使われます。

*ALL (デフォルト)
変更適用プログラムを実行したり、 すべての 変更適用修飾子のサブスクリプションを定義および削除したりするための権限が、 ユーザーに授与されるように指定します。

*USER
USER パラメーターで指定したユーザーが、 ユーザー名と同じ変更適用修飾子が付いたサブスクリプションに対する権限を授与されるように指定します。

apply-qualifier
変更適用プログラムを実行したり、 この変更適用修飾子に関連付けられた変更適用修飾子のサブスクリプションを定義および削除したりするための権限を、 ユーザーが授与されるように指定します。
  • ユーザーは、APYQUAL パラメーターを指定して入力された値と一致する APPLY_QUAL 列の中に値がある枝取り制御表のレコードに関連付けられているすべての複製ソース、 CD 表、および CCD 表に対する権限を授与されます。
  • このシステムに常駐するサブスクリプション・ターゲット・メンバー表にリストされたサブスクリプション・リストに対する権限が、 ユーザーに授与されます。

使用中のファイルでは権限を変更できないため、 収集プログラムまたは変更適用プログラムの実行中や、 ソース表を使用するアプリケーションが活動状態のときは、 GRTDPRAUT コマンドを使用することはできません。

例 1

複製ソースの定義および変更を行う権限をユーザー USER1 に与えるには:

GRTDPRAUT USER(USER1) AUT(*REGISTRAR) DPRVSN(7)

例 2

サブスクリプションの定義および変更を行う権限をユーザー USER1 に与えるには:

GRTDPRAUT USER(USER1) AUT(*SUBSCRIBER) DPRVSN(7)

例 3

変更適用修飾子 A1 に関連付けられた既存のサブスクリプションの定義および変更を行う権限を、 ユーザー USER1 に与えるには:

GRTDPRAUT USER(USER1) AUT(*SUBSCRIBER) DPRVSN(7) APYQUAL(A1)

例 4

ターゲット・サーバーと制御サーバーが同じであるという条件で、 変更適用修飾子 A1 に関連付けられたすべてのサブスクリプションの制御サーバー・システム上にある変更適用プログラムを実行するための権限をユーザーに与えるには:

  1. 変更適用プログラムが稼働するシステムで、以下のコマンドを実行します。
    GRTDPRAUT USER(USER1) AUT(*APPLY) DPRVSN(7) APYQUAL(A1)
    
  2. 変更適用プログラムによって使われるソース・サーバーのアプリケーション・サーバー・ジョブが、 ユーザー・プロファイル USER1 の下で実行される場合、ソース・サーバー・システムで以下のコマンドを実行します。
    GRTDPRAUT USER(USER1) AUT(*APPLY) DPRVSN(7) APYQUAL(A1)
    

    変更適用プログラムによって使われるソース・サーバーのアプリケーション・サーバー・ジョブが、 別のユーザー・プロファイル (たとえば、QUSER) の下で実行される場合には、 ソース・サーバー・システムで以下のコマンドを実行します。

    GRTDPRAUT USER(QUSER) AUT(*APPLY) DPRVSN(7) APYQUAL(A1)
    

権限のレベル

以下の表では、

を、GRTDPRAUT コマンドに対して指定すると授与される権限をリストします。

以下の表では、GRTDPRAUT コマンドに対して AUT(*REGISTRAR) を指定すると授与される権限をリストします。

表 12. GRTDPRAUT AUT(*REGISTRAR) を指定して授与される権限
ライブラリー オブジェクト 種類 バージョン 権限
QSYS ASN *LIB 5 7 *USE、 *ADD
ASN QSQJRN *JRN 5 7 *OBJOPR、 *OBJMGT
ASN IBMSNAP_REGISTER *FILE 7 *OBJOPR、 *READ、 *ADD、 *UPD、 *DLT
ASN IBMSNAP_REGISTERX *FILE 7 *OBJOPR、 *READ、 *ADD、 *UPD、 *DLT
ASN IBMSNAP_REG_EXT *FILE 5 7 *OBJOPR、 *OBJMGT、 *READ、 *ADD、 *UPD、 *DLT
ASN IBMSNAP_REG_EXTX *FILE 5 7 *OBJOPR、 *OBJMGT、 *READ、 *ADD、 *UPD、 *DLT
ASN IBMSNAP_UOW *FILE 5 7 *OBJOPR、 *OBJMGT、 *READ、 *ADD、 *DLT
ASN IBMSNAP_UOW_IDX *FILE 5 7 *OBJOPR、 *OBJMGT、 *READ、 *ADD、 *DLT
ASN IBMSNAP_PRUNCNTL *FILE 7 *OBJOPR、 *READ
ASN IBMSNAP_CCPPARMS *FILE 5 7 *OBJOPR、 *READ、 *UPD
ASN QZSNCTLBLK *USRSPC 5 7 *CHANGE
ASN ASN4B* *SQLPKG 7 *USE
ASN ASN4C* *SQLPKG 7 *USE
QSYS ソース・ライブラリー *LIB 5 7 *USE
ソース・ライブラリー ソース表 *FILE 5 7 *OBJOPR、 *READ
QSYS 制御ライブラリー *LIB 5 7 *USE、 *ADD
制御ライブラリー CDtimestamp - CD 表 *FILE 7 *USE、 *OBJMGT、 *OBJEXIST

以下の表では、GRTDPRAUT コマンドに対して AUT(*SUBSCRIBER) を指定すると授与される権限をリストします。

表 13. GRTDPRAUT AUT(*SUBSCRIBER) を指定して授与される権限
ライブラリー オブジェクト 種類 バージョン 権限
QSYS ASN *LIB 7 *USE、 *ADD
QSYS IBMSNAP_SUBS_SET *FILE 7 *CHANGE
ASN IBMSNAP_APPLYTRAIL *FILE 7 *CHANGE
ASN IBMSNAP_SUBS_COL *FILE 7 *CHANGE
ASN IBMSNAP_SUBS_EVENT *FILE 7 *CHANGE
ASN IBMSNAP_SUBS_STMTS *FILE 7 *CHANGE
ASN IBMSNAP_SUBS_MEMBR *FILE 7 *CHANGE
ASN IBMSNAP_REGISTER *FILE 7 *USE、*UPD
ASN IBMSNAP_REG_EXT *FILE 5 7 *USE、*UPD
ASN IBMSNAP_PRUNCNTL *FILE 7 *USE、 *ADD、 *DLT
ASN ASN4U* *SQLPKG 7 *USE
ASN ASN4A* *SQLPKG 7 *USE
QSYS ソース・ライブラリー *LIB 5 7 *USE
ソース・ライブラリー ソース表 *FILE 5 7 *OBJOPR、 *READ
QSYS 制御ライブラリー *LIB 7 *USE
制御ライブラリー ASNtimestampPC - 枝取り制御表 *LIB 7 *USE
制御ライブラリー CD 表 *FILE 5 7 *OBJOPR、 *READ
制御ライブラリー 内部 CCD 表 *FILE 5 7 *OBJOPR、 *READ
QSYS ターゲット・ ライブラリー *LIB 7 *USE、 *ADD
ターゲット・ ライブラリー ターゲット表 *FILE 7 *USE、 *OBJMGT、 *OBJEXIST

以下の表では、GRTDPRAUT コマンドに対して AUT(*CAPTURE) を指定すると授与される権限をリストします。

表 14. GRTDPRAUT AUT(*CAPTURE) を指定して授与される権限
ライブラリー オブジェクト 種類 バージョン 権限
QSYS ASN *LIB 5 7 *USE、 *OBJMGT
ASN IBMSNAP_REGISTER *FILE 5 7 *USE、*UPD
ASN IBMSNAP_REG_EXT *FILE 5 7 *USE、*UPD
QSYS 制御ライブラリー *LIB 5 7 *USE
制御ライブラリー CD 表 *FILE 5 7 *OBJOPR、 *OBJMGT、 *READ、 *UPD、 *DLT、 *ADD
制御ライブラリー CD 表 *FILE 5 7 *OBJOPR、 *OBJMGT、 *READ、 *UPD、 *DLT、 *ADD
ASN IBMSNAP_PRUNCNTL *FILE 7 *USE、*UPD
ASN IBMSNAP_CRITSEC *FILE 7 *USE
ASN IBMSNAP_CCPPARMS *FILE 5 7 *USE
ASN IBMSNAP_UOW *FILE 5 7 *CHANGE
ASN IBMSNAP_TRACE *FILE 7 *CHANGE
ASN IBMSNAP_WARM_START *FILE 7 *CHANGE
ASN IBMSNAP_AUTHTKN *FILE 7 *CHANGE
ASN QZSBCTKBLK *USRSPC 5 7 *CHANGE
ASN ASNB* SQLPKG 7 *USE
ASN ASNC* SQLPKG 7 *USE

以下の表では、GRTDPRAUT コマンドに対して AUT(*APPLY) を指定すると授与される権限をリストします。

表 15. GRTDPRAUT AUT(*APPLY) を指定して授与される権限
ライブラリー オブジェクト 種類 バージョン 権限
QSYS ASN *LIB 5 7 *USE
ASN IBMSNAP_SUBS_SET *FILE 7 *CHANGE
ASN IBMSNAP_APPLYTRAIL *FILE 7 *CHANGE
ASN IBMSNAP_SUBS_COLS *FILE 7 *USE
ASN IBMSNAP_SUBS_EVENT *FILE 7 *USE
ASN IBMSNAP_SUBS_STMTS *FILE 7 *USE
ASN IBMSNAP_SUBS_MEMBR *FILE 7 *USE
ASN ASNA* *SQLPKG 7 *USE
ASN ASNU* *SQLPKG 7 *USE
ASN IBMSNAP_REGISTER *FILE 7 *USE、*UPD
ASN IBMSNAP_REG_EXT *FILE 5 7 *USE、*UPD
ASN IBMSNAP_UOW *FILE 5 7 *USE、*UPD
ASN IBMSNAP_PRUNCNTL *FILE 7 *USE、 *UPD、 *ADD
ASN IBMSNAP_CRITSEC *FILE 7 *USE、 *ADD
ASN IBMSNAP_AUTHTKN *FILE 7 *USE、 *ADD
QSYS 制御ライブラリー *LIB 5 7 *USE
制御ライブラリー CD 表 *FILE 5 7 *USE
QSYS ターゲット・ ライブラリー *LIB 7 *USE
ターゲット・ ライブラリー ターゲット表 *FILE 7 *CHANGE、 *OBJMGT

権限の取り消し

DPR 権限の取り消し (RVKDPRAUT) コマンドは、 ユーザーが複製ソースおよびサブスクリプションを定義または変更を行うことができないようにするため、 複製制御表に対する権限を取り消します。

                        .----------------.
                        V                |                  .-7--.
>>-RVKDPRAUT--USER(--+------user-name----+-+---)---DPRVSN(--+-5--+---)-->
                     '-*PUBLIC-------------'
 
>--------------------------------------------------------------><
 

以下のいずれかの状態が生じると、このコマンドはエラー・メッセージを戻します。


表 16. RVKDPRAUT コマンド・パラメーター定義 (AS/400 用)
パラメーター 定義およびプロンプト
USER 権限が取り消されるユーザーを指定します。

user-name
権限が取り消されるユーザーの名前を最大 50 まで指定します。

*PUBLIC
特定の権限を所有していないすべてのユーザー、 許可リストにないすべてのユーザー、 およびグループ・プロファイルが権限を所有していないすべてのユーザーから、 権限を取り消すように指定します。
DPRVSN DB2 DataPropagator (AS/400 版) のバージョンを指定します。

7 (デフォルト)
DB2 DataPropagator (AS/400 版) のバージョン 7 の権限を取り消します。

5
DB2 DataPropagator (AS/400 版) のバージョン 5 の権限を取り消します。

制御表に対する権限を取り消すには:

RVKDPRAUT USER(user-name) DPRVSN(7)

収集プログラムの実行時の制約

収集ジャーナル・ジョブの実行中に、以下の処理のいずれかを行うと、 その処理はメッセージ ASN2301 または ASN2201 をジョブ・ログに添付して終了します。

収集プログラムが実行し続けるようにするには、 以下に示すガイドラインをご使用ください。

特定のソース表のデータの収集ができなくなるような状態が生じる場合、 収集プログラムは、ソース表の状態を変更収集から最新表示が必要な状態に変更します。 (そうした状態のリストについては、表 20 を参照。) ソース表のデータの収集を妨げる他の条件については、以下のとおりです。


ジャーナル

DB2 DataPropagator (AS/400 版) は、データに対する変更についてジャーナルから受け取る情報を使用することによって、 複製のための CDおよび UOW 表にデータを入れます。

DB2 DataPropagator (AS/400 版) は、大部分の操作のコミットメント制御下で実行するため、 制御表のジャーナリングを必要とします。(QSQJRN ジャーナルは、 CRTDPRTBL コマンドが集合を作成するときに作成されます。)

管理者は、複製ソース制御表を含むライブラリーとターゲット表を含むライブラリーの両方に、 QSQJRN ジャーナルを手動で作成する必要があります。 管理者には、すべてのソース表のジャーナル処理が正しく行われるのを見届ける責任もあります。

リモート・ジャーナル機能

DB2 DataPropagator (AS/400 版) の以前のバージョンでは、複製ソースの定義 (ソースに関連付けられている制御表を含む) と収集プログラムとは、 常に同じシステムにありました。 リモート・ジャーナル機能を使うと、 大部分のリソースを元のシステムで使用できるようにしたまま、 ソース表が存在するシステムとは別のシステムに、 複製ソース定義と収集プログラムおよびその制御表を移動することが可能になります。 リモート・ジャーナル機能を使うと、プロセッサーの使用量を減らしたり、 DASD を節約したり、パフォーマンスをかなり向上させたりすることができます。

重要: こうした種類のセットアップを行う目的は、 複製ソース定義と複製ソース・ターゲットが、同じ AS/400 システムにあるようにすることです。

離れたシステムのソース表を参照する複製ソース定義は、 変更適用プログラム (OS/390 版) や変更適用プログラム (UNIX 版) などの他のプラットフォームによってサブスクリプションすることはできません。

リモート・ジャーナルを使って複製ソースを定義するには、 DJRA のメイン・ウィンドウから「複製ソースとして 1 つの表を定義 (Define One Table as a Replication Source)」を選択して、 AS/400 ソース表を選択し、 それから「AS/400 ポリシー (AS/400 policies)」を選択します。 このタブから、「リモート・ジャーナル (remote journal)」チェック・ボックスを選択して、 リモート・ジャーナルのライブラリー、リモート・ジャーナル名、 および収集サーバーを入力します。

リモート・ジャーナル機能については、AS/400 Remote Journal Function for High Availability and Data Replication (SG24-5189) を参照してください。

ソース表用ジャーナルの作成

ソース表のジャーナルをセットアップするには、 ソース表のジャーナルおよびジャーナル・レシーバーを定義するために作成する権限を所有している必要があります。

重要: DB2 DataPropagator (AS/400 版) (QSQJRN ジャーナル) によって、 ASN ジャーナル、ソース・ライブラリー、制御ライブラリー、 またはターゲット・ライブラリーに作成されたソース表以外のソース表のジャーナルを使用します。

ソース表のジャーナルを作成するには:

  1. ジャーナル・レシーバーの作成 (CRTJRNRCV) コマンドを使用して、 選択したライブラリーにジャーナル・レシーバーを作成します。 以下の例では、ジャーナル・レシーバー用に JRNLIB という名前のライブラリーを使用します。

    CRTJRNRCV  JRNRCV(JRNLIB/RCV0001)
               THRESHOLD(50000)
               TEXT('DataPropagator Journal Receiver')
    

    以下のことを確実に実行するようにします。

  2. ジャーナルの作成 (CRTJRN) コマンドを使用して、 ジャーナルを作成します。

    CRTJRN  JRN(JRNLIB/DJRN1)
            JRNRCV(JRNLIB/RCV0001)
            MNGRCV(*SYSTEM) DLTRCV(*YES)
            TEXT('DataPropagator Journal')
    

    以下のことを確実に実行するようにします。

    CRTJRN コマンドの RCVSIZOPT パラメーターに 2 つの値 (*RMVINTENT および *MINFIXLEN) を使用して、 記憶域の可用性やシステム・パフォーマンスを最適化することができます。 詳しくは、 AS/400 プログラミング: パフォーマンス・ツールの手引き を参照してください。

  3. 以下の例で示す方法で、物理ファイルのジャーナル開始 (STRJRNPF) コマンドを使って、ソース表のジャーナリングを開始します。

    STRJRNPF FILE(library/file)
             JRN(JRNLIB/DJRN1)
             OMTJRNE(*OPNCLO)
             IMAGES(*BOTH)
    
    ステップ 2 で作成したジャーナルの名前を指定します。 収集プログラムには、IMAGES パラメーターの *BOTH という値が必要です。

ジャーナルおよびジャーナル・レシーバーの管理

収集プログラムは、ジャーナル項目の受信 (RCVJRNE) コマンドを使って、ジャーナルを受信します。

ジャーナル・レシーバーのシステム管理の指定

AS/400 システム管理にジャーナル・レシーバーの変更を依頼なさるようお勧めします。 これは、システム変更ジャーナル管理 と呼ばれています。 ジャーナルを作成するとき、またはジャーナルをその値に変更するとき、 MNGRCV(*SYSTEM) を指定してください。 システム変更ジャーナル管理を使用する場合、 システムに変更させるジャーナル・レシーバーの限界値を指定するジャーナル・レシーバーを作成する必要があります。 この限界値は、最低でも 5000 KB にし、 システムでのトランザクションの数に基づいて決定する必要があります。 システムは、レシーバーが限界値のサイズに達して、 新しいジャーナル・レシーバーが作成および付加されると (可能な場合)、 そのレシーバーを自動的に切り離します。

ジャーナル・レシーバーのユーザー管理の指定

ジャーナルの作成時に MNGRCV(*USER) を指定すると (独自にジャーナル・レシーバーの変更管理を行いたい場合)、 ジャーナル・レシーバーが記憶域の限界値 (レシーバーに指定した場合) に達すると、 ジャーナルのメッセージ待ち行列にメッセージが送信されます。

CHGJRN コマンドを使用して、 古いジャーナル・レシーバーを切り離し、新しいレシーバーを付加します。 このコマンドを使用すると、ジャーナルされない項目エラー状態を避け、 ジャーナルが使用する記憶域の量を制限することができます。 パフォーマンスに影響がでないようにするため、 システムが最大使用回数に達していないときにこのことを行ってください。

CHGJRN MNGRCV(*SYSTEM) を指定すると、 ジャーナル・レシーバーの管理をシステムが行うよう切り替えることができます。

次の 2 つの理由で、現行のジャーナル・レシーバーを定期的に切り離し、 新しいレシーバーを付加する必要があります。

ジャーナルのデフォルトのメッセージ待ち行列は QSYSOPR です。 QSYSOPR メッセージ待ち行列に大きなボリュームのメッセージがあると、 別のメッセージ待ち行列 (DPRUSRMSG など) とジャーナルを関連付けることができます。 メッセージ処理プログラムを使って、DPRUSRMSG メッセージ待ち行列をモニターすることができます。 ジャーナル・メッセージ待ち行列に送信できるメッセージに関する説明は、AS/400e シリーズ バックアップおよび回復の手引き を参照してください。

削除ジャーナル・レシーバー出口ルーチンの使用

V4R2 (またはそれ以降の) システムに DB2 DataPropagator (AS/400 版) をインストールすると、 削除ジャーナル・レシーバー 出口ルーチン (DLTJRNRCV) が自動的に登録されます。 この出口ルーチンは、ジャーナル・レシーバーが削除されると、 そのレシーバーがソース表のジャーナリングに使用されているかどうかにかかわらず、 常に呼び出されます。 この出口ルーチンは、ジャーナル・レシーバーを削除できるかどうかを決定します。 (このことを手動で行う必要はなくなりました。 ANZDPRJRN コマンドを使って、 古いレシーバーを削除する必要もありません。)

削除ジャーナル・レシーバー出口ルーチンを使用して、ジャーナル管理をシステムに任せるには、 CHGJRN または CRTJRN コマンドに対して DLTRCV(*YES) および MNGRCV(*SYSTEM) を指定します。

レシーバーが関連付けられているジャーナルがどのソース表にも関連付けられていない場合、 この出口ルーチンはレシーバーの削除を承認します

ジャーナル・レシーバーが 1 つかそれ以上のソース表で使われている場合、 この出口ルーチンは、収集プログラムによって処理されなかった項目が、 削除されているレシーバーに含まれていないことを確認します。 収集プログラムがそのレシーバーの項目をさらに処理する必要がある場合には、 出口ルーチンはレシーバーの削除を承認しません

ジャーナル・レシーバーを削除する必要があるのに、 ジャーナル・レシーバー出口ルーチンが削除を承認しない場合には、 DLTJRNRCV DLTOPT(*IGNEXITPGM) を指定して、その出口ルーチンを上書きします。

削除ジャーナル・レシーバー出口ルーチンの削除

ジャーナル・レシーバーの削除を手動で処理したい場合、以下のコマンドを発行して、 削除ジャーナル・レシーバー出口ルーチンを削除することができます。

RMVEXITPGM EXITPNT (QIBM_QJO_DLT_JRNRCV)
           FORMAT(DRVC0100)
           PGMNBR(value)

RMVEXITPGM の PGMNBR 値を決定するには:

  1. WRKREGINF コマンドを発行します。
  2. 「登録情報を使用した作業 (Work with Registration Information)」ウィンドウで、 出口点の項目 QIBM_QJO_DLT_JRNRCV を検索します。 「Opt」フィールドに 8 と入力します。
  3. 「出口プログラムを使用した作業 (Work with Exit Programs)」ウィンドウで、ライブラリー QDPRにある出口プログラムの項目 QZSNDREP を検索します。 必要な数値は、出口プログラム番号のヘッダーの下にあります。

アップグレードされたシステムの削除ジャーナル・レシーバー出口ルーチンの登録

DB2 DataPropagator (AS/400 版) の 5769DP3 バージョンが V4R1 にインストールされ、 プロダクトを再インストールせずに、 オペレーティング・システムが V4R2 または V4R3 にアップグレードされた場合、 以下のコマンドを使って出口ルーチンを登録する必要があります。

ADDEXITPGM EXITPNT(QIBM_QJO_DLT_JRNRCV)
           FORMAT(DRCV0100)
           PGMNBR(value *LOW)
           CRTEXITPNT(*NO)
           PGM(QDPR/QZSNDREP)

複製ソースおよびサブスクリプション・セットの定義

DB2 DataPropagator (AS/400 版) で複製ソースとしてソース表を定義するには、 その前に制御表に対する権限を所有している必要があります。

複製ソースおよびサブスクリプション・セットを定義する DB2 DataPropagator (AS/400 版) コマンドはありません。 DB2 DataJoiner 複製管理ツール (DJRA) を使用して、 複製ソースおよびサブスクリプション・セットを定義します。 複製ソースとして表を定義するには、その前にそのソース表が、 変更前イメージおよび変更後イメージにジャーナルされている必要があります。 また、CD 表が作成されるライブラリーに、QSQJRN ジャーナルがなければなりません。

DB2 DataPropagator (AS/400 版) では、複製ソースとして定義する表に入れることができる列の数は約 2000 です。 列の正確な数は、各列の名前の長さによって決まります。 この制限が存在するのは、 変更適用プログラム (AS/400 版) が 32K を超える文字ストリングを提供できないためです。

複製ソースとして表を定義する場合、CD 表の CHAR、 VARCHAR、 GRAPHIC、 および VARGRAPHIC 列の CCSID 属性は、ソース表の CCSID 属性と同じでなければなりません。


基本キーとしての相対レコード番号 (RRN) の使用

DB2 DataPropagator (AS/400 版) では、多くのソース表には、 基本キーの列として識別できる列がありません。 どの更新がどのターゲット表の行に適用されているかを追跡するため、 DB2 DataPropagator は変更適用プログラムの基本キーの列を必要とします。 この必要性を満たすため、DB2 DataPropagator (AS/400 版) では、 ソース表の行の相対レコード番号 (RRN) を基本キーの行として使用することがサポートされています。 CD 表とターゲット表の両方に、INTEGER 型の余分の列 (IBMQSQ_RRN) があります。 この列には、ソース表の行の RRN があります。

ソース表の行の RRN は、ソース表が再編成されなければ変更されないため、 RRN 値は、ソース表が再編成されない限り、基本キーとして使用することができます。 ソース表を (たとえば、削除された行を圧縮するために) 再編成すると、 DB2 DataPropagator (AS/400 版) は必ずすべてのターゲット表の全最新表示を実行します。

重要: RRN 列を含むコピーが AS/400 または他の宛先となる DB2 プラットフォームのどちらにある場合でも、 変更適用プログラム (AS/400 版) だけがこれらのコピーの保守に使うことができます。

RRN 列を使って複製ソースを定義するには、 DJRA のメイン・ウィンドウから「複製ソースとして 1 つの表を定義 (Define One Table as a Replication Source)」を選択して、 AS/400 ソース表を選択し、 それから「AS/400 ポリシー (AS/400 policies)」を選択します。 このタブから、RRN チェック・ボックスを選択します。


収集プログラム (AS/400 版) の操作

複製管理者のユーザー ID および *CAPTURE 権限を授与されているユーザーは、 この部分で示されているコマンドを使用して、 収集プログラム (AS/400 版) の以下の作業を実行することができます。

ここには、ウォーム・スタートおよびコールド・スタートにある、 ウォーム・スタートとコールド・スタートを収集プログラムが処理する方法についての説明もあります。

収集プログラム (AS/400 版) の開始

DPR 収集プログラムの開始 (STRDPRCAP) コマンドを使用して、 AS/400 データベース表への変更の収集を開始することができます。 このコマンドは登録表にあるすべての複製ソースを処理しますので、 このコマンドを実行するユーザーが、適切な権限を所有していることを確認してください。

収集プログラムは、開始すると、オペレーターが停止されるか回復不能エラーが検出されるまで実行を続けます。

>>-STRDPRCAP----+--------------------------+-------------------->
                |           .-*YES--.      |
                '-RESTART(--+-*NO---+---)--'
 
>-----+---------------------------------------------------+----->
      |        .-*LIBL/QZSNDPR---------------------.      |
      '-JOBD(--+-library-name/job-description-name-+---)--'
 
>-----+----------------------+---+----------------------+------->
      |          .-7--.      |   |        .-120--.      |
      '-DPRVSN(--+-5--+---)--'   '-WAIT(--+----+---)--'
 
>-----+--------------------------------------------------+------>
      |            .-*DPRVSN-------.   .-*IMMED---.      |
      '-CLNUPITV(--+-*GLOBAL-------+---+-*DELAYED-+---)--'
                   '-hours-to-wait-'   '-*NO------'
 
>-----+-------------------------------------------------+------->
      |       .-*ALL-----------------------------.      |
      |       |  .-----------------------------. |      |
      |       |  V                             | |      |
      '-JRN(--+----library-name/journal-name---+-+---)--'
 
>-----+--------------------------------+-----------------------><
      |            .-*ALLCHG----.      |
      '-GENCDROW(--+-*REGCOLCHG-+---)--'
 

表 17. STRDPRCAP コマンド・パラメーター定義 (AS/400 用)
パラメーター 定義およびプロンプト
RESTART 収集プログラムがウォーム・スタートとコールド・スタートを処理する方法を指定します。

*YES (デフォルト)
収集プログラムは、以前に終了したときに停止したポイントから変更の処理を継続します。 これは、ウォーム・スタート としても知られており、 オペレーションの通常モードです。

*NO
収集プログラムは、CD 表からすべての情報を消去します。 JRN(*ALL) を指定すると、収集プログラムは UOW 表からもすべての情報を消去します。

変更の収集が再開される前に、 影響を受けたソース表のすべてのサブスクリプションは全最新表示されます。 この処理は、コールド・スタート としても知られています。

ときどき、ソースのサブセットのコールド・スタートを行うことができます。 RESTART(*NO) および JRN(library-name/journal-name) を指定すると、 指定したジャーナルの収集プログラムのコールド・スタートを行うことができます。

ソースのサブセットのコールド・スタートを行っても、 UOW 表にある情報が消去されることはありません。 STRDPRCAP コマンドを使ってソースのサブセットのコールド・スタートを行うと、 約 15 分後に収集プログラムを終了して、 再度プログラムのウォーム・スタートを行うことができます (このとき、 すべての複製ソースが起動します)。

JOBD 収集プログラムを実行依頼するときに使用するジョブ記述の名前を指定します。

*LIBL/QZSNDPR (デフォルト)
DB2 DataPropagator (AS/400 版) が準備しているデフォルトのジョブ記述を指定します。

library-name/job-description-name
収集プログラムで使用するジョブ記述の名前を表します。
DPRVSN 開始する収集プログラムのバージョンを指定します。

7 (デフォルト)
収集プログラムのバージョン 7 を開始します。

5
収集プログラムのバージョン 5 を開始します。
WAIT 収集プログラムが状況を検査するまで待つ最大時間数を秒で指定します。 この値を使用して、収集プログラムの感度を調整することができます。 この値を低くすると、収集プログラムが終了または初期設定するまでにかかる時間は減りますが、 システム・パフォーマンスによくない影響を及ぼす場合があります。 この値を高くすると、収集プログラムが終了または初期設定するまでにかかる時間は増えますが、 システム・パフォーマンスを向上させることができます。 この値をあまり高くしすぎると、収集プログラムは定期的に処理を行っていても、 感度が悪くなることがあります。 感度がどの程度下がるかは、ソース表に加える変更の量やシステムで発生する他の作業の量によって異なります。

120 (デフォルト)
収集プログラムは 120 秒待機します。

value
収集プログラムが待機する最大時間数 (秒)。 60〜6000 秒を指定できます。
CLNUPITV 収集プログラムが CD 表と UOW 表からの古いレコード (存在していれば) を枝取りするまでの時間の長さの最大数を指定します。 このパラメーターは、CHGDPRCAPA コマンドに対する RETAIN パラメーターと一緒に動作します。

*DPRVSN (デフォルト)
間隔を指定します。 この値は *GLOBAL です。

*GLOBAL
チューニング・パラメーター表の PRUNE_INTERVAL 列の間隔と同じ値で間隔を指定します。 CHGDPRCAPA コマンドに対する CLNUPITV パラメーターを使用して、この値を変更することができます。

hours-to-wait
特定の時間数で間隔を指定します。

*IMMED (デフォルト)
指定した間隔が始まる時点で (またはすぐに) 古いレコードを枝取りしてから、 それぞれの間隔で枝取りするよう指定します。

*DELAYED
収集プログラムが、指定した間隔が終了する時点で古いレコードを枝取りしてから、 それぞれの間隔で枝取りするよう指定します。

*NO
収集プログラムがレコードを枝取りしないように指定します。
JRN 最大 50 のジャーナルのサブセットを収集プログラムが使用して作動するように指定します。 収集プログラムは、現在このジャーナルに記録されているすべてのソース表の処理を開始します。

*ALL
収集プログラムが、ソース表が記録されているジャーナルをすべて使用して作業を開始するように指定します。

ライブラリー名 / ジャーナル名
収集プログラムが使用して作動するジャーナルの修飾名を表します。
GENCDROW 変更データ表にコピーされる、ジャーナルからの変更を指定します。

*ALLCHG
ジャーナルからの挿入、更新、削除レコードをすべて変更データ表にコピーします。

*REGCOLCHG
登録済みの列の挿入、更新、および削除を、 ジャーナル処理してから変更データ表にコピーします。 複製するよう定義されていない列に加えられた変更は、 変更データ表に収集されません。

STRDPRCAP コマンドは手動で実行することができます。 または、このコマンドは、初期プログラム・ロード (IPL 始動プログラム) の一部として、 自動的に実行することができます。 始動プログラムに STRDPRCAP コマンドを含めることについて詳しくは、 AS/400e シリーズ 実行管理の手引き V4 (SD88-5009) を参照してください。

JOBD パラメーターを同時に指定したジョブ記述がジョブ待ち行列 QDPR/QZSNDPR を使用し、 DB2 DataPropagator (AS/400 版) サブシステムが活動状態でない場合、 STRDPRCAP コマンドはサブシステムを開始します。 ジョブ記述が別のジョブ待ち行列およびサブシステムを使用するよう定義されている場合には、 STRDPRCAP コマンドの実行前または後のいずれかに、 サブシステムの開始 (STRSBS) コマンドを使用して、 このサブシステムを手動で開始する必要があります。

STRSBS QDPR/QZSNDPR

システムの QSTRUPPGM システム値で参照されるプログラムに STRSBS コマンドを追加することにより、 サブシステムを自動的に開始するようシステムを設定することができます。

収集プログラムの進行状況の判別

収集プログラムの進行状況を判別するには、 実行された最後の収集処理と最後の変更適用処理との間に残されている作業量を判別するか、 または DJRA 複製モニターを使用するかのいずれかを行います。

収集プログラムが終了すれば、ウォーム・スタート表を検査することにより、 その進行状況を判別することができます。 ソース表によって使用される各ジャーナルごとに 1 つの行があります。 LOGMARKER 列には、正常に処理された最後のジャーナル項目のタイム・スタンプが記されています。 SEQNBR 列には、その項目のジャーナルを入力した順番を表す数値が記されています。

収集プログラムが依然として実行中の場合、 以下の作業を完了することにより、その進行状況を判別することができます。

  1. 収集される各ソース表ごとに、その CD 表を検索します。
  2. CD 表の最後の行の IBMSNAP_UOWID 列にある 16 進値をメモします。
  3. 同じ IBMSNAP_UOWID 値を使用した列の UOW 表を見ます。 一致する IBMSNAP_UOWID が UOW 表に存在しない場合には、 CD 表の 2 番目の行から最後の行で同じ処理を繰り返してください。 一致するものが見つかるまで、CD 表全体を逆方向にも検索してみます。
  4. 一致する IBMSNAP_UOWID が見つかったら、 UOW 表の IBMSNAP_LOGMARKER 列にある値をメモします。 これが、処理されたジャーナル項目のタイム・スタンプです。 その時間までソース表に加えられているすべての変更は、適用される準備ができています。
  5. ジャーナルの表示 (DSPJRN) コマンドを使用して、 収集プログラムが処理しなければならない残っているジャーナル項目の量を判別します。 以下の例で示すようにして、出力ファイル (または、印刷レポート用のプリンター) に直接出力します。
    DSPJRN FILE(JRNLIB/DJRN1)
           RCVRNG(*CURCHAIN)
           FROMTIME(timestamp)
           TOTIME(*LAST)
           JRNCDE(J F R C)
           OUTPUT(*OUTFILE)
           ENTDTALEN(1) OUTFILE(library/outfile)
    

    上記の例で、timestamp とはステップ 4 で確認したタイム・スタンプです。

    出力ファイルにあるレコード数が、 収集プログラムが処理しなければならない残っているジャーナル項目の大体の数です。

収集プログラム (AS/400 版) のスケジューリング

SBMJOB コマンドを使用して、 AS/400 での収集プログラムの開始をスケジューリングします。

SBMJOB CMD('STRDPRCAP...') SCDDATE(...) SCDTIME(...)

収集プログラム (AS/400 版) の停止

DPR 収集プログラムの終了 (ENDDPRCAP) コマンドを使用して、 収集プログラムを終了します。

このコマンドを使用して、システムをシャットダウンする前に収集プログラムを終了します。 また、システムで実行している他のプログラムのパフォーマンスを向上させるために、 システムの使用がピークになる間、プログラムを終了することもできます。

>>-ENDDPRCAP----+----------------------------+------------------>
                |          .-*CNTRLD--.      |
                '-OPTION(--+-*IMMED---+---)--'
 
>-----+----------------------+---------------------------------><
      |          .-7--.      |
      '-DPRVSN(--+-5--+---)--'
 

表 18. ENDDPRCAP コマンド・パラメーター定義 (AS/400 用)
パラメーター 定義およびプロンプト
OPTION 収集プログラムを終了する方法を指定します。

*CNTRLD (デフォルト)
収集プログラムが、すべての作業を完了してから、正常に終了するように指定します。

ENDDPRCAP コマンドは、*CNTRLD オプションを指定すると、 処理が終了するまで長く時間がかかる場合があります。それは、終了する前に、 収集プログラムはそれに従属する処理をすべて終わらせるからです。

*IMMED
収集プログラムが、 ENDJOB OPTION(*IMMED) コマンドを指定したタスクをすべて終わらせてから、 正常に終了するように指定します。
DPRVSN 終了する収集プログラムのバージョンを指定します。

7 (デフォルト)
収集プログラムのバージョン 7 を指定します。

5
収集プログラムのバージョン 5 を指定します。

ENDJOB コマンドを使用すると、 一時オブジェクトが QDPR ライブラリーに残される場合があります。 これらのオブジェクトのタイプは *DTAQ および *USRSPC で、 QDPR nnnnnn という名前です。 ここで、nnnnnn は、 オブジェクトを使用したジョブのジョブ番号です。 これらのオブジェクトを使用したジョブ (オブジェクト名にあるジョブ番号で識別) が活動状態でないとき、オブジェクトを削除することができます。

このコマンドを発行してからかなり経過しているのに QDPRCTL5 が終了しない場合、 *IMMED オプションを指定した ENDJOB コマンドを使用して、 このジョブと DB2 DataPropagator (AS/400 版) で実行しているすべてのジャーナル・ジョブを終了させます。 収集プログラムだけを終了させたい場合には、 同じサブシステムで実行している変更適用ジョブを終了させないでください。

まれに、ジョブ QDPRCTL5 が異常終了すると、 QDPRCTL5 によって作成されたジャーナル・ジョブが終了しない場合があります。 こうしたジョブを終了させる唯一の方法は、*IMMED または *CNTRLD オプションのいずれかを指定した ENDJOB コマンドを使用することです。

収集プログラム (AS/400 版) の再初期設定

DPR 収集プログラムの初期設定 (INZDPRCAP) コマンドは、 ソース表の更新済みリストを使って作動するよう収集プログラムに指示することにより、 収集プログラムを初期設定します。

プログラムの制御下にあるソース表は、収集プログラムの実行中に変更することができます。 INZDPRCAP コマンドを使用して、 収集プログラムが最新の複製ソースを処理するようにします。

収集プログラムの実行中にチューニング・パラメーターの値を変更する場合には、 新しい値を使ってプログラムを再初期設定するために INZDPRCAP コマンドを入力します。

このコマンドを実行する前に、収集プログラムを実行していなければなりません。

>>-INZDPRCAP----+----------------------+------------------------>
                |          .-7--.      |
                '-DPRVSN(--+-5--+---)--'
 
>-----+-------------------------------------------------+------><
      |       .-*ALL-----------------------------.      |
      |       |  .-----------------------------. |      |
      |       |  V                             | |      |
      '-JRN(--+----library-name/journal-name---+-+---)--'
 

表 19. INZDPRCAP コマンド・パラメーター定義 (AS/400 用)
パラメーター 定義およびプロンプト
DPRVSN 初期設定する収集プログラムのバージョンを指定します。

7 (デフォルト)
収集プログラムのバージョン 7 を指定します。

5
収集プログラムのバージョン 5 を指定します。
JRN 最大 50 のジャーナルのサブセットを収集プログラムが使用して作動するように指定します。 収集プログラムは、現在このジャーナルに記録されているすべてのソース表の処理を開始します。

*ALL (デフォルト)
収集プログラムが、すべてのジャーナルを使って動作するように指定します。

library-name/journal-name
収集プログラムが使用して作動するジャーナルの修飾名を表します。

変更データおよび作業単位表の枝取りとソース・サーバー DASD の使用の最小化

STRDPRCAP コマンドに対する CLNUPITV パラメーターは、 収集プログラムが CD 表と UOW 表からの古いレコードを枝取りするまで待機する時間の最大長 (時間) を指定します。 CLNUPITV パラメーターについて詳しくは、 収集プログラム (AS/400 版) の開始を参照してください。

枝取りをしても DASD を回復することはできません。 DASD を回復するには、CD 表や UOW 表に対して、 頻繁に RGZPFM (物理ファイル・メンバーの再編成) コマンドを発行する必要があります。 RGZPFM コマンドは、 アクティブな行を前方に移動することにより、削除されたスペースを再利用します。 このコマンドを実行するには、ファイルとメンバーの EXCLRD ロックが必要です。また、 収集および変更適用プログラムを実行していないときにスケジューリングする必要があります。

重要: 1 週間に 1 度 RGZPFM コマンドを発行してください。

ウォーム・スタートおよびコールド・スタート

STRDPRCAP コマンドに対する RESTART パラメーターの値が、 収集プログラムがウォーム・スタートとコールド・スタートを処理する方法を制御します。

ウォーム・スタート処理

ほとんどの場合、ウォーム・スタート情報は保管されます。 ときどき、ウォーム・スタート情報が保管されないことがあります。 そのような場合、収集プログラムは、CD 表、UOW 表、または枝取り制御表を使用して、 それが停止した時刻に再同期します。

自動コールド・スタート

場合によっては、ウォーム・スタートが指定されていても、 収集プログラムは自動的にコールド・スタートに切り替えます。 AS/400 システムでは、コールド・スタートはジャーナルによるジャーナル方式で動作します。 それで、たとえば、ジャーナルがラグの限界を超える場合、 そのジャーナルを使用するすべての複製ソースは、 別のジャーナルを使用する複製ソースがコールド・スタートでなくても、 コールド・スタートで開始します。

収集プログラムが様々なタイプのジャーナル項目を処理する方法について詳しくは、 表 20 を参照してください。


収集プログラムがジャーナル項目タイプを処理する方法

以下の表では、収集プログラムが様々なジャーナル項目タイプを処理する方法について説明します。

表 20. ジャーナル項目による収集プログラムの処理
ジャーナル・コード3 項目 タイプ 説明 処理
C CM コミット済みのレコード変更のセット UOW 表にレコードを挿入します。
C RB ロールバック 挿入された UOW 行はありません。
F AY 物理ファイル・メンバーに適用されたジャーナル済みの変更 ASN2004 メッセージを発行し、ファイルの全最新表示を行います。
F CE 物理ファイルのデータの終わりの変更 ASN2004 メッセージを発行し、ファイルの全最新表示を行います。
F CR 消去された物理ファイル・メンバー ASN2004 メッセージを発行し、ファイルの全最新表示を行います。
F EJ 終了した物理ファイル・メンバーのジャーナリング ASN2004 メッセージを発行し、ファイルの全最新表示を行います。
F IZ 初期設定された物理ファイル・メンバー ASN2004 メッセージを発行し、ファイルの全最新表示を行います。
F MD 物理ファイルから削除されたメンバー (DLTLIB、DLTF、または RMVM) ASN2004 メッセージを発行し、全最新表示を試行します。
F MF 解放された物理ファイル・メンバーの記憶域 ASN2004 メッセージを発行し、ファイルの全最新表示を行います。
F MM 移動されたメンバーを含む物理ファイル (ライブラリーのオブジェクトの名前変更 (RNMOBJ)、ファイルのオブジェクトの移動 (MOVOBJ)) ASN200A メッセージを発行し、全最新表示を試行します。
F MN 名前変更されたメンバー (ファイルの RNMOBJ、メンバーの名前変更 (RNMM)) を含む物理ファイル ASN200A メッセージを発行し、全最新表示を試行します。
F MR 復元された物理ファイル・メンバー ASN2004 メッセージを発行し、ファイルの全最新表示を行います。
F RC 物理ファイル・メンバーから削除されたジャーナル済みの変更 ASN2004 メッセージを発行し、ファイルの全最新表示を行います。
F RG 再編成された物理ファイル・メンバー 複製キーとしてソース表の RRN が使用されている場合には、 ASN2004 メッセージを発行して、ファイルの全最新表示を行います。
J NR 次のジャーナル・レシーバーの識別子 収集プログラムをリセットします。
J PR 直前のジャーナル・レシーバーの識別子 固有の順序番号カウンターを増分します。
R DL 物理ファイル・メンバーから削除されたレコード DLT レコードを CD 表に挿入します。
R DR ロールバックで削除されたレコード DLT レコードを CD 表に挿入します。
R PT 物理ファイル・メンバーに追加されたレコード ADD レコードを CD 表に挿入します。
R PX 物理ファイル・メンバーに直接追加されたレコード ADD レコードを CD 表に挿入します。
R UB 物理ファイル・メンバーで更新されたレコードの変更前イメージ 注 1 を参照してください。
R UP 物理ファイル・メンバーで更新されたレコードの変更後イメージ 注 1 を参照してください。
R BR ロールバックで更新されたレコードの変更前イメージ 注 2 を参照してください。
R UR ロールバックで更新されたレコードの変更後イメージ 注 2 を参照してください。

注:

  1. 登録表の PARTITION_KEYS_CHG 列が N の場合、R-UP イメージおよび R-UB イメージが単一の UPD レコードを CD 表に形成します。そうでない場合には、 R-UB イメージが DLT レコードを CD 表に挿入し、R-UP イメージが ADD 表を CD 表に挿入します。

  2. 登録表の PARTITION_KEYS_CHG 列が N の場合、 R-UR イメージおよび R-BR イメージが単一の UPD レコードを CD 表に形成します。 そうでない場合には、 R-BR イメージが DLT レコードを CD 表に挿入し、 R-UR イメージが ADD 表を CD 表に挿入します。

  3. 以下の値が、ジャーナル・コードに使用されます。

    C
    コミットメント制御操作

    F
    データベース・ファイル操作

    J
    ジャーナルまたはジャーナル・レシーバー操作

    R
    特定のレコードに対する操作

他のジャーナル項目タイプはすべて、収集プログラムによって無視されます。


変更適用プログラム (AS/400 版) の操作

複製管理者のユーザー ID および *APPLY 権限を授与されているユーザーは、 この部分に示されているコマンドを使用して、変更適用プログラム (AS/400 版) の以下の作業を実行することができます。

ここでは、追加されている 2 つの変更適用プログラムの操作についても説明します。

リモート・システムで使用するためのパッケージの作成

リモート・システムで使用するために、 SQL パッケージと DPR パッケージを作成することができます。 以下のコマンドを発行して、これらのパッケージを作成することができます。

CRTSQLPKG
SQL パッケージの作成 (CRTSQLPKG) コマンドは、 AS/400 以外のプラットフォームのリモート・システムで変更適用プログラム (AS/400 版) を使用することを可能にするパッケージを作成します。 このコマンドの使用について詳しくは、 DB2 for AS/400 SQL Programming V4R3 またはそれ以降の資料を参照してください。

CRTDPRPKG
DPR パッケージの作成 (CRTDPRPKG) コマンドを使用して、 リモート・システムで DB2 DataPropagator (AS/400 版) を使用するのに必要なパッケージを作成することができます。 以下の段落で、 このコマンドの使用法をさらに詳しく説明します。
>>-CRTDPRPKG----+---------------------+------------------------->
                |         .-7--.      |
                '-DPRVSN--+-5--+---)--'
 
>-----+-----------------------+---+------------------------+---><
      |       .-*ALL---.      |   |      .-*ALL-----.      |
      '-TYPE--+-*APPLY-+---)--'   '-RDB--+-rdb-name-+---)--'
              '-*ADMIN-'
 

表 21. CRTDPRPKG コマンド・パラメーター定義 (AS/400 用)
パラメーター 定義およびプロンプト
DPRVSN 使用する DB2 DataPropagator (AS/400 版) パッケージのバージョンを指定します。

7 (デフォルト)
DB2 DataPropagator (AS/400 版) のバージョン 7 のパッケージを指定します。

5
DB2 DataPropagator (AS/400 版) のバージョン 5 のパッケージを指定します。
TYPE 作成される DB2 DataPropagator (AS/400 版) パッケージを指定します。

*ALL (デフォルト)
リモート SQL を実行するすべての DB2 DataPropagator (AS/400 版) プログラムのパッケージを作成するために指定します。

*APPLY
変更適用プログラムが使用するプログラムのパッケージを作成するために指定します。

*ADMIN
CL プログラムが使用するプログラムのパッケージを作成するために指定します。
RDB パッケージを作成するリレーショナル・データベースを指定します。 次のような場合には、パッケージは作成されません。
  • RDB が AS/400 システムにあり、 ASN ライブラリーがリモート・システムに存在していない場合。
  • RDB が AS/400 システムにはなく、 ASN がその RDB 上で許可 ID として定義されていない場合。

*ALL (デフォルト)
DB2 DataPropagator (AS/400 版) がソース・サーバーまたはソース・サーバーとして使用する、 すべての RDB で SQL パッケージを作成するために指定します。

rdb-name
リレーショナル・データベースの名前を表します。 RDB ディレクトリー項目を指定して作業 (WRKRDBDIRE) コマンドを使用して、 この名前を検出することができます。

CRTDPRPKG コマンドでプロンプトを出すと、 F4 キーを押して、RDB ディレクトリーにあるデータベースのリストから選択することができます。

パッケージは ASN 修飾子を使って作成されます。 それらは、AS/400 プラットフォーム用の DB2 UDB の ASN ライブラリーに作成されます。 他のプラットフォームの場合、許可 ID ASN が使用されます。

DB2 DataPropagator (AS/400 版) パッケージが作成されると、このコマンドは *PUBLIC 権限をパッケージに授与して、DB2 DataPropagator (AS/400 版) ユーザーが使用できるようにします。

システムは、パッケージのそれぞれの作成試行に関連付けられた SQL メッセージを含むスプール・ファイルも作成します。

変更適用プログラムを開始する前に

変更適用プログラムを開始する前に、次のことを確認してください。

変更適用プログラム (AS/400 版) の開始

DPR 変更適用プログラムの開始 (STRDPRAPY) コマンドは、 ローカル・システム上の変更適用プログラムのインスタンスを開始します。 変更適用プログラムは、それを停止するか回復不能エラーが発生するまで、実行し続けます。

>>-STRDPRAPY----+---------------------------+------------------->
                |        .-*CURRENT--.      |
                '-USER(--+-*JOBD-----+---)--'
                         '-user-name-'
 
>-----+---------------------------------------------------+----->
      |        .-*LIBL/QZSNDPR---------------------.      |
      '-JOBD(--+-library-name/job-description-name-+---)--'
               '-*LIBL/job-description-name--------'
 
>-----+----------------------+---------------------------------->
      |          .-7--.      |
      '-DPRVSN(--+-5--+---)--'
 
>-----+------------------------------------+-------------------->
      |           .-*USER-----------.      |
      '-APYQUAL(--+-apply-qualifier-+---)--'
 
>-----+----------------------------+---------------------------->
      |          .-*LOCAL---.      |
      '-CTLSVR(--+-rdb-name-+---)--'
 
>-----+-------------------------+------------------------------->
      |         .-*NONE--.      |
      '-TRACE(--+-*ERROR-+---)--'
                +-*ALL---+
                '-*PRF---'
 
>-----+-------------------------------------------------+------->
      |              .-*NONE---------------------.      |
      '-FULLREFPGM(--+-library-name/program-name-+---)--'
 
>-----+------------------------------------------------+-------->
      |             .-*NONE---------------------.      |
      '-SUBNFYPGM(--+-library-name/program-name-+---)--'
 
>-----+---------------------------+----------------------------->
      |            .-*YES--.      |
      '-INACTMSG(--+-*NO---+---)--'
 
>-----+---------------------------+----------------------------->
      |            .-*YES--.      |
      '-ALWINACT(--+-*NO---+---)--'
 
>-----+-----------------------------+--------------------------->
      |         .-6----------.      |
      '-DELAY(--+-delay-time-+---)--'
 
>-----+------------------------------------+-------------------><
      |           .-300-------------.      |
      '-RTYWAIT(--+-retry-wait-time-+---)--'
 

表 22. STRDPRAPY コマンド・パラメーター定義 (AS/400 用)
パラメーター 定義およびプロンプト
USER 変更適用プログラムが開始するユーザー ID の名前を指定します。 このコマンドを実行する場合、指定したユーザー・プロファイルに対する権限を所有 (*USE 権限を所有) している必要があります。

変更適用プログラムは、指定したユーザー・プロファイルの下で実行します。 制御表 (ASN 形式) は、CTLSVR パラメーターを同時に指定したリレーショナル・データベースに置かれます。 同じ制御表は、USER パラメーターに指定した値を無視して使われます。

*CURRENT (デフォルト)
現行のジョブに関連付けられたユーザー ID が、 変更適用プログラムのこのインスタンスに関連付けられたユーザー ID となるように指定します。

*JOBD
変更適用プログラムのこのインスタンスに関連付けられたジョブ記述で指定したユーザー ID を表します。 ジョブ記述は USER(*RQD) を指定することはできません。

user-name (デフォルト)
変更適用プログラムのこのインスタンスに関連付けられたユーザー ID を指定します。 以下の IBM 提供のオブジェクトは、 このパラメーターに対しては有効ではありません : QDBSHR、 QDFTOWN、 QDOC、 QLPAUTO、 QLPINSTALL、 QRJE、 QSECOFR、 QSPL、 QSYS、 または QTSTRQS。

STRDPRAPY コマンドでプロンプトを出すと、 F4 キーを押して、サブスクリプションを定義したユーザーのリストを表示することができます。

JOBD 変更適用プログラムを実行依頼するときに使用するジョブ記述の名前を指定します。

*LIBL/QZSNDPR (デフォルト)
DB2 DataPropagator (AS/400 版) が準備しているデフォルトのジョブ記述を指定します。

library-name/job-description-name
変更適用プログラムで使用するジョブ記述の名前を表します。
DPRVSN 開始する変更適用プログラムのバージョンを指定します。

7 (デフォルト)
変更適用プログラムのバージョン 7 を開始します。

5
変更適用プログラムのバージョン 5 を開始します。
APYQUAL 変更適用プログラムのインスタンスが変更適用修飾子を使用するように指定します。 この変更適用修飾子を使って一緒のグループに入れられるサブスクリプションはすべて、 この変更適用プログラムのインスタンスによって実行されます。

*USER (デフォルト)
USER パラメーターに対するユーザー名を変更適用修飾子として指定します。

apply_qualifier
この変更適用プログラムのインスタンスが実行する必要があるサブスクリプションをグループ化するのに使われる名前を指定します。 変更適用修飾子名として最大 18 文字を指定することができます。 この名前は、RDB 名と同じ命名規則に準拠します。 実行する必要のあるサブスクリプションは、APPLY_QUAL 列にあるこの値を使用して、 サブスクリプション・セット表にあるレコードが識別します。

STRDPRAPY コマンドでプロンプトを出すと、 F4 キーを押して、既存のサブスクリプションを使用した変更適用修飾子のリストを表示することができます。

CTLSVR 共通制御表が置かれる制御サーバーを指定します。

*LOCAL (デフォルト)
サブスクリプション制御表が、ローカルのリレーショナル・データベースに置かれるように指定します。

rdb-name
制御表が置かれるリレーショナル・データベースの名前を表します。 RDB ディレクトリー項目を指定して作業 (WRKRDBDIRE) コマンドを使用して、 この名前を検出することができます。

STRDPRAPY コマンドでプロンプトを出すと、 F4 キーを押して、使用可能な RDB 名を表示することができます。

TRACE 変更適用プログラムがトレースを生成するかどうかを指定します。 変更適用プログラムがトレースを生成すると、 そのトレースは QPZSNATRC と呼ばれるスプール・ファイルに出力されます。

*NONE (デフォルト)
トレースが生成されないように指定します。

*ERROR
エラーに関する情報だけがトレースに含まれるように指定します。

*ALL
変更適用プログラムによって発行されるエラー、実行の流れ、 および SQLステートメントに関する情報が、トレースに含まれるように指定します。

*PRF
別の段階で変更適用プログラムを実行するときのパフォーマンスを分析するために使用できる情報が、 トレースに含まれるように指定します。
FULLREFPGM 変更適用プログラムが、出口ルーチンを呼び出して、 ターゲット表を初期設定するかどうかを指定します。 変更適用プログラムが、ターゲット表を全最新表示する必要があると判定すると、 全最新表示を行わずに、指定した出口ルーチンを呼び出します。

全最新表示出口ルーチンが変更適用プログラムで使用される場合、 適用追跡表にある ASNLOAD 列の値は Y です。

詳しい情報と使用例については、ASNLOAD 出口ルーチン (AS/400 用) を使ったターゲット表の最新表示を参照してください。

*NONE (デフォルト)
全最新表示出口ルーチンが使用されないように指定します。

library-name/program-name
変更適用プログラムがターゲット表の全最新表示が必要であると判断するとき呼び出されるプログラムの修飾名を表します。 たとえば、ライブラリー DATAPROP にあるプログラム ASNLOAD を呼び出すための修飾名は DATAPROP/ASNLOAD です。
SUBNFYPGM 変更適用プログラムがサブスクリプション・セットの処理を終了するとき、 出口ルーチンを呼び出すかどうかを指定します。 出口ルーチンへの入力データは、セット名、変更適用修飾子、完了状況、 および統計 (拒否回数を含む) で構成されています。

通知プログラムを使用すると、UOW 表を検査して、 拒否されたトランザクションを判別することができます。それから、 メッセージの発行やイベントの生成などの処理を行うことができます。

詳しくは、ASNDONE 出口ルーチン (AS/400 用) の使用を参照してください。

*NONE (デフォルト)
出口ルーチンが使用されないように指定します。

library-name/program-name
変更適用プログラムがサブスクリプション・セットの処理を完了するとき呼び出されるプログラムの修飾名を表します。 たとえば、ライブラリー DATAPROP にあるプログラム APPLYDONE を呼び出すための修飾名は DATAPROP/APPLYDONE です。
INACTMSG 変更適用プログラムが作業を完了して、一定の期間活動状態でなくなるとき、 メッセージを生成するかどうかを指定します。

*NO (デフォルト)
メッセージは生成されないように指定します。

*YES
変更適用プログラムが活動状態ではなくなる前に、 メッセージ ASN1044 を生成するように指定します。 メッセージ ASN1044 は、変更適用プログラムが活動状態でない期間の長さを示します。
ALWINACT 変更適用プログラムが、非活動状態 (スリープ) で実行できるかどうかを指定します。

*YES (デフォルト)
処理が何もない場合、変更適用プログラムがスリープするように指定します。

*NO
変更適用プログラムの処理がなくても、 変更適用プログラムで始められたジョブが終了するように指定します。
DELAY 連続複製が使用される場合に、 それぞれの変更適用プログラムのサイクルの終わりにおける遅延時間 (秒単位) を指定します。

6
6 秒の遅延時間を指定します。

delay-time
0 秒以上 6 秒以下の遅延時間を指定します。
RTYWAIT エラーが生じた場合に、 失敗した操作を再試行するまで変更適用プログラムが待機する時間 (秒単位) を指定します。

300
300 秒の再試行待ち時間を指定します。

retry-wait-time
0 秒以上 35000000 秒以下の再試行待ち時間を指定します。

システムの QSTRUPPGM システム値で参照されるコマンドを追加することにより、 サブシステムを自動的に開始するようシステムを設定することができます。 QDPR/QZSNDPR サブシステムを使用する場合、 それは STRDPRAPY コマンド処理の一部として開始されます。

CTLSVR パラメーターを同時に指定したリレーショナル・データベース (RDB) が DB2 UDB (AS/400 版) である場合、サーバーにある表は ASN ライブラリーで検出されます。 RDB が DB2 UDB (AS/400 版) データベースでない場合、ASN を修飾子として使って、 表にアクセスすることができます。

変更適用プログラムを開始するときのエラー条件

以下のいずれかの状態が生じると、 STRDPRAPY コマンドはエラー・メッセージを戻します。

変更適用プログラム・インスタンスは、各サブスクリプション・セット表のそれぞれの固有な変更適用修飾子に応じて開始する必要があります。 STRDPRAPY コマンドを発行するごとに、 別の変更適用修飾子を指定して、複数の変更適用処理を開始することができます。 これらの変更適用処理は、同じユーザー・プロファイルの下で実行します。

変更適用プログラムのジョブの識別

各変更適用処理は、変更適用修飾子と制御サーバー名の両方を使って識別されます。 実行時には、変更適用処理に応じて始まるジョブに十分な外部属性がないため、 特定の変更適用修飾子と制御サーバーとの組み合わせに関連付けられている変更適用処理を正確に識別することはできません。 そのため、以下に示す方法でジョブが識別されます。

通常、以下に示す 2 つの条件が当てはまれば、 QZSNDPR で実行中のジョブのリストを表示することにより、正しい変更適用プログラムを識別することができます。

変更適用プログラム (AS/400 版) のスケジューリング

特定の時に変更適用プログラムを開始するには、 ADDJOBSCDE コマンドを使用します。

変更適用プログラム (AS/400 版) の停止

DPR 変更適用プログラムの終了 (ENDDPRAPY) コマンドは、 ローカル・システム上の変更適用プログラムのインスタンスを終了します。

計画されているシステムのダウン時間より前に、変更適用プログラムを終了する必要があります。 また、システムの使用がピークになる間、変更適用プログラムを終了することもできます。

>>-ENDDPRAPY----+---------------------------+------------------->
                |        .-*CURRENT--.      |
                '-USER(--+-user-name-+---)--'
 
>-----+----------------------------+---+----------------------+->
      |          .-*CNTRLD--.      |   |          .-7--.      |
      '-OPTION(--+-*IMMED---+---)--'   '-DPRVSN(--+-5--+---)--'
 
>-----+------------------------------------+-------------------->
      |           .-*USER-----------.      |
      '-APYQUAL(--+-apply-qualifier-+---)--'
 
>-----+----------------------------+---------------------------><
      |          .-*LOCAL---.      |
      '-CTLSVR(--+-rdb-name-+---)--'
 

表 23. ENDDPRAPY コマンド・パラメーター定義 (AS/400 用)
パラメーター 定義およびプロンプト
USER APYQUAL パラメーターの値が *USER でない場合、このパラメーターは無視されます。 この場合、これは変更適用プログラムのインスタンスと関連付けられている変更適用修飾子です。

*CURRENT (デフォルト)
現行のジョブと関連付けられているユーザーの変更適用処理を指定します。

user-name
指定したユーザーの変更適用処理を指定します。

ENDDPRAPY コマンドでプロンプトを出すと、 F4 キーを押して、サブスクリプションを定義したユーザーのリストを表示することができます。

OPTION 変更適用プログラムを終了する方法を指定します。

*CNTRLD (デフォルト)
変更適用プロセスが、終了前にタスクをすべて完了するように指定します。 変更適用プログラムがサブスクリプションを完了している場合、 これらのタスクを終わらせるまでに、かなりの時間がかかる場合があります。

*IMMED
変更適用プログラムが、 ENDJOB OPTION(*IMMED) コマンドを指定したタスクを、 すべて終わらせるように指定します。 終結処理を行うことなく、このタスクはすぐに終了します。 望ましくない結果を引き起こすことがあるため、 制御された終了が正常に行われなかった場合にのみ、このオプションを使用してください。 (ENDDPRAPY コマンドの発行時に、 変更適用プログラムがスリープでなければ、ターゲット表の目次を検査する必要があります。)

変更適用プログラムがターゲット表への全最新表示を実行していた場合、 その表がソース表の目次を使って最新表示される前に変更適用プログラムが終了しているため、 ターゲット表が空である可能性があります。 ターゲット表が空の場合、この複製ターゲットに全最新表示を行う必要があります。

サブスクリプションが使用中 (サブスクリプション・セットにある STATUS 列の値が 1 である) とみなされている場合があります。 この場合、この値を 0 または -1 に設定し直してください。 こうすると、変更適用プログラムはサブスクリプションを再度実行することができます。

DPRVSN 終了する変更適用プログラムのバージョンを指定します。

7 (デフォルト)
変更適用プログラムのバージョン 7 を指定します。

5
変更適用プログラムのバージョン 5 を指定します。
APYQUAL 変更適用プログラムのインスタンスが使用する変更適用修飾子を指定します。 この変更適用修飾子を使って一緒のグループに入れられるサブスクリプションはすべて、 そのインスタンスによって実行されます。

*USER (デフォルト)
USER パラメーターに対するユーザー名を変更適用修飾子として指定します。

apply_qualifier
この変更適用プログラムのインスタンスが実行するサブスクリプションをグループ化するのに使われる名前を指定します。 変更適用修飾子名として最大 18 文字を指定することができます。 この名前は、RDB 名と同じ命名規則に準拠します。 実行中のサブスクリプションは、APPLY_QUAL 列にあるこの値を使用して、 サブスクリプション・セット表にあるレコードが識別します。

ENDDPRAPY コマンドでプロンプトを出すと、 F4 キーを押して、既存のサブスクリプションを使用した変更適用修飾子のリストを表示することができます。

CTLSVR バージョン 7 の制御表が置かれるリレーショナル・データベースの名前を表します。

*LOCAL (デフォルト)
制御表が、ローカルのリレーショナル・データベースに置かれるように指定します。

rdb-name
サブスクリプション制御表が、このリレーショナル・データベースに置かれるように指定します。 RDB ディレクトリー項目を指定して作業 (WRKRDBDIRE) コマンドを使用して、 この名前を検出することができます。

ENDDPRAPY コマンドでプロンプトを出すと、 F4 キーを押して、RDB ディレクトリーにあるデータベースのリストから選択することができます。

ENDDPRAPY コマンドは、APYQUAL および CTLSVR パラメーターの値を使用して、参照済みの変更適用プログラムのジョブ名、ジョブ番号、 およびジョブ・ユーザーに応じた変更適用ジョブ表を検索し、そのジョブを終了します。

以下のいずれかの状態が生じると、 ENDDPRAPY コマンドはエラー・メッセージを発行します。


変更適用プログラムの追加操作

ここでは、ASNDONE 出口ルーチンの使用および ASNLOAD 出口ルーチンを使ったターゲット表の最新表示という、 変更適用プログラムに追加された 2 つの機能の実行に関する情報を提供します。

ASNDONE 出口ルーチン (AS/400 用) の使用

ASNDONE 出口ルーチンは、サブスクリプション処理が成功または失敗のどちらであるかに関係なく、 その処理後に変更適用プログラムがオプションとして呼び出すことのできるプログラムです。 それぞれの変更適用修飾子ごとに、別々のサブスクリプション通知プログラムを提供することができます。 ASNDONE 出口ルーチンに関する一般的な情報については、 ASNDONE 出口ルーチンの使用を参照してください。

ここでは、AS/400 環境に応じて ASNDONE ルーチンをカスタマイズすることに関する情報が含まれています。

サブスクリプション通知プログラムの作成時に、 以下の活動化グループに関連することを考慮してください。

このプログラムが新しい活動化グループを使って実行するために作成される場合: 変更適用プログラムとサブスクリプション通知プログラムは、 SQL リソース (RDB 接続およびオープン・カーソルなど) を共有しません。 AS/400 オペレーティング・システムにある活動化処理コードは、 制御が変更適用プログラムに戻される前に、 サブスクリプション通知プログラムによって割り振られたリソースをすべて解放します。 変更適用プログラムがサブスクリプション通知プログラムを呼び出すたびに、 追加のリソースが使用されます。

このプログラムが呼び出し側の活動化グループで実行するために作成される場合: それは変更適用プログラムと SQL リソースを共用します。 変更適用プログラムへの影響が最小限で済むようプログラムを設計します。 たとえば、現行のリレーショナル・データベース (RDB) 接続を変更すると、 予期しない変更適用プログラムの処理を引き起こす可能性があります。

このプログラムが名前付き活動化グループで実行するために作成される場合: それは変更適用プログラムとの間でリソースを共用しません。 名前付き活動化グループを使用すると、サブスクリプション通知プログラムが呼び出されるたびに、 活動化グループのオーバーヘッドは回避されます。 実行時のデータ構造および SQL リソースは、呼び出し間で共用されます。 変更適用プログラムが終了するまで、アプリケーションの終結処置は実行されません。 それで、サブスクリプション通知プログラムは、制御が変更適用プログラムに戻されるとき、 ソース表、ターゲット表、または制御表をロックすることにより、 変更適用プログラムでロックの競合が生じることがないように設計する必要があります。

変更適用プログラムを開始するとき、STRDPRAPY コマンドに対する SUBNFYPGM パラメーターを使って、サブスクリプション通知プログラムの名前を指定します。 たとえば、プログラムの名前が ASNDONE_1 でライブラリー APPLIB にある場合には、 次のコマンドを使用します。

SUBNFYPGM(APPLIB/ASNDONE_1).

ASNLOAD 出口ルーチン (AS/400 用) を使ったターゲット表の最新表示

ASNLOAD 全最新表示出口ルーチンは、次のような場合に変更適用プログラムによって呼び出されます。

サブスクリプション・セットの全最新表示が必要な場合、 変更適用プログラムは出口ルーチンを呼び出します。 それから、ターゲット表の全最新表示 (必要であれば) と、 サブスクリプション・セットにリストされている各ターゲット表の全最新表示を実行します。

変更適用プログラムの代わりに出口ルーチンを使用して、 もっと効率よく全最新表示を行うことができます。 たとえば、ソース表の各列および各行をターゲット表に複写している場合、 分散データ管理 (DDM) ファイルおよびファイルの複写 (CPYF) CL コマンドを使用する出口ルーチンの全最新表示を、 ソース表からターゲット表へとファイル全体を複写するように設計することができます。

出口ルーチンが非ゼロ・リターン・コードを戻す場合、 変更適用プログラムが処理する現行のサブスクリプション・セットは失敗します。 次回の反復まで、残されたサブスクリプション・セットの処理が行われることはありません。

ASNLOAD の使用に関するガイドライン

サンプルの出口ルーチンのソースは、DB2 DataPropagator (AS/400 版) に含まれています。C、COBOL、および RPG 言語のサンプルは、以下の通りです。


コンパイラー言語 ライブラリー名 ソース・ファイル名 メンバー名
C QDPR QCSRC ASNLOAD
COBOL QDPR QCBLLESRC ASNLOAD
RPG QDPR QRPGLESRC ASNLOAD

別のプログラムを使用するよう変更適用プログラムに指示するには、変更適用プログラムを終了し、 別の STRDPRAPY コマンドを使って再度プログラムを開始する必要があります。

ASNLOAD を使用する予定の場合、以下の点に注意してください。

ASNLOAD の必須パラメーター

リターン・コード
0 というリターン・コードによって表される、リターン・コードが正常であったかどうかを指定します。 リターン・コードが 0 でない場合、変更適用プログラムはエラーを発行します。 トレースがオンなっている場合、変更適用プログラムはトレース出力を作成します。

理由コード
出口ルーチンの障害をさらに詳しく説明するのに使うことのできる値を指定します。 リターン・コードが 0 でない場合、またトレースがオンになっている場合、 変更適用プログラムには、トレース出力の一部として理由コードの情報が含まれます。 理由コードの値は、ご使用のユーザー・アプリケーションに固有でなければなりません。

制御サーバーの RDB 名
サブスクリプション制御表が入っているデータベースの RDB 名を指定します。 この名前には、ブランクを埋め込みます。

ターゲット・サーバーのリレーショナル・データベース (RDB) 名
ターゲット表が入っているデータベースの名を指定します。 この名前には、ブランクを埋め込みます。

ターゲット表のライブラリー
ターゲット表を含むライブラリーの名前を指定します。 ターゲット・サーバーの RDB 名が AS/400 データベースでない場合、 このパラメーターはターゲット表の許可 ID です。この ID は、 現在変更適用プログラムが処理しているサブスクリプション・メンバーの行にある TARGET_OWNER 列から取得します。 この名前には、ブランクを埋め込みます。

ターゲット表名
ターゲット表の名前を指定します。これは、現在変更適用プログラムが処理しているサブスクリプション・ターゲット・メンバー表の行にある TARGET_TABLE 列から取得します。 ターゲット・サーバーが AS/400 用のデータベースの場合、 この名前は SQL 表名か AS/400 システム・ファイル名のいずれかにすることができます。 この名前には、ブランクを埋め込みます。

Apply qualifier
この変更適用プログラムのインスタンスを開始するために使われる修飾子を指定します。 この値は、現在変更適用プログラムが処理しているサブスクリプション・セット表の行にある APPLY_QUAL 列から取得します。 この名前には、ブランクを埋め込みます。

サブスクリプション・セット名
変更適用プログラムがちょうど終了したサブスクリプション・セットの名前を指定します。 この値は、現在変更適用プログラムが処理しているサブスクリプション・セット表の行にある SET_NAME 列から取得します。 この名前には、ブランクを埋め込みます。

ソース・サーバーの RDB 名
ソース表が入っているデータベースの RDB 名を指定します。 この名前には、ブランクを埋め込みます。

SQL SELECT ステートメント
ターゲット表にコピーされるソース表の行および列を選択するのに使用できる可変長 SQL ステートメントを指定します。 以下の表で、SQL SELECT ステートメントの構造を示します。


オフセット (16 進数または 10 進数) 種類 フィールド
0 BINARY(4)
SQL ステートメント長

4 Char(*)
SQL 選択ステートメント

トレース標識
変更適用プログラムがトレース・データを生成するかどうかを指定します。 出口ルーチンは、トレース標識を使用して、内部トレースと変更適用プログラムを調整することができます。

変更適用プログラムがトレースを生成すると、そのトレースはスプール・ファイルに出力されます。 出口ルーチンが別々の活動化グループで実行されている場合、 その結果は別々のスプール・ファイルに出力されます。 出口ルーチンが呼び出し側の活動化グループで実行されている場合、 その結果は変更適用トレースと同じスプール・ファイルに出力されます。

トレース標識の値は、以下の通りです。

YES
トレース・データが作成されています。

NO
トレース・データは作成されていません。

その他
トレース・データは作成されていません。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]