TIOT
TIOT(Task Input/Output Table)は、ジョブを実行するためのJCLに定義されたDDステートメントのテーブルです。ジョブ名やステップ名などが格納されるヘッダー部と個々のDDステートメントの名前、JFCBポインター、UCBアドレスなどが格納されるDDエントリーで構成されています。個々のDDステートメントに定義されたパラメーター情報はTIOTではなくJFCB(Job File Control Block)にあります。TIOTはIEFTIOT1マクロによってマッピングできます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
TIOT: 009C1FE8 JOB...... TKWORKE STEP..... GO MYASMPGM LN-STA DDNAME TTR-STC STB-UCB +0018 14010100 STEPLIB 9E0A5800 80F3AF60 +002C 14010102 SYSPRINT 9D431800 80000000 +0040 14010102 SYSUDUMP 9D449800 80000000 +0054 14010100 DATA1 9D461800 80F35B70 --+ デバイスの +0068 14010100 DATA2 9D479800 80F3B648 +--> UCBアドレス +007C 14010100 DATA3 9D491800 80F35B70 --+ ~~~~~~この3バイトがJFCBアドレス +0090 ***FREE TIOT SPACE*** JES2起動パラメーターにJOBCLASS SWA=ABOVEが指定されたジョブクラスの場合 TIOT: 009C4FE8 JOB...... TKWORKE STEP..... GO MYASMPGM LN-STA DDNAME TTR-STC STB-UCB +0018 14010100 STEPLIB 0002FF00 80F3AF60 +002C 14010102 SYSPRINT 00034F00 80000000 +0040 14010102 SYSABEND 00037F00 80000000 +0054 14010100 DATA1 0003AF00 80F35B70 +0068 14010100 DATA2 0003DF00 80F3B648 +007C 14010100 DATA3 00040F00 80F35B70 ~~~~~~この3バイトはJFCBのアドレストークン +0090 ***FREE TIOT SPACE*** |
TIOTのDDエントリーのJFCBポインターは3バイトです。JES2起動パラメーターのJOBCLASSステートメントにSWA=ABOVEが指定されているジョブクラスでは、JFCBは拡張SWA領域に展開されるためTIOTはJFCBアドレスを直接ポイントしません。3バイトフィールドに入っているのはSWAプール内の位置を示すアドレス・トークン値となります。このトークン値から実際のアドレスを求めるにはSWAREQマクロを使用しますが、ダンプ・リスト上で探す場合は「SWA BLOCK POOL 1」の文字列でダンプ・リストをスキャンして見つけ、そのアドレスにトークン値に8を乗じた値を加えれば、大凡の位置を知ることができます。TIOTおよびJFCBはSWA領域にあるため、ダンプ出力のSDATAオプションでSWAが追加指定されていないと書き出されません。
JFCB
JFCB(Job File Control Block)は、DDステートメントに定義されたパラメーター情報を格納したコントロール・ブロックです。ここを参照すれば、元のJCLがなくてもジョブのJCLにどのようなDDステートメントが定義されていたかを知ることができます。ただし、サブミットしたJCLやジョブ・ログなどで元のJCLはわかるため、実際にJFCBからJCLのDDステートメントを復元するようなことは行われません。JFCBはIEFJFCBNマクロによってマッピングできます。
オフセット | フィールド名 | 意味、内容 |
---|---|---|
+x00 | JFCBDSNM | DSNパラメーターに指定されたあるいはシステムが割り当てたDSNAME |
+x2C | JFCBELNM | DSNに続けて()で指定されたメンバー名あるいはGDGの世代番号 |
+x57 | JFCBIND2 | DISPパラメーターの内容を示すフラグバイト |
+x64 | JFCRECFM | DCBパラメーターで指定されたRECFM値 |
+x76 | JFCBVOLS | VOLパラメーターで指定されたボリューム名 |
+x98 | JFCBPQTY | SPACEパラメーターで指定された1次スペース量 |
+x9B | JFCBCTRI | SPACEパラメーターで指定された割り当てタイプを示すフラグバイト |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
+- TIOTのポインターが示すのはここ。 I RDJFCBマクロで読み込まれるデータやIEFJFCBNマクロで I マッピングされるデータは、ここから16バイト離れた ★ ところから始まる。 009D4600 009D46E8 009D47A8 009D53A8 00000000 00000000 00000000 00000050 889D4618 *...Y...y...y...............&h...* 009D4620 1C0000B0 D1C6C3C2 E3C5E2E3 4BC9D5D7 E4E3F240 40404040 40404040 40404040 *....JFCBTEST.INPUT2 * 009D4640 40404040 40404040 40404040 40404040 40404040 40404040 40404040 8000060F * ....* 009D4660 00000000 00000000 00000200 00000000 00000000 00000000 70011100 00000048 *................................* 009D4680 00020000 00000000 00004000 90000200 00400000 00000000 00000000 0001E6D6 *.......... ...... ............WO* 009D46A0 D9D2E9F4 40404040 40404040 40404040 40404040 40404040 40404040 009D52D8 *RKZ4 ...Q* 009D46C0 000000C0 00000100 00000000 00000000 00000000 00000100 00000052 889D46D8 *...{........................h..Q* 009D46E0 030000B0 E2C9D6E3 9D46D803 C4C1E3C1 F3404040 40404040 40404040 00000000 *....SIOT..Q.DATA3 ....* 009D4700 00000000 00000000 9D491800 00000001 00000002 00064400 00010000 08010108 *................................* 009D4720 08000100 3010200F 00F35B70 40404040 40404040 40404040 40000000 009CFA50 *.........3$. ......&* 009D4740 009E0398 00000000 01800000 015F0000 40404040 00000019 7FFAD220 00000000 *...q.........^.. ....".K.....* 009D4760 00004040 40404040 40400000 00000000 00000000 00000000 00000000 009BFC68 *.. ......................* |
DEB
DEBは、MVSがデータセットのI/Oをコントロールするために作成されるコントロール・ブロックで、DCBがオープンされる時に作成されます。DCBはデータセットをオープンするプログラムが用意するアクセス方式(QSAMやBPAMなど)に対するパラメーター領域ですが、DEBはMVSがI/Oの制御やDASDデータセットがボリューム上のどの範囲にあるのかを示すエクステント・アドレスなどが記述されたもので、アプリケーション・プログラムが直接参照したり書き込んだりするものではありません。DEBはIEZDEBマクロによってマッピングできます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
-DEB--------------------------------------AT LOCATION 009D030C ----- -24 DEBAVT 00FD3BA4 80E55460 DEBPCIA 00FD3BA4 DEBCEA 80E52000 DEBXCEA 00E52018 -10 PREFIX 00000000 0000060F EXTNSION 009D0290 LENGTH 11 AMTYPE 20 TBLOF 0004 +0 TCBADR 039D1E88 NEXTDEB 10000000 IRBADR 68000000 PATB 00001100 +10 USRPG 01000000 RRQ FF000000 DCBADR 8F007EB0 APPADR 049D02E8 AMTYPE=20は順次または区分アクセスを示す +20 50F35B70 00000326 00000326 000E000F ~~~~ ~~~~~~ プログラムが用意したDCBのアドレス UCBアドレス(最初のエクステント) +30 00010001 00000000 00000000 00000040 +40 F3C2C1D8 C1C30000 00000000 00000000 +50 00000000 00000000 00000000 00000000 +60 009D06B0 ここから以降は、ダンプ出力のSDATAオプションでDMやIOが追加指定されていないと書き出されない。 -DCB- (QSAM) AT LOCATION 00007EB0 ----- +10 002FE5A2 050085F8 00004000 00006D68 02007E9E 90000000 00545000 009D030C +30 12D73030 00D6B918 0A000001 02090200 30013030 00006E28 00008A00 00008800 +50 00000040 00000000 00000000 00E576F8 -IOB- (SAM,BPAM-NORMAL SCHEDULING) AT LOCATION 00006E30 ----- -8 20006E78 7F000000 +0 FLAG 0200 SENS 0000 ECBPT 00006E2C CSW 00006E60 0C000000 +10 START 00000000 DCBPT 00007EB0 RESTR 00000000 VARIABLE 00000000 : : FOR DEB AT LOCATION 009D030C ------------------- -UCB- (DIRECT ACCESS TYPE) AT LOCATION 00F35B70 ----- UCBPRFIX: 00F35B68 -0008 LOCK..... 00000000 IOQ...... 00F44580 UCBOB: 00F35B70 +0000 JBNR..... 01 FL5...... 88 ID....... FF STAT..... 8C CHAN..... 0205 +0006 FL1...... 00 FLB...... 00 NXUCB.... 00F35BF8 WGT...... 00 NAME..... 205 +0010 TBYT1.... 30 TBYT2.... 10 DVCLS.... 20 UNTYP.... 0F FLC...... 00 +0015 EXTP..... F35B48 VTOC..... 00010100 VOLI..... WORKZ4 STAB..... 04 DMCT..... 02 +0024 SQC...... 00 FL4...... 00 USER..... 0007 UCBCMXT: 00F35B48 +0000 ETI...... 00 STI...... 00 FL6...... 09 ATI...... 40 SNSCT.... 20 +0005 FLP1..... AA STLI..... 00 FL7...... 08 IEXT..... 020721D0 CHPRM.... 00 +000D SATI..... 00 ASID..... 0016 RSV...... 00 WTOID.... 000000 DDT...... 00FC3B1C +0018 CLEXT.... 00F35B10 DCTOF.... 0000 CSFLG.... 00 RSV...... 00 UCBXPX: 020721D0 +0000 RSTEM.... 00 MIHKY.... 0C MIHTI.... 80 HOTIO.... 40 IOQF..... 00000000 +0008 IOQL..... 00000000 SIDA..... 0001 SCHNO.... 000F PMCW1.... 289C MBI...... 0006 +0014 LPM...... 80 RSV...... 00 LPUM..... 80 PIM...... 80 CHPID.... 02000000 +001C 00000000 LEVEL.... 01 IOSF1.... 08 IOTKY.... 00 MIHFG.... 00 +0024 LVMSK.... 00000001 ACTUAL UCB COMMON SEGMENT ADDRESS 00F35B70 |
ダンプにDEBがあるということは、ABENDした時点でオープンしていたデータセットがあることを示しています。ただし、ダンプ・リストではアプリケーション・プログラムがオープンしたデータセットだけでなく、ダンプ出力用のDEBもチェインされることになります。