[z/OS]

z/OS® でのログ印刷ユーティリティー (CSQ1LOGP)

このユーティリティーは、 IBM® MQ アクティブ・ログ・データ・セットまたはアーカイブ・ログ・データ・セットに含まれている情報 (メッセージを含む) を印刷するために使用します。

CSQ1LOGP の標準的な使用法

CSQ1LOGP は、以下の目的で使用できます。 データ・セットは、アクティブ・ログ、アーカイブ・ログ、またはその両方にすることができます。
  • 1 つ以上のデータ・セット内のすべてのログ・レコードを表示する。
  • 1 つ以上のデータ・セットから特定の範囲のログ・レコードを表示する。 この範囲は、RBASTART および RBAEND パラメーターを使用して相対バイト・アドレス (RBA) で定義することも、LRSNSTART および LRSNEND パラメーターを使用してログ・レコード・シーケンス番号 (LRSN) で定義することもできます。
  • URID パラメーターを使用した、1 つ以上の特定のリカバリー単位 ID (URID) のログ・レコードの表示。
  • DATA パラメーターを使用して、特定のデータを含むログ・レコードを表示する。
  • PAGESET パラメーターを使用して、特定のページ・セットに関連するログ・レコードを表示する。
  • RM パラメーターを使用して、特定の IBM MQ リソース・マネージャーに関連するログ・レコードを表示する。
  • 一連の基準を満たすログ・メッセージを後続の処理のためにデータ・セットに書き込む。これには、それらのメッセージをキューに送信することも含まれます。 CSQ4LOGS を使用した CSQ1LOGP EXTRACTからの出力の処理を参照してください。 これは、アプリケーションが持続メッセージを誤って処理する場合に役立ちます。これらのメッセージは、ログから取得して元のキューに送り返して、修正されたアプリケーションが再び処理できるようにすることができるためです。
  • 一連の基準を満たす変更済みオブジェクトを、後続の処理のためにデータ・セットに書き込む。
注: CSQ1LOGP のユーザーは、処理するアクティブ・ログまたはアーカイブ・ログ (あるいはその両方) のセットを直接指定するか、ブートストラップ・データ・セット (BSDS) の情報を使用して必要なログを見つけることができます。

データ定義ステートメント

CSQ1LOGP は、使用方法に応じていくつかの異なる DD ステートメントを使用します。

必要な DD ステートメント
SYSPRINT
すべてのエラー・メッセージ、例外条件、および詳細レポートが、 このデータ・セットに書き込まれます。 論理レコード長 (LRECL) は 131 です。

オプションの DD ステートメント

少なくとも 1 つの BSDSACTIVEn、または ARCHIVE DD ステートメントを指定する必要があります。

BSDS および関連するアクティブ・ログ・データ・セットが少なくとも SHAREOPTIONS (2 3) で定義されている場合は、キュー・マネージャーが実行されていても、 BSDS および ACTIVEn オプションを使用できます。
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 です。
キーワード EXTRACT(YES) を指定した場合、抽出するデータのタイプに従い、以下の DD ステートメントを 1 つ以上指定します。 LRECL はユーティリティーにより内部で設定されるため指定しないでください。 これらの DD ステートメントごとに、レコード・フォーマット (RECFM) は VB、論理レコード長 (LRECL) は 32756、ブロック・サイズ (BLKSIZE) は 32760 でなければなりません。
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
要約レポートのみを作成します (詳細レポートは作成しません)。
デフォルトは NO です。
EXTRACT(YES|NO)
EXTRACT (YES) を指定すると、 EXTRACT パラメーターのページで説明されているように、入力選択基準を満たす各ログ・レコードが適切な出力ファイルに書き込まれます。 デフォルトは NO です。
注: DATA パラメーターと EXTRACT パラメーターを一緒に使用することはできますが、 IBM MQの内部実装について十分に理解していない限り、出力から確実に意味を得ることは困難です。 その理由は、要求された DATA が含まれる低位レベルの個々のログ・レコードだけが処理されるためです。したがって、DATA シーケンスが実際に示されているレコードだけが抽出され、データに論理的に関連付けられた完全な出力は抽出されません。 この場合、例えば、書き込みメッセージと関連付けられたレコードだけが取得され、取得メッセージと関連付けられたレコードは取得できないことや、長いメッセージの最初の部分だけが取得され、要求された DATA ストリングを含まない他のログ・レコード内にある残りのメッセージ部分は取得できないことがあります。
DECOMPRESS(YES|NO)
圧縮ログ・レコードを解凍するかどうかを指定します。
YES
圧縮されたログ・レコードは、検索、印刷、または抽出機能が実行される前に展開されます。
NO
どの圧縮ログ・レコードも、検索機能または印刷機能が実行される前には解凍されません。 抽出機能では DECOMPRESS (NO) を使用しないでください。
デフォルトは「はい」です。

EXEC パラメーター

EXEC ステートメントには、オプション・パラメーター TIME(RAW) を使用できます。これは、タイム・スタンプの形式の設定方法を変更します。
//PRTLOG EXEC PGM=CSQ1LOGP,PARM='TIME(RAW)'

これにより、タイム・スタンプは、フォーマット・システムのタイム・ゾーンまたはうるう秒オフセットを適用せずにフォーマットされます。 この操作モードは、リモート・サイトで作成されたログ・データを形式設定するときに使用できます。例えば、夏時間調整の変更の前などです。

パラメーターが指定されていない場合、デフォルトの動作では、フォーマット設定を行うシステムのタイム・ゾーンおよびうるう秒の訂正を使用してタイム・スタンプがフォーマット設定されます。

このパラメーターの影響を受けて形式設定される時間は、以下のものと関連があります。
  • チェックポイント時間
  • 再開時間
  • UR 開始時間

使用上の注意

  1. キュー・マネージャーがキュー共有グループ内にある場合は、 LRSNSTART (オプションで LRSNEND を指定可能) または RBASTART (オプションで RBAEND を指定可能) で必要となるログ範囲を指定できます。 LRSN と RBA を一緒に指定することはできません。

    キュー共有グループ内の別のキュー・マネージャーのログ情報を調整する必要がある場合は、LRSN 指定を使用してください。 キュー共有グループ内の異なるキュー・マネージャーから同時にログを処理することはサポートされていません。

  2. キュー・マネージャーがキュー共有グループ内にない場合は、 LRSN 指定は使用できません。その場合は、RBA 指定を使用する必要があります。
  3. CSQ1LOGP は、LRSNSTART または RBASTART で指定した値より大きいか等しい LRSN または RBA 値が入っている最初のレコードから処理を開始します。
  4. 通常は、ログに追加された最新のものだけが必要となります。 ログ範囲の先頭には、適切な値を注意深く選択するようにし、 デフォルトは使用しないでください。 適切な値を指定しないと、ほとんど必要のない大量のデータが生成されてしまいます。

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、IMSCICS®、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 パラメーターを使用していない例

図1: BSDS を使用して CSQ1LOGP ユーティリティーを呼び出すためのサンプル JCL
//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)
/*
図2: 活動ログ・データ・セットを使用して CSQ1LOGP ユーティリティーを呼び出すためのサンプル JCL
//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)
/*
図3: 保存ログ・データ・セットを使用して CSQ1LOGP ユーティリティーを呼び出すためのサンプル JCL
//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 パラメーターは、

EXTRACT パラメーターは、一般に次の用途で使用されます。
  • どの持続メッセージがキューに書き込まれ、キューから取得されるか、および 要求がコミットされたかどうかを検討する。 これにより、メッセージが再生されます。
  • 書き込みまたは入力が行われたが、要求がバックアウトされた持続メッセージを検討する。
  • コミットされずにバックアウトされたアプリケーションを表示する。
  • キューにより処理された持続データのボリュームを検出し、 高使用率のキューを識別する。
  • どのアプリケーションがオブジェクト属性を設定するかを識別する。
  • 大きな障害の後の回復のためにオブジェクト定義を再作成する (プライベート・キューの場合のみ)。
EXTRACT パラメーター・セットを指定した CSQ1LOGP がログ・データ・セットに 対して実行されると、データ・セット内のすべてのレコードか、または 指定された範囲内のすべてのレコードが処理されます。 処理は次のとおりです。
  1. コミット要求が見つかったときに CSQCMT DD 名が存在する場合、 データはこのデータ・セットに書き込まれます。 CSQBOTH DD 名が存在する場合、データはこのデータ・セットにも書き込まれます。
  2. バックアウト要求が見つかったときに CSQBACK DD 名が存在する場合、 データはこのデータ・セットに書き込まれます。 CSQBOTH DD 名が存在する場合、データはこのデータ・セットにも書き込まれます。
  3. オブジェクトへの変更が検出されると、CSQOBJS DD 名によって識別されるデータ・セットに 情報が書き込まれます。
  4. 最後のレコードが処理されたときに、残りの作業単位に関する情報が、CSQINFLT DD 名によって 識別されるデータ・セットに書き込まれます。
これらの情報のクラスを収集しない場合は、 該当する 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 を使用してください。
図4: EXTRACT パラメーターを使用して、特定の RBA 範囲のアーカイブ・ログからコミットおよびバックアウトされたメッセージを抽出するためのサンプル JCL。
//PRTLOG  EXEC PGM=CSQ1LOGP
//STEPLIB  DD DISP=SHR,DSN=thlqual.SCSQANLE
//         DD DISP=SHR,DSN=thlqual.SCSQLOAD
//         DD DISP=SHR,DSN=thlqual.SCSQAUTH
//ARCHIVE  DD DSN=qmgr.archive1.ds01,DISP=SHR
//         DD DSN=qmgr.archive1.ds02,DISP=SHR
//         DD DSN=qmgr.archive1.ds03,DISP=SHR
//CSQBACK   DD DSN=backout.dataset,DISP=(NEW,CATLG)
//CSQCMT    DD DSN=commit.dataset,DISP=(NEW,CATLG)
//SYSIN    DD *
  RBASTART(startrba)
  RBAEND(endrba)
/*
以下のジョブは、DFSORT 機能を使用して CSQCMT からの出力を処理し、各キューに書き込まれたバイト数を合計します。
図 5. 各キューに書き込まれるバイトの累積
//TOOLRUN EXEC PGM=ICETOOL,REGION=1024K
//TOOLMSG  DD SYSOUT=*
//DFSMSG   DD SYSOUT=*
//TOOLIN   DD *
SORT FROM(IN) TO(TEMP1) USING(CTL1)
DISPLAY FROM(TEMP1) LIST(OUT1) ON(5,48,CH) ON(53,4,BI)
/*
//CTL1CNTL DD *
* SELECT THE RECORDS WHICH WERE PUT                                    
  INCLUDE COND=(180,5,CH,EQ,C'MQPUT')                                  
* SORT BY QUEUE NAME                                                   
  SORT FIELDS=(112,48,CH,A)                                            
* ONLY COPY THE QUEUE NAME AND SIZE OF USER DATA TO OUTPUT REC         
  OUTREC FIELDS=(1,4,112,48,104,4)                                     
* ADD UP THE NUMBER OF BYTES PROCESSED                                 
* SUM FIELDS=(104,4,FI)  
/*
//IN       DD DISP=SHR,DSN=commit.dataset
//TEMP1    DD DISP=(NEW,DELETE),DSN=&TEMP1,SPACE=(CYL,(10,10))
//OUT1     DD SYSOUT=*
CSQ4LOGSて、EXTRACT出力からメッセージを再生する方法については CSQ4LOGS CSQ1LOGPからの出力を処理する方法」 を参照してください。