![[z/OS]](ngzos.gif)
z/OS® でのログ印刷ユーティリティー (CSQ1LOGP)
このユーティリティーは、 IBM® MQ アクティブ・ログ・データ・セットまたはアーカイブ・ログ・データ・セットに含まれている情報 (メッセージを含む) を印刷するために使用します。
CSQ1LOGP の標準的な使用法
- 1 つ以上のデータ・セット内のすべてのログ・レコードを表示する。
- 1 つ以上のデータ・セットから特定の範囲のログ・レコードを表示する。 この範囲は、RBASTART および RBAEND パラメーターを使用して相対バイト・アドレス (RBA) で定義することも、LRSNSTART および LRSNEND パラメーターを使用してログ・レコード・シーケンス番号 (LRSN) で定義することもできます。
- URID パラメーターを使用した、1 つ以上の特定のリカバリー単位 ID (URID) のログ・レコードの表示。
- DATA パラメーターを使用して、特定のデータを含むログ・レコードを表示する。
- PAGESET パラメーターを使用して、特定のページ・セットに関連するログ・レコードを表示する。
- RM パラメーターを使用して、特定の IBM MQ リソース・マネージャーに関連するログ・レコードを表示する。
- 一連の基準を満たすログ・メッセージを後続の処理のためにデータ・セットに書き込む。これには、それらのメッセージをキューに送信することも含まれます。 CSQ4LOGS を使用した CSQ1LOGP EXTRACTからの出力の処理を参照してください。 これは、アプリケーションが持続メッセージを誤って処理する場合に役立ちます。これらのメッセージは、ログから取得して元のキューに送り返して、修正されたアプリケーションが再び処理できるようにすることができるためです。
- 一連の基準を満たす変更済みオブジェクトを、後続の処理のためにデータ・セットに書き込む。
データ定義ステートメント
CSQ1LOGP は、使用方法に応じていくつかの異なる DD ステートメントを使用します。
- SYSPRINT
- すべてのエラー・メッセージ、例外条件、および詳細レポートが、 このデータ・セットに書き込まれます。 論理レコード長 (LRECL) は 131 です。
少なくとも 1 つの BSDS、 ACTIVEn、または ARCHIVE DD ステートメントを指定する必要があります。
- ACTIVEn
- 印刷したいアクティブ・ログ・データ・セットの名前 (n = 番号)。例えば、 ACTIVE1。
- ARCHIVE
- 印刷する 1 つ以上のアーカイブ・ログを連結したもの。 複数のアーカイブ・ログを指定する場合は、ギャップのない連続した範囲のログを表す必要があります。
- BSDS
- アクティブ・ログ・データ・セットまたはアーカイブ・ログ・データ・セットを見つけるブートストラップ・データ・セット (BSDS) の名前。 RBASTART または LRSNSTART を指定する必要があることに注意してください。
- SYSIN
- 入力選択基準を、このデータ・セットに指定することができます。 詳しくは、 入力制御パラメーター を参照してください。 選択基準が指定されていない場合は、すべてのログ・レコードが印刷されます。
論理レコード長 (LRECL) は 80 である必要がありますが、1 桁目から 72 桁目だけが有効であり、73 から 80 桁目は無視されます。 最高 50 レコードを使用できます。 1 桁目にアスタリスク (*) が付いたレコードは注釈として解釈され、無視されます。
- SYSSUMRY
- 要約報告書を要求する場合は、パラメーター SUMMARY ( YES ) を指定します。 または SUMMARY ( ONLY)の場合、出力はこのデータ・セットに書き込まれます。 論理レコード長 (LRECL) は 131 です。
- CSQBACK
- このデータ・セットには、指定されたログ範囲中にロールバックされた作業単位によりログに書き込まれる持続メッセージが含まれます。
- CSQCMT
- このデータ・セットには、指定されたログ範囲中にコミットされた 作業単位によりログに書き込まれた持続メッセージが含まれます。
- CSQBOTH
- このデータ・セットには、指定されたログ範囲中にコミットまたはロールバックされた 作業単位によりログに書き込まれた持続メッセージが含まれます。
- CSQINFLT
- このデータ・セットには、指定されたログ範囲中に未完了のまま残った作業単位によりログに書き込まれた持続メッセージが含まれます。
- CSQOBJS
- このデータ・セットには、指定されたログ範囲中に発生した オブジェクト代替に関する情報が含まれます。
入力制御パラメーター
これらのパラメーターは、SYSIN データ・セット内になければならず、処理されるログ・レコードを制限するためのさまざまな選択基準を指定する必要があります。 次のとおりです。
- LRSNSTART(16 進定数)
- 処理を開始する論理レコード・シーケンス番号 (LRSN)
を指定します。 このキーワードは、RBASTART と一緒に使用することはできません。 使用するキュー・マネージャーがキュー共有グループに入っている場合は、このキーワードを指定してください。
LRSN 値は、常に、A00000000000 より大きくなければなりません。これより小さい値を指定すると、この値が開始値として使用されます。
STARTLRSN、STRTLRSN、または LRSNSTRT の形式を使用することもできます。 このキーワードは、1 回だけ指定してください。
- LRSNEND(16 進定数)
- 走査の対象となる最後のレコードの論理レコード・シーケンス番号 (LRSN)を指定します。 デフォルトは FFFFFFFFFFFF (データ・セットの終わり) です。 このキーワードを使用する場合は、LRSNSTART と一緒に使用しなければなりません。
ENDLRSN の形式を使用することもできます。
このキーワードは、1 回だけ指定してください。
- RBASTART(16 進定数)
- 処理の開始位置を示すログ RBA を指定します。 このキーワードは、LRSNSTART と一緒に使用することはできません。
STARTRBA または ST の形式を使用することもできます。 このキーワードは、1 回だけ指定してください。
- RBAEND(16 進定数)
- 処理の終わりの位置を示す有効なログ RBA を指定します。 このキーワードを省略すると、処理はログの終わり (6 バイトの RBA を使用している場合は FFFFFFFFFFFF、8 バイトの RBA を使用している場合は FFFFFFFFFFFFFFFF) まで続行します。 このキーワードを使用する場合は、RBASTART と一緒に使用しなければなりません。
ENDRBA または EN の形式を使用することもできます。 このキーワードは、1 回だけ指定してください。
- PAGESET(10 進整数)
- ページ・セット ID を指定します。 値は 00 から 99 の範囲でなければなりません。 最大 10 個の PAGESET キーワードを指定することができます。 PAGESET キーワードを指定すると、指定したページ・セットに関連するログ・レコードだけが処理されます。
- URID (16 進定数)
- 16 進数のリカバリー単位 ID を指定します。 データの変更は、 IBM MQ リカバリー単位のコンテキストで行われます。 リカバリー単位は、BEGIN UR レコードによって、ログ上で識別されます。 その BEGIN UR レコードのログ RBA が、使用しなければならない URID の値です。 対象とする特定の UR の URID が分かっている場合は、ログからの情報の抽出を、その URID に限定することができます。
16 進定数は、1 から 16 文字 (8 バイト) で構成することができ、先行のゼロは必要ありません。
最大 10 個の URID キーワードを指定することができます。
- DATA (16 進文字列)
- データ・ストリングを 16 進数で指定します。
このストリングは、2 文字以上 48 文字以下 (24 バイト) で構成できますが、その文字数は偶数にする必要があります。
最大 10 個の DATA キーワードを指定することができます。
複数の DATA キーワードを指定すると、指定したストリングの少なくとも 1 つを含むログ・レコードだけが処理されます。注: DATA パラメーターと EXTRACT パラメーターを一緒に使用することはできますが、 IBM MQの内部実装について十分に理解していない限り、出力から確実に意味を得ることは困難です。 その理由は、要求された DATA が含まれる低位レベルの個々のログ・レコードだけが処理されるためです。したがって、DATA シーケンスが実際に示されているレコードだけが抽出され、データに論理的に関連付けられた完全な出力は抽出されません。 この場合、例えば、書き込みメッセージと関連付けられたレコードだけが取得され、取得メッセージと関連付けられたレコードは取得できないことや、長いメッセージの最初の部分だけが取得され、要求された DATA ストリングを含まない他のログ・レコード内にある残りのメッセージ部分は取得できないことがあります。 - RM (資源マネージャー)
- 特定の資源マネージャーを指定します。 ここで指定した資源マネージャーに関連するレコードのみが処理されます。 このキーワードの有効値は、次のとおりです。
- RECOVERY
- 回復ログ・マネージャー
- データ
- データ・マネージャー
- BUFFER
- バッファー・マネージャー
- IMSBRIDGE
- IMS ブリッジ
- SUMMARY(YES|NO|ONLY)
- 要約レポートを作成するかどうかを指定します。
- YES
- 詳細レポートのほかに、要約レポートを作成します。
- NO
- 要約レポートを作成しません。
- ONLY
- 要約レポートのみを作成します (詳細レポートは作成しません)。
- EXTRACT(YES|NO)
- EXTRACT (YES) を指定すると、 EXTRACT パラメーターのページで説明されているように、入力選択基準を満たす各ログ・レコードが適切な出力ファイルに書き込まれます。 デフォルトは NO です。注: DATA パラメーターと EXTRACT パラメーターを一緒に使用することはできますが、 IBM MQの内部実装について十分に理解していない限り、出力から確実に意味を得ることは困難です。 その理由は、要求された DATA が含まれる低位レベルの個々のログ・レコードだけが処理されるためです。したがって、DATA シーケンスが実際に示されているレコードだけが抽出され、データに論理的に関連付けられた完全な出力は抽出されません。 この場合、例えば、書き込みメッセージと関連付けられたレコードだけが取得され、取得メッセージと関連付けられたレコードは取得できないことや、長いメッセージの最初の部分だけが取得され、要求された DATA ストリングを含まない他のログ・レコード内にある残りのメッセージ部分は取得できないことがあります。
- DECOMPRESS(YES|NO)
- 圧縮ログ・レコードを解凍するかどうかを指定します。
- YES
- 圧縮されたログ・レコードは、検索、印刷、または抽出機能が実行される前に展開されます。
- NO
- どの圧縮ログ・レコードも、検索機能または印刷機能が実行される前には解凍されません。 抽出機能では DECOMPRESS (NO) を使用しないでください。
EXEC パラメーター
//PRTLOG EXEC PGM=CSQ1LOGP,PARM='TIME(RAW)'これにより、タイム・スタンプは、フォーマット・システムのタイム・ゾーンまたはうるう秒オフセットを適用せずにフォーマットされます。 この操作モードは、リモート・サイトで作成されたログ・データを形式設定するときに使用できます。例えば、夏時間調整の変更の前などです。
パラメーターが指定されていない場合、デフォルトの動作では、フォーマット設定を行うシステムのタイム・ゾーンおよびうるう秒の訂正を使用してタイム・スタンプがフォーマット設定されます。
- チェックポイント時間
- 再開時間
- UR 開始時間
使用上の注意
- キュー・マネージャーがキュー共有グループ内にある場合は、
LRSNSTART (オプションで LRSNEND を指定可能) または RBASTART (オプションで RBAEND を指定可能) で必要となるログ範囲を指定できます。 LRSN と RBA を一緒に指定することはできません。
キュー共有グループ内の別のキュー・マネージャーのログ情報を調整する必要がある場合は、LRSN 指定を使用してください。 キュー共有グループ内の異なるキュー・マネージャーから同時にログを処理することはサポートされていません。
- キュー・マネージャーがキュー共有グループ内にない場合は、 LRSN 指定は使用できません。その場合は、RBA 指定を使用する必要があります。
- CSQ1LOGP は、LRSNSTART または RBASTART で指定した値より大きいか等しい LRSN または RBA 値が入っている最初のレコードから処理を開始します。
- 通常は、ログに追加された最新のものだけが必要となります。 ログ範囲の先頭には、適切な値を注意深く選択するようにし、 デフォルトは使用しないでください。 適切な値を指定しないと、ほとんど必要のない大量のデータが生成されてしまいます。
CSQ1LOGP 出力
- 詳細レポート
- 詳細レポートは、はじめに SYSIN で指定された入力選択基準をエコーして、 その後に、取り出されたそれぞれの有効なログ・レコードを印刷します。 詳細レポートのキーワードの定義は次のとおりです。
- RM
- ログ・レコードを書き込んだ資源マネージャー
- タイプ
- ログ・レコードの種類
- URID
- このリカバリー単位の BEGIN UR (上記参照)。
- LRID
AAAAAAAA.BBBBBBCCの形式での論理レコード ID。- AAAAAAAA
- ページ・セット番号
- BBBBBB
- ページ・セット内の相対ページ番号
- CC
- ページ上の相対レコード番号
- LRSN
- 走査されたログ・レコードの論理レコード・シーケンス番号 (LRSN)
- SUBTYPE
- ログ・レコード種別のサブタイプ
- CHANGE LENGTH
- ログに記録された変更の長さ
- CHANGE OFFSET
- 変更の開始位置
- BACKWARD CHAIN
- 前ページを指すポインター
- FORWARD CHAIN
- 次ページを指すポインター
- RECORD LENGTH
- 挿入されたレコードの長さ
- 出力データ・セットのレコード・レイアウト
- EXTRACT キーワードが指定されるときに生成されるデータ・セットには、 持続メッセージに関する情報が含まれます。 メッセージはキュー名と 8 文字のキーにより識別されます。 メッセージが取得されると、キーは別のメッセージが 再利用できるため、確実に時間順序が維持されることが重要です。 レコードには時刻があります。 タイム・スタンプは Begin-UR レコードまたは MQPUT 要求からのみ抽出できます。 そのため、 メッセージを取得中の長期実行トランザクションだけがある場合、取得が行われた時刻は、 トランザクションが開始された時刻となります (Begin-UR レコード)。 短い作業単位や書き込み中のメッセージが多数存在する場合、 時刻はかなり正確です (ミリ秒の範囲内)。 それ以外の場合は、時刻は次第に不正確になります。注: 各レコードの前には 4 バイトのレコード記述子ワードがあります。これは、ファイルが可変ブロック・フォーマットであるためです。 可変長レコードの最初のデータ・バイトの相対位置は 5 になり、最初の 4 バイトに、レコード記述子ワードが含まれます。 フィールド名は thlqual.SCSQC370 の C ヘッダー・ファイル CSQ4LOGD 内のフィールド名に対応します。
データ・セット内の情報は、次のレイアウトとなります。
表 1. 出力データ・セットのレコード・レイアウト オフセット (10 進数) オフセット (16 進数) タイプ 長さ 名前 説明 0 0 文字 21 csrecorddate ログが書き込まれた近似時刻。 形式は yyyy.ddd hh:mm:ss.thm となります。 21 15 文字 7 cstimedelta 作業単位の開始からの近似時差 (ミリ秒単位)。 右寄せされ、ブランクが埋め込まれます。 28 1C 64 ビット整数 8 dtodout ログ・レコードが作成された推定時刻。 形式は STCK です。 36 24 文字 8 csurid ログ・レコードを作成した作業単位のキュー・マネージャー固有 ID。 44 2C 文字 12 cscorrelator スレッド相関 ID。 56 38 文字 8 csauth 許可 ID (作業単位に関連するユーザー ID)。 64 40 64 ビット整数 8 dtime 作業単位を開始した時刻。 形式は STCK です。 72 48 文字 8 csresource リソース名 80 50 文字 8 cscnty 接続タイプ: BATCH、RRSBATCH、IMS、CICS®、CHIN のいずれか、または内部タスクの場合はヌル。 88 58 文字 8 cscnid この作業単位を作成したスレッドの接続 ID。 96 60 文字 3 csstatus 作業単位のタイプ: 開始の場合は BUR、チェックポイント情報の場合は CP。 99 63 整数 4 ldatalen メッセージ・データの長さ (存在する場合)。 103 67 文字 4 csqmgrname キュー・マネージャーの名前。 107 6B 文字 48 csqueuename 取得、書き込み、または期限切れメッセージのためのキューの名前。 このフィールドは疑問符 (?) になることがあります。 クエスチョンマークは、エントリーに関連するオブジェクト名やキュー名を決定できない場合に表示されます。 これは通常、URID が取得される可能性のある begin_ur レコードまたはチェックポイント・レコードが、ジョブで指定したログ範囲にも、使用されているログ・データ・セットにもないときに起こります。 155 9B 文字 12 cssqdmcp 共有キュー・メッセージのキー。 共有キューでない場合はブランク。 167 A7 文字 8 csdmcp 非共有キュー・メッセージのキー。 共有キューの場合はブランク。 175 AF 文字 8 csverb アクティビティー: - ALTER
- オブジェクトが変更された
- DEFINE
- オブジェクトが作成された
- MQGET
- メッセージが取得された
- MQPUT
- メッセージが書き込まれた
- EXPIRE
- メッセージの期限が切れた
- ABORT2
- メッセージがバックアウトされた
- PHASE1
- 2 フェーズ・コミットの最初のフェーズ
- PHASE2
- 2 フェーズ・コミットの 2 番目のフェーズ、または 1 フェーズ・コミットの唯一のフェーズ
183 B7 文字 1 cscmitstatus 作業単位の状況: - B
- バックアウト
- C
- コミット済み
- I
- 未完了 (inflight)
184 B8 文字 1 csshunt 延期標識: - S
- 延期されたレコード
- N
- 延期なし
185 B9 文字 8 cslogrba ログ・レコードの RBA 193 C1 文字 8 csshuntrba 延期されたログ・レコードの RBA 201 C9 文字 1 csuowscope UOW の有効範囲 (16 進数): - 01
- ローカル
- 02
- 共有
202 CA 整数 4 lsegment 1 から始まるデータのセグメント番号。 206 CE 変数 データ部分 206 CE 文字 1 csbora csverb が ALTER の場合、データがオブジェクトのコピーの '前' であるか '後' であるかを示します。 - B
- before
- A
- after
207 CF 文字 変数 csvardata メッセージまたはオブジェクト・データ。 長さは ldatalen で指定されます。 メッセージ・データは、MQMD の後にメッセージの本文が続きます。
CSQ1LOGP エラーおよびメッセージ
ここでは、 CSQ1LOGP のメッセージについて説明します ( サービス機能メッセージ)。
ここでは、 CSQ1LOGP の理由コードについて説明します ( リカバリー・ログ・マネージャー・コード)。
EXTRACT パラメーターを使用していない例
//PRTLOG EXEC PGM=CSQ1LOGP
//STEPLIB DD DISP=SHR,DSN=thlqual.SCSQANLE
// DD DISP=SHR,DSN=thlqual.SCSQLOAD
//BSDS DD DSN=qmgr.bsds.dsname,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSSUMRY DD SYSOUT=*
//SYSIN DD *
* extract records for page set 3. Produce both summary and detail reports
PAGESET(3)
SUMMARY(YES)
/*
//PRTLOG EXEC PGM=CSQ1LOGP
//STEPLIB DD DISP=SHR,DSN=thlqual.SCSQANLE
// DD DISP=SHR,DSN=thlqual.SCSQLOAD
//ACTIVE1 DD DSN=qmgr.logcopy1.ds01,DISP=SHR
//ACTIVE2 DD DSN=qmgr.logcopy1.ds02,DISP=SHR
//ACTIVE3 DD DSN=qmgr.logcopy1.ds03,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSSUMRY DD SYSOUT=*
//SYSIN DD *
* insert your input control statements here, for example:
URID(urid1)
URID(urid2)
/*
//PRTLOG EXEC PGM=CSQ1LOGP
//STEPLIB DD DISP=SHR,DSN=thlqual.SCSQANLE
// DD DISP=SHR,DSN=thlqual.SCSQLOAD
//ARCHIVE DD DSN=qmgr.archive1.ds01,DISP=SHR
// DD DSN=qmgr.archive1.ds02,DISP=SHR
// DD DSN=qmgr.archive1.ds03,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSSUMRY DD SYSOUT=*
//SYSIN DD *
* insert your input control statements here
/*
この EXTRACT パラメーターは、
- どの持続メッセージがキューに書き込まれ、キューから取得されるか、および 要求がコミットされたかどうかを検討する。 これにより、メッセージが再生されます。
- 書き込みまたは入力が行われたが、要求がバックアウトされた持続メッセージを検討する。
- コミットされずにバックアウトされたアプリケーションを表示する。
- キューにより処理された持続データのボリュームを検出し、 高使用率のキューを識別する。
- どのアプリケーションがオブジェクト属性を設定するかを識別する。
- 大きな障害の後の回復のためにオブジェクト定義を再作成する (プライベート・キューの場合のみ)。
- コミット要求が見つかったときに CSQCMT DD 名が存在する場合、 データはこのデータ・セットに書き込まれます。 CSQBOTH DD 名が存在する場合、データはこのデータ・セットにも書き込まれます。
- バックアウト要求が見つかったときに CSQBACK DD 名が存在する場合、 データはこのデータ・セットに書き込まれます。 CSQBOTH DD 名が存在する場合、データはこのデータ・セットにも書き込まれます。
- オブジェクトへの変更が検出されると、CSQOBJS DD 名によって識別されるデータ・セットに 情報が書き込まれます。
- 最後のレコードが処理されたときに、残りの作業単位に関する情報が、CSQINFLT DD 名によって 識別されるデータ・セットに書き込まれます。
- EXTRACT パラメーターを使用する例
- 注: 以下の例におけるレコードオフセットは、印刷制御文字を含まないデータセット、例えば
RECFM=VBに基づいています。 印刷制御文字を含むデータセット(例えば、VBA)では、オフセットを1増やす必要があります。 https://www.ibm.com/docs/en/zos/2.5.0?topic=SSLTBW_2.5.0/com.ibm.zos.v2r5.cbcpx01/recformat2.html をご覧ください。 オフセット調整の必要性を避けるため、 EXTRACT の出力にはRECFM=VBAではなくRECFM=VBを使用してください。