この章では、 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 版) のインストールは、他のライセンス・プログラムと同じ方法で行います。 通常は、以下のステップに従ってインストールします。
このウィンドウのインストール画面にプロダクト ID 番号 (5769DP3) が含まれていない場合、 AS/400 コマンド行で LICPGM を終了して RSTLICPGM と入力し、 5769DP3 をプロダクト ID に指定します。
このウィンドウに ID 番号が含まれていれば、その番号の次に 1 と入力して、 Enter (実行) キーを押します。
DB2 (Windows NT 版) または DB2 (Windows 95 オペレーティング環境) クライアントから AS/400 サーバーに接続するには、 その前にワークステーションが正しく設定されているかどうか確認する必要があります。
たとえば、 AS/400 サーバーから DB2 (Windows NT 版) ワークステーションに接続するには、 以下のステップを使用してください。
MYDBOS2 9.112.14.67 RCHASDPD RCHASDPD DB2400E *LOCAL RCHASLJN RCHASLJN
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_name は 1で説明されている AS/400 リレーショナル・データベースの名前です。
db2 terminate
CHGUSRPRF USRPRF (user) CCSID(37)
db2 connect to rdb_name user user_name using password
STRTCPSVR SERVER(*DDM)
インストールのプロセスで CRTDPRTBL コマンドが発行され、 自動的に複製制御表が作成されるため、複製管理ツールを使用する前に DB2 DataPropagator (AS/400 版) をインストールする必要があります。 これらの表は、まだ作成されていなければ、DataPropagator Relational の集合 (名前付き ASN) に作成されます。
インストール・プログラムは、このライブラリーの SQL ジャーナル、
ジャーナル・レシーバー、および実行管理機能オブジェクトも作成します。
表 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 | 作成する制御表のバージョンを指定します。
|
収集プログラムのパフォーマンスを制御するため、 チューニング・パラメーター表にある列の値を変更して、 サーバー上の 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 パラメーターの値が限界に達する前に、変更された情報をコピーするよう変更適用間隔を設定してください。 こうすると、表が不整合になるのを避けることができます。 表が不整合になると、変更適用プログラムは全最新表示を実行します。
|
LAG | 新規の遅延限度 (CD 表が消去されてキャプチャーの変更を初めからやり直す前に、
収集プログラムが遅れることのできる時間) を分で指定します。
遅れが限界に達すると (つまり、ジャーナル項目のタイム・スタンプが、
現在の時間から遅れの限界を引いたものより古くなると)、
収集プログラムは追いつくことができないほど遅れてしまったとみなします。
その後、収集プログラムは、
そのプログラムがジャーナルを処理している表のコールド・スタートを開始します。
それから、変更適用プログラムは全最新表示を実行して、
新しい開始点が付いた収集プログラムを提供します。
通常この値は、影響がまったくないので高めに設定します。
|
FRCFRQ | 収集プログラムが CD および UOW 表に変更を書き込む大体の頻度を指定します。
収集プログラムは、バッファーに空きがなくなったときか、 この時間が満了したときのいずれかに (いずれにしても早急に)、 変更適用プログラムが利用可能な変更を行います。
このパラメーターは、ソース表の変更比率を低めに抑えながら、 サーバー上の変更適用プログラムがすぐに利用できる変更をソース表に加えるために使用します。
これはグローバル値であり、すべての定義済みソース表で使用されます。 この値を低めに設定すると、プロセッサーの使用に影響を与える場合があります。
|
CLNUPITV | 収集プログラムが CD 表と UOW 表からの古いレコード (存在していれば) を枝取りするまでの時間の最大長を指定します。
このパラメーターは、RETAIN パラメーターと一緒に動作します。
このパラメーターの値は、時間から秒に変換され、 チューニング・パラメーター表の PRUNE_INTERVAL 列に保管されます。 PRUNE_INTERVAL 列が (CHGDPRCAPA コマンドを使用せずに) 手動で変更される場合、 F4 キーを使ってプロンプトを出すとき、丸めるために変更が表示される場合があります。
|
ここでは、複製制御表に対する権限を授与したり取り消したりするのに使用できるコマンドについて説明します。権限の授与および 権限の取り消し。
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 | 権限を所有するユーザーを指定します。
|
AUT | 授与されている権限のタイプを指定します。
|
DPRVSN | DB2 DataPropagator (AS/400 版) のバージョンを指定します。
|
APYQUAL | USER パラメーターを同時に指定したユーザーによって使われる変更適用修飾子を指定します。
このパラメーターは、AUT(*APPLY) または AUT(*SUBSCRIBER) が指定されるときだけ使われます。
|
使用中のファイルでは権限を変更できないため、 収集プログラムまたは変更適用プログラムの実行中や、 ソース表を使用するアプリケーションが活動状態のときは、 GRTDPRAUT コマンドを使用することはできません。
複製ソースの定義および変更を行う権限をユーザー USER1 に与えるには:
GRTDPRAUT USER(USER1) AUT(*REGISTRAR) DPRVSN(7)
サブスクリプションの定義および変更を行う権限をユーザー USER1 に与えるには:
GRTDPRAUT USER(USER1) AUT(*SUBSCRIBER) DPRVSN(7)
変更適用修飾子 A1 に関連付けられた既存のサブスクリプションの定義および変更を行う権限を、 ユーザー USER1 に与えるには:
GRTDPRAUT USER(USER1) AUT(*SUBSCRIBER) DPRVSN(7) APYQUAL(A1)
ターゲット・サーバーと制御サーバーが同じであるという条件で、 変更適用修飾子 A1 に関連付けられたすべてのサブスクリプションの制御サーバー・システム上にある変更適用プログラムを実行するための権限をユーザーに与えるには:
GRTDPRAUT USER(USER1) AUT(*APPLY) DPRVSN(7) APYQUAL(A1)
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 | 権限が取り消されるユーザーを指定します。
|
DPRVSN | DB2 DataPropagator (AS/400 版) のバージョンを指定します。
|
制御表に対する権限を取り消すには:
RVKDPRAUT USER(user-name) DPRVSN(7)
収集ジャーナル・ジョブの実行中に、以下の処理のいずれかを行うと、 その処理はメッセージ ASN2301 または ASN2201 をジョブ・ログに添付して終了します。
収集プログラムが実行し続けるようにするには、 以下に示すガイドラインをご使用ください。
特定のソース表のデータの収集ができなくなるような状態が生じる場合、 収集プログラムは、ソース表の状態を変更収集から最新表示が必要な状態に変更します。 (そうした状態のリストについては、表 20 を参照。) ソース表のデータの収集を妨げる他の条件については、以下のとおりです。
ソース表に対して ALTER TABLE を実行する必要がある場合、 確実にサブスクリプションを定義して、再度ソース表を定義するようにしてください。 または、DJRA の「複製ソースのリストまたは変更 (List or Change replication source)」を使用して、 変更した変更データ表を固定することができます。 ターゲットを固定したら、 DJRA で「メンバーのリストまたはターゲット表への列の追加 (List members or add a column to target table)」アクションを使用して、 ターゲット表を変更することもできます。
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 ジャーナル、ソース・ライブラリー、制御ライブラリー、 またはターゲット・ライブラリーに作成されたソース表以外のソース表のジャーナルを使用します。
ソース表のジャーナルを作成するには:
CRTJRNRCV JRNRCV(JRNLIB/RCV0001) THRESHOLD(50000) TEXT('DataPropagator Journal Receiver')
以下のことを確実に実行するようにします。
CRTJRN JRN(JRNLIB/DJRN1) JRNRCV(JRNLIB/RCV0001) MNGRCV(*SYSTEM) DLTRCV(*YES) TEXT('DataPropagator Journal')
以下のことを確実に実行するようにします。
CRTJRN コマンドの RCVSIZOPT パラメーターに 2 つの値 (*RMVINTENT および *MINFIXLEN) を使用して、 記憶域の可用性やシステム・パフォーマンスを最適化することができます。 詳しくは、 AS/400 プログラミング: パフォーマンス・ツールの手引き を参照してください。
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 値を決定するには:
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 属性と同じでなければなりません。
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 チェック・ボックスを選択します。
複製管理者のユーザー ID および *CAPTURE 権限を授与されているユーザーは、 この部分で示されているコマンドを使用して、 収集プログラム (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 | 収集プログラムがウォーム・スタートとコールド・スタートを処理する方法を指定します。
|
JOBD | 収集プログラムを実行依頼するときに使用するジョブ記述の名前を指定します。
|
DPRVSN | 開始する収集プログラムのバージョンを指定します。
|
WAIT | 収集プログラムが状況を検査するまで待つ最大時間数を秒で指定します。
この値を使用して、収集プログラムの感度を調整することができます。
この値を低くすると、収集プログラムが終了または初期設定するまでにかかる時間は減りますが、
システム・パフォーマンスによくない影響を及ぼす場合があります。
この値を高くすると、収集プログラムが終了または初期設定するまでにかかる時間は増えますが、
システム・パフォーマンスを向上させることができます。
この値をあまり高くしすぎると、収集プログラムは定期的に処理を行っていても、
感度が悪くなることがあります。
感度がどの程度下がるかは、ソース表に加える変更の量やシステムで発生する他の作業の量によって異なります。
|
CLNUPITV | 収集プログラムが CD 表と UOW 表からの古いレコード (存在していれば) を枝取りするまでの時間の長さの最大数を指定します。
このパラメーターは、CHGDPRCAPA コマンドに対する RETAIN パラメーターと一緒に動作します。
|
JRN | 最大 50 のジャーナルのサブセットを収集プログラムが使用して作動するように指定します。
収集プログラムは、現在このジャーナルに記録されているすべてのソース表の処理を開始します。
|
GENCDROW | 変更データ表にコピーされる、ジャーナルからの変更を指定します。
|
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 列には、その項目のジャーナルを入力した順番を表す数値が記されています。
収集プログラムが依然として実行中の場合、 以下の作業を完了することにより、その進行状況を判別することができます。
DSPJRN FILE(JRNLIB/DJRN1) RCVRNG(*CURCHAIN) FROMTIME(timestamp) TOTIME(*LAST) JRNCDE(J F R C) OUTPUT(*OUTFILE) ENTDTALEN(1) OUTFILE(library/outfile)
上記の例で、timestamp とはステップ 4 で確認したタイム・スタンプです。
出力ファイルにあるレコード数が、 収集プログラムが処理しなければならない残っているジャーナル項目の大体の数です。
SBMJOB コマンドを使用して、 AS/400 での収集プログラムの開始をスケジューリングします。
SBMJOB CMD('STRDPRCAP...') SCDDATE(...) SCDTIME(...)
DPR 収集プログラムの終了 (ENDDPRCAP) コマンドを使用して、 収集プログラムを終了します。
このコマンドを使用して、システムをシャットダウンする前に収集プログラムを終了します。 また、システムで実行している他のプログラムのパフォーマンスを向上させるために、 システムの使用がピークになる間、プログラムを終了することもできます。
>>-ENDDPRCAP----+----------------------------+------------------> | .-*CNTRLD--. | '-OPTION(--+-*IMMED---+---)--' >-----+----------------------+--------------------------------->< | .-7--. | '-DPRVSN(--+-5--+---)--'
表 18. ENDDPRCAP コマンド・パラメーター定義 (AS/400 用)
パラメーター | 定義およびプロンプト |
---|---|
OPTION | 収集プログラムを終了する方法を指定します。
|
DPRVSN | 終了する収集プログラムのバージョンを指定します。
|
ENDJOB コマンドを使用すると、 一時オブジェクトが QDPR ライブラリーに残される場合があります。 これらのオブジェクトのタイプは *DTAQ および *USRSPC で、 QDPR nnnnnn という名前です。 ここで、nnnnnn は、 オブジェクトを使用したジョブのジョブ番号です。 これらのオブジェクトを使用したジョブ (オブジェクト名にあるジョブ番号で識別) が活動状態でないとき、オブジェクトを削除することができます。
このコマンドを発行してからかなり経過しているのに QDPRCTL5 が終了しない場合、 *IMMED オプションを指定した ENDJOB コマンドを使用して、 このジョブと DB2 DataPropagator (AS/400 版) で実行しているすべてのジャーナル・ジョブを終了させます。 収集プログラムだけを終了させたい場合には、 同じサブシステムで実行している変更適用ジョブを終了させないでください。
まれに、ジョブ QDPRCTL5 が異常終了すると、 QDPRCTL5 によって作成されたジャーナル・ジョブが終了しない場合があります。 こうしたジョブを終了させる唯一の方法は、*IMMED または *CNTRLD オプションのいずれかを指定した ENDJOB コマンドを使用することです。
DPR 収集プログラムの初期設定 (INZDPRCAP) コマンドは、 ソース表の更新済みリストを使って作動するよう収集プログラムに指示することにより、 収集プログラムを初期設定します。
プログラムの制御下にあるソース表は、収集プログラムの実行中に変更することができます。 INZDPRCAP コマンドを使用して、 収集プログラムが最新の複製ソースを処理するようにします。
収集プログラムの実行中にチューニング・パラメーターの値を変更する場合には、 新しい値を使ってプログラムを再初期設定するために INZDPRCAP コマンドを入力します。
このコマンドを実行する前に、収集プログラムを実行していなければなりません。
>>-INZDPRCAP----+----------------------+------------------------> | .-7--. | '-DPRVSN(--+-5--+---)--' >-----+-------------------------------------------------+------>< | .-*ALL-----------------------------. | | | .-----------------------------. | | | | V | | | '-JRN(--+----library-name/journal-name---+-+---)--'
表 19. INZDPRCAP コマンド・パラメーター定義 (AS/400 用)
パラメーター | 定義およびプロンプト |
---|---|
DPRVSN | 初期設定する収集プログラムのバージョンを指定します。
|
JRN | 最大 50 のジャーナルのサブセットを収集プログラムが使用して作動するように指定します。
収集プログラムは、現在このジャーナルに記録されているすべてのソース表の処理を開始します。
|
STRDPRCAP コマンドに対する CLNUPITV パラメーターは、 収集プログラムが CD 表と UOW 表からの古いレコードを枝取りするまで待機する時間の最大長 (時間) を指定します。 CLNUPITV パラメーターについて詳しくは、 収集プログラム (AS/400 版) の開始を参照してください。
枝取りをしても DASD を回復することはできません。 DASD を回復するには、CD 表や UOW 表に対して、 頻繁に RGZPFM (物理ファイル・メンバーの再編成) コマンドを発行する必要があります。 RGZPFM コマンドは、 アクティブな行を前方に移動することにより、削除されたスペースを再利用します。 このコマンドを実行するには、ファイルとメンバーの EXCLRD ロックが必要です。また、 収集および変更適用プログラムを実行していないときにスケジューリングする必要があります。
重要: 1 週間に 1 度 RGZPFM コマンドを発行してください。
STRDPRCAP コマンドに対する RESTART パラメーターの値が、 収集プログラムがウォーム・スタートとコールド・スタートを処理する方法を制御します。
ほとんどの場合、ウォーム・スタート情報は保管されます。 ときどき、ウォーム・スタート情報が保管されないことがあります。 そのような場合、収集プログラムは、CD 表、UOW 表、または枝取り制御表を使用して、 それが停止した時刻に再同期します。
場合によっては、ウォーム・スタートが指定されていても、 収集プログラムは自動的にコールド・スタートに切り替えます。 AS/400 システムでは、コールド・スタートはジャーナルによるジャーナル方式で動作します。 それで、たとえば、ジャーナルがラグの限界を超える場合、 そのジャーナルを使用するすべての複製ソースは、 別のジャーナルを使用する複製ソースがコールド・スタートでなくても、 コールド・スタートで開始します。
収集プログラムが様々なタイプのジャーナル項目を処理する方法について詳しくは、 表 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 を参照してください。 |
注:
|
他のジャーナル項目タイプはすべて、収集プログラムによって無視されます。
複製管理者のユーザー ID および *APPLY 権限を授与されているユーザーは、 この部分に示されているコマンドを使用して、変更適用プログラム (AS/400 版) の以下の作業を実行することができます。
ここでは、追加されている 2 つの変更適用プログラムの操作についても説明します。
リモート・システムで使用するために、 SQL パッケージと DPR パッケージを作成することができます。 以下のコマンドを発行して、これらのパッケージを作成することができます。
>>-CRTDPRPKG----+---------------------+-------------------------> | .-7--. | '-DPRVSN--+-5--+---)--' >-----+-----------------------+---+------------------------+--->< | .-*ALL---. | | .-*ALL-----. | '-TYPE--+-*APPLY-+---)--' '-RDB--+-rdb-name-+---)--' '-*ADMIN-'
表 21. CRTDPRPKG コマンド・パラメーター定義 (AS/400 用)
パラメーター | 定義およびプロンプト |
---|---|
DPRVSN | 使用する DB2 DataPropagator (AS/400 版) パッケージのバージョンを指定します。
|
TYPE | 作成される DB2 DataPropagator (AS/400 版) パッケージを指定します。
|
RDB | パッケージを作成するリレーショナル・データベースを指定します。
次のような場合には、パッケージは作成されません。
|
パッケージは ASN 修飾子を使って作成されます。 それらは、AS/400 プラットフォーム用の DB2 UDB の ASN ライブラリーに作成されます。 他のプラットフォームの場合、許可 ID ASN が使用されます。
DB2 DataPropagator (AS/400 版) パッケージが作成されると、このコマンドは *PUBLIC 権限をパッケージに授与して、DB2 DataPropagator (AS/400 版) ユーザーが使用できるようにします。
システムは、パッケージのそれぞれの作成試行に関連付けられた SQL メッセージを含むスプール・ファイルも作成します。
変更適用プログラムを開始する前に、次のことを確認してください。
重要: サブスクリプション・セットを定義すると、 基本キー索引が作成されます。 このキーを誤って削除しないようにしてください。
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 パラメーターに指定した値を無視して使われます。
|
JOBD | 変更適用プログラムを実行依頼するときに使用するジョブ記述の名前を指定します。
|
DPRVSN | 開始する変更適用プログラムのバージョンを指定します。
|
APYQUAL | 変更適用プログラムのインスタンスが変更適用修飾子を使用するように指定します。
この変更適用修飾子を使って一緒のグループに入れられるサブスクリプションはすべて、
この変更適用プログラムのインスタンスによって実行されます。
|
CTLSVR | 共通制御表が置かれる制御サーバーを指定します。
|
TRACE | 変更適用プログラムがトレースを生成するかどうかを指定します。
変更適用プログラムがトレースを生成すると、
そのトレースは QPZSNATRC と呼ばれるスプール・ファイルに出力されます。
|
FULLREFPGM | 変更適用プログラムが、出口ルーチンを呼び出して、
ターゲット表を初期設定するかどうかを指定します。
変更適用プログラムが、ターゲット表を全最新表示する必要があると判定すると、
全最新表示を行わずに、指定した出口ルーチンを呼び出します。
全最新表示出口ルーチンが変更適用プログラムで使用される場合、 適用追跡表にある ASNLOAD 列の値は Y です。
詳しい情報と使用例については、ASNLOAD 出口ルーチン (AS/400 用) を使ったターゲット表の最新表示を参照してください。
|
SUBNFYPGM | 変更適用プログラムがサブスクリプション・セットの処理を終了するとき、
出口ルーチンを呼び出すかどうかを指定します。
出口ルーチンへの入力データは、セット名、変更適用修飾子、完了状況、
および統計 (拒否回数を含む) で構成されています。
通知プログラムを使用すると、UOW 表を検査して、 拒否されたトランザクションを判別することができます。それから、 メッセージの発行やイベントの生成などの処理を行うことができます。
詳しくは、ASNDONE 出口ルーチン (AS/400 用) の使用を参照してください。
|
INACTMSG | 変更適用プログラムが作業を完了して、一定の期間活動状態でなくなるとき、
メッセージを生成するかどうかを指定します。
|
ALWINACT | 変更適用プログラムが、非活動状態 (スリープ) で実行できるかどうかを指定します。
|
DELAY | 連続複製が使用される場合に、
それぞれの変更適用プログラムのサイクルの終わりにおける遅延時間 (秒単位) を指定します。
|
RTYWAIT | エラーが生じた場合に、
失敗した操作を再試行するまで変更適用プログラムが待機する時間 (秒単位) を指定します。
|
システムの QSTRUPPGM システム値で参照されるコマンドを追加することにより、 サブシステムを自動的に開始するようシステムを設定することができます。 QDPR/QZSNDPR サブシステムを使用する場合、 それは STRDPRAPY コマンド処理の一部として開始されます。
CTLSVR パラメーターを同時に指定したリレーショナル・データベース (RDB) が DB2 UDB (AS/400 版) である場合、サーバーにある表は ASN ライブラリーで検出されます。 RDB が DB2 UDB (AS/400 版) データベースでない場合、ASN を修飾子として使って、 表にアクセスすることができます。
以下のいずれかの状態が生じると、 STRDPRAPY コマンドはエラー・メッセージを戻します。
変更適用プログラム・インスタンスは、各サブスクリプション・セット表のそれぞれの固有な変更適用修飾子に応じて開始する必要があります。 STRDPRAPY コマンドを発行するごとに、 別の変更適用修飾子を指定して、複数の変更適用処理を開始することができます。 これらの変更適用処理は、同じユーザー・プロファイルの下で実行します。
各変更適用処理は、変更適用修飾子と制御サーバー名の両方を使って識別されます。 実行時には、変更適用処理に応じて始まるジョブに十分な外部属性がないため、 特定の変更適用修飾子と制御サーバーとの組み合わせに関連付けられている変更適用処理を正確に識別することはできません。 そのため、以下に示す方法でジョブが識別されます。
通常、以下に示す 2 つの条件が当てはまれば、 QZSNDPR で実行中のジョブのリストを表示することにより、正しい変更適用プログラムを識別することができます。
特定の時に変更適用プログラムを開始するには、 ADDJOBSCDE コマンドを使用します。
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 でない場合、このパラメーターは無視されます。
この場合、これは変更適用プログラムのインスタンスと関連付けられている変更適用修飾子です。
|
OPTION | 変更適用プログラムを終了する方法を指定します。
|
DPRVSN | 終了する変更適用プログラムのバージョンを指定します。
|
APYQUAL | 変更適用プログラムのインスタンスが使用する変更適用修飾子を指定します。
この変更適用修飾子を使って一緒のグループに入れられるサブスクリプションはすべて、
そのインスタンスによって実行されます。
|
CTLSVR | バージョン 7 の制御表が置かれるリレーショナル・データベースの名前を表します。 |
ENDDPRAPY コマンドは、APYQUAL および CTLSVR パラメーターの値を使用して、参照済みの変更適用プログラムのジョブ名、ジョブ番号、 およびジョブ・ユーザーに応じた変更適用ジョブ表を検索し、そのジョブを終了します。
以下のいずれかの状態が生じると、 ENDDPRAPY コマンドはエラー・メッセージを発行します。
ここでは、ASNDONE 出口ルーチンの使用および ASNLOAD 出口ルーチンを使ったターゲット表の最新表示という、 変更適用プログラムに追加された 2 つの機能の実行に関する情報を提供します。
ASNDONE 出口ルーチンは、サブスクリプション処理が成功または失敗のどちらであるかに関係なく、 その処理後に変更適用プログラムがオプションとして呼び出すことのできるプログラムです。 それぞれの変更適用修飾子ごとに、別々のサブスクリプション通知プログラムを提供することができます。 ASNDONE 出口ルーチンに関する一般的な情報については、 ASNDONE 出口ルーチンの使用を参照してください。
ここでは、AS/400 環境に応じて ASNDONE ルーチンをカスタマイズすることに関する情報が含まれています。
サブスクリプション通知プログラムの作成時に、 以下の活動化グループに関連することを考慮してください。
このプログラムが新しい活動化グループを使って実行するために作成される場合: 変更適用プログラムとサブスクリプション通知プログラムは、 SQL リソース (RDB 接続およびオープン・カーソルなど) を共有しません。 AS/400 オペレーティング・システムにある活動化処理コードは、 制御が変更適用プログラムに戻される前に、 サブスクリプション通知プログラムによって割り振られたリソースをすべて解放します。 変更適用プログラムがサブスクリプション通知プログラムを呼び出すたびに、 追加のリソースが使用されます。
このプログラムが呼び出し側の活動化グループで実行するために作成される場合: それは変更適用プログラムと SQL リソースを共用します。 変更適用プログラムへの影響が最小限で済むようプログラムを設計します。 たとえば、現行のリレーショナル・データベース (RDB) 接続を変更すると、 予期しない変更適用プログラムの処理を引き起こす可能性があります。
このプログラムが名前付き活動化グループで実行するために作成される場合: それは変更適用プログラムとの間でリソースを共用しません。 名前付き活動化グループを使用すると、サブスクリプション通知プログラムが呼び出されるたびに、 活動化グループのオーバーヘッドは回避されます。 実行時のデータ構造および SQL リソースは、呼び出し間で共用されます。 変更適用プログラムが終了するまで、アプリケーションの終結処置は実行されません。 それで、サブスクリプション通知プログラムは、制御が変更適用プログラムに戻されるとき、 ソース表、ターゲット表、または制御表をロックすることにより、 変更適用プログラムでロックの競合が生じることがないように設計する必要があります。
変更適用プログラムを開始するとき、STRDPRAPY コマンドに対する SUBNFYPGM パラメーターを使って、サブスクリプション通知プログラムの名前を指定します。 たとえば、プログラムの名前が ASNDONE_1 でライブラリー APPLIB にある場合には、 次のコマンドを使用します。
SUBNFYPGM(APPLIB/ASNDONE_1).
ASNLOAD 全最新表示出口ルーチンは、次のような場合に変更適用プログラムによって呼び出されます。
サブスクリプション・セットの全最新表示が必要な場合、 変更適用プログラムは出口ルーチンを呼び出します。 それから、ターゲット表の全最新表示 (必要であれば) と、 サブスクリプション・セットにリストされている各ターゲット表の全最新表示を実行します。
変更適用プログラムの代わりに出口ルーチンを使用して、 もっと効率よく全最新表示を行うことができます。 たとえば、ソース表の各列および各行をターゲット表に複写している場合、 分散データ管理 (DDM) ファイルおよびファイルの複写 (CPYF) CL コマンドを使用する出口ルーチンの全最新表示を、 ソース表からターゲット表へとファイル全体を複写するように設計することができます。
出口ルーチンが非ゼロ・リターン・コードを戻す場合、 変更適用プログラムが処理する現行のサブスクリプション・セットは失敗します。 次回の反復まで、残されたサブスクリプション・セットの処理が行われることはありません。
サンプルの出口ルーチンのソースは、DB2 DataPropagator (AS/400 版) に含まれています。C、COBOL、および RPG 言語のサンプルは、以下の通りです。
コンパイラー言語 | ライブラリー名 | ソース・ファイル名 | メンバー名 |
---|---|---|---|
C | QDPR | QCSRC | ASNLOAD |
COBOL | QDPR | QCBLLESRC | ASNLOAD |
RPG | QDPR | QRPGLESRC | ASNLOAD |
別のプログラムを使用するよう変更適用プログラムに指示するには、変更適用プログラムを終了し、 別の STRDPRAPY コマンドを使って再度プログラムを開始する必要があります。
ASNLOAD を使用する予定の場合、以下の点に注意してください。
出口ルーチンは、完了時に変更を明示的にコミットするか、 または変更を暗黙的にコミットするためにコンパイルされる必要があります。 出口ルーチンの完了時にコミットされていない変更はすべて、 以下のいずれかが行われるまでコミットされることはありません。
オフセット (16 進数または 10 進数) | 種類 | フィールド |
---|---|---|
0 | BINARY(4) |
SQL ステートメント長 |
4 | Char(*) |
SQL 選択ステートメント |
変更適用プログラムがトレースを生成すると、そのトレースはスプール・ファイルに出力されます。 出口ルーチンが別々の活動化グループで実行されている場合、 その結果は別々のスプール・ファイルに出力されます。 出口ルーチンが呼び出し側の活動化グループで実行されている場合、 その結果は変更適用トレースと同じスプール・ファイルに出力されます。
トレース標識の値は、以下の通りです。