(0) |
STRUCTURE |
* |
DFHVSWA |
VSAM work area |
(0) |
CHARACTER |
8 |
VSWA_SAA |
This section replaces the old storage accounting area |
(0) |
CHARACTER |
1 |
VSWACLS |
Stg class |
(1) |
CHARACTER |
1 |
* |
Reserved |
(2) |
UNSIGNED |
2 |
VSWALNTH |
Length of VSWA |
(4) |
ADDRESS |
4 |
VSWANXT |
Next VSWA on free chain |
(8) |
CHARACTER |
76 |
VSWARPL |
VSAM Request Parameter List |
(8) |
FULLWORD |
4 |
VSWAIDWD |
RPL identification word |
(8) |
UNSIGNED |
1 |
VSWAID |
RPL identifier |
(9) |
UNSIGNED |
1 |
VSWASTYP |
RPL subtype |
(A) |
UNSIGNED |
1 |
VSWAREQ |
Request type |
(B) |
UNSIGNED |
1 |
VSWARLEN |
RPL length |
(C) |
ADDRESS |
4 |
VSWAPLHP |
PLH address |
(10) |
ADDRESS |
4 |
VSWAECB |
Event control block (ECB) or address of ECB if VSWAECBS = '1'B |
(10) |
CHARACTER |
4 |
VSWAECBC |
ECB as string |
(14) |
CHARACTER |
4 |
VSWARESP |
RPL response bytes |
(14) |
UNSIGNED |
1 |
VSWASTAT |
RPL status flags |
(15) |
CHARACTER |
3 |
VSWAFDBK |
RPL feedback area |
(15) |
UNSIGNED |
1 |
VSWARTNC |
RPL return code |
(16) |
CHARACTER |
2 |
VSWACNDC |
RPL condition code |
(16) |
UNSIGNED |
1 |
VSWACMPN |
Component issuing the code |
(17) |
UNSIGNED |
1 |
VSWAERRC |
Error Code |
(18) |
HALFWORD |
2 |
VSWARKYL |
RPL key length |
(1A) |
HALFWORD |
2 |
VSWASTID |
RPL string identifier |
(1C) |
ADDRESS |
4 |
VSWACCHR |
Control character address |
(20) |
ADDRESS |
4 |
VSWAACB |
ACB address |
(24) |
ADDRESS |
4 |
VSWATCB |
TCB address |
(28) |
ADDRESS |
4 |
VSWAREA |
Area Address |
(2C) |
ADDRESS |
4 |
VSWAARG |
Argument address |
(30) |
CHARACTER |
4 |
VSWAOPTC |
Option codes |
(30) |
UNSIGNED |
1 |
VSWAOPT1 |
Option code byte 1 |
(30) |
1... .... |
|
* |
Reserved |
(30) |
.1.. .... |
|
VSWADIR |
Direct search access |
(30) |
..1. .... |
|
VSWASEQ |
Sequential access |
(30) |
...1 .... |
|
* |
Reserved |
(30) |
.... 1... |
|
VSWAASY |
Asynchronous request |
(30) |
.... .11. |
|
* |
Reserved |
(30) |
.... ...1 |
|
VSWAECBS |
VSWAECB has ADDR(ECB) |
(31) |
UNSIGNED |
1 |
VSWAOPT2 |
Option code byte 2 |
(31) |
1111 11.. |
|
* |
Reserved |
(31) |
.... ..1. |
|
VSWAUPD |
Update Processing |
(31) |
.... ...1 |
|
* |
Reserved |
(32) |
UNSIGNED |
1 |
VSWAOPT3 |
Option code byte 3 |
(33) |
UNSIGNED |
1 |
VSWAOPT4 |
Option code byte 4 |
(34) |
ADDRESS |
4 |
VSWANRPL |
Next RPL Address |
(38) |
FULLWORD |
4 |
VSWALEN |
Record length |
(3C) |
FULLWORD |
4 |
VSWABUFL |
Buffer length |
(40) |
FULLWORD |
4 |
* |
Reserved |
(44) |
CHARACTER |
8 |
VSWARBAR |
RBA return field |
(44) |
FULLWORD |
4 |
* |
(48) |
UNSIGNED |
4 |
VSWALRBA |
Record RBA |
(4C) |
UNSIGNED |
1 |
* |
Reserved |
(4D) |
UNSIGNED |
1 |
VSWACTIV |
Check not issued |
(4E) |
HALFWORD |
2 |
VSWAEML |
Error message length |
(50) |
ADDRESS |
4 |
VSWAEMA |
Error message area address |
(54) |
CHARACTER |
8 |
VSWA_SUSPEND_CHN |
VSWA suspend chain |
(54) |
ADDRESS |
4 |
VSWA_NEXT_ACT |
- Next in chain |
(58) |
CHARACTER |
4 |
VSWA_TASK_TOK |
- Task token END OF FIXED SECTION |
VARIABLE SECTION
|
(5C) |
CHARACTER |
20 |
VSWAVRS0 |
Variable section 0 |
(5C) |
ADDRESS |
4 |
VSWAFCT |
File control table entry addr |
(60) |
ADDRESS |
4 |
VSWA_RECORD_LOCK |
Addr record lock area |
(64) |
ADDRESS |
4 |
VSWA_DELETE_LOCK |
Addr delete lock area |
(68) |
HALFWORD |
2 |
VSWAENQL |
Length of ENQ argument |
(6A) |
HALFWORD |
2 |
VSWA_BKL |
Base key/RBA/RRN length |
(6C) |
ADDRESS |
4 |
* |
Reserved |
(70) |
CHARACTER |
12 |
VSWAVRS2 |
Variable section 2 |
(70) |
ADDRESS |
4 |
VSWARIF |
Record ID field address |
(74) |
CHARACTER |
1 |
VSWAFLG1 |
Flag byte 1 |
(74) |
1... .... |
|
VSWABGEN |
Generic browse |
(74) |
.1.. .... |
|
VSWABRBA |
RBA browse |
(74) |
..1. .... |
|
VSWABIP |
Browse in progress |
(74) |
...1 .... |
|
VSWA_SEQUENTIAL |
Browse positioned for SEQ |
(74) |
.... 1... |
|
VSWA_XRBA_BROWSE |
XRBA Browse |
(74) |
.... .1.. |
|
VSWA_DT_WAIT |
Data table open is waiting for this request to complete |
(74) |
.... ..1. |
|
VSWA_080X14 |
Index and Base maybe out of sync |
(74) |
.... ...1 |
|
VSWA_INFLIGHT |
VSAM request is in flight |
(75) |
CHARACTER |
1 |
VSWAFLG2 |
Flag byte 2 |
(75) |
1... .... |
|
VSWA_SUSPENDED |
Resume is required |
(75) |
.1.. .... |
|
VSWA_NQ_WAIT_REQD |
NQ/busy abt to WAIT |
(75) |
..1. .... |
|
VSWA_PURGE_PROTECT |
Start Purge Prot |
(75) |
...1 .... |
|
VSWA_REPAIR |
Reposition needed |
(75) |
.... 1... |
|
VSWA_RETRY_USING_BASE |
Use Base ACB |
(75) |
.... .111 |
|
* |
Reserved |
(76) |
HALFWORD |
2 |
VSWAKEYL |
Key length |
(78) |
ADDRESS |
4 |
* |
Reserved |
(7C) |
CHARACTER |
68 |
VSWAVRS3 |
Variable section 3 |
(7C) |
ADDRESS |
4 |
VSWACHN |
General VSWA chain field |
(80) |
ADDRESS |
4 |
VSWANEXT |
Pointer to next VSWA in base cluster chain. |
(84) |
ADDRESS |
4 |
VSWAPREV |
Pointer to previous VSWA in base cluster chain. |
(88) |
ADDRESS |
4 |
VSWAXCHN |
Pointer to next VSWA waiting for my owner. |
(8C) |
ADDRESS |
4 |
VSWAOWND |
Pointer to VSWA chain for me. |
(90) |
ADDRESS |
4 |
VSWAOWNR |
Pointer to VSWA for which I am waiting. |
(94) |
UNSIGNED |
1 |
VSWA_VICTIM_COUNT |
No. of attempts to kill this VSWA |
(95) |
CHARACTER |
1 |
VSWAIND |
VSAM work area indicators |
(95) |
1... .... |
|
VSWAEREQ |
VSAM ENDREQ is required |
(95) |
.1.. .... |
|
VSWABRZI |
This is a browse VSWA |
(95) |
..1. .... |
|
VSWAMASS |
Mass insert VSWA |
(95) |
...1 .... |
|
VSWAFRST |
First request in BROWSE or MASS INSERT sequence or single ADD. |
(95) |
.... 1... |
|
VSWASTRG |
VSAM string acquired |
(95) |
.... .1.. |
|
* |
Reserved |
(95) |
.... ..1. |
|
VSWALSRP |
Path browse request to LSR file. |
(95) |
.... ...1 |
|
VSWARLO |
Record lock only update |
(96) |
HALFWORD |
2 |
VSWASTG |
Number of strings allocated to access request for a file using LSR. |
(98) |
FULLWORD |
4 |
VSWARQST |
VSAM Request code |
(9C) |
CHARACTER |
4 |
VSWA_JECN |
System log event number |
(A0) |
CHARACTER |
4 |
VSWA_SAVE_OPTC |
Saved RPL option bytes |
(A4) |
ADDRESS |
4 |
VSWASV12 |
TCA address |
(A8) |
ADDRESS |
4 |
VSWA_FRTE |
Address of related FRTE |
(AC) |
HALFWORD |
2 |
VSWA_REQD_STRINGS |
Number of strings required for a request (LSR only) |
(AE) |
BIT(8) |
1 |
* |
(AE) |
1... .... |
|
VSWA_REM |
Need to release exclusive conflict resources. |
(AE) |
.1.. .... |
|
VSWA_MASS_INSERT |
Mass insert |
(AE) |
..1. .... |
|
VSWA_ADD_DELETE |
Single add or delete |
(AE) |
...1 .... |
|
VSWALOCK |
End of range id. is locked and must be released |
(AE) |
.... 1... |
|
VSWA_ESDS_LOCK |
ESDS WRITE lock held |
(AE) |
.... .1.. |
|
VSWA_UPDATE |
Performing an update |
(AE) |
.... ..1. |
|
VSWA_NONRECOV_LOCK |
Record lock held for duration of read update of non-recoverable file. |
(AE) |
.... ...1 |
|
VSWA_SET_BROWSE |
1st after STARTBR/RESETBR |
(AF) |
BIT(8) |
1 |
* |
(AF) |
1... .... |
|
VSWA_0890_POST |
DFHFCVR is waiting for this request to complete. Set by DFHFCVR to indicate its interest in completion of request |
(AF) |
.1.. .... |
|
VSWA_BACKWARDS |
Backward browse |
(AF) |
..11 1111 |
|
* |
Reserved |
(B0) |
ADDRESS |
4 |
VSWA_DATA_BUFFER1 |
1st work-buffer address |
(B4) |
ADDRESS |
4 |
VSWA_DATA_BUFFER2 |
2nd work-buffer address |
(B8) |
HALFWORD |
2 |
VSWA_LAST_LEN |
Last specified keylength |
(BA) |
HALFWORD |
2 |
VSWA_LOG_LENGTH |
Length for logging |
(BC) |
CHARACTER |
4 |
VSWA_SUSPEND_TOKEN |
Suspend token for exclusive control conflict. |
Ensure 32 byte boundary for dump viewing
|
(C0) |
CHARACTER |
288 |
VSWA_TRACE_TABLE |
(C0) |
CHARACTER |
28 |
VSWA_TRACE_DIAGS |
Diags for this task |
(C0) |
CHARACTER |
4 |
VSWA_TASKID |
owning taskid |
(C4) |
CHARACTER |
4 |
VSWA_TRANID |
owning tranid |
(C8) |
CHARACTER |
4 |
VSWA_XTASKID |
taskid of excl ctrl conflict owning VSWA |
(CC) |
CHARACTER |
4 |
VSWA_XTRANID |
tranid of excl ctrl conflict owning VSWA |
(D0) |
CHARACTER |
8 |
VSWA_SUSP |
last suspend call |
(D8) |
UNSIGNED |
1 |
VSWA_DEADLOCK_RSN |
deadlock reason |
(D9) |
CHARACTER |
3 |
* |
Spare |
(DC) |
ADDRESS |
4 |
VSWA_TRACE_NEXT |
Next trace entry |
(E0) |
CHARACTER |
0 |
VSWA_TRACE_START |
Start of trace table |
(E0) |
CHARACTER |
32 |
VSWA_TRACE_RECORD (7) |
Trace table |
(1C0) |
CHARACTER |
0 |
VSWA_TRACE_END |
End of trace table |
We used to have 8 trace entries above. The last one was split
off and is now used to collect the parameters of the last
call to UPADEXIT. The layout of this is below.
|
(1C0) |
CHARACTER |
32 |
VSWA_TRACE_UPAD |
UPAD data |
(1C0) |
CHARACTER |
8 |
VSWA_TRACE_UPAD_TOD |
TOD |
(1C8) |
CHARACTER |
24 |
VSWA_TRACE_UPAD_DATA |
Rest of entry |
(1C8) |
ADDRESS |
4 |
VSWA_TRACE_UPADRPLA |
RPL address |
(1CC) |
ADDRESS |
4 |
VSWA_TRACE_UPADACBA |
ACB address |
(1D0) |
ADDRESS |
4 |
VSWA_TRACE_UPADECBA |
ECB address |
(1D4) |
ADDRESS |
4 |
VSWA_TRACE_UPADPRTN |
POST return code |
(1D8) |
ADDRESS |
4 |
VSWA_TRACE_UPAD_RSV |
reserved |
(1DC) |
CHARACTER |
1 |
VSWA_TRACE_UPADTYPE |
X type(Wait/Post) |
(1DD) |
CHARACTER |
3 |
* |
unused |
(1E0) |
CHARACTER |
* |
VSWADBA |
End of fixed part of VSWA |
Reference key copy.
|
(1E0) |
CHARACTER |
* |
VSWAXKEY |
Reference key |