DSECT 情報を使用したストレージ域のマッピング
対話式レポートにおいて DSECT コマンドを使用すると、アセンブラー・マクロまたは DSECT サンプル集を含む PDS または PDSE データ・セット・メンバーに基づき、ストレージ域をマップできます。
DSECT コマンド (構文については DSECT を参照) は、任意の画面のコマンド行または PF キー割り当てによって入力できます。デフォルトでは、DSECT コマンドは PF4 に割り当てられています。
File View Services Help ┌─────────────────────────── Storage DSECT Mapping ───────────────────────────┐ │ │ │ Enter the name of the Dsect in the Dsect Name field to be used to map the │ │ storage address provided in the Address field. Press PF4 to display a list │ │ of all available Dsects. Optionally a specific Dsect can be used by │ │ supplying a Dataset and Member name in the DSN field. In this case if a │ │ Dsect name is not provided it will be made equal to the member name. │ │ │ │ Address │ │ Dsect Name │ │ DSN . . . │ │ │ │ │ │ F1=Help F3=Exit F12=Cancel │ └─────────────────────────────────────────────────────────────────────────────┘ First Operand Address . . : 0002A120 (3808 bytes of storage addressable) First Operand Length. . . : 8 First Operand Storage . . : 00000000 0986888C *.....fh.* Second Operand Address. . : 0002A110 (3824 bytes of storage addressable) Second Operand Length . . : 4 Second Operand Storage. . : C1C2C3CF *ABC.* F1=Help F3=Exit F5=RptFind F6=Actions F7=Up F8=Down F10=Left F11=Right
開始アドレス (まだ入力済みでない場合)、およびストレージ域のマッピング時に使用する DSECT の名前を入力できます。Address フィールドは 64 ビット対応です。詳しくは、64 ビット・アドレスの指定を参照してください。
DSECT の名前は次のいずれかの方法で提供できます。
- DSECT 名のみを入力します。この場合、一致する IDIDSECT 連結が検索されます (詳細については、IDIDSECT 連結を参照)。要求された DSECT が IDIDSECT 連結に複数ある場合、PF4 を押し、選択可能なすべての DSECT のリストから適切なものを選択します。「S」を使用すると DSECT をリストから選択でき、「E」を使用すると編集できます。
- 指定された DSECT が保管されたデータ・セットおよびメンバー名を入力します。DSECT 名が指定されない場合、PDS または PDSE メンバー名と同様の名前がデフォルトとして使用されます
File View Services Help ─────────────────────────────────────────────────────────────────────────────── Dsect mapping for DFHCSADS at address 4de20 Line 1 Col 1 80 Command ===> ________________________________________________ Scroll ===> CSR CICS DUMP: SYSTEM=QXPM2C61 CODE=ASRA ID= MVS2 2019/06/25 13:47:55 0004DE20 +0000 DSECT DFHCSADS DFHCSABA EQU * 0004DE20 +0000 00000248 0000D0A0 17EB4D00 983C1ECE 80BF4DA8 80800000 18685160 18642330 000003FD 18973FB8 00000BAF 00000000 983C1A40 18973000 18685160 18684B70 00051D80 17F90680 CSAOSRSA DS 18F CSASOSI DS 0B 0004DE68 +0072 00 CSASSI1 DS B CSAFPURG EQU X'80' CSAFTCAB EQU X'40' CSASDTRN EQU X'20' CSACSDOP EQU X'02' CSASOSON EQU X'01' CSAKCMI DS 0B 0004DE69 +0073 10 CSASSI2 DS B F1=Help F3=Exit F5=RptFind F6=Actions F7=Up F8=Down F10=Left F11=Right
さらに DSECT 情報を表示する必要がある場合は、上下左右にスクロールします。
PF3 を押すと、Storage DSECT Mapping Map 画面から戻ります。
IDISYSLB 連結
DSECT コマンドと IDIPDSCU ユーティリティーはどちらも内部的に ADATA を生成するアセンブラーを使用します。ADATA はフィールド名とオフセットを決定するために使用されます。アセンブラーが使用する syslib DD は、ソース DSECT と同じデータ・セットに動的に割り振られます。ただし、この割り振りは、アセンブラー・マクロを使用して DSECT を生成し、そのマクロが DSECT データ・セットに存在しない場合、不十分に実行される可能性があります。このような状況に対応するために、追加の syslib データ・セットを IDISYSLB DD に割り振ることで指定できます。
例えば、データ・セット MY.DSECTS には、CICS DFHSIT DSECT を生成するための 1 つのメンバー CICSSIT が含まれます。
000001 * GENERATE THE CICS DFHSIT DSECT
000002 DFHSIT TYPE=DSECT
000003 END
DSECT コマンドまたは IDIPDSCU ユーティリティーでこのデータ・セットまたはメンバーを使用しても、DFHSIT マクロが解決されないため、使用可能な DSECT は生成されません。このため、IDISYSLB DD を使用できます。例:
//UTIL1 EXEC PGM=IDIPDSCU,PARM=('MY.DSECTS')
//SYSPRINT DD SYSOUT=*
//SYSPUNCH DD SYSOUT=*
//IDISYSLB DD DISP=SHR,DSN=CICS.TS61.CICS.SDFHMAC
対話式再分析中に DSECT コマンドを使用する場合、または ISPF で IDIPDSCU を使用する場合は、次の TSO ALLOCATE コマンドを使用します。
ALLOCATE FILE(IDISYSLB) DS('CICS.TS61.CICS.SDFHMAC') SHR