ABCs of z/OS System Programming Volume 13
ABCs of z/OS System Programming Volume 13
Paul Rogers
Juha Vainikainen
ibm.com/redbooks
International Technical Support Organization
January 2012
SG24-7717-01
Note: Before using this information and the product it supports, read the information in “Notices” on
page xv.
This edition applies to version 1 release 13 modification 0 of IBM z/OS (product number 5694-A01) and to all
subsequent releases and modifications until otherwise indicated in new editions.
© Copyright International Business Machines Corporation 2009, 2012. All rights reserved.
Note to U.S. Government Users Restricted Rights -- Use, duplication or disclosure restricted by GSA ADP Schedule
Contract with IBM Corp.
Contents
Notices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv
Trademarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvi
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii
The team who wrote this book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii
Now you can become a published author, too! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xviii
Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xviii
Stay connected to IBM Redbooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xviii
Contents v
5.20 DSI processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
5.21 Special JES3 commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
5.22 OPTIONS initialization statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
5.23 OPTIONS statement - WANTDUMP parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
5.24 JES3 abends and DM codes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
5.25 JES3 initialization task - IATINTK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
5.26 JES3 checkpoint data sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
5.27 Checkpoint records . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
5.28 IATYCKP data mapping macro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
5.29 Checkpoint problems at initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
5.30 Creating JES3 job zero . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
5.31 JES3 job zero . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
5.32 Job zero structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
5.33 *F CONFIG - dynamically changing JES3 configuration . . . . . . . . . . . . . . . . . . . . . . 241
5.34 *F CONFIG command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
5.35 *F CONFIG command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
5.36 P= parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
5.37 LOG= parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
5.38 Add a SNARJP workstation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
Contents vii
8.25 SETNAME initialization statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
8.26 HWSNAME initialization statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
8.27 MDS initialization parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394
8.28 MDS setup options - JOB versus THWS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397
8.29 MDS allocation mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
8.30 Tape fetch processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399
8.31 Volume mounting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400
8.32 MDS mount messages and commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
8.33 Device mount status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
8.34 Inquiry command for devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
8.35 MDS volume and data set control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
8.36 Managing JES3 device online/offline status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
8.37 Data awareness in a JES3 complex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408
8.38 IBM 3495 automated tape library data server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411
8.39 MVS UNITNAMEs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414
8.40 Coding ATLDS SETNAME statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415
8.41 ATLDS DEVICE and SETNAME statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416
8.42 ATLDS HWSNAME statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418
8.43 Virtual tape server (VTS) tape libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420
8.44 DEVICE statements for VTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422
8.45 SETNAME statements for VTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423
8.46 HWSNAME statements for VTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424
8.47 Operator control of jobs in MDS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
8.48 Operator control of jobs in MDS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426
8.49 MVS dynamic I/O reconfiguration and JES3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427
8.50 Move a DASD volume to a new address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429
Contents ix
11.20 Scheduling OSEs to writers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565
11.21 Output Operators Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 567
11.22 Output queues. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 569
11.23 Writer hold classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 571
11.24 Output service writers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572
11.25 Output writer operator commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574
11.26 Controlling hot writers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575
11.27 Query writer status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576
11.28 Printer checkpoints and notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 577
11.29 Restarting printers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578
11.30 Checkpoints and notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580
11.31 Repositioning output on printers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581
11.32 Operator commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583
11.33 Operator commands for spool data sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584
11.34 Printing large data sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 586
11.35 THRESHLD specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587
11.36 Scheduling THRESHOLD OSEs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 588
11.37 DSISO specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 589
11.38 External writers, PSO interface, and SAPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 591
11.39 Process SYSOUT (PSO) interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593
11.40 SAPI overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594
11.41 SSI function code 79 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 595
11.42 Multiple requests per address space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 597
11.43 Using the SAPI interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 598
11.44 SAPI enhanced functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 600
11.45 Wildcard supported Fields. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601
11.46 Output functional subsystem (FSS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 602
11.47 FSS address space implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 604
11.48 Functional subsystem interface - FSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 605
11.49 WTR FSS communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 606
11.50 WTR FSSDEF statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 608
11.51 Sample PSF procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 610
11.52 Starting an FSS writer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611
11.53 Starting an FSS writer address space. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 612
11.54 Starting an FSS writer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 614
11.55 Read data set and release data set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 615
11.56 WTR FSS TCB structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 616
11.57 Query FSS writers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 618
11.58 Writer output multitasking facility. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 619
11.59 Defining output multitasking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 620
11.60 WTR multitasking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 621
Contents xi
14.18 Dynamic SNA NJE node definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 712
14.19 Symbols in commands in exits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 713
14.20 BSC NJE commands to Other Nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 714
14.21 z/OS Bulk Data Transfer (BDT). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 715
14.22 z/OS BDT options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 717
14.23 BDT SNA NJE processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 718
14.24 BDT - SYSOUT received at destination node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 719
14.25 BDT transmission streams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 720
14.26 XMIT JCL statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 721
14.27 Using XMIT statement. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 722
14.28 XMIT JCL statement rules. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 723
14.29 NJE JOB received at originating node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 724
14.30 JES3/BDT NJE outbound job processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 725
14.31 SNA NJE job received at execution node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 726
14.32 JES3 processing for a received NJE job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 727
14.33 OUTSERV for NJE job at execution node. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 728
14.34 Output received at originating node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 729
14.35 Output processing at originating node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 730
14.36 JES3/BDT SNA NJE transmission summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 732
14.37 z/OS BDT network streams and BDT group identifier. . . . . . . . . . . . . . . . . . . . . . . 733
14.38 Using JES3 DSISO for SNA NJE output data sets . . . . . . . . . . . . . . . . . . . . . . . . . 734
14.39 Using DSISO for SNA NJE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 735
14.40 BDT initialization definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 736
14.41 BDT VLU usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 738
14.42 SNA NJE commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 739
14.43 JES3 networking over TCP/IP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 740
14.44 Networking over TCP/IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 742
14.45 Address spaces for JES3 TCP/IP/NJE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 743
14.46 Defining JES3 TCP/IP/NJE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 744
14.47 JES3 TCP/IP/NJE compared with BSC and SNA . . . . . . . . . . . . . . . . . . . . . . . . . . 746
14.48 JES3/TCP/IP/NJE transmission summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 748
14.49 Defining TCP/IP/NJE NETSERV. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 749
14.50 Netserv address space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 751
14.51 NJERMT statement (node) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 753
14.52 Define TCP/IP SOCKET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 754
14.53 *X TCP - How It's Done. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 756
14.54 TCP/IP/NJE example environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 757
14.55 Example - on WTSCPLX9 start TCP/IP/NJE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 758
14.56 Example - on WTSCPLX9 convert networking protocol . . . . . . . . . . . . . . . . . . . . . 759
14.57 Example - on WTSCPLX9 reroute network jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . 760
14.58 Example - WTSCPLX4 messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 762
14.59 Summary of JES3 TCP/IP/NJE commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 763
14.60 Secure signon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 764
14.61 Secure signon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 765
14.62 Coexistence considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 766
14.63 Coexistence messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 768
Contents xiii
17.11 Reports ..... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 842
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment . 843
18.1 JES3 SDSF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 844
18.2 SDSF functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 845
18.3 USING JES3 SDSF. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 846
18.4 SDSF tutorial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 857
18.5 SDSF panels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 858
18.6 SDSF help panels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 864
18.7 SDSF server address space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 876
18.8 SDSF security and ISFPARMS overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 877
18.9 Working with JES3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 883
18.9.1 Filtering display data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 887
18.9.2 View alternate form of a tabular SDSF panel fields . . . . . . . . . . . . . . . . . . . . . 892
18.10 Input queue (I) panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 893
18.11 Output queue (O) panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 899
18.12 Held output queue (H) panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 902
18.13 Status (ST) panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 906
18.14 Job zero (J0) panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 909
18.15 Viewing jobs’ spool data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 911
18.16 JESPlex (JP) panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 919
18.17 Job class (JC) panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 922
18.18 Initiator (INIT) panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 923
18.19 Printers (PR) panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 926
18.20 Punches (PUN) panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 931
18.21 Readers (RDR) panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 935
18.22 Lines (LI) panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 937
18.23 Nodes (NO) panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 939
18.24 Network servers (NS) panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 941
18.25 Network Connection (NC) panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 943
18.26 Spool volumes (SP) panel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 946
18.27 User Session Log (ULOG) panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 949
18.28 Hardcopy log panels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 951
18.29 Working with MVS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 962
18.30 System Requests (SR) panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 967
18.31 Scheduling environment (SE) panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 970
18.32 Resources (RES) panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 972
18.33 Enclaves (ENC) panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 973
18.34 Processes (PS) panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 977
18.35 Health Checker (CK) panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 980
18.36 SDSF REXX and SDSF in batch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 985
18.37 SDSF REXX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 985
This information was developed for products and services offered in the U.S.A.
IBM may not offer the products, services, or features discussed in this document in other countries. Consult
your local IBM representative for information on the products and services currently available in your area. Any
reference to an IBM product, program, or service is not intended to state or imply that only that IBM product,
program, or service may be used. Any functionally equivalent product, program, or service that does not
infringe any IBM intellectual property right may be used instead. However, it is the user's responsibility to
evaluate and verify the operation of any non-IBM product, program, or service.
IBM may have patents or pending patent applications covering subject matter described in this document. The
furnishing of this document does not give you any license to these patents. You can send license inquiries, in
writing, to:
IBM Director of Licensing, IBM Corporation, North Castle Drive, Armonk, NY 10504-1785 U.S.A.
The following paragraph does not apply to the United Kingdom or any other country where such
provisions are inconsistent with local law: INTERNATIONAL BUSINESS MACHINES CORPORATION
PROVIDES THIS PUBLICATION "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR
IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF NON-INFRINGEMENT,
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Some states do not allow disclaimer of
express or implied warranties in certain transactions, therefore, this statement may not apply to you.
This information could include technical inaccuracies or typographical errors. Changes are periodically made
to the information herein; these changes will be incorporated in new editions of the publication. IBM may make
improvements and/or changes in the product(s) and/or the program(s) described in this publication at any time
without notice.
Any references in this information to non-IBM websites are provided for convenience only and do not in any
manner serve as an endorsement of those websites. The materials at those websites are not part of the
materials for this IBM product and use of those websites is at your own risk.
IBM may use or distribute any of the information you supply in any way it believes appropriate without incurring
any obligation to you.
Information concerning non-IBM products was obtained from the suppliers of those products, their published
announcements or other publicly available sources. IBM has not tested those products and cannot confirm the
accuracy of performance, compatibility or any other claims related to non-IBM products. Questions on the
capabilities of non-IBM products should be addressed to the suppliers of those products.
This information contains examples of data and reports used in daily business operations. To illustrate them
as completely as possible, the examples include the names of individuals, companies, brands, and products.
All of these names are fictitious and any similarity to the names and addresses used by an actual business
enterprise is entirely coincidental.
COPYRIGHT LICENSE:
This information contains sample application programs in source language, which illustrate programming
techniques on various operating platforms. You may copy, modify, and distribute these sample programs in
any form without payment to IBM, for the purposes of developing, using, marketing or distributing application
programs conforming to the application programming interface for the operating platform for which the sample
programs are written. These examples have not been thoroughly tested under all conditions. IBM, therefore,
cannot guarantee or imply reliability, serviceability, or function of these programs.
The following terms are trademarks of the International Business Machines Corporation in the United States,
other countries, or both:
AS/400® MVS™ RETAIN®
BookManager® NetView® RMF™
CICS® OS/390® Sysplex Timer®
DB2® PR/SM™ System Storage®
ESCON® Print Services Facility™ Tivoli®
FICON® PrintWay™ TotalStorage®
GDDM® RACF® VTAM®
IBM® Redbooks® WebSphere®
IMS™ Redbooks (logo) ® z/Architecture®
IMS/ESA® Resource Measurement Facility™ z/OS®
PostScript, the Adobe logo, and the PostScript logo are either registered trademarks or trademarks of Adobe
Systems Incorporated in the United States, and/or other countries.
Windows, and the Windows logo are trademarks of Microsoft Corporation in the United States, other
countries, or both.
Snapshot, and the NetApp logo are trademarks or registered trademarks of NetApp, Inc. in the U.S. and other
countries.
Java, and all Java-based trademarks and logos are trademarks or registered trademarks of Oracle and/or its
affiliates.
UNIX is a registered trademark of The Open Group in the United States and other countries.
Intel, Intel logo, Intel Inside, Intel Inside logo, Intel Centrino, Intel Centrino logo, Celeron, Intel Xeon, Intel
SpeedStep, Itanium, and Pentium are trademarks or registered trademarks of Intel Corporation or its
subsidiaries in the United States and other countries.
Other company, product, or service names may be trademarks or service marks of others.
A major goal of operating systems is to process jobs while making the best use of system
resources. Thus, one way of viewing operating systems is as resource managers. Before job
processing, operating systems reserve input and output resources for jobs. During job
processing, operating systems manage resources such as processors and storage. After job
processing, operating systems free all resources used by the completed jobs, making the
resources available to other jobs. This process is called resource management.
There is more to the processing of jobs than the managing of resources needed by the jobs.
At any instant, a number of jobs can be in various stages of preparation, processing, and
post-processing activity. To use resources efficiently, operating systems divide jobs into parts.
They distribute the parts of jobs to queues to wait for needed resources. Keeping track of
where things are and routing work from queue to queue is called workflow management, and
is a major function of any operating system.
JES3 considers job priorities, device and processor alternatives, and installation-specified
preferences in preparing jobs for processing job output. Features of the JES3 design include:
Single-system image
Workload balancing
Availability
Control flexibility
Physical planning flexibility
This IBM® Redbooks® publication describes a JES3 environment that includes the
following:
Job entry subsystem (JES3)
Spool data sets and checkpoint
JES3 job flow and scheduling
JES3 spool data management
JES3 initialization
JES3 input service
Converter/interpreter processing
Main device scheduling (MDS)
JES3 job scheduling - GMS
WLM batch initiator management
JES3 output processing
JES3 and multisystem consoles
MVS™ System Logger/JES3 DLOG
RJP and NJE
JES3 dynamic support programs
Spool partitioning and spool recovery
JES3 Monitoring Facility (JMF)
This book will help you install, tailor and configure a JES3 system.
Find out more about the residency program, browse the residency index, and apply online at:
ibm.com/redbooks/residencies.html
Comments welcome
Your comments are important to us!
We want our books to be as helpful as possible. Send us your comments about this book or
other IBM Redbooks publications in one of the following ways:
Use the online Contact us review Redbooks form found at:
ibm.com/redbooks
Send your comments in an email to:
redbooks@us.ibm.com
Mail your comments to:
IBM Corporation, International Technical Support Organization
Dept. HYTF Mail Station P099
2455 South Road
Poughkeepsie, NY 12601-5400
Preface xix
xx ABCs of z/OS System Programming Volume 13
1
There are two versions of the job entry subsystem concept, JES3 and JES2. Some principle
differences between the two JES systems include:
JES3 provides resource management, dependent job control, and deadline scheduling for
users of the system, while JES2 in the same system would require its users to manage
these activities through other means.
In cases where multiple z/OS systems are clustered (a sysplex), JES3 exercises
centralized control over its processing functions through a single global JES3 processor.
The global processor provides all job selection, scheduling, and device allocation
functions for all of the other JES3 systems in the sysplex. JES2 is that component of MVS
that only provides the necessary functions to get jobs into, and output out of, the MVS
system. JES2 is designed to provide spooling, scheduling, and management facilities for
the z/OS systems in a sysplex.
With the z/OS MVS JES3 system, resource management and workflow management are
shared between MVS and its Job Entry Subsystem 3 (JES3) component. Generally speaking,
JES3 does resource management and workflow management before and after job execution,
while MVS does resource and workflow management during job execution.
JES3 considers job priorities, device and processor alternatives, and installation-specified
preferences in preparing jobs for processing job output. Features of the JES3 design include:
Single-system image
Workload balancing
Availability
Control flexibility
Physical planning flexibility
SC32 SC07
Coupling Technology Sysplex Timer Couple Dataset
SC31 XCF
SC08
Sysplex
XES
SC30 Cache
List
Cache
List Server time SC09
Locks Locks CFRM
Protocol (STP)
SC29 WLM OMVS
SC10
JES3 APPC
SC28 JESXCF STC SC11
GRS TSO
SC27 XCFAS BATCH SC12
SC23 SC16
What is a sysplex
A sysplex is a collection of MVS systems that cooperate, using certain hardware and software
products, to process work. The term MVS - Multiple Virtual Storage - refers to the IBM
operating system that manages resources and work flow for multiple jobs executing
concurrently. A sysplex shares the processing of work across multiple MVS systems and lays
the groundwork for simplified multisystem management through the cross-system coupling
facility (XCF) component. XCF services allow authorized applications on one system to
communicate with applications on the same system or on other systems.
The innate robustness and reliability of the MVS operating system and z/Architecture®
processors are the foundation of a sysplex. That robustness and reliability are extended to all
systems in a sysplex through cross system workload balancing and data sharing using the
coupling technologies.
The sysplex increases the number of processing units and MVS operating systems that can
cooperate, which in turn increases the amount of work that can be processed.
A major goal of operating systems is to process user work while making the best use of
system resources. Thus, one way of viewing operating systems is as resource managers.
Workload Management (WLM) - component of MVS - manages resources throughout a
sysplex, WLM cooperates with resource managers that span systems. WLM uses
customer-defined policies for performance objectives to help balance workloads in the
sysplex.
JCL statements tell z/OS where to find the appropriate input, how to process that input (that
is, what program or programs to run), and what to do with the resulting output. All jobs use
three main types of JCL statements:
JOB statement to identify the unit of work you want the operating system to perform
One or more EXEC statements, depending on the number of job steps within the job
DD statements to identify the input and output data sets
What is a JES
MVS uses a job entry subsystem (JES) to receive jobs into the operating system, schedule
them for processing by MVS, and to control their output processing.
Simply stated, JES is that component of MVS that provides the necessary functions to get
jobs into, and output out of, the MVS system. It is designed to provide efficient spooling,
scheduling, and management facilities for the MVS operating system.
The resource management and workflow management are shared between MVS and its JES
component. Generally speaking, JES does resource management and workflow
management before and after job execution, while MVS does resource and workflow
management during job execution.
IBM provides two JESs from which to choose: JES3 and JES2. From job flow point of view
JES3 and JES2 perform similar functions. That is, they read jobs into the system, convert
them to internal machine-readable form, select them for processing, process their output, and
purge them from the system.
JES3 exercises centralized control over its processing functions through a single global JES3
processor. This global processor provides all job selection, scheduling, and device allocation
functions for all the other JES3 systems. The centralized control that JES3 exercises
provides: increased job scheduling control, deadline scheduling capabilities, and increased
control by providing its own device allocation.
JES2 exercises independent control over its job processing functions. That is, within the
configuration, each JES2 processor controls its own job input, job scheduling, and job output
processing.
JES3 X X JES3
C C
F F
uses uses
(JESXCF) (JESXCF)
X X
E E
Sysplex
LPAR S S LPAR
CDS
CTC or CF
PLEXCFG=MULTISYSTEM in IEASYSxx parmlib member
Multisystem sysplex
PLEXCFG=MULTISYSTEM indicates that the system is to be part of a multisystem sysplex
consisting of one or more MVS systems that are running on one or more images. The same
sysplex couple data sets must be shared by all systems in the sysplex
You must also specify a COUPLExx parmlib member through COUPLE=xx parameter that
identifies the same sysplex couple data sets for all systems in the sysplex.
Use MULTISYSTEM when you plan to initialize one or more MVS systems into a multisystem
sysplex and exploit full XCF coupling services. GRS=NONE is not valid with
PLEXCFG=MULTISYSTEM.
11 12 1
10 2
9 3
8 4
7 6 5
JES3 X X JES3
STP timing
C Sysplex Timer C
F F
uses CTC uses
(JESXCF) (JESXCF)
X X
E E
S Coupling Facility S
Checkpoint
Couple Data Sets
PLEXCFG=MULTISYSTEM
Multisystem sysplex
PLEXCFG=MULTISYSTEM indicates that the system is to be part of a multi-system sysplex
consisting of one or more MVS systems that are running on one or more images. The same
sysplex couple data sets must be shared by all systems in the sysplex
You must also specify a COUPLExx parmlib member through COUPLE=xx parameter in the
IEASYSxx parmlib member that identifies the same sysplex couple data sets for all systems
in the sysplex.
Use PLEXCFG=MULTISYSTEM when you plan to initialize one or more MVS systems into a
multi-system sysplex and exploit full XCF coupling services. GRS=NONE is not valid with
PLEXCFG=MULTISYSTEM.
The JES3 systems in a sysplex communicate using JESXCF services, and the XCF signalling
services can be through either CTCs or the coupling facility.
Depending on the policies you define to help manage resources and workload for the sysplex,
you might need to define additional couple data sets to store policy-related information.
The coupling facility resource management (CFRM) couple data set holds the CFRM policy,
which allows you to define how MVS is to manage your coupling facility resources.
The sysplex failure management (SFM) couple data set holds the SFM policy, which allows
you to define how system failures, signaling connectivity failures, and PR/SM reconfiguration
actions are to be managed.
The workload management (WLM) couple data set holds the WLM policy, which allows you to
define service goals for workloads.
The automatic restart management (ARM) couple data set holds the policy that defines how
MVS is to manage restarts for specific batch jobs and started tasks that are registered as
elements of automatic restart management.
The system logger (LOGR) couple data set holds the policy that allows you to define log
stream or structure definitions.
JOB
SYSIN SYSOUT
JCL SYSOUT
JCL & SYSIN
SPOOL
DISK
Except for execution, all the job phases are controlled by JES.
Input phase
JES accepts jobs (in the form of an JCL input stream) from input devices such as card
readers, remote terminals, or other programs. Input streams can also come from other nodes
in a job entry network and from internal readers. An internal reader is a program that other
programs can use to submit jobs, control statements, and commands to JES.
MVS also uses internal readers, allocated during system initialization, to pass to JES the job
control language (JCL) for started tasks, START and MOUNT commands, and TSO LOGON
requests.
As JES reads the input stream, it assigns a job identifier to each job and places each job's
JCL, optional JES control statements, and SYSIN data onto DASD data sets called spool
Conversion phase
JES uses the MVS converter/interpreter programs to analyze each job's JCL statements. The
conversion takes the job's JCL, merges it with JCL from a procedure library (such as
SYS1.PROCLIB), and converts the composite JCL into internal format (scheduler work area
(SWA) control blocks) that both JES and the job scheduler functions of MVS can recognize.
JES then stores the output of the C/I processing on the spool data set. If any JCL errors are
detected during the C/I processing JES issues messages, and the job is queued directly for
output processing. If there are no errors, JES queues the job for the next JES processing
phase. JES supports multiple converters; therefore, jobs may not always be processed in a
first-in-first-out (FIFO) order. When MVS work load management (WLM) batch management
is in use, JES queues jobs according to their arrival time.
Execution phase
In the execution phase, JES responds to requests for jobs from the MVS initiators. JES
selects jobs that are waiting to execute and have required resources available.
An initiator is a system program that starts a job to allow it to compete for system resources
with other jobs that are already running. The initiator JES communication is implemented
through subsystem interface communication (SSI). Initiators are started and controlled by
JES or by MVS workload management (WLM).
When an initiator requests work, JES selects a job and passes its SWA control blocks to the
initiator. The job and its resource requirements are defined to the initiator by the SWA control
blocks. A SWA is the internal representation of a job's JCL.
The initiator then allocates the resources specified in the JCL for the first step of the job and
starts the program requested in the JCL EXEC statement for the first step. After the step ends
execution, the initiator unallocates the step's resources and allocates the resources for the
next step of the job. This process repeated for each step of the job.
Output phase
JES controls all SYSOUT processing. SYSOUT is system-produced output; that is, all output
produced by, or for, a job. This output includes system messages that must be printed, as well
as data sets created by the job that must be printed or punched. After a job finishes, JES
analyzes the characteristics of the job's output in terms of its output class and printer device
setup requirements; then JES groups data sets with similar characteristics. JES queues the
output for writer (print or punch) processing.
Purge phase
When all processing for a job completes, JES releases the spool space assigned to the job,
making the space available for allocation to subsequent jobs. JES then issues a message to
the operator indicating that the job has been purged from the system.
What is a subsystem
A subsystem is a service provider that performs defined functions when requested through
the MVS subsystem interface (SSI). The SSI allow routines to request services of, or to pass
information to subsystems. The SSI acts only as a mechanism for transferring control and
data between a requestor and the subsystem; it does not perform any subsystem service
functions itself. If the requestor of subsystem service does not identify the subsystem from
which the service is wanted, the request is routed to the subsystem that initiated the job.
Service requests from IBM subsystems are identified by function codes. For example MVS
initiators request JES job selection service with function code 5 and can expect the response
format to be the same from JES2 and JES3. However, the internal job selection processing is
implemented differently in JES2 and JES3. Thus, the SSI service requestor does not have to
make any program changes when the service provider is changed.
Note: The master subsystem (MSTR) is a part of MVS and is defined automatically during
the MVS operating system initialization.
Types of subsystems
There are four types of subsystems as follows:
Master subsystem - One of the functions provided by the MSTR is the subsystem initiation
service for the MVS initiator’s job select request during a subsystem start processing.
Job entry subsystem - The job entry subsystem that MVS uses as default to select work
from is defined also as a primary subsystem. The primary subsystem can be either JES2
or JES3.
Secondary job entry subsystems - MVS allows more than one JES2 subsystems to
operate at a time, as long as one subsystem is designated as the primary. The other JES2
subsystems are secondaries.
In JES3 complex secondary job entry subsystems are not supported.
Other subsystems - Provide functions as needed by IBM products, vendor products, or the
installation.
JES and the FSS communicate through the functional subsystem interface (FSI) and SSI.
The FSI is a one-level interface which provides two way communication. The FSI consists of a
set of macro-invoked service routines provided by both JES and the FSS/FSA.
When carrying out some of these responsibilities, global JES3 needs the assistance of local
JES3.
Functional subsystems
JES3 allows certain functions to operate outside the JES3 address space. JES3 does this
using:
The functional subsystem address space (FSS)
The functional subsystem interface (FSI)
WTR FSS
The JES3 FSS that deals with output services is one type of FSS (TYPE=WTR). This
particular FSS address space may be created automatically or established by a CALL
command for a printer device which is capable of running under the control of an FSS
address space. The operator CALL command (*X) designates a printer as a "hot writer" while
a writer invoked automatically when output is queued is called a "dynamic writer". A “hot
writer” stays active until the operator stops it. A “dynamic writer” stops automatically after the
specified time-out elapses if there is no more output to process.
CI FSS
Another FSS (TYPE=CI) deals with converter/interpreter services similar to those that occur
in the JES3 global
The functional subsystem address space can be on any processor in the JES3 complex and
is started by JES3 issuing the MVS START command with a token. When the first writer
defined to a FSS is started, a functional subsystem address space is created. The operator
can use the MODIFY command (*F) to change the processor where the FSS runs. When the
operator stops a writer, JES3 stops the writer and when the last writer in the FSS address
space is stopped the address space is terminated.
IEFSSNxx definition
The IEFSSNxx parmlib member contains parameters that define the primary and the various
other subsystems that are to be initialized during the MVS system initialization.
IEFSSNxx allows:
Name the subsystem initialization routine to be given control during MVS initialization.
Specify the input parameter string to be passed to the subsystem initialization routine.
Specify the primary subsystem name and whether it is started automatically.
During system initialization, the control structures that define subsystems to MVS are
initialized. The recommendation is that you place the Data Facility Storage Management
Subsystem (SMS) record before the primary subsystem’s (JES) record in the IEFSSNxx to
start SMS before starting the primary subsystem. After the primary subsystem definition the
other subsystems should be defined, because the other subsystems such as DB2®, require
the services of the primary subsystem in their initialization routines. Problems can occur if
subsystems that use the subsystem affinity service in their initialization routines are initialized
before the primary subsystem. After the primary JES is initialized, then the other subsystems
are initialized. in the order in which the IEFSSNxx parmlib members are specified by the SSN
parameter in the IEASYSxx parmlib member.
For example, for SSN=(aa,bb) parmlib member IEFSSNaa would be processed before
IEFSSNbb.
IBM recommends that you use the keyword parameter form of the IEFSSNxx parmlib
member. However, also the old positional parameter form of the IEFSSNxx parmlib member
is supported.
Subsystems have the choice of being dynamic. Subsystems that are not dynamic can be
defined only at IPL using the positional form of the IEFSSNxx parmlib member and they
cannot use dynamic SSI services.
Starting subsystems
Once a subsystem name is defined to the system, any attempt to start that subsystem (or any
started task with the same name as that subsystem) with a START command which does not
explicitly specify SUB=JESn will result in that subsystem or started task being started under
the Master subsystem rather than under the job entry subsystem. Because the only
procedure libraries available to the Master subsystem are those specified in the MSTJCLxx
IEFPDSI data set, any procedures being started that are defined in the job entry subsystem's
procedure library concatenation, but not in the MSTJCLxx IEFPDSI data set, will be
unavailable. Therefore they will not be found and the START command fails.
Before a subsystem can provide services to the SSI calls it has to create its own subsystem
vector table (SSVT) using the IEFJSVEC or IEFSSVT macro services. The SSVT defines the
SSI functions supported by the subsystem.
The DISPLAY SSI operator command displays information about subsystem, dynamic or not,
or about all subsystems.
SQA
PLPA
CSA
Subsystem interface
The subsystem interface (SSI) is an interface that provides intraprocessor communication
between MVS routines and JES through the IEFSSREQ macro. The SSI is the interface used
by routines (IBM, vendor, or installation-written) to request services of, or to pass information
to, subsystems. An installation can design its own subsystem and use the SSI to request
subsystem services.
Note: The SSI acts only as a mechanism for transferring control and data between a
requestor and the subsystem; it does not perform any subsystem functions itself.
IEFSSREQ macro
MVS functions running in address spaces issue the IEFSSREQ macro to invoke subsystem
functions. The calling routine uses the subsystem option block (SSOB), the SSOB function
dependent area, and an optional subsystem identification block (SSIB) to identify the
subsystem and requested processing. If the SSIB is not is not part of the IEFSSREQ
parameters, the request is routed using the life-of-job SSIB. The life-of-job SSIB is created
during the job initialization for the address space and contains a pointer to the JES control
blocks for the job.
JES3 MSTR
IEFSSREQ macro
The IEFSSREQ macro provides communication between MVS and the target subsystem.
Before issuing the IEFSSREQ macro, the caller must ensure that register 1 points to the
SSOB.
The calling routine uses the subsystem option block (SSOB), the SSOB function dependent
area, and optionally the subsystem identification block (SSIB) to identify the required
processing. The calling routine uses the IEFSSREQ macro to pass the SSIB and SSOB to
the MVS SSI directed request router. The router locates the target subsystem’s SSCVT/SSVT
pair and passes control to the requested subsystem function routine pointed from the SSVT.
JESCT JES control table (JESCT). A control block in the MVS nucleus that contains
information used by subsystem interface routines.
SSCVT Subsystem communication vector table (SSCVT). These control blocks is the
common storage area (CSA) and contain the information from subsystem
definitions.
The MVS SSI directed request router (IEFJSREQ) routine checks the validity of the SSOB
and SSIB; the request routine determines that the target subsystem exists and is started. It
next uses the function code to determine if the subsystem performs the requested function
and to derive the address of a routine to which the request is passed.
SC65 SC70
z/OS z/OS
JESXCF
JES3 XCF JES3
Global Local
CHKPNT
Main processor z/OS
Global processor
Local processor JES3
Global main
Local main Local JES3 checkpoint
The cross-system coupling facility (XCF) provides the MVS coupling services that allow
authorized programs on MVS systems in a multisystem environment to communicate (send
and receive data) with programs on the same MVS system or other MVS systems. The
cross-system extended services (XES) allow authorized programs on MVS to use a coupling
facility to share data with other programs on the same MVS system or other MVS systems.
The eventual goal for the coupling services provided by XCF and XES is to allow an
installation to view multiple MVS systems as one MVS system.
Each sysplex is given an XCF sysplex name (in the visual SANDBOX) and each system in
the sysplex has a unique name as well. The COUPLExx parmlib member for each system in
the sysplex is used to specify the installation values for sysplex systems.
A JES3 complex must be fully contained within a sysplex and may or may not be the primary
subsystem for all the MVS systems in the sysplex.
Note: Each JES3 complex in a sysplex is required to use a unique JES XCF groupname
(in the visual WTSCPLX4). The NAME parameter on the NJERMT statement that defines
HOME=YES is the default for the XCFGRPNM parameter on the OPTIONS statement.
The JES3 global processor manages jobs and resources for the entire complex and selects
jobs with readily available resources for MVS execution. The resources that JES3 manages
include processors, I/O devices, spool volumes, the job queue, the checkpoint data set, and
sysin/sysout data. To avoid job execution delays that result when resources are not available,
JES3 ensures that they are available before selecting the job for processing.
JES3 terminology
In the JES3 terminology a processor is defined as a hardware unit that contains software to
interpret and process instructions.
Global processor The processor that controls job scheduling and device allocation for a
complex of processors. See also local processor.
Local processor In a complex of processors under control of JES3, a processor
connected to the global main by a JESXCF services, for which JES3
performs centralized job input, job scheduling and job output services
by the global main.
Main A processor named by a JES3 MAINPROC initialization statement, on
which jobs can execute; represents a single instance of MVS. The two
types of mains are global main, and local main.
Global main The global main controls job scheduling and device allocation for a
complex of JES3 processors. Each local main in the complex exists
under control of the JES3 global main and is connected to the global
main by JESXCF services. The JES3 on the global main can perform
centralized job input, job scheduling, and job output services. Only the
global main performs scheduling functions, although scheduled work
executes on the local mains.
Local main In a complex of processors under control of JES3, a processor
connected to the global main by a JESXCF services, for which JES3
performs centralized job input, job scheduling and job output services
by the global main.
JES3 provides installation benefits from the distribution of work among processors as a
workflow manager. The entry of all jobs through a central point means that control of the
actions needed to prepare jobs for execution can be centralized. The distribution and
duplication of job management function becomes unnecessary, and an awareness of the
status of all jobs entering or leaving the system can be easily maintained. This awareness is
particularly useful in recovery situations, where the scope of recovery is largely a function of
the quality of the tracking performed prior to the failure.
Resource manager
Another benefit is resource management. All jobs, all input required for the jobs, and all
output produced by the jobs enters or leaves the system at a single point. This single point,
JES3, can coordinate the subsystem, the allocation of devices, volumes, and data sets.
Centralized resource control expands the opportunity for full resource utilization. If you are
using the storage management subsystem (SMS), you can allow SMS to coordinate the
allocation of permanently resident catalog volumes and cataloged data sets. When SMS is
activated, JES3 will not manage devices and volumes for SMS-managed data sets.
JES3 keeps track of I/O resources, and manages workflow in conjunction with the workload
management component of MVS by scheduling jobs for processing on the processors where
Operations aid
Operator control also benefits from improved resource utilization and centralized job
management. With all system resources known to JES3 and with one job management
mechanism, it is relatively simple to provide control over the entire system. And yet, the need
for operator control can be minimized because JES3 is aware of job mix and resource
availability and can coordinate them with less need for operator intervention and
decision-making.
Operators have special JES3 commands. Some commands activate programs to handle I/O
devices, while others obtain or change the status of jobs being processed. With multiple
processing-unit systems, JES3 operators have less to do than for an equal number of
individual systems, because they can control the entire complex from a central point, and
because JES3 decides where and when jobs will be processed.
For diagnostic purposes, JES3 provides traces and dumps. Traces are copies of data made
during normal processing to help monitor activity in the system, and dumps are copies of data
made at times of failure.
Global
JES3 JESXCF User FSS ......
XCF
Local
JES3 JESXCF User FSS ......
Exit IXZXIT01, called the transport exit, gets control whenever JES or installation code sends
a message. JES XCF packages the message data in an envelope that contains the address
information and other related data, and sends it to a specified mailbox.
Once a message is sent to a mailbox (on the same member or another), the receiving
member is informed that mail is waiting. After the receiving member issues the receive macro,
IXZXIXRM, the receive message exit IXZXIT02 gets control. This exit allows the receiving
member to view or modify the message and to receive any extents that have been added to it
by the transport exit. Once the message is received, the receiving member acknowledges the
mail, informs JES XCF of its receipt and, if requested by the sending member, also returns an
acknowledgement to the sender.
Therefore, JES3 FSS normal termination only issues the detach macro, IXZXIXDT. IXZXIT03
receives control as a result of the IXZXIXDT macro call and does clean up.
Note: In a JES3 environment to restart the JESXCF address space a MVS IPL is required
to recover critical resources.
JES3 uses as the XCF member name the name defined on the NAME= parameter on the
MAINPROC initialization statement. The JES3 FSSs use as the XCF member name the
FSSNAME= specification on the FSSDEF statement.
Note: Ensure that the name you specify on the MAINPROC initialization statement
matches the name specified on the SYSNAME parameter in the IEASYSxx parmlib
member used for MVS IPL. Otherwise JES3 initialization will fail.
A successful attach JESXCF group request returns a JESXCF group token. All subsequent
JESXCF service requests require this group token as input.
IXZXIXSM
IXZXIT01
XCF
CTC
Signalling Signalling
Message Message POST Exit
A Service A
COMM SYNC Coupling Service
(ASYNC) Facility IXZXIXRM
ASYNCACK IXZXIT02
Wait for
ACK
POST Exit Data
A
IXZXIXRM
IXZXIXAC
Signalling Signalling
ACK Message IXZXIT01
A A Service Service
ACK
A
Local Global
JESXCF messages are received through mailboxes. A mailbox is a logical queue of ordered
messages and is maintained by JESXCF in a location associated with a JES3 member.
Messages are held in mailboxes until the receiving JES3 receives them or clears the mailbox.
When a message is received, it is preceded by a message envelope. The message envelope
is the header for the message and contains information that includes:
The addresses of the sender and receiver of the message
An identifier of the message type
An offset to the actual message
Envelopes, mapped by IXZYIXEN macro, are for the following types of messages in a
mailbox:
System events (SYSEVENT)
Acknowledgements (ACKS)
Messages (MESSAGES)
Acknowledgement (ACK)
An acknowledgement provides notification information on delivery of messages issued
through the IXZXIXSM macro service. The acknowledgement data includes:
Request token for the message that this acknowledgement is for
Return code information returned by the receiving routine
Length of the data returned to the sender through the IXZXIXAC macro service
The system event data includes three types of system event data:
JESXCF Data (IXZYIXIF) - JESXCF data provides information about the JES and XCF
connections, such as notification of an event detected by the JESXCF address space or
such as termination of the connection between JESXCF and the JES address space.
JES Data (IXZYIXJE) - JES data provides a notification of events that the JESXCF
address space has detected, such as termination of the connection between JESXCF and
the JES address space. The JESXCF event data:
– Connection between JESXCF and specified JES terminated
• Group name of the member whose connection terminated
• Member name of the member whose connection terminated
• The request token for the message that timed out
XCF Data (IXCYGEPL) - The XCF data is the same that is passed to the XCF group user
exit of an active member. XCF data notifies about changes that occur to the XCF members
of a group, or changes to the systems in the sysplex.
Sysplex JES
JESXCF
Mail SYSA
XCF
Status JES
Monitoring JESXCF Mail SYSB
JES
JESXCF Mail SYSC
When JESXCF returns control after a successful attach JESXCF group request, a default
mailbox (named SYSJES$DEFAULT) is supplied. This mailbox collects system event data.
System event data includes any XCF events on any JES3 member of the JESXCF group and
events on the MVS system under which it runs. JES3 does not use the default mailbox and
deletes it.
IXZXIXSM The JESXCF send a message service sends a data packet to the same or
another JES3 function in the same JESXCF group. A send message request
can be issued from a function running under a JES3 main task, a JES3 subtask,
JESXCF maintains the order of the messages sent. All messages are received in the order in
which they are sent. Multi-segment messages are not sent until the entire message (all
segments) is available.
The message sender identifies the destination of the message by supplying the member
name and the mailbox name of the receiver. This receiving member can be any member of
the JESXCF group, including the sending member.
IXZXIXRM Once a message is sent to a mailbox, the receiving member is informed
through the POST exit routine. This posting action notifies the mailbox owner of
a message to receive.
IXZXIXAC All received messages must be acknowledged to JESXCF independent of
whether the sender requested an acknowledgement or not. After a message is
acknowledged, JESXCF releases all resources held by the original message.
Member status:
Member is active, connection between the JESXCF address space and the JES address
space is functioning.
MVS XCF state of the member is active but the connection between the JESXCF address
space and the JES3 address space is not functioning. The probable cause is a JES3
abend.
Both MVS XCF status and JESXCF connection status indicate that the member is not
active.
IXZXIXDT The detach from a JESXCF group service (IXZXIXDT) deactivates and
removes a JES from an XCF group.
The JES3 FSS/FSA Connect/Disconnect SSI routine invokes IXZXIXDT during FSS
disconnect processing. JES3 mains do not detach from the JESXCF group during JES3
termination.
XCF signalling
XCF signaling services are the primary means of communication between members of an
XCF group. XCF provides the following macros for sending and receiving messages:
IXCMSGO - Allows members to send messages to other members in their group
IXCMSGI - Allows the message user routine to receive messages sent from a member.
When a member joins an XCF group, it must specify the address of a message user
routine to be given control when another member sends you a message.
IXCMSGC - Allows members to interact with the signalling services for enhanced
signaling functions.
XCF groups
A group in XCF is defined as the set of related members defined to XCF by the multisystem
application (for example, JES3). A group can span one or more of the systems in a sysplex
and represents a complete logical entity to XCF.
JES3 mains join the sysplex using JESXCF services. Communications between JES3 mains
are through JESXCF signalling services. JESXCF uses XCF signaling services for
communications, XCF uses whatever connections are configured to z/OS, which could be the
coupling facility or ESCON® CTCs.
Implementing XCF signaling through coupling facility list structures provides significant
advantages in the areas of systems management and recovery and, thus, provides enhanced
availability for sysplex systems.
While a signaling path defined through CTC connections must be exclusively defined as
either outbound or inbound, you can define a coupling facility list structure so that it is used for
both outbound and inbound signaling paths, and MVS automatically establishes the paths.
For example, if you define a list structure for outbound message traffic, MVS automatically
establishes a signaling path with every other system that has the structure defined for
inbound message traffic. Similarly, if you define a list structure for inbound traffic, MVS
automatically establishes a signaling path with every other system that has the structure
defined for outbound traffic.
Signaling paths implemented through CTC connections are one directional. That is, on each
system, messages sent to other systems require an outbound path, and messages received
from other systems require a separate inbound path.
Communication paths
An XCF communication path is determined by the PATHIN and PATHOUT definitions initially
defined in the COUPLExx parmlib member. The definitions can be modified with the SETXCF
operator command.
(4) (7)
CSA GMS
(5) (8)
Staging areas
JES3 destination queue (IATYDSQ)
JES3 address space User address space
SSOB SSIB
(6). GMS FCT 5 JES3
DSQLOC staging area
Select job MVS initiator
Job info into SA (1). IEFSSREQ
JSERV response BALR
BALR (10). ..... return from JES3
Staging areas
The data area JES3 uses in the SSI communication is called a staging area (IATYSTA). It
contains the data describing requests for JES3 services, for transport to and from JES3 and
related address spaces. When JES3 passes a staging area to JESXCF for transportation,
JESXCF wraps an message envelope around the staging area. The envelope (IXZYIXEN)
provides header and control information about messages being sent between JES software
components.
Global Local
Staging
XCF A/S
Areas
JESXCF A/S JESXCF A/S
CTC
PLPA or PLPA
JES3 Comm Serv CF JES3 Comm Serv
GMS selects a job and uses the JSERV macro to pass the data in a staging back to the
address space on the local. After a function has been posted that an SSISERV request has
arrived for it to process, the function uses the DSQLOC service to get the request. DSQLOC
adds any new requests to the existing DSQ staging area queue, and returns the first request
on the queue to the caller. The caller can then process the first request, or run the queue to
determine which request it wants to process. When the request is processed, the JSERV
service is then used to purge it, or to send a response back to the original requester.
When JSERV or SSISERV is called, JESXCF takes the information provided by the requester
and builds a staging area. Then, based on the request type, it calls a JESXCF service to build
a JESXCF message out of the staging area and then transport the message to its destination.
Destination queue
The JES3 destination queue (DSQ) is a control block used by subsystem interface routines to
route requests to the JES3 functions responsible for servicing the requests. The DSQ control
block is made up of a queue index section and followed by the queue entry section. In the
queue index section offsets 00 - 7F are SSOB function codes and offsets 80 - FF are JES3
destination codes. An index entry byte used to calculate the offset into the corresponding
queue entry. The queue entries include: event completion flag (ECF) and mask, entry status
flags, pointers to the first and last staging are on the queue, and the JESXCF mailbox name.
The destination queue table (IATYDSQ) is built during JES3 initialization. The table can
contain a maximum of 256 entries.
DLOCON macro
Issuing the DLOCON macro enables a function in the JES3 global or local address space to
receive unsolicited communication (staging areas) from a user's address space, from JES3
on another processor in the processor complex, or from an FSS or FSA in another address
space. The DLOCON service routine (IATSSDS) marks the requested destination queue
entry as active, and save in it the input ECF address and mask. It also creates a JESXCF
mailbox for the DSQ entry with the JESXCF IXZXIXMB macro. The mailbox name is also set
into the destination queue entry. When a JESXCF mailbox is created, a subroutine in
IATSSRE is specified as the JESXCF post exit routine for the mailbox.
DSQQST-Entry
ECF ADDRESS
ECF MASK
Staging Areas
FLAGs
The destination queue entry has the pointers to the staging areas waiting to be processed.
JESXCF mailboxes are used to manage SSISERV requests received by the JES3 address
space. A JESXCF mailbox is created the first time DLOCON is called, and is used to receive
requests associated with the DSQ entry indicated by the caller.
When SSISERV calls JESXCF to transport a staging area, it provides to JESXCF the name of
the mailbox in which to place the message. When the DSQLOC service is called to process a
DSQ, it receives all outstanding staging areas from the JESXCF mailbox associated with the
DSQ. These staging areas are queued to the DSQ staging area queue before control is
returned to the caller.
The FCT chain elements are arranged according to the priority of the DSP, going from the
highest to the lowest. Certain resident FCT entries that represent required DSPs have a
higher priority than other FCT entries, however, priority is not related to residence.
The priority of an FCT entry is determined by the response requirements of the JES3 function
involved. The last (lowest priority) FCT entry represents the WAIT DSP. When dispatched, the
WAIT DSP issues an MVS WAIT macro indicating that JES3 has no more work to do.
Some FCT entries represent DSPs that perform required JES3 functions like operator
communication and output services. These FCT entries are always present on the FCT chain.
They are called resident FCT entries and they are not dynamically added or removed from the
dispatching queue.
Non-resident FCT entries, on the other hand, are added (IATXATF) and deleted from the
dispatching queue as needed. These non-resident FCT entries perform operator utility
functions as well as other basic JES3 functions.
The resident FCT table is build during JES3 initialization. The multifunction monitor selects
the highest priority “ready” FCT entry from the table and transfer control to it.
Non-resident FCT entries, on the other hand, are added (IATXATF - attach FCT to active
chain) and removed from the dispatching queue as they complete. These non-resident FCT
entries perform operator utility functions as well as other basic JES3 functions. Each small
piece of work that JES3 performs when processing a job is accomplished with a JES3
program called a dynamic support program, or DSPs. Each DSP is represented on the FCT
chain by one or more FCT entries or elements. The elements on the FCT chain are executed
The AWAIT macro refers to an one byte event completion flag (ECF) to synchronize
processing. The macro supplies an ECF mask, which is compared to the ECF to determine
when one or more of the events have occurred.
For the AWAIT TYPE=ON macro, completion is indicated when any corresponding ECF mask
bit is on in the ECF.
For the AWAIT TYPE=OFF macro, completion is indicated when all bits specified in the ECF
mask are off in the ECF.
When the AWAIT condition is completed, the waiting FCT becomes “ready” for MFM
dispatching.
Normal JES3 DSP processing consists of short execution intervals between waits. For most
DSPs, these breaks occur naturally. However, if a DSP runs a long time without giving up
control, it should issue the AWAIT TYPE=ON macro specifying a posted ECF at regular
intervals.
The AWAIT TYPE=ON macro specifies that control is to be returned to the function issuing
the macro only when at least one of the specified events have occurred. By providing dummy
AWAIT macros in which the events being waited for are already posted as complete, the DSP
gives the multifunction monitor (MFM) control to let higher priority DSPs execute.
JES3 does not provide a “POST” macro. ECFs are posted by using machine instructions that
manipulate the ECF byte bits.
FCT entry
JES3 TVTABLE
FCTNEXT
255 FCT Priority
FCTTOP FCTRDQCH
FCT entry
READYQ
TVTRDQTP
FCTNEXT
254 FCT Priority
.
. FCTRDQCH
First FCT to be dispatched FCT entry
from the Ready Queue
(Flag in FCT - FCT on Ready
Queue)
FCTNEXT
10
FCT chaining
The FCT chain is expanded or contracted as functions become active or terminate; thus, the
FCT reflects the active components of the system at any given time. The first FCT in the chain
is pointed to from the JES3 TVTABLE entry at label FCTTOP.
JES3 dispatches an FCT entry the same way as MVS dispatches a task control block (TCB).
The FCT entry representing a DSP is one element on the FCT chain. The FCT chain
elements are arranged according to the priority of the DSP, going from the highest to the
lowest. Certain resident FCT entries that represent required DSPs have a higher priority than
other FCT entries, however, priority is not related to residence.
The priority of an FCT entry is determined by the response requirements of the JES3 function
involved. The last (lowest priority) FCT entry represents the WAIT DSP. When dispatched, the
WAIT DSP issues an MVS WAIT macro indicating that there are no more dispatchable FCT
entries on the FCT chain. In other words, JES3 has no more work to do.
READYQ FCT
To handle the ready queue, JES3 uses the READYQ FCT entry on the normal FCT chain.
The READYQ FCT is assigned a high priority of 254. Whenever an FCT is added to the ready
queue, the READYQ FCT is posted. When it encounters the posted READYQ FCT, the
multifunction monitor scans the ready queue before it scans the normal FCT chain. (However,
before scanning the FCT ready queue, the multifunction monitor scans for FCTs with priority
255.) JES3 places FCTs on the ready queue in "last-in-first-out" order. The priority of the
FCTs on the ready queue does not matter (as it does on the normal FCT chain).
Resident FCTs
The visual shows the FCTs that are resident in the JES3 nucleus in module IATGRPT. There
should be a minimum of 30 FCT entries in an active system. FCT entries are created for each
active device in the system, printers and punches, both local and remote. Also consider the
number of NJE and RJP lines active.
FCT
FCTAWLM GET ECF ADDR - NEXT FCT ADDR (R1,R2)
FCTECFAD R1 FCTNEXT
FCTNEXT R2
FCTRDQCH FCTNEXT
FCTRDQCH
FCT dispatching
When JES3 has built the FCT chain (which is an ongoing activity as more jobs are read into
the system), JES3 begins to allow certain FCT entries to be dispatched for execution. The
part of JES3 that handles this dispatching is the multifunction monitor (MFM). The
multifunction monitor performs the following steps:
Scans the FCT chain for an FCT entry eligible for dispatching. Each scan begins at the top of
the chain, with the highest-priority FCT entry. If no entries are ready for dispatching, the WAIT
DSP is dispatched.
After processing the two console-related FCTs, the TIMER FCT, (and perhaps the DSI FCT)
the multifunction monitor checks the READYQ FCT (representing the READYQ DSP). The
visual shows the beginning of the normal FCT chain and the position of the READYQ FCT on
the chain immediately following the two console-related FCTs and the TIMER FCT. If the
READYQ FCT indicates the presence of FCTs on the ready queue, then the multifunction
monitor examines the ready queue FCTs before resuming the scan of the normal FCT chain.
JES3 builds the FCT ready queue in last-in-first-out order.
IATNUC
TCB
JES3 TVTABLE
FCTs
Examine FCT chain MFM of JES3
(IATGRCT)
CONCMD (Ready queue) --------------
--------------
FCTTOP --------------
--------------
READYQ
TVTRDQTP
WTR DSP code
WTR "ready"
--------------
--------------
--------------
- - - - - - - - - - - - - -AWAIT - Return to MFM
JSS
To speed up the process of locating a “ready” FCT to be dispatched, JES3 uses a separate
queue of FCTs (TVTRDQTP) from the normal FCT chain. This separate queue, called “FCT
ready queue”, contains FCTs for JSAM I/O completion (AWRITE, WRTCHAIN, and
JESREAD) that are posted and dispatchable. JES3 uses the READYQ FCT entry on the
normal FCT chain to process the ready queue. When ever an FCT is added to the ready
queue, the priority 254 READYQ FCT is posted. When the MFM encounters the READYQ
FCT posted, it scans the ready queue before it scans the normal FCT chain. When all FCTs
on the ready queue are processed, MFM starts again the FCT chain scan from the top
(priority 255).
IATINTK
JESXCF
IATAUX task
The writer output multi-tasking (IATAUX) is used to offload a portion of the JES3 writer
processing from the IATNUC task. At the point where a JES3 writer has selected a data set
for printing, the writer may switch from the FCT under the IATNUC task to the auxiliary task.
The writer output multi-tasking should be used when there is a large number of local and
remote RJP printers. The writer output multi-tasking is not used for FSS writers. Writer output
multi-tasking is optional and is specified through the JES3 initialization OPTIONS statement,
as follows:
OPTIONS,MT= {ON|OFF}
JES3 SSVT
JES3 TVTABLE
ASPECB
Address of JES3
MASTER ECB
Once the IATNUC TCB is posted, the task can be dispatched by the MVS dispatcher.
Therefore, there is a percentage of time that the IATNUC TCB may be posted but not active
while higher priority address spaces are dispatched.
JES3 DSPs must not issue MVS WAITs. If DSPs require MVS services that explicitly or
implicitly involve MVS WAITs, they must use generalized subtasks (IATGSC1) to execute the
part of the program that involves MVS WAITs.
JES3 functions
FCT - Number in storage definable
RESCTLBK,FCT=nnnn
Job related
JCT - Stored in a separate spool data set
A JCT contains information pertinent to a single job
JCTs are resides in a dataspace when in-storage
JQE - Size definable via OPTIONS statement
OPTIONS,...JOBNO=(,,joblim)
RQ - Size determined by JES3
Cell pools built at initialization and dynamically
JES3 address space
TVT - TVTABLE in JES3 nucleus
Contains pointers to almost everything
You should use the resident control block (RESCTLBK) initialization statement to preallocate
storage for the highly used JES3 FCT entries: RESCTLBK,FCT=nnn. Using high enough
RESCTLBK FCT count can reduce GETMAIN overhead and the associated paging overhead.
The size of the JQE tables are determined by the number of jobs allowed in the system and
the range of job numbers as defined on the OPTIONS initialization statement.
OPTIONS,.,JOBNO=(lowest,highest,joblim)
Scheduler element
A scheduler element is a part of the JCT entry and represents one or more DSPs needed for
JES3 processing of a job. A scheduler element defines a piece of work for JES3 to do. Job
segment scheduler (JSS) is a DSP that scans the JCT table to locate scheduler elements
eligible for processing, and then builds RQ and FCT entries so that the corresponding DSPs
can be dispatched. JSS DSP itself is running under its own FCT.)
There are no external means to influence the size or number of extents in each RQ cell pool.
The JES3 private address space contains the control blocks for all global, local or C/I FSS
data used for DSP executions. This data is accessed through the TVT. Most JES3 global
services are accessed through the TVT. It includes the following information:
The addresses of most of the control blocks in the JES3 private address space.
The entry point addresses of most of the JES3 services (resident code).
Status information for all JES3 functions.
The IATYDSD macro generates an entry for a dynamic support program (DSP) in the DSP
dictionary (module IATGRPT or, in a C/I FSS address space, module IATGRPTF). An entry in
the table is required for each DSP in order for it to be recognized as part of JES3. The
IATYFCD macro generates the permanent function control table (FCT) entries in the DSP
dictionary for JES3 functions such as: console service and the main device scheduler (MDS).
Scheduler element
Scheduler element is the part of the job control table (JCT) entry that represents one or more
dynamic support programs (DSPs) needed for processing of jobs by JES3.
The JCT data set contains a record for every job in the JES3 complex. Many JES3 functions,
such as inquiry and modify, access the JCT. The job segment scheduler (JSS) is the JES3
function that accesses and updates the JCT most frequently.
Each JCT entry contains information about the job and an entry for each SE. Each SE entry
contains flags indicating that SE's status: inactive, active, or complete. JSS uses these flags
to determine which SE is next for scheduling/ending function: the first SE that is not marked
complete is selected, and is marked either complete or active, for either ending function or
scheduling. The JCT also serves as a continually-updated checkpoint of the status of the job
as it progresses through the system. A job exists in the system when its JCT entry is created
and ceases to exist when the JCT entry is removed. The entry contains:
The job name
The job number
The job status
A number of SEs (one for each piece of work to be performed on behalf of the job)
Spool addresses of other job-related control blocks
A JQE is a control block containing a summary of information from a job control table (JCT)
entry. JQEs move from queue to queue as work moves through each stage of JES3
processing.
When a job enters the system, JES3 assigns a job number and a JQE to it. When the JQE is
assigned, it is added to the appropriate priority chain anchored in the JCT access method
data area (JQX), based on the priority specified in the job's JCL.
Once a JQE is associated with a job, that JQE is always on a priority chain (although it may
not always be on the same priority chain). The job scheduler (JSS) searches these priority
chains for scheduler elements (SEs) ready for scheduling.
JOB
Number
Table JOB
NAME
Table JQE
(8 Bytes) ENTRIES
(108 Bytes)
It is the JQE that is first examined by the job segment scheduler when it searches for work to
be done. The JQE is also used to answer most system or operator inquiries about jobs,
further removing a need for JCT access. JQEs are constructed during JES3 initialization and
allocated for a job when its JCT entry is added to the job queue. The JQE structure includes
five control blocks imbedded in one data area. JQE0, JQE1, JQE2, and JQE3 contain
information to manage JQE4.
JQE0 JQE0 is a table for managing the virtual storage in which the entire JQE structure
resides.
JQE1 JQE1 is the allocation table. Each bit corresponds to an entry in the jqe3 and
JQE4 tables. There is one bit per job number. When a JQE needs to be allocated
the bit map is searched for the first unused entry. The JQE3 and JQE4 that
correspond to this entry are then used for the job.
JQE2 JQE2 is the job number table. There is a halfword for each possible job number.
That is, the first JQE2 corresponds to the first job number, the second JQE2 to
the second job number etc. The JQE2 contains the index (relative JQE
The JQE tables are obtained (using the AGETMAIN macro) in contiguous storage during
JES3 initialization. The JQE4 table, which is mapped by IATYJQE, contains an entry for each
job. The job number range is defined in the initialization stream. Each JQE4 entry contains a
subset of the information contained in the JCT for that job. The JQE4 entries also appear on
many queues used by JSS for scheduling decisions, and therefore also contain chaining
fields in addition to job information.
When the job segment scheduler is dispatched, it examines JQEs to find an eligible job so it
can schedule a DSP. Part of this processing is construction of an FCT entry when the DSP
being scheduled is not represented by a resident FCT entry. In addition to constructing and
enqueuing an FCT entry (if necessary), the job segment scheduler always builds a resident
job queue element. Spool addresses from the JCT entry to the job's other single-record files
(SRFs) are extracted and placed into the RQ, which also contain status flags, job information
fields, and queueing pointers.
The mnemonic in the fourth and fifth character indicates any of the following module
functions:
AB - abnormal termination
BD - MVS/Bulk Data Transfer
CN - console services
CS - callable services
DC - dependent job control
DJ - dump job
DL - deadline scheduling
DM - spool data management
DS - dynamic system interchange
DY - dynamic allocation fastpath
FC/FP - functional subsystem interface
FS - failsoft
GR - general routines
The sixth and seventh characters restrict any of the above mnemonics to further classification
of a specific task, and indicate (but are not limited to) any of the following:
XM - cross memory processing
DV or DR - driver module for a particular DSP
DT or DA - data CSECT for a particular DSP
CR - card reader processing
MN - monitor
Due to the limited number of combinations provided by 2 characters, there are exceptions to
these conventions.
IATY__ __ __
The fourth character of a JES3 macro that expands within other JES3 macros is a Z:
IATZ__ __ __
A spool device must be a DASD. Spooling refers only to use of DASD by JES3 for storage of
jobs and job-related data. Use of the same device(s) for other purposes is not spooling.
Spooling allows reading or writing to take place continuously at or near the full speed of I/O
devices. Without spooling, there would be frequent delays (and processing overhead) during
reading or writing of data.
The JES3 checkpoint data set contains the information required to initialize either a global or
local JES3 processor which let JES3 to start either a global or local JES3 processor with little
or no loss of system information.
The JES3 checkpoint facility writes job-related control block information to the JES3
checkpoint data set(s) at appropriate points in time during system processing; that is, as
information changes in the system. This control block information is restored to the system
after performing a hot or warm start. All other information is lost.
CHKPNT
JCT
entry
...........................
The system programmer defines a spool data set to JES3 by a TRACK or FORMAT
statement in the JES3 initialization stream. Each TRACK or FORMAT statement defines a
unique ddname of the DD statement or the ddname on a DYNALLOC statement that defines
the spool data set. Spool data sets must be MVS allocated to each JES3 processor so that
any main in the JES3 complex can perform I/O to a any spool data set.
JES3JCT is a the ddname given to the DD statement of job control table (JCT) data set. Other
spool data sets allocated to JES3 cannot use this ddname.
The JCT data set is the JES3 job queue. It is accessed by JES3 functions through spool data
management services. The JCT data set holds JCT entries that represent jobs. The JCT data
set will not contain any SYSIN or SYSOUT data.
The spool data set can be allocated either by using JCL DD statements in the JES3 start
procedure or by the JES3 DYNALLOC initialization statement. To manage spool data sets,
JES3 assigns a unique internal extent number to each data set during JES3 initialization.
The checkpoint data set(s) let(s) JES3 to store key information while the system is running.
One or both JES3 checkpoint data sets must be defined in the JES3 start procedure using
ddnames CHKPNT and CHKPNT2.
JCT
PREFIX FIXED SE
SIZE AREA
28 668 40
Default
JCT
entry
The JCT entries on the JCT data set are a fixed-length, unblocked format. Note that JCT
entries vary in size: called jobs have two scheduler elements (SE), standard jobs have four (or
more), and non-standard jobs have a variable number up to an installation-defined maximum.
Even though the JCT data set is not contained within the DASD space allocated for spool, it is
read from and written to the JES I/O buffer pool by means of JSAM single-record file
processing techniques. The JCT data set, depending on how much space was allocated to it,
contains a fixed number of blocks.
The JCT data set, depending on how much space was allocated to it, contains a fixed number
of blocks which determines the maximum number of jobs simultaneously in the JES3
complex.
The JCT data set contains information about the status of jobs in the system. You must make
the size of the JCT data set large enough to accommodate the maximum number of jobs that
can be in your JES3 complex simultaneously. If the data set is larger than required, JES3
uses only that portion needed to hold the maximum number of jobs.
This number is shown during a JES3 start in message IAT4075 that are received during the
JES3 start-up. Message IAT4075 is displayed only when the JES3JCT data set is not large
enough to contain the JCT records for the defined maximum number of jobs or the number of
job numbers in the defined job number range is less than the defined maximum number of
jobs.
OPTIONS,JOBNO={lowest,highest,joblim},SE=10
HJS7750_jctsize = (4 x max SEs) + 668 + 28 bytes (prefix)
Prefix 28 Bytes
40 Bytes
(Room for default
number of Scheduler
Elements)
Where:
The JCT data set size in cylinders must be incremented to the next whole number if the
result is not a whole number.
64 is the number of JCTs JES3 reserves for write error recovery.
The max # of jobs is the maximum number of jobs that can simultaneously be in your
JES3 complex.
The number of JCTs per cylinder (as explained in the device specific table). For IBM 3380
and 3390 devices, use the following documents to determine the number of JCTs that will
fit on a track and cylinder.
For example, the IBM 3390 device contains 41 JCT entries per track and 615 entries per
cylinder.
The JCT dataspace is created during the JES3 initialization. If the data space creation fails,
the operator is notified and the JCT access will be to the JCT spool data set for reads and
writes.
JCT performance
When the JCT dataspace is successfully created, there is no read activity shown for the JCT
data set. A copy of the entire JCT data set resides in the dataspace. The purpose of this
dataspace is to reduce the I/O necessary to access the JCT data set. The amount of I/O
reduction obtainable is dependent on the amount of real and expanded storage.
JCT 'J11'
JES3 A/S
JCT Dataspace
See z/OS JES3 Initialization and Tuning Reference, SA22-7550 for information about how to
define the size of the JCT and how to tune JCT access.
A JCT entry may span a page boundary. A test for a JCT entry to determine if it is still in
storage and not paged out tests the first and last byte of the JCT entry since an entry may
span a page boundary.
JCT 'J1'
JCT 'J40'
JCT 'J2'
free 4K page
JCT
JCT 'J11'
moved
JCT 'J40'
JCT access
The IATXJCT macro service adds, alters, examines, deletes, or releases a JCT by invoking
the JCT access method (IATGRJX). The JCT access method accesses the JCT in the JCT
data space whenever the data space is enabled. JES3 automatically enables the JCT data
space during JES3 initialization on the global. If the JCT data space is not enabled, the
access method accesses the JCT from the JES3JCT data set.
A move of the JCT record from the dataspace into a JSAM buffer is done by the JSAM
routines.
The JESREAD macro cannot be used to read a JCT record, which is also a single record file.
For a read request, if the JCT dataspace is enabled, a JSAM buffer is obtained and the
dataspace addresses of the JCT entry are checked to determine if the JCT entry is in real
storage:
If the JCT entry is in real storage, it is moved directly from the data space to the JSAM
buffer.
If the JCT entry is not in real storage, the JCT read SRB is scheduled to move the JCT
entry to the JSAM buffer. The SRB routine isolates JES3 nucleus task from page faults
when accessing the JCT entry.
A job’s JCT entry address in the dataspace is computed from the job’s JQE address:
(((JEQ_ADDR - JQE4_BASE_ADDR/JQESIZE)*JCTSIZE)+DATASPACE_ORIGIN)
IATUTJCT utility
You run IATUTJCT by invoking a started task that runs the IATUTJCT program. Such a JCL
procedure must reside in SYS1.PROCLIB. Member IATUTJCS of the z/OS SIATSAMP data
set also provides a sample JCL procedure for IATUTJCT. IATUTJCT must be started using
SUB=MSTR.
IATUTJCT procedure
You run IATUTJCT by invoking a started task that runs the IATUTJCT program. Below is a
sample JCL procedure you might use to run IATUTJCT. Such a JCL procedure must be in
SYS1.PROCLIB. Member IATUTJCS of the SIATSAMP data set also provides a sample JCL
procedure for IATUTJCT. IATUTJCT must be started using SUB=MSTR.
Using IATUTJCT
The IATUTJCT functions are to:
Utilize IATUTJCT to migrate the individual JCT entries and the same time creating a new
JCT data set and checkpoint data sets.
You need to allocate a larger JCT data set in order to provide capacity for more jobs in the
JES3 job queue.
You need to move your JCT data set to a new volume. The new volume can be the same
device type as the one where your JCT data set currently resides, or it can be a different
one.
You can run the IATUTJCT utility as a test while JES3 is up and running. Do not change any
definitions in the JES3 startup procedure or CIFSS procedures. The test options are:
If testing the migration from a lower version to a higher one, use the P=MIGRATE
parameter.
You need to test IATUTJCT only once in a JES3 complex, and you can test it on the global
or any local.
You do not need to specify SUB=MSTR parameter when testing IATUTJCT with JES3 up
and running.
Starting JES3
If IATUTJCT fails, or if you decide to not switch to the new data sets, you must restart JES3
with the old data sets. You can perform a hot start, hot start with refresh, or IPL with a warm
start. If you have changed the initialization stream (the JES3JCT DYNALLOC statement to
When using IATUTJCT to move the JCT data set, you can pick up the new data set with any
type of JES3 start; however, if you perform a hot start with refresh or a warm start, and you
use the DYNALLOC statement to define the JES3JCT DD name, you must change the
DYNALLOC statement to point to the new JCT data set.
Note: See “JES3 start types” on page 206 for information of the JES3 starts.
JES3 global and locals and all CIFSS address spaces must be
stopped
They use CHKPNT, CHKPNT2, and JES3JCT
S iatutjct_proc,SUB=MSTR,P=MIGRATE
Modify JES3 and CIFSS JCL procedudes
Use symbolic parameters in JES3 procedure
//JES3 PROC CK=CHKPNT,CK2=CHKPNT2,JCT=JES3JCT,P=
//JES3 EXEC PGM=IATINTK,DPRTY=(15,15),TIME=1440,
// REGION=0M,PARM=&P
...
//CHKPNT DD DISP=SHR,DSN=SYS1.&CK
//CHKPNT2 DD DISP=SHR,DSN=SYS1.&CK2
//JES3JCT DD DISP=SHR,DSN=SYS1.&JES3JCT
...
S JES3,CK=NEWCHK,CK2=NEWCHK2,JCT=NEW3JCT,P=NOREQ
JES3 and all converter/interpreter FSS (CIFSS) startup procedures must be updated to point
to the new checkpoint data sets. Note that you cannot use symbolic parameters in the CIFSS
startup procedures. You must change the DD statements in the CIFSS procedures.
In the JES3 procedure you can use symbolic parameters to specify the checkpoint and JCT
data set names. Note, if you use the DYNALLOC statement to define the JES3JCT DD name,
you must create a new initialization stream member that points to the new JCT data set.
JCT expansion
The actual migrating of the JCT entry and creation of a new JCT data set is accomplished
using a utility called IATUTJCT. This utility currently allows an installation to move/copy the
JCT data set without a cold start to a device of different geometry and/or data set of different
size. The utility will be incorporated and standardized into the JES3 product and modified to
allow the migration of JCT entries.
At least one of the checkpoint data sets must be used for JES3
One or both JES3 checkpoint data sets defined in the JES3 procedure
The ddnames are CHKPNT and CHKPNT2
Either checkpoint data can be added or replaced over a JES3 restart
Size and placement of the checkpoint data sets
For size considerations - see JES3 Initialization and Tuning Guide
If either checkpoint data set runs out of space, it must be replaced
Allocate the checkpoint data sets on
Different volumes
Different channel paths
Different control units
IATXCKPT checkpoint access macro
Interfaces to the checkpoint record access method functions
You cannot dynamically allocate the checkpoint data sets. You must allocate and catalog one
or both checkpoint data sets before JES3 operation. At least one of the checkpoint data sets
must be available to JES3 during initialization processing. You can add or replace either
checkpoint data set over a JES3 restart of any kind with no effect on JES3 processing. Both
checkpoint data sets contain identical information; to ensure against loss of checkpointed
data, allocate both data sets.
If either checkpoint data set runs out of space, the data set must be replaced. Recalculate the
amount of space the checkpoint data set needs and allocate a new checkpoint data set that is
larger than the old one.
To minimize the effect of the loss of any one DASD volume, control unit, or channel path,
allocate the checkpoint data sets on different volumes, channel paths, and control units. The
volumes may be different device types.
IATXCKPT macro
The IATXCKPT macro requests checkpoint record access method functions.
Several factors determine the number and size of spool data sets that you should allocate:
The amount of spool space that all jobs in the complex may need at any one time. Allocate
enough spool space to handle peak usage.
The number of processors in the complex competing for available control units and
devices. The more processors competing for control units and devices, the more spool
data sets needed for reasonable performance. A spool data set should not be busy more
than 30 to 40 percent of the time or there will be too much contention for the data set.
The type of work being carried out in the complex. Jobs that include large amounts of
output handled by JES3 need more spool space than jobs with little output, such as TSO
jobs.
To avoid degradation of JES3 performance and possible lockouts, do not allocate more than
one spool data set per volume. When a volume contains more than one spool data set, the
average seek time to access the data increases. Similarly, do not allocate data sets to a
volume that JES3 rarely accesses.
Note: This suggestion does not apply to parallel access devices such as ESS. With the
parallel access devices, a spool data set is not allocated on a single physical device but on
a logical device located anywhere in the storage cluster.
If you format a spool data set during JES3 initialization, JES3 can use the spool data set after
initialization completes. If you use IEBDG to format a spool data set, you must then do a
warm start or cold start so JES3 can use the data set.
The type of start you use depends on why you are formatting the spool data set:
If you have changed the BUFSIZE= parameter on the BUFFER statement, use a cold start
(C). (In this case, you must format all spool data sets.)
If you are replacing a spool data set, use a warm start to replace a spool data set (WR). If
you also want an analysis of the jobs in the job queue, use a warm start with analysis to
replace a spool data set (WAR).
After JES3 processes the initialization stream, replace the FORMAT statement with a TRACK
statement. If the FORMAT statement contained the STT or STTL parameter, also code this
parameter on the TRACK statement.
If you use a warm start and the initialization stream contains a FORMAT statement for a spool
data set that is already formatted, JES3 issues a warning message. JES3 continues with
initialization, however, and does not reformat the spool data set.
The value of the variable nnn must equal the value of the BUFSIZE= parameter on the
BUFFER initialization statement. The variable nnn appears on both the SPXTNT DD
statement and on the FD utility program control statement.
If IEBDG successfully formats the entire spool data set, the formatting job ends with an abend
code of D37. In addition, MVS issues message IEC031I. Ignore the corrective action
specified in the message.
After the spool data set has been formatted, include a TRACK statement for it in the
initialization stream. To make the spool data set available to JES3, restart JES3. The type of
restart you use depends on why you are formatting the spool data set:
If you have changed the BUFSIZE= parameter on the BUFFER statement, use a cold start
(C). In this case, you must format all spool data sets.
If you are replacing a spool data set, use a warm start to replace a spool data set (WR) or
a warm start with analysis to replace a spool data set (WAR).
If you are adding a spool data set, use a warm start (W) or a warm start with analysis
(WA).
To reformat a spool data set, use either of the procedures just described.
Input service, the first phase of JES3 job management, reads MVS jobs and places each job
into a queue for subsequent processing by other phases. These types of jobs include MVS
batch jobs, started tasks, and TSO logons.
Another group of JES3 jobs consists of callable DSPs. These jobs include operator called
DSPs, JES3 called DSPs.
JCT JCT
# #
JOBS Data
Standard Job Non-Standard Job ON
SPOOL
When a job enters a JES3 complex, it is a assigned a job number that distinguishes it from
other jobs. The two types of MVS jobs are standard jobs and non-standard jobs.
Standard job
The standard job - If a user job contains no //*PROCESS control statements JES3 defines the
standard sequence of scheduler elements (SEs). Scheduler elements make up the part of the
job control table (JCT) entry that represents one or more dynamic support programs (DSPs)
needed for processing of jobs by JES3.
Non-standard job
If a MVS job contains one or more //*PROCESS statements, JES3 defines the job as
requiring the sequence of scheduler elements named on the //*PROCESS statements. The
job has been created for a callable DSP.
Scheduler elements
All jobs that are read into JES3 are placed in the JES3 job queue, which resides on a
direct-access storage device (DASD). Once in the job queue, the job is subdivided into two or
more processing segments called scheduler elements. A job submitted in the normal way has
scheduler elements (SEs) consisting of a standard set representing the converter/interpreter
(C/I) for input processing, main service (MAIN) processing, output service (OUTSERV) for
processing the job's output, and PURGE for purging a job from the system.
//*PROCESS statements
This statement can be used to control how JES3 processes a job. A job that contains
//*PROCESS statements receives only the JES3 processing specified on the //*PROCESS
statements plus certain required processing.
Note: The //*PROCESS statement consists of the characters //* in columns 1 through 3,
PROCESS in columns 4 through 10, a blank in column 11, and the DSP name beginning in
column 12. The rest of the columns must be blank.
Called DSPS
Most of the JES3 program in the global processor is divided into parts called dynamic support
programs, or DSPs. There are DSPs for reading job input, for processing jobs, and for writing
job output. What distinguishes DSPs from ordinary routines or subroutines is that DSPs are
scheduled units. Before a DSP is executed, it must be scheduled by JES3. (DSPs have
priorities that govern their position in a JES3 dispatching queue.)
Many DSPs are called by the operator to do specific functions.Many are called utility DSPs.
This exit, entered at the beginning of input service processing during job statement
processing (module IATISJB), permits you to create the initial set of scheduler elements for
each job. If this installation exit is not taken, the standard list of scheduler
elements--converter/interpreter, main service, output service, and purge--is used. On
completion, you must have defined the required set of scheduler elements.
OPTIONS,JOBNO={lowest,highest,joblim},SE=10
Prefix 28 Bytes
JCT
#
668 Bytes
JCT data
CI
MAIN
OUTSERV 40 Bytes
PURGE
Scheduler
Elements
The job number range is specified by low_job_number and high_job_number values. The
number of concurrent jobs allowed in the JES3 complex is the minimum of the following
values:
Number of records in the JCT data set
Maximum number of jobs from the JOBNO= keyword
Difference between low and high job numbers from the JOBNO= keyword
The SE= keyword parameters specified on the OPTIONS statement specifies the maximum
number of scheduler elements (SEs) that may be constructed for any job. The value chosen
should equal the number of scheduler elements required to support the largest job (in terms
of SEs) to be run in the complex. A number between 10 and 90 may be specified. This
specification is used to calculate the maximum size for a JCT and its SEs (JCT record size).
JES3 JCT
The JES3JCT data set contains a record for every job in the JES3 complex.The job segment
scheduler accesses the JCT when scheduling jobs for various phases of JES3 processing.
Scheduler elements
Each JCT entry contains information about the job and an entry for each SE. Each SE entry
contains flags indicating that SE's status:
Inactive
Active
Complete
JSS uses these flags to determine which SE is next for ending function/scheduling function as
follows:
The first SE that is not marked complete is selected, and is marked either complete or
active.or either ending function or scheduling.
The JCT also serves as a continually-updated checkpoint of the status of the job as it
progresses through the system.
JCT data
A job exists in the JES3 complex when its JCT entry is created and ceases to exist when the
JCT entry is removed.
The JES3 user exit IATUX17 (Define Set of Scheduler Elements), entered at the beginning of
input service processing during job statement processing (module IATISJB), permits you to
create the initial set of scheduler elements for each job. If this installation exit is not taken, the
standard list of scheduler elements --converter/interpreter, main service, output service, and
purge-- is used.
Converter
JCL error
Global
Interpreter Global / Local FSS
JOBS ON (CIFSS)
SPOOL Main Device Fetch /
Scheduling Mount Global
Messages
Generalized
Main Scheduling
Global
Job Execution
Global
Local
Print / Punch
Output Service XWTR
Global
Global / Local FSS
SYSOUT TSO
Global
Job Purge
JCL streams
In general, statements in the MVS job control language (JCL) and in the job entry control
language (JECL) for JES2 and JES3 subsystems, are used by the users to define a job’s
execution steps and resource requirements. The MVS system requires an internal format a
job's JCL statements before it can process it. MVS converter/interpreter transforms the
external (JCL) format job description into the internal format called the scheduler work area
(SWA). Every MVS job must contain a minimum of the following two types of control
statements:
A JOB statement, to mark the beginning of a job and assign a name to the job. The JOB
statement is also used to provide certain administrative information, including security,
accounting, and identification information. Every job has one and only one JOB statement.
An EXEC (execute) statement, to mark the beginning of a job step, to assign a name to
the step, and to identify the program or procedure to be executed in the step. You can add
various parameters to the EXEC statement to customize the way the program executes.
Every job has at least one EXEC statement.
One or more DD (data definition) statements, to identify and describe the input and output
data to be used in the step. The DD statement may be used to request an existing data
Input service
Whatever the source of the input, JES3 is signalled that an input stream is to be read. This
begins a chain of events that includes:
Creation and scheduling of a card reader DSP - a JES3 job
Reading of the input stream by a DSP
Building of the JES3 control blocks describing the MVS job to JES3. JCT entries for each
job in the input stream are added to the JES3JCT data set.
Execution of DSPs represented by scheduler elements in the JCT entries for each job
The DSPs that provide the JES3 input service control the processing of a typical MVS job at
the beginning. Input service routines create scheduler elements that represent a job’s flow
through the various JES3 processing phases. Input service, active on the global processor,
accepts and queues all jobs entering the JES3 complex. The global processor accepts MVS
jobs into the system from:
A TSO SUBMIT command
A local card reader (CR DSP)
A local tape reader (TR DSP)
A disk reader (DR DSP)
A remote work station (RJP/SNARJP DSPs)
Another node in a job entry network (NJE DSPs)
The internal reader (INTRDR DSP)
Once an MVS job is registered into the JES3, the JES3 job segment scheduler DSP (JSS)
will be responsible for the flow of the job through the JES3 processing phases.
Output service
Output service routines operate in various phases to process sysout data sets destined for
local or remote print or punch devices, TSO users, external writers, and writer functional
subsystems.
Job purge
Purge processing represents the last scheduler element for all JES3 job. That is, the last
processing phases for the jobs. It releases the JES3 resources allocated for the job and cuts
the System Management Facility (SMF) to records
Converter
Scheduler Elements
Interpreter CI
Main Device
Scheduling
Generalized MAIN
Main Scheduling
Job Execution
Schedular elements
Each of the four phases of a job is represented by a scheduler element (SE) in the JCT entry.
Every scheduler element denotes a unit of JES3 work (DSP) JES3 must perform when
processing the job. The JES3 job segment scheduler (JSS) selects SEs (perhaps from
several jobs) that are ready for processing, obtains an RQ for the job, and builds entries in the
function control table (FCT) (if they do not already exist) so that DSP can be despatched to do
the work.
CI
MAIN
Scheduler JCT Spool
OUTSERV
PURGE
Elements Data Set
(SEs)
Batch jobs
Started task and TSO logon jobs
(Jobs with JCL statements)
The names in parentheses are formal names of the DSPs that are executed to perform the
work. The number or type of scheduler elements to be used for standard jobs can be changed
by means of a user exit routine; such a change would apply to all standard jobs.
A started task is a set of JCL that is run immediately as the result of a START command.
Started tasks are generally used for critical applications.
'JCT'
JOB1
23050
CI
MAIN
OUTSERV
PURGE
Some function
Another function Scheduler Elements JCT Spool
Purge
(SEs) Data Set
JES3 DSPs
The visual shows the names of the JES3 callable DSPs. Each small piece of work that JES3
performs when processing a job is accomplished with a JES3 program called a dynamic
support program, or DSP. Each DSP is represented on the FCT chain by one or more FCT
entries or elements. The elements on the FCT chain are executed according to their priority,
and are placed on the FCT chain with the high priority elements first. The higher priority
elements are executed before the lower priority elements.
Environment DSPs
JES3 restart/connect DSP #1 - IATMSR1
JES3 restart/connect DSP #2 - IATMSR2
JES3 restart/connect DSP #3 - IATMSR3
JSAM I/O - JSAM
Main service general collection - MSGC
General service - GENSERV
Failsoft - FAILSOFT
DC IATYDSD PRTY=3,XABLE=YES,NOREQ=1, *
CSECT=IATUTDA,MUCC=NO, *
DRVR = IATUTDC,MAXCT = 1,MUCC=NO
TCB
JES3 FCTs Operator calls DC DSP
NUCLEUS
MFM CONCMD *X DC
CONSERV
WAIT
The term scheduling, as it applies to JES3, means the placing of an FCT entry on the FCT
chain. The work to be scheduled is defined by scheduler elements which are contained within
JCT entries for individual jobs. So the process of scheduling consists of a search of JCT
entries to locate scheduler elements for unstarted work, and the building of corresponding
FCT entries.
IATYDSD macro
The IATYDSD macro generates an entry for a dynamic support program (DSP) in the DSP
dictionary (module IATGRPT or, in a C/I FSS address space, module IATGRPTF). An entry in
the table is required for each DSP in order for it to be recognized as part of JES3. The
following are some considerations:
DC Specifies the 1- to 8-character name of the DSP whose entry is being
created by this macro. If the DSP is to be callable, this name can appear as
the argument of an *X,dspname command. If the DSP is to be processable,
this name will appear in the //*PROCESS dspname JCL statements. The
label is required.
WTDDRVR IATGRCD
(1). Build DC Job
JSS (2). Add job to system
(3). Post JSS for Scheduling
WAIT
WTDDRVR requests
WTD requests come from the following JES3 functions:
Inquiry/modify
Console service
Deadline scheduling
WTDDRVR DSP
Like the CONCMD DSP, the WTDDRVR DSP is represented by a resident entry on the FCT
chain. It is the WTDDRVR DSP which actually begins adding the called DSP to the job queue
by passing the console buffer containig the command to the “*X DSP command processing
module” (IATGRCD).
IATGRCD processing
Module IATGRCD builds a job structure for the DR DSP and adds the job to the JES3 job
queue.
JES3 user exit IATUX27 (Examine/Alter the JDAB, JCT, and JMR) is called from the “*X DSP
command processing”. It created the control blocks for the job description accounting block
(JDAB), job control table (JCT), and job management record (JMR).
*X DC,OUT=CON,KEY=SYSTEM
JQE
Data from JCT
128 Bytes
'JCT ' DC (SE)
DC ( jobname )
23047 ( jobnum ) ( in Storage)
DC
PURGE
( on SPOOL )
JCT JQE
Data from JCT
DC 128 bytes
23047 DC (SE)
(in Storage)
DC
PURGE
(on Spool and JES3JCT data space)
The job segment scheduler FCT is dispatched by the multifunction monitor, locates the JCT
entry for the DC job on the JSS ready queue, and schedules the first scheduler element, DC.
The RQ represents a scheduling chain within a given DSP. It contains a summary of the
information the DSP needs to accomplish its function, plus additional information. The JSS
builds the RQ from information in the JCT entry. Pointers from the JCT entry to the job's other
single-record files (SRFs) are extracted and placed into the RQ. The RQ contains spool
information for the job that is executing and holds even more information about the job than
the JCT entry.
TVTABLE
FCTs
RQTOP Chained in FIFO
CONCMD
RQINDEX Determines the Chaining
RQ RQ RQ RQ RQ
CONSERV
2 5 7 10 30
DC
RQNEXT DC
RQGRPCHN
RQWTRCHN Resqueue Chain Fields
RQSPNCHN
JSS
RQSPNCHN
WAIT
The RQ is a large control block containing status flags, job information fields, and queuing
pointers. RQs last only for the life of a scheduler element. The RQ represents a scheduling
chain within a given DSP. It contains a summary of the information the DSP needs to process.
RESQUEUE
( Data From )
JCT
Pointers to
files on spool
*x dc
IAT6306 JOB (JOB01472) IS DC , CALLED BY ROGERS
*IAT7921 ISSUE START/CANCEL/RESTART DC REQUEST
*i j=dc
IAT8674 JOB DC (JOB01472) P=15 DC(ACTIVE)
IAT8699 INQUIRY ON JOB STATUS COMPLETE, 1 JOB DISPLAYED
*i j=1472
IAT8674 JOB DC (JOB01472) P=15 DC(ACTIVE)
IAT8699 INQUIRY ON JOB STATUS COMPLETE, 1 JOB DISPLAYED
*S DC,OPTION=INS
INTERNAL READER ANCHOR BLOCK
LOC IRE ISCD DICT ACTIVE IDLE HI-WATER
245CD098 245AB6F8 24C591A0 00000000 0002 0002 0002
INTERNAL READER ELEMENT CHAIN
LOC RESQ NEXT PREV ECFA FLAG INTRDR
245AB6F8 24992000 245AB728 00000000 24C92F6A 80 JOB28541
245AB728 249921C8 00000000 245AB6F8 24C8FF6A 80 JOB11479
*IAT7921 ISSUE START/CANCEL/RESTART DC REQUEST
DSP commands
Once the DC DSP, or any DSP becomes active by using the *X command, as shown in the
visual, the following operator commands can be used to communicate with the active DSP.
The response shown that the DC job is active with the first scheduler element DC.
If you know the DC job number, then the inquiry command can specify the job number, as
follows:
*I J=1472
With the SNP=name, you can also specify J=ALL or J=jobno, for example:
*S DC,OPTION=SNP=name,J=ALL
SNP= JCT - JCT specifies a dump of the JCT, use the SOURCE= parameter to specify
whether dump core should obtain a copy of the JCT from:
The JCT data space - (Specify JCTDS)
The JCT data set - (Specify DSPACE)
Both the JCT data space and the data set - (Specify ALL)
For example: *S DC,OPTION=SNP=JCT,SOURCE=ALL
SNP= OSE,DIAG - DIAG displays a formatted OSE, which includes such information as:
class
forms
queue
destination
SNP, J=jobno|ALL - J=jobno or ALL indicates either the number of the job whose control
blocks are to be dumped. The default (ALL) causes all jobs' control
blocks to be dumped (that is, the JES3 job queue is dumped). You can
use this parameter to select a job number only when the OPTION=
parameter is set to SNP.
FCTs
CONCMD Resident
CONSERV Resident
MONITOR Transient
WTDDRVR Resident
DC Transient
JSS Resident
WAIT Resident
FCT chain
This visual shows some of the FCTs that exist in an FCT chain and it shows two of the FCTs
previously discussed in this topic.
The FCT chain elements are arranged according to the priority of the DSP, going from the
highest to the lowest. Certain resident FCT entries that represent required DSPs have a
higher priority than other FCT entries, however, priority is not related to residence.
The priority of an FCT entry is determined by the response requirements of the JES3 function
involved. The last (lowest priority) FCT entry represents the WAIT DSP. When dispatched, the
WAIT DSP issues an MVS WAIT macro indicating that there are no more dispatchable FCT
entries on the FCT chain. In other words, JES3 has no more work to do.
Non-resident, or transient, FCT entries, on the other hand, are added and deleted from the
dispatching queue as needed. These non-resident FCT entries, such as DC, perform
operator utility functions as well as other basic JES3 functions.
FCTs JQE
JOB1
CI RESQUEUE CI (A)
(Data From)
JCT
In Storage
On Spool
Converter/Interpreter processing
The CI DSP exists for one main reason: to gather information concerning the job's device,
volume, and data set requirements prior to MVS execution of the job. This information is
necessary for pre-execution setup, one of the major facilities of JES3. The information is
extracted from DD statements in the job's JCL. JSS schedules the CI processing using the CI
element in the JQE and builds the FCT and RQ.
JES3 CI FCT
The JES3 CI FCT invokes the MVS converter/interpreter (C/I) function to process the JCL
statements in a job stream. Converter processing converts JCL to C/I internal text (or C/I
text). If the converter detects any JCL syntax or logic errors, the job is printed and purged
(and the MAIN scheduler element is bypassed). If there are no errors, the interpreter routines
then convert the C/I text to scheduler work area (SWA) control blocks. The interpreter
routines build all SWA control blocks above 16 megabytes in virtual storage in the JES3
global and C/I FSS address spaces. The scheduler control blocks are moved from the SWA to
JES3 spool.
Converter/Intepreter Processing
The CI DSP serves as an interface between JES3 and the JES3 CI subtasks that invoke the
MVS converter/interpreter subtasks. The interface responsibilities of the CI DSP are:
To fail the job if JCL errors are detected by the MVS converter/interpreter.
To flush any job that contains more JCL statements than the limit allows.
To delay processing of any job that would temporarily cause the C/I subtasks to process
more JCL statements than the system limit allows
To construct the SWA control blocks that are produced by the MVS converter/interpreter
and write them onto the spool.
CI DSP processing
The CI DSP stores I/O requirements in job-related control blocks called the job summary
table (JST) and the job volume table (JVT). It writes these control blocks to spool along with
others for the job. Devices, volumes, and data sets required by the job are determined during
this processing. The information related to data sets and volumes are kept in main storage
allows JES3 to maintain a complex-wide awareness of the status of volumes and data sets.
CI subtasks
During JES3 initialization, JES3 attaches an installation-defined number of
converter/interpreter (C/I) tasks. These C/I tasks are subtasks to the JES3 primary task.
When a C/I subtask processes a job, it stores the interpreted job’s JCL into the scheduler
work area (SWA) in the address space in which the service is invoked (global or functional
subsystem) above the 16 megabytes line.
FCTs JQE
JOB1
CI RESQUEUE CI (A)
(Data From)
JCT
'JCT'
POSTSCAN
CI - (A)
MAIN
OUTSERV
LOCATE PURGE
CI SUBTASK
JOB1 JOB . . . . . . . . . . .
JCL MVS
EXEC CONVERTER
DD INTERPRETER
DD
SWA
SWA
JST, JVT, LVS
SPOOL
Create control blocks JVT, JST, and LVS for jobs
Prescan phase of the CI scheduler element processing extracts job requirements from the
scheduler control blocks for use in the postscan phase. At the end of the prescan phase, the
scheduler control blocks are moved from the SWA to JES3 spool.
The CI DSP stores I/O requirements in job-related control blocks called the job summary
table (JST) and the job volume table (JVT). It writes these control blocks to spool along with
others for the job.
JST The job summary table (JST) is a spool-resident control block that contains a
summary of the job's unit, volume and data set requirements. It is used by main
device scheduling (MDS) to allocate the job's resources. It is created during the
postscan phase from the IJS and the JVT and may span one or more buffers,
depending on the job's setup requirements.
JVT The job volume table (JVT) contains an entry for each volume (needed by the job)
that requires a JES3-managed device. Each JVT entry is associated with the IJS
entry for that DD statement.
LVS The locate request table (LVS) contains an entry for each data set that requires a
catalog search to obtain unit and volume information. The data set is assumed to
require a volume on a JES3-managed device until the catalog is searched. Each
LVS entry is associated with the IJS entry for that data set.
FCTs JQE
(Scheduling) 'JCT'
MAIN 'RQINDEX'
GMS
For a standard jobs, main service processing begins when the job segment scheduler
reaches the MAIN scheduler element in the job's JCT entry. The MAIN scheduler element
represents two DSPs: setup (SETUP) and generalized main scheduling (MAIN). Both of
these DSPs are resident and each has a permanent entry on the FCT chain, so the job
segment scheduler need not construct the FCT entries.
Main device scheduling functions are optional and may be bypassed for jobs as if
SETUP=NONE is specified on the SETPARAM statement to indicate no MDS, and all devices
are allocated, mounted, and deallocated by MVS. The SETPARAM initialization statement
specifies parameters that the JES3 main device scheduler (MDS) and the DYNAL DSP uses
in allocation, mounting, and deallocation of devices for jobs run on all mains.SETPARAM also
indicates how MDS is to manage devices through the following options:
Volume fetch - Specifies whether fetch messages for mountable devices are written into
the JESMSGLG data set.
Job setup - Requests setup to allocate all JES3-managed devices required in the job
before the job executes.
High-watermark setup - Requests setup to allocate the minimum number of devices
required to run the job.
Explicit setup - Modifies the standard setup algorithm used in assigning devices to a job
before its execution.
MDS objectives
MVS and MDS allocation consider a job's resource requirements at different levels. MVS
allocation considers job requirements one step at a time for the processor executing the job;
MDS considers the resource requirements for all the steps in a job for all processors in the
JES3 complex.
The SETNAME and DEVICE statements are used with the SETPARAM statements.
SETNAME and DEVICE identify the devices to be managed by MDS. MDS processing is
performed in phases.
Initiator management
An installation can have JES3 or MVS workload manager (WLM) or both manage initiators for
batch jobs. JES3 or WLM control of initiators is at the job class group level. To specify
whether JES3 or WLM manages initiators for a job class group, the installation uses the
MODE parameter on the GROUP initialization statement. If MODE=JES is specified or
defaulted, the initiators are managed by JES3. If MODE=WLM is specified, the initiators are
managed by WLM. The MODE parameter can also be changed dynamically using the *F G
command. A group must be either WLM managed or JES3 managed; it cannot be WLM
managed on one system and JES3 managed on another. When triggered by an MVS
initiator's request for a job, the MAIN DSP chooses a job to give to the initiator. The selection
of the job is influenced by the installation specifications.
JES3-managed initiators
For JES3-managed initiators, jobs are selected within a job class group by priority. If there is
more than one job with the same priority, the jobs are ordered by the time they are ready to be
selected to run (that is, when they arrive on the GMS select queue). Changing a job's priority
affects when the job is selected to run.
WLM-managed initiators
For WLM-managed initiators, jobs are selected within a service class by their main service
arrival time. Main service arrival time is the elapse time for C/I processing of a job. Job
priority does not influence whether a job is selected to run first; therefore changing the priority
for a job has no effect unless such a change causes the job's service class to change to one
having more aggressive goals.
WLM classification assigns a service class and optionally a report class to a job based on the
classification rules in the WLM policy. A service class is a group of work which has the same
performance goals, resource requirements, or business importance. For workload
management, you assign a service goal and optionally a resource group to a service class.
WLM starts initiators on a service class basis. WLM determines how many initiators to start,
when to start them, and where to start them based on performance goals in the WLM policy,
backlog of jobs, and system capacity.
When GMS receives a request for work from a WLM-managed initiator, the set of jobs to be
selected narrows the choice in two ways:
1. The service class identification of the initiator limits the choice to jobs with that service
class.
2. The processor on which the initiator is started limits the choice to jobs that can run on that
processor.
Even though WLM management operates at a job class group level, WLM-managed initiators
select work by service class and not by job class group like JES-managed initiators. During
execution, MVS work load management (WLM), JES3, and the operator monitor jobs.
Job execution
Job scheduling controls the order and execution of jobs running within the JES3 complex. Job
scheduling involves the routines invoked by the MAIN DSPs, which are represented by the
MAIN scheduler elements on the job control table entry.
MDS breakdown
When a step completes or the job ends, MDS breakdown occurs which frees the devices,
volumes, and data sets still held by the job.
JQE
OSE creation
Characteristics for processing output
Scheduling output
Writer selection parameters - WS
The output service driver receives control after a job completes breakdown in main service,
after a job spins off an output data set, or after JES3 spins off an output data set.
Phases 1 and 2 occur in the JES3 global address space on the global processor. Phase 3 can
run in the global address space under the global primary task, the global auxiliary task, or
functional subsystems.
OUTSERV DSP
The OUTSERV DSP summarizes output data sets at two points of processing:
For normal jobs, when a job completes main service processing
For spin-off data sets when a job or a DSP moves a data set while executing directly to
output service for processing.
OSE creation
The queueing function of output service accesses the job data set (JDS) for the job or for the
spin data sets of a job. The queueing function builds output scheduling elements (OSEs) from
the JDS. One OSE is built for each group of data sets that have unique writer requirements.
The output scheduling elements (OSEs) contain SYSOUT data set characteristics extracted
from JCL parameters on the SYSOUT DD and OUTPUT JCL statements, the //*FORMAT
JES3 control statements, and the JES3 SYSOUT class table.
The installation can change the characteristics in the OSE by coding the installation exit
routine IATUX19 (Examine/Modify Temporary OSE) or IATUX72 (Examine/Modify a
Temporary OSE or an OSE Moved to Writer Queue).
Scheduling output
JES3 output service schedules OSEs to writers in one of two ways:
An OSE is used to scan the 'writers waiting for work' queue and the available-devices
queue to find a device that can process the OSE.
A set of writer scheduling parameters (WS) is used to search the OSEs for the first
perfect-fit OSE or for the OSE which best fits the requirements of the writer requesting a
job. You can specify these parameters on the DEVICE or OUTSERV initialization
statement by coding the WC and WS parameters. The operator can change these
parameters when calling, starting, or restarting a writer.
If two or more OSEs fit the requirements of this writer equally well, JES3 schedules the
OSE with the highest JES3 job queue priority. The JES3 job queue priority is based on the
job priority specified on the JCL JOB statement.
Output writers
Hot writers - *X WTR,...........
Dynamic writers
Output types processed
Print and punch
External writer - PSO
TSO users via OUTPUT command - PSO
SYSOUT Application Program Interface - SAPI
User exits
SMF type 6 records
Hot writers
Hot writers give operations personnel total control of output handling. Operators enter
commands to call and control hot writers. Hot writers remain active, even when there is
nothing to print.
Dynamic writers
Dynamic writers are often used for volume printing on stock paper. These writers allow JES3
to control changing the setup characteristics for devices thereby reducing the amount of
control operators have over when and how writing is performed.
Output types
These characteristics indicate which type of device is to receive the output. Data sets that
were defined as "print type" will be sent to printers, "punch type" will be routed to punches,
and "sys type" will be routed to TSO or to external writers.
User exits
There are 10 user exits during the OUTSERV DSP.
PSO interface
The Process SYSOUT Data Sets call (PSO - SSI function code 1) allows a user-supplied
program to access JES SYSOUT data sets independently from the normal functions (such as
print, network) JES provides, so that the characteristics of the SYSOUT data sets can be
either retrieved or updated. The program using this interface is called an external writer.
SMF type 6
Output service creates an SMF type 6 (JES3 Output Writer) record for each data set
processed. One type 6 record is written for each data set section within an output scheduler
element (OSE). It contains information on the output writer activity such as:
The number of logical records processed
Number of data sets processed
Output service start time and date
I/O status indicators
Data set control indicators
JES3 logical output device name
Output activity.
JQE
RQ
RESQUEUE
FCTs PURG - (A)
(Data From)
JCT
PURGE
'JCT '
On SPOOL
CI (C)
MAIN (C)
OUTSERV (C)
PURGE - (A)
SMF Recording
SMF type 26 records
Release Spool Space
Remove Job from System
Delete JCT entry
Purge processing
Purge is the last processing function for a job in the JES3 system. It releases all JES3 DASD
space assigned to the job, making it available for allocation to subsequent jobs. A message is
issued to the operator indicating that the job has been purged from the system.
SMF recording
The JES3 SMF record type 25 is written for each job that completed JES3
converter/interpreter (C/I) processing. One type 25 record is written for each job, whether the
job contains DD statements. A separate type 25 record is written for each job that uses a
private catalog. A separate type 25 record is written for each main device scheduling (MDS)
dynamic unallocation request.
The SMF type 25 record contains allocation-related information such as the number of tape
and disk volumes fetched and mounted, and the time and date of JES3 device verification.
Do not include JES3 control statements in a cataloged or in-stream procedure. JES3 ignores
JES3 control statements in a procedure.
JES3 control statements have no function in an APPC scheduling environment. If you code
them, the system will ignore them, and they will appear as comments in the job listing. Use of
JECL statements in started task JCL will result in JES3 failing the job.
//*MAIN parameter
Deadline scheduling is defined via this statement. The deadline specifies when the job is
required to be finished executing. Deadline statements are as follows:
DEADLINE=(time,type[,date])
DEADLINE=(time,type[,rel,cycle])
The installation can set default failure options by job class using the CLASS initialization
statement or on the STANDARDS initialization statement.
*i a - Active jobs
*i b - Backlog of jobs
*i c - I/O buffers (spool)
*i d,d= - Devices (DASD, tape, printers RJP)
*i f,f= - Functional Subsystems ( printers, CI)
*i g,sysname,... - GMS - generalized main scheduling
*i j= num | name - Inquiry jobno or jobname
*i p= - Jobs at given priority
*i q - Job queue
*i s - Job setup resource management
*i u .... - Output and jobs with output
*i x .... - JES3 DSP info
The *I commands can be used to display the status of JES3 resources, DSPs and jobs.
When you enter *I commands, you can specify he number of entries to display with the N=
parameter. N=10 is the default if not specified. You can specify a number (nnnnnn) or ALL.
nnnnnn - specifies the number of detail lines (0 through 999999) to be displayed on the
console or that all lines of the response to the *I command are to be displayed. If you omit the
N= keyword, a maximum of ten lines is displayed.
The modify command (*F...) may be used to change the processing in any one of these JES3
functional areas:
Generalized main scheduling
Deadline scheduling
Dependent job control
Network job entry
Consoles
Spool data management
Remote job processing
Output service
Converter interpreter service
Main device scheduling
*FAIL
JES3 commands
You communicate with JES3 dynamic support programs (DSPs) using JES3 commands.
When a JES3 DSP initiates execution, it must identify itself to console service. You can refer
to JES3 DSPs by the name or number of the device assigned to the dynamic support
program.
Commands to DSPs
The *C, or *R, or *S command can be issued to a DSP to either cancel, restart, or issue a start
to the DSP. JES3 commands are issued by the operator and consist of commands directed to
various DSPs within JES3. JES3 commands can be entered from consoles attached to any
system in the sysplex. The exception to this is the JES3 non-directed *FREE command which
must be entered from an RJP console.
Start a DSP
DSPs that are invoked by an operator command (*X dspname). These DSPs usually involve
utilities, input and output services, and diagnostic aids. The parameters required for the
execution of each DSP are entered as text with the *X command and subsequent *S
commands.
A spool must be allocated on a DASD device. Transfer of job data to and from the spool
device is called spooling. Spooling refers only to use of a DASD devices by JES3 for storage
of jobs and job-related data. Use of the same devices for other purposes is not spooling.
Spooling allows jobs to read SYSIN or write SYSOUT data at or near the full speed of DASD
devices.
JSAM is a collection of routines invoked by DSPs by macro calls to acquire spool space,
create spool files, read and write records, and to purge SRFs and MRFs when they are no
longer needed. JSAM buffer pool management procures space for SRFs and MRFs in JES3
private storage.
The single track table is a section of spool space used exclusively for JES3 control blocks not
associated with a particular job, such as control blocks used to track JES3 functions and to
save status. The allocation mechanism of the single track table is by record as opposed to
track group, in contrast to the rest of JES3 spool space allocation.
Dynamic support programs (DSPs) perform the work that JES3 is required to do in order to
run jobs. The DSPs that use the JES3 spool access method (JSAM) run in either a CI FSS or
JES3 address space. A DSP needs to access a job's control blocks that are found on spool.
Track Group
Allocation
Common Global
Storage Local
Area (CSA) Spool I/O
Routines
Spool space
The management of spool space involves the assigning of spool space to jobs and JES3
functions and the recording of the ownership of that space. Spool space comprises data sets
on specified DASD assigned to JES3. The summary below examines the different gradations
of JES3 spool space from the smallest to the largest segment.
JES3 two techniques for recording spooled data: single record files and multi-record files.
Control blocks are recorded as single-record files (SRFs). This means that a control block is
recorded as a single buffer image (a block of data on spool). While most of the control blocks
will fit into a single buffer image, some (due to their variable lengths and multiple parts) may
extend across multiple buffers. When this occurs, the buffers are chained together into
chained single record files.
Multi-record files (MRFs) consist of JCL, SYSIN, and SYSOUT recorded as data records,
placed into spool buffers, chained together, and written to spool.
The recording and retrieval of spooled data are the responsibilities of three special access
methods:
1. JES spool access method (JSAM), used by JES3 modules and user-written DSPs to read
and write SRFs and MRFs.
2. User spool access method (USAM), used by programs in the user address spaces to read
SYSIN data and write SYSOUT data.
3. The block spooler, is used to:
a. read and write spool data in a writer FSS address space
a. read the LVS for locate subtasks
a. read and write the JST for MDS subtask purposes.
Spool space is allocated to a user's address space in track groups. The job track allocation
table (JBT) is used to hold the track groups allocated to a job.
The JCT data set contains a JCT entry or every job in the JES3 complex. Many JES3
functions, such as inquiry and modify, access the JCT. But the JES3 function that uses the
JCT the most is the job segment scheduler (JSS).
Up to 32767 definable
Mixed device types supported
Define contiguous extent
Specify cylinders - SPACE = (CYL,xxx)
Can be greater than 65,535 tracks
Requires DSNTYPE=LARGE on the DD statement
Understand geometry of device
Spool space allocation - GRPSZ
Place on lightly loaded DASD strings
TRACK or FORMAT initialization statements
*I Q SP=ALL
IAT8980 DRAINED HAS NO SPOOL DATA SETS
IAT8980 UNAVAIL HAS NO SPOOL DATA SETS
IAT8509 JES3PART: 215,295 GRPS, 205,719 LEFT ( 96%); MIN 5%, MRG 5%, DEF, INIT
IAT8607 INQUIRY ON SPOOL PARTITION STATUS COMPLETE
Spool extents
The JES3 spool consists of one or more single extent DASD data sets. Up to 32,767 data
sets (spool extents) can be defined. Mixed device types are supported. Each data set is
typically a full volume that starts and ends on a cylinder boundary. The data sets are logically
divided into track groups -- the JES3 allocation unit of spool space. Since track groups,
specified using the GRPSZ keyword on the BUFFER statement in the initialization stream, is
the space allocation unit for jobs, it is important to understand the device geometry.
The volume on which a spool data set is allocated must be accessible to the global processor
and to all local processors. Each spool data set must be contained in a single extent. (A single
extent is one adjoining group of tracks or cylinders.) You cannot allocate any secondary
extents.
To avoid degradation of JES3 performance and possible lockouts, do not allocate more than
one spool data set per volume. When a volume contains more than one spool data set, the
average seek time to access the data increases. Similarly, do not allocate data sets to a
volume that JES3 rarely accesses.
Spool partitions
A spool partition is a logical grouping of spool data sets. You control five factors:
The number of spool partitions used
The number of spool data sets that are in each spool partition
The work load distribution across spool partitions
The type(s) of spool data to be included in each spool partition
The size of a track group for each partition
These factors influence the reliability, availability, and serviceability (RAS) of spool data sets
and the performance impact of accessing a spool data set. Spool partitioning allows you to
isolate different types of work in specific partitions. Isolating spool data in separate partitions
can help you improve spool performance, spool recovery procedures, and spool space
management.
To provide for occasions when a requested spool partition is full, you can specify where each
spool partition's overflow data should go. To do this, use the OVRFL parameter on the SPART
initialization statement.
For each spool partition, you can specify the spool extents that are to be included into that
partition. You do this by specifying the name of the spool partition on the FORMAT or TRACK
statement associated with the spool extent. A spool extent can be included to one spool
partition. If you do not specify spool partitions, JES3 defines a one and names it to
JES3PART. All spool extents are included into this spool partition.
*INQUIRY,Q
Use the *INQUIRY,Q command to display among other things:
The size of the spool partitions and the amount of space currently available
The amount of space available on all the JES3 spool data sets in the complex
BUFSIZE parameter
The size of records on the spool data sets (except the JCT) is defined by the BUFSIZE
parameter on the BUFFER initialization statement, and it may range from 1952 to 4084. Each
buffer is preceded by 12 bytes of control data, and the buffer and its prefix must be totally
contained within a single page of virtual storage. The recommended buffer size is 4084 bytes.
Device Record Size Records/Track Records/Cylinder
3380 4K 10 150
3390 4K 12 180
JES3 allocates one or more track groups to a job when the job needs spool space. The
number of track groups allocated on each request depends on the number defined using the
TRKGRPS parameter for the job's SYSOUT class, //*MAIN JES3 control statement, job class,
or assigned processor.
PAGES parameter
The amount of virtual storage allocated to buffers is specified by the PAGES parameter, and
acquired dynamically (AGETMAIN) at JES3 initialization. If the number of available buffers
GRPSZ parameter
The GRPSZ parameter on the BUFFER and SPART initialization statements Specifies the
number of spool records in each track group. (The BUFSIZE parameter determines the size
of each spool record.) The number must not be greater than 999. JES3 rounds the specified
value up to the number of records in the nearest whole physical track for the selected spool
device type. Track group specification is important for spool space utilization. Each job
entering the system is assigned initially a track group and during its life in the system is
assigned additional track groups. Do not over specify this parameter. The default value is
okay.
MINBUF parameter
MINBUF specifies the value that JES3 uses to calculate the acceptable minimum number of
free JSAM buffers. The value you specify can be any decimal integer between 8 and 64,
inclusive.
SPLIM parameter
The SPLIM parameter on the BUFFER and SPART initialization statements specifies the
minimum and marginal percentages of spool space still available in active spool partitions. An
active spool partition is one containing at least one spool data set. If the minimal or marginal
percentages of spool space are reached, indicating that a spool partition is nearly full, JES3
issues action messages to the operator.
min -- When a spool partition reaches a minimum spool space condition, JES3 issues a
message stating that this condition has occurred. The message alerts the operator to
inquire whether the spool partition automatically overflows into another partition. If the
spool partition does overflow, no operator action is required. Otherwise, the operator can
use JES3 commands to take appropriate actions.If a minimum spool space condition
arises on the default spool partition, JES3 suspends all SYSOUT buffer processing. JES3
does not resume SYSOUT buffer processing until enough spool space is freed to reach a
marginal spool space condition.
marg -- When a spool partition reaches a marginal spool space condition, JES3 issues a
message stating that this condition has occurred. The message alerts the operator to
inquire whether the spool partition automatically overflows into another partition. If the
spool partition does overflow, the operator need not take any action. Otherwise, the
operator can use JES3 commands to take appropriate actions. When a marginal spool
space condition arises, job selection is suspended.
TRUNC parameter
The TRUNC parameter on the BUFFER and SPART initialization statements specifies
whether or not you want JES3 to truncate trailing blanks from all SYSOUT data that is
produced in the complex. YES Indicates that you want JES3 to truncate trailing blanks from
all SYSOUT. NO Indicates that you do not want JES3 to truncate trailing blanks from all
SYSOUT.
Note: JES3 saves the original record length of a record, prior to truncation of X'40' bytes,
allowing applications that retrieve the record via the functional subsystem interface to
reconstruct the original record. This is primarily of interest for files in which the X'40'
character is considered a significant data character, rather than a blank.
*I C
IAT8506 JSAM BUFFER USAGE
IAT8725 TOTAL NUMBER OF JSAM BUFFERS ............ 01000
IAT8508 CURRENT NUMBER IN USE ................... 00041
IAT8510 MAXIMUM NUMBER USED ..................... 00292
IAT8722 PRIMARY EXTENT SIZE ..................... 01000
IAT8723 SECONDARY EXTENT SIZE ................... 00500
IAT8724 SECONDARY EXTENTS ALLOWED ................ 0004
IAT8501 CURRENT SECONDARY EXTENTS IN USE ......... 0000
IAT8512 NUMBER OF AWAITS FOR AVAILABLE BUFFER .... 0000
When JES3 determines that all of the buffers in the primary allocation have been exhausted,
it automatically expands the buffer pool by allocating additional buffers. Although JES3
provides a secondary allocation of buffers each time an out-of-buffer conditions exists, JES3
will expand the buffer pool up to a maximum of 4 times or 32767 bytes, whichever occurs first.
The number of buffers that JES3 allocates for each secondary allocation is one-half the
number specified on the PAGES= keyword of the BUFFER initialization statement.
JES3 frees the secondary allocation(s) of buffers when the number of available buffers is
greater than or equal to the number of buffers in the secondary allocation plus the acceptable
minimum number of JSAM buffers. To find the minimum number for your installation, divide
the total number of JSAM buffers (the primary allocation buffers from the PAGES= keyword
plus all secondary buffer allocations) by the MINBUF= parameter.
Note: Current DASD volumes are type 3390. Using the default of 30 would cause it to be
rounded up to 36 as the 3390 has 12 records per track.
If you have defined spool partitions to isolate different types of data, specify a "tailored"
GRPSZ value on the appropriate SPART statement. Tailoring the GRPSZ value this way
Output on spool
Records on JES3 spool data sets are processed by JES3 routines running in either the JES3
address space on the global processor, user address spaces on either the global or a local
processor, or FSS address spaces on the global or a local processor. Information held on
spool data sets includes:
JES3 control blocks
In-stream data sets (DD *, DD DATA, //*DATASET)
SYSOUT data sets
Job journal
JESMSG, JCLIN, JESJCL, JCBLOCK, and SYSMSG data sets
J3SCINFO (DFSMS scheduling information)
J3JBINFO (DFSMS job information)
JES3 job queue
BUFFER,.........,GRPSZ = 36
3390 - 4K records - 12 records/TRK -180 records/CYL
Record Record
1 12
Record Record
13 24
Record Record
25 36
Selected GRPSZ
The selected GRPSZ on the BUFFER statement in the visual is 36. This is not the default. On
a 3390 spool device, this represents 3 tracks with 12 records on a track. Therefore, each track
group when assigned to a job will have 30 spool buffers written to it. These spool records can
be control blocks, SYSIN data, SYSOUT data, and other control information to the job.
The GRPSZ is the number of spool records in each track group. (The BUFSIZE parameter
determines the size of each spool record.) The number must not be greater than 999. JES3
rounds the specified value up to the number of records in the nearest whole physical track for
the selected spool device type.
Note: If you change the group size parameter, you must perform a warm start. See z/OS
JES3 Commands for information about how to replace a spool data set (WR).
If you omit this parameter, the default value is taken from the GRPSZ parameter of the
BUFFER statement. If omitted from both statements, the default is 30.
Default STTL
2 track groups in center of default partition
If you delete a spool data set, JES3 cancels all jobs in the system that have spool data or
allocation tables on the affected data set. Try not to delete a data set that contains important
information (for example, the single track table (STT) or the JESNEWS data set). If this
information is lost, the system issues messages giving you the opportunity to take appropriate
actions.
TABLE
This figure shows the allocation of a called DSP and its three spool control blocks, the JMR,
JDAB, and PBUF or PARMS. The STT table consists of two cylinders and the three bits in the
STT table are off (zeros) representing the allocated space. When the DSP job purges, the
space is returned to the STT and is available for use by another user of STT track space.
3 access methods
JES3 spool access method - (JSAM)
JES3 data management used by JES3 modules and
user-written DSPs to read and write SRFs and MRFs
User spool access method - (USAM)
JES3 data management routines used by programs in
user address spaces to read SYSIN data and write
SYSOUT data.
Block spooler - (Read spool for PSF)
The block spooler enables spool access from a JES3
subtask or other address space that cannot use JSAM
services to access spool
Multi-record files (MRFs) consist mainly of JCL, SYSIN, and SYSOUT data records, placed
into spool buffers, chained together, and written to spool.
The recording and retrieval of spooled data are the responsibilities of three special access
methods:
JES spool access method (JSAM), used by JES3 modules and user-written DSPs to read
and write SRFs and MRFs.
User spool access method (USAM), used by programs in the user address spaces to read
SYSIN data and write SYSOUT data.
The block spooler. The block spooler is used in FSS address spaces to read data buffers
for PSF printers.
Any main in the complex can perform I/O to a spool data set. Requests for spool space can
originate from the global or a local, but only the global manages spool space.
The single track table is a section of spool space used exclusively for JES3 control blocks not
associated with a particular job, such as control blocks used to track JES3 functions and to
save status. The allocation mechanism of the single track table is by record as opposed to
track group, in contrast to the rest of JES3 spool space allocation.
USAM
USAM provides user access to SYSIN data and the creation of SYSOUT data sets. MVS data
management access method macros (BSAM, QSAM) pass control to JES3 by the
compatibility interface to allocate spool space for output data sets. USAM thereby provides for
the opening, closing, reading, and writing of data sets to JES3 spool.
USAM buffer pool management involves user buffer pools. The user storage buffer pools are
inside the user address space and consist of either one page of virtual storage for a SYSIN
data set or multiple pages for SYSOUT data sets. The contents of user storage buffers are
not transmitted directly to or from spool volumes, but rather are moved to or from the USAM
protected buffer pools that reside in the common service area (CSA) or in a JES3 auxiliary
address space (AUX).
Block spooler
The block spooler enables a program to access spool data sets from a JES3 subtask or other
address space that cannot use JSAM services to access spool.
For example, writer FSS input routines invoke the block spooler to read blocks of SYSOUT
data from spool and to read and write writer checkpoint records that are used by FSS writers.
The block spooler reads data one track at a time (when possible) into buffers in the USAM
buffer pool.
The block spooler, is also used to read the LVS for locate subtasks and read and write the
JST for MDS subtasks.
All spool files which include SYSIN, SYSOUT, job control blocks, and writing and reading JCT
records is done using the JSAM access method in the JES3 address space.
The JES3 address space or a C/I FSS address space uses JSAM to read and write data in
the form of SRFs and MRFs. JES3 maintains a file directory (FD) which contains a list of all
When IOS has processed all the buffers in the I/O request, a JES3 I/O termination routine,
called a disabled interrupt exit (DIE), is called to begin termination processing for the I/O
request. If the I/O request completes successfully, MVS calls termination processing for the
queue of buffers. JES3’s JSAM I/O termination for a single record file request updates the
file's FDB and then adds the FCT that issued the I/O request to the FCT Ready Queue.
The termination routines run in either a JES3 or CI FSS address space. If the buffer is for a
JSAM, block spooler or USAM I/O request, the termination routine will run in a JES3 address
space. For CI JSAM requests, the termination routine will run in a CI FSS address space.
Job and data set track allocation tables (JBTs) are SRFs used by the JES3 global address
space to record spool space ownership.
The JQE access method, like the JCT access method, provides access to job information
through the IATXJQE macro.
XL(FDBSRFL)'00'
MRF-FDB ( 32 bytes)
XL(FDBMRFL)'00'
XL(FDBJBTL)'00'
SRF FDB
SRFs are created by the DSP acquiring a buffer, filling the buffer from byte 12 onwards,
building a 12 byte FDB with the buffer address in the first 4 bytes, then issuing the AWRITE
macro.
MRF FDB
JSAM uses a 32-byte control block called the FDB to process MRFs. This block is built or
made available by the requesting DSP. It holds information regarding the status of the MRF,
and is updated by JSAM as processing proceeds.
JBTAT FDB
The JBTAT-FDB is a special FDB for the spool track space allocation. While the JBTAT is a
single record file, the FDB is 28 bytes because it has additional information about the file
itself.
IATYFDB
File description block mapping macro.
M R
M = Extent number (2 bytes)
R = Relative record number to volume origin (4 bytes)
Track 0 - Cylinder 0
R=1 R=12
R=132741 R=132750
Spool writes
JES3 can write either JES3 control blocks or sequential job SYSIN and SYSOUT data to
spool. JES3 usually records control blocks as single record files (SRFs) that occupy a single
spool record. If a control block is large and requires more than one spool record, another
record is allocated and is chained to the previous spool record. JES3 records SYSIN or
SYSOUT data as multiple record files (MRFs). For large amounts of data, a MRF allows more
efficient packaging of data than SRFs. An MRF consists of a set of logical records that occupy
single or multiple physical records. These records are chained together with backward and
forward pointers.
AWRITE FDB=WATAT,TATPTR=WATAT,ID=JBT
WATAT DC XL(FDBJBTL)'00' JBTAT work fdb
JBTAT FDB
Each JBT is represented by a 28 byte FDB which contains the following information:
The spool record address (M.R) of the JBT or its buffer address if the JBT is in storage
JBTAT creation
The JBTAT is obtained during input service. It will eventually contain all the spool space
owned by the job. It is written to the spool using the AWRITE macro and the spool space used
to write it to the spool comes from the space owned by the job (the first spool record address
in the first track group owned by the job).
A user's address space allocates spool space from a record allocation block (RAB). The RAB
contains the spool record addresses (M.Rs) used to write buffers to spool. The job track
allocation table (JBT) is used to hold the track groups allocated to a job.
M.R
000200066371 JBT
000200066371 flags extension
0002000007D1 X.G
(extension) 35 0002
00066372
'FDBVALID'
R=066371
JBTAT
JBT description
Spool space management functions keep track of the ownership of spool space. To
accomplish this, each track group has its own unique 6-byte address that consists of the
extent number and the track group sequence number within the spool data set.
The "X" portion of an X.G identifies the spool extent‘ where the track group is located and "G"
portion is used to locate a track group on the specified spool data set. Track group addresses
(X.Gs) that are allocated to a job or data set are recorded in a job or data set track allocation
table (JBT). One to nine track groups can be allocated to a job or data set for each spool
space request. The number of track groups assigned to each job or data set is determined by
the TRKGRPS parameter. The TRKGRPS parameter can be specified on the MAINPROC,
CLASS and SYSOUT initialization statements and on the //*MAIN JES3 control statement.
12- bytes
SRF-FDB
XL(FDBSRFL)'00' Buffer-address
* Buffer-address
*
AWRITE FDB=WAJDAB,ID=JDAB, *
TATPTR=WATAT,AWAIT=YES
AGETBUF macro
The AGETBUF macro obtains a buffer from the JSAM buffer pool of the calling routine's
address space. If a buffer is not available, then the routine will wait until one becomes
available unless you specify the BUSY parameter. The buffer is cleared to binary zeros before
control returns to the calling module, unless bit AIOGETBF is set in the TVT (which specifies
it is not necessary to set the buffer to zero).
The buffer address is returned in register 0. The returned buffer address in R0 is stored into
the FDB.
AWRITE macro
The AWRITE (write a single-record file) macro writes a single record file (SRF) to the spool
data set. A DSP issues an AWRITE macro to write a SRF to spool. For an SRF, a spool
record address is allocated from either the space allocated to a job (the addresses for this
spool space is found in the job's JBT) or from the system single track allocation table (STT).
Records that have previously been written to spool are written to the same record address.
The AWRITE macro FDB parameter specifies the address of the FDB for the SRF to be
written.
ID parameter
The ID parameter specifies the name to be associated with the SRF. The number of
characters is limited to four. ID is compared to the ID field in the buffer prior to the write. If they
are not the same, the error exit is taken.
AWAIT parameter
The DSP executing under an FCT must wait for the I/O to complete before it gets control
again.
AWAIT=YES specifies that AWRITE should wait for the I/O to complete. The JSAM FCT posts
the waiting FCT that issued the I/O request when the I/O completes.
When the I/O is complete, the JSAM routines place the spool record address (M.R) in the first
6 bytes of the FDB.
APUTBUF macro
The APUTBUF (Return a JSAM Buffer to the JSAM Buffer Pool) macro returns a JSAM buffer,
obtained by a previous AGETBUF macro, to the JSAM buffer pool.
Entry 1 Entry 4
Entry 2
Entry 3
Reading a chained single record file from spool is done using the JESREAD (Read Single
Record File) macro. JESREAD is invoked to read a record that is part of a chained single
record file. To read the next file in the chain, the FDB for that file is in the file just read.
When writing a chained SRF to spool using the WRTCHAIN macro, the DISP parameter of
the WRTCHAIN macro specifies the displacement into the SRF of the chain FDB.
FCTs JQE
RESQUEUE
JOB1
CI CI (A)
(Data From)
JCT
FDBs for spool
files
In Memory
On Spool
JESJCL JDS-MRF
Data set characteristics
JESSYSMG
SYSPRINT
Note: Under no circumstances should any function move the FDB from the RESQUEUE to
a work area and then read the file. This could cause an integrity problem where two or
more DSPs could then read the same file at the same time.
RESQUEUE
JESREAD FDB
RQJDBFDB - (JDAB FDB)
TM RQJDBFDB,FDBONSP
BC ALLOFF,X5
JESREAD FDB
...
X5 L R2,RQJDBFDB
The FDBONSP flag in the FDB of the file being accessed indicates whether the FDB contains
a spool address. Code to test the flag;
TM RQJDBFDB,FDBONSP
BC ALLOFF,X5 “ON SPOOL” not set - Don’t read.
:
:
X5 DS 0H
Note: A DSP cannot use the FDBONSP to test whether it has read the spool file or another
DSP running under a different FCT has accessed the spool file. The FDBONSP flag should
be used on DSP cleanup processing to indicate whether a file should be released.
RESQUEUE
FCT - A JESREAD FDB
ARELEASE FDB (By FCT-A)
Note: Under no circumstances should FCT-B be checking that the FDB contains a buffer
address, to try to access the buffer. This could cause an integrity problem since FCT-A is
using the file.
When FCT-A does an ARELEASE or an AWRITE that returns the file, FCT-B now has its
AWAIT condition satisfied and the JSAM routines read the file again for FCT-B and posts the
AWAIT and FCT-B gets control from the MFM.
AOPEN FDB=MRFFDB,TYPE=OUT,TATPTR=WATAT
LP ALOCATE FDB=MRFFDB,COUNT=80 Get space in a JSAM
MVC 0(80,R1),DAREA Update buffer buffer for user data
ABLOCK FDB=MRFFDB,COUNT=80 Block data JSAM buffer
* Get OUT if no more data
B LP
OUT ACLOSE FDB=MRFFDB
Prior to reading from or writing to a multi-record file, the AOPEN routine is invoked to prepare
the file for access. The processing performed by the AOPEN routine depends on whether the
file is opened for input or output.
AOPEN macro
JES3 DSPs use the JSAM access method to create multi-record files. The AOPEN macro
opens a multirecord file (MRF) for later output (blocking) or input (deblocking) of data. The
AOPEN for new multi-record file requests (the MRF FDB is zero), an entry is added to the file
directory (FD) which will remain there until the file is closed. For multi-record file output
requests the disk I/O routine is called to initiate the I/O processing.
AOPEND macro
The AOPEND macro opens an existing multirecord file (MRF) for the later addition of more
records at the end-of-file (EOF).
ALOCATE macro
The ALOCATE macro asks the JSAM routines for pointer to where a new output record t can
be stored. The JSAM routines get a buffer and provide the pointer and the DSP moves the
data into the buffer.
The ALOCATE routine finds space for the logical record in the multi-record file, and returns
the address of the space to the caller. If the current buffer does not have enough space for
the record, the ALOCATE obtains a new buffer. The address returned to the caller is the area
in the buffer where the user can move data. After issuing the alocate macro and moving the
data into the buffer, the caller issues the ABLOCK macro to block the data into the file.
ABLOCK macro
The ABLOCK macro tells the JSAM routines the data is in the buffer and the JSAM routines
then update the DATCC (JES3’s record descriptor) field in front of the record with the record
size plus the DATCC byte count.
ACLOSE macro
The ACLOSE macro causes the file to be closed. It then sets an end-of-data indicator
(X’FFFFFFFF’) into the buffer and writes the data buffers to the spool.
AOPEN FDB=(R1),TYPE=IN
ADEBLOCK FDB=(R1),EOD=OUT Loop to read
.......(R0=length R1=address)....... all records
OUT ACLOSE FDB=(R1)
Note: SYSOUT data set control information is kept in the JDS control block for each job.
The ADEBLOCK (retrieve a record from a multi-record file) macro is used to obtain a
record from the spool file. Always point at the MRF-FDB when using this macro. The
EOD= specifies where to branch to when the end-of-data mark in the last buffer is reached
meaning all the records have been accessed.
When EOD occurs, or when you want to stop reading the file, the file must be closed using
the ACLOSE macro. The JSAM routines replaces the M.R in the first 6 bytes of the FDB
and turns on the close bit in the FDB.
Note: The MRF-FDB is used by JSAM for flags and storing of buffer addresses during the
reading of the file. The FDB is a work area for the JSAM spool routines.
DATCC - record 3
FFFFFFFF
DATCC - record 4
DATCC - record 5
DATCC - record 6
The job data set (JDS) control block (built during input service processing) contains
information from the SYSOUT DD and the OUTPUT JCL statements. The job data set entry
for a SYSOUT data set is built by module IATSIOR during OPEN processing. JDS control
block is spool-resident.
A MRF FDB contains in the first 6 bytes the spool record address (M.R) of the first spool
buffer. The last 6 bytes of the MRF-FDB contains the spool record address (M.R) of the last
spool buffer in the data set.
Each record in the spool buffer is preceded by the DATCC and the count in this field is filled in
by the ABLOCK routine.
The x’FFFFFFFF’ at the end of the records in the last spool buffer is an end-of-data mark
placed there by the ACLOSE routine.
The DATCCX is a DATCC extension. If present it contains the original record length. The
DATDATX flag indicates the presence of the DATCC extension. IATXDATX (Process DATCC
with/without extension) macro is used to address user data following a DATCC with or without
extension. It also provides the data length and logical record length of the current record. The
logical record length returned is zero if DATCC extension (DATCCX) does not exist.
The FDBVALID (validation field for the MRF) is propagated into each MRF buffer (DATVALID).
It is used to detect an abnormal end of a MRF in the case where DATNEXT points to a spool
record which was never written as part of the MRF.
The 40 bytes of control information at the top of every spool buffer contains the following:
This TA M.R of this spool buffer
First TA M.R of the first spool buffer
Prev TA M.R of the previous spool buffer
Next TA M.R of the next spool buffer
DATOLIN The line number of the first record in this buffer.
DATLOREC The record number of the first record in this buffer.
DATLOPAG The page number of the first record in this buffer.
DATVALID A time stamp created for the job that owns this spool file. This DATVALID is in
every MRF spool buffer owned by the job.
DATCC - 4 BYTES
1-- byte 1-- byte 2-- byte 2-- byte
DATCCX - 2 BYTES
DATOLRCL
The DATCCX is 2 bytes and contain the original logical record length of a record. If blank
truncation is used, this is the original record length before truncation.
AOPEND FDB=(R1),TYPE=OUT
ALOCATE FDB=(R1),COUNT=nn
.......(R1=address)....... Loop to read
all records
ABLOCK FDB=(R1),COUNT=nn
ACLOSE FDB=(R1)
DD-name dsnumber
JESMSGLG D0000002
dsnumber is the unique data set number JES3 assignes to
JESJCL D0000003 spool data sets. A "D" is the first character of this qualifier.
JESYSMSG D0000004 - Used in JESSPOOL RACF profiles for the spool data sets
J3SCINFO D0000005
J3JBINFO D0000006 - Operator commands
JCBLOCK D0000007 - JDSGET and IATXBDSN macros
JOURNAL D0000008
IAT6140 JOB ORIGIN FROM GROUP=ANYLOCAL, DSP=IR , DEVICE=INTRDR , 0000
15:05:52 ---- IAT6853 THE CURRENT DATE IS SATURDAY, 25 OCT 2008 ----
IRR010I USERID VAINI IS ASSIGNED TO THIS JOB.
15:05:52 IAT6312 THE FOLLOWING 000001 MESSAGES MAY BE LOGGED OUT OF SEQUENCE
15:05:52 ICH70001I VAINI LAST ACCESS AT 08:58:23 ON SATURDAY, OCTOBER 25, 2008
15:05:52 IAT2000 JOB NOTHING (JOB24957) SELECTED SC65 GRP=A
15:05:52 ICH70001I VAINI LAST ACCESS AT 15:05:52 ON SATURDAY, OCTOBER 25, 2008
15:05:52 IEF403I NOTHING - STARTED - TIME=15.05.52 - ASID=003F - SC65
15:05:52 IEF404I NOTHING - ENDED - TIME=15.05.52 - ASID=003F - SC65
//NOTHING JOB (999,POK),'DO NOTHING',CLASS=A,REGION=2M,
// MSGCLASS=T,TIME=10,MSGLEVEL=(1,1),NOTIFY=&SYSUID
*
JESMSGLG
//NOP EXEC PGM=IEFBR14,REGION=1K
1 //NOTHING JOB (999,POK),'DO NOTHING',CLASS=A,REGION=2M, *
// MSGCLASS=T,TIME=10,MSGLEVEL=(1,1),NOTIFY=&SYSUID
IEFC653I SUBSTITUTION JCL - (999,POK),'DO NOTHING',CLASS=A,REGION=2M,MSGCL
NOTIFY=VAINI
2 //NOP EXEC PGM=IEFBR14,REGION=1K
ICH70001I VAINI LAST ACCESS AT 15:05:52 ON SATURDAY, OCTOBER 25, 2008
IEF142I NOTHING NOP - STEP WAS EXECUTED - COND CODE 0000
IEF373I STEP/NOP /START 2008299.1505
IEF374I STEP/NOP /STOP 2008299.1505 CPU 0MIN 00.00SEC SRB 0MIN 00.00SEC VIRT 4K SYS 264K EXT 0K
IEF375I JOB/NOTHING /START 2008299.1505
IEF376I JOB/NOTHING /STOP 2008299.1505 CPU 0MIN 00.00SEC SRB 0MIN 00.00SEC
DDNAME=PROCSTEPNAME.STEPNAME.
DDNAME
(JDSPROCN, JDSSTEPN, JDSDDNAM)
Depending on the type of start the operator specifies, JES3 initialization is a three or four
phase process. The phases are:
Phase 1 determines the types of starts that are allowed for the main and asks the operator
to select a start type.
Phase 2 reads the statements from the initialization stream that initialize the control blocks
to manage spool space and, in the event of a restart, validates jobs that are in the JES3
job queue.
Phase 3 reads the initialization stream and converts information supplied on each
initialization statement to intermediate spool files. These intermediate spool files are
written to spool.
Phase 4 uses the intermediate spool files built in phase 3 to build the final control blocks
necessary for job execution. Phase 4 informs the operator that JES3 initialization is
complete.
DYNALLOC
Allocate Data Sets
Initialization stream
An initialization stream is a collection of JES3 initialization statements used to define the
JES3 system configuration. It also defines how JES3 manages resources and jobs. These
statements tell JES3 how to manage the following:
Jobs, job classes, and job class groups
Mains (global and local)
I/O devices
Main and external storage
The system log
Communication lines and/or protocols
Operator communication
The job management information that you code on initialization statements specify how you
want JES3 to:
Process job input - Interpret JES3 control statements
Select and schedule jobs for execution - Process job output
ENDINISH (positional,
required)
These statements
must follow
ENDJSAM and can Remaining Initialization
Statements (optional)
be in any order.
MSGROUTE
(optional)
NJERMT (optional)
MAINPROC (required)
When modifying or creating an initialization stream, you must be aware of related initialization
statement parameters. With related parameters, the value you code for one parameter
influences the value you code for another parameter. z/OS JES3 Initialization and Tuning
Reference, SA22-7550 contains tables that list the interdependent parameters.
ACCOUNT (Job Accounting): Use the ACCOUNT initialization statement to define default job
accounting information. JES3 assigns this default if the operator omits the ACCT parameter
on a JES3 *CALL command.
BADTRACK (Bypass Defective Tracks): Use the BADTRACK statement to identify defective
tracks on a spool volume. JES3 dynamically adds an entry to the BADTRACK table when a
defective track is discovered and issues a message to the console operator that identifies the
defective track. If possible, add a BADTRACK statement to your initialization stream at that
time so that JES3 keeps a record of the defective track across a warm or cold start. If you
cannot add a BADTRACK statement immediately, ensure that you add a BADTRACK
statement before the next warm or cold start.
BUFFER (JES3 Spool Work Buffers): Use the BUFFER statement to define the size of the
JES3 buffer pool and the length of JES3 buffers and spool data set records.
COMMENT (*): Use the comment statement to include comments in a JES3 initialization
stream.
CONSOLE (RJP Operator Consoles): Use this CONSOLE statement to define the
characteristics of a console for an RJP workstation. This statement assigns message
destinations to these type of consoles.
CONSTD (Console Service Standards): Use the CONSTD statement to define standards for
your console configuration. These standards include JES3 command prefix characters,
hardcopy log configuration, and special characters to be used in editing commands
processed by JES3 console services.
DEADLINE (Deadline Type Definition): Use the DEADLINE statement to define a deadline
type for job scheduling; each type determines how JES3 increases the priority of a job so the
job is scheduled within a specified time limit.
DESTDEF (NJE Define Destinations for SYSOUT): Use the DESTDEF initialization statement
to specify how inbound SYSOUT data sets from other NJE nodes are to be processed at this
node.
DEVICE (Processor Status, BSC line, I/O Device): Define Processor Status -- Use this form of
the DEVICE statement (there are two other forms of the DEVICE statement) to define the
initial status of mains in a JES3 complex. If you omit this DEVICE, the processor in question is
initialized online to every processor in the complex.
Define a Network BSC line or CTC Connection -- Use this form of the DEVICE statement to
define a BSC line or a CTC connection that connects your node to another node in a network.
You must code a DEVICE statement for each such line. or connection.
Define I/O Devices -- Use this form of the DEVICE statement to define a device that JES3 can
use:
To satisfy its own functions (JES3 device).
To satisfy the needs of a job (execution device).
As a JES3 device or as an execution device (shared device).
DYNALDSN (Dynamically Allocated Data Set Integrity): Use the DYNALDSN statement to
specify which data sets on permanently resident or reserved DASD volumes require data set
integrity protection when the data set is dynamically allocated.
DYNALLOC (Dynamically Allocate Data Sets and Devices): Use the DYNALLOC statement
to specify a data set or a device that you want dynamically allocated to JES3 during
initialization. The DYNALLOC statement allows you to allocate a data set or device without
changing the JES3 cataloged procedure.
ENDINISH (End of Initialization Stream): Use the ENDINISH statement to identify the end of
the initialization statements in the initialization stream.
FORMAT (Format Spool Data Set): Use the FORMAT statement to specify formatting for a
data set residing on a direct-access spool volume during initialization. Specify this statement
only when introducing an unformatted volume into a JES3 system or when you change the
BUFSIZE parameter on the JES3 BUFFER initialization statement.
FSSDEF (Functional Subsystem Definition): Use the FSSDEF statement to define the
characteristics of a functional subsystem (FSS) which operates in its own address space. Use
a FSSDEF statement for either of the following:
To define one or more C/I FSSs.
To define one or more output writer FSSs for printers that you define to run in FSS mode
(via the DEVICE initialization statement). You can define more than one printer to run
under the control of a single output writer FSS. If you do not define an output writer FSS
for each printer that requires one, JES3 creates an FSS using default values.
GROUP (Job-Class Group Definition): Use the GROUP initialization statement to define the
characteristics of a JES3 job-class group and whether the initiators managed by this group
are WLM managed or JES3 managed. A GROUP statement must define each job class
group (except for the default group, JS3BATCH) named on a CLASS initialization statement.
HWSNAME (High Watermark Setup Names): Use the HWSNAME statement to:
Define, to JES3, all names by which users can reference a given device type to enable
high watermark setup (HWS) processing.
Identify the characteristics of each device name for the specific JES3 complex. This
statement can be used to define which device names are subsets of other device names.
In general, the fewer the number of alternate names, the more restrictive the device name
being defined. This ensures that initial allocation for devices that are reused from step to
step is the most restrictive device. It also ensures that attempts to override passed or
cataloged unit names are processed correctly. Non-HWS users are encouraged to supply
HWSNAME information to take advantage of this function.
INCLUDE (Include Initialization Stream Member): Use the INCLUDE statement to include a
member in the initialization stream member. Different sections of the initialization stream can
be put into different members and included in the primary initialization stream member. The
member is the PDS member name within the data set specified on the JES3IN DD statement
in the JES3 procedure to be included. Up to 4 member levels can be used (the primary
initialization stream member and up to 3 INCLUDE level members). Use the INCLUDE
statement anywhere after the DYNALLOC statements.
INTDEBUG (Initialization Debugging Facility): Use the INTDEBUG statement to specify error
message text and an index value. If the specified message text is issued the number of times
indicated by the index value, JES3 issues a U005 JES3 user abnormal end and takes a
storage dump.
MAINPROC (Define a JES3 Main): Use the MAINPROC initialization statement to define a
processor as a JES3 main. The initialization stream must include one MAINPROC statement
for each main that you wish to define to JES3.
MSGROUTE (MVS Message Route Table): Use the MSGROUTE statement to control the
routing of subsystem modifiable messages (such as most MVS-issued messages). If you do
not include a MSGROUTE statement, the routing attributes of the messages that originate
from that processor are not modified by JES3 MSGROUTE processing. Even though
MSGROUTE processing may not make modifications, a message is still eligible for other
forms of JES3 message routing.
NJECONS (Console for NJE): Use the NJECONS initialization statement to specify the
message class to which JES3 is to send messages about the JES3 job entry network.
NJERMT (JES3 Network Node Definition): Use the NJERMT initialization statement to define
a node in the JES3 job entry network.
OUTSERV (Output Service Defaults and Standards): The OUTSERV initialization statement
specifies default values and standards for the output service element (OSE) to be used on
output devices; for example: printers, punches, or RJP (remote job processing). These
defaults apply to every built OSE, regardless of the device that handles the output, provided
other overrides do not take effect.
RESDSN (Resident Data Set Names): Use the RESDSN statement to name permanently
resident data sets for which JES3 is to bypass setup processing. JES3 bypasses setup
processing whenever the named data sets appear as cataloged references (no UNIT or
VOLUME parameters are specified) on the DD statement of a job.
RJPLINE (BSC Remote Job Processing Line): Use the RJPLINE initialization statement to
define the characteristics of a single BSC line (and its respective adapter) that will be used by
the JES3 global for remote job processing. You can also use this statement to assign a
specific RJP work station, defined by the N parameter of an RJPTERM statement, to this line.
RJPTERM (BSC Remote Job Processing Terminal): Use the RJPTERM initialization
statement to define a single remote BSC work station to the JES3 system. This statement
causes a default description to be provided for each work station device (printer, punch, or
card reader) indicated by the PR, PU, or RD parameters along with the operating
characteristics of the work station. If the JES3 default characteristics for a remote printer or
punch device are not acceptable, a DEVICE statement should be coded to indicate desired
characteristics. If a work station is to have the facilities of a JES3 operator console, then a
CONSOLE statement must be coded.
RJPWS (SNA Work Station Characteristics): Use the RJPWS initialization statement to
describe each SNA work station's characteristics to the JES3 system. This statement causes
a default description to be provided for each work station device (printer, punch, or card
reader) indicated by the PR, PU, or RD parameter along with the operating characteristics of
the work station.
SELECT (Job Selection Mode): Use the SELECT initialization statement to define scheduling
controls you want associated with a particular job selection mode. The initial job selection
mode is assigned to a JES3 main using the SELECT parameter on the JES3 MAINPROC
initialization statement. If a MAINPROC statement does not indicate a selection mode, the
SELECT statement default values are assigned to that main. Each select mode defined can
SETNAME (Set JES3 Device Names): Use the SETNAME initialization statement to specify
all user-assigned names and device type names associated with MDS-managed devices.
SETPARAM (Set MDS Parameters): Use the SETPARAM initialization statement to specify
parameters that the JES3 main device scheduler (MDS) and the DYNAL DSP uses in
allocation, mounting, and deallocation of devices for jobs run on all mains. The SETNAME
and DEVICE statements are used with the SETPARAM statements. SETNAME and DEVICE
identify the devices to be managed by MDS. SETPARAM also indicates how MDS is to
manage devices.
SETRES (Mount Direct-Access Volumes): The SETRES statement identifies frequently used
direct-access volumes which are not permanently resident. The SETRES statement specifies
volumes which may reside on devices at main initialization time. When a specified volume is
found to be present on an MDS-managed, removable, direct-access device during main
initialization, the volume is considered mounted by MDS, without a MOUNT command being
necessary.
SOCKET: Use the SOCKET initialization statement to describe a TCP/IP socket connection
that is used to communicate with an NJE node using the TCP/IP protocol.
SPART (Spool Partition Definition): The SPART statement defines one spool partition and
specifies:
The name of the partition
Whether JES3 is to use the partition as the default partition
Whether JES3 is to write initialization information to the named partition
Whether the partition is to overflow into another partition
The number of records in each track group
SYSID (Define the Default MVS/BDT Node): Use the SYSID initialization statement to define
the default MVS/Bulk Data Transfer (BDT) node for this JES3 complex. If the JES3 complex
includes one or more MVS/BDT facilities (program product 5665-302), you must include this
statement in the JES3 initialization stream. JES3 submits MVS/BDT commands and
transactions to the MVS/BDT node defined by this statement unless otherwise specified on
the command or transaction.
TRACK (Preformatted Spool Data Set): Use the TRACK initialization statement to replace a
corresponding FORMAT statement in an initialization stream after the spool data set specified
by the FORMAT statement has been formatted. The TRACK statement indicates that the
corresponding data set has been formatted.
INCLUDE statement
The INCLUDE initialization statement is used to include a member in the initialization stream.
The syntax of the INCLUDE statement:
INCLUDE,MEMBER=member
Where "member" is the name of the member in the data set specified on the JES3IN DD
statement in the JES3 procedure to be included. Up to four member levels are supported. You
can add the INCLUDE statement anywhere after the DYNALLOC statements. INCLUDE is
not supported if the JES3IN DD statement is concatenated, and the members to be included
are in a data set other than the first in the concatenation.The JES3IN DD statement must
refer to a cataloged data set and be part of the cataloged JES3 start procedure.
DYNALLOC,...
.
The "member" you refer to is the name of the member in the data set specified on the JES3IN
DD statement. The JES3IN DD statement must refer to a cataloged data set and be part of
the cataloged JES3 start procedure. You can has as many INCLUDE statements as you wish
in your initialization stream. You can have up to four member levels: the primary initialization
member and up to 3 levels of INCLUDE statements.
The INCLUDE statement can occur anywhere after the DYNALLOC statements.
You can also create the initialization stream data using a batch job like the following:
//jobname JOB 'ACCTINFO','NAME',MSGLEVEL=(1,1),
// MSGCLASS=R
//BUILD EXEC PGM=CBDMGHCP,PARM='CONFIG,JES,cccccccc,ee'
//HCDIODFS DD DSN=SYS0.IODFxx,DISP=SHR
//HCDDECK DD DSN=dsname(member),DISP=OLD
where:
- xx is the suffix of the I/O definition file to be used as the basis for this data.
- cccccccc is the eight character MVS configuration identifier.
- ee is the eligible device table (EDT) identifier.
- dsname is the data set name to contain the output data (and to be used later in the
STG1CODE DD when running IATUTIS).
- member is the member of the output data set to contain the data for a particular
processor.
You must create this data for all processors defined in the initialization stream. Each member
has the same name as one of these processors.
A dump can be taken depending on how many times the message occurred, as shown in the
figure.
A sample JES3 initialization stream is shipped with JES3. The sample stream can be used to
help a new JES3 user get started on creating an initialization stream.
Checker errors
The initialization stream checker detects logical errors in the DEVICE, HWSNAME, RJPLINE,
and SETNAME statements by comparing the JES3 initialization data with the configuration
data that you obtain in step 1. The initialization stream checker can detect the following types
of logical errors:
Subgeneric splits; for example, devices defined to JES3 as belonging to one subgeneric
group and defined to MVS as belonging to a different subgeneric group.
Writer burster-trimmer-stacker mismatches for the 3800 printer.
Missing or incorrect parameters required to define hardware.
The visual shows a sample of the JES3 procedure. This sample contains all of the required
JCL statements.
If you introduce an error while changing the procedure, JES3 cannot be restarted. In this
case, you must use another system (for example, the starter system) to change the
procedure.
DD statements in procedure
JES3 cataloged start procedure DD-statements:
CHKPNT and CHKPNT2: Defines the JES3 checkpoint data set(s). At least one of the two
checkpoint data sets must be allocated and cataloged prior to JES3 operation. Each
checkpoint data set must be allocated as a single extent which begins and ends on a
cylinder boundary.
JES3JCT: Defines the JES3 job control table (JCT) data set. This data set must be
allocated and cataloged prior to JES3 operation. The data set must be large enough to
accommodate the maximum number of JCT records to be allocated concurrently during
normal system operation.
Note: Converter/Interpreter functional subsystems (C/I FSS) and the PROCLIB update
function will obtain unit and volume information for the procedure libraries from the
catalog. For these functions, JES3 ignores unit and volume information that you specify
in the JES3 start-up procedure or on a DYNALLOC initialization statement.
Note: If a data set is dynamically allocated as both a JES3 DISKRDR data set and a
JES3 PROCLIB data set, the UPDATE= parameter on the JES3 //*MAIN statement
(JES3 procedure library update facility) can not be used to move the data set.
JES3IN: Defines the data set containing the JES3 initialization stream. This data set must
be a blocked or unblocked partitioned data set. The default initialization stream is read
from SYS1.SIATSAMP(member JES3IN00).
JES3DRDS: Defines the partitioned data sets containing input for the JES3 disk reader
facility. The maximum block size for this data set is 3200. Concatenated data sets may be
used.
Be aware that JES3 does not hold any data set ENQUEUE (major name=SYSDSN, minor
name=dsname) while it is running regardless of the type of allocation (JCL or dynamic). JCL
allocation ENQUEUEs are based on the DSI subparameter of the PPT parameter of the
SCHEDxx member of SYS1.PARMLIB. Dynamic allocations by JES3 use an equivalent
parameter to prevent a data set ENQUEUE.
Local start
After the global is initialized, each additional processor can be initialized by issuing the START
JES3 command on that processor. When JES3 issues a message for the start type, the
operator enters an L to initialize each subsequent processor as a local.
You are not required to IPL or to restart the local mains, although you may optionally do so.
O *RETURN
G *099 IAT3807 CONFIRM "RETURN" COMMAND FOR **GLOBAL** SC65 (CONTINUE (U) OR CANCEL)
O R 99,U
G IXZ0003I CONNECTION TO JESXCF COMPONENT BROKEN 167
G GROUP WTSCPLX4 MEMBER SC65
G IEF196I IEF142I JES3 JES3 - STEP WAS EXECUTED - COND CODE 0000
O S JES3
G IAT3040 STATUS OF JES3 PROCESSORS IN JESXCF GROUP WTSCPLX4
G IAT3040 SC64 ( ), SC70 (UP), SC65 + +
G IAT3011 SPECIFY JES3 START TYPE
G *100 IAT3011 (C, L, H, HA, HR, HAR, W, WA, WR, WAR, OR CANCEL)
O R 100,HR
G*101 IAT3012 SELECT JES3 INISH ORIGIN (N OR M=), AND OPTIONAL EXIT PARM (,P=) OR CANCEL
O R 101,M=04
G IAT4030 0001 SPOOL DATA SET IN USE
G IAT4075 MAXIMUM NUMBER OF JOBS IS LIMITED TO 0021461 BY JCT DATA SET SIZE
G IXZ0001I CONNECTION TO JESXCF COMPONENT ESTABLISHED, 312
G GROUP WTSCPLX4 MEMBER SC65
G*IAT3100 JES3 z1.5.0 SYSTEM HOTSTART ON 2004.072 AS SC65
O *S JSS
L IXZ0003I CONNECTION TO JESXCF COMPONENT BROKEN 014
L GROUP WTSCPLX4 MEMBER SC70
L *IAT3098 JES3 LOCAL ON SC70 IS RESTARTING DUE TO CONFIGURATION CHANGE
L IAT3040 STATUS OF JES3 PROCESSORS IN JESXCF GROUP WTSCPLX4
L IAT3040 SC64 ( ), SC70 < >, SC65 *UP*
L IAT4030 0001 SPOOL DATA SET IN USE
L IXZ0001I CONNECTION TO JESXCF COMPONENT ESTABLISHED, 019
L GROUP WTSCPLX4 MEMBER SC70
G IAT2645 ****** SC65 CONNECT COMPLETE ******
L IAT2645 ****** SC70 CONNECT COMPLETE ******
Note: During JES3 hot starts and warm starts, JES3 performs validation checking on the
jobs that were active when the system ended. JES3 examines the control blocks for the
active jobs and if the information in the control blocks is sufficient for the jobs to continue,
JES3 allows the jobs to resume processing. If not, JES3 asks the system operator whether
or not the job should be cancelled. Depending on how critical the job is, the operator may
have to stop JES3 initialization and then restart JES3.
The last three phases of initialization execute under the job segment scheduler (JSS) entry on
the FCT chain before JSS assumes the role it plays in regular JES3 processing. Parts of the
JES3 initialization executes under the job segment scheduler (JSS) entry on the FCT chain
before JSS assumes the role it plays in regular JES3 processing.
JES3 requires at least a JES3 warm start (which implies a JES3 complex-wide restart with
IPL of all processors) to change any keyword or parameter in the JES3 initialization stream. A
hot start with refresh reads the initialization stream during a hot start without an IPL to allow
many of the parameters to be changed (for example, FSSDEF, RJPWS, non-execution
DEVICE).
The visual shows that during a hot start with refresh, because of dependencies between
statements, many statements and parameters on statements cannot be changed. The visual
is a summary of the initialization statements that are processed during a hot start with
refresh. The A, S, and N on the visual indicate what statements are affected.
See z/OS JES3 Initialization and Tuning Reference, SA22-7550 for the specific statements
and the restrictions in place concerning the dependencies.
The configuration information is stored by JES3 on spool and the checkpoint data set from the
initialization stream. The global JES3 processor serializes against the configuration data sets
to prevent the JES3 local and C/I FSS address spaces to read the configuration information
during update/modify attempts. Also, the local and C/I FSS address spaces serialize against
the configuration information to prevent the global from changing the configuration while it is
being processed.
SYSTEMS ENQ
Therefore, JES3 issues a SYSTEMS ENQ to allow for serialization against the JES3
configuration information. A major name of SYSZIAT, and a minor name of
CONFIG.CHANGE.checkpointvolser.checkpointdsname is used for this ENQ, where:
checkpointvolser The volume serial number of the primary JES3 checkpoint data set
checkpointdsname The name of the primary JES3 checkpoint data set
Note: RNL=NO is used on the ENQ/DEQ macros to prevent a SYSTEMS ENQ from being
converted to a SYSTEM ENQ by use of the SYSTEMS exclusion RNL facility.
Operator response
The operator action to the IAT3072 message can be to determine who has control of the
JES3 configuration, issue toe of the following commands:
D GRS,RES=(SYSZIAT,*)
D GRS,RES=(SYSZIAT, CONFIG.CHANGE*)
D GRS,RES=(SYSZIAT,CONFIG.CHANGE.volser.dsname)
Serialization of configuration
JES3 issues the IAT3072 message if the configuration serialization ENQ is not obtained.
JES3 waits for the configuration to become available. If this is the JES3 global address space,
and either a hot start with refresh is being performed, or a *F CONFIG command is being
processed, and JES3 issues message IAT3073 to allow the operator to cancel the request.
JES3 issues the IAT3073 message in conjunction with IAT3072 to allow the operator to cancel
the wait for the configuration to become available.
A local processor is in the process of starting and waiting for the operator to respond to
message IAT3011. This will prevent a global from performing a hot start with refresh because
the local needs only shared access to the configuration while the global requires exclusive
access. Before you perform a hot start with refresh, make sure that there are no outstanding
IAT3011 messages for local processors.
An FSS address space is in the process of starting and has requested services from the
JES3 global. For example, the FSS address space can be in the process of dynamically
allocating a data set, and a request has been sent to the JES3 global to determine if the data
set is available to be allocated. This prevents a global from performing a hot start with refresh
because the FSS address space needs only shared access to the configuration while the
global requires exclusive access.
The FSS address space will not release the configuration until the JES3 global has
responded to the request. But the JES3 global can't respond to the request until it completes
initialization.So either cancel the FSS address space to allow JES3 to continue, or respond
CANCEL to IAT3073 to cancel the hot start with refresh, and then perform a hot start.
O S JES3
G IAT3040 STATUS OF JES3 PROCESSORS IN JESXCF GROUP WTSCPLX4
G IAT3040 SC64 ( ), SC70 (UP), SC65 + +
G IAT3011 SPECIFY JES3 START TYPE
G*103 IAT3011 (C, L, H, HA, HR, HAR, W, WA, WR, WAR, OR CANCEL)
O R 103,HA
G IAT4030 0001 SPOOL DATA SET IN USE
G IAT4075 MAXIMUM NUMBER OF JOBS IS LIMITED TO 0021461 BY JCT DATA SET SIZE
G*104 IAT3146 ENTER JOB NUMBER OR JOB NAME TO BE PURGED PRIOR TO ANALYSIS (JOB NUMBER, JOB NAME, OR END)
O R 104,DC
G*105 IAT3146 ENTER JOB NUMBER OR JOB NAME TO BE PURGED PRIOR TO ANALYSIS (JOB NUMBER, JOB NAME, OR END)
M IAT6397 FCT JSS (NODEVICE) HAS BEEN DISPATCHED CONTINUOUSLY FOR:
M IAT6398 00000 HOURS 00 MINUTES 31 SECONDS
M IAT6415 at 20FC67BE in LOADMOD=IATINAL , EPNAME=IATINAL ,EPADDR=20FC6688,LEN=000978
M*106 IAT6410 Reply 'JES3 ' to fail the FCT or 'nnn' to ask later
O R 106,180
O R 105,26674
G*107 IAT3146 ENTER JOB NUMBER OR JOB NAME TO BE PURGED PRIOR TO ANALYSIS (JOB NUMBER, JOB NAME, OR END)
O R 107,END
G*108 IAT3151 DATA LOST AND/OR JOB(S) DELETED DURING ANALYSIS PROCESSING. DO YOU WISH TO PROCEED? .
(CONTINUE OR CANCEL)
O R 108,CONTINUE
G IAT4133 JOB WW6VAINA (JOB26674) HAS BEEN DELETED DUE TO OPERATOR ANALYSIS REQUEST
G IAT4133 JOB DC (JOB27270) HAS BEEN DELETED DUE TO OPERATOR ANALYSIS REQUEST
G IXZ0001I CONNECTION TO JESXCF COMPONENT ESTABLISHED, 975
G GROUP WTSCPLX4 MEMBER SC65
G IAT3102 POSSIBLE IMPACT OF FUNCTION DETECTED DURING INITIALIZATION, SEE JES3OUT. JES3 CONTINUING
G *IAT3100 JES3 z1.5.0 SYSTEM HOTSTART ON 2004.072 AS SC65
Current system is a global: +status+
O *S JSS
G IAT6394 MONITOR FUNCTION ACTIVE Global on another system: *status*
G IAT7131 NJECONS NOW ACTIVE Current system is a local: <status>
G IAT9225 NJERDR IS ACTIVE Local on another system: (status)
G IAT2645 ****** SC65 CONNECT COMPLETE ******
You can use hot start with analysis to restart JES3 if either the JES3 address space or MVS
fails on the global main and you suspect problems with the JES3 spool. If a normal hot start
fails, use hot start with analysis.
After a power failure, you should perform a hot start with analysis, a warm start with analysis,
or a hot start with refresh and analysis.
During a hot start with analysis, you can remove a spool data set from the system (as long as
the data set does not contain the checkpointed initialization stream) or reinstate a spool data
set that was previously removed.
In addition to restarting JES3 on the global processor, hot start with analysis also does the
following:
Analyzes the JES3 job queue and responds as follows for jobs that have control block
errors:
– Cancels jobs that are not running on a processor
– Marks jobs that are running on a processor for deletion
– Initiates snap dumps of the incorrect control blocks
When you perform a hot start with analysis, you do not have to perform an MVS IPL on either
the global or the local mains and you do not have to restart JES3 on the local mains.
Before starting job scheduling, you can use JES3 commands to cancel jobs, change the
status of jobs, and change the status of devices. During a hot start with analysis, you can
release jobs in spool hold status after reinstating a spool data set that contains data for the
jobs, and you can vary devices online or offline. You can make adjustments for any system
data that might have been lost during the restart. You can also make any changes to the
system that were made before a hot start or a warm start but did not remain in effect after the
restart.
Connect mains
After you enter the *S JSS command, ensure that the global is varied online to JES3. If it is
not, enter the *F V,main,ON command to vary the processor online, ensuring that the
subsystem interface, the MVS system commands, and the system log are initialized. JES3
then issues the following message:
IAT2645 ***** main CONNECT COMPLETE *****
PARM=NOREQ
PARM=NOREQ specifies that JES3 global will start JES automatically if you want JES3
functions to be available after JES3 initialization without requiring the *S,JSS command. Place
this in the JES3 start procedure. This avoids having operators forget to do the *S JSS
command when restarting JES3.
If you want JES3 functions to be available after JES3 initialization without requiring the *S,JSS
command, include the PARM=NOREQ parameter as shown below.
//IEFPROC EXEC PGM=IATINTK,DPRTY=(15,15),PARM=NOREQ
//STEPLIB DD DISP=SHR,DSN=SYS1.SIATLIB
//CHKPNT DD DISP=OLD,DSN=SYS1.JES3CKPT
//CHKPNT2 DD DISP=OLD,DSN=SYS1.JS3CKPT2
//JES3JCT DD DISP=OLD,DSN=dsn
//spool1 DD DISP=OLD,DSN=dsn
.
.
.
//spoolnn DD DISP=OLD,DSN=dsn
//JES3OUT DD UNIT=00E
MONITOR DSP
The Monitor FCT (IATGRMN) is responsible for monitoring certain resources and queues
based on parameters specified by the installation, and issuing messages to the operator if
someone is waiting more than a specified period of time.
The *X MONITOR command is issued automatically by JES3 on every global restart if the
MONITOR DSP is not already active. Therefore you will not need to issue this command
unless you have previously issued the *C MONITOR command.
The MONITOR DSP’s mainline routine is invoked when a *X MONITOR command is issued by
the operator. The mainline routine is responsible for determining whether there are any
resources or queues to be monitored, and for setting up and invoking the appropriate routines
to do the actual work.
The monitor DSP provides you with the ability to monitor how long a job or FCT has been
waiting for a specific JES3 function or resource. For example, if you want to know when a job
has been waiting for a CI DSP for more than five minutes, you can set the monitor DSP to
issue a message when five minutes have elapsed. The following is a chronological example
of the monitor DSP in use:
You issue the *S MONITOR,DISPLAY command to examine the current monitoring
parameters.
During the JES3 HA start, a prompt to the operator happens to spend over 30 seconds before
a response was given to the IAT3146 message. The MONITOR DSP detected an long
IOWAIT (interval 30) wait and issued the IAT6410 message soliciting for operator response.
Operator response
Determine if a FCT is legitimately monopolizing the JES3 Nuc or Aux tasks. If you think there
is a reason for the same FCT to be active for an extended period of time, you can ignore this
message or respond with a number of seconds (nnn) to request that JES3 wait for that period
of time before issuing another message (if it finds that the same FCT is still active).
If you respond with JES3, system name of C/I FSS name, as displayed in the WTOR, JES3
will try to terminate the active FCT and eventually invoke its JESTAE recovery.
You may have to repeat the response several times if the FCT attempts to retry and enters a
loop or MVS WAIT again. In that case, you may have to terminate JES3 by either responding
to message IAT3822, if one is displayed, or by issuing the FORCE JES3,ARM command.
If you feel the default interval is too short causing the message to appear too frequently, you
can adjust it by issuing the F JES3,INT=n command. n specifies the interval in seconds.
On global
*X DSI
*IAT0920 DSI - CHECK GLOBAL DSI PROCEDURE FOR SC65
*S DSI
On a local
*X DSI
*IAT0915 DSI - REVIEW LOCAL DSI PROCEDURE FOR SC70
*S DSI
*IAT0900 DSI - SWITCH GLOBAL DEVICES
*S DSI
*IAT0905 DSI - STARTED FOR SC70
DSI processing
Dynamic system interchange (DSI) is a process by which the JES3 global function can be
assigned to a JES3 local processor, which then becomes the new JES3 global processor.
DSI can be used when:
The global processor is not active.
The installation wants a local processor to assume the role of the global processor.
If the global processor is not active, the operator can invoke DSI to keep the complex running.
Once DSI is complete, JES3 on the old global processor can be reinitialized as a local
processor without an intervening IPL, once it becomes available for reinitialization.
If the global processor is active but the installation requires that another processor be
assigned as the global processor, the operator can invoke DSI. This procedure could be used
for such reasons as scheduled preventive maintenance or for alternate processor utilization.
All FSS address spaces on the global are also lost. You must restart all FSS address spaces
that were executing at the time of the system reset.
If you disable the global using a *X DSI command, then any output writer FSSs that were
active on the old global remain active when the new global attempts to connect to the old
global. However, if the old global fails as a result of an IPL or system reset, all output writer
FSSs that were active on the old global end.
IAT0920
DSI has been called on global processor main, and the operator is requested to review the
global DSI procedure. Operator should review any installation guidelines for dynamic system
interchange. When finished, enter *S,DSI to continue or *C,DSI to end DSI.
IAT0915
Operator should review any installation guidelines or procedures for dynamic system
interchange. When this review is complete, enter the *S,DSI command to continue, or the
*C,DSI command to end.
IAT0900
Operator should set the switching devices to enable channel paths from the new global to all
JES3 devices and mains as required. When this function is complete, enter the *S,DSI
command to continue, or the *C,DSI command to end DSI.
IAT0905
DSI is active. The active local JES3 system main was ended. JES3 was reinitialized in global
hot start mode. The operator should proceed with a JES3 global hot start. Continue normal
operation on the new global. If the old global was disabled by pressing SYSTEM RESET,
JES3 on the old global can be initialized by performing a local start after an MVS IPL.
If the old global was disabled by entering *X,DSI and then JES, the old global can be initialized
as a local without an intervening MVS IPL.
IAT6369 JES3 WAITING FOR CHECKPOINT DATA SET RESERVE - CHKPNT , SBOX08,3F00.
IAT6369 JES3 WAITING FOR CHECKPOINT DATA SET RESERVE - CHKPNT2, SBOX09,2517.
IXZ0003I CONNECTION TO JESXCF COMPONENT BROKEN 752
GROUP WTSCPLX4 MEMBER SC70
IAT6369 JES3 WAITING FOR CHECKPOINT DATA SET RESERVE - CHKPNT , SBOX08,3F00.
The +DS+ status indicates that the local (SC70) is the current global in message IAT3040.
The DS status (SC65) indicates the main has not completed dynamic system interchange.
When you specify a start type, the local initializes as the new global and message *IAT3100
appears.
*DUMP
*RETURN
*FAIL
*X VARYL
To receive control when an ABEND occurs, DSPs issue the JESTAE macro to define a DSP
abnormal exit routine. The JESTAE exit routine performs pre-termination functions and
diagnoses the error. The exit routine must determine whether abnormal termination should
continue for the function (FCT) or whether normal processing, as represented by the function,
can be resumed at some retry point.
At the time of a JES3 failure, a console message is displayed. The failure messages are
assigned a unique failure numbers. Detailed failure information is also recorded into the
hardcopy log. No operator intervention is required unless WANTDUMP=ASK is coded on the
OPTIONS initialization statement (or WANTDUMP=YES is coded but WANTDUMP=ASK is
assumed because the number of dumps in the specified interval has exceeded the specified
limit).
Use the *X VARYL command to unassign an IBM 3480 or 3490 tape drive from JES3 local
domains. The VARYL dynamic support program (DSP) unassigns an IBM 3480 or 3490 tape
drive from JES3 local mains. You must invoke the VARYL DSP from each local main to which
the IBM 3480 or 3490 is assigned before using the device for a stand-alone dump.
OPTIONS,DUMP={PRDMP|MVS|JES}
,SDI={ON|OFF}
,DUMPLINS={nnnnnn|24576}
,WANTDUMP={YES|NO|ASK}
,INTRDR={20|nnn}
,JOBNO=({1,9999,9999})
,MT={ON|OFF}
,SE={nn|10}
,XCFGRPNM=groupname
OPTIONS statement
Use the OPTIONS initialization statement to specify:
The type of MVS system dump to be taken, if needed.
Whether or not a dump should be taken when a termination condition exists.
The job numbering limits for JES3 jobs.
Whether you want the writer output multitasking facility enabled or disabled.
The number of scheduler elements needed to support the largest job that will be run in the
JES3 complex.
DUMP= parameter
This parameter indicates the type of MVS system dump to be taken in the event of an
abnormal termination of JES3 or program check. The JES3 control blocks, if written, are
formatted and always written to the JESABEND data set.
PRDMP Specifies that a dump of main storage is to be written to the MVS SYS1.DUMPxx
data set. To print this dump, use the MVS interactive problem control system
(IPCS).
MVS Specifies that the MVS system dump written to the SYSUDUMP or SYSABEND
data set contains the MVS nucleus and SQA as well as the MVS JES3-related
control blocks and JES3 region.
JES Specifies that the MVS system dump written to the SYSUDUMP or SYSABEND
data set contains only the MVS JES3-related control blocks and JES3 region.
WANTDUMP= parameter
The WANTDUMP= parameter on the OPTIONS initialization statement specifies whether a
dump should be taken. The options are NO, YES, and ASK. The ASK value results in the
system asking the operator at the time of failure if he requests a dump. If the WANTDUMP=
NO is specified or the operator does not request a dump, then no dump is taken. If the
WANTDUMP= YES is specified or the operator requests a dump, one of the following occurs
(depending on how the DUMP= parameter on the OPTIONS initialization statement is
specified):
The JES3 tables are formatted and MVS takes a dump of JES3.
An unformatted dump is taken to the SYS1.DUMPxx data set.
Use the *F WANTDUMP command to change the settings of the WANTDUMP parameter on the
OPTIONS statement.
YES Specifies that a dump should be taken when a failure occurs.
Two keywords, INTERVAL= and LIMIT=, have been provided on the OPTIONS
initialization statements as additional control when WANTDUMP=YES is specified.
LIMIT The maximum number of failures within the interval before JES3
temporarily changes to WANTDUMP=ASK. The acceptable value is a
number between 2 and 10 or a zero. The default value is 3. Zero (0)
indicates no limit will be used.
INTERVAL A time period, in minutes, that will be used as the basis for the limit. The
interval is a sliding window that ends at the time of the latest JES3 failure.
JES3 DM codes
The dynamic support program (DSP) failsoft feature of JES3 allows a DSP to abend without
ending JES3. When a DSP encounters an error, it issues a FAILDSP macro. The FAILDSP
macro ends the JES3 function but allows other functions to continue processing jobs.
The FAILDSP macro provides the user with failure codes that identify the error. The heading
of the resultant dump may contain a system completion code, user completion code, and/or a
JES3 failsoft DM code.
JES3 documentation
All JES3 failsoft DM codes are described in the z/OS JES3 Diagnosis Reference, GA22-7548
document. A DMxxx code appears as a user abend code (Uxxx) to the base control program
(BCP).
The JES3 system completion codes appear in z/OS MVS System Codes, SA22-7626
document.
z/OS JES3 Diagnosis, GA22-7547 document provides information for debugging JES3 and
installation-written extensions of JES3. It describes the tools that JES3 users can use for
debugging.
IATINTK
JESXCF
General
subtasks
IATINTK processing:
Ensures JES3 is the primary subsystem and no more than one is started
Initializes the checkpoint access method
Initialize subsystem vector table
Determines the type of JES3 restart by reading all JES3 checkpoint records
Attaches the JES3 resident nucleus (IATNUC)
Following the above processing, IATINTK loads and branches to IATGRCK for initialization of
the checkpoint access method. Next, it loads and branches to IATINGL.
IATINGL processing
IATINGL invokes IATINSV for SSVT initialization and then determines the type of JES3 restart
to be performed by reading all JES3 checkpoint records from the checkpoint data set(s) which
may restrict the start type. The status of each processor in the complex is displayed and then
module IATINGS is invoked to communicate with the operator and to read the DYNALLOC
statements from the JES3 initialization stream.
Data sets described by the dynamic allocation checkpoint record are dynamically allocated.
The complex status record is updated to indicate that the active processor is in initialization
and the record is written back to the checkpoint data set(s).
IATINGL returns to IATINTK. Upon return from IATINGL, the JES3 resident nucleus (IATNUC)
is attached. Next, an SMF 43 record (subsystem start) is written. IATGRMON is attached to
perform monitoring of the Nuc and Aux tasks. IATINTK then waits for IATNUC task termination
or an operator command for the monitor (MODIFY(F) JES3,cmd).
JES3 nucleus
The JES3 nucleus contains modules needed throughout JES3 processing. When the nucleus
is attached, control is passed to module IATINIT (which was specified as IATNUC's entry
point when the nucleus was link-edited).
CHKPNT2
CHKPNT
The checkpoint must be allocated in the JES3 start procedure (1 cylinder is enough). The
DDNAMEs must be CHKPNT and CHKPNT2. At least one of these data sets must be
available to JES3 during initialization processing. The checkpoint is not heavily used, but do
not place it on a spool volume.
Checkpoint considerations
You can add or replace either checkpoint data set over a JES3 restart of any kind with no
effect on JES3 processing. Both checkpoint data sets contain identical information; to ensure
against loss of checkpointed data, allocate both data sets.
The following rules and requirements apply to the checkpoint data set:
The checkpoint data set must be allocated as a single extent.
The extent must begin and end on a cylinder boundary.
The number of 4K records must be calculated for each record type.
The number of tracks must be calculated for each record type.
Additional tracks should be added to the total for all record types for error recovery and
possible expansion of a record type over time.
Note: If you allocate only one checkpoint data set and it develops a severe permanent I/O
error, you must perform a cold start. If you allocate both checkpoint data sets and one
develops a severe permanent I/O error, JES3 can continue. For recovery procedures, see
z/OS JES3 Diagnosis, GA22-7547.
1 IATYCSR
2 IATYS99
3 IATYICP
4 IATYVOL
5 IATYSPR
6 IATYBTR
7 IATYCKP
8 IATYPTC
Checkpoint records
The figure shows the specific types of records that are written to the checkpoint data set by
JES3.
CKIMAP Track Map Record
This record maps the entire checkpoint data set.
IATYCSR Complex Status Record
The complex status record (CSR) maintains the status of all the JES3 main
processors in the JES3 complex. The CSR is created by IATINGL during phase
1 of a cold or warm start on the global and is updated by IATINJB when
initialization completes. The record contains an entry for each main.
IATYS99 Dynamic allocation checkpoint record - DYNALLOC
DYNALLOC and JES3LIB are the first statements in the JES3 initialization
stream. They provide a description of each data set or device that will be
dynamically allocated during JES3 initialization. The DYNALLOC and JES3LIB
checkpoint record (S99) is created or restored by module IATINGS during
phase 1 of JES3 initialization to maintain a record of the dynamic allocation
information.
IATYICP Initialization Checkpoint Record
The initialization checkpoint record (ICP) is a record containing portion of the:
Transfer vector table (TVT)
Subsystem vector table (SSVT)
The size of each checkpoint data set should be at least two cylinders on a direct access
storage device.
CKPTDATA DSECT
IATYCKI HDR=CKP
CKPINID DS XL8 INISH ID (DATE/TIME)
CKPTSTRT DS 0D - START OF CHECKPOINT DATA
PRTYFLAG DC 16F'0' IATYJQX-JQXPSTAT FLAGS
CKPRSVD4 DC XL(FDBSRFL)'00' RESERVED UNTIL NEXT
* COLD START
CKPSTTFD DC XL(FDBJBTL)'00' SYSTEM STT JBT FDB
DLQFDB DC XL(FDBSRFL)'00' DEADLINE QUEUE FDB
CKVUTFDB DC XL(FDBSRFL)'00' VOLUME UNAVAILABLE FDB
CKPOSFDB DC XL(FDBSRFL)'00' OUTPUT SERV.CKPT.FDB
*
CKPJNEWS DS 0XL(3*FDBSRFL) JESNEWS FDBS CKPT
CKPJESDS DC XL(FDBSRFL)'00' JESNEWS CKPT AREA
CKPTSODS DC XL(FDBSRFL)'00' TSONEWS CKPT AREA
CKPRJPDS DC XL(FDBSRFL)'00' RJPNEWS CKPT AREA
*
CKPLOCDS DC XL(FDBSRFL)'00' LOCNEWS CKPT AREA
CKGMSFDB DC XL(FDBSRFL)'00' MAIN SCHEDULING CHECKPOINT FDB
CKDFCFDB DC XL(FDBSRFL)'00' DEVPOOL CHKPT FDB
CKDJCFDB DC XL(FDBSRFL)'00' DJC CKPT FDB
CKONLFDB DC XL(FDBSRFL)'00' ONLINE STATUS CHECKPNT FDB
CKDYNFDB DC XL(FDBSRFL)'00' DYNAMIC ALLOC CHECKPT FDB
CKFSSFDB DC XL(FDBSRFL)'00' FSS/FSA CHECKPT ROOT FDB
CKSNAFDB DC XL(FDBSRFL)'00' SNA/NJE CHECKPT ROOT FDB
CKLCPFDB DC XL(FDBSRFL)'00' LOCATE CHECKPOINT ROOT FDB
IATYCKP also contains the range of job numbers assigned in the system and the JCT priority
hold flags.
The JES3 checkpoint area is allocated to either one unique data set or two duplicate data
sets. You can cause information to be checkpointed in the IATYCKP control block by issuing
the JESCKPNT macro.
COLDSTART required:
No JCT record
JES3 restarts
The job structure for job zero is created on any cold start of JES3. On all other starts of the
JES3 global, job zero already exists in the JES3 checkpoint and all entries that still exist are
always there on the restart.
Job zero is used to hold printed output created by JES3 DSPs. Any DSP does not have a print
scheduler element, so any output they create has no way to be printed under the DSP’s job
structure. After creating a print file using data set track allocation table, the DSP uses a JES3
SPINOFF macro service (IATOSGR) to add the print file (JDS entry) to job zero’s JDS. The
job zero resqueue is added to the output service spin-off chain. The OUSERV FCT is posted.
When the OUTSERV FCT gets control, among all the resqueue entries that may be on the
chain is also the job zero resqueue. When this resqueue is processed, an OSE entry is
created for the spinoff JDS entry. The newly created OSE entry is added into the job zero
OSE buffer.
The job zero resqueue is then placed on the output service chain for jobs waiting for writer
processing.
*I J=0
IAT8610 JOB (JOB00000) NOT FOUND
When JES3 restarts, during initialization, JES3 takes the output service FDB from the
checkpoint, reads the output service checkpoint record (OSC), constructs a resqueue entry,
and moves the three job zero FDBs from the OSC record into the resqueue.
*F CONFIG command
You can make changes to the JES3 configuration dynamically after the system is active by
using the *F CONFIG operator command. The *F CONFIG command allows you to add the
following definitions to JES3 without having to restart the JES3 global and local address
spaces:
SNA RJP work stations and their associated consoles and devices
Non-channel attached printers
You use *F CONFIG to specify the name of a member in the data set allocated to the JES3IN
DD statement in the JES3 cataloged start procedure. This member contains the initialization
statements associate with definitions that you want added to the JES3 configuration. The
following initialization statements can be coded in the member specified on the *F CONFIG
command:
RJPWS to define SNA/RJP work station characteristics
CONSOLE to define SNA/RJP console
DEVICE to define SNA/RJP devices and non-channel attached FSS managed
Printers
FSSDEF to define writer FSSs
INTDEBUG to establish the Initialization Debugging Facility
INCLUDE to include another initialization stream member
*F CONFIG command
These changes are checkpointed so that they will remain in effect if you perform a hot start. If
you perform a hot start with refresh, the changes are lost. Therefore, make sure you update
your initialization stream before performing a hot start with refresh, warm, or cold start.
After the *F CONFIG command is processed, the appropriate tables are built to represent the
information that was added. The changes you made are preserved across a JES3 hot start;
you do not have to issue another *F CONFIG command. However, the changes are not
preserved across a cold start, warm start, or hot start with refresh so remember to add the
initialization statements to your initialization stream.
*F CONFIG,ADD = member
, LOG={YES|NO|ERR},
, P=parms
*F CONFIG command
The *F CONFIG command dynamically invokes JES3 initialization services to add additional
configuration information without the need to perform any type of JES3 restarts. Following is
the command syntax:
ADD=mem_name Specifies the 8-byte member name to be read from the data set
allocated to the "JES3IN" DDNAME in the JES3 procedure. This
member contains all initialization statements that you want to add.
LOG=YES|NO|ERR Optionally specifies whether you want to record each statement
processed and any error message generated in a spin-off data set
named "MODIFY CONFIG LOG." The LOG=ERR option allows a log
data set to be generated only if an error occurs. The default is YES.
P=xxxxxxxx Optionally specifies a parameter string that is passed to IATUX15 as
the statements are processed. This is similar to the P= parameter that
can be specified in response to message IAT3012 (specify inish deck
origin...).
You can protect use of the command with SAF and RACF® profiles.
P= parameter
User exit 15, IATYX15, is entered from the operator interface module or the initialization
subroutines during a warm or cold start, and permits you to scan an initialization statement
immediately after the statement is read and before it is scanned by the system routines.
On completion, you have the opportunity of having the statement processed (as entered or as
amended) or having the statement ignored.
Note: You can test this installation exit routine using the initialization stream checker
(module IATUTIS). If you do, the exit routine must not issue any privileged instructions or a
program check will result. For information on how to use that facility, see z/OS JES3
Initialization and Tuning Reference, SA22-7550.
When specifying the P=xxxxxxxxx option, the xxxxxxxx is a parameter string which will be
passed to IATUX15 as the statements are processed. This is similar to the P= parameter that
can be specified in response to message IAT3012.
IAT3012 SELECT JES3 INISH ORIGIN (N OR M=), AND OPTIONAL EXIT PARM (,P=) OR CANCEL
LOG= parameter
Specifies whether you want a log data set generated. The log data set contains the
initialization statements and any error messages that are generated. The log data set is then
spun off for printing at the end of *F CONFIG processing.
YES Create the log data set.
ERR Create the log data set only if an error occurs.
NO Do not create the log data set. All error messages will be displayed on the issuing
console.
This parameter is optional and any error message is generated in a spin-off data set named
"MODIFY,CONFIG LOG." The default is YES.
*F CONFIG,ADD=ADDRJP
*F CONFIG example
In the example, the member of parmlib to be added is ADDRJP in the PDS SYS1.PARMLIB.
The member contains 3 initialization statements that define a SNARJP workstation. The
statement is added dynamically to a running JES3 system. Although you will typically not use
the INCLUDE statement in the member you specify on the *F CONFIG command, segmented
initialization streams are useful when used in conjunction with *F CONFIG processing. For
example, suppose all the RJPWS statements are in a member "RJPWS" of a PDS. And
suppose your IATUX15 supports conditional logic. For example IATUX15 is set up to
interrogate the parameter string that is passes and skip over certain initialization statements
depending on the parameter value. To add new RJPWS statements to the initialization
stream, add the new RJPWS definitions to the an existing "RJPWS" member if you are using
INCLUDE statements in the initialization stream
INCLUDE statement
The INCLUDE statement is also supported during *F CONFIG command processing. JES3
allows the initialization stream to be segmented. Different sections of the initialization stream
can be in different members of a partitioned data set and use the INCLUDE initialization
statement to include the members at the appropriate places in the primary initialization
stream. Each INCLUDE initialization statement refers to a member of the same partitioned
data set. The member contains the initialization statements to be added to the initialization
stream. The functional areas JES3 initializes depends upon the type of start being performed
and the contents of the initialization stream. Each initialization statement is processed by a
module that belongs to a JES3 functional area.
The global processor reads the job into the system from one of the following input sources:
A local card reader
A local tape reader
A disk reader
A remote work station
Another node in a job entry network
The internal reader
Started tasks
The reader phase of input service reads jobs (JCL and input stream data) and stores them on
a spool data set. The only jobs not read by the reader phase are jobs from an internal reader
and demand select jobs. These jobs are read directly by the control statement processing
phase. Jobs can come from a card reader, a tape unit, a disk reader or from a remote
workstation. The reader phase treats jobs from a remote workstation as though the job came
from a card reader.
JES3 jobs
JES3 initially reads all jobs into the global and assigns, to each job, a unique JES3 job
number from the available job number pool. Jobs can be submitted from a locally attached
tape, disk, or card reader. In addition jobs can be submitted from remote job processing (RJP)
workstations, time-sharing option (TSO/E) terminals, other systems in a job entry network, or
by the internal reader.
Reader processing
Reader processing takes place in the JES3 global address space. The reader phase reads
jobs from any of the sources mentioned above and places the jobs on JES3 SPOOL in
batches for later processing. For each reader batch, an input service job is created. Jobs
submitted from BSC RJP remote stations are processed as if they come from a local card
reader. Jobs from SNA RJP use a special logical record (LR) interface.
INTRDR processing
Input may also come from the JES3 internal reader that processes input streams contained in
SYSOUT data sets obtained from MVS. The internal reader allows a JES3 output data set to
be passed to JES3 input service and be processed as an input stream. In this way, jobs can
also be submitted to JES3 from MVS.
START and MOUNT commands and TSO/E LOGONs cause jobs to be started from predefined
procedures. Input service processes the JCL created for these jobs in the same manner as
any other standard job. Jobs initially placed on direct-access storage devices (DASD) and
subsequently analyzed by JES3 input service are placed on the JES3 spool.
Reader DSPs
Disk Reader - DR Reader
Read JCL streams
Card Reader - CR Phase JCL streams to spool
Tape Reader - TR Create ISDRVR jobs
RJP Readers - CR
JCT
Control Statement
Spool
s
job
Processing Phase
DR s
ISDRVR
IS am
VR
PURGE
NJE jobs te tre
ea L s
INTRDR submits
Cr J C
Reader phase
Input service queues all jobs entering the JES3 system on the global processor from:
A card reader (CR DSP)
A tape reader (TR DSP)
A disk reader (DR DSP)
A remote work station (RJP/SNARJP DSPs)
If the job contains no //*PROCESS control statements, the control statement processing
phase defines the job as requiring the standard sequence of scheduler elements (SEs). The
standard sequence is:
Converter/interpreter (CI)
Main device scheduler and generalized main scheduling (MAIN)
Output service (OUTSERV)
Purge (PURGE)
ISDRVR DSP
ISDRVR (IATISDV) is entered in one of the following ways:
When input is through a call to a reader, (CR, TR or DR), the reader function creates an
ISDRVR job and adds it to the queue.
When the input is a demand select job, the ISDRVR job is created by module IATMSGC.
When the job is scheduled the JCL for the demand select job is passed to ISDRVR in a
staging area.
When the input is through a call to the internal reader, input service runs under the internal
reader's FCT. Module IATISIR, the internal reader driver, calls IATISDV. The JDS entry for
the new internal reader data set is contained in the FCT's JDS.
Once given control, the input service driver (ISDRVR) performs the following major functions:
Read and pass one-at-a-time the JDS entries for the multi-record files that are the input to
the this job. (There is an input job associated with each JDS entry).
For each input job, get the buffers for and initialize the JDS and JDAB
INTRDR processing
The internal reader facility is useful for several kinds of MVS applications:
It can be used to generate another job or a series of jobs from an already-executing job. A
job that produces a series of jobs can put its output to an internal reader for immediate
execution.
The operator can start utility programs to read jobs from disk or tape files and submit them
to the system. The IBM-supplied procedure 'RDR' is an example of a program that does
this.
An internal reader data set can be allocated in any address space either with JCL or
dynamically as a SYSOUT data set with a writer name INTRDR. INTRDR is an IBM-reserved
name identifying the internal reader as the program to process the SYSOUT data set after it
is created, closed, and un allocated. The SYSOUT class becomes the message class for the
submitted job unless overridden by MSGCLASS parameter on the JOB statement.
In additions to JCL and JECL statements, a /*DEL and /*EOF records can be sent as the last
record of a job. The /*DEL record cancels the job. The /*EOF control statement delimits the
current job and makes it eligible for immediate processing. The internal reader data set
remains open.
When an internal reader data set is closed, the MVS data management CLOSE processing
invokes JES3 SSI close routine (IATSICC). IATSICC identifies the JDS entry to be closed and
passes (SSISERV) the close request to the global JES3’s general collection routines
As soon as a the internal reader close request becomes available to the global JES3,
IATMSGC (running under MAIN FCT) creates and attaches a USAM JDS access interface
routine (DMJA DSP). Since the request is for an internal reader data set, IATDMJA assigns a
job number to the data set, issues the IATXRABD macro to release the unused track groups,
and calls IATISCD, the internal reader job scheduler, to process the data set.
Note: The internal reader anchor control block (IRA) points to a chain of internal reader
elements (IREs), one for each INTRDR DSP that exists. IATISCD assumes that if there is
no IRA, there are no IREs.
The INTRDR DSP (IATISIR) processes the internal reader data set passed by IATISCD by
calling the input service driver (IATISDV).
The ENDREQ routine in IATDMDM module initiates the submittal of a job or job stream from
an internal reader. During ENDREQ processing for started tasks, mounts and tso logons, a
security token is extracted for the job in whose address space IATDMDM is running. If the
ENDREQ request is for a STCINRDR or TSOINRDR, the data buffer is sent to global JES3
via SSISERV for special input service processing.
Once the global JES3 General Collection Routines (IATMSGC) get control to process the
demand select JCL buffer, it invokes the ISDRVR DSP.
You can start or stop INTRDR processing by using the HOLD/RELEASE options on the *F
X,D=INTRDR command.
The IREs queued can be displayed using the dump core (DC) DSP. They are also displayed in
the JES3 formatted dump.
The *I X,D=INTRDR command displays the INTRDR counts as shown in the figure.
The INTRDR= parameter on the OPTIONS initialization statement specifies the maximum
number of internal readers that can be active concurrently. Specifying too high a value can
cause a shortage of JSAM buffers. You can specify any value between 1 and 999 inclusive.
( Internal Reader Element Block (IRE) contains information used by input service in
controlling the scheduling of individual internal reader jobs.)
*I X,D=INTRDR
IAT8475 (IQDX) - INTRDR MXCT=000020 USE=000002 MOD=YES
IAT8472 (IQDX) - INTRDR IS NOT IN HOLD
*F X,D=INTRDR,HOLD
IAT8497 (MODX) - INTRDR HELD
*F X,D=INTRDR,RELEASE
IAT8497 (MODX) - INTRDR RELEASED
*F X D=INTRDR,MC=30
IAT8484 (MODX) - INTRDR OLDMXCT=000020 NEWMXCT=30
*I A,D=INTRDR
IAT8522 JOB INTRDR (JOB11479) ACTIVE ON INTRDR 7226.98 MIN
IAT8522 JOB INTRDR (JOB28541) ACTIVE ON INTRDR 7226.98 MIN
IAT8523 INTRDR COUNTS - MAX=(020,020), ACT=0002, FCT=002, HWATER=0002
IAT8593 INQUIRY ON ACTIVE JOBS COMPLETE, 2 JOBS DISPLAYED
*I Q,D=INTRDR
IAT8684 NO JOBS WAITING FOR INTRDR
IAT8595 INQUIRY ON JOB QUEUE STATUS COMPLETE, 0 JOBS DISPLAYED
Internal reader routines allow TSO jobs or application programs to submit job streams to
JES3 using output data sets. When a job stream enters the system, data management
assigns the data sets directly to an internal reader. If an internal reader is not available, the
system dynamically creates one. When JES3 schedules the internal reader, input service can
proceed to process the data set as an input stream.
Use the *F X,D=INTRDR command to change the INTRDR parameter. Use the *F X,D=dspname
command to change the number of DSPs that can be started. Processing of this command
does not affect an active DSP when the command is processed.
To display a list of all the internal readers in the system at any one time, issue the *I
A,D=INTRDR command. . The operator can also stop the internal reader by issuing a *C INTRDR
or a *C J=jobno command.
Disk reader
If the disk reader facility (DR) is desired, specify in the JES3 start procedure:
//JES3DRDS DD DISP=SHR,DSN=dsn
or use the DYNALLOC statement in the initialization to specify the disk reader data set:
DYNALLOC,DDN=JES3DRDS,DSN=dsn
The disk reader data set is a the partitioned data sets containing input for the JES3 disk
reader facility. The maximum block size for this data set is 3200. Concatenated data sets may
be used.
You can enter all JES3 commands (except *DUMP and *RETURN) from a card reader (CR) or
disk reader (DR). You can use the disk reader to enter repetitive commands based on system
requirements (such as shift change). Any output messages generated from a card reader or
disk reader are displayed at the console from which you called the reader.
One of the main uses of the disk reader is to read in a production JCL stream that you place
into the disk reader data set.
*X DR M=JOBBATCH B=4 H
IAT6306 JOB (JOB25013) IS DR , CALLED BY VAINI
*I X D=ISDRVR
IAT7100 (DR ) *I X D=ISDRVR
IAT8475 (IQDX) - ISDRVR MXCT=000002 USE=000000 MOD=YES
IAT6202 JOB DRJOB1 FROM 8312 INTRP BY JOB (JOB25014)
IAT6202 JOB DRJOB2 FROM 8312 INTRP BY JOB (JOB25014)
IAT6202 JOB DRJOB3 FROM 8312 INTRP BY JOB (JOB25014)
IAT6202 JOB DRJOB4 FROM 8312 INTRP BY JOB (JOB25014)
IAT6201 JOB DRDR -04 (JOB25014),04 JOBS,00008 CDS,P=15,HOLD
IAT6202 JOB DRJOB5 FROM 8312 INTRP BY JOB (JOB25015)
IAT6202 JOB DRJOB6 FROM 8312 INTRP BY JOB (JOB25015)
IAT6202 JOB DRJOB7 FROM 8312 INTRP BY JOB (JOB25015)
IAT6202 JOB DRJOB8 FROM 8312 INTRP BY JOB (JOB25015)
IAT6201 JOB DRDR -04 (JOB25015),04 JOBS,00008 CDS,P=15,HOLD
IAT6202 JOB DRJOB9 FROM 8312 INTRP BY JOB (JOB25016)
IAT6202 JOB DRJOB10 FROM 8312 INTRP BY JOB (JOB25016)
IAT6201 JOB DRDR -04 (JOB25016),02 JOBS,00008 CDS,P=15,HOLD
IAT7450 JOB DR (JOB25013) PURGED
*F J=25014 R
IAT8080 JOB DRDR -04 (JOB25014) RELEASED
IAT6100 (JOB25014) JOB DRJOB1 (JOB25017), PRTY=01, ID=*UNKNOWN
IAT6100 (JOB25014) JOB DRJOB2 (JOB25018), PRTY=01, ID=*UNKNOWN
IAT6100 (JOB25014) JOB DRJOB3 (JOB25019), PRTY=01, ID=*UNKNOWN
IAT6100 (JOB25014) JOB DRJOB4 (JOB25020), PRTY=01, ID=*UNKNOWN
IAT7450 JOB DRDR -04 (JOB25014) PURGED
The default batch size specified on the *X command is 4. There are 10 jobs in the specified
member. Therefore, 3 DRDR jobs are created, the two first with 4 jobs and the third with 2 the
jobs. The H on the *X DR M=JOBBATCH B=4 H command specifies the JES3 control-card
processor to be put in the hold state.
*X DR,M=JOBBATCH
The reader phase reads jobs and places the jobs on JES3 spool in batches for later
processing. For each reader batch, an input service job (ISDRVR) is created. Jobs submitted
from RJP remote stations are processed as if they come from a local card reader.
The disk reader uses the basic partitioned access method (BPAM) to read one block at a time
from a partitioned data set. The data control block (DCB) for the partitioned data set (PDS) is
located in module IATISCB.
When the DR DSP is terminating, the disk reader data set is closed, then an exit back to JSS
is made. The OPEN/CLOSE is done with a JES3 general subtask through the IATXCSF
macro. The BPAM FIND/READ is done also with a JES3 general subtask. This prevents the
implied wait of DR data set I/O operations from waiting the JES3 nucleus task.
ISDRVR(a)
PURGE
Post JSS
WAIT
Module IATISLG
The IATISLG reads the multi-record file passed to it by IATISDV containing the records for the
jobs. For each record, IATISLG must determine if it is a JECL or a JCL statement, interfaces
the proper routine to process the statement, and places each statement in the appropriate
data sets. When the EOF of the input multi record file is reached, the JES3 job control blocks
needed for the life of the new job are finalized and added to the spool, and the JCT is added
to the JES3 job queue. The new job can now be scheduled by JSS as JSS is posted that a
new job has been added to the JCT spool data set.
Input service provides user exits that allow installation-written routines to define the scheduler
elements of a standard job, to examine and modify incoming JCL and JECL, and to examine
JES3 control blocks before the job is added to the JES3 job queue.
CI
MAIN Scheduler
Elements JCT Spool
OUTSERV
PURGE
(SEs) Data Set
Batch jobs
Started tasks (STC), TSO (TSU) logons and
Mount jobs -- Jobs with JCL statements
If a job contains no //*PROCESS control statements, the control statement processing phase
defines the job as requiring the standard sequence of scheduler elements (SEs). The
standard sequence is:
Converter/interpreter (CI)
Main device scheduler and generalized main scheduling (MAIN)
Output service (OUTSERV)
Purge (PURGE)
*I X,D=ISDRVR
IAT8475 (IQDX) - ISDRVR MXCT=000002 USE=000000 MOD=YES
*F X,D=ISDRVR,MC=20
IAT8484 (MODX) - ISDRVR OLDMXCT=000002 NEWMXCT=20
*I X,D=ISDRVR
IAT8475 (IQDX) - ISDRVR MXCT=000020 USE=000000 MOD=YES
*I A,D=ISDRVR
IAT8520 NO JOBS ACTIVE ON ISDRVR
IAT8593 INQUIRY ON ACTIVE JOBS COMPLETE, 0 JOBS DISPLAYED
This segment of input service begins as each batch job produced by the reader phase is read
from spool. Under the ISDRVR DSP, the JES3 job control blocks needed for the life of the job
are built and the defaults in the control blocks are modified with the information retrieved from
the job's control statements. The control blocks are written to spool and later used by JES3
functions in determining processing requirements for the job and its output data.
*I X,D=
This command displays maximum counts for the specified in the global address space.
*F X,D=
This command allows the operator to change the current DSP count.
*I A,D=
This command displays active ISDRVR jobs.
*I Q H
IAT8674 JOB DRDR -10 (JOB27764) P=15 HOLD=(OP) ISDRVR
IAT8674 JOB DRDR -01 (JOB27765) P=15 HOLD=(OP) ISDRVR
IAT8674 JOB JOBA (JOB02266) P=01 CL=A HOLD=(OP) CI
IAT8674 JOB JOBB (JOB02267) P=01 CL=A HOLD=(OP) CI
IAT8674 JOB JOBC (JOB02268) P=01 CL=A HOLD=(OP) CI
IAT8674 JOB JOBD (JOB02269) P=01 CL=A HOLD=(OP) CI
IAT8674 JOB VAINIGRS (JOB24427) P=01 CL=A HOLD=(OP) MAIN
IAT8595 INQUIRY ON JOB QUEUE STATUS COMPLETE, 7 JOBS DISPLAYED
In response to an *I Q,H command, a job in priority hold only displays HOLD=PR if other hold
types also apply. If PR is the only hold type that applies, IAT8674 is not issued for that job. If
you need to see which jobs are in priority hold, use the *I Q,H,PR command.
In response to an *I,Q,H command, a job in priority hold only displays HOLD=PR if other hold
types also apply. If PR is the only hold type that applies, IAT8674 is not issued for that job. If
you need to see which jobs are in priority hold, use the *I,Q,H,PR command.
//*DATASET statement
//*ENDDATASET statement
//*ENDPROCESS statement
//*FORMAT PR statement
//*FORMAT PU statement
//*MAIN statement
//*NET statement
//*NETACCT statement
//*OPERATOR statement
//**PAUSE statement
//*PROCESS statement
//*ROUTE XEQ statement
Note: The //*ENDDATASET statement is required to end the data set statements. The
//*ENDPROCESS statement is not a required statement.
See z/OS MVS JCL Reference, SA22-7597 for a complete description of these control
statements.
If the job contains one or more //*PROCESS statements, the job is defined as requiring the
sequence of scheduler elements named on the //*PROCESS statements.
JCLTEST Facility
// EXEC PGM=JCLTEST
JSTTEST Facility
// EXEC PGM=JSTTEST
//*PROCESS CBPRNT
//*PROCESS CI
DEBUG = ALL
Debugging JCL
JCLTEST and JSTTEST are ways to diagnose errors that occur during CI or MDS processing.
JCLTEST facility
The JCLTEST facility generates a listing of interpreted JCL that has been processed by the
MVS converter interpreter. You can use this listing to verify JCL results before allowing further
processing of the job.
If you specify the PGM=JCLTEST parameter on an EXEC statement, JES3 stops processing
the job when it completes converter/interpreter processing; the job is not scheduled for
execution. The JCL and any applicable diagnostic messages are then printed. If you want to
use JCLTEST for a deferred-restart job, you must specify PGM=JCLTEST on the EXEC
statement located after the one for the step names on the RESTART parameter of the JOB
statement.
The output from the JCLTEST facility is a listing of interpreted JCL. The JCL below runs the
JCLTEST facility.
// EXEC PGM=JCLTEST
JSTTEST facility
The JSTTEST facility allows you to obtain summary information that describes the resources
required by a job in order to execute. If you specify the PGM=JSTTEST parameter on an
EXEC statement, JES3 uses the job's Job Summary Table (JST) to produce a summary of
the devices that should be allocated to your job. JES3 then stops processing the job when it
The JSTTEST facility uses the information in the job summary table (JST) to obtain
information for the messages that describe the allocation decisions made during CI. Sets of
messages are written to the JESMSGLG data set. The first set of messages describes the job
step of the job.
CBPRNT DSP
For errors during CI processing:
Run the failing job with a //*PROCESS CI statement followed by a DEBUG=ALL parameter
statement.
Run the failing job with a //*PROCESS CBPRNT statement followed by a DEBUG=ALL
parameter statement.
For SETUP problems, rerun the job with a // EXEC PGM=JSTTEST statement.
Run the failing job with a //*PROCESS OUTSERV statement followed by a DEBUG=ALL
parameter statement.
The CBPRNT DSP prints JES3 and MVS control blocks. The blocks are written in the
CBPRNT data set and printed at job termination. CBPRNT provides for the printing of the
following control blocks:
FRP
JDAB
JDS
JST
JVT
MOSE
CI SWA control blocks
OSE
PARM buffer
RESQ (RQ)
TAT (JBTAT)
//ROGERSZ JOB
(POK,999),'ROGERS',MSGCLASS=A,NOTIFY=ROGERS,
// USER=ROGERS
//*PROCESS CI
DEBUG=ALL
//*PROCESS CBPRNT
//*PROCESS OUTSERV
//PRINT EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=*
//SYSIN DD DUMMY
//SYSUT2 DD SYSOUT=(Z,INTRDR)
//SYSUT1 DD DISP=SHR,DSN=ROGERS.JCL.VERS5(IEBGENER)
/*
//
DEBUG=cbname
DEBUG=cbname | ALL
Identifies the one or more control blocks to be printed. You must separate the control blocks
by a comma if you specify more than one control block. The DEBUG or CLASS parameter
must start on a new line following the //*PROCESS CI statement and a blank must precede
the first parameter you specify. The syntax for using DEBUG and CLASS statements for the
C/I Debug Facility follows:
cbname is the converter/interpreter debug facility specifcation that will print the following:
LOC Locate table (LVS) entries as they are built and the Locate Response Area (LRS).
JST Job summary table (JST) entries as they are built.
JVT Job volume table (JVT) entries as they are built.
CLASS specification
Allows the user to assign a JES3 message class to the DEBUG data set for a job. The class
must be a single alphabetic (A through Z) or a numeric (0 through 9) character. It can either
precede or follow the DEBUG=keyword and must be separated by a comma.
If you do not specify the message class for the converter/interpreter debug facility, JES3 uses
the message class specified by the DBGCLASS parameter on the STANDARDS initialization
statement.
IATUX33
IATUX17 IATUX28 IATUX29
IATUX34
Sched ele job -JMR IATUX44
mod. job
jcl cards
IATISDL IATUX24
deadline devpool
Input service provides user exits that allow installation-written routines to define the scheduler
elements of a standard job, to examine and modify incoming JCL or JES3 control statements,
and to examine JES3 control blocks before the job is given to the MVS converter/interpreter.
IATISDV -- Input Service Driver
IATISLG -- Input Service Logic Driver
IATISDT -- Input Service Data Csect
IATISJB -- Input Service Job Card Processor
IATISJL -- Input Service Jcl Processor
IATISDS -- //*DATASET Control Card Processor
IATISPR -- //*PROCESS and //*ENDPROCESS Statement Processor
IATISMN -- Input Service //*MAIN Statement Processor
IATISFR -- Input Service //*FORMAT Statement Processor
IATISDL -- Input Service Deadline Processing Routines
IATISNT -- Input Service //*NET Processing Routine
IATISEN -- Input Service End-of-Task Routine
JCL source
UX17 Scheduler elements
*
UX24 B
* *
UX29
C/I or - First scheduler element
OUTSERV - Flush job and print
All of the exits in this phase of processing run only in the JES3 global's address space under
IATNUC's task.
Exit IATUX29
The above exits are called until all statements comprising the job are processed or until an
error occurs that causes the job to be flushed. This is the last exit entered and JES3 spool
control blocks can be modified in this exit. After examining all control blocks and job
characteristics, this exit can cause the job to be flushed from the system.
If the job is to be flushed, the CI and MAIN scheduler elements are marked complete and the
job prints and purges from the system.
User
Request Resource
Manager
S
A RACF
(DADSM F
DFHSM
Request
Response
CICS
InStorage
JES
Profiles
.....)
RACF database
MVS router
SAF provides an installation with centralized control over system security processing by using
a system service called the MVS router. The MVS router provides a focal point and a common
system interface for all products providing resource control. The resource managing
components and subsystems call the MVS router as part of certain decision-making functions
The router is always present whether or not an external security product is present. If an
external security product is available in the system, the router passes control to the external
security product. Before it calls the external security product, the router calls an optional,
user-supplied security processing exit if one has been installed.
Resource managers
Resource managers are responsible for calling SAF to determine whether to allow a user
access to the system or to a resource. The resource manager is responsible for enforcing the
decision made by SAF or RACF. Resource managers include:
DADSM for data set access authority
DFHSM for data set allocation authority
CICS® for CICS sign-on and transaction authorization
JES3 for user identification and verification
Based on the original user's request, the resource manager formulates a request and passes
it to SAF. Depending on the nature of the request, SAF may respond directly or may pass the
request to RACF. In either case, the user receives a response from the resource manager
after the resource manager considers the response from SAF.
IATXSEC macro This macro is used to setup the necessary parameters and invoke the JES3
security processing service routine IATGRSC.
VERIFYX
INPUT SERVICE SAF/RACF
UTOKEN
CONVERTER
JESINPUT
JESJOBS
SURROGAT
NODES
EXECUTION
RACF Database
JES3 DSPs use the IATXSEC macro service to setup the necessary parameters and invoke
the JES3 security processing service routine IATGRSC. IATGRSC, JES3 common security
processing, routes the requests to the security product using the RACROURE macro. When
the security product finishes its processing, control is returned to the caller with the
appropriate information and return code.
Note: The RACROUTE REQUEST=VERIFYX request is not issued for started tasks, TSO
logons, and mounts. MVS will do the required security checks.
When RACF is active, RACF ensures that the job password, userid, group ID, and security
label are valid before allowing userid, groupid, and security label are valid before allowing the
job to be processed.
User propagation
For each previously-validated RACF user who is submitting a batch job to JES through a JES
internal reader, SAF propagates the following security information to the batch job:
If USER is not specified on the JOB statement, the current RACF userID is used.
If PASSWORD is not specified on the JOB statement, the current user password is not
required if the submitter propagates.
If SECLABEL is not specified on the JOB statement, the submitter's current security label
is used.
INTRDR propagation
SAF propagates the current RACF userid from each (already validated) RACF user who
submits a batch job either by using the INTRDR or the TSO SUBMIT command. Thus, jobs
executed within the same JES complex from which they are submitted, are automatically
NJE jobs
With NJE jobs, the submitter information used depends on whether the submitting node is
trusted. If the submitting node is trusted, the submitter information is either used as passed or
translated through NODES profiles. This information is subject to reverification during any
submit check that may be performed. This is consistent with local jobs.
Tip: Security classification of users and data allows installations to impose additional
access controls on sensitive resources. Each user and each resource can have a security
classification in its profile. You can choose among the following:
Security levels, security categories, or both
You can use security labels, which are a combination of security levels and security
categories, and are easier to maintain
IATXSEC
RACROUTE .......
(2). Call SAF
IATUX59
(4). Call JES3 Exit Exits set RC on return
RC = . . . set by exit
Return to JES3 Mainline code
This single macro calls the JES3 common security processing routine, IATGRSC, which calls
the user exit IATUX58 before the SAF/RACF calls. The exit can modify security checks or
make security decisions for JES3. The security decisions that can be controlled include
restricting access to SYSIN/SYSOUT data sets, controlling the use of operator commands,
and controlling network jobs and data.
If IATUX58 does not make the security decision, IATGRSC calls SAF by issuing the
RACROUTE macro. After the SAF call JES3 user exit IATUX59 is invoked.
IATUX59 can again modify security checks or to make security decisions for JES3.
JESINPUT
NODES JESJOBS
RACF Classes
WRITER Used by JES3 SURROGAT
JESSPOOL OPERCMDS
What is Needed ?
New function
Standard exit decisions
Whats available in Exits
IBM supplies a module for each JES3 installation exit. All exits begin with IATUXxx. (Some
exits perform a default function, but most are dummy modules). You may, of course, write your
own installation exit routine in place of any provide by IBM. For each exit, either the
IBM-supplied routine or an installation exit routine must reside in the JES3 module library, or
JES3 issues warning messages IAT3020 and IAT3102.
JES3 is a general job entry subsystem of MVS and sometimes cannot satisfy all
installation-specific needs at a given installation. If you modify JES3 code to accomplish your
specific functions, you then are susceptibly to the migration and maintenance implications
that result from installing new versions of JES3. JES3 exits allow you to modify JES3
processing without directly affecting JES3 code. In this way you keep your modifications
independent of JES3 code, making migration to new JES3 versions easier and making
maintenance less troublesome.
All JES3 installation exits and JES3 modules, data areas, etc. (with very few exceptions)
reside in virtual storage above 16 megabytes and execute in 31-bit addressing mode. Coding
techniques assume 31-bit addressing mode to be the rule and not the exception. When
certain segments of code need to refer to data below 16 megabytes, this book will clearly
state so.
JES3 stores the following data in the registers before passing control to a DSP:
Registers 0 through 10 are undefined.
Register 11 contains the address of the function control table (FCT) for the DSP.
Register 12 contains the address of the JES3 transfer vector table (TVT).
Register 13 is the base register of the DSP's data CSECT, if one is defined for the DSP.
Register 14 is the address to which a called routine must return.
Register 15 is the entry point address of the called program.
Exception: JES3 installation exits that run outside of the JES3 address space may follow
other register conventions (for example, IATUX26 and IATUX57). In these cases, check the
installation exit for register conventions
Note: This display does not include the names of jobs that were put in action as a result of
using the *F NJE,NAME=,HOLD command. Use the *I Q,H command to display these jobs.
Use the *I A,D=NJESND command only for BSC/NJE communication.
*I A,D=CI
IAT8522 JOB JOB200 (JOB33518) ACTIVE ON CI 0000.59 MIN
IAT8522 JOB JOB11 (JOB33604) ACTIVE ON CIFSS1 0000.12 MIN
IAT8522 JOB JOB2 (JOB33606) ACTIVE ON CIFSS1 0000.09 MIN
*I A,D=NJESND
IAT8522 JOB jobno jobname ACTIVE ON NJESND TIME NAVAIL SCHED FOR nodename
IAT8522 JOB jobno jobname ACTIVE ON NJESND lsender time
*I A,SC65
IAT8524 JOB RACF (JOB32766) ON SY65 004502.93 MIN
IAT8524 JOB SYSLOG (JOB32765) ON SY65 004502.93 MIN
IAT8524 JOB JES3CI (JOB33379) CIFSS2 ON SY65 004364.71 MIN
IAT8524 JOB GTFJES3 (JOB33401) GTF ON SY65 004218.21 MIN
IAT8524 JOB JOB23 (JOB33727) STEP1 ON SY65 000001.03 MIN
IAT8524 JOB JOB11 (JOB33718) STEP1 ON SY65 000000.50 MIN
IAT8524 JOB JOB26 (JOB33734) STEP1 ON SY65 000000.01 MIN
IAT8593 INQUIRY ON ACTIVE JOBS COMPLETE, 7 JOBS DISPLAYED
*I A,SC65,C=A
IAT8524 JOB JOB12 (JOB33827) STEP1 ON SY1 000001.30 MI
IAT8524 JOB JOB30 (JOB33834) ON SY1 000000.40 MI
IAT8524 JOB JOB33 (JOB33846) ON SY1 000000.09 MI
IAT8593 INQUIRY ON ACTIVE JOBS COMPLETE, 3 JOBS DISPLAYED
Command examples
For *I A,D=CI, JES3 displays the following message for each job active in CI. If a job is being
processed by a C/I FSS address space, the C/I FSS name is displayed.
The *I A,D=NJESND command displays the names of all jobs waiting to be transmitted and all
jobs currently being transmitted to other nodes in the network. JES3 displays the following
message for each job waiting to be transmitted:
IAT8522 JOB jobno jobname ACTIVE ON NJESND TIME NAVAIL SCHED FOR nodename
JES3 displays the following message for each job currently being transmitted:
IAT8522 JOB jobno jobname ACTIVE ON NJESND lsender time
To display the status of all jobs active on system SY65, Enter *I A,SY65 and JES3 displays
the messages shown in the visual.
To display the status of jobs in class A that are active on SY65, Enter *I A,SY65,C=A and
JES3 displays the messages shown in the visual.
*I B command
Use the *I B command to display the following backlog of jobs at each JES3 function:
The number of jobs backlogged for each JES3 function (DSP).
The number of jobs backlogged for a job class.
The number of jobs backlogged for a job class group
The number of jobs backlogged for a service class.
The number of jobs backlogged for a terminal group.
The number of jobs backlogged for a main or all mains.
The Converter/Interpreter processing of a job control language (JCL) statement includes the
stage of converting the JCL statement to converter / interpreter (C/I) text, a form of data that
the job entry subsystem (JES) and the job scheduler function of MVS both recognize. The
converter takes the job's JCL, merges it with JCL from a procedure library, and converts the
composite JCL into C/I text. The converter scans each JCL statement for syntax errors and
issues appropriate error messages. The converter also resolves symbolic parameters and
assigns default values. The C/I text is further interpreted to build the necessary control blocks
needed before the job can be scheduled for execution. The output of the interpretation is
stored the scheduler work area (SWA).
JCT
VAINA
19445
JSS scheduling of CI
JES3's decision as to where to schedule C/I processing are also influenced by the
CIDEMAND (for demand select jobs) and CIBATCH (for batch jobs) initialization parameters
on the CLASS and/or STANDARDS initialization statements. These parameters indicate that
jobs of a certain class or all jobs may have C/I processing performed only where the job's
class is enabled or where the job is eligible to run.
Exit IATUX46
When JSS is ready to schedule a job for converter/interpreter, C/I) processing it calls the
converter/interpreter (C/I) scheduling module IATIICS as a subroutine. IATIICS calls the
select processors eligible for C/I processing exit IATUX46 when C/I FSS address spaces are
defined. Exit IATUX46 allows to override JES3's decision and provide your own list of mains
If your installation does not define any C/I FSS address spaces, JES3 marks exit IATUX46
routine as a dummy at initialization and never calls it, because without any C/I FSSs, all C/I
processing will occur on the global main.
The converter/interpreter (C/I) scheduling module IATIICS calls t exit IATUX49 routine after an
address space has been selected for a job's C/I processing. IATUX49 can accept or reject the
address space selected. If the CI address space selection is accepted, a RESQUEUE and a
CI FCT are initialized and attached to the proper chains. The job is now under the control of a
CI/POSTSCAN/CICLENUP DSP driver module IATIIDR.
(JES3 C/I subtask (IATIIST) calls installation exit routine IATUX41 (Determine the Disposition
of a Job that Exceeds the Job JCL Limit) if the number of JCL statements in a job exceeds the
job JCL statement limit -- MAXJOBST parameter on the STANDARDS statement. If so, exit
IATUX41 can allow JES3 to continue processing. Otherwise JES3 cancels the job from the
system with print.)
Note: Only the JES3 //*MAIN SYSTEM= JECL statement (NOT the job's scheduling
environment) is considered for CI scheduling purposes when determining where the
job is eligible to run.
"Setup" requirements
Postscan Phase
Locates for cataloged data sets
Create JST and JVT control blocks (MDS)
Determine minimum devices required (HWS)
Interpreter service
The converter/interpreter (C/I) is the first scheduler element for every standard job. During C/I
processing, the JCL is converted into scheduler work area (SWA). The SWA is stored on the
JES3 spool. The JES3 CI process extracts jobs’ I/O resource requirements from the SWA
control blocks if pre-execution setup is to occur. C/I routines provide input to the main device
scheduling (MDS) routines by determining jobs’ devices, volumes, and data sets
requirements.
Prescan phase
The primary function of the prescan phase is to extract each job's resource requirements from
the SWA control blocks created in the interpreter phase. On entry to the prescan phase, JES3
examines the SETUP parameter on the JES3 STANDARDS initialization statement:
If you specify SETUP=NONE (that is, you do not want JES3 to perform pre-execution
setup for the complex), JES3 does not build extract resource requirements.
If you specify any value other that NONE on the SETUP= keyword, JES3 determines the
job's resource requirements.
Installation exits IATUX04 (Examine the Job Information), IATUX05 (Examine the Step
Information), and IATUX06 (Examine the DD Statement Information) allow you to examine or
change job, step, and DD information, respectively. You can use these exits to examine or
change the information before processing begins.
If the job is being processed in a C/I FSS, JES3 determines whether the job is eligible to have
catalog searches performed on the main where the C/I FSS is executing. If catalog searches
Postscan phase
The functions of the postscan phase are to resolve cataloged data set references and
prepare the job for the main device scheduler (MDS).
If SMS fails to find a data set name, the postscan phase calls installation exit IATUX07
(Examine/Substitute Unit Type and Volume Serial Information). Through this installation exit,
you can examine the available data set information and, if necessary, supply the unit and
volume information.
If a data set has been migrated (or is eligible to be migrated) by the Hierarchical Storage
Manager (HSM), the LOCATE request for that data set causes JES3 to associate the data set
with a set of volumes to which it can be recalled. HSM limits the choice of volumes eligible for
recall during LOCATE processing in accordance with its space management algorithms.
JES3 processing continues as though the data set is recalled to all eligible volumes. However,
the actual recall does not occur until job execution when MVS issues a LOCATE request. At
that time, HSM determines which volume is the best choice to recall the data set to and then
recalls the data set to that volume. HSM derives an SMS storage class and an SMS storage
group for SMS-managed data sets.
In addition, whenever the response of a LOCATE request has been received, you can use
installation exit routine IATUX11 (Inhibit Printing of the LOCATE Request/Response) to inhibit
printing of the LOCATE request/response in the JESYSMSG data set.
Interpreter parameters
The CIPARM initialization statement specifies the options to be used by the MVS
converter/interpreter (C/I). These options are used as system defaults applied to certain JCL
statement parameters and other options for jobs scheduled on any main.
PARMID parameter
Specifies a 2-byte identifier associated with this option list. This parameter provides the
facility to have a variety of C/I option lists. The operator may select the option list to be used
by specifying the identifier on the *CALL, CR, DR, or TR command.
Specify the PARMID parameter to distinguish option lists if you include more than one
CIPARM statement in the initialization stream.
PARM parameter
The PARM parameter defines a 21-character parameter string that the MVS
Converter/Interpreter uses when processing jobs. The parameter string format:
bppmmmmsscccrlaaaaefh
b An account number or programmer name is required
pp Default job priority. This field is ignored by JES3
mmmmss Maximum length of time each job step may execute
Two fields have a fixed value always set by JES3: positions 13 (r) and 15-18 (aaaa).
AUTH parameter
The AUTH parameter specifies which commands will be accepted through COMMAND JCL
statements in the job stream. The groups includes:
SYS -- system commands
IO -- input/output commands
CONS -- console commands
INFO -- information commands (such as display)
ALL -- all operator command types.
COMMAND parameter
The COMMAND parameter specifies the disposition of commands entered through
COMMAND JCL statements in the job stream as follows:
DISPLAY -- The command is displayed and scheduled for execution.
EXECUTE -- The command is scheduled for execution.
IGNORE -- The command is ignored (that is, interpreted as a “no operation”). IGNORE is
the default.
VERIFY -- Specifies that the system displays the command, asks the operator whether the
command should be executed, and if the operator replies “YES”, schedules the command
for execution.
REGION parameter
The REGION parameter specifies the job-step region default size.
nnnn -- specifies the 1- to 4-digit number of units used for the default region size for a job
step. This value overrides the region size in the PARM option list, and is otherwise
processed the same way. If you do not specify this parameter, JES3 obtains the region
size from the PARM option list.
x -- Indicates the unit of measure as kilobytes (K) or megabytes (M)
– For nnnnK, the maximum allowable value is 9999K
– For nnnnM, the maximum allowable value is 2047K.
To define and name an options list, code a CIPARM initialization statement. Use the
PARMID= parameter on this statement to name the list. You must code a separate CIPARM
statement for each options list.
Each time the operator calls a disk reader, a card reader, or a tape reader, the operator can
select one of the options lists that you defined. Thereafter, each time the MVS C/I routines
process a job read from that particular reader, the MVS C/I routines use the selected options
list.
C/I parameters - internal reader jobs, started tasks, and TSO logons
To specify which options list the MVS C/I routines should use for internal reader jobs, started
tasks, and TSO LOGON jobs, use the INTPMID, STCPMID, and TSOPMID parameters on
the STANDARDS initialization statement.
The INTPMID= parameter on the STANDARDS statement specifies the 2-byte identifier (ID)
of the converter/interpreter options list for jobs entered using the internal reader. The ID must
match the ID specified by the PARMID parameter on a CIPARM initialization statement. If no
CIPARM statements are included in the initialization stream, the default value is used.
PROCLIBs
During the CI processing the converter takes the job's JCL, merges it with JCL from a
procedure library, and converts the composite JCL into C/I text.
The procedure library concatenations JES3 passes to the MVS converter are defined on the
STANDARDS initialization statement:
The INTPROC parameter specifies the appropriate IATPLBxx procedure library to be
searched by the MVS converter when resolving procedure references for jobs submitted
using the internal reader.
Note: Jobs entering from a disk reader or NJERDR use the standard procedure library
as defined on the IATPLBST.
The STCPROC parameter specifies the appropriate IATPLBxx procedure library used for
started task jobs.
The TSOPROC parameter specifies the appropriate IATPLBxx procedure library to be
used for TSO LOGON jobs.
All procedure libraries must be defined by an IATPLBxx DD statement in the JES3 start
procedure or by a DYNALLOC initialization statement.
An individual job can override the procedure library ID using the PROC parameter on the
//*MAIN JES3 control statement:
PROC=xx names the procedure library that the system is to search for cataloged
procedures called by EXEC statements in the job. If a procedure cannot be found in the
named library, JES3 abnormally terminates the job.
If this parameter is omitted, the default depends on the source of the job. If the job is
submitted as a batch job, the default is ST. If the job is submitted from an internal reader,
the default can be another procedure library, as specified by the installation on the
STANDARDS initialization statement (the INTPROC, STCPROC, or TSOPROC
parameters).
Note: Converter/Interpreter functional subsystems (C/I FSS) and the PROCLIB update
function will obtain unit and volume information for the procedure libraries from the catalog.
For these functions, JES3 ignores unit and volume information that you specify in the JES3
start-up procedure or on a DYNALLOC initialization statement.
Mains
How many subtasks ?
CIFSS subtasks CIFSS subtasks
Batch jobs
Global CI subtasks CIFSS subtasks
Demand select jobs CIFSS subtasks
CI initialization definitions
During JES3 initialization, JES3 attaches an installation-defined number of
converter/interpreter (C/I) tasks. The C/I tasks are subtasks to the JES3 nucleus task. When
a C/I subtask processes a job, the scheduler work area (SWA) in the address space in which
the service is invoked (global or functional subsystem) provides temporary storage for the
job's converted JCL statements. The SWA storage remains allocated until the C/I subtask
finishes processing the job. When several C/I subtasks run concurrently, the SWAs of all the
jobs are in-storage simultaneously. The initially by a C/I subtask created SWA is always
located above 16-megabytes.
CI subtasks
The STANDARDS statement CICNT parameter specifies the maximum number of CI DSPs
that can operate in the JES3 global address space at any time. The first subparameter
(maxbatch) specifies the maximum number of CI DSPs that process batch jobs. The second
subparameter (maxdemsel) specifies the maximum number of CI DSPs that process demand
select jobs (that is, started tasks and TSO LOGONs). The sum of the two subparameters
cannot exceed 255. CI DSPs defined to process batch jobs cannot be used to process
demand select jobs, and vice versa.
CIFSS subtasks
The CI DSPs execute in the JES3 global address space. The characteristics of C/I FSS
functional subsystems, which operates in their own address spaces, are defined with the
FSSDEF,TYPE=CI statement. DSPCNT parameter specifies the maximum number of CI
DSPs that can operate in the C/I FSS address space at any time.
Note: In order for CI to be scheduled on a main processor, the main processor must not
have been previously ruled out due to the CIBATCH or CIDEMAND parameter.
CI scheduling
CIBATCH= indicates whether batch jobs must have CI processing limited to certain
processors. This will apply to all batch jobs unless overridden by the CIBATCH parameter on
the CLASS statement pertaining to a job's JOB CLASS.
CIDEMAND= indicates whether demand select jobs must have CI processing limited to
certain processors. This will apply to all demand select jobs unless overridden by the
CIDEMAND parameter on the CLASS statement pertaining to a job's JOB CLASS.
JOB - indicates CI processing must be performed on a system on which the job is eligible
to run.
Note: For batch jobs only, the JES3 //*MAIN SYSTEM= JECL statement (NOT the job's
scheduling environment) is considered for CI scheduling purposes when determining
where the job is eligible to run.
CLASS - indicates CI processing must be performed on a system on which the job's JOB
CLASS is enabled.
ANY - indicates CI processing may be performed on any processor regardless of job or
class eligibility. This is the default.
To select the job JCL statement limit, determine the number of JCL statements that are in the
largest job you want to run at your installation. Specify that number on the MAXJOBST=
parameter of the STANDARDS initialization statement. The next time you do a hot start with
refresh, warm start, or cold start using the initialization stream containing that STANDARDS
statement, JES3 uses the job JCL statement limit you specified.
You can override the effects of this limit on a particular job by writing an exit routine for
installation exit IATUX41. This installation exits lets you decide whether a job that exceeds the
job JCL statement limit should continue processing. To find out how to write an exit routine for
installation exit IATUX41, see z/OS JES3 Customization, SA22-7542.
Note: The parameter default will be whatever value was specified for the
MAXJOBST parameter, or the default value for MAXJOBST if
MAXJOBST was not specified.
CI initialization parameters
The STANDARDS initialization statement to specify default values for C/I processing not
provided on other JES3 initialization statements.
PSTCNT= (maxbatch,maxdemsel)
Specifies the maximum number of POSTSCAN DSPs that can operate in the JES3 global
address space at any one time. The first subparameter (maxbatch) indicates the maximum
number of POSTSCAN DSPs that can process batch jobs. The second subparameter
(maxdemsel) indicates the maximum number of POSTSCAN DSPs that process demand
select jobs (that is, started tasks and TSO LOGONs). A POSTSCAN DSP defined as
processing batch jobs cannot be used to process demand select jobs, and vice versa.
The total of both numbers specified for this parameter must be between 1 and 32,767
(inclusive).
Jobs processing in CI
The CI, POSTSCAN, and CICLENUP driver module (IATIIDR) provides for the logical flow of
jobs through C/I processing, global locate processing, job summary table creation for MDS.
IATIIDR handles the postscan phase by loading and calling the postscan module (IATIIPN).
CI DSP modes
There are three modes for the CI DSP as follows:
1. JES3 C/I mode (CI DSP) -- The DSP runs in the JES3 global address space and
processes a job through MVS C/I, prescan and postscan.
2. FSS C/I mode (CI DSP) -- The DSP runs in a C/I FSS address space and processes a job
through MVS C/I and prescan. The job must be returned to the JES3 global address
space for postscan processing.
3. C/I FSS demand select mode (CI DSP) -- The DSP runs in the JES3 global address space
and processes a demand select job used to start a C/I FSS address space through MVS
C/I, prescan and postscan. MVS C/I is performed using the special C/I FSS demand
select subtask.
JES3 CI DSP
MVS C/I MVS SWA
SUBTASK
POSTSCAN DSP
JES3 LOCATE
LOCATE
SUBTASK
USER SETUP
HWS
CICLENUP DSP
Converter/interpreter phases
The CI, POSTSCAN, and CICLENUP DSPs perform the actual converter/interpreter
processing. The converter/interpreter service comprises primarily the JES3 CI and
POSTSCAN DSPs, the C/I subtasks under which the MVS C/I routines run, and the initiator
support routines. You can define one or more C/I functional subsystem (FSS) address spaces
to perform the converter/interpreter, prescan, and locate (catalog search) portion of the
postscan phase for some or all jobs. A C/I FSS can operate on the global or any local main.
All of the C/I FSSs are controlled from within the JES3 global by the CIDRVR DSP.
Prescan phase
The primary function of the prescan phase is to extract each job's resource requirements from
the SWA control blocks created in the interpreter phase. On entry to the prescan phase, JES3
examines the SETUP parameter on the JES3 STANDARDS initialization statement:
If you specify SETUP=NONE (that is, you do not want JES3 to perform pre-execution
setup for the complex), JES3 does not build extract resource requirements.
If you specify any value other that NONE on the SETUP= keyword, JES3 determines the
job's resource requirements.
During the prescan phase, the JCL for the job is examined for PGM=JCLTEST or
PGM=JSTTEST. If PGM=JCLTEST is found on an EXEC statement, the JCL is interpreted
and the job is then express canceled on completion of the CI DSP. If PGM=JSTTEST is found
on an EXEC statement, the job is processed through the prescan and postscan phases, a
printed format of the job summary table (JST) is printed on the JESYSMSG data set, and the
job is then canceled-with-print on completion of the CI DSP. Installation exits IATUX04,
IATUX05, and IATUX06 allow you to examine or change job, step, and DD information,
respectively. You can use these exits to examine or change the information before processing
begins. For more information on JCLTEST and JSTTEST, see z/OS JES3 Diagnosis,
GA22-7547.
If the job is being processed in a C/I FSS, JES3 determines whether the job is eligible to have
catalog searches performed on the main where the C/I FSS is executing. If catalog searches
can be performed on that main, locate processing occurs in the C/I FSS and control then
returns to the JES3 global address space for the remainder of postscan processing.
Postscan phase
The functions of the postscan phase are to resolve cataloged data set references and
prepare the job for the main device scheduler (MDS). The POSTSCAN DSP runs in the JES3
global address only. It performs postscan processing for a job that has already completed
MVS C/I and prescan. For example, the CIDRVR schedules a job for postscan after it
LOCATE processing
Also called cataloged data set resolution. If SMS is active, JES3 calls it to search the system
catalogs and collect scheduling information for the job. SMS searches the system catalogs to
obtain information about a job's data sets when the job's JCL does not specify unit
information. If SMS fails to find a data set name, the postscan phase calls installation exit
IATUX07 (Examine/Substitute Unit Type and Volume Serial Information). Through this
installation exit, you can examine the available data set information and, if necessary, supply
the unit and volume information. If a data set has been migrated (or is eligible to be migrated)
by the Hierarchical Storage Manager (HSM), the LOCATE request for that data set causes
JES3 to associate the data set with a set of volumes to which it can be recalled. HSM limits
the choice of volumes eligible for recall during LOCATE processing in accordance with its
space management algorithms. JES3 processing continues as though the data set is recalled
to all eligible volumes. However, the actual recall does not occur until job execution when
MVS issues a LOCATE request. At that time, HSM determines which volume is the best
choice to recall the data set to and then recalls the data set to that volume. HSM derives an
SMS storage class and an SMS storage group for SMS-managed data sets.
JST build
Although the JES3 main device scheduler performs volume fetching and setup, JES3 must
determine the type of setup used for each job. You specify the type of job setup by coding the
SETUP parameter on the JES3 STANDARDS initialization statement or the end user can
override your specification using the SETUP parameter on the //*MAIN statement in a job's
JCL. The IJS and JVT are used to create the job summary table (JST). The JST contains a
summary of the job's data set, volume, and unit requirements. The JST is built so that all of
the job's resources are allocated before the job executes. (This is known as "job setup".)
User setup
User setup override processing is invoked if the user specifies setup and fetch overrides on
the //*MAIN statement. If so, the JST is modified to reflect those requirements.
HWS setup
High-watermark setup processing (HWS) is used if the installation specifies the
high-watermark setup algorithm. The JST is modified so that the minimum number of devices
required to run the job are set up.
CICLENUP DSP
The CICLENUP DSP runs in the JES3 global address space only. It performs cleanup
processing such as updating control blocks and issuing error messages. A separate DSP is
used for cleanup processing because it may require I/O to read and checkpoint the job's
control blocks. It is set up by the CIDRVR when one of the following occurs:
A job fails C/I in a C/I FSS address space
A job is cancelled while it is in a C/I FSS address space, or while it is waiting for the
CIDRVR to schedule it for postscan
A job must be rescheduled for postscan because there are no eligible processors to
perform locate processing. A processor is "eligible" if it is connected, on-line and in the
job's main mask.
A job is a member of a DJC network and its predecessor jobs have not completed
FCTs
CI Converter / Interpreter
(IATIIDR) Prescan
POSTSCAN POSTSCAN
(IATIIDR) Scheduled by IATIIPS
CICLENUP
(IATIIDR)
CICLENUP Execution
Pre - execution phases Initiator
Job select
SWA create
Converter Prescan Postscan
Interpreter Phase Phase
Phase
IATIIII
(IJS/LVS/JVT)
Pseudo
Interpreter
SWA SWA (JST - JVT)
(in-storage) (on spool)
CI processing overview
A CI DSP exists for one main reason: to gather information concerning the job's device,
volume, and data set requirements prior to MVS execution of the job. This information is
necessary for pre-execution setup, one of the major facilities of JES3. The information is
taken from DD statements in the job's JCL. The CI DSP serves as an interface between JES3
and the JES3 CI subtasks that invoke the MVS converter/interpreter. The interface subtask
(IATIIST) processing for a job includes:
To fail the job if JCL errors are detected by the MVS converter/interpreter.
To fail any job that contains more JCL statements than the limit allows.
To delay processing of any job that would temporarily cause the C/I subtasks to process
more JCL statements than the system limit allows.
To set up security environment for converter and open procedure libraries
To call the MVS converter and MVS interpreter
To copy the SWA control blocks that are produced by the MVS converter/interpreter onto
spool.
Converter Interpreter processing begins in module IATIIDR under the CI FCT, continues
under the POSTSCAN FCT, and is completed under the CICLENUP FCT.
Pre-execution phases
These DSPs driver module processing includes several functional phases:
The interpreter phase includes converting and interpreting a job's JCL. This phase consists of
calls to the MVS converter to convert the job's JCL into C/I text, and to the MVS interpreter, to
convert the C/I text into SWA control blocks. Most of this phase is done under a C/I subtask to
isolate the JES3 nucleus task from implied WAITs and abends. If the converter detects any
JCL syntax or logic errors, the job is printed and purged (and the MAIN scheduler element is
bypassed). This phase is performed in both the JES3 global and C/I FSS address spaces.
Prescan phase
The prescan phase includes scanning the SWA control blocks created by the MVS interpreter
and creates the following spool-resident control blocks:
Intermediate job summary table (IJS) - The IJS contains an entry for each DD statement
that requires a JES3-managed or SMS-managed device. An IJS entry is also created
when volume and unit information is not specified, which means that the catalog must be
searched to determine whether the device is JES3-managed.
Job volume table (JVT) - The JVT contains an entry for each volume (needed by the job)
that requires a JES3-managed device. Each JVT entry is associated with the IJS entry for
that DD statement.
Locate request table (LVS) - The LVS contains an entry for each data set that requires a
catalog search to obtain unit and volume information. The data set is assumed to require a
volume on a JES3-managed device until the catalog is searched. Each LVS entry is
associated with the IJS entry for that data set.
These control blocks are used later, during the postscan phase, to create other control
blocks used by JES3 setup processing. At the end of the prescan phase, the SWA
control blocks are written to spool. They will be relocated in the user's address space
when the job executes.
This phase is performed in the JES3 global and C/I FSS address spaces. If the job is
executing in a C/I FSS address space, it is returned to the JES3 global address space
for the postscan phase.
Postscan phase
This phase runs only in the JES3 global address space since it may require locate processing
or catalog setup (catalog setup does not occur in the C/I FSS address space). The postscan
phase performs the following functions:
Locate processing - During locate processing the master and user catalogs are searched
to obtain unit and volume information for each of the cataloged data sets referenced by the
job. If the job's JCL specified JOBCAT or STEPCAT DD statements, the main device
scheduler is used to set up the private catalogs before issuing locates. These catalogs are
searched before any other catalogs.
Next, the LOCATE FCT is posted to handle the locate request. The LOCATE FCT passes
the request to the locate subtask. The locate subtask issues the actual MVS locate (SVC
26), and creates a response that contains the volume and unit information requested.
When locate processing completes, the LOCATE DSP posts the waiting DSP. Then, the
unit and volume information is used to determine if the data set will be managed by JES3.
If so, additional JVT entries and, possibly, IJS entries are created.
When IATIIPS gets control, it first checks for an available batch or demand select POSTSCAN
DSP. If there is an available POSTSCAN DSP it will be used. Next, the job's main mask is
used to find an IPLed and online main processor for CI LOCATE processor and the job is
setup for POSTSCAN DSP. A POSTSCAN FCT is initialized and the RQ chained and the FCT
is attached to the FCT chain.
FCTs
LOCATE IATLVIN
POSTSCAN phase
The functions of the postscan phase are to resolve cataloged data set references and
prepare the job for the main device scheduler (MDS). Cataloged Data Set Resolution is
performed by the JES3 Locate Function Driver Module (IATLVIN). The C/I Service
Preparation for the Main Device Scheduler is done by the CI/POSTSCAN/CICLENUP Driver
Module (IATIIDR).
The job segment scheduler calls the postscan scheduler module (IATIIPS) whenever a job is
rescheduled for postscan processing. In CI FSS address space, the CIDRVR postscan
scheduling routine (IATIIFS) calls IATIIPS whenever a job, which has completed MVS C/I and
prescan processing in an FSS address space, is ready for POSTSCAN FCT processing.
The postscan scheduler module (IATIIPS) checks for an available batch or demand select
POSTSCAN DSP for the job. Next, the job's main mask is used to find an IPLed and online
POSTSCAN DSP
The POSTSCAN DSP runs in the JES3 global address only. It performs postscan processing
for a job that has already completed MVS C/I and prescan. For example, the CIDRVR
schedules a job for postscan after it successfully completes MVS C/I and prescan in a C/I
FSS address space. JSS schedules a job for postscan when the job is a DJC job and all of its
predecessor jobs have completed.
LOCATE FCT
Locates are done during postscan processing under the LOCATE FCT. The locate function
driver module (IATLVIN) receives requests for locate services to obtain information from the
catalog about one or more datasets. To request locate services, a JES3 FCT chains a locate
entry table (LET) anchored off of the locate data area (LDA). The LET contains the spool
address of the locate request table (LVS). The LVS specifies the datasets that require locate
processing. The global LOCATE FCT is responsible for determining where locates will be
performed and sending the request to the correct main processor. The locate FCT on each
processor is responsible for passing the request to a locate subtask to process. The locate
subtask issues the actual MVS locates (SVC 26), and creates a response that contains the
volume and unit information requested. After processing each request, the locate subtask
creates a locate response (LRS) containing the information from the catalog.
During the prescan phase, the Intermediate job summary table (IJS), job volume table (JVT),
and locate request data (LVS) were constructed. The postscan phase is entered to resolve
catalog data set references, complete construction of the job summary table (JST) from the
IJS. If locate processing is required (an LVS exists), IATIIP0 issues locates to resolve all
catalog data sets references.
POSTSCAN JST Build IATIIP1 builds the job summary table (JST) from the intermediate job
summary table (IJS) and the job volume table (JVT). If job setup was specified, user exit
IATUX08 is called whenever a job specifies or defaults to the job setup algorithm to examine
the unit counts determined by IATIIP1. The last use of each volume, device, and data set is
flagged in the JST. After examining the unit counts, IATUX08 either fails the job, continues
with job setup, as specified, or sends the job through high-watermark setup to allocate the
minimum number of devices for the job.
POSTSCAN High Watermark Setup Processing IATIIP3 is called during the postscan phase
of CI, to perform high watermark setup processing. This involves determining the minimum
number of units required to run the job being processed. The JST entries are updated
according to the type of high watermark setup (e.g. tape hws).
In addition, whenever the response of a LOCATE request has been received, you can use
installation exit routine IATUX11 (Inhibit Printing of the LOCATE Request/Response) to inhibit
printing of the LOCATE request/response in the JESYSMSG data set.
Converter/interpreter exits
The converter interpreter exits are as follows:
UX03 This is the internal text exit called during the convertor phase of C/I. The internal
text for each JCL statement (some number of card images) is passed to this exit,
one statement at a time.
The installation has the opportunity of changing the internal text to meet its need.
This exit is prior to UX04, UX05, and UX06 and you can do the following in this exit:
– Control dispatching priority and performance groups
– Force VIO for certain DD statements
– Change non-existent UNIT= values to something supported in the installation,
thus avoiding JCL changes.
UX04 This exit is called to allow the installation access to information obtained from the
SWA related to the JOB (IATYJBL).
This is the recommended exit to verify accounting information. The exit is running in
the C/I FSS address space (hopefully) and any delays in processing due to I/O or
local lock contention will not adversely affect JES3 global's performance.
UX05 This exit is called to allow the installation access to information obtained from the
SWA related to a job step (IATYSTP).
UX06 This exit is called to allow the installation access to information obtained from the
SWA related to a DD statement within a step (IATYDDL). DUMMY, SYSIN and
SYSOUT DD statements are NOT passed to the exit.
Optional function
CI processing offloaded
Converter/Interpreter
Prescan
Catalog search (locate) portion of the postscan
phase when necessary catalogs can be accessed
Postscan remains on global
Mini-JES3 address space
Complete JSAM function
FSS nucleus subset of IATNUC
The C/I FSS address space can be on any MVS system in the complex. The scheduling of the
CI scheduler element is still done by JSS in the global address space.
The postscan function for a job are done in the JES3 global address space. The CI DSPs that
run in a C/I FSS address space process jobs through the converter/interpreter and prescan
phases of C/I service. JES3 can also perform the catalog search (LOCATE) portion of the
postscan phase in a C/I FSS if the main where the CI FSS runs has access to the necessary
catalogs.
The CI FSS address space has certain JES3 global address space functions available in the
CI FSS. These functions are:
A modified JES3 nucleus, called IATNUCF
A modified resident FCT chain
JSAM I/O
Trace facility via IATXTRC- Makes an entry in a JES3 trace table
Storage management queue via IATXSQE - is used to add or delete an entry from the
storage management queue
ABEND/FAILSOFT capability
Alias of IATINTK
IATINTKF load module
IATNUCF
In the JES3 global address space, IATINTK attaches the JES3 nucleus task, IATNUC. In the
C/I FSS address space, IATINTKF attaches the FSS nucleus task IATNUCF. IATNUCF
contains a subset of the routines contained in IATNUC.
During C/I subtask initialization, IATNUC or IATNUCF attaches module IATIISB, the master
C/I subtask. IATIISB's function is to attach the C/I subtasks that interface with the MVS
converter and MVS interpreter. The C/I subtask resides in module IATIIST. These subtasks
are divided into three types, depending on the type of jobs they process.
In the C/I FSS address space, IATNUCF attaches a listen subtask (IATFCLT) as a result of an
FSS CONNECT. IATFCLT receives order and post FSI requests from the JES3 global and,
using the proper FSI interface routine, passes them to the FSS or FSA for processing.
BUFFER,PAGES=(global,local,cifss)
FSSDEF statement
Use the FSSDEF statement to define the characteristics of a functional subsystem (FSS)
which operates in its own address space. Use a FSSDEF statement to define one or more C/I
FSSs.
FSSNAME Specifies the name of a WTR FSS for which this printer is to be associated.
PNAME Specifies a member of the procedure library for started task jobs, which
contains a cataloged procedure for starting the FSS. The member must be
in the procedure library defined by the STCPROC parameter of the
STANDARDS statement, or in procedure library IATPLBST, if the
STCPROC parameter is omitted.
TERM Identifies whether or not the FSS terminates if the JES3 global terminates
as the result of an *RETURN or *DUMP operator command.
SYSTEM Specifies the JES3 main on which the FSS is to operate. The name(s) must
be the same as specified on the NAME parameter of the MAINPROC
statement for the main.
DSPCNT Specifies the maximum number of CI DSPs that can operate in the C/I FSS
address space at any time. The first subparameter (nnn) specifies the
maximum number of CI DSPs that process batch jobs. The second
subparameter (nnn) specifies the maximum number of CI DSPs that
process demand select jobs (that is, started tasks and TSO LOGONs).
START Specifies whether or not JES3 should start the FSS automatically when the
main on which the FSS is to run is connected to the global. This parameter
CI/FSS procedure
f C/I FSS address spaces are used, a cataloged procedure for starting the C/I FSS address
spaces must be defined. Include the procedure for starting the a C/I FSS address space in an
appropriate procedure library. A sample C/I FSS start procedures are in SYS1.SIATSAMP
library in the members IATJ3CI and JES3CI. Always specify the same checkpoint data set(s)
as specified in the JES3 start procedure and use DISP=SHR.
MAXASST Specifies the maximum number of JCL statements that may be processed
concurrently for all CI DSPs in both the JES3 address space and C/I FSS
address spaces.
The MAXASST keyword on the FSSDEF statement defines the number for an
C/I FSS address space.
Demand select jobs are excluded from the limit function.
DEFAULT: 0
BUFFER statement
The converter/interpreter DSP requires JSAM I/O. The CI FSS supports JSAM I/O in the C/I
FSS address space.
The BUFFER statement specifies of the number of JSAM buffers in the C/I FSS address
space.
global Specifies number of pages for JES3 global address space.
local Specifies number of pages for JES3 local address space.
cifss Specifies the number of pages for a CI FSS address space.
Following JSS first pass processing, the CIDRVR FCT in module IATIICD will get control to
start the C/I FSS address spaces.
The PARM=(R0) on the macro allows specification of a parameter string. Module IATGRFS
gets control when this macro is issued and builds and issues the start command.
Restriction: The cataloged procedure for starting an FSS should not use any JCL
symbols. The JES3 generated internal start command does not support any overriding
keyword parameters.
Global JES3
Address Space FSI CI FSS Address Space
IATINTK IATINTKF
IATNUC IATNUCF
CIDRVR FSSDRVR
IATIISB IATIISB
CI CI
CI Task CI Task
FSSDRVR DSP
The FSSDRVR DSP (module IATIIFC) controls a single FSS address space from within that
address space. This includes the following:
Controlling the various phases of a C/I FSS's initialization
Setting up a CI FCT for each job that is sent to the C/I FSS address space by JSS
Returning jobs that have completed C/I processing to the CIDRVR in the JES3 global
address space
Enabling and disabling procedure libraries, if requested by the CIDRVR
Cancelling and failing jobs, if requested by the CIDRVR
Processing operator *F commands, if requested by the CIDRVR.
A C/I FCT executing in the FSS address space has also the IATIIDR as the driver module.
FCT-TOP
IATGRTM TIMER
P-254
IATRDYQ READYQ
P-254
IATDMTA TRAKALOC
P- 40 CHAINED in
WHEN NEEDED
IATIIFC FSSDRVR
P- 40
IOERR IATDMER
P-20
IATLVIN LOCATE
P- 5
CI IATIIDR
P-7
IATGRSR GENSERV
P- 2
IATABMN FAILSOFT
P- 1
IATWAIT WAIT
P- 0
CIFSS FCTs
This figure shows the resident FCT chain in the CI FSS address space.
When a job is scheduled to this address space for converter processing, a CI FCT is added to
the FCT chain. These are the only FCTs necessary for processing the converter interpreter.
FSSDRVR FCT
The FSSDRVR, module IATIIFC, controls a single FSS address space from within that
address space. It controls the following:
Initializing C/I FSS's (various phases)
Setting up the C/I FCT
Returning jobs to CIDRVR in the JES3 global address space
Enabling and disabling the procedure libraries
Processing modify commands
FSSDRVR processing
When an ORDER is sent by the JES3 global, FSSDRVR is posted.
JES and the FSS/FSA communicate through the functional subsystem interface (FSI). The
FSI is a one-level interface which provides two way communication. The FSI consists of a set
of macro-invoked service routines provided by both JES and the FSS/FSA. These service
routines are:
JES routines that reside in the FSS address space
SSI routines that JES provides
FSS/FSA-supplied routines.
The FSS/FSA and JES use the FSIREQ macro to invoke functional subsystem interface (FSI)
services. The FSIREQ macro allows JES to issue orders to the FSS/FSA and the FSS/FSA to
issue requests to JES.
A JES3 macro, (IATXCIO TYPE=), is used to send orders to the C/I FSS address space. All
calls through IATXCIO enter module IATIIOR where the JSERV macro is used to send order
staging area to the C/I FSS address space. An IATXCIO TYPE=PJCI request specifies that
the C/I FSS address space should process the job.
In the C/I FSS address space, the CIDRVR builds a RQ and CI FCT and obtains a CI subtask.
The selected job then goes through converter interpreter processing.
POSTSCAN on global
The job is then returned to the global where it is updated and the job is now placed onto the
POSTSCAN queue to continue CI processing.
*I F TYPE=CI|FSS=cifss
IAT8701 FSSNAME TYP SYSTEM PROCNAME JOBID STAT T S MD RC
IAT8701 DSP/DEV MAXASST
IAT8702 cifss C/I SC64 JES3CI NONE INAC N Y
IAT8702 003,001 00000000
During JES3 initialization, the system programmer specifies the number of copies of the C/I
DSPs and POSTSCAN DSPs to be used by C/I service. The JES3 STANDARDS initialization
statement and the FSSDEF initialization statement define the number of C/I DSPs and
POSTSCAN DSPs that are to be used by batch jobs and started task jobs and TSO/E
LOGON jobs. The number of copies of the C/I DSPs and POSTSCAN DSPs can be modified
with the *F X command.
These counts can be modified for CI FSS address spaces and for the number of subtasks on
the global.
CI(Status)
The C/I scheduler element is ready to be, or is being, processed for the job. If the element is
not being processed, only 'CI' appears in the message. Otherwise, status indicates where the
job is processing in C/I processing. Inquiries on the POSTSCAN DSP also display 'CI' since
the POSTSCAN DSP runs under the C/I scheduler element.
CI(Status) values
The CI status displayed may have following values:
CS The job is in catalog setup (JOBCAT or STEPCAT DDs)
CF The job is active in C/I and PRESCAN processing in a functional subsystem (FSS)
address space. In this case, the FSS name of the CI FSS that is processing the job
is also displayed.
A The job is active in C/I and PRESCAN processing in the JES3 address space.
PS The job is active in POSTSCAN processing in the JES3 address space.
LC LOCATE processing is being performed for the job.
Change CI status
The CI and DISABLE scheduler elements status for scheduling can be changed with the *F X
operator command. HOLD or RELEASE parameters specify that C/I or DISABLE DSP activity
should be stopped (HOLD) or resumed (RELEASE).
The *F X= command can also change the MAXASST parameter and the MAXJOBST
parameter for the C/I DSP.
MAXASST=xxxxxxxx -- Specifies the maximum number of JCL statements that can be
processed simultaneously in the JES3 global address space.
MAXJOBST=yyyyyyyy -- Specifies the maximum number of JCL statements to be allowed
in a single job.
JES3 stops an active C/I FSS address space when the maximum number of C/I DSPs is set
zero (0).
*F F,FSS=cifss,DSPC=(0,0)
Note: The start value (ST) for that FSS is set to NO when the C/I FSS address space is
terminated.
The MVS CANCEL command ends an active job, started task, or time-sharing user immediately.
CANCEL [jobname.]cifss [,A=asid] - End a started task
The identifier cifss is the same that was specified on the FSS START command (the ffsname
on the FFSDEF initialization statement).
If FSS= is not specified, the status of the functional subsystems depends upon the value
defined in the TERM= parameter of the FSSDEF initialization statement.
POSTSCAN FCTs
*I X,D = POSTSCAN
*F X,D = POSTSCAN,MC = (2,4)
How many POSTSCAN FCTs
Default is (2,1)
Standards,.....,POSTSCAN = (2,1),...
Display active POSTSCAN jobs
*I A,D=POSTSCAN
Display jobs waiting for POSTSCAN
*I Q,D=POSTSCAN
INQUIRY/MODIFY POSTSCAN
The number of POSTSCAN FCTs can be controlled via operator command. You can display
the current number, *I X,D=POSTSCAN.
You can display the current jobs that are active under the POSTSCAN FCTs as follows:
*I A,D=POSTSCAN
You can also display the jobs waiting for the POSTSCAN FCT;
*I Q,D=POSTSCAN
Procedure libraries
The installation can define one or more procedure libraries to JES3 by specifying the data
sets and DD-names in the JES3 start procedure, or on the DYNALLOC JES3 initialization
statement. The procedure libraries are allocated during JES3 initialization and also by the C/I
FSSs, since the MVS converter also runs in a C/I FSS address space.
UPDATE parameter
An UPDATE parameter on the //*MAIN statement causes all jobs using the identified
procedure library data sets and any concatenated data sets to be held until the procedure
library update is complete.
Input service validates the data set names specified on the UPDATE keyword on the //*MAIN
statement and creates a procedure library data set block (PDB) for them. Input Service also
creates a JCT for the job with two additional scheduler elements: DISABLE and ENABLE.
These scheduler elements appear before and after the MAIN scheduler element, respectively.
To prevent new jobs from updating the procedure library, change the DISABLE DSP
maximum use count to 0 or issue the *F,X,D=DISABLE,HOLD command. To resume updating,
increase the DSP maximum use count or issue the *F,X,D=DISABLE,RELEASE command.
Note: If you use the proclib update facility to move a procedure library to another volume,
and the procedure libraries are allocated through the JCL statements in the JES3
cataloged start procedure, The JES3 local address spaces must be restarted in order to:
1. Reallocate the procedure library on the new volume. This is necessary if a JES3 local
processor is a DSI candidate. Before a DSI is performed, all locals, which are DSI
candidates must be restarted in order to pick up the change.
2. Vary offline the volume containing the old procedure library. During proclib update
processing, the JES3 global and C/I FSS address spaces unallocate the procedure
libraries being updated. However, the JES3 local address spaces do not unallocate the
proclibs during proclib processing. This causes the VARY command for the proclib to fail
when you attempt to vary the proclib offline to one of the local processors.
The JES3 local address spaces do not have to be restarted if the procedure libraries are
defined via the DYNALLOC statements in the initialization stream.
Attention: If a job that updates a procedure library is in a JES-managed job class group,
and it is updating the procedure library used to start initiators, make sure that there is at
least one initiator started before allowing the job to enter the system. Otherwise, a
deadlock will occur; the procedure library used to start the initiator is disabled, the job is
waiting for an initiator, and the initiator is waiting for the procedure library to be enabled. If
this situation arises, the updating job must be cancelled and resubmitted or a
*RESTART,SETUP,jobno,CI command can be used to enable the procedure libraries (and let
the initiator start) and restart the job through C/I processing.
When a procedure library update job is ready for DISABLE processing, the job segment
scheduler, module IATGRJS, calls Proclib Disable Processing and Scheduling Module
IATIIPC to determine if the procedure libraries can be updated. If so, IATGRJS schedules the
DISABLE scheduler element to disable the procedure libraries) in the JES3 global address
space that an update job will be using.
ENABLE DSP
After the job completes Main Service, JSS schedules the ENABLE scheduler element by
setting up an ENABLE DSP (IATIIEN). For each procedure library that is being updated by
this job, the ENABLE DSP checks to see if it is the last job updating data sets in this
procedure library. If so, the procedure library is dynamically allocated and opened in the JES3
global address space.
If the ENABLE DSP is successful, the CIDRVR DSP is posted to have the C/I FSSs enable
the procedure library. The CIDRVR DSP directs the C/I FSSs to enable the procedure library.
When all C/I FSSs have enabled the procedure library, the CIDRVR DSP posts the ENABLE
DSP.
The ENABLE DSP resets the “held for update” flag and posts JSS so that jobs that use the
procedure library can be scheduled for C/I.
IAT4890 PROCLIB IATPLBST HAS BEEN DISABLED FOR UPDATE BY JOB VAINPROC (JOB25093)
IAT2000 JOB VAINPROC (JOB25093) SELECTED SC65 GRP=A
IEF403I VAINPROC - STARTED - TIME=11.43.31
*I PROCLIB,ID=ST
IAT8952 PROCLIB IATPLBST IS UNALLOCATED AND DISABLED
IAT8954 IATPLBST, DSN=SYS1.TEST1.PROCLIB NOT BEING UPDATED
IAT8954 IATPLBST, DSN=SYS1.PROCLIB NOT BEING UPDATED
IAT8954 IATPLBST, DSN=CPAC.PROCLIB NOT BEING UPDATED
IAT8954 IATPLBST, DSN=SYS1.IBM.PROCLIB NOT BEING UPDATED
IAT8954 IATPLBST, DSN=SYS1.PROCLIB.OLD00 BEING UPDATED BY JOB VAINPROC (JOB25093)
IEF404I VAINPROC - ENDED - TIME=11.44.23
IAT4885 PROCLIB HAS BEEN ENABLED FOR DDNAME=IATPLBST
*I PROCLIB
IAT8952 PROCLIB IATPLBST IS ENABLED
IAT8954 IATPLBST, DSN=SYS1.TEST1.PROCLIB NOT BEING UPDATED
IAT8954 IATPLBST, DSN=SYS1.PROCLIB NOT BEING UPDATED
IAT8954 IATPLBST, DSN=CPAC.PROCLIB NOT BEING UPDATED
IAT8954 IATPLBST, DSN=SYS1.IBM.PROCLIB NOT BEING UPDATED
IAT8954 IATPLBST, DSN=SYS1.PROCLIB.OLD00 NOT BEING UPDATED
ID=ST specifies the procedure library id. If omitted, the status of all procedure libraries will be
displayed. Use the two digit suffix of the procedure library when entering a value for procid on
the ID= keyword.
You must choose whether to use the JES3 main device scheduler or use MVS (which controls
the job execution) for the entire allocation process as each step begins execution. If you
choose MDS, you must then decide whether utilization of MDS is to be partial (set up some
jobs, some resources) or total (set up all jobs, all resources).
You need to be aware that if MDS is used to provide resource management, MDS also takes
into account the availability of a job's scheduling environment during resource allocation.
Scheduling environments and resources are defined by the installation in the Workload
Manager (WLM) policy. A scheduling environment is a list of resource names and their
required states that are used to ensure that units of work are sent to systems that have the
appropriate resources to handle them.
Scheduling environments and resource names reside in the WLM service definition and apply
across the entire sysplex. Resource states may have a different setting in each system in the
sysplex and are, therefore, system-oriented.
Each element in a scheduling environment consists of the name of a resource and a required
state of either ON or OFF, as follows:
If the required state is ON, then the resource state must be set to ON on an MVS image for
the requirement to be satisfied.
If the required state is OFF, then the resource state must be set to OFF on an MVS image
for the requirement to be satisfied.
The SCHENV parameter on a JOB JCL statement specifies the name of the WLM scheduling
environment to associate with the job.
MVS allocation
In systems that do not use MDS a job's I/O resource requirements are not known until the job
is selected for execution, and a system initiator begins the step allocation process. At each
job step, MVS allocation attempts to satisfy the requirements for the step, in contention with
every other job step currently executing on the same processor. If the requirements cannot be
met, MVS allocation gives the operator the option of canceling the job or allowing it to wait for
resources. Thus, in a system that does not use MDS, there may be jobs executing and other
jobs in execution waiting for resources.
The jobs waiting in MVS allocation hold critical resources (a system initiator, an address
space, data sets, and possibly devices). Holding these resources longer than necessary
makes it very difficult for the system programmer to determine how many initiators should be
started to keep the system fully used, because at any given time, an unknown number of
initiators may be waiting. MDS offers a solution to this problem.
MDS requests and verifies the mounting of the initial volumes a job requires on each device
before the job can be selected for execution (unless deferred volume mounting is specified in
the JCL).
Pre-execution setup
Because MDS setup occurs before job execution, JES3 cannot react to processing
dependencies that can occur between different jobs and between different steps in the same
job. This limitation is particularly important when considering the cataloging and passing of
data sets. JES3 cannot determine whether any conditional job steps are skipped as a result
of condition code processing. JES3 assumes that all job steps will execute. JES3 also counts
the number of I/O devices needed by each step.
The JES3 main device scheduler controls the volume fetching, allocation, mounting, and
deallocation of I/O devices associated with job execution on all processors in the complex.
MDS allocates I/O resources among competing jobs and release resources as soon as
possible after they have been used.
Scheduling environments
If a job is assigned a scheduling environment (for example, the SCHENV= parameter was
specified on the JOB statement), the availability of the job's scheduling environment is taken
into consideration when determining which systems have the resources for a job. If a job's
scheduling environment is not available on a particular system, the job will not run on that
system even if the other resources required by the job (e.g. DASD volumes, SMS storage
groups) are available on that system. If the scheduling environment later becomes available
on a system, the job will be able to run on that system provided that the resources required by
the job are also available on that system.
MDS is useful on a global only system or a multi-image complex. It does not replace MVS
allocation, but works together with MVS allocation to manage control system resource such
as devices, volumes, and data sets.
MDS benefits
With MDS, the I/O resources (data sets, devices, and volumes) that a job requires are already
set up when the job is passed to MVS for execution. Since I/O resources are available for a
job when JES3 passes it for MVS execution, MVS allocation can satisfy the I/O requirements
for the steps of the job. The job’s I/O requirements are met and MVS allocation does not need
to communicate with the operator and issue allocation recovery messages. JES3 allows all
devices, including assignable devices (for example tapes), be online to all MVS systems in
the JES3 complex. This provides a way to for better tape utilization because JES3 manages
the allocation to tape units prior to execution of the using jobs.
Note: MVS supports automatic tape switching (ATS). An automatically switchable tape
device can be online to some or all systems that are participating tape sharing within a
sysplex. Automatically switchable tapes relieves the operators from keeping track of the
online and offline status of tape devices, but MVS allocation may still not be able to meet a
job’s tape requirements and may have to issue allocation recovery messages. If the VARY
AUTOSWITCH command is issued for a tape device that is online or managed by JES3, the
system alerts you to the error.
Data set awareness is provided by JES3 in a single or multi-system complex. MDS provides
the capability to fence devices for jobs or for a class of jobs. MDS management of resources
provides an easier operations for the operator.
MVS does not begin the allocation process until the integrity of all the data sets in the job has
been enforced. Once integrity has been established, MVS then begins allocating the
resources needed for the job, one step at a time. JCL DD-statement DISP= parameter
determines a data set’s integrity requirements.
MVS provides integrity for data sets within a single MVS system or across multiple MVS
systems in a sysplex.
If a job requests a data set via a DD statement, JES3 enforces data set awareness before
scheduling the job for execution. For dynamically requested data sets, JES3 enforces data set
awareness at the time of the request. To ensure data set awareness, JES3 denies a job's
request for a data set if:
The request is for non-shared access to an allocated data set
The request is for shared access to a data set that is allocated non-shared
If a job’s allocation request is denied by JES3 and the requested was made using a DD
statement, JES3 does not schedule the job for execution at that time. The job must wait until
all of the resources it needs are available. If the data set was dynamically requested, JES3
will not let MVS allocate the data set to the job at that time. The job, however, can continue to
execute. JES3 also enforces data set awareness for data sets on sequentially accessed
devices managed by JES3. Examples of such devices are tape drives. To ensure data set
awareness, JES3 allows only one job at a time to use such a device anywhere in the complex.
Device fencing
Device fencing (sometimes called device pooling) for job-class groups can be defined by
specifying either the DEVPOOL parameter or the device dedication subparameters in the
EXRESC parameter of the GROUP statement. The difference between the two methods of
dedication is that devices dedicated via the EXRESC parameter are dedicated when the
group is allocated on the processor specified in the EXRESC parameter and
DEVPOOL-requested dedication is accomplished when the GROUP is enabled on any
processor. The operator use several commands to control the JES3 MDS processes. In
general, in a JES3 complex, operators control complex and its systems through JES3
commands - not the individual MVS systems with MVS commands.
JQE
Data from JCT
JCT
128 bytes
VAINA
19445 MAIN(SE#)
(in Storage)
CI(C)
MAIN(A) MAIN scheduler element active
OUTSERV Main Device Scheduling - (MDS)
PURGE
Generalized Main Scheduling - (GMS)
Main execution
Main Device scheduling (Breakdown)
Standard jobs
For standard jobs, main service processing begins when the job segment scheduler reaches
the MAIN scheduler element in the job's JCT entry. The MAIN scheduler element represents
two DSPs: setup (SETUP) and generalized main scheduling (MAIN). Both of these DSPs are
resident and each has a permanent entry on the FCT chain, so the job segment scheduler
need not construct the FCT entries.
Initial setup (MDS) processing to prepare I/O resources. The initial setup processing is
performed in phases. During the volume fetch phase, messages are sent to tape or DASD
library consoles to indicate that a volume is to be fetched.
During the verification processing phase, checking is performed to ensure that the proper
volumes are being mounted on the proper devices. This work is carried on asynchronously as
devices become ready. The SETUP DSP maintains “verify counts” relative to individual jobs.
The verify count is the number of volumes yet to be mounted for a job. When the verify phase
is accomplished, the job will pass from initial setup processing to generalized main
scheduling -- at this point, the job can be passed to MVS for execution.
After considering these factors, the MAIN DSP picks our a job, sends information about the
job to the requesting initiator, and indicates that the selected job is now “on main”. The MAIN
DSP may skip jobs on a given selection pass. Having received the job, the initiator schedules
it through all its steps, with JES3 being involved only for items such as:
Step to step transition
Opening of SYSIN/SYSOUT data sets
Dynamic allocation and deallocation of data sets on JES3-managed or SMS-managed
devices
Requests for spool space
MDS breakdown
Breakdown processing to relinquish I/O resources. When a job completes execution under
MVS, it is returned to the SETUP DSP for device breakdown processing. At the end of each
job step, that is the last to use a device, volume, or data set, the resources are returned to the
SETUP DSP for early resource release. Many, if not all, of the job's resources may already
have been returned; but in most cases, the devices required for execution of the last step of
the job must be returned to JES3 (along with data sets and volumes). Breakdown processing
consists of updating control blocks by removing entries or reducing use counts and issuing
appropriate “keep” or “retain” operator messages. The purpose, of course, is to make the
resources available for use by other jobs that may require them. At this point the job segment
scheduler marks the MAIN scheduler element complete and schedules the OUTSERV
scheduler element.
MDS
Converter / Interpreter FETCH FETCH messages
System SMS-managed
SPOOL
Select resources
VERIFY
EXECUTION Job is executing
MDS FCTs
The FCTs that are involved with the MDS job processing are:
SETUP Main-line processing for volume fetch, job setup, high watermark setup, and
explicit setup functions.
VERIFY When a job’s “soft” allocation is successful, MDS allocation issues mount
messages for those volumes that need to be mounted on a device. In addition,
MDS allocation sends “arm” requests to the VERIFY FCT (IATLVVR) on the
selected processor to prepare the device for volume mounting.
DYNAL Main-line processing for dynamic allocation-fast path.
Fetch phase
Volume fetch, the first phase of MDS, is performed for all jobs entering MDS. This phase
determines the volumes required by the job and, if necessary, instructs the operator to get the
volumes from the library. This phase also eliminates those mains on which the job cannot run.
During fetch processing, JES3 builds volume entries and issues messages for volumes that
have no entries in the Resident Volume Allocation Table (SETVOL - IATYVLM) which contains
the volume serial number for each reference to a device managed by MDS. Volume fetch
Allocate phase
This phase of MDS uses allocation algorithms to provide required devices for jobs. When
allocation is successful, JES3 issues mount request messages for all required volumes
except:
Deferred mount requests - where no mount is as yet requested but the device that the
volume is to be mounted on is allocated to the user.
Permanently resident volumes - where the mount is unnecessary
Multi-volume mount - where only the first volume of a multi-volume data set is mounted;
secondary volumes are not mounted until required.
The ALLOCATE= keyword on the JES3 SETPARAM initialization statement controls how jobs
are processed during MDS allocation. If ALLOCATE=AUTO (default) is specified, MDS sends
incoming jobs directly into allocation unless a job requires SMS-managed resources. If a job
requires SMS-managed resources, the job is first sent to system select before proceeding
into the allocation phase. If ALLOCATE=MANUAL is specified, the operator must issue the *S
S command for each job requiring volumes to be fetched before the job can go through MDS
allocation. Jobs that require volumes to be fetched are kept in the MDS WAITVOL queue. At
the start of the MDS allocation phase, a job is selected from the ALLOCATE queue. MDS
examines the job's resource requirements and attempts to allocate the required devices,
volumes, and data sets. For SMS-managed data set resource, only the data set is allocated.
JES3 is not aware of SMS-managed volumes and devices. When MDS initially tries to set up
a job, it records the total device, volume, and data set requirements for the job. When
allocation fails because needed devices, volumes, or data sets are unavailable, the job is
queued for another attempt. However, MDS sends jobs back to the system select phase of
MDS if all of the following conditions occur:
1. A job requires both SMS-managed resources and MDS-managed resources.
2. The list of eligible mains determined by the system select phase do not have access to
both the MDS-managed resources and the SMS-managed resources.
3. One or more mains not in the original list of mains has access to all of the required
resources, and the SMS-managed resources are temporarily unavailable to those mains.
Verify phase
JES3 issues messages that instruct you to mount a job's required volumes. You can
implement installation exit IATUX62 (Verify a Mount Request) to validate, accept, or override
JES3's decision about whether a volume has been successfully mounted. JES3 invokes
IATUX62 after the volume verification phase of MDS. The VERIFY function automatically
obtains the volume serial number, label status, and other information for MDS after you mount
the job's required volumes. You can install installation exit IATUX25 (Examine/Modify Volume
Serial Number) to validate any nonstandard labels used in the installation. When all volumes
are properly mounted, the job is ready for execution. However, if the job requires
SMS-managed resources, it proceeds to the system verify phase of MDS before execution.
Device types other than tape or disk do not require operator action.
If there are no systems where all of the above resources are available, the job is sent to the
breakdown phase where MDS deallocates resources held by the job. MDS then sends the job
back to the system select phase where MDS retries allocation.
Breakdown phase
JES3 automatically performs the breakdown phase of MDS when a job no longer needs a
resource such as a data set, volume, or device. The resource is then available for use by
other jobs. MDS does not deallocate SMS-managed resources other than data sets because
JES3 is not aware of SMS-managed devices and volumes.
JES3 issues messages that indicate whether volumes should be retained for use by other
jobs or demounted. The RETAIN and KEEP messages issued by MVS allocation apply only to
the resources used within one job, while the RETAIN and KEEP messages issued by MDS
consider volume usage by all jobs currently in the system that use JES3-managed or
jointly-managed devices. In the event that both MVS and JES3 issue KEEP or RETAIN
messages regarding a specific volume, the JES3 messages take priority.
SETPARAM statement
Use the SETPARAM initialization statement to specify parameters that the JES3 main device
scheduler (MDS) and the DYNAL DSP uses in allocation, mounting, and deallocation of
devices for jobs run on all mains. The SETNAME and DEVICE statements are used with the
SETPARAM statements. SETNAME and DEVICE identify the devices to be managed by
MDS. SETPARAM also indicates how MDS is to manage devices.
Note: For the DAFETCH, MDSLOG and TAFETCH parameters, the default of 97 is the
routing code equivalent of JES3 destination class S1.
Note: When you use the default (ALLOC and BREAKDWN), allocation
and breakdown messages for mountable devices are written into the
JESMSGLG data set.
FETCH - Specifies that you want fetch messages for permanently resident
or reserved DASD written into the JESMSGLG data set.
ALLOC - Specifies that you want allocation messages for permanently
resident or reserved DASD written into the JESMSGLG data set. If this
value is specified, an allocation message will be written for all
non-mountable requests in addition to permanently resident DASD.
ALL - Specifies that you want both fetch and allocation messages for
permanently resident or reserved DASD and allocation messages for all
other devices written into the JESMSGLG data set.
NONE - Specifies that you do not want fetch or allocation messages for
permanently resident or reserved DASD written into the JESMSGLG data
set.
REMOUNT= Specifies the number of times that an operator can retry to correct volume
mount errors for a job before the devices for the job are released and
allocation is restarted. The value of nnn specifies the number of retries
allowed, from 0 to 255. For example, if REMOUNT=1 is specified, the
operator can make two attempts to mount the volume--the original mount
request and one retry request.
SDEPZERO= Indicates whether jobs that require a tape mount, but are in a CLASS, are
defined as SDEPTH=0, should wait on the MDS allocate queue, the
default, or be sent to the MDS error queue.
SMSSETUP= Specifies whether JES3 manages SMS data sets.
NO - Indicates that SMS data sets are not to be managed by JES3.
YES - Indicates that SMS data sets are to be managed by JES3.
If you specify an incorrect subparameter or do not specify the SMSSETUP=
parameter, MVS determines whether JES3 manages SMS data sets or not.
TAFETCH= Specifies the routing information for tape volume fetch messages. The first
operand specifies the routing information for specific (nonscratch) volume
requests. The second operand specifies the routing information for scratch
volume requests.
msgdest - Specifies a SETUP-related console destination class. Tape
volume (scratch or nonscratch) fetch messages are issued with the routing
code equivalent of this destination class.
NONE - indicates that volume fetch messages are not to be issued.
97 - Indicates that volume fetch messages are to be issued with routing
code 97; messages also are recorded on the hard-copy log. Note that this
parameter is ignored if FETCH=NO is also specified.
SETPARAM example
In the following example, volume fetch messages are issued with the routing code equivalent
of the destination classes specified:
S7 Nonscratch tape volume fetch messages.
S10 Scratch tape fetch messages.
S9 Direct-access volume fetch messages.
Also, MDS messages would identify the first 15 characters of the data set names. All
nonaction messages would go to console destination S1. If necessary, one retry to mount any
volume would be allowed. Allocation would occur automatically following volume fetch.
Allocation order for devices would be by the order of their device numbers, as follows:
SETPARAM,FETCH=YES,TAFETCH=(S7,S10),DAFETCH=S9,DSN=15
IATMDDA (IATYMDS)
RQFETCH RQVOLWT RQSYSSEL RQALLOC RQVERIFY RQSYSVER
Awaiting Awaiting
Awaiting Awaiting
unavail restart breakdown
*R / *C nnn
volumes processing
MDCHAINS MDSECF
MDFETCHQ * MDSBK RQSELECT
MDVOLWTQ MDSMSG
MDALLOCQ * MDSAL (GMS)
MDVOLUAQ MDSVFY
MDVERFYQ MDSRST
MDERRORQ * MDSFE
MDBRKDNQ MDSASYNC
MDRSTRTQ MDSIPOST
MDDYNALQ
The SETUP DSP’s data CSECT, IATMDDA mapped by IATYMDS macro, contains the MDS
chain pointers.
MDCHAINS DS 0F START OF MDS CHAINS
MDFETCHQ DC F'0' START OF FETCH CHAIN
MDVOLWTQ DC F'0' START OF VOLUME WAIT CHAIN
MDALLOCQ DC F'0' START OF ALLOCATE CHAIN
MDVOLUAQ DC F'0' START OF UNAVAILABLE CHAIN
MDVERFYQ DC F'0' START OF VERIFY CHAIN
MDERRORQ DC F'0' START OF ERROR CHAIN
MDBRKDNQ DC F'0' START OF BREAKDOWN CHAIN
MDRSTRTQ DC F'0' START OF RESTART CHAIN
MDYNALOQ DC F'0' START OF DYNAMIC ALLOC CHAIN
The MDS processing queues can be displayed with the *INQUIRY S the operator command.
SMS VOLREF
JES3 MDS SERVICES
FETCH JES3 SPOOL
SYSTEM ACCESS (SPAF)
SELECT
ALLOCATE
JES3/DFSMS communication
JES3 SMS support provides complex-wide data set awareness for DFSMS-managed data
sets through subsystem interface communication with DFSMS, Main processor and DFSMS
resource availability are determined for scheduling jobs into execution using these interface
calls.
System Select is a phase of MDS processing and calls DFSMS System Select to access the
JES3 spool through the SPAF interface. DFSMS System Select is invoked prior to MDS
allocation to determine the availability and processor connectivity of a job's DFSMS managed
resources. This frees JES3 from having to know about the status of DFSMS resources, and
prevents MDS from allocating and mounting devices before the status of DFSMS resources is
known. If all the resources are available, the job continues into MDS; otherwise, the job waits
until the required resources become available.
The IDAX is invoked by the MVS Interpreter at the end of interpretation to analyze the JCL
and to construct SWBs for required DFSMS information. When the C/I is running under JES3,
it indicates to the IDAX that the caller wants system scheduling information. IDAX collects
scheduling information for new data sets to be allocated by this job and saves it in the
scheduling information SPAF file. The Scheduler JCL Facility (SJF) is used to scan the SWA
blocks, and IDAX creates SWBs for new DFSMS managed data sets. The Automatic Class
Selection (ACS) routines and the installation ACS user exits are invoked at this point. The
data class and storage class is selected at this time for new DFSMS managed data sets.
IDAX catalog processing determines all of the catalogs required by a job and divides them
into two categories: DFSMS managed user catalogs, and JES3 managed user catalogs.
Information about the DFSMS managed user catalogs is written to the job's SPAF file for later
use in MDS.
In addition, if the job has DFSMS managed user catalogs, PLCO is invoked to determine the
processors that have access to the required catalogs. This information is returned to JES3
and used to determine where locates should be scheduled. Information about the
non-DFSMS managed user catalogs is also returned to JES3. JES3 then adds those user
catalogs that require JES3 managed devices to the job's setup requirements.
DFSMS PLCO is invoked through an SSI Call from IDAX. There are two calls to DFSMS
PLCO; from DFSMS IDAX and from POSTSCAN. The PLCO is invoked by the DFSMS IDAX
during MVS interpretation to determine the availability and processor connectivity of all
DFSMS managed catalogs required by the job. DFSMS returns to JES3 a list of processors
that can currently access all the DFSMS managed catalogs required by the job. This list is
used by JES3 to determine which main processors can be used for locate processing. If one
or more catalogs is unavailable, the job is rescheduled for locate processing when it becomes
available.
From POSTSCAN, DFSMS PLCO is invoked prior to JES3 locate processing for jobs that
have been rescheduled to determine whether the SMS-managed catalogs required by the job
are available. Access to the SPAF files is through the resource status token passed from the
DFSMS PLCO call. The main processors eligible for locate processing are determined and
the job's main mask is updated. DFSMS PLCO is performed for the first time for all jobs
during MVS interpretation.
DFSMS Catalog Services is invoked during locate processing, instead of SVC 26, for all
existing data sets when DFSMS is active. Locates are required for all existing data sets to
determine whether they are DFSMS managed, even if VOL=SER= is present on DD
statement. If VOL=REF= is present on a DD statement, the DFSMS VOLREF Service is
invoked.
Note: JES3 locate processing calls DFSMS Catalog Services at the end of locate
processing for cleanup and at this time writes the scheduling information, collected by
DFSMS Catalog and VOLREF Services, and writes it to the spool through SPAF. DFSMS
does not have to be active on local processors for locates to take place there.
SPAF is used by DFSMS to access resource information on spool. For DFSMS, this includes
the DFSMS scheduling information spool data set and the DFSMS job information spool data
set. The DFSMS scheduling information spool data set is a spool-resident data set that
contains scheduling information for all the new and old DFSMS managed data sets
referenced in a job, as well as scheduling information for the catalogs required by the job. The
DFSMS job information spool data set is a spool-resident data set that contains job related
information used during locate processing to determine to which storage group a migrated
DFSMS managed data set may be recalled. The SPAF is invoked by SSI and uses USAM to
read from and write to the data set specified by caller. SPAF offers read only access through
the USAM interfaces.
Note: The systems in the JES3 complex must be defined in the DFSMS control data set for
proper JES3 DFSM operation.
JCT
JQE
Data from JCT
128 bytes
RQ
MAIN (SE)
CI(C)
MAIN(A) RQINDEX
(in Storage)
OUTSERV
PURGE
RQINDEX parameter
This parameter specifies the chain where the entry is placed. If "name" is coded, the name
specified must be one of the terms defined for field RQINDEX in the IATYRSQ macro. If
omitted, the index in the entry is used.
The INDEX parameter on the RQTAADD macro specifies the chain where the entry is placed.
These fields are defined in the IATYRSQ macro. During the time a job exists in the system,
the job will exist on many of these resqueue indexes. The RQINDEX value is then an indicator
of where the job is currently processing. The RQ index values used for processing of jobs
through both MDS, MAIN, and OUTSERV scheduler elements are:
RQNOSUB NO SUBCHAIN EXISTS
RQFSSCI ACTIVE IN CI IN AN FSS ADDRESS SPACE
RQPSCBAT AWAITING POSTSCAN (BATCH)
RQPSCDSL AWAITING POSTSCAN (DEMSEL)
RQFETCH AWAITING VOLUME FETCH
TVTABLE
Resqueue chain fields
Chained in FIFO RQNEXT
RQTOP
RQINDEX determines the chaining RQGRPCHN
RQWTRCHN
RQSPNCHN
RQSPNCHN
2 5 7 10 30
RQ Job 2 RQ Job 5 RQ Job 7 RQ Job 10 RQ Job 30
RESQUEUE chaining
When the job segment scheduler (JSS) is dispatched, it examines JQEs to find an eligible job
so it can schedule a DSP. Part of the processing is construction of an FCT entry when the
DSP being scheduled is not represented by a resident FCT entry. In addition to constructing
and enqueuing an FCT entry (if necessary), the job segment scheduler always builds a
resident queue element (RQ or RESQUEUE). The RQ is built after the job is scheduled and it
thus becomes the basis for DSP processing.
The RQ is a large control block containing status flags, job information fields, and queuing
pointers. RQs last only for the life of a scheduler element. Pointers in the RQ allow JES3
DSPs working on behalf of a job to find all the other job-related information kept by JES3.
The RQ represents a scheduling chain within a given DSP. It contains a summary of the
information the DSP needs to accomplish its function, plus additional information. The JSS
builds the RQ from information in the JCT entry. Pointers from the JCT entry to the job's other
single-record files (SRFs) are extracted and placed into the RQ. The RQ contains spool
information for the job that is executing and holds even more information about the job than
the JCT entry.
RQ chaining
RQs are chained to proper queues using macro services. IATGRRQ module contains the
routines to service the following macros:
The RQTAADD macro adds an RQ to the RESQUEUE chain and subchain.
The RQTAPUT macro moves an from one chain to another or changes the priority within a
chain.
The RQTADEL macro deletes an RQ from a RESQUEUE chain and subchain.
IATMDDA
2
RQGRPCHN
MDFETCHQ 5
MDVOLWTQ RQGRPCHN 0
//
//
MDDYNALQ 10
RQGRPCHN
7
RQGRPCHN 0
30
RQGRPCHN 0
IATGRVT
2
5
RQGRPCHN
RQTOP RQGRPCHN
//
7
10
RQGRPCHN 30
RQGRPCHN
RQGRPCHN
*I J= command
On a job inquiry command, *I J=, when the MAIN scheduler element is the active one, the
status shown in the MAIN scheduler element is ready to be processed or is being processed
for the job. If no DSP is running yet, only MAIN appears in the message. Otherwise, the status
indicates where the job is in relationship to the functions of main service processing.
FETCH The job is waiting for volume fetch processing.
WAITVOL The job is waiting for *S setup processing.
SYSTEM SELECT The job is on the system select queue.
ALLOCATE The job is waiting for resources to be allocated.
VOL UNAVAIL The job is waiting for an unavailable volume.
VERIFY The job is waiting for volumes to be mounted.
SYSTEM VERIFY The job is on the system verify queue.
MDS ERROR The job is waiting for an operator decision. (MDS error queue)
GMS SELECT The job is waiting to be selected for processing on the main.
EXECUTING The job is in execution.
BREAKDOWN The job is waiting for its resources to be deallocated (MDS breakdown).
MDS RESTART The job is waiting for MDS restart processing.
MAIN COMPLETE The job is complete on main.
OUTSERV WAIT The job is in the process of being rescheduled.
DEMAND SELECT The job is a demand-select job that is waiting to be selected for main.
I/O WAIT The ending function RESQUEUE is waiting for I/O to complete.
*I S command
The *I S command to displays the status of jobs currently in setup or the status of volumes
and data sets controlled by MDS.
*I S
IAT5619 ALLOCATION QUEUE = 0000001 BREAKDOWN QUEUE = 0000000
IAT5619 SYSTEM SELECT QUEUE = 0000000 ERROR QUEUE = 0000000
IAT5619 SYSTEM VERIFY QUEUE = 0000000 FETCH QUEUE = 0000000
IAT5619 UNAVAILABLE QUEUE = 0000000 RESTART QUEUE = 0000000
IAT5619 WAIT VOLUME QUEUE = 0000000 VERIFY QUEUE = 0000000
IAT5619 ALLOCATION TYPE = AUTO
IAT5619 CURRENT SETUP DEPTH - ALL PROCESSORS = 0000000
IAT5619 MAIN NAME STATUS SDEPTH DASD TAPE
IAT5619 SC64 ONLINE NOTIPLD 020,000 05997,00000 00064,00000
IAT5619 SC70 ONLINE NOTIPLD 020,000 05997,00000 00064,00000
IAT5619 SC65 ONLINE IPLD 020,000 05997,00000 00064,00000
*I B command
The *I B command to displays the number of jobs backlogged for each JES3 function (DSP),
for a job class, for a job class group, for a service class, for a terminal group, or for a main or
all mains.
*I B
IAT8688 FUNCTION ACTIVE WAITING
IAT8688 CI 00000000 00000004
IAT8688 INTRDR 00000002 00000000
IAT8688 ISDRVR 00000000 00000002
IAT8688 MAIN 00000063 00000004
IAT8688 MONITOR 00000001 00000000
IAT8688 NJECONS 00000001 00000000
IAT8688 NJERDR 00000001 00000000
IAT8688 OUTSERV 00001412 00000000
IAT8688 SNARJP 00000001 00000000
IAT8688 TCP 00000001 00000000
IAT8688 WTR 00000001 00000000
IAT8619 INQUIRY ON BACKLOG COMPLETE
*I G command
Use the *I G command to obtain the status of GMS components of JES3 and to display the
name of the spool partition assigned for a specific main or all mains. A main's spool partition
contains the spool data for each job that runs on that main unless other partitions were
specifically assigned for the job's job class, SYSOUT data, or in the job's //*MAIN control
statement.
*I S command
The *I S command to display the status of jobs currently in setup, counts of jobs in various
MDS queues, the status of main processors, or the status of volumes and data sets controlled
by MDS.
*F S command
The *F S command allows to:
Make a volume unavailable for JES3 setup processing
Make a volume available for JES3 setup processing
Keep a real direct access volume mounted on a designated device. This command is also
valid for devices containing SMS-managed volumes
Unload a volume mounted on a designated device
Specify automatic or manual allocation of JES3-managed devices. This command
overrides the specification established by the ALLOCATE parameter on the SETPARAM
initialization statement.
Specify whether or not to include jobs that require only deferred mounts in the setup depth
counts (SDEPTH).
The *S S command -- If manual allocation was specified during JES3 initialization or with the
*F,S,AL=M command, the *S S command to allows a job to proceed to allocation processing.
The *S S command is not required when automatic allocation was specified during JES3
initialization or by the *F S,AL=A command.
The *R S command to returns a job to the allocation stage (after volume fetch). The
*RESTART,S command is used when a volume or device requested or needed by the job is
unavailable. Generally, the *R S command can be used to return any job in the main device
scheduling (MDS) processing to the MDS allocate queue. If a job is MVS restarting and the *R
S command is issued to restart that job, the job becomes eligible to run on any main rather
than only on the main where it was originally selected.
The *C S command to cancels a job currently being processed by main device scheduling
(MDS).
*I S
IAT5619 ALLOCATION QUEUE = 0000001 BREAKDOWN QUEUE = 0000000
IAT5619 SYSTEM SELECT QUEUE = 0000000 ERROR QUEUE = 0000000
IAT5619 SYSTEM VERIFY QUEUE = 0000000 FETCH QUEUE = 0000000
IAT5619 UNAVAILABLE QUEUE = 0000000 RESTART QUEUE = 0000000
IAT5619 WAIT VOLUME QUEUE = 0000000 VERIFY QUEUE = 0000000
IAT5619 ALLOCATION TYPE = AUTO
IAT5619 CURRENT SETUP DEPTH - ALL PROCESSORS = 0000000
IAT5619 MAIN NAME STATUS SDEPTH DASD TAPE
IAT5619 SC64 ONLINE NOTIPLD 020,000 07801,00000 00112,00000
IAT5619 SC70 ONLINE IPLD 020,000 07801,00000 00112,00000
IAT5619 SC65 ONLINE IPLD 020,000 07801,00000 00112,00000
IAT5619 DEFERCT=NO
IAT5619 SDEPZERO=WAIT
MDS commands
The *I S command to display the status of jobs currently in setup, counts of jobs in various
MDS queues, the status of main processors, or the status of volumes and data sets controlled
by MDS.
The *I S command can also be used to display information for main processors, but only if
SETUP is active in the complex. IBM suggests using the *I MAIN= command for this purpose
instead of *I S as it does not depend on SETUP and displays more comprehensive
information relevant to main processors.
DEFERCT=YES | NO
The current value of the DEFERCT option. This indicates whether or not JES3 is to include
jobs that require only deferred mounts in the CLASS/SELECT SDEPTH counts.
SDEPZERO=WAIT | ERROR
The current value of the SDEPZERO parameter. This indicates whether jobs that require a
tape mount, but are of a class that does not permit them, for example SDEPTH=0, should
wait, for example, for a class or SDEPTH change, or be treated as if in error.
Types of devices
1. Global "support" or JES3 devices -- "JUNIT"
Satisfy JES3 functions, such as DSP functions
2. "Execution" devices -- "XUNIT"
JES3 allocates devices to MVS for user job execution
Permanently resident or reserved execution devices that are
defined to JES3 and MVS are called jointly-managed
3. Global "support" and "execution" devices
These are called shared devices
Global Devices -- "JUNIT" Execution Devices -- "XUNIT"
Card Readers / Punches DASD
Tapes Tapes
Printers Printers
Main Processors
Remote Terminal Devices
Global devices
JES3 devices must be attached to the global processor. The only exception is a device driven
by an output writer functional subsystem (FSS), which you may define as a JES3 device and
attach to the global processor or a local processor. The JUNIT keyword is used to define the
device that can be used by JES3 functions such as DSPs.
Execution devices
The DEVICE statement specifies device characteristics and tells JES3 how to use that
device. The XUNIT parameter specifies the characteristics of a device attached to one or
more mains (LPARs). If a device is shared between two or more mains, all four
subparameters are specified for each main to which the device is attached. If a device is
shared between channels of the same main, the SYSGEN primary address should be the
only subparameter indicated.
Defining devices
The ways to define a device to a JES3 system are:
You can specify that JES3 is to use a device to satisfy JES3 functions, such as DSP
requests, input processing, and output processing. This is called a JES3 device (aka
support unit).
You can specify that JES3 may allocate a device to MVS to execute user jobs. This is
called an execution device.
An execution device that is defined to JES3 and MVS as permanently resident or reserved
is called a jointly-managed device.
You can specify that JES3 can use the device as either a JES3 device or as an execution
device. This is called a shared device.
JES3 devices must be attached to the global processor. The only exception is a device driven
by an output writer functional subsystem (FSS), which you may define as a JES3 device and
attach to the global processor or a local processor.
You can define as JES3 devices: main processors, network lines, printers, card punches, card
readers, remote terminals, and tape drives.
IATINTK
JESXCF
Each LPAR has a locate master task and multiple locate subtasks. The locate master task is
responsible for attaching new locate subtasks. The locate subtasks are responsible for
performing the actual locates and each subtask is represented by a locate control table
(LCT). The locate FCT maintains the locate master task and subtasks on that LPAR and is
responsible for the following activities:
Initializing new subtasks
Terminating subtasks that are no longer needed
Terminating subtasks for jobs that have been cancelled
Cleaning up subtasks that have abended
The locate FCT on each LPAR is responsible for determining when to attach and detach
locate subtasks. If the average number of waiting requests is greater than the number of
locate subtasks attached, the locate FCT attaches more subtasks if a job requires one. The
number that can be attached is one half of the difference between the average number of
waiting requests and the number of subtasks attached.
SETACC statement
Use the SETACC initialization statement to identify those mains that normally have access to
a permanently resident direct-access volume. The SETACC statement identifies the location
of a volume on the uninitialized mains in a JES3 complex. SETACC prevents JES3 from
setting up a job that needs the mounted volume until the main is initialized. When all mains
are initialized or the volume is found, the SETACC definition is no longer used and normal
JES3 management of the volume and device occurs. The devices on which the volumes
reside are defined on a DEVICE statement with an XTYPE parameter and PR subparameter.
SETPARAM statement
Use the SETPARAM initialization statement to specify parameters that the JES3 main device
scheduler (MDS) and the DYNAL DSP uses in allocation, mounting, and deallocation of
devices for jobs run on all mains. The SETNAME and DEVICE statements are used with the
SETPARAM statements. SETNAME and DEVICE identify the devices to be managed by
MDS. SETPARAM also indicates how MDS is to manage devices.
SETRES statement
The SETRES statement identifies frequently used direct-access volumes which are not
permanently resident. The SETRES statement specifies volumes which may be on devices at
main initialization time. When a specified volume is found to be present on an MDS-managed,
removable, direct-access device during main initialization, the volume is considered mounted
by MDS, without a MOUNT command being necessary.
DYNALDSN statement
Use the DYNALDSN statement to specify which data sets on permanently resident or
reserved DASD volumes require data set awareness protection when the data set is
dynamically allocated.
Execution devices
To define an execution device, specify the XTYPE and XUNIT parameters on the DEVICE
statement. When any execution device is initialized, JES3 varies the device online or offline to
MVS as well as to JES3 based on the XUNIT parameter specification. You can attach
execution devices to the global processor or to any local processor.
DTYPE parameter
The DTYPE parameter specifies a device type being defined to JES3:
SYSMAIN This type DEVICE statement defines the initial status for a main.
XTYPE parameter
The XTYPE=(name,devtype) parameter on a DEVICE statement specifies the characteristics
of the JES3-managed or jointly managed device as it is used by jobs in execution. It must
precede the XUNIT parameter, which is required if XTYPE is specified.
The name subparameter of the XTYPE parameter specifies a 1- to 8-character name that
defines a device that can be referenced. It should match the name specified in the XTYPE
parameter on a SETNAME initialization statement.
Note: Devices within a specific XTYPE should have compatible characteristics. For a
SNA-attached AFP printer, XTYPE is not a valid parameter.
XUNIT parameter
The XUNIT=(/devnums,main,msgdest,ON|OFF,....) parameter on a DEVICE statement
specifies the characteristics of a device attached to one or more mains. If a device is shared
between two or more mains, all four subparameters are to be specified for each main to which
the device is attached unless the *ALL main name is used. complex. When *ALL is used, no
other group of devnum,main,msgdest,OFF|ON can be used on the XUNIT parameter of this
DEVICE initialization statement, and the values specified for devnum,main,msgdest,OFF|ON
are the same for all mains.
MULTISYSTEM ASSIGN
A tape drive assigned to more than one processor is called multisystem assigned. JES3 uses
multisystem assign when it brings tape drives online. Thus all tape drives can be
simultaneously online to all mains in the JES3 complex. MDS keeps complex wide track of the
defined tape drives’ allocation status and lets only those jobs go to execution that have all
tape allocation requested satisfied. If a job’s all allocated tape drives have connectivity to
several mains in the JES3 complex, the job can be sent to execution to any of these
processors.
Note: The MVS automatic tape switching (ATS) implements the tape sharing within a
sysplex without using multisystem assign. When a tape device is defined as automatically
switchable, the device must be in a offline state. The VARY device,AUTOSWITCH,ON
operator command marks a tape device autoswitchable. The device (UCB) is set online,
but it is not assigned. The device will be assigned during MVS allocation for the system
where a job requests tape drives. When the job unallocates the tape drives, MVS
unassigns the devices.
The JES3 data set awareness processing is based on the SETVOL/SETDSN table structure
and the serialization is by data set name on a volume. Since MVS and JES3 data set
awareness processing are using different convention for serialization, JES3 may allow a job,
allocating a data set with a specific volume request, to go to MVS execution when a data set
name is already serialized in the MVS terms.
MVS serialization
In a sysplex MVS serializes sysplex wide (ENQ scope SYSTEMS) the access to data sets.
During a job’s first step initialization MVS allocation serializes access to all data sets
referenced by the job. If the a data set is allocated with DISP=SHR, the serialization is for
shared access, otherwise (DISP=OLD/MOD/NEW) the access is exclusive. The MVS data set
serialization is by data set name only.
Device Numbers 131 132 133 134 181 182 183 184 191 192 193 194 195
Subgeneric Groups
1 2 3 2 4 5
If you make a mistake, JES3 will tolerate the error and initialize (if there are no other errors
with higher impact); however, you should correct the error and perform a hot start with refresh
at your earliest convenience.
An eligible device table (EDT) is an installation-defined and named representation of the I/O
devices that are eligible for allocation. Using HCD, you define EDT information in an IODF. At
IPL or dynamic configuration, information in the IODF and UIMs is used to build the EDT.
To request allocation of a device from an esoteric device group, specify the esoteric name on
the UNIT= parameter of a JCL DD statement. (In JCL terminology, an esoteric name is called
a group name.)
Subgeneric groups
MVS allocation divides generic device types into subgeneric groups. The subgeneric groups
allows MVS allocation to serialize a subset of units within a generic name. For example, using
the figure, if 3390A is requested, MVS allocation needs to serialize only subgeneric group 5
rather than all 3390 devices. As a result, more than one allocation can process the same
generic device type, as long as the allocations require different subgeneric groups within that
generic.
If one unit of a subgeneric group is defined to JES3, all units of the subgeneric group must be
defined to JES3. (For subgeneric group 2 in the visual, if unit 183 is assigned to JES3, units
181 and 184 must also be assigned to JES3.) Thus, a subgeneric group cannot have
system-managed devices mixed with JES3-managed and jointly managed devices.
* 3490 -- Tape
DEVICE,DTYPE=TA33490,JNAME=TAPE,JUNIT=(131,*ALL,S1,OFF),NUMDEV=4,
XTYPE=(D13490,CA),XUNIT=(131,*ALL,S1,ON)
SETNAME,XTYPE=D13490,NAMES=(3480)
* 3380 SYSDA -- DASD
DEVICE,XTYPE=(D23380,DA,PR),XUNIT=(181,*ALL,S1,ON)
DEVICE,XTYPE=(D23380,DA,PR),XUNIT=(183,*ALL,S1,ON),NUMDEV=2
* 3380 -- DASD
DEVICE,XTYPE=(D33380,DA,PR),XUNIT=(182,*ALL,S1,ON)
* 3390 SYSDA -- DASD
DEVICE,XTYPE=(D43390,DA,PR),XUNIT=(191,*ALL,S1,ON),NUMDEV=2
* 3390 SYSDA 3390A -- DASD
DEVICE,XTYPE=(D53390,DA,PR),XUNIT=(193,*ALL,S1,ON),NUMDEV=3
SETNAME,XTYPE=D23380,NAMES=(3380,SYSDA)
SETNAME,XTYPE=D33380,NAMES=(3380)
SETNAME,XTYPE=D43390,NAMES=(3390,SYSDA)
SETNAME,XTYPE=D53390,NAMES=(3390,SYSDA,3390A)
Device Numbers 131 132 133 134 181 182 183 184 191 192 193 194 195
Subgeneric Groups 1 2 3 2 4 5
XTYPE parameter
In the sample, the two first characters of the XTYPE name are used to refer to subgeneric
groups. For example, the XTYPE name for tape units is D13490, where the two first
characters (D1) are used to reference subgeneric group 1 on the visual and for the rest of
name is used the generic device type.
Where:
name - specifies a name that defines a device that can be referenced. It should match the
name specified in the XTYPE parameter on a SETNAME initialization statement.
type:
• CA Specifies that the device is cartridge tape.
• TA Specifies that the device is reel tape.
• GR Specifies that the device is graphic.
• DA Specifies that the device is direct access.
• UR Specifies that the device is unit record.
RM - Specifies that the device will contain removable volumes whose mounting is to be
controlled by MDS.
PR - Specifies that the device will contain MVS permanently resident volumes.
XUNIT= ( /devnum,*ALL,msgdest,ON|OFF)
JUNIT= ( /devnum,*ALL,msgdest,ON|OFF)
*ALL defines a device to all main processors
Definition within XUNIT and JUNIT parameters
No change to DEVICE statements when MAINPROCs
are added
DEVICE,DTYPE=SYSMAIN can specify
JUNIT=(NONE,*ALL,,ON)
Can be omitted to get this definition as a default
MAINPROC is still required
Specifying *ALL
Using *ALL on a device is particularly useful if you will be adding MAINPROCs later, as you
do not need to add the new main name to any DEVICE statement that uses *ALL. The
following rules apply when using *ALL:
Mixing *ALL and system names within the same JUNIT or XUNIT is not allowed.
*ALL must appear only once within the same JUNIT or XUNIT.
If *ALL is used on the JUNIT and the device has both a JUNIT and an XUNIT, *ALL also
must be used on the XUNIT. If *ALL is used on the XUNIT, the JUNIT can list processors,
but the use of *ALL on the JUNIT is suggested.
When NUMDEV is used, the JNAME parameter specifies a prefix rather than a complete
JNAME. A four digit device number is built based on the JUNIT and NUMDEV and
concatenated with the prefix to form a complete JNAME. For example, if the JUNIT is 140, the
specified JNAME is LINE, and NUMDEV=32, the statement will define 32 JNAMEs,
LINE0140 through LINE015F.
If the JUNIT combines mains with different device numbers (for example,
JUNIT=(140,SY1,,ON,8C0,SY2,,ON), the first specification is used to build the JNAMEs (140
is this case).
If the JUNIT combines mains with device numbers and NONE (for example,
JUNIT=(NONE,SY1,,ON,8C0,SY2,,ON), the first group with an actual device number is used
to build the JNAMEs (8C0 in this case).
Note: The NUMDEV parameter requires at least one JUNIT or XUNIT with a device
number. For example, NUMDEV is not valid on a DTYPE=SYSMAIN or a VTAM-attached
FSS printer.
If the JUNIT combines mains with different device numbers, for example,
JUNIT=(3A0,SY1,,ON,9C0,SY2,,ON), the first specification is used to build the JNAMEs (3A0
in this case).
If the JUNIT combines mains with device numbers and NONE, for example,
JUNIT=(NONE,SY1,,ON,9C0,SY2,,ON), the first group with an actual device number is used
to build the JNAMEs (9C0 in this case).
Since the JUNIT part of the JNAME is padded with 0's if it is a three digit device, be careful to
use the correct JNAME if you reference a JNAME on any other initialization statement (for
example, FSSDEF or SYSOUT).
NUMDEV rules
When using NUMDEV for a global device, the JNAME specifies a prefix. JES3 combines the
prefix with each JUNIT in the requested range as a four digit device number to construct
JNAMEs for all devices defined by this statement. In the following example, the JNAMEs for
the printers defined by the statement are AFPP0803, AFPP0804, AFPP0805, AFPP0806,
and AFPP0807. The prefix cannot exceed four characters.
DEVICE,DTYPE=PRTAFP1,JNAME=AFPP,FSSNAME=FSSAFP1,
JUNIT=(803,SY1,S1,OFF,803,SY2,S2,ON),XTYPE=(PRTAFP1,UR),
XUNIT=(803,SY1,S1,OFF,803,SY2,S2,OFF),WS=(D),
DGROUP=ARM1,PM=(LINE,PAGE),MODE=FSS,NUMDEV=5
NUMDEV cannot be zero, and cannot cause the range to exceed FFFF. If NUMDEV is 1, the
JNAME specifies a prefix just as it does for larger values.
If you define an FSS managed printer without using the FSSNAME= parameter, the FSS
name is the same as the constructed JNAME. If you use the FSSNAME= parameter, the FSS
name is the specified FSSNAME.
If a JNAME of a device defined using the NUMDEV statement is referenced anywhere else in
the initialization stream (for example, on the DEST= keyword of a SYSOUT statetement)
make sure that the referenced name is the same as the constructed name.
At least one XUNIT or channel attached JUNIT is required. For example, NUMDEV cannot be
used on a DEVICE statement for a 3820 printer. JNAME cannot be specified if JUNIT is not
specified.
If the device is defined with different device numbers on different processors, each processor
gets a range of the same number of devices starting with the specified unit. The unit used to
build the JNAME is the first channel attached unit that appears in the JUNIT parameter.
SUPUNITS table
The SUPUNITS table (IATYSUP) is created for JES3 devices (DTYPE, JNAME, and JUNIT
parameters on the DEVICE statement) and provides information on the current JES3 status
of the global devices.
The SUPUNITS table entries identify the devices that are allocated to the JES3 global. These
devices are used by JES3's support services (i.e. ‘readers, printers, tape units, RJP lines and
networking lines).
The SUPUNITs table is initialized only on the global main and contains entries for each
defined JES3 device that names the current global processor in the JUNIT specification.
Separate entries exist for the same device when it is shared by two or more mains.
SETUNIT tables
The SETUNITS tables (IATYSET) contains an entry for each JES3 managed devices
attached to a main. Each defined main has its own SETUNITS table. The SETUNIT table
contains information representing device status on a particular main processor. The status
information includes the RQ address of the job using the device.
The SETUNITS table is generated to contain control information for all devices attached to a
main that can be set up by MDS from the global main. The data for the table originates from
the XUNIT and XTYPE parameters of the DEVICE initialization statement.
The information kept in the SETVOL table entry includes pointers to the SETDSN table.
SETDSN table is created to represent all data sets allocated to volumes. It is used in
conjunction with the SETVOL table to ascertain when a volume is no longer in use.
SETDSN table entries (IATYDSN) are used by MDS to control the serialization and
shareability of a particular data set.
SETNAMES table
The SETNAMES table (IATYNAM) correlates the device types specified by the JCL UNIT
parameter and the devices satisfying that designation.
The SETNAMES table is generated from parameters on the SETNAME statements. The data
is used to identify a name than can be used in the UNIT parameter of a DD statement for a
device represented in a DEVICE initialization statement.
SETNAME,XTYPE=devicetype,NAMES=(name,...)
SETNAME,XTYPE=devicetype,POOLNAMS=(pool,...)
XTYPE= indicates a name which matches the name in the
XTYPE parameter on a DEVICE statement
NAMES= identifies all names (generic&esoteric) used to refer
to the device defined in the associated DEVICE statement
POOLNAMS= specifies name(s) that dedicated only for
devices used to job class groups or dependent job control jobs
JES3 manages request
If unitname via UNIT = appears on SETNAME
If a DD request is to be handled by JES3, the value (excluding the specific device number)
specified in the UNIT parameter of the DD statement must also be specified in the NAMES
parameter of the SETNAME statement. If the request specifies a device number in the UNIT
parameter, the device number must also be specified in the XUNIT parameter of the DEVICE
statement.
Note: The MVS device generic names must be included data sets are to be allocated
using cataloged information. This even though direct reference to the devices using the
generic names are not made in the UNIT parameter of allocating DD statements.
There must be a SETNAME statement for the IBM generated esoteric names SYSALLDA,
SYS3480R, and SYS348XR in the initialization deck if these values are to be coded or
defaulted for allocations which are to be JES3 manages.
If a dynamic allocation is made for a time-sharing user and a UNIT parameter is not
included in the DD statement, the UNIT parameter is obtained from the time-sharing user
attribute data set (UADS). If the UADS does not contain a UNIT parameter, or if the user is
not a time-sharing user, an MVS default of SYSALLDA (that is, all direct access devices) is
assumed.
It is recommended that a default UNIT parameter value be defined in the UADS or RACF
user profile’s TSO segment, in the ALLOCxx parmlib member, and that all dynamic
allocations specify a UNIT parameter. Otherwise, if JES3 is to manage the dynamic
allocations that do not have a UNIT parameter, the MVS default UNIT value (SYSALLDA)
must be included in SETNAMES for all DA device types.
JCL example
The JCL DD statement in the figure requests UNIT=SYSDA. This UNIT=SYSDA must then
appear on a SETNAME statement in the initialization stream. The SETNAME statements that
have this UNIT= have a corresponding XTYPE that will indicate which devices are eligible to
satisfy the DD request.
In other words, if a DD request is to be handled by JES3, the value (excluding the specific
device number) specified in the UNIT parameter of the DD statement must also be specified
in the NAMES parameter of the SETNAME statement. If the request specifies a device
number in the UNIT parameter, the device number must also be specified in the XUNIT
parameter of the DEVICE statement.
HWSNAME,TYPE= (devname,altnam....)
devnames and altnames specified on HWSNAME statement
must be defined on the SETNAME statement
devname identifies a device type for high watermark setup
devname - any generic or esoteric name associated with the
specified unit name(s).
altnam specifies a list of generic or esoteric device names
altnam lists alternate units to be used in device selection
Order of the altnam names is the allocation attempt order
When a device is selected, altnam search ends
HWSNAME,TYPE=(SYS3480R,SYS348XR,3490)
//STPA EXEC PGM=IEFBR14
//DDA1 DD DSN=A,UNIT=SYS3480R,VOL=SER=V1,DISP=OLD
//STPB EXEC PGM=IEFBR14
//DDB1 DD DSN=B,UNIT=3490,VOL=SER=V2,DISP=OLD
The same tape drive allocated to DDA1 step STPA and DDB1 step STPB
TYPE= specifies the name(s) of a device type that is valid for high watermark setup.
devname Specifies any user-supplied or IBM-supplied group name associated with
the specified unit name(s). The identifies a device type valid for high
watermark setup.
altnam Specifies a list of valid user-supplied or IBM-supplied device names. These
are alternate units to be used in device selection. The order of these names
is the order in which allocation is attempted; when a device is selected, no
search for a later alternate is made.
HWS benefits
High watermark setup, as defined on the HWSNAME initialization statement, reduces the
number of devices JES3 reserves for a job. To determine how many devices of a particular
type to reserve for a job, JES3 considers the needs of each of the job's steps. In this way,
JES3 determines which step needs the greatest number of devices of that type; JES3 then
reserves that many devices of that type for the job. JES3 repeats this process for each device
type the job needs. As a result, high watermark setup can cause premounting of all
mountable volumes. Volume unloading and remounting may occur for both private and public
volumes, even when RETAIN has been specified on the applicable DD statement.
When high watermark setup is used, as in job setup, devices, volumes, and data sets are
returned to JES3 for use by other jobs as soon as the DD statement is deallocated in the last
step using the resources. When it is advantageous to use fewer devices for a job, high
watermark setup is preferable to job setup.
Cataloged data sets may reference devices that are valid for use during HWS. You define
these devices using the HWSNAME initialization statement. If a cataloged data set
references a device that has been removed as a HWS device (that is, the device has been
removed from the HWSNAME initialization statement), that data set is no longer eligible for
HWS processing.
STANDARDS,....
,SETUP = NONE | JOB | DHWS | THWS | HWS,..
- SETUP= Specifies the type of setup processing
- Provides default for SETUP parameter on //*MAIN JECL
- SETUP = NONE - No Main Device Scheduling
SETPARAM,....
,FETCH = NO | YES
,TAFETCH = (S1,S1)
,ALLOCATE = MANUAL | AUTO
,ADDRSORT= YES | NO
,MTJESMSG= FETCH | ALLOC | BREAKDWN | ALL | NONE
,PRJESMSG= FETCH | ALLOC | ALL | NONE
,REMOUNT= nnn
The SETPARAM initialization statement specifies parameters that the JES3 main device
scheduler (MDS) and the DYNAL DSP uses in allocation, mounting, and deallocation of
devices for jobs run on all mains. The SETNAME and DEVICE statements are used with the
SETPARAM statements. SETNAME and DEVICE identify the devices to be managed by
MDS. SETPARAM also indicates how MDS is to manage devices.
TAFETCH specifies the routing information for tape volume fetch messages. The first operand
specifies the routing information for specific (nonscratch) volume requests. The second
operand specifies the routing information for scratch volume requests. S1 indicates that
volume fetch messages are to be issued with routing code 97; messages also are recorded
on the hard-copy log. Note that this parameter is ignored if FETCH=NO is also specified. 97 is
the routing code equivalent of JES3 Dest Class S1.
ALLOCATE parameter
The ALLOCATE=MANUAL|AUTO keyword specifies whether or not automatic allocation of a
job is to immediately follow MDS volume fetch. This parameter is ignored for jobs that
reference only premounted volumes. The FETCH parameter specified may override the
ALLOCATE parameter.
MANUAL Indicates that all jobs are to be suspended following volume fetch until the
operator causes them to continue. Note that ALLOCATE=MANUAL is ignored if
FETCH=NO is indicated; ALLOCATE=AUTO is assumed instead.
AUTO Specifies that MDS will automatically attempt allocation of resources for all
eligible jobs. If a job requires SMS-managed resources and you specify
ALLOCATE=AUTO, MDS sends the job through the system select phase before
allocation to determine which mains have access to the required
ADDRSORT parameter
ADDRSORT specifies the order in which JES3 MDS allocates devices.
NO Indicates that devices within a device type are to be allocated in the same order as
the DEVICE statements are placed in the initialization stream.
YES Indicates that devices within a device type are to be allocated by the order of their
device numbers, that is, 188, 189, 18A.
MTJESMSG parameter
MTJESMSG specifies whether you want FETCH, ALLOCATION, and BREAKDOWN
messages for mountable devices to appear in the JESMSGLG data set.
FETCH Specifies that you want fetch messages for mountable devices written into the
JESMSGLG data set.
ALLOC Specifies that you want allocation messages for mountable devices written into
the JESMSGLG data set.
BREAKDWN Specifies that you want breakdown messages for mountable devices written
into the JESMSGLG data set.
ALL Specifies that you want fetch, allocation, and breakdown messages for
mountable devices written into the JESMSGLG data set.
NONE Specifies that you do not want fetch, allocation, or breakdown messages for
mountable devices written into the JESMSGLG data set.
PRJESMSG parameter
PRJESMSG specifies whether you want FETCH and ALLOCATION messages for
permanently resident or reserved DASD to appear in the JESMSGLG data set.
FETCH Specifies that you want fetch messages for permanently resident or reserved
DASD written into the JESMSGLG data set.
ALLOC Specifies that you want allocation messages for permanently resident or
reserved DASD written into the JESMSGLG data set. If this value is specified,
an allocation message will be written for all non-mountable requests in addition
to permanently resident DASD.
ALL Specifies that you want both fetch and allocation messages for permanently
resident or reserved DASD and allocation messages for all other devices
written into the JESMSGLG data set.
REMOUNT parameter
REMOUNT parameter specifies the number of times that an operator can retry to correct
volume mount errors for a job before the devices for the job are released and allocation is
restarted. The value of nnn specifies the number of retries allowed, from 0 to 255. For
example, if REMOUNT=1 is specified, the operator can make two attempts to mount the
volume--the original mount request and one retry request.
STANDARDS,....,SETUP = JOB|THWS
JOB VOLSERs SETUP = JOB - 7 Tape Drives
STEP1 TAP001
2 tapes TAP002 SETUP = THWS - 3 Tape Drives
STEP2
TAP003
1 tapes
STEP3 TAP004
3 tapes TAP005
TAP006
STEP4
TAP007 TAPE TAPE TAPE TAPE TAPE
1 tapes
1 2 3 4 5
JOB IAT5800 JOB JOB (JOBnnnnn) PLACED ON MDS ERROR QUEUE BY FETCH
Using SETUP=THWS, the same job would only need 3 tape units to execute the job. This is
because the maximum number of units in any of the steps is 3. What is also true, is that the
unit types must all be the same in this example.
When the job ends, the release of the still allocated tape units is done by MDS breakdown.
SETPARAM,ALLOCATE = MANUAL|AUTO
MANUAL mode
Allows for tapes to arrive from "Manual Tape Library"
"*S S jobno" command required to allow a job to
proceed to allocation processing.
AUTO mode
MDS automatically attempts allocation
*F,S,AL=A | M command
Change allocation mode
*F S, VU= T-|D-volser | VA = T-|D-volser
Make tape (T) or disk (D) volume unavailable or
available
The message indicates the action required, volume type, volume serial number, tape label
type, and data set name for the volume referenced by the specified job.
GET The volume that will be required by this job, but is currently not in use.
UNAV The volume has been made unavailable by the operator.
USES The volume that was previously fetched and has not yet been returned to the library.
If a volume is not found, it can be placed in an unavailable status. Use the *F S command to:
Make a volume unavailable for JES3 setup processing
Make a volume available for JES3 setup processing
The commands in the visual specify either tape (T) or disk (D) volumes that are to be made
unavailable. The designated volumes remain unavailable until a *F S,VA= command is issued.
Volume mounting
For main device scheduler requests, MDS verifies the mounting of the initial volumes a job
requires on each device before the job can be selected for execution (unless deferred volume
mounting is specified in the JCL).
Mount messages
IAT5200 JOB JOB1 JOB00004 (JOB1) IN SETUP ON MAIN = SY1
The indicated job has allocated devices on the specified main
*IAT5210 JOB JOB1(JOB00004) MOUNT T-123456 ON 180 ,SL,NORING
This message indicates that a volume is required and/or that a device has been
allocated
Display outstanding MOUNT messages - MVS D R command
D R,L,CN=(ALL) - All messages
D R,I,KEY=MOUNT,JOB=jobname - A single job
D R,KEY - Messages with KEY names
MDS detected mount error
IAT5310 dev description -- IAT5310 180 NO RESPONSE
*S J = jobno,V - Force MDS to re-verify
If same response - IAT5310 dev description
*V dev,OFF,main
*R S,jobno - Places job on allocate queue
Message IAT5210 indicates that a volume is required and/or that a device has been allocated.
The ddname rather than the job name may appear in the JESMSGLG.
Mount failures
If MDS has detected an error on a device during the mounting of a volume previously
requested in message IAT5210, message IAT5310 is issued.
By issuing the *F S,J=jobno,V command, MDS tries again to verify what the operator
mounted. If this fails, the tape unit should be varied offline on all systems that share the
device.
*I,D command response displays the verify status in the IAT8572 message and indicates the
results of the last volume verification. It may be one of the following:
VERIFIED The volume has completed MDS verification.
MOUNTED The volume is mounted on the indicated device.
NOT RDY The device is not ready.
NO RESP No response has been received from MDS verify on the local.
I/O ERR A permanent I/O error has occurred on the indicated device.
VOLID ERR An error was encountered reading the volume label.
ALLOCATED The device is allocated.
DUP VOL The indicated volume serial number is in use on another device.
OFFLINE The device is offline but contains a permanently resident volume.
INIT COMP The initial MDS verifies are complete ((that is), restart is complete).
NOT OPR The device is not operational.
EXPD ERR The expiration date has not yet been reached.
LOAD CHK Aload check error has occurred.
TIMEOUT An execute channel program has timed-out.
NO DEVICE There is no unit control block (UCB) for the indicated device.
GRP The device is dedicated to a job class group.
NET The device is dedicated to a DJC job network.
name The name of the job class group or DJC network ID to which the device is
currently dedicated.
*I D,D=3E30
IAT8572 3E30 (AV ) SC64 NW3E30,JES=P,OS=P
IAT8572 3E30 (AV ) SC70 NW3E30,JES=P,OS=P MOUNTED
IAT8572 3E30 (AV ) SC65 NW3E30,JES=P,OS=P MOUNTED
IAT8500 INQUIRY ON DEVICES COMPLETE
*I D,V=NW3E30
IAT8572 3E30 (AV ) SC64 NW3E30,JES=P,OS=P
IAT8572 3E30 (AV ) SC70 NW3E30,JES=P,OS=P MOUNTED
IAT8572 3E30 (AV ) SC65 NW3E30,JES=P,OS=P MOUNTED
IAT8500 INQUIRY ON DEVICES COMPLETE
*I D,D=3E30,S
IAT8572 3E30 (AV ) SC65 NW3E30,JES=P,OS=P MOUNTED
*I D,D=SC65
IAT8562 SC65 IS THE GLOBAL
IAT8500 INQUIRY ON DEVICES COMPLETE
*I D,D=SC70
IAT8562 SC70 IS A LOCAL
IAT8500 INQUIRY ON DEVICES COMPLETE
The first command on the visual uses a know device address. The second command uses a
volume serial number as possibly the device address is not know by the operator.
The SHORT or S option of *I D D= display gives the status of a device on a specified main.
The fourth and fifth commands are used to display the role (global or local) of a main.
Device status
The device status in the visual (AV) indicates the device is available. Other possible device
status conditions are as follows:
AC - the device is in use by a setup job. (XUNIT status)
ACO - the device is in use but has been varied offline to JES3. (XUNIT status)
AC - the device is in use but is pending offline
RS - the device is reserved by a setup job above a setup barrier. (XUNIT status)
RSO - the device is reserved but has been varied offline to JES3. (XUNIT status)
AV - the device is online and not in use. (XUNIT status)
AVU - the device is online and not in use, but it is in the process of being unloaded.
OFF - the device is offline to JES3. (XUNIT status)
OFN - the device is offline because there are no paths available
ACN - the device is allocated and is offline because there are no paths available
During fetch processing, JES3 builds volume entries and issues messages for volumes that
have no entries in the SETVOL table which contains the volume serial number for each
reference to a device managed by MDS.
As the fetch routine scans the JST entries, it builds a SETVOL table entry for each of the
volumes required by the job. For SMS-managed data sets, JES3 is not concerned with and
does not know about the volumes where the data sets reside. However, the fetch routine still
creates a dummy SETVOL table entry since MDS is responsible for complex wide data set
awareness. The fetch routine creates the SETVOL entry using a dummy volser. This allows
the SMS-managed data sets to be distributed over a number of SETVOL entries. If a volume
is not mounted, the fetch routine issues a fetch message to the operator.
Volume fetch messages are selected optionally by specifying FETCH=YES on the JES3
SETPARAM initialization statement. When you select the fetch option, JES3 issues volume
fetch messages to indicate which volumes are required for specific jobs to execute. JES3
sends fetch messages to the console specified by the TAFETCH (for tape volumes) and
DAFETCH (for direct-access volumes) parameters on the SETPARAM initialization
statement. Volumes already mounted require no fetch processing, and volumes that have
been fetched but not mounted get action-coded messages.
MDS allocation
The allocation phase of MDS uses allocation algorithms to provide required devices. When
allocation is successful, JES3 issues mount request messages for all required volumes
except:
Deferred mount requests - where no mount is as yet requested but the device that the
volume is to be mounted on is allocated to the user.
Permanently resident volumes - where the mount is unnecessary
Multi-volume mount - where only the first volume of a multi-volume data set is mounted;
secondary volumes are not mounted until required.
During the volume verification JES3 issues messages that instruct you to mount a job's
required volumes.
JES3 does not perform data set awareness processing for resident data sets. Therefore, do
not specify SMS-managed data sets as resident data sets unless the data set can be
accessed from only one processor or unless the user provides data set awareness. MVS
provides data set integrity when a resident data set can be accessed from only one
processor.
The *V command to makes JES3, and JES3-managed devices available or unavailable for
JES3 scheduling. These devices include RJP lines, devices at BSC RJP or SNA RJP
workstations, logical senders used by JES3 networking, and mains.
Use the *V command to vary SMS-managed devices online or offline to any processor in the
JES3 complex.
When varying a JES3-managed execution device online or offline to JES3 on a main, JES3
attempts also to vary the device online or offline to MVS. JES3 varies a device offline only if
the device is not allocated. If you want the MVS status to differ from the JES3 status, you then
must enter the MVS VARY command to change the MVS online/offline status of the device
(after JES3 initialization or a JES3 *V). You should not, however, vary an online
JES3-managed device offline to MVS.
Note: When varying a 3480 or 3490 tape device online or offline to JES3 as a
JES3-managed device or a JES3 device, JES3 varies the device online or offline to MVS.
JES3 also performs an ASSIGN (online) or UNASSIGN (offline). The device remains
online and assigned to MVS only if it is online as a JES3 device or as a JES3-managed
device. A device path must be online before the operator or JES3 can vary the
corresponding device online to JES3 or MVS.
MVS does not begin the allocation process until the integrity of all the data sets in the job has
been enforced. When integrity has been established, MVS then begins allocating the
resources needed for the job, one step at a time. MVS provides integrity for data sets within a
single MVS system or across multiple MVS systems in a sysplex.
If a job requests a data set through a DD statement, JES3 enforces data set awareness
before scheduling the job for execution. For dynamically requested data sets, JES3 enforces
data set awareness at the time of the request.
To ensure data set integrity, JES3 denies a job's request for a data set if:
The request is for non-shared access to an allocated data set
The request is for shared access to a data set that is allocated non-shared
An automated tape library dataserver (ATLDS) consists of tape drives, tape cartridges, a tape
cartridge storage area, input and output stations for inserting and removing cartridges, and a
mechanism for moving tape cartridges among these areas. The volumes within an automated
tape library are known as library-resident tape volumes. Tape volumes can also be located on
shelves outside the automated tape library. These volumes are known as shelf-resident tape
volumes.
Tape cartridges are stored and retrieved by an automated cartridge accessor. The cartridges
are placed in an input station by the tape library operator. The cartridge accessor then scans
the external volume label on the cartridge, carries the cartridge to the appropriate storage
location, and places it into the library. When a volume mount is requested, the cartridge
accessor retrieves the cartridge from the storage location, carries it to the requested drive,
and mounts the cartridge in the drive. Upon completion of the tape operation, the tape
cartridge is unloaded, the accessor retrieves it from the drive, and returns it to a storage
location in the library.
However, the tape library operator can continue library operation during periods when the
cartridge accessor is not operational. During this time the operator responds to commands
displayed on the manual mode console. This is known as manual mode operation.
JES3 supports the definition and usage of one or more IBM 3494/3495 tape library data
servers within a JES3 complex. The tape drives within a given library are subsetted into
library device groups (LDGs) based upon the device type. JES3 uses specific esoteric names
to direct tape allocations to devices within the correct library when the tape resides in a
library, and to drives outside of a library when the tape is not resident within a library.
The esoteric names for devices comprising a LDG are conveyed to JES3 through the
SETNAME initialization statement. These esoteric names, in conjunction with the SETNAME
statement, allow JES3 to associate the devices to a device group, the device groups to a
library, and the libraries to a JES3 complex.
Neither JES3 nor DFSMS verifies that a complete and accurate set of initialization statements
are defined to the system. A 3495 definition that is either incomplete or inaccurate may result
in jobs failing allocation or other unpredictable results.
Before defining the devices within a library to JES3, they must be properly defined to MVS
using the hardware configuration definition (HCD) program. Unlike a JES2 environment, a
JES3 operating environment requires the specification of esoteric unit names for the devices
within a library. These unit names will be used in the required JES3 initialization statements.
Each device within a library must have exactly four (4) special esoteric names associated with
it. These are:
1. The complex-wide name, this is always: "LDGW3495."
2. The library-specific name, this is an 8-character string composed of "LDG" prefixing the
5-digit library identification number.
3. The complex-wide device type.
4. A library-specific device type name, which consists of the 5-digit library device number
prefixed by a 3-character device type identifier.
These esoteric names should be defined and the input for the JES3 initialization stream
checker obtained before making changes to the JES3 initialization stream.
Notes:
1. IBM TotalStorage Tape System 3590 Models E1x/H1x
2. z/OS DFSMS Software Support for IBM System Storage TS1120 Tape Drive (3592)
There is a different nomenclature for encrypted versus unencrypted for the 3592. LDLnnnnn
indicates encrypted, LDKnnnnn indicated unencrypted (see APAR II14350).
MVS UNITNAMEs
MVS UNITNAMEs must be defined for all 3495 library device groups. The visual shows the
UNITNAMEs defined for the library device groups in the configuration example. Note the
following:
The complex-wide name, LDGW3495, includes all devices in all libraries.
The library-specific names, LDG123DE and LDG345DF, include devices from their
respective libraries.
The complex-wide device type names, LDG3490 or LDG3490E, include all devices of the
same type, in all libraries.
The library-specific device type names, LDD345DF, LDE123DF, and LDE123DE include
all devices of the same type within their respective libraries.
In order for JES3 to manage SMS managed mountable requests for the ATLDS devices, the
ATLDS specific unit names has to be added to the JES3 initialization stream (SETNAME and
HWSNAME statements).
The DFSMS module IFG0JES3 uses the LDxccccc unit names when it provides library device
unit type conversion for JES3. JES3 uses IFGXATL macro to invokes IFG0JES3 module
services.
The grouping of library devices into XTYPE groups is the same process for all other JES3
managed devices. The XTYPE groups are determined by the special esoteric names
assigned during the HCD processing and associating the esoteric name to a device group.
The following guidelines will ensure correct generation of the SETNAME statements:
There are always four esoteric names in the NAMES= list. These names are the special
esoteric names that are used to identify library resident devices.
There can never be esoteric names pertaining to different device types in the same list.
There can never be two esoteric names for 3490, 3490E or 3590 device identifiers in the
same list.
There must be a LDEnnnnn value and vice versa if an LDG3490E exists. This is true for
LDG3490 and LDDnnnnn, and LDG3591 and LDBnnnnn also.
*-----LIBRARY TAPES-----
DEVICE,XTYPE=(D23490,CA),XUNIT=(0230,*ALL,S1,OFF),NUMDEV=32
DEVICE,XTYPE=(D13490,CA),XUNIT=(0330,*ALL,S1,OFF),NUMDEV=16
DEVICE,XTYPE=(D33490,CA),XUNIT=(0340,*ALL,S1,OFF),NUMDEV=16
* -----SETNAMES TAPE-----
SETNAME,XTYPE=D13490,NAMES=(LDGW3395,LDG345DF,LDG3490,LDD345DF)
SETNAME,XTYPE=D23490,NAMES=(LDGW3495,LDG123DE,LDG3490E,LDE123DE)
SETNAME,XTYPE=D33490,NAMES=(LDGW3495,LDG345DF,LDG3490E,LDE345DF)
Complex Library Complex Library
Wide Specific Wide Specific
Library Library Device Device
Name Name Name Name
The grouping of library devices into XTYPE groups is the same process for all other JES3
managed devices. The XTYPE groups are determined by the special esoteric names
assigned during the HCD processing and associating the esoteric name to a device group.
SETNAME statements for the two libraries are shown in the visual. Note the following
specifications:
Three XTYPEs are required because of different unit names used for 3490E devices in the
two libraries.
Ordinary esoteric or generic unit names such as 3480, 3480X, 3490, SYS3480R and
SYS348XR, are not specified.
Installation specific esoteric names such as TAPE or CART are also not used to describe
the library devices.
Note: Your library ID number is printed just below the logo plate of the 3495, on the side
containing the convenience I/O station.
Library ID:12853
3590 3490E
510-513 520-521
VTS virtual drives: 5A0-5BF, Library ID:60286
You can reduce the number of tape cartridges, devices, and automated tape libraries by
implementing an IBM TotalStorage® Virtual Tape Server (VTS) or an IBM TotalStorage
Peer-to-Peer Virtual Tape Server (PtP VTS). This virtual tape subsystem consists of virtual
tape devices, virtual tape volumes, tape volume cache (DASD), and hierarchical storage
management software.
The PtP VTS addresses data availability, system availability, remote copy, and data vaulting
needs by coupling together two stand-alone VTSs.
From a host perspective, the virtual system looks like multiple 3490E control units, each with
16 tape devices. Each emulated device is called a virtual tape device. The virtual system
handles all 3490 tape commands. Each virtual device has the following attributes:
Has a host device address
Is included in the I/O generation for the system
Is varied online or offline to a host
Signals ready when a virtual volume is loaded
Responds to and processes all 3490E tape commands
Becomes not ready when a virtual volume is rewound and unloaded
Indicates that it has a cartridge loader
Note: The active status of the cartridge loader depends on the availability of scratch volumes
in the assigned pool.
The Peer-to-Peer VTS appears to the z/OS host as a single automated tape library with 64,
128, or 256 virtual tape drives and up to 500,000 virtual volumes. The configuration of this
system has up to 3.5 TB of Tape Volume Cache native (10.4 TB with 3:1 compression), up to
24 IBM TotalStorage 3592 tape drives, and up to 12 IBM TotalStorage 3590 tape drives
models B1A, E1A, or H1A, and up to 16 host ESCON or FICON® channels.
In a JES3 environment, where MVS allocation is not used, JES3 attempts to spread scratch
mount requests across all library devices. For specific mounts, subsystem affinity cannot be
used. In a JES3 environment, where JES3-managed devices get assigned at pre-execution
time before MVS allocation is invoked, a different approach can be used. JES3 can be set up,
through the definition of ADDRSORT=NO in its INISH deck, to use the devices in the defined
order, evenly distributing workload across the VTSs.
LDG3591 LDG3490E
LDG12853 LDG60286
LDGW3495
All host interactions with data in a VTS are through virtual volumes and associated virtual
tape devices; there is no direct access to the data on a physical cartridge or device. Host
application data is written and read as if it is stored on a real Standard or Enhanced Cartridge
System Tape; however, within the system it is really stored on DASD. All tape read and write
commands are translated to read and write data records to or from DASD. Volumes residing
on the DASD are called virtual volumes.
One of the key features of the VTS is its capability to automatically use the 3590 and 3592
tape technology cartridge storage capacity. With a VTS, volumes being created by the host
applications are stored in a tape volume cache which is built from DASD devices. The size of
the tape volume cache is greater than the capacity of a native cartridge. The tape volume
cache can potentially contain hundreds of tape volume images called virtual volumes,
depending on the size of the volumes and tape volume cache.
Through tape volume cache management policies, the VTS moves virtual volumes from the
tape volume cache to a native cartridge managed by the VTS system. As virtual volumes are
moved from the tape volume cache, they are stacked end to end on the cartridge and take up
only the number of bytes written by the host, effectively using all of the storage capacity of the
cartridge.
LDG3591 LDG3490E
LDG12853 LDG60286
LDGW3495
LDG12853 LDG60286
Note: LDG3591 could be used, but is not recommended
LDGW3495
in case a new library is added.
The *I S command to displays the status of jobs currently in setup or the status of volumes
and data sets controlled by MDS. If none of the optional parameters is specified, the status of
all mains in the complex and a summary of the MDS queues are displayed.
*I S command operands:
,ALWIO - allowed (ALWIO) and maximum (MAXIO) number of asynchronous I/O requests
,A[,SUMM][,J=jobno] - jobs in the MDS allocate queue
,E[,J=jobnos] - jobs in the MDS error queue
,R[,J=jobnos] - jobs in the MDS restart queue
,SS[,J=jobno] - jobs on the MDS system select queue
,SV[,J=jobno] - jobs on the MDS system verify queue
,U[,J=jobnos] - displays unavailable volumes and jobs waiting for unavailable volumes
,B - jobs currently having their resources deallocated
,D=dsn - displays data set status and the status of associated volumes
,DE=dsn - displays data set status, the status of associated volumes, and using jobs
,F - jobs currently in the MDS fetch queue
,THWSSEP - current HWS option for separation of scratch and specific requests
,V - jobs waiting to be verified by setup
,V=vol[,E] | ALL[,E] | RES - displays status of the volume and associated data sets
,W - jobs currently in the MDS WAITVOL queue (waiting for the *S SETUP)
Message IAT5645 indicates the resources that MDS could not allocate for the job and main
indicated in message IAT5648.
If you make a mistake, JES3 will tolerate the error and initialize (if there are no other errors
with higher impact); however, you should correct the error and perform a hot start with refresh
at your earliest convenience.
Adding devices
Adding a device to HCD that is also to be defined to JES3 requires a corresponding device
definition in the JES3 initialization stream. The device can be defined by an individual
DEVICE statement or it can be included in a range of devices by using the NUMDEV
parameter on a DEVICE statement, which defines the first device in the range. The device
must be specified on the XUNIT, JUNIT parameter, or both. The processor can be defined by
name or it can be defined implicitly by using the system name *ALL. If you use *ALL, the HCD
configuration for every processor must define the device the same way.
If you are adding a new device type or changing the esoteric groupings of devices, you may
also need to add or change SETNAME statements. To define the new device to JES3, you
must perform a hot start with refresh using your modified initialization stream after activating
the configuration in HCD. All local processors will be automatically restarted when the hot
Note: Even if you are adding the same device that was previously deleted without an
intervening JES3 restart, a hot start with refresh must be performed after activating the
configuration in HCD to allow the internal control blocks associated with the device to be
built.
Changing devices
When you use HCD to change the characteristics of an existing JES3 defined device in HCD,
you do not need to IPL the processor or restart JES3.
Deleting devices
Deleting a JES3 defined device from HCD does not require any immediate JES3 change;
however, you should plan to delete the device from JES3 and perform a hot start with refresh
with the modified initialization stream at your earliest convenience after activating the
configuration.
HCD only needs to identify if a device is online or offline, and bases whether to allow the
deletion from the MVS configuration solely on that criteria. If the device is online, it will not
allow deletion of the device. If the device is offline, it will delete it.
FSS devices require special consideration if their configuration in MVS is being dynamically
modified. An FSS might have more than one FSA device assigned to it. Some of the devices
could be active and online, and some inactive and offline. HCD will allow dynamic deletion of
the offline devices. However, a subsequent JES3 hot start with refresh will fail if any of the
devices under the FSS are active, even if the DEVICE statements for the previously deleted
through HCD devices have been removed from the JES3 Initialization stream. A hot start
(without refresh) will fail whether the FSS is active or inactive.
Note: Do not use hot start to start JES3 after a dynamic deletion of FSS devices from the
MVS configuration. Only use hot start with refresh to start JES3 after deactivating all FSA
devices assigned to the FSS.
Attention: Use this parameter only with the approval of your system programmer.
Improper use can damage your JES3 system.
Message IAT5918
JES3Vxy indicates a copy of the verify response message from an MVS processor described
as follows:
x - verify descriptions
1 character, 0-F, or a blank (X'40'), corresponding to the following verify descriptions:
z - UCB/STATUS byte
P - MVS permanently resident
M - MVS mounted
blank - removable
IAT8572 message
JES=
– R the volume (if any) is removable by JES3.
– M the volume is JES3 mounted.
– P the volume is permanently resident to JES3.
OS=
– R the volume (if any) is removable to the operating system.
– M the volume is reserved by the operating system.
– P the volume is permanently resident to the operating system.
– MS the volume is reserved by the operating system and is SMS-managed.
– PS the volume is permanently resident to the operating system and is SMS-managed.
Deadline scheduling and dependent job control (DJC), additional GMS functions, enable you
to control when jobs execute. With deadline scheduling, you specify a deadline by which you
want the job to run. JES3 periodically increases the job's selection priority in an attempt to run
the job by the specified deadline. DJC allows you to create a network of related jobs.
An installation can have JES3 or Workload Manager (WLM) or both manage initiators for
batch jobs. JES3 or WLM control of initiators is at the job class group level. To specify
whether JES3 or WLM manages initiators for a job class group, the installation uses the
MODE parameter on the GROUP initialization statement. If MODE=JES is specified or
defaulted, the initiators are managed by JES3. If MODE=WLM is specified, the initiators are
managed by WLM. The MODE parameter can also be changed dynamically using the *F G
command. A group must be either WLM managed or JES3 managed; it cannot be WLM
managed on one system and JES3 managed on another.
There are a number of reasons why you might choose WLM initiator management over JES3
initiator management:
Fewer and simpler externals -- Less externals are needed in JES3 to control
WLM-managed initiators and to perform workload balancing. Once the service
administrator defines the performance goals and classification rules in the WLM policy, the
MVS system takes over the job of starting and stopping initiators.
Externals reflect customer expectations -- With JES3 initiator management, it is the
installation's responsibility to determine the number of initiators to be started on each
system, the correct mix of jobs, and so forth. The JES3 externals do not reflect an actual
performance goal, such as one hour turn around time for jobs in class X.
With WLM initiator management, initiators are managed according to the service classes
and performance goals specified in the WLM policy. The performance goals are typically
expressed in terms that are found in service level agreements (for example, one hour turn
around time).
Dynamic, goal oriented initiator management -- The system adapts to changing conditions
and to how well the work is meeting its performance goals. The current JES3 initiator
Main service selects jobs to be processed by MVS initiators. Main service selects a job for
execution using the job selection algorithms established at JES3 initialization. MAINPROC,
SELECT, CLASS, and GROUP initialization statements control the key variables in the job
scheduling and job execution process.
If jobs are not continually available for execution, the overhead of starting and stopping
initiators may be undesirable. In this case, the IPL allocation option should be used to allocate
execution resources during processor connection, or the MANUAL allocation or deallocation
option should be specified to indicate that all execution resources are not to be allocated or
released until the operator disables the job class group with a *F G command.
Main FCTs
Processor
SC65 MAIN Job execution IATMSDR 53
IATMSDR is the driver module for the higher priority MAIN FCT. It initiates connect
processing, and processes main service operator commands, staging area shortages, and
subsystem restarts. The main service support is active for a job after GMS selection and
through MVS termination of the job. Main service on the global interfaces with all other
processors using the JESXCF services.
IATMSDR runs as a resident FCT for JES3 main I/O. Routines in IATMSDR:
Connect Post Routine. Normally this is invoked when the JES3 system is brought up. It will
also be invoked when a vary online is done.
External Action Routine. This processes CANCEL requests for jobs and MAIN FLUSH
requests.
Main Service JESXCF Mailbox. This routine processes JESXCF System Event messages
and connect messages in the main service JESXCF mailbox.
In this visual, there are three mains, SC65, SC70, and SC64.
JCT JQE
( In storage data from
JCT 128 bytes)
MAIN (SE#)
CI(C)
MAIN(A) MAIN scheduler element
OUTSERV active
PURGE
The GMS routines schedule a job after it is placed on the selection queue, control the
workload, and maximize system throughput. GMS provides a flexible framework for
establishing priority between job classes within groups and between groups.
The GMS service allows many controls over job scheduling without requiring operator action
or intervention. Some of these controls are:
Job priority
Job interaction within a group
Job class mix
Explicit and implicit processor dependency
Logical storage size and I/O rate differentiation. Ignored when MODE=WLM specified
Initiator availability
Related job sequencing or dependent job control (DJC)
SELECT MAINPROC
NAME=IOMODE NAME=BOSSCPU
//S1 EXEC PGM=C GROUP=(G3,6,G4,6)
Job J3 must run CLASS NAME=SPEC SELECT=CALCMODE
on BOSSCPU //*MAIN CLASS=C7 GROUP=G4
CLASS NAME=C8 SELECT
// J3 JOB NAME=SPEC DEVICE
GROUP=G3
CLASS NAME=C7 GROUP=(G4,6) DTYPE=SYSMAIN
//DD1 DD UNIT=203 JNAME=BOSSCPU
GROUP=G3
CLASS NAME=C6 Nonshared
Job J2 must run //S1 EXEC PGM=B GROUP NAME = G4
GROUP=G3 Device
on WORKCPU //*MAIN CLASS=C5 CLASS NAME=C5 EXRESC=(BOSSCPU,6)
GROUP=G2
// J2 JOB CLASS NAME=C4 JES3
GROUP=G1 GROUP NAME = G3
//DD1 DD UNIT=101 CLASS NAME=C3 EXRESC=(BOSSCPU,6) Global Shared
GROUP=G1 Device
//S1 EXEC PGM=A
CLASS NAME=C2
Job J1 can GROUP=G1
//*MAIN CLASS=C5 GROUP NAME = G2
run on both CLASS NAME=C1 EXRESC=(WORKCPU,1)
processors // J1 JOB GROUP=G1 EXRESC=(BOSSCPU,1) JES3 Unit Number
Local 101
GROUP NAME = G1 Nonshared
EXRESC=(WORKCPU,2) Device
Job selection
When a request for a job arrives from the JES3-managed initiator, the job is ready to be
selected for execution. Jobs that are requested by JES3-managed initiators are still queued
by priority. JES3-managed initiator job selection is driven by how you define job processing in
the GROUP, CLASS, and SELECT initialization statements. All jobs classes are defined to
JES3 by using the CLASS initialization statement. Each such class is associated with a job
class group that is defined using the GROUP initialization statement. The GROUP
initialization statement specifies the number of initiators to allocate on each system and how
the initiators should be allocated and deallocated. A job class group can have one or more job
classes associated with it.
After an initiator is started, it asks the JES3 global processor for a job. JES3 then examines
the GMS select queue associated with the initiators job class group to see if there are jobs
The best and alternate I/O rates are based on the total number of initiators with started jobs
on the particular processor, and on the JOBMIX parameter specified on the SELECT
initialization statement for this processor. For each number of active initiators, a set of jobs
with low, high, and medium I/O rates is specified by the JOBMIX parameter. When the I/O
rate computation begins, it determines the number of active initiators, and from this, the
number of jobs for low, high, and medium I/O rates that the JOBMIX parameter specifies for
this number of started initiators. The low, high, and medium numbers specified during
initialization are the numbers of jobs that ideally should be executing for this total number of
active initiators. The algorithm then computes which I/O rate (low, high, or medium) is farthest
from the ideal, as specified during initialization. The I/O rate that most needs to be increased
to meet the ideal becomes the best rate, and the one that needs to be increased second-most
becomes the alternate rate. In case of ties, the choice favors low, then high, then medium for
best or alternate. As far as I/O rate is a factor in job selection, the choice favors the I/O rate
that needs to be increased the most.
If the job being tried as a candidate for job selection could be executed on the processor from
which the request originated, the algorithm determines the candidate's job class. The CLASS
initialization statement parameters MDEPTH, MLIMIT, TDEPTH, and TLIMIT are all checked
for this class. If any of these limits are met or exceeded for this job candidate, the scan checks
for JSPAN and BAR parameters on the GROUP statement. If these are not exceeded, it
moves to the next job candidate in this group and starts again.
The maximum number of job selection candidates examined in response to a job selection
request is specified by the JSPAN parameter on the GROUP initialization statement. If the
number of jobs scanned as candidates for selection reaches the value specified by JSPAN,
the algorithm terminates the job selection pass. In this case, the initiator continues waiting,
and the job-select request remains queued.
If the value specified by JSPAN has not been reached, the algorithm determines whether a
priority barrier is effective at this point. If a priority barrier is reached, then the result is the
same as if JSPAN has been reached: no more jobs in the queue can be scanned.
If the job selection candidate fits into storage on the processor and the CHOICE parameter is
not FJOB, the algorithm looks back to the earlier determination of whether IORATE is to be
considered in this selection. If it is not, a suitable job has been found, and this job is returned
to the requesting initiator. If IORATE is a factor (CHOICE is specified as BMIX or FMIX), the
algorithm compares the I/O rate of this job with its earlier determination for best I/O rate. If the
I/O rate of this job is the same as the best I/O rate, this job is returned to the initiator as the
selected job. If the I/O rate of this job is the same as the alternate I/O rate and the CHOICE
parameter is set for FMIX, this job is returned to the initiator as the job selected. If the job
does not match the best or alternate I/O rate, the algorithm checks for JSPAN and BAR and
starts examination of the next job of the group on the queue.
MAINPROC,NAME=main,SYSTEM=JES3,FIXPAGE=fixedpages,
ID=msgprefix,MDEST=code,JESMSGLMT=(WTO_limits,interval),
PRTPAGE=(csapages,auxpages),SELECT=selmode,
SPART=partionname,TRKGRPS=(prigrps,secgrps),
USRPAGE=nn
*I MAIN=ALL
IAT8643 MAIN INQUIRY RESPONSE
INFORMATION FOR MAINPROC SC70
STATUS=(ONLINE,NOT-CONNECTED,DOWN,LOCAL)
INFORMATION FOR MAINPROC SC65
FMID=HJS7750, STATUS=(ONLINE,CONNECTED,ATTACHED,GLOBAL)
MAINPROC INQUIRY RESPONSE COMPLETE
*I MAIN=SC65 X
IAT8643 MAIN INQUIRY RESPONSE 347
INFORMATION FOR MAINPROC SC65
FMID=HJS7750, STATUS=(ONLINE,CONNECTED,ATTACHED,GLOBAL), PLEVEL=20,
SLEVEL=02, ID='SC65=', MDEST=M2, SELECT=SELA, SPART=NONE,
TRKGRPS=(1,1), JESMSGLMT=(00000000,00010), FIXPAGE=00005,
PRTPAGE=(00025,00025), USRPAGE=00004
MAINPROC INQUIRY RESPONSE COMPLETE
*V SC70 OFF
IAT8180 SC70 VARIED OFFLINE TO JES3 ON GLOBAL
MAINPROC statement
The MAINPROC initialization statement to defines a processor as a JES3 main. The
initialization stream must include one MAINPROC statement for each main that you want to
define to JES3. JES3 supports up to 32 processors in a complex.
GMS considerations
From a GMS point of view, there are two pieces of information that one needs to be
remember.
1. The name of the processor will be used in the definition of initiator resources and
constraints.
2. The initial select mode is defined on the MAINPROC statement. This is the initial or default
“initiator configuration” for this main processor. The important thing to notice is that each
processor has its own select mode.
*I MAIN=main command
The *I MAIN=main command displays information about main processors, the global
processor, or all main processors.
SELECT statement
The SELECT initialization statement defines scheduling controls associated with a particular
job selection mode. The initial job selection mode is assigned to a JES3 main using the
SELECT parameter on the JES3 MAINPROC initialization statement. If a MAINPROC
statement does not indicate a selection mode, the SELECT statement default values are
assigned to that main.
GROUP statement
The GROUP initialization statement defines the characteristics of a JES3 job-class group and
whether the initiators managed by this group are WLM managed or JES3 managed. A
GROUP statement must define each job class group (except for the default group,
JS3BATCH) named on a CLASS initialization statement.
CLASS statement
The CLASS initialization statement defines the characteristics of JES3 job classes. A CLASS
statement must define each class that can appear on the //*MAIN JECL statement or JOB
JCL statement.
SELECT,NAME=modename,CHOICE=criteria
,CLASS=([jobclass,...] | [/jobclass,...]
,GROUP=([groupnam,initnums,...] | [/groupnam,...]
,INCL=nn,INCR=nn,JOBMIX=(n1,...),LSTOR=nnnnn
MAGEL= nn,MAGER=nnn,SAGEL=nn,SAGER=nnn
,SBAR=[PRTY | nn],SDEPTH=nnn
SELECTexample
SELECT,NAME=SELA,GROUP=(A,9,S,8),CLASS=(A,B,S,T),
SBAR=15,SAGEL=10,SDEPTH=20, INCR=4,MAGEL=10
LSTOR=32000
*I G SC65 S MODE
IAT8930 SELECT - MODE - SELA - SC65
IAT8599 INQUIRY ON GMS COMPLETE
*F G SC65 S MODE SELA
IAT8456 GMS MODIFY - COMPLETE NO ERRORS - SC65
IAT2002 LSTOR=32000 ALLOC=000000000 AVAIL=32000 SC65
SELECT statement
The SELECT initialization statement defines scheduling controls associated with a particular
job selection mode. The initial job selection mode is assigned to a JES3 main using the
SELECT parameter on the JES3 MAINPROC initialization statement. If a MAINPROC
statement does not indicate a selection mode, the SELECT statement default values are
assigned to that main. Each select mode defined can be dynamically changed using the:
*F G,main,S operator command
In addition, the commands *F G,main,G or *F G,main,C (C stands for class) can indirectly
affect the select mode. A SELECT statement must be specified for each select mode
indicated on a MAINPROC statement or in a *F G,main,S command.
Note: (1.) The initnum value on the GROUP parameter of the SELECT
statement overrides the value of the initcnt parameter on the EXRESC
parameter of the GROUP statement.
(2.) If the GROUP parameter specifies job class group that is WLM
managed, the initiator count is ignored. If this job class group is switched to
JES3 management using the *F G command, the initiator count that was
specified will be in effect.
(3.) If the initiator count is omitted and the job class group is JES3 managed,
a value of zero is assumed.
(4.) If you omit the SELECT statement GROUP parameter, all groups are
eligible for scheduling. The SELECT statement may also specify priority
aging rules for GMS and MDS processing.
INCL= Specifies a limit within the range of 0 to 15 past which a job's priority cannot be
incremented by JES3 main device scheduling (MDS).
INCR= Specifies a decimal number from 0 to 15 that is automatically added to the
priority of the job which is set up.
Note: When deferred mounting is either specified in the JCL for any device
(for example, UNIT=(TAPE,,DEFER)) or implicitly requested, by using tape
library dataserver devices, JES3 bypasses pre-execution mount processing
and does not include the job in its CLASS setup depth (SDEPTH) count
unless DEFERCT=YES has been specified on the SETPARAM initialization
statement, or the *F S operator command.
SELECT,NAME = modename
,SBAR = PRTY | nn | 16 (DEF: 16)
,SAGEL = nn | 14 (DEF: 14)
,SAGER nnn | 0 (DEF: 0)
,SDEPTH = nnn | 255 (DEF: 255)
,INCL= nn | 14 (DEF: 14)
,INCR= nn | 1 (DEF: 1)
SBAR Job priority barrier - Jobs at barrier or above reserve resources
SAGER Aging - Jobs can advance to next priority level
SAGEL Aging limit priority level
SDEPTH Maximum number of jobs requring operator mounts
INCL Priority increment limit
INCR Priority increment
IATMDSL first finds a job for which to attempt allocation. It does this by checking the dynalloc
queue, the restart queue, and the allocate queue. For jobs already tried, it checks the
‘devices-required’ counts to see if the job has a chance to allocate successfully.
IATMDSL selects a setup processor based on the job's main mask, and the processor's setup
depth. At this time the main mask is an indicator of processors which are eligible after fetch
processing and where SMS resources are also available.
After selecting the setup main, if the job is unable to reserve resources and the job's JST is
not in storage, the ARL (allocation requirements list of the resources that a job was not able to
obtain on a previous allocation attempt) pre-allocation scan will be performed if the job has an
ARL. The JST will not be read and allocation will not be attempted, if the pre-allocation scan
fails. Also this setup main will be bypassed and the next eligible main will be checked.
IATMDSL invokes IATMDAL to try to allocate the job on the setup processor, if the JST was
read in. If allocation is successful, mount messages are issued if appropriate, and IATMDSB
is called to hard allocate the job's resources. Also, if the job had an ARL, the ARL is deleted.
If the job requires volumes to be mounted, then the job is put on the verify queue to wait for its
volumes to be mounted.
Several parameters on the SELECT statement affect the operation of MDS allocation on a
processor basis (SDEPTH, SBAR, INCR, INCL, SAGER, SAGEL). Through these
parameters, MDS allocation may be biased toward one processor (a larger SDEPTH),
devices may be reserved but not entirely allocated to one processor (a higher SBAR), and
jobs on a specific processor may be favored for selection (higher INCR, INCL, SAGER, and
SAGEL parameters):
SBAR Specifies a job priority barrier. Jobs equal to or above this barrier which cannot
obtain all their required resources (volumes, data sets, and available devices)
will reserve resources as they become available to prevent lower priority jobs
from obtaining them.
PRTY- Indicates that the priority of the first job that cannot be setup is the
priority barrier.
nn - Specifies a job priority level from 0 to 15.
16 - Indicates there is no job priority barrier.
SAGEL Specifies an aging priority limit (0-15) beyond which a job cannot be aged
during MDS setup for the job.
SAGER Specifies the number of times (0-255) a job must be eligible for aging during
JES3 MDS processing before its job priority is actually incremented. If 0 is
specified, no aging is done.
SDEPTH Specifies the maximum number (0-255) of jobs requiring operator mounts that
may be set up at one time on any main for which this select mode is active.
SDEPTH allows mains with different nonshared device configurations to be
given a variable number of setup jobs, depending on the number of devices
associated with the main.
INCL Specifies a limit within the range of 0 to 15 past which a job's priority cannot be
incremented by JES3 main device scheduling (MDS). Note that only jobs
requiring volume mounting or referencing a volume that was mounted for
another job are incremented by setup.
INCR Specifies a decimal number from 0 to 15 that is automatically added to the
priority of the job which is set up. If a job has a priority of 5 when it is set up, and
INCR=4 is specified, the job's priority is elevated to 9 (or to the value specified
in the INCL parameter, whichever is less) after the devices have been allocated
and set up. This parameter expedites the processing of jobs once devices have
been assigned to them.
*I G,SC65,S
IAT8930 SELECT - SBAR - 00000015 - SC65
IAT8930 SELECT - MAGER - 00000000 - SC65
IAT8930 SELECT - SAGER - 00000000 - SC65
IAT8930 SELECT - MAGEL - 00000010 - SC65
IAT8930 SELECT - SAGEL - 00000010 - SC65
IAT8930 SELECT - SDEPTH - 00000020 - SC65
IAT8930 SELECT - INCR - 00000004 - SC65
IAT8930 SELECT - INCL - 00000014 - SC65
IAT8930 SELECT - CHOICE - FIRSTFIT - SC65
IAT8930 SELECT - LSTOR=32000 ALLOC=000000000 AVAIL=32000 - SC65
IAT8930 SELECT - MODE - SELA - SC65
IAT8930 SELECT - MAXI - ALL - SC65
IAT8599 INQUIRY ON GMS COMPLETE
*F G,SC65,S,SBAR,14
IAT8456 GMS MODIFY - COMPLETE NO ERRORS - SC65
*I G,SC65,S,SBAR
IAT8930 SELECT - SBAR - 00000014 - SC65
IAT8599 INQUIRY ON GMS COMPLETE
Use the *I G command to obtain the status of GMS components of JES3 and to display the
name of the spool partition assigned for a specific main or all mains. A main's spool partition
contains the spool data for each job that runs on that main unless other partitions were
specifically assigned for the job's job class, SYSOUT data, or in the job's //*MAIN control
statement.
On the visual, the *I G,SC65,S command displays the current SELECT mode options on
system SC65.
To change any of the options, the *F G,SC65,S,SBAR,14 command changes the SBAR value
from 15 to 14.
To check an individual parameter, the *I G,SC65,S,SBAR displays the current value of the
SBAR parameter.
GROUP,NAME=groupname,MODE=[JES|WLM]
,EXRESC=([procname|*ALL],initcnt,storsize,exopts)
,BAR=[PRTY|nn],DEF=YES
,DEVPOOL=(devopt,devname,devcount,devnum,options)
,JSPAN=nnnnn
Example
GROUP,NAME=GRPA,DEF=YES,
EXRESC=(*ALL,9,,IPL,MANUAL),JSPAN=ALL,MODE=JES
*I G SC65 G
IAT8932 GROUP - GRPA - STATUS=ON DI=0009 AI=0009 UI=0000 ALLOC=IPL UNAL=MAN BAR=NO JSPAN=ALL MODE=JES - SC65
IAT8932 GROUP - GRPJ - STATUS=ON DI=0009 AI=0009 UI=0000 ALLOC=IPL UNAL=MAN BAR=NO JSPAN=ALL MODE=JES - SC65
IAT8932 GROUP - GRPS - STATUS=ON DI=0008 AI=0008 UI=0000 ALLOC=IPL UNAL=MAN BAR=NO JSPAN=ALL MODE=JES - SC65
IAT8599 INQUIRY ON GMS COMPLETE
*F G SC65 G GRPA INIT 10
IAT8456 GMS MODIFY - COMPLETE NO ERRORS - SC65
IAT2003 MPAINIT=0027 DI=0010 AI=0010 UI=0000 GRP=GRPA - SC65
S INIT.GRPA IATMSMS
IAT6100 ( DEMSEL ) JOB INITJES3 (JOB25631), PRTY=15, ID=STC
ICH70001I STC LAST ACCESS AT 15:12:28 ON MONDAY, NOVEMBER 10, 2008
IEF695I START INIT WITH JOBNAME INIT IS ASSIGNED TO USER STC , GROUP SYS1
IEF403I INIT - STARTED - TIME=15.12.28 - ASID=0086 - SC65
GROUP statement
The GROUP initialization statement defines the characteristics of a JES3 job-class group and
whether the initiators managed by this group are WLM managed or JES3 managed. A
GROUP statement must define each job class group (except for the default group,
JS3BATCH) named on a CLASS initialization statement.
NAME= Specifies the name of a job class group. A job class is assigned to this job-class
group by placing this group name on its CLASS statement.
MODE= Specifies whether the initiators managed by this group are WLM managed or
JES3 managed.
EXRESC= Defines the execution resources, such as initiators, processors, and devices,
which you want assigned to this job class group. Jobs in this group use devices
assigned to the group to satisfy requests for mountable volumes. An EXRESC
parameter must be specified for each main on which this group may be
scheduled.
The initiator resources are defined on a main processor basis. Dedicated
devices can be defined on either a processor basis or a complex wide basis:
Initiator management is performed at the group level.
Initiators can only process jobs from classes that comprise the group.
The EXRESC parameter must still be specified even if MODE=WLM, because
JES3 still needs to know which system's jobs in this group are allowed to
MANUAL or DYNAMIC allocation and unallocation options make good sense in the
environment where:
Work is released for processing on a predefined schedule in a specific window (e.g. turned
loose at 4 PM to be completed by 6 AM the following morning)
Work in the group is available in sufficient quantities to prevent the thrashing of initiators.
For work that arrives with great inter-arrival times, DEMAND allocation and unallocation
options make sense.
In the previous example, the initiators in GRPA are started one at a time as needed on each
processor and remain until there is no work available for any of the initiators on that
processor. At that time, all of the initiators on the processor will be terminated automatically
by JES3 without operator intervention.
The CLASS statement has dependencies on the SPART initialization statement. During a hot
start with refresh, JES3 does not process the SPART statement but uses the SPART
statement from the last warm or cold start. If you add a SPART statement during a hot start
with refresh, JES3 ignores it and issues error messages if the CLASS statement you use
references the SPART statement that you attempted to add during a hot start with refresh.
The CLASS statement parameters are as follows:
NAME= Specifies the name of the job class. This name corresponds to the CLASS
parameter on the //*MAIN control statement. If you omit DEF=YES from all
CLASS statements in the initialization stream, JES3 defines JS3BATCH as
the default class.
CIBATCH= Indicates whether batch jobs of this class must have CI processing limited to
certain processors. If specified for a class, this will override the value
specified on the CIBATCH parameter on the STANDARDS statement.
JOB - Indicates CI processing must be performed on a system on which the
job is eligible to run. Only the JES3 //*MAIN SYSTEM= JECL statement (NOT
the job's scheduling environment) is considered for CI scheduling purposes
when determining where the job is eligible to run.
JES3 allows the installation to group job classes via the GROUP keyword. There are no
guidelines for implementing job class grouping; usually the installation does this based upon
workload characteristics, service objectives or strictly political reasons. Some installations
have only one job class to a group. In this example, there are two defined job classes
belonging to different job class groups.
There are numerous constraints that can be specified affecting the scheduling of work. We
will discuss only four at this time and use class A as the sample.
*I G SC65 C
IAT8934 CLASS - K - STATUS=ON - GRP=A - SC65
IAT8934 CLASS - J - STATUS=ON - GRP=J - SC65
IAT8599 INQUIRY ON GMS COMPLETE
*I C=K
IAT8609 CLASS INQUIRY INFORMATION 533
INFORMATION FOR CLASS I
GROUP=A (JES), SPART=NONE, DEFAULT=NO
DEFINED ON SC64, SC70, SC65
ENABLED ON SC64, SC70, SC65
LIMIT SYSTEM/CLASS MAXIMUM CURRENT
SDEPTH ---- 255 0
SPIN=NO
*F G SC65 C K OFF
IAT8456 GMS MODIFY - COMPLETE NO ERRORS - SC65
*F,C=I,SDEPTH=100
IAT8043 MODIFY COMPLETE FOR CLASS I
MPC SA SA SA
SC65
MPC SA SA SA SA
SC70
GRP TBL RQ RQ RQ
TVT GRPA
GRPB
RQ RQ
EXRESC TBL
GRPA
GRPB
GRPA
GRPB
There are numerous counters kept in the MPC by GMS. These include:
Number of jobs in execution
Number of jobs by IORATE in execution
Total and available LSTOR for the processor
Various SELECT mode attributes: CHOICE, MAGER, MAGEL
GROUP tables
Each GROUP initialization statement results in an entry in this table. The entries in this table
are numbered and sequenced in the order in which the GROUP statements appear in the
initialization stream. The group table entry is the anchor for:
All the jobs, from the job classes comprising the group, waiting to be sent to the initiator.
These jobs are represented by a chain of RQs maintained in priority order.
The execution resource table (initiator control table) for each processor relative to this
group.
DEVPOOL control blocks for those groups that have dedicated devices. Some group
related parameters are also kept in the MG. These include:
– BAR value
– JSPAN value
EXRESC tables
There is one set of these tables per main processor. Each entry in a table represents the
initiator control information (and dedicated device information) for a specific group on a
specific processor. These tables are the representation of the EXRESC parameter
specification on the GROUP initialization statement. Information includes:
Number of initiators allowed
Number of initiators waiting for select
Number of initiators currently active
Initiator allocation/unallocation options
Various status flags
CLASS tables
The class table contains an entry for each of the defined job classes appearing in the
initialization stream. The entries in this table are numbered and sequenced in the order in
which the CLASS statements appear in the initialization stream. Each entry contains several
items of interest including
Pointer to the class constraints (if any)
Group number to which this class belongs
LSTRR value
Enable/disable status of the class for each main processor
Flags indicating scheduling constraints reached
The class constraint information represents the installations MDEPTH, TLIMIT, etc.
specifications. The class constraint table is pointed to from the class table.
This queue is commonly referred to as the “GMS select queue”. Jobs from this queue are
used to satisfy initiator requests. Normally, a job is taken from the select queue and placed
into execution by GMS. The execution phase is commonly referred to as “on main”.
Once the job is on the GMS select queue, the environment can obviously change with the
result being that the job will remain enqueued but not selectable.
Number allowed
Allocation options
Unallocation options
Available work
To understand the conditions under which JES3 starts or stops initiators, one must first
understand how JES3 categorizes the state of an initiator, as follows:
Waiting An initiator is in this state between the time GMS issues the S INIT.group_name
command until the time the demand select request is recognized and satisfied
by GMS. Remember, initiators are only started tasks (e.g. demand select jobs).
At this time the initiator transitions into the next category.
Allocated An initiator in this state is alive and well. It may be “idle”, in which case it will
have an outstanding job select request and thus a staging area representing
the open initiator will appear on the chain anchored from the appropriate MPC.
The initiator may have a job in which case it will be in the next category.
In use The initiator currently is active and holding a job. This is the state you want your
initiators to be.
JES3 keeps track of the number of initiators in each category and the number allowed. When
GMS is allowed to manage the number of initiators the goals are relatively simple:
The “waiting” plus the “allocated” should not exceed the “allowed”.
The “waiting” plus the “allocated” minus the “in use” should not exceed the number of
available jobs in the group.
A job main mask is kept in storage in the RESQUEUE control block, (RQMAINS).
If a job has a scheduling environment specified for it, a separate main mask is created and
stored in the RESQUEUE control block, (RQSCHEMM).
Occurs when:
If jobname JOBSY1A is placed on the GMS select queue and the main mask includes SC65,
then GMS for SC65 is posted for initiator allocation in this group. GMS for SC65 will then
awake, realize that initiators are needed for this group on this main and start the required
number.
Started initiators
The number of started initiators differs for the two options. When dynamic allocation is used,
JES3 starts the number of initiators necessary to reach the maximum allowed. This is
calculated by subtracting the number in use or waiting from the maximum allowed. When
demand allocation is in effect, JES3 will calculate the number of jobs in the group waiting for
an initiator whose main mask includes this processor and are not in operator hold. This
number will used to start initiators up to the maximum allowed. Again, JES3 takes into
account the number of initiators in use and waiting so as not to exceed the maximum allowed.
If the job's main mask had included SC70, and SC70 had the same initial state as SC65, then
GMS on SC70 would do the same thing. The effect of these independent processes is a “race
condition” and possibly over initiation of GRPA initiators in the complex.
Stopping initiators
Initiator unallocation is a similar process. The basic idea is to reduce the number of
“allocated” but not “in use” initiators to reflect the number of available jobs. In the case of
dynamic unallocation, the number of jobs must be zero. For demand unallocation, the number
of initiators terminated is the difference between the number of available initiators from the
number of available jobs. Again, the estimate of the number of available jobs is a rough
assessment of the jobs eligibility.
Stopping or terminating initiators is not done by MVS commands as when starting initiators.
Basically, GMS searches the queue of initiators with select requests outstanding for a specific
group (SAs anchored from the MPC) and returns the request with an indicator to terminate.
The initiator then terminates like any other started task.
RQ RQ
Post for job select
Job 8 Job 7
*I J=VAINICL*
IAT8674 JOB VAINICLJ (JOB25640) P=01 CL=J MAIN(GMS SELECT)
IAT8699 INQUIRY ON JOB STATUS COMPLETE, 1 JOB DISPLAYED
MAIN(status)
FETCH
WAITVOL
SYSTEM SELECT
ALLOCATE
VOL UNAVAIL
VERIFY
SYSTEM VERIFY
MDS ERROR
GMS SELECT GMS
EXECUTING EXECUTION
BREAKDOWN
MDS RESTART
MAIN COMPLETE
OUTSERV WAIT
DEMAND SELECT
I/O WAIT
ENDFUNC ERROR
DSP ABEND
OPTIONS XCFGRPNM=group_name
XCFGRPNM parameter is optional
JES3 determines XCF group name as follows:
1. Use groupname from OPTIONS XCFGRPNM, if specified
2. Use node name from HOME=YES NJERMT NAME= when no
XCFGRPNM
3. Use default node name of N1
4. Optionally, use the JES XCF attach/detach exit IXZXIT03 if you
are attaching your own JESXCF group
The users of the JES3 XCF group are:
The JES3 Global and all locals
All converter/interpreter functional subsystem (C/I FSS) and writer
functional subsystem (WTR FSS) address spaces
JES3DLOG
The XCFGRPNM parameter is optional. JES3 uses for the XCF group name:
1. The group name from the OPTIONS XCFGRPNM specification
2. The node name from the NJERMT NAME= specification of the HOME=YES node when
no XCFGRPNM is defined
3. The default node name N1, when no networking and XCFGRPNM are defined.
The NAME parameter on the NJERMT statement that defines HOME=YES is the default for
the XCFGRPNM parameter on the OPTIONS statement during a warm or cold start. If the
home node is changed during a hot start with refresh and the XCFGRPNM parameter is not
Note: The recommendation is to let the group name default to the home node name. An
IBM recommendation - Use the same name for MVS sysplex name and JES3 XCF group.
In support of these scenarios and any others in which your installation may want a
JESXCF group name that differs from the node name, use the XCFGRPNM= keyword on
the JES3 OPTIONS initialization statement. (Use this optional keyword to define a name
that must be 1-8 alphanumeric characters including $, # and @.)
The DISPLAY XCF command to displays cross system coupling information in the sysplex.
D XCF[,S] - Displays (message IXC334I) a list of all systems currently
participating in the sysplex.
D XCF,GROUP,groupname - Displays (message IXC332I) the members of the specified group.
The JES3 *INQUIRY,NJE command to display the status of the networking nodes and
communication lines.
*I NJE N=nodename
Global
JES3 Address Space User Address Space
Allocate SYSOUT
(JCL and DYNALLOC)
SSI call IATSIAD
Create DSS/DSB
OPEN SYSOUT
Add JDS entry SSI call IATSIOR
IATDMJA SSISERV/JSERV Create JDS entry
Return RAB SSISERV to Global
PUT records...
SSISERV/JSERV IATDMDM
RAB Refresh
IATDMEB
IATDMGB
CLOSE SYSOUT
Spool SSI call IATSICC
(Unallocate SYSOUT)
SYSOUT,CLASS = A,.....,TRKGRPS = (1,2),.......
OUTSERV,.....................,OUTLIM=16777215,
OUTLIM on SYSOUT DD statement
IATSIOR module services open, internal reader reopen and restart for all SYSIN and
SYSOUT data sets. It builds the necessary control blocks to perform I/O for the data sets at
open time. At restart the checkpointed information that was saved is used to reposition the
data set.
JDS entry
A JDS entry is built at open time for the SYSOUT data set and passed to global in its entirety
to be added to the job’s JDS. This communication to the global is done via SSISERV. On the
global module IATDMJA (USAM JDS Access Interface Routines) adds the JCD entry into the
job’s JDS chained SRF. For a new SYSOUT allocation, IATDMJA also performs the following:
The IATSICC module services close and checkpoint for all SYSIN and SYSOUT data sets. At
close time it allows for the completion of all I/O and frees up some of the resources used. For
checkpoint, information about the data set is saved in a buffer and the buffer is written to disk.
TRKGRPS parameter
TRKGRPS parameter of the SYSOUT initialization statement specifies the number of track
groups (as defined by the GRPSZ parameter on the BUFFER or SPART statement) JES3 is
to allocate to jobs within this SYSOUT class. The primary allocation quantity specifies the
number of track groups to be initially assigned to jobs in this SYSOUT class. The secondary
allocation quantity specifies the number of track groups to be allocated to jobs in this
SYSOUT class subsequent to their primary allocation. JES3 allocates the specified amount of
spool space after the job uses up its initial allocation, and again (for an unlimited number of
times) when the job uses up each secondary allocation and requests more spool space.
The TRKGRPS parameter on the SYSOUT statement overrides corresponding values on the
CLASS and MAINPROC initialization statements and on the //*MAIN JES3 control statement.
System FCTs
For jobs executing
SC65 MAIN
*C SC65,2398
SC70 MAIN *C SC65,2398,D
SC64 MAIN *F J=2398,C[O|P]
*F J=2398,C[O|P],D
SC65 MAIN *R SC70,271
SC70 MAIN *F J=JOB2,H
*R SC70,JOB2
SC64 MAIN
*C main,jobno|jobname,[Dump],[ARMR]
*R main,jobno|jobname
*F J=jobno|jobname|jj*,C|CO|CP,[Dump],[ARMR]
*F J=jobno|jobname|jj*,H|R
Note: The *F J= command is the preferred way to cancel jobs that are in execution. The
DUMP and ARMR options can also be specified on the *F J= command.
If you want to restart a job but do not want it to execute immediately, place the job in hold
status with an *F command, and then issue the *R main command. The *R main command
actually cancels the job on the main, making its resources available to other jobs. When the
job can be released, using an *F command, it is rescheduled without having to be read into
the system again.
If RESTART was not specified, the job is processed according to its failure option.
*I A,C=class
*I A,D=[dspname | ALL | DEADLINE | DLINE I INTRDR[,R]]
*I A,G=group
*I A,J=jobno
*I A,[SRVCLASS=srvclass | SRVCL=srvclass]
*I A,main,[C=class | G=group | SRVCL=srvclass]
*I A D=INTRDR
IAT8522 JOB INTRDR (JOB28541) ACTIVE ON INTRDR 7358.25 MIN
IAT8522 JOB INTRDR (JOB19166) ACTIVE ON INTRDR 7358.25 MIN
IAT8523 INTRDR COUNTS - MAX=(020,020), ACT=0002, FCT=002, HWATER=0002
IAT8593 INQUIRY ON ACTIVE JOBS COMPLETE, 2 JOBS DISPLAYED
Note: A logical sender is a type of logical device that JES3 uses to communicate with a
directly-connected node. JES3 creates and names one or two logical senders for each
line that is connected to a directly-connected node provided the NJERMT statement for
that node specifies MAXLINE=1, 2, or 3. To create a logical sender name, JES3 starts
with a 6-character base name. The form of the base name is XYYYYY, where X is an
alphanumeric character and YYYYY is a number between 00001 and 99999. JES3
verifies that the base name is unique by checking the base name against a list of
existing base names. If the new base name is unique, JES3 adds it to the list. If the
name is not unique, JES3 makes it unique by changing one or more characters of the
name.
F WLM,[RESOURCE=resourcename,[ON|OFF|RESET]]
D WLM,SCHENV=schenvname[,SYSTEM=sysname|,SYSTEMS]]
Scheduling environments help ensure that units of work are sent to systems that have the
appropriate resources to handle them. A scheduling environment is a list of resource names
along with their required states. Resources can represent actual physical entities, such as a
data base or a peripheral device, or they can represent intangible qualities such as a certain
period of time (like second shift or weekend).
Resources
These resources are listed in the scheduling environment according to whether they must be
set to ON or set to OFF. A unit of work can be assigned to a specific system only when all of
the required states are satisfied. This function is commonly referred to as resource affinity
scheduling.
In a sysplex containing only one system, scheduling environments have some degree of
usefulness, as JES3 will hold batch jobs until the required states become satisfied. In a
multi-system sysplex, the full power of scheduling environments becomes apparent, as work
is assigned only to those systems that have the correct resource states (the resource affinity)
to handle that work.
Presently, JES2 and JES3 are the only participants that use scheduling environments,
although the concepts could certainly apply to other types of work, too.
The complete syntax for the MVS MODIFY WLM command is:
F WLM,[RESOURCE=resourcename,{ON|OFF|RESET}]
WLM - The name of the address space where WLM executes
RESOURCE=resourcename - Changes the state of resourcename.
ON - Specifies that if the required resource state in a scheduling environment is ON,
that requirement will be satisfied on the target system.
OFF - Specifies that if the required resource state in a scheduling environment is OFF,
that requirement will be satisfied on the target system.
RESET - Specifies that this resource setting will satisfy neither an ON nor an OFF
resource requirement. Therefore if a scheduling environment includes resourcename
in its list of resources (whether ON or OFF), then that scheduling environment will not
be available on the target system.
Resource names
Resource names are really indicators on an MVS system, that show the presence or absence
of a real resource. The resource can be an actual physical entity, such as a data base or a
hardware feature (vector processor or cryptography). It can also be an intangible quality, such
as a certain time of day or a certain day of the week. However, understand that the resource
names are abstract and have no actual meaning or direct relationship to physical resources.
Resource names have no real meaning and may have no direct relationship to physical
resources in existence. You can establish a resource name such as DB2A and then schedule
jobs where a give instance of a DB2 subsystem either exists or does not exist. However, the
name DB2A could equally be XYZ and the concept would be the same and work equally well.
Note: An input service user exit (IATUX29) or a converter interpreter exit (IATUX08 or
IATUX09) can assign a scheduling environment to a job by storing the scheduler
environment name into the JCT field JCTSCHEN.
When a job specifies or requires a scheduling environment, JES3 maintains a main mask for
the job that contains the systems where the scheduling environment is available.
*I J=VAINSCHE
IAT8674 JOB VAINSCHE (JOB25659) P=01 CL=A MAIN(GMS SELECT)
IAT8699 INQUIRY ON JOB STATUS COMPLETE, 1 JOB DISPLAYED
*I J=VAINSCHE,W,X
IAT8674 JOB VAINSCHE (JOB25659) P=01 CL=A MAIN(GMS SELECT)
IAT8564 SCHENV=SC65, SRVCLASS=BATCHLOW, GROUP=A (JES)
IAT8685 SC70 - MAIN OFFLINE/NOT CONNECTED
IAT8685 SC65 - SCHEDULING ENVIRONMENT NOT AVAILABLE
IAT8687 JOB WAITING/ACTIVE 00000 HOURS 10 MINUTES 48 SECONDS
IAT8699 INQUIRY ON JOB STATUS COMPLETE, 1 JOB DISPLAYED
D WLM,SCHENV=SC65,SYSTEM=SC65
IWM037I 17.17.34 WLM DISPLAY 125
SCHEDULING ENVIRONMENT: SC65
DESCRIPTION: Ditto
SYSTEM: SC65
STATUS: NOT AVAILABLE
REQUIRED CURRENT
RESOURCE NAME STATE STATE
*SC65 ON RESET
F WLM,RESOURCE=SC65,ON
IWM039I RESOURCE SC65 IS NOW IN THE ON STATE
IWM056I SCHEDULING ENVIRONMENT SC65 IS NOW AVAILABLE
IAT2000 JOB VAINSCHE (JOB25659) SELECTED SC65 GRP=A
ICH70001I VAINI LAST ACCESS AT 17:04:44 ON WEDNESDAY, NOVEMBER 12, 2008
IEF403I VAINSCHE - STARTED - TIME=17.19.00 - ASID=0040 - SC65
The command displays status information for the specified scheduling environment
(schenvname). You can display multiple scheduling environments by using wildcard
Where:
SYSTEM=sysname Displays the state of the scheduling environment and the availability of
each resource referenced by the scheduling environment on the
designated system.
JOBB JOBC
JOBE JOBD
The first DJC job of a particular DJC network can use the DEVPOOL parameter of the //*NET
control statement to reserve devices for the entire network. When reserving devices, the user
can code the DEVPOOL parameter to refer to the requested devices by name. This
parameter should refer to the names defined by the POOLNAMS parameter on the
SETNAME initialization statement.
It is important to reserve devices for a DJC network if the DJC jobs pass data sets from one to
another; this means that they have similar setup requirements. If devices are not reserved for
a DJC network, the DJC jobs contend with other jobs in the system for the available devices
when they enter setup. Since DJC jobs are normally held before setup and they are only
Both volume mounting operations and the time required by successor jobs to get through the
system can be reduced by reserving the commonly required devices for the network. User
exit IATUX24 allows you to examine information coded on a //*NET statement. You can
examine the network id and the list of requested devices. A return code allows you to accept
or reject the device request.
The job becomes eligible for device setup when its NHOLD value is equal to or less than its
RELSCHCT value. JES3 reduces the NHOLD value by 1 each time:
A predecessor job completes execution
A job (the job need not be part of the DJC network) issues the following form of the DJC
write-to-operator message:
JESDJC1 jobname net-id
Note: The variable 'jobname' refers to the name of the job to be terminated; NHOLD
values for successor jobs will be decremented.
If a job becomes eligible for device setup before its predecessor jobs complete execution,
JES3 schedules the job up to but not including generalized main service. JES3 then places
the job in DJC-hold status.
The job pending count is the number of abended jobs that have been resubmitted, or have
abended with the ABCMP=KEEP parameter specified on the //*NET statement. Specifying
this parameter ensures that the DJC network will be retained in the system until the job is
resubmitted and completed normally or until the DJC network is flushed by operator
commands.
Operator messages
The following message is issued for the DJC network entering the system. In this example
the DJC network is the one shown on the “Defining a DJC network” on page 481.
IAT6160 JOB NET JOBNET NOW ENTERING SYSTEM
The following message is issued for every job entering the network.
IAT6100 (JOB25676) JOB JOBE (JOB25675),PRTY=01,ID=VAINI NET-ID=JOBNET SUB=JOB25494”
Operator commands
The *I N,ID=JOBNET,parameters command lists or displays the status of all active DJC
networks. If none of the optional parameters is specified, this command provides statistics for
each defined DJC network in the JES3 system. The statistics include network ID, total
number of jobs in the DJC network, the number of completed jobs in the DJC network
The *F N command alters the DJC network status. In the example R (release) is requested.
DJCUPDAT DSP
The DJCUPDAT DSP is activated by the *S DJCUPDAT command, which is sent using the
INTERCOM macro by JES3 code when the first network enters the system.
Once the first job JOBA of the DJC network ends, the DJCUPDAT DSP is started. (The
DJCUPDAT DSP is non-cancellable. The following message is issued:
IAT7130 '*C DJCUPDAT ' REJECTED, REFUSED BY 'DJCUPDAT'
The DJCUPDAT DSP (IATDCUP) updates the job net control block (JNCB) and net control
blocks (NCBS) associated with a job net when a job within a net has terminated either
normally or abnormally, or the net is to be modified or cancelled by the operator. The first
DJCUPDAT invocation for the DJC network JOBNET will release jobs JOBB and JOBC.
At the successful completion of JOBC the DCJUPDAT DSP will flush JOBE as requested by
the DJC network definition. The following message is issued:
IAT7305 SUCCESSOR JOB JOBE FOR NET JOBNET BEING FLUSHED
Job Completion
MAIN INTERCOM
Messages
OUTSERV
Display DJC networks
DJCUPDAT
JSS
The DJCUPDAT FCT gets posted from the INTERCOM service and updates the DJC network
status using the information in the INTERCOM message. The number n indicates whether
the job jobname ended normally (1) or abnormally (2).
DISPDJC DSP
The DISPDJC facility displays the status of a dependent job control network. Displaying DJC
network information can be obtained by issuing the following command:
*X DISPDJC
*I N ID=JOBNET LIST
IAT8580 NET-ID JOB NAME JOB NUM NHOLD CT SUCCESR REL/SCH STATUS
IAT8581 JOBNET JOBA JOB25678 00000000 0000002 0000000 C
IAT8581 JOBNET JOBB JOB25679 00000000 0000002 0000000 C
IAT8581 JOBNET JOBD JOB25680 00000001 0000000 0000000 H
IAT8581 JOBNET JOBE JOB25682 00000001 0000000 0000000 C,H,N
DJC status
The current DJC status of the specified job or jobs when you *X DISPDJC. The STATUS
indicators are defined as follows:
AC The job completed abnormally
F The job failed at the reader/interpreter or the converter/interpreter
C The job is complete
OH The job is in DJC operator hold
H The job is in DJC hold
N The job is null
E The job is eligible for scheduling and may be active
WLM-managed initiators are specified by setting MODE=WLM for a JES3 job class group. As
many job class groups can be switched to WLM-managed mode as required. Job class
groups can also be switched back to JES-managed mode.
When a job in a WLM-managed job class group has completed processing in MDS, the job is
placed in the queue of jobs waiting to be selected for execution by service class. This queue
is ordered by main service arrival time (i.e. when the job completed C/I processing). Unlike
jobs in JES-managed groups, priority is not used to order the jobs on the queue, because
priority is one of the many criteria that can be used to assign a service class for a job.
Because jobs are ordered by main service arrival time and not priority, the time the job
completes setup processing does not determine its place in the queue.
When a request for work arrives from a WLM-managed initiator, the source of the request
narrows the choice in two ways:
1. The service class identification of the initiator limits the choice to jobs with that service
class.
WLM classification is responsible for assigning a service class and optionally a report
class to a job based on the classification rules in the WLM policy. A service class is a
group of work which has the same performance goals, resource requirements, or business
importance. For workload management, you assign a service goal and optionally a
resource group to a service class. WLM starts initiators on a service class basis.
Note: Even though WLM management operates at a job class group level,
WLM-managed initiators select work by service class and not by job class group like
JES-managed initiators. Therefore, the queue of work for a particular service class can
have jobs from different job class groups.
2. The processor on which the initiator is started limits the choice to jobs that can run on that
processor.
MVS workload management provides a solution for managing workload distribution, workload
balancing, and distributing resources to competing workloads. MVS workload management is
the combined cooperation of various subsystems (CICS, IMS/ESA®, JES, APPC, TSO/E,
z/OS UNIX System Services, DDF, DB2, SOM, LSFM, and Internet Connection Server) with
the MVS workload management (WLM) component.
When WLM receives a work request, it searches the classification rules for matching work
qualifiers. Because a piece of work can have more than one work qualifier associated with it,
it may match more than one classification rule. Therefore, the order in which you specify the
classification rules determines which service classes are assigned.
There is only one set of classification rules in the WLM service definition for a sysplex. They
are the same regardless of what service policy is in effect; a policy cannot override
classification rules.
JES3 WLM
Initiators, number and Initiators, number and
where, are controlled by where, are controlled by
JES3 WLM and JES3
Externals expressed in Externals expressed in
execution resources goals, importance, capacity
Start and stop of initiators Initiators are associated with
defined in initialization and a service class and sterted
through commands by WLM
Jobs are selected within a Jobs are selected within a
job class group service class
Some workload balancing Dynamic goal-oriented
controls exist, but difficult initiator management
to define
WLM-managed initiators are controlled entirely by WLM. That is, WLM determines how many
initiators to start, where to start them, and when to start them based on information in the
WLM policy, available processing capacity and work waiting for execution.
Initiator externals
Externals for JES3 managed initiators are expressed in terms of resources, not goals. For
example, the installation must specify in the initialization stream how many initiators should
be started, on what systems they should be started, what is the correct job mix based on the
number of initiators etc.
Externals for WLM managed initiators are expressed in terms of goals and importance in the
WLM policy. For example, batch work in job class A has 1 hour turn around time but is less
important than the IMS workload. Batch work in class B has a discretionary goal and should
be run when there is excess capacity.
Starting initiators
JES3 initiators are started and stopped based on installation definitions and backlog of jobs. It
does not take into consideration how the systems are performing, whether the work is
WLM-managed initiators are started and stopped based on performance goals, available
capacity, and importance, and based on input from JES3 (for example, the number of jobs
eligible to run).
WLM initiators are associated with a service class. An initiator that is started for a service
class only selects work from that service class. A service class may consist of jobs from
different job classes.
Note: A service class is a group of work which has the same performance goals, resource
requirements, or business importance.
WLM initiators select jobs for execution within a service class by their main service arrival
time. For the most part, this is the time that the job completed C/I processing. Priority does
not influence whether a job is selected for execution first, so changing the priority will have no
effect, unless it causes the job's service class to be changed.
For JES3 managed initiators, some workload balancing controls exist but they are difficult to
define and static in nature. That is, they do not adapt to changing workloads and system
conditions. The following initialization parameters can be used to perform some crude
workload balancing:
JOBMIX on the SELECT statement
CHOICE on the SELECT statement
LSTOR on the SELECT statement
IORATE and LSTRR on the CLASS statement
JES3's workload balancing externals are ignored for WLM managed initiators. WLM
automatically makes adjustments based on performance goals, importance, and available
capacity.
WLM classification is typically done for a job at the end of C/I processing after IATUX09 has
been called. However, a job can also be reclassified at the following times:
When a new WLM service definition is installed and activated. When a new service
definition is installed and activated, the classification rules may have changed and service
classes may have been added and deleted. As a result, the service class and report class
that is assigned to the job may change (we won't know until we reclassify it).
When a job's priority is changed via an operator command or due to deadline scheduling.
Since priority is one of the inputs to classification, the service class may change if the
priority is changed.
When a job's class is changed via an operator command. Since job class is one of the
inputs to classification, the service class may change if the priority is changed.
Jobs that were in the queue prior to JES3 release 8 do not have a service class assigned.
These jobs will be classified when release 8 is brought up for the first time.
A job is not reclassified when its priority is changed due to aging. This is because aging only
updates the priority in the in-storage control blocks and therefore is temporary.
Note: The installation can use this information in the classification rules to assign a service
class and report class to the job. See MVS Planning: Workload Management, SA22-7602
for more information.
Main Service
JES managed job class group
WLM managed job class group
Initiation
Sampling
JES managed initiator
WLM managed initiator
- WLM initiators started under MSTR susbsystem
Execution
Algorithms
Converter/interpreter classification
The JES3 batch job flow is essentially the same as in prior releases. However, there a few
differences with WLM batch initiator management. The first is that jobs are classified at the
end of Conversion/Interpretation. Classifying a job means that the job is assigned a service
class and optionally a report class based on the classification rules defined in the WLM policy.
This is done for jobs in both JES3 and WLM managed job class groups.
WLM-managed groups
Jobs are queued by main service arrival time within a service class
Jobs are not queued by priority
Jes3-managed groups
Jobs are queued by priority within job class groups
GMS Select (before allocation complete) MDS Allocation
WLM WLMJOB3
(Time=1)
WLMJOB2
(Time=2)
WLMJOB1
(Time=4)
WLMJOB4
(Time=5)
JES3 JESJOB1
(Time=4)
JESJOB2 JESJOB3
(Time=1)
JESJOB4
(Time=5)
JESTAPE
(Time=3)
(Time=2)
Reclassify jobs
Using JES3 commands, the change of a priority level or jon class can cause a job to be
reclassified:
Priority changed via *F,J=xx,P=xx command or via deadline scheduling Class changed
via *F,J=xx,CLASS=class command.
A new WLM service definition is installed and a policy is activated.
A new service definition can be activated while JES3 is running or while JES3 is down. When
JES3 recognizes that the service definition has changed, it suspends job selection and issues
the following highlighted message:
IAT2011 WLM RECLASSIFICATION IS IN PROGRESS
No jobs will be selected for execution at this time, even jobs in JES managed job class
groups. After all of the jobs have been reclassified, job selection is resumed and the following
message is issued:
IAT2016 WLM RECLASSIFICATION HAS COMPLETED
Note: If possible, you should not have jobs in JES and WLM managed job class groups
going to the same service class. Doing so weakens the relationship between the number of
WLM managed initiators and queue delay (the amount of time waiting for an initiator) that is
observed. For example, if a velocity goal is used, queue delay is included in the velocity
calculations for WLM managed initiators. If a service class contains jobs that run under
JES and WLM managed initiators, queue delay will be included in the velocity calculations
for the service class for some but not all jobs.
IWMDISC service
IWMDISC allows the caller to disconnect from the workload management services. This
means that the input connect token can no longer be passed to workload management
macros such as IWMCLSFY and IWMRPT. When a program disconnects, any enclaves
associated with the input connect token are deleted from the system. Any SRBs running in
the enclave are run as preemptible SRBs at the priority of the home address space. Any
enclave TCBs are converted to ordinary TCBs.
IWMPQRY service
The purpose of this service is to return a representation of the active policy which could be
used to explain how the sysplex is being managed and could be used in conjunction with
current measurements to evaluate the condition of the system/sysplex.
IWMRESET service
The IWMRESET macro allows the caller to perform the same functions as the RESET system
command. The caller can change the service class of work currently in execution, reset to a
new service class, quiesce work currently in execution, and reclassify work currently in
execution according to the service policy in effect.
After a job has been classified, JES3 becomes aware of the job's service class. In order to
make WLM aware of the service class and to eventually allow WLM to start initiators for it, the
service class must be registered with WLM (IWMBREG). Unlike classification, which is done
only on the global, the service class must be registered on every system in the sysplex. WLM
will not start initiators on a particular system for a service class unless it is registered on that
system.
Now that the service class is registered, JES3 needs to provide sampling data which
describes the number of jobs that are waiting for initiators. JES3 also needs to track
pre-execution delays for jobs. Both of these pieces of information are used by WLM to
determine whether a service class is meeting its performance goals, and whether initiators
should be assigned to (or unassigned from) the service class. Note that WLM does not start
initiator address spaces every time a service class needs one. WLM keeps a pool of idle
initiators, not bound to any service class, and dynamically binds them to a service class as
needed.
Once an initiator has been assigned to a service class, it goes through the normal job select
interface just like JES3-managed initiators.
IWMBREG service
When a new WLM service definition is installed and activated. When this occurs,
classification rules may have changed and service classes may have been added or deleted.
As a result, jobs need to be reclassified. If a job is assigned a service class that is not known
to JES3, the service class must be registered.
IWMRESET service
When a job's service class is changed as a result of a command. For example, the operator
may issue a *F J=job,SRVCLASS= or an MVS RESET jobname,SRVCLASS= command to change
the service class directly. Or the service class may be changed indirectly as a result of the job
needing to be reclassified when the operator changes a job's priority via the *F J=job,P=prty
command or changes a job's class via the *F J=job,CL=class command. If the service class
assigned to the job is one that is not known to JES3, the service class must be registered.
A service class is registered on a local processor the first time the service class appears in
the sampling information sent by the local. This will be covered in more detail later.
Policy change
A new service definition can be activated while JES3 is running or while JES3 is down. When
JES3 recognizes that the service definition has changed, it suspends job selection and issues
the following highlighted message:
IAT2011 WLM RECLASSIFICATION IS IN PROGRESS
No jobs will be selected for execution at this time, even jobs in JES managed job class
groups. After all of the jobs have been reclassified, job selection is resumed and the following
message is issued:
IAT2016 WLM RECLASSIFICATION HAS COMPLETED
If the deregistration request fails, the following message is written to the console:
IAT2013 WLM DEREGISTRATION FAILED FOR SRVCLASS srvclass, RETURN CODE =
REASON CODE = rsncode
If a service class is deregistered, sampling data is sent to all of the local processors. Since
the service class that was deregistered will no longer appear in the sampling data, this will
also cause the locals to deregister the service class.
Queue delays
The amount of time spent waiting for an initiator. That is everything else is available except an
initiator.
C/I delays
The amount of time it took to complete converter/Interpreter processing in JES3. This
includes the amount of time the job spent waiting to be scheduled for C/I; for DJC jobs, the
amount of time spent waiting for a predecessor job to complete; as well as the actual time
spent in C/I processing. The clock starts running for conversion delay as soon as the job is
added to the JES3 job queue during input service. The exception is if TYPRUN=HOLD is
specified. c In this case, since the delay is user inflicted, the clock starts running when the job
is released from hold.
READER
TYPRUN=JCLHOLD delay
CONVERSION
TYPRUN=HOLD delay
(Response time)
Operational delay (job hold, job class hold)
System or resource scheduling delay
Scheduling delay (class limit, duplicate jobnames)
Queue delay (waiting for an initiator)
INITIATION
(Velocity)
EXECUTION
OUTPUT SERVICE
PURGE
Response time goal delays
This visual shows the delays that are kept for response time goals. The delay time starts
following conversion and includes the time waiting for an initiator. The goals types are:
Discretionary
Work is run when the system resources are available.
Response Time Goal
Response time goals are measured from the time the job completes C/I processing (main
service arrival time) until it completes execution. Conversion delay is still tracked by JES3,
but it is not included as part of the goal. TYPRUN=HOLD time is not included in either the
conversion delay or in the response time calculation. If you are currently using velocity
goals for batch work, because TYPRUN=HOLD and conversion delay were included in the
definition of response time, you may wan to reevaluate this and see if a response time goal
is more appropriate.
Velocity Goal
Velocity is a measure of how fast work should run when ready (without being delayed for
WLM-managed resources). For jobs in JES-managed job class groups, the definition of
velocity is unchanged. For jobs in WLM-managed job class groups, velocity includes
queue delay (the amount of time waiting for an initiator). By including queue delay in the
velocity calculation, WLM can determine whether adding another initiator will help a
service class meet its performance goals. If you have velocity goals defined for batch
service classes, the achieved velocity will decrease as a result of queue delay being
included in velocity calculations. You may need to adjust your velocity goals.
SUBMIT
READER
TYPRUN=JCLHOLD
DELAY CONVERSION
TYPRUN=HOLD
DELAY OPERATIONAL
DELAYS RESOURCE
SCHEDULING
DELAYS JES
SCHEDULING
DELAYS INITIATOR
SCHEDULING
DELAYS
EXECUTION
WLM improves the balancing of WLM managed batch initiators between systems of a
sysplex. On highly utilized systems, the number of initiators is reduced while new ones are
started on low utilized systems. This can improve sysplex performance with better use of the
processing capability of each system. WLM attempts to distribute the initiators across all
members in the sysplex to reduce batch work on highly used systems while taking care that
jobs with affinities to specific systems are not hurt by WLM decisions. Initiators are stopped
on systems that are utilized over 95% when another system in the sysplex offers the required
capacity for such an initiator. WLM also increases the number of initiators more aggressively
when a system is low utilized and jobs are waiting for execution. Batch initiator balancing
improves the performance and throughput of batch workload over the sysplex.
WLM-managed initiators are controlled entirely by WLM. WLM determines how many
initiators to start, when to start them, and where to start them based on performance goals in
the WLM policy, backlog of jobs, and system capacity.
The WLM FCT actually does very little during sampling in order to keep the overhead under
the IATNUC task to a minimum. The WLM subtask is one responsible for analyzing the data
and passing it to WLM/SRM on the glob processors, and to the WLM subtasks on the local
processors.
Initiator startup for WLM managed initiators is a lot simpler from JES3's point of view. Here
are the differences between the two:
WLM initiator starts under master subsystem the initiator address space, not JES3
JES3 does not get involved with allocating, opening, and writing to the STCINRDR DD
JES3 does not create a job in the JES3 job queue for WLM managed initiators. As a result,
the first SSISERV is not done and the MEMDATA is not created until later in the flow. In
addition, JES3 will never see a demand select request for a WLM initiator because there is
no JES3 job number assigned.
In order for WLM to start initiators, the service class is registered with WLM. This makes WLM
aware that JES3 has work that references the service class. However, without additional
WLM initiators
WLM initiators are assigned a sequence number when they first select a job. This sequence
number identifies the initiator and is put into the job's JDAB and RQ when the job is selected
for execution. This allows us to determine which initiator is processing the job.
Note: When an initiator unbinds from a service class, the initiator address space does not
necessarily go away. Typically, the address space is returned to a free pool where it can be
used by other service classes or the same service class at a later time. When an initiator
rebinds to service class, a new initiator sequence number is assigned to distinguish it from
earlier incarnations.
On a sysplex level:
The number of jobs that are eligible to run on at least one system.
The number of jobs that are ineligible to run on any system because of class limits.
The number of jobs that are ineligible to run on any system because of other reasons such
as operator hold, class/group disabled, resources not available etc.
Sampling information
JES3 collects sampling information for WLM by examining jobs that are in one of the following
phases of JES3 processing:
Jobs waiting to be scheduled for main service - for example, jobs waiting for a class or
group to be enabled, jobs waiting because of a duplicate job name condition.
Jobs in MDS (setup) processing - for example, jobs waiting for their resources to be
allocated or for volumes to be mounted.
Jobs in GMS select
Jobs that are waiting to be scheduled for main service or that are active in MDS processing
are considered ineligible to run. That is, they cannot be selected by initiator at this time
because they are waiting for something. For example, if the job is in MDS allocation, it must
first have its resources allocated before it can be selected by an initiator. If a job is in GMS
select, it may or may not be eligible to run for any number of reasons. To determine whether a
job on the GMS select queue is eligible to run, the following checks are performed:
Are there any connected and online systems?
Is the job in hold?
Is the job's class and group enabled?
Are the class limits exceeded?
Is there available spool space?
Is the job's scheduling environment available?
Sampling interval
When sampling is complete, the WLM subtask sets up a new sampling interval timer. When
the time interval expires, the timer exit will post the WLM FCT for sampling. The sampling
interval varies from 2 to 60 seconds depending on whether the sampling data changes from
interval to interval. If the data changed from the last interval, the sampling interval is set to 2
seconds, if it is not already set to 2 seconds. If the sampling data did not change for 2
consecutive intervals, the sampling interval is increased by 1 second until it reaches 60
seconds. When the sampling interval is set to a value larger than 2 seconds, this is called
slow down mode. Since the sampling information did not change from interval to interval,
amount of time between intervals is increased so that less overhead is incurred.
*F J=xxx,RUN
The new *F J=job,RUN command allows you to cause a job to be selected for execution
ahead of other jobs. This command is only allowed for jobs that are in WLM managed groups.
When this command is issued, the best system that is eligible to run the job is selected and a
WLM managed initiator is started specifically for the job. This command should be used
sparingly since it defeats the purpose of WLM's initiator management algorithms.
If a hot start is performed, the fact that a RUN command was issued for the job is lost. If a
WLM managed initiator had been started as a result of the RUN command, it will terminate
and another RUN command will have to be issued.
Note: JES3 will allow you to issue multiple RUN commands for a job. Each RUN command
will cause an initiator to be started. However, it really won't help the job get selected for
execution any faster and will just waste system resources by starting up multiple initiators.
*F J=25702,RUN
IAT8037 JOB VAINRUN (JOB25702) RUN REQUEST REJECTED, JOB NOT ELIGIBLE TO RUN
IAT8095 SC64 - MAIN OFFLINE/NOT CONNECTED
IAT8095 SC70 - JOB CLASS DISABLED
IAT8095 SC65 - SCHEDULING ENVIRONMENT NOT AVAILABLE
If the RUN request is rejected because the job is not eligible to be selected for execution,
message IAT8037 is issued and message IAT8095 is issued for each system that the job is
allowed to run on. IAT8095 tells why the job is not eligible to execute on that particular
system.
*F J=25702,RUN
IAT8037 JOB VAINRUN (JOB25702) RUN REQUEST REJECTED, JOB NOT ELIGIBLE TO RUN
IAT8095 SC64 - MAIN OFFLINE/NOT CONNECTED
IAT8095 SC70 - JOB CLASS DISABLED
IAT8095 SC65 - SCHEDULING ENVIRONMENT NOT AVAILABLE
If the RUN request is accepted, message IAT8033 is issued. IAT8033 contains the system
name that was chosen for the RUN request and where the WLM managed initiator will be
started.
IAT8033 JOB VAINIRUN (JOB25703) RUN REQUEST ACCEPTED - SC65
3. *I J=VAINRUN,W
IAT8674 JOB VAINRUN (JOB25700) P=01 CL=C MAIN(GMS SELECT)
IAT8685 SC65 - NO INITIATORS STARTED IN SRVCLASS
IAT8685 SC70 - NO INITIATORS STARTED IN SRVCLASS
IAT8687 JOB WAITING/ACTIVE 00000 HOURS 00 MINUTES 15 SECONDS
IAT8699 INQUIRY ON JOB STATUS COMPLETE, 1 JOB DISPLAYED
Initiator starts
4. WLM recognizes that an initiator must be started and issues IWM034I to indicate that an
initiator is being started. WLM does not issue a START command like JES3 to start the
initiator, so you won't see a START command. This message appears in SYSLOG only.
Job selected
8. The job that was selected actually starts running.
Workload management manages a service class period as a single entity when allocating
resources to meet performance goals. A service class can be associated with only one
workload. You can define up to 100 service classes.
You can assign the following kinds of performance goals to service classes: average
response time, response time with percentile, velocity, and discretionary. You assign an
importance level to the performance goal. Importance indicates how vital it is to the
installation that the performance goal be met relative to other goals.
Because some work has variable resource requirements, workload management provides
performance periods where you specify a series of varying goals and importances. You can
define up to eight performance periods for each service class. You can also assign a service
class to a resource group if its CPU service must be either protected or limited.
OSDOSECH
JCT 'MOSE' 'MOSE'
TVT - TVTYOSD CONF
BLUE 'F'
VAINA TVT - RQWTRTOP 'F'
19445
RQ JOB3
P=4 'OSS'
CI(C)
MAIN(C) RQRQ
JOB1
OUTSERV 'OSS' 'OSS'
P=8
OUTSERV(A) scheduler element
PURGE active OSDBMOSE BDT Q OSDTMODE TCP Q
Types of output
There are four types of output that the JES3 processes. When output data sets are created
and are available for output service processing, output service builds an OSE that allows to
//SYSPRINT DD SYSOUT=F
JCL DD statement requesting print
OUTPUT JCL statement
JCL user control statement requesting processing of a DD
JES3 //*FORMAT user control statement
JES3 user control statement requesting processing of a DD
Initialization statements for processing output
OUTSERV statement - installation defaults for output
SYSOUT statement - processing options each output class
A SYSOUT data set’s processing options can be defined on a DD statement and an OUTPUT
JCL statement and a JES3 //*FORMAT statement.
SYSOUT DD statement
The SYSOUT parameter on a DD statement identifies a data set as a system output data set,
usually called a SYSOUT data set. The SYSOUT parameter also:
Assigns this SYSOUT data set to an output class. The processing options of each output
class are defined during JES initialization.
Optionally requests an external writer to process the SYSOUT data set rather than JES.
An external writer is an IBM- or installation-written program.
Optionally identifies the forms on which the data set is to be printed or punched.
Optionally refers to a JES2 /*OUTPUT statement for processing parameters.
OUTPUT JCL statements are useful in processing the output of one SYSOUT data set in
several ways. For example, a SYSOUT data set can be sent to a distant site for printing, as
shown in statement OUT1, while it is also printed locally, as shown in statement OUT2:
//OUT1 OUTPUT DEST=STLNODE.WMSMITH
//OUT2 OUTPUT CONTROL=DOUBLE
//DS DD SYSOUT=C,OUTPUT=(*.OUT1,*.OUT2)
The OUTPUT JCL statement supports over 70 keyword parameters for various processing
options specifications. All parameters are optional
Dynamic output - Before a program creates dynamically a SYSOUT data set, the program
must; describe the processing options for the SYSOUT data set, and allocate the data set.
dynamic allocation with dynamic output. When you use dynamic output together with dynamic
allocation, the options for SYSOUT data set’s processing options are similar to the options
available through the OUTPUT and DD JCL statements.
You can code multiple specific //*FORMAT PR statements for a particular SYSOUT data set
to specify special requirements for different copies of the data set. In addition, you can code a
//*FORMAT PU statement for the same SYSOUT data set, thereby both printing and punching
it.
You can also code multiple nonspecific //*FORMAT PR statements. In this case, the system
produces only one copy of each data set, combining any parameter values specified on the
statements.
The //*FORMAT PR statement supports less than 20 keyword parameters. All parameters are
optional
FCT Chain
CONCMD
WAIT
Initialization statements
The OUTSERV and SYSOUT statements are used to define output service characteristics.
The OUTSERV initialization statement specifies default values and standards for the output
scheduling element (OSE) to be used on output devices; for example: printers, punches, or
RJP (remote job processing). These defaults apply to every built OSE, regardless of the
device that handles the output, provided other overrides do not take effect.
Characteristics assigned to writers are specified in the JES3 initialization statements. These
characteristics may be changed by the operator. For example, if a device is active, a
RESTART command could change the characteristics. Normally, characteristics of dynamic
writer are changed when JES3 is restarting. An operator may allow a hot writer to assume
some or all of the installation-default set of characteristics or the operator may specify an
override set, thereby having total control over hot writers.
The OUTSERV initialization statement specifies default values and standards for the output
scheduling element (OSE) to be used on output devices; for example: printers, punches, or
RJP (remote job processing) These defaults apply to every built OSE, regardless of the
device that handles the output, provided other overrides do not take effect. The following are
the defaults for the OUTSERV statement:
OUTSERV,CARRIAGE=6,CB=N,CDSTOCK=5081,CHARS=GS10,FLASH=(NONE,255),FORMS=1PRT,
MODIFY=(NONE,0),OUTLIM=16777215,OUTSVFCT=1,STACKER=C,TRAIN=PN,THRESHLD=-1,
WS=(D,T,F,C,U,FL,CM,SS,PM),NPRO=90,SNAGROUP=NO,EXTOSENUM=YES
See z/OS JES3 Initialization and Tuning Reference, SA22-7550 for detailed parameter
descriptions.
Also, be aware that if the SYSOUT is associated with an output descriptor that is defined by
the OUTPUT JCL statement or TSO OUTDES command, then the output characteristics are
merged for SYSOUT on the HOLD queue.
Note: The CARRIAGE, CHARS, FLASH, FORMS, MODIFY, STACKER, TRAIN and
THRESHLD parameters on this SYSOUT statement override corresponding values on the
OUTSERV and DEVICE statements.
See z/OS JES3 Initialization and Tuning Reference, SA22-7550 for detailed parameter
descriptions.
Note: If a DD has both a direct FORMAT statement and an OUTPUT statement, both are
used to create separate OSEs.
// DD OUTPUT=
//ROGERS1 JOB. . . .
//ODYJ OUTPUT DEFAULT=YES,DEST=CHICAGO,CHARS=GT12,FORMS=3PRT
//* ODYJ OUTPUT JCL statement is not used
//DD1 OUTPUT DEFAULT=NO,DEST=DETROIT,CHARS=GT12,FORMS=3PRT
//STEP1 EXEC PGM=USERPGM
//ODYS OUTPUT DEFAULT=YES,DEST=NEWYORK,CHARS=GT22,FORMS=1PRT
//DD2 DD SYSOUT=A,OUTPUT=(*.DD1),CHARS=GT15
//* DD2 SYSOUT is sent to DETROIT
//DD3 DD SYSOUT=A
//* DD3 SYSOUT is for NEWYORK
The direct OUTPUT statement parameters apply only to the SYSOUT DD statement that
references it. Module IATIIOS processes the OUTPUT statement and saves the parameters
specified on the OUTPUT statement in the job data set control block (JDS). Module IATSIOD
processes the dynamic OUTPUT statements. When building OSEs, module IATOSDO
merges any values specified on the OUTPUT statement, found in the JDS, into the
OUTSERV work OSE.
Note: More than one OUTPUT default can be used for a DD statement. The output default
is not cumulative like the default for
Default OUTPUT specifications have no effect on system data sets (JESMSG, JESJCL,
and SYSMSG). The JESDS= keyword must be used to have OUTPUT specifications
applicable to system data sets.
Sample Job
//VAINIFO JOB (999,POK),EXPERT,MSGLEVEL=1,MSGCLASS=A
//*FORMAT PR,DDNAME=,FORMS=SPECIAL
//*FORMAT PR,DDNAME=STEP1.SYSUT2,FORMS=CONF
//*FORMAT PR,DDNAME=STEP2.SYSUT2,FORMS=SPEC
//STEP1 EXEC PGM=IEBGENER
//SYSPRINT DD DUMMY
//SYSIN DD DUMMY
//SYSUT2 DD SYSOUT=F
//SYSUT1 DD *
STEP1
//STEP2 EXEC PGM=IEBGENER
//OUTNJE OUTPUT DEST=WTSCPLX9
//SYSPRINT DD DUMMY
//SYSIN DD DUMMY
//SYSUT2 DD SYSOUT=(F,,BLUE),OUTPUT=(*.OUTNJE)
//SYSUT1 DD *
STEP2
OUTSERV,........,FORMS=1PRT,WC=(F,A,D,E,S),..
SYSOUT,CLASS=A,.........,FORMS=1PRT
SYSOUT,CLASS=F,.........,FORMS=GRAY
OSE construction
This visual describes a sample job that will be used to show OSE construction for the output
data sets for the job:
JESMSGLG
JESJCL
SYSMSGLG
SYSUT2 - step 1
SYSUT2 - step 2
//*FORMAT statement
The FORMAT statement can be specified in two ways--either directly or by default (through
the use of "DDNAME=," on the FORMAT statement). The default FORMAT statement
parameters apply to all SYSOUT DD statements for the job. The direct FORMAT statement
parameters additionally apply to the specified SYSOUT DD statement. Input service module
IATISFR processes the FORMAT statement and saves its parameters in the format parameter
buffer (FRP). When building OSEs, module IATOSDO (OUTPUT Service Driver OSE
Management) merges any value specified on a FORMAT statement, found in the FRP, into
the work OSE. Both types of FORMAT statements are shown in the example.
SYSOUT DD statements
For SYSOUT DD statements parameters are saved in the job data set control block (JDS).
When building OSEs, module IATOSDO merges any values specified on the SYSOUT DD
statement, found in the JDS into the OUTSERV work OSE. There are two DD statements
The STEP2 SYSUT2 DD statement specifies also the OUTPUT parameter to associate the
SYSOUT data set explicitly with an OUTPUT JCL statement. JES3 processes this SYSOUT
data set using the options from this DD statement combined with the options from the
referenced OUTPUT JCL statement and the //*FORMAT PR JECL statement.
When the sample job is executed, the following processing options will be assigned tor the
SYSOUT data sets:
DD Stmt Destination Forms Class
JESMSGLG ANYLOCAL SPECIAL A
JESJCL ANYLOCAL SPECIAL A
JESYSMSG ANYLOCAL SPECIAL A
SYSUT2 STEP1 ANYLOCAL CONF F
SYSUT2 STEP2 ANYLOCAL SPEC F
SYSUT2 STEP2 WTSCPLX9 BLUE F
At open time SSI module IATSIOR(JES3 Open and Restart SSI Routines), when the JDS
entry is built, calls module IATSIOD to build an OUTPUT Statement Number Table if the
SYSOUT data set directly references ONLY static output descriptors. This table will be added
to the end of the JDS ENTRY being built.
IATSIOR, at open time, calls module IATSIOD to build a JDS OUTPUT entry into a DOI for
OUTPUT references that have been dynamically created before allocation time. IATSIOD also
spools the OUTPUT descriptors using a USAM access method.
FCTs TVTABLE
RQs
RQWTRTOP
Posted for JOB1
OUTSERV SPORQTOP
OSE Create OSSRQTOP
JOB2
IATOSDR
JOB3
OSE construction
The output scheduling element (OSE) is the heart of the control data base. It summarizes the
scheduling characteristics for SYSOUT data sets for a job, each OSE representing data sets
within a job with similar output characteristics, requirements, and scheduling characteristics.
OUTSERV scheduling
Module IATOSDR is dispatched by the multifunction monitor when the TVT field, OSEFLAGS,
is posted for the following types of processing:
Normal output and the RQ placed on the OSSRQTOP chain
Spin-off output and the RQ placed on the SPORQTOP chain
After OSE construction for a job, the job’s RQ is placed on the RQWTRTOP chain waiting for
a writer (WTR) DSP to select it.
The TVT points to the chain of jobs that required processing as follows:
RQWTRTOP Points to the first RQ of a chain of RQs that requires write processing.
SPORQTOP Points to the first RQ of a chain of RQs that requires OSE build for spin-off
processing.
OSSRQTOP Points to the first RQ of a chain of RQs that requires OSE build for normal
processing.
Within each RQ on the above chains, the following chain fields are used to chain the RQ
entries on each chain:
RQWTRCHN points to the next RQ that requires writer processing.
RQSPNCH points to the next RQ that requires spin-off processing.
RQGRPCHN points to the next RQ that requires output service processing
OSE construction
JES3 builds OSEs, which represent output scheduling characteristics, processing options, of
a job's SYSOUT data sets by using initialization statement defaults, //*FORMAT JECL
statements, or MVS JCL DD and OUTPUT JCL statements. The same characteristics can be
specified on several statements. Characteristics specified on one statement can be
overridden by statements processed later. Conversely, if no specification is made for a
particular required characteristic, one of the statements used provides a default value.
OSE construction follows a specific pattern that merges the parameters specified on the three
types of statements mentioned above. Module IATOSDR calls module IATOSDO to build
OSEs in two different hierarchical structures depending on whether an OUTPUT or FORMAT
statement is specified for the SYSOUT data set. If neither statement is specified, IATOSDR
uses the same hierarchy as that built for the FORMAT statement.
Note: Installations that do not need to process an existing OSE that is moved to the writer
queue can use the IBM-supplied IATUX72, which is a dummy exit. IATUX19 will then be
used to process OSEs when they are built or rebuilt.
Installations that want to use an existing IATUX19 to process OSEs, but also need to
process output that is moved to the writer queue, can code IATUX72 so that it uses return
code 8 when called under the OUTSERV FCT. This directs the output service driver to call
IATUX19.
Installations that want to use a single exit to process OSEs both when they are built/rebuilt
and when they are moved to the writer queue can use IATUX72 for that purpose. IATUX72
should use return code 0 or 4 so that IATUX19 is not called by the output service driver.
When called from the output service OSE management module IATOSDO, the OSE passed
as input is a temporary OSE. IATUX72 may process the OSE or indicate that exit IATUX19 is
to be called to process the OSE before it is written to spool.
When called from the output service modify implementation (module IATMOOI), SYSOUT
API (SAPI) processor (module IATOSSO), or processor SYSOUT (PSO) scheduler (module
IATOSPC), the OSE is an existing OSE that is being moved from the hold queue to the writer
queue.Exit IATUX72 has the opportunity of examining and, if desired, changing the
information before the OSE is rewritten to spool.
OSE construction
Using the JCL specified in “Sample job for OSE construction” on page 546, this visual shows
the construction of the OSE for the first JDS entry JESMSGLG as follows:
1. An OSE is constructed in the work area and the data set characteristics are moved into
the "compare area".
IATOSDO processes default OUTPUT and FORMAT statements. Separate “Work” OSE
default templates are created for each of these statements. All OUTPUT related
statements are taken out of the JDS and put on a separate chain in order that output
values can be merged into the “Work” OSEs at a later point.
For FORMAT processing, Each data set for the current RQ is checked to find out if any
FRPs exist for it. If any FRPs for the data set are found, the JDS is set to indicate the type
of FRP found. As default OSEs are created for each type of data processed by the
OUTSERV writers and as default override FRPs are found, the OSEs are changed
according to the FRPs.
2. The non-specific FORMAT override is merged into the OSE under construction.
There are no previous matching OSEs, so the data set entry is added to this new OSE.
3. The work area OSE is moved to a "finished" OSE area.
OSE construction
Since output service uses a basic work unit, the output service element (OSE), to represent
all the output service characteristics of the output data sets of a job. Output service
characteristics include format, print size, paper requirements, number of copies, and other
specifications that tailor the output to the user's needs. Every job is associated with at least
one OSE; an OSE represents one or more data sets with similar output requirements. OSEs
change during output processing and exist during the processing of the OUTSERV scheduler
element in the following forms:
An OUTSERV work OSE (the OSE as it is initially created during OUTSERV DSP
processing)
A DOSE (the OSE as it resides on disk)
A writer work OSE (the writer's working copy of a disk OSE)
Final OSEs
The data set entries for STEP1.SYSUT2 and STEP2.SYSUT2, are processed through OSE
construction and they do not match any previous OSEs, by using the “compare area” of
previous OSEs for this job and the "finished" OSEs are separate from each of the other OSEs
for the job.
The second STEP2.SYSUT2 “Finished” OSE is created using the OUTPUT JCL statement
information in JDO. Therefore, the job has the final following OSEs for the following output
data sets:
STEP1.SYSPRINT This output data set is from DD SYSUT2 in step 1.
STEP2.SYSPRINT This output data set is from DD SYSUT2 in step 2.
STEP2.SYSPRINT This output data set is from DD SYSUT2 in step 2 but this copy is sent
to an NJE node as specified in the OUTPUT statement reference on
the DD statement, (OUTPUT= (*.OUTNJE)) in the JCL which
references a step OUTPUT statement in STEP2 which specifies
DEST=WTSCPLX9.
When all the OSEs are constructed, they are moved into a spool buffer and written to spool,
as shown in the visual.
RQ
JOB2
P=6 'OSS' P=255
RQ
JOB3
P=4 'OSS' P=100 'OSS'
RQ
JOB1
P=8 'OSS' 'OSS' 'OSS'
RQ/MOSE/OSS structure
The MOSE is a in-storage control block that summarizes all scheduling characteristics of
OSEs with identical characteristics. The RQ/MOSE/OSS structure shown in the visual
describes output service processing by illustrating the connection of the TVT/RQ structure,
the MOSE/OSD structure, and the OSS structure.
Output service uses the MOSE structure to improve scheduling performance. The OSD
(mapped by IATYOSD, the output service driver data area) contains a pointer to the MOSE
control structure. The output service scheduling element (OSS) is a control element that
specifies availability of OSEs and which jobs are associated with a MOSE. The MOSE and
the job's resqueue both contain pointers to the OSS. The OSS contains a pointer to its MOSE
and may contain pointers to additional OSS control blocks. A count of available OSEs in the
OSS permits the scheduling of the job output.
JES3 maintains also OSE information, for performance reasons, in a data space (JES3OST)
resident OST (OSE Summary Table) control blocks.
The output service scheduling element (OSS) is a control element that specifies availability of
OSEs and which jobs are associated with a MOSE. The MOSE and the job's resqueue both
contain pointers to the OSS. The OSS contains a pointer to its MOSE and may contain
pointers to additional OSS control blocks. A count of available OSEs in the OSS permits the
scheduling of the job output.
The OSS specifies the availability of OSEs. The OSS represents data sets (under the OSEs)
for the MOSEs. Each OSS element is chained as follows:
RQOSSTOP points to the first OSS entry for a job (RQ).
OSSCHAIN points to the next OSS entry for a job (RQ).
OSSNEXT points to the next OSS entry under a master OSE (MOSE).
OSSRQADD points to the job's RQ entry.
OSSBUFF points to the number of first OSE buffers relating to this OSS.
M.R 'OSE'
M.R 'OSE'
SPECIAL M.R 'OSE'
'A'
SPECIAL
'A' SPECIAL
JESMSGLG
'A'
JESJCL Datset1
SYSMSGLG Datset2 Dataset5000
CONF
'F'
Dataset3 ......... Dataset5001
CONF
STEP1.SYSPRINT 'F' Dataset5002
BLUE Dataset4
'F'
BLUE
STEP2.SYSPRINT 'F'
Dataset5
Increasing the limit to 64K didn’t fix the problem for everyone. The real fix to the problem had
to be to increase the capacity of the buffer number to four bytes instead of two. This makes it
possible for a job to have 64K times as many buffers as it had before. For the application of
the customer who submitted the requirement, their print application can now run for about of
65,536 weeks, or 1,260 years, give or take.
z/OS V1R9 JES3 lets a batch job or started task that needs to spin off output do so virtually
indefinitely (barring other issues such as running out of spool space). Applications can
therefore stay up longer with less need to recycle it.
DEVICE,JNAME = PRT1
,JUNIT=JUNIT parms
,BURST = YES|NO
,CARRIAGE = (YES|NO , name)
,CKPNT = nnnnn
,DGROUP=LOCAL|groupname
,DGRPONLY=NO|YES
,DTYPE =PRTxxxxx
,DYNAMIC =YES|YES,timeout|NO
,FORMS = (YES|NO , name)
,HEADER = YES|NO
,LINELIM = nnnnnnn{+}
,PAGELIM = nnnnnnn{+}
,PM = (LINE|PAGE|(LINE,PAGE)
,RECORDS=nnn
,XLATE=YES|NO
,WS = STANDARDS|(D,T,F,C,U,FL,CM,SS,CL,L,P,PM)
,WC = STANDARDS|class
* AFP printer parameters
,CHARS = (YES|NO , id1,....)
,FLASH = (YES|NO , name)
,MODIFY = (YES|NO , name, trc)
,STACKER = (YES|NO , C|S)
,BURST = (YES|NO , M) - 3800 only
,TRAIN = (YES|NO , name)
DEVICE statement
The DEVICE statement is used to define the output devices for printers, punches, (both local
and remote through RJP). The set of valid parameters of a DEVICE initialization statement
depends on the device type (DTYPE). The visual shows the set of parameters that can be
used for all printers and some of the AFP printer parameters. For full description of the
DEVICE statement, see JES3 Initialization and Tuning Reference.
Changes to the DEVICE statements through warm start, cold start, or hot start with refresh
for all parameters. Omitting one statement might cause a subgeneric split or loss of a device.
Omitting all statements for a device causes loss of the device as a JES3-managed device.
Hot start with refresh applies for all parameters.
Writing output
JES3 writer support consists of a writer driver, writer scheduling (selection) routines,
device-dependent routines, command-processing routines (also called message-processing
routines) and spool-access routines (for print and punch writers).
In most cases, the writer support is provided within the JES3 global address space. Certain
devices, however, use device-dependent routines that operate in a separate address space
called an output writer functional subsystem (FSS) address space. In this case, the writer
driver and the command-processing routines operate in the JES3 global address space and
communicate with the output writer FSS using the functional subsystem interface (FSI). The
device-dependent routines, also called a functional subsystem application (FSA), and the
spool-access routines operate in the output writer FSS.
The spool-access routines in an output writer FSS read and write spool data from USAM
protected data buffers (PBUFs) in CSA. JES3 does not release a PBUF until all the records in
the PBUF have been copied to a private area buffer in preparation for passing them to the
FSA. To allocate enough pages of storage for PBUFs used by all the output writer FSSs in the
JES3 complex, use the PRTPAGE parameter on the MAINPROC statement.
In order of WS parameters
Attention: Omission of any of the other WS= parameters indicates that no checking is to
be done for the missing parameter.
Using the WS as specified above, a writer request for a job means finding a job with the
highest priority data set whose destination is consistent with the writer's device and whose
forms and UCS train (or chars) are set up on the writer's device (or are allowed to change).
When there are several jobs with output that meets these particular requirements, the best
match job is selected. (For example, a job with no set-up changes is a better match than one
with set-up changes.)
When a job is selected to the writer, the OSEs are processed in the best match order and all
OSEs that can process on the device are marked pending for the device. This prevents a
different writer from selecting the same OSEs.
Use the WC= keyword on the *S devname or *R devname command to reassign the output
classes that the writer can process. This command can be issued while the writer is active.
Output classes of subsequent activity are affected. Regardless of the classes specified, they
can be ignored if output class (CL) is not specified in the WS= keyword.
In the figure for this section, the default specification specified on the OUTSERV statement in
the initialization statements specifies the only SYSOUT classes (F,A,D,E, and S) are to be
used. The order is which they are listed indicates the class F output is processed by the
others if priority (P) is specified in the WS parameters.
Note: Anytime WC parameters are specified for an individual writer or in the initialization
stream, the WC classes that are not specified are added behind the ones that are specified
with the exception of CL and P. Those two must be specifically specified to be used.
OUTSERV,............,FORMS=1PRT,WC=(F,A,D,E,S),..
WS=(D,T,F,P,CL,.......
SUPUNITS 'Finished' OSE 'Finished' OSE 'Finished' OSE
PRT1
F=WHITE
PRT2 'SPECIAL 'CONF' 'SPEC'
F=SPEC(H) 'A' 'F' 'F'
JESMSGLG STEP1.SYSUT2 STEP2.SYSUT2
PRT3 JESJCL
F=SPECIAL SYSMSGLG
D T F P CL
PRT1 08 0C 10 04 20
PRT2 08 0C 10 04 20
PRT3 08 0C 10 04 20
00-Null 04-P 08-D 0C-T 10-F 14-C 18-U 1C-L 20-CL 24-FL 28-CP 2C-SS 30-PM
Index values to routines to check selection criteria of a device with an OSE entry.
In the example in the visual, the scheduling of the just created OSEs is attempted by the
OUTSERV FCT using the default WS= parameters from the OUTSERV statement or WS=
parameters specified on each device that are now in the SUPUNITS entry. The writer classes
are used from the OUTSERV statement or the ones specified in the SUPUNITS entry for
each device.
Output service scheduling builds a mask to determine the best match OSEs to schedule to
the available devices.
First, JES3 compares the characteristics for the data sets to the characteristics of a writer
based on the writer's selection criteria. If JES3 finds that more than one data set is eligible to
be processed by a writer, then JES3 uses the following primary factors to determine the best
fitting data set to a writer:
Characteristics order of importance in the writer-selection list
Once the best fitting data set is determined, the remainder of that job's data sets are
processed applying the "best fit" approach within the boundary of the same job.
Writer characteristics
An output service writer has characteristics that can be changed (changeable characteristics)
or cannot be changed (non-changeable characteristics) during work selection processing.
Some of the writer's characteristics can be toggled between changeable and non-changeable
by using the hold option for that particular characteristic. Non-changeable characteristics
listed in the writer-selection criteria require the data set to match exactly the device
characteristics; otherwise the data set is considered ineligible.
On the visual example writer device PRT2 can only process output that specifies forms
“SPEC”. The H in the forms definition specifies that only designated forms are to be used until
you change this status. R would specify that JES3 can request that different forms be placed
on this device.
For example, to change the forms for printer PRT2, enter command:
*S PRT2,F=(STANDARD,R)
Controlling printers
*S PRTx,parameters
*R PRTx,parameters
*C PRTx,parameters
Use the *X WTR command to control output devices such as hot writers.
Once output devices are active, you can control what is processing by using the *S, *R, and *C
device commands.
*I U Enter the *I U command to display information for work currently on the
output service writer queue (Q=WTR), the output service hold queue
(Q=HOLD), or the output service MVS/BDT queue (Q=BDT). The following
subsections describe the parameters you can include in the command. If you
do not specify a particular queue, the display contains information for the
writer queue.
*F U Use the *F U command to modify requirements for work currently on the
output service writer queue (WTR), the output service hold queue (HOLD) or
the output service BDT queue (BDT).
*X WTR Use the *X WTR command to invoke a hot writer that will drive a selected
output device or a device chosen by JES3. The first call for a hot writer does
not start output processing. The *X command invokes a unique writer
program for the device and allows you to establish required writer
characteristics.
*R devname You can use the *R devname command to respecify writer characteristics
when you must stop a writer that has been started and then restart it. When
you use the *RESTART,devname command, JES3 interrupts the current
writer activity and allows you to respecify output writer characteristics before
JES3 continues to process work.
*C devname Unless a writer is ended (canceled), JES3 either continues to schedule the
data sets that the writer is configured to process or waits for you to start it with
a new configuration, using a *S devname or *R devname command.
A dynamic writer automatically ends when there is no more output in the
queue to process. If necessary, a dynamic writer can be removed from JES3
scheduling by varying it offline. Varying the device offline, however, will not
interrupt current activity. To end the current activity on the dynamic writer and
to prevent further scheduling of the writer, use the *V command and then use
the *C command. Ending a writer also ends an output writer functional
subsystem, if one is controlling the device. (The writer must be in an idle
state; if it is not, only the current data set on the writer is canceled.)
Output queues
The output queues for SYSOUT data sets are as follows:
Q=WTR Output service writer queue (Q=WTR): This queue contains data sets waiting
for output processing. Output service automatically selects data sets for
processing based on their selection characteristics such as output class, output
priority, and output device-related requirements. You can use JES3 commands
to place these data sets in operator-hold status. You can also use JES3
commands to modify a data set's selection characteristics.
Process SYSOUT and SYSOUT application program interface applications can
also process work on the output service writer (WTR) queue.
Q=HOLD Output service hold queue (Q=HOLD): This queue, sometimes called the
hold-for queue, contains data sets that are to be processed by other than
JES3-managed devices. These data sets must be processed by the function for
which they are held (external writer or TSO). The function that processes the
data set can then change data set characteristics, release it for JES3
processing, or cause JES3 to purge it. If necessary, the operator can force a
JES3 writer to process the data set or issue a modify (*F) command to move
the data set to a WTR for JES3 device processing.
Q=BDT This queue contains SNA/NJE networking job or networking system output
streams. MVS/BDT sends these job or system output streams to the proper
node within a SNA/NJE network. You can use JES3 operator commands to
hold, release, or cancel networking requests from the queue.
You must have previously specified HOLD=TSO and TYPE=RSVD on the appropriate
SYSOUT initialization statements. To access the output of a batch job, which is on the JES3
spool, the TSO user must issue the TSO command, OUTPUT.
To make output available for external writers, the SYSOUT statement can be used to
EXTWTR hold a particular class. Doing this specifies that the data set is to be returned to an
external writer.
//XWTRPROC PROC
//IEFPROC EXEC PGM=IASXWR00,PARM='PA',REGION=20K
//IEFRDER DD UNIT=TAPE,VOL=(,,,35),DSNAME=SYSOUT,DISP=(NEW,KEEP),
// DCB=(BLKSIZE=133,LRECL=133,BUFL=133,BUFNO=2,RECFM=FM)
The other two DD statements reference an external writer name that causes the output to be
held for an external writer of the name to process the output. The IBM supplied external writer
XWTR processes output with an external writer name of STDWTR.
External writer application routines execute in an address space other than the JES3 address
space. This type of writer is functionally independent of JES3 and operates as a completely
separate MVS job. However, the external writer/SAPI application interacts with JES3, via the
subsystem interface, to request data sets for processing. A subset of the output service
scheduling function called PROCESS SYSOUT and system application printer interface are
invoked as a result of this kind of request.
Dynamic writer
Automatically started by Ouput Service
DEVICE,...,DYNAMIC=YES[,timeout]
When output exists - (OSE) and device available
Output processed on job basis
All data sets printed ?
Get next job --- If no job - writer terminates
Hot writer
Called by operator - *X WTR,.........
DEVICE,...,DYNAMIC=NO[,+]
Output processed on job basis
All data sets printed ?
Get next job --- If no job - writer "Waits" for work
Operator command: *F W,device,DYN=YES|NO
Dynamic writers
JES3 output service starts the writer and its associated devices, based on the availability of
output devices and the current output data set requirements. After JES3 initialization, you
must use the *S command the first time you use a device associated with a dynamic writer.
After that, printing or punching begins automatically for properly prepared devices that are in
the ready state. You can use the *S, *R, and *C commands to control dynamic writers while
they are active. The dynamic writer will stop immediately after no suitable output is available
for processing by the writer.
Dynamic writers reduce the amount of control operations personnel have over when and how
writing is performed. They do allow operator interaction while the writer is active (that is,
changing of setup characteristics). The dynamic writer terminates when no more work is
available or a higher priority DSP is waiting for the device.
The values stored in the SUPUNITS entry for a device may be updated by the operator when
the JES3 *S and *R commands for that device are issued.
Dynamic writers are often used for volume printing on stock paper. These writers allow JES3
to control changing the setup characteristics for devices thereby reducing the amount of
control operators have over when and how writing is performed. Hot writers give operations
personnel total control of output handling. Operators enter commands to call and control hot
writers. Hot writers remain available, even when there is nothing to print.
You can use the *R devname command to respecify writer characteristics when you must stop
a writer that has been started and then restart it. When you use the *R devname command,
JES3 interrupts the current writer activity and allows you to respecify output writer
characteristics before JES3 continues to process work.
*X WTR,OUT=PRT1,F=(WHITE,H),WS=(P,CL),WC=(J,V)
When you specify WS= on the call command, the WS= parameters specified are merged with
the default WS parameters from the OUTSERV statement.
The SUPUNITS entry for the device is updated with the call parameters.
Since forms of WHITE was specified on a WTR call command, if you want to determine which
jobs require WHITE forms, issue the *I U,F=WHITE,N=ALL command.
*I D D=PRTWAY
IAT8562 PRTWAY (AC ) WTR F=STD(H) CH=(GT15) DYN=Y
IAT8562 PRTWAY TIMEOUT=NONE
IAT8562 PRTWAY H=Y B=N M=A
IAT8562 PRTWAY L=0+ PG=0 CK=200P DGRPY=N MK=C
IAT8562 PRTWAY NPRO=90 MODE=FSS FSS=PRINTWAY
IAT8562 PRTWAY C=STD3 PM=LINE,PAGE
IAT8562 PRTWAY SS=C CM=(NONE,0)
IAT8562 PRTWAY SETUPMSG=Y
IAT8562 PRTWAY PDEFAULT=(NONE)
IAT8562 PRTWAY WS=(CL,U)
IAT8562 PRTWAY WC=J DGRP=TCPIP
IAT8562 PRTWAY XLATE=Y
IAT8562 PRTWAY JOB WTR (JOB25655)
IAT8567 SC64= SC70= SC65=
IAT8500 INQUIRY ON DEVICES COMPLETE
WTR commands
The command *I D,D=devnum or /devnum or devname specifies the number (by 3-digit or
4-digit hexadecimal number) or name of one or more output devices. If omitted, the number
specified in the N parameter or the first ten JES3-managed devices attached to the global are
displayed. A slash (/) preceding the device number is not required. Device numbers can be
specified by any of the following formats:
ddd
dddd
/ddd
/dddd
Note: The devname or device number can be specified. FSS printers do not have device
numbers.
Display the status of each occurrence in the complex of the device defined on mains SC49
and SC50 by the device number 3D0:
*I,D,D=482,(SC49,SC50)
Printer Defaults
3800 10000
3211 2000
other printers 1000
If no valid checkpoint exists for the restarted data set, printing or punching resumes at the
start of the current copy of the current data set.
Output service also maintains a note every 100 lines. Printers can be restarted at the last
note taken.
Note: Also make sure that the DD statements for all data sets in the JES3 procedure are
correct and are for the correct global. For the checkpoint data sets in particular, note the
group name shown in IAT3040 when you start JES3. If the group name is incorrect, it
means you have specified checkpoint data sets for the wrong global or possible an old set
of checkpoint data sets that you are no longer using but have not deleted.
RSCD option
Data sets that are currently printing may be placed into an operator hold status by issuing an
operator command.
*R PRT1,H
X'012C'
M.R 300
In the example, M.R This is the M.R and the displacement is 300 bytes (012C in hex) to the
record in the buffer. If the printer is currently positioned to print that record, that record
becomes either the checkpoint or the note.
From the note, the M.R specifies the actual spool buffer to be read into storage that contains
where printing is be resumed. The displacement (Disp.) indicates to offset down into the
buffer to the record that restarts the printing.
Note: Notes are taken every 100 lines. Each printer definition allows a checkpoint to be
defined for restarts and repositioning of data sets that are printing.
Restarting output
The frequency with which checkpoints are taken is specified by the CKPNT parameter on the
DEVICE initialization statement. The actual frequency with which checkpoints are taken is
approximately the value specified by CKPNT (CKPNTPG or CKPNTSEC for FSS-supported
devices) but is never more than twice the specification. For example, if the default for the 1403
is used (1000 records), a restart would cause printing to resume between 1000 and 2000
records before the current position. Because they are buffered devices, the printed output on
remote writers might be misleading; the record count includes data that has been transferred
to the buffer but not yet printed. If a restart with repositioning has been performed, the
checkpoint intervals might not be on even boundaries.
If the data set is spaced forward past the end of the current copy, message IAT7006 is issued
and the output writer is stopped. Spacing by page on a non-3800 printer, when pages are not
defined in the data set, also causes message IAT7006 to be issued and the output writer to be
stopped.
Note: You can backspace a 3800 or 3900 printer to any page of any copy of a data set that
is not yet completely stacked. If you backspace it further, the printer is repositioned to the
beginning of the data set currently being stacked.
*I U,J=?,N=7
IAT8131 JOB JES3 (JOB00000), T=PRT, L=139702, PG=0, SR=139702,
IAT8131 JOB JES3 (JOB00000), BY=19068196.
IAT8131 JOB VTAM44 (JOB23479), T=PRT, L=242, PG=0, SR=242, BY=12252.
IAT8131 JOB OPTSO (JOB23480), T=PRT, L=1547, PG=0, SR=1547, BY=12252.
IAT8131 JOB SYSLOG (JOB23474), T=PRT, L=4, PG=0, SR=4, BY=8168.
IAT8131 JOB SDSF (JOB23494), T=PRT, L=51, PG=0, SR=51, BY=12252.
IAT8131 JOB ZFS (JOB23495), T=PRT, L=207, PG=0, SR=207, BY=114352.
IAT8131 JOB RMF (JOB23485), T=PRT, L=197, PG=0, SR=197, BY=118436.
IAT8119 NUMBER OF JOBS FOUND : 1824
*I U,Q=BDT
IAT8131 JOB VAINI (JOB25494), D=WTSCPLX9, L=4, PG=0, SR=4, BY=4084,
IAT8131 JOB VAINI (JOB25494), TG=TCP00000.
IAT8119 NUMBER OF JOBS FOUND : 1
IAT8141 NUMBER OF TCP JOBS FOUND : 1
*I U,Q=BDT
*I U,Q=HOLD
*I U,Q=WTR
*I U
Your selection of the proper "Q=" keyword value on the *I U command dictates what output
you want.
JES3 output data sets have a variety of unique characteristics. To display output information,
you specify one or more of the output characteristics as criteria for what is to be displayed.
Unless specifically stated, you can combine characteristics when using the *INQUIRY,U
command. For example, to display information for all output in the WTR queue created by job
TEST with an output class of T, enter:
*I,U,J=TEST,CL=T,N=ALL
To release a data set that is in hold status, use the *F U command. Specify the data set
name, the job number, and if there are multiple data sets with the same name in the specified
job, specify the sequence number S= as shown in the *I U command output. To change the
HOLD status, specify NH=N (new hold equal NO).
BLUE BLUE
BLUE
'M' 'F' 'A'
JESMSGLG
DSET1 DSET3
JESJCL
DSET2
JESYSMSG
DSET4
In the example shown in the visual, the job has multiple large data sets, DSET1 and DSET2,
and a data set DSET3 which has 10 copies. DSET4 is the other data set and is much smaller.
Normal output service processing would be to schedule all the data sets to the same printer
as shown in the visual. A job that has work created in this manner is eligible to be
concurrently processed by several output service writers that have the same processing
characteristics. Normally, similar pieces of work for a job are assigned to the same writer.
THRESHLD parameter
The THRESHLD parameter should be used when the user wants to permit concurrent
printing or punching of multiple copies of data sets or a large volume of data sets for a job on
several output service writers. The THRESHLD parameter assumes that the data set size is
the number of records in the data set multiplied by the number of copies. Data sets that equal
or exceed the value specified are queued as separate piece of work for output service writers.
The THRESHLD parameter specifies the default maximum size for a SYSOUT data set. The
maximum value that may be specified is 99999999. THRESHLD=-1, which is the default,
indicates that no threshold processing is in effect. This parameter is used by output service to
build and queue OSEs for writers. The THRESHLD parameter assumes that data set size is
the number of records in the data set multiplied by the number of copies. Data sets that equal
or exceed the value specified are queued as separate piece of work for output service writers.
1 OUTSERV,............,THRESHLD = 1500000
2 SYSOUT,CLASS=M,.........,THRESHLD = 100000
THRESHLD specification
The THRESHLD parameter can be used to avoid large data sets in a single job being
scheduled to the same device, when it is desired to have large data sets print simultaneously
on different printers. The THRESHLD parameter specifies the default maximum size for a
SYSOUT data set. The maximum value that may be specified is 99999999. THRESHLD=-1,
which is the default, indicates that no threshold processing is in effect. This parameter is used
by output service to build and queue OSEs for writers. The THRESHLD parameter assumes
that the data set size is the number of records in the data set multiplied by the number of
copies. Data sets that equal or exceed the value specified are queued as separate piece of
work (under separate OSEs) for output service writers.
* *
BLUE
'M'
* BLUE
'F' * BLUE
'A'
*
*
BLUE BLUE
*
* THRESHLD OSE
'M' 'F'
DSET2 DSET4
JES3 calculates the size of the sysout data set(s) as the number of records multiplied by the
number of copies requested. When the size exceeds the THRESHLD value, JES3 creates a
new unit of work on a data set boundary, and queues it for printing.
Flag OSEs
When output service is scheduling the OSEs to a printer, data sets meeting THRESHLD
status have their OSEs flagged as a "THRESHLD" OSE. When scheduling the OSEs to the
same printer, OSEs flagged as "THRESHLD" are not marking as pending to the active printer
for the job. This allows another printer device to select the same job and schedule the
"THRESHLD" OSE. This allows large THRESHLD OSEs to print simultaneously on different
printers.
Note: JES3 schedules one non-THRESHLD OSE together with a THRESHLD OSE.
DSISO specifications
When there are multiple large output data sets in a job, JES3 provides a method to delete the
data sets as soon as they are printed. The default is to purge all the spool space used by a
job when the job purges. The DSISO parameter allows data sets to be purged from the spool,
freeing the spool space used before the job purges.
DSISO specifies that each data set in this class is to have its own track allocation table (TAT).
This increases spool utilization because each data set can be purged when the data set
processing is complete instead of when the job completes.
Note: This parameter does not apply to the JESMSGLG, JESJCL, or JESYSMSG data
sets. If you specify the SPART or TRKGRPS parameter on this statement, you must also
specify the DSISO parameter.
TRKGRPS parameter
When a job needs spool space for the first time, JES3 allocates one or more track groups to
the job. You can specify how many track groups JES3 should allocate by using the TRKGRPS
parameter on the MAINPROC, CLASS, a SYSOUT initialization statements. The person
When large data sets are being created when a job is in execution, by SYSOUT class you can
specify on the SYSOUT initialization statement (TRKGRPS=(9,9)) to send multiple track
groups to the user memory from the JES3 address space.
Note: If you specify the TRKGRPS parameter on the SYSOUT statement, you must also
specify the DSISO parameter.
FREE option
The FREE JCL parameter specifies when the system is to unallocate the resources used for
this DD statement's data set. The resources can be devices, volumes, or exclusive use of a
data set.
Specifying FREE will not release the enqueue on the data set until the last step that requires
the data set completes processing.
FREE=[END | CLOSE]
– END - Requests that the system unallocate the data set at the end of the last step that
references the data set.
– CLOSE - Requests that the system unallocate the data set when it is closed.
If the DD statement specifies FREE=END and a DISP subparameter of PASS, the data set is
not unallocated until the end of the job or until used for a later DD statement with a disposition
of other than PASS. Do not specify FREE=CLOSE on a DD statement with a ddname of
JOBLIB or STEPLIB; CLOSE is ignored.
If you specify SPIN=NO with FREE=CLOSE, the sysout data set will be unallocated, but not
printed until the end of the job.
F [XWTR.|jobname.]identifier {,{CLASS|C}=[classes] }
{,{DEST|D}=[LOCAL] |remote-workstation-name}
{,{FORMS | F}=[forms-name] }
Replacing the IBM-Supplied Routine: You can replace the IBM-supplied routine with your
routine by:
Renaming the IBM-supplied routine (IEFSD087) to an alias.
Naming your routine IEFSD087
Installing your routine in SYS1.LINKLIB
The external writer will call your routine by default. You can request the IBM-supplied routine
by coding its alias on the SYSOUT= parameter. For example, where IBMWRITR is the alias
you've given to the IBM-supplied routine.
//MYDATA DD SYSOUT=(H,IBMWRITR)
Note: Do not code STDWTR as a writer name. STDWTR and INTRDR are and are
reserved for JES3 used as a parameters in the MVS operator's MODIFY command.
The JES3 *F U command assigns a external writer name STDWTR to a SYSOUT data set
with the NW=* parameter specification. For example:
*F U Q=WTR CL=F NCL=G NQ=HOLD
*F U Q=HOLD CL=G NW=* ND=LOCAL
SAPI interface
Although both the SYSOUT Application Program Interface (SSI Function Code 79) and
Process SYSOUT (SSI Function Code 1) allow applications to retrieve SYSOUT from JES
spool using a variety of criteria, there are several important differences between the two
function calls. IBM recommends that applications use the SAPI, as it is richer in function, as
well as having better performance characteristics than the process SYSOUT call.
External writer/SAPI application routines execute in an address space other than the JES3
address space. This type of writer is functionally independent of JES3 and operates as a
completely separate MVS job. However, the external writer/SAPI application interacts with
JES3, through the subsystem interface, to request data sets for processing. A subset of the
output service scheduling function called PROCESS SYSOUT and system application printer
interface are invoked as a result of this kind of request.
PSO interface
The process SYSOUT (PSO) is an interface to JES3 to allow access and control of SYSOUT
data sets from other address spaces. It is used primarily by TSO OUTPUT and RECEIVE
commands and external writers. Process SYSOUT (PSO) is an interface used to process the
output on the writer and hold queues. The PSO interface allows applications to view output on
the JES spool data sets before a device prints the output allowing the end user to eliminate
any unwanted output. Any application using PSO will NOT be able to process IP addresses;
the exception is a TSO user. JES3 is changed to ensure that a TSO user can process any
SYSOUT, which is displayed to the user from the TSO STATUS command, by using the TSO
OUTPUT command. The SYSOUT returned to the TSO user from the TSO OUTPUT command
can contain an IP address. The TSO user is not informed that the SYSOUT contains an IP
address and cannot select by using an IP address.
SAPI overview
The SYSOUT Application Program Interface (SSI function code 79) allows JES3 to function
as a server for applications needing to process SYSOUT data sets residing on JES3 spool.
Use of the SAPI SSI call allows a user-supplied program to access JES3 SYSOUT data sets
independently from the normal JES3-provided functions (such as print or network). Users of
this function are application programs operating in address spaces external to JES3. SAPI
supports multiple, concurrent requests from the applications' address spaces. Each issuer of
the IEFSSREQ macro is referred to as an "application thread."
PUT/GET request
Initiates data set selection, and optionally can provide disposition processing for the data set
returned in the previous SAPI PUT/GET call. PUT/GET request processing occurs when an
application thread issues the IEFSSREQ macro to initiate data set selection. The input SSOB
and SSS2 control blocks, provided by the application thread, specifies the selection criteria
used to select a data set. The application thread can use a wide variety of selection criteria to
select a SYSOUT data set to be processed.
Information contained within the SYSOUT data set's scheduler work blocks (SWBs) can also
be returned to the application thread. Much of the information contained within the SWB is
normally not processed by JES3, and therefore much more information about the data set
can be retrieved from the SWB than is returned in fields of the SSS2. Examples of such
information contained within the SWB are NAME, BUILDING, ADDRESS, and so on.
The application thread needing to retrieve this SWB information, sets either SSS2FSWB or
SSS2FSWT in flag byte SSS2MSC1 when issuing a PUT/GET request. The setting of
SSS2FSWB implies SSS2FSWT processing as well. JES3 then provides the application
thread the information that can be used when the application thread invokes the SJF services
to retrieve this SWB information. These services are either SJFREQ REQUEST=RETRIEVE
or SWBTUREQ REQUEST=RETRIEVE.
COUNT request
Returns the count of entries that can be scheduled without returning a particular data set.
JES3 counts the number of schedulable elements (OSEs) matching the input selection
criteria and returns the count to the application thread in field SSS2CDS. An application
thread does not receive a data set in the SAPI COUNT call. Included in the information
returned are the total byte count, record count, line count, and page count.
Nucleus
SAPI requests
SAPI supports multiple, concurrent requests from the applications' address spaces. Each
issuer of the IEFSSREQ macro is referred to as an "application thread."
Multiple clients
Each unique SSOB/SSS2 pair supplied as input on the IEFSSREQ request is viewed as a
separate thread by JES3. You can multi-task these requests within your application's address
space, or even issue multiple IEFSSREQ requests (supplying different SSOB/SSS2 pairs)
from within a single task in your application's address space. A task that issues the original
IEFSSREQ can transfer the SSOB/SSS2 control block pair to another task within your
address space for subsequent IEFSSREQ requests. However, if this is done and the
originating task (which JES3 considers to be the owner of that specific thread) fails, then
JES3 cleanup occurs for resources associated with that SSOB/SSS2 pair. If the transferred
task attempts to issue another IEFSSREQ with that same SSOB/SSS2 pair after such a
termination occurs, incorrect processing occurs because JES3 has disconnected from that
SSOB/SSS2 pair.
JES Application
APPL request (Data set PUT/GET)
Return data set IEFSSREQ SSOB=
information matching SSS2TYPE: SSS2PUGE
user's input criteria and (Allocate SYSOUT)
update data set disposition DYNALLOC
of previous returned DALSSREQ
data set
---------from SAPI--------------
DALDSNAM=dsname
DALBRTKN
OPEN SYSOUT
PUT/GET request
This request initiates data set selection, and optionally can provide disposition processing for
the data set returned in the previous SAPI PUT/GET call.
PUT/GET request processing occurs when an application thread issues the IEFSSREQ
macro to initiate data set selection. The input SSOB and SSS2 control blocks, provided by the
application thread, specifies the selection criteria used to select a data set. The application
thread can use a wide variety of selection criteria to select a SYSOUT data set to be
processed.
Once the application thread receives a data set from the JES3, you must allocate (through a
dynamic allocation with the data set name that is returned from SSS2DSN) the data set to
process it. During this allocation, dynamic allocation requires DALBRTKN text unit. JES3
performs the initialization of this text unit. The application thread must move the address from
field SSS2BTOK into a text unit pointer field for the JES3-provided DALBRTKN text unit. The
The PUT processing occurs when the application thread subsequently issues a following
IEFSSREQ macro to select another data set. You can use fields in the optional disposition
section of the SSS2 to change certain attributes of the previously obtained data set from the
prior IEFSSREQ call.
Dynamic allocation
Once the application thread receives a data set from the JES3, you must allocate (through a
dynamic allocation with the data set name that is returned from SSS2DSN) the data set to
process it. During this allocation, dynamic allocation requires DALBRTKN text unit. JES3
performs the initialization of this text unit. The application thread must move the address from
field SSS2BTOK into a text unit pointer field for the JES3-provided DALBRTKN text unit. The
actual processing of the SYSOUT data set depends upon your specific application.
Unallocate SYSOUT
After your application thread has completed processing of the data set, it then unallocates the
data set with the text unit of DUNDDNAM specifying the DDNAME of the returned data set
from the original allocation. The allocation/unallocation of the data set must occur once per
returned data set.
JES3 Application
APPL request
(JES checks for an IEFSSREQ SSOB=
ECB and when no SSS2ECBP
work is returned will (address of ECB to be posted)
post the ECB when
new work comes)
The application thread must provide a pointer to an ECB in field SSS2ECBP if the application
thread wants JES3 to post it when newly created work has characteristics matching the
thread's selection criteria. This occurs after JES3 returns SSS2EODS for a PUT/GET
request. If an ECB is not supplied, it is the responsibility of the thread to initiate an IEFSSREQ
request.
Wildcard values
* - Multiple characters
? - For a single character
Selected fields
SSS2JOBN - job name
SSS2CREA - Creator userid
SSS2PRMO - Process modes (1-4)
SSS2DEST - Destination
SSS2PGMN - User writer name
SSS2FORM - Form number (1-8)
Wildcard support
The SSI request returns information for matching the pattern specified by the selected fields.
The selected fields are used as filters to select output data sets that match the specified
fields. The pattern can contain the following wildcard characters:
An asterisk ('*') -- matches zero or more characters
A question mark ('?') -- matches one character.
Inforprint Server
Infoprint Server is an optional feature of z/OS that uses z/OS UNIX System Services. This
feature is the basis for a total print serving solution for the z/OS environment. It lets you
consolidate your print workload from many servers onto a central z/OS print server.
You can also select the main on which you want an output writer FSS to operate by coding the
SYSTEM= keyword on the FSSDEF initialization statement.
Include a DEVICE statement for each printer that you want to run under this FSS. You must
include the FSSNAME= keyword on the DEVICE statement that specifies the same name
that you code on the FSSNAME= keyword of the FSSDEF initialization statement.
Method of communication
FSI interface
The functional subsystem interface provides the actual communication facility between JES3
and the functional subsystem application. The control block structure to support the functional
subsystem interface is built by the subsystem interface called CONNECT. There are three
forms of communication that occur between an SSI address space and an FSS address
space:
CONNECT/DISCONNECT requests, which use MVS SSI.
FSS-to-JES3 communication, which involves communication to the JES3 global address
space (through GETDS, RELDS, and SEND) and communication strictly within the
functional subsystem FSS and FSA (through GETREC, FREEREC, and CHKPT).
Global JES3-to-the functional subsystem communication, which involves both the ORDER
and POST commands. This is the only instance where a global JES3 address space
initiates communication with a non-JES3 address space.
FSIREQ macro
Like the FSS address spaces and JES3 global address space, the function-dependent code
and JES3 code in an FSS need a way to request information from each other. The JES3 code
and the function-dependent code communicate by using the functional subsystem interface
macro, FSIREQ. The FSS and FSA both use the FSIREQ macro to request a service from the
JES3 code in the FSS address space. The JES3 code uses the FSIREQ macro to request the
FSS or FSA to perform a function. The FSI parameter list (FSIP) is used to communicate the
type of request.
ECSA
(Staging areas)
ASID=8 ASID=10
The writer application code, PSF, initiates requests via the FSIREQ macro. This macro
request invokes the JES3 code in the FSS address space and when the request needs to be
passed to GLOBAL JES3, the SSISERV macro is used to send the request via a staging area
to the JES3 address space to the dest queue entry 152 (Dynamic Dest Queue).
FSA communication
The JES3 modules in the WTR FSS address space read the spool from the FSS address
space. Pointers to the SYSOUT files are passed to the FSS address space by GLOBAL JES3
when a data set is selected for printing.
PSF writes directly to the printers from the FSS address space.
SSDEF,FSSNAME = fssname
,TYPE = WTR
,PNAME = procname
,SYSTEM = (sysname | sysnamei,sysnamej,...)
,TERM = (YES | NO)
FSSDEF statement
An FSS can be defined by an FSSDEF statement during a warm, cold start, and hot start
refresh. The FSSDEF statement defines the name and type of FSS. Use the FSSDEF
statement to define the characteristics of a functional subsystem (FSS) which operates in its
own address space. Use a FSSDEF statement for either of the following:
To define one or more output writer FSSs for printers that you define to run in FSS mode
(via the DEVICE initialization statement). You can define more than one printer to run
under the control of a single output writer FSS. If you do not define an output writer FSS
for each printer that requires one, JES3 creates an FSS using default values.
The SYSTEM keyword specifies the JES3 main on which the FSS is to operate. The
name(s) must be the same as specified on the NAME parameter of the MAINPROC
statement for the main.
The TERM keyword specifies whether or not the FSS terminates if the JES3 global
terminates as the result of an *RETURN or *DUMP operator command.
Use TERM=YES option after an orderly shutdown of JES3. This will incorporate the
changes you make in the DYNALLOC, HWSNAME, CIPARM, RESDSN, and SYSOUT
initialization statements. Restarting JES3 will establish the new changes.
NPRO nnnn - specifies a 1 to 4 digit value in seconds. This value will be used as a
delay before forcing out pages of data to the data integrity point, (DIP). The
value can range from 0 to 9999. Specifying 0 seconds indicates that the
run-out is to be immediate.
– STANDARD - indicates to use the value specified on the OUTSERV
statement.
– NO - specifies that this device will not use the run-out feature.
//PRINTW43 PROC
//STEP01 EXEC PGM=APSPPIEP,REGION=4096K,TIME=1440,PARM=(,,,,TCPIP,UNIC
//JOBHDR OUTPUT PAGEDEF=V06483, /* JOB HEADER PAGE */
// FORMDEF=A10120,CHARS=60D8 /* FORMDEF: ALTERNATIVE BIN*/
//JOBTLR OUTPUT PAGEDEF=V06483, /* JOB TRAILER PAGE */
// FORMDEF=A10110,CHARS=60D8 /* FORMDEF: MAIN BIN */
//DSHDR OUTPUT PAGEDEF=V06483, /* DATA SET SEPARATOR */
// FORMDEF=A10110,CHARS=60D8 /* FORMDEF: MAIN BIN */
//MSGDS OUTPUT PAGEDEF=A08682, /*
// FORMDEF=A10110,CHARS=60D8 /*
//PRTINFO DD DSN=SAMPPROC.PRTINFO,DISP=SHR
//FONT01 DD DSN=SYS1.FONTLIBB,DISP=SHR /*
// DD DSN=SYS1.FONTOLN,DISP=SHR /*
// DD DSN=INST.FONTLIB,DISP=SHR /*
//PRT1 CNTL
//PRT1 PRINTDEV FONTDD=*.FONT01, /* DEFAULT FONT LIBRARY DD */
// OVLYDD=*.OLAY01, /* DEFAULT OVERLAY LIBRARY DD */
// PSEGDD=*.PSEG01, /* DEFAULT SEGMENT LIBRARY DD */
// PDEFDD=*.PDEF01, /* PAGEDEF LIBRARY DD */
// FDEFDD=*.FDEF01, /* FORMDEF LIBRARY DD */
// FONTPATH=*.DOF1, /* DATA OBJECT FONT LIBRARY DD */
// JOBHDR=*.JOBHDR, /* JOB HEADER SEPARATOR OUTPUT */
// JOBTRLR=*.JOBTLR, /* JOB TRAILER SEPARATOR OUTPUT */
// DSHDR=*.DSHDR, /* DATA SET HEADER SEPARATOR */
//PRT1 ENDCNTL
Several PSF startup procedures are supplied with PSF. You can modify the startup
procedures supplied with PSF or write your own startup. The startup procedure can also
specify defaults that cannot be set with JES initialization statements for printer FSA
definitions.
PSF procedure
The figure shows a sample startup procedure for one FSSs, each with a single printer FSA.
PRT1 is a channel-attached printer that is defined via a DEVICE statement in the JES3
initialization statements.
No operator dialog is required to initialize an output writer FSS. Special output writer
functional subsystem DSPs are initialized to communicate with the FSS driver module using
the functional subsystem interface. When initialization completes, the FSS driver is activated.
(FSIREQ) IEFSSREQ
(FSS CONNECT) (SSI is used)
FSS CONNECTED
TYPE (RESP
This command starts the FSS address space and the IAZSFSS load module gets control.
When the JES operator issues the command to start an FSS printer device, JES determines
if the FSS for which the printer is defined is currently active. If that FSS is not currently active,
JES starts the FSS. Immediately after JES receives a response for the START FSS order
from the FSS, JES issues a START FSA order for each FSA defined to that FSS. If the FSS is
currently active, JES converts the command into a START FSA order to start the printer
device.
The FSIREQ CONNECT request results in a call to the SSI CONNECT routine of the
subsystem specified in the CDFSSID field of the CONNECT parameter list. The CONNECT
parameter list is used as the SSOB extension for the SSI call. The SSI CONNECT routine
loads the JES functional subsystem support modules into the FSS address space and then
passes control to the FSI CONNECT routine in that module.
The FSS address space then start the FSA and is now waiting for an ORDER for a writer to
start.
GETDS (FSIREQ)
GETDS RESP
JES3 issues the ORDER to start the device, as shown in the visual. Once the START
DEVICE has been responded to from the FSA, the FSA may start selecting output data sets
from JES3 using the GETDS. A GETDS request is made from IAZSFSA and JES3 responds
with a data set.
To start an FSA, JES issues the START FSA order to the FSS's FSI ORDER routine. During
FSS CONNECT processing, the FSS places the address of the FSI ORDER routine into the
CDFAD field of the CONNECT parameter list for use by JES. JES passes the address of the
START FSA order parameter list in register 1. The parameter list contains the address of the
order response area (IAZRESPA).
If the FSA is successfully initialized, the FSA issues the FSA-level FSIREQ CONNECT
request. This is the response to the START FSA order.
Therefore, the START device routine is the signal for the FSA to begin issuing GETDS
requests. Once the device is started, it can begin requesting data sets from JES for output
processing.
GETREC (FSIREQ)
(LOOP) DATA
FREEREC (FSIREQ
GETDS (FSIREQ)
(ISSUE)
(ISSUE) TYPE(RESP
GETDS RESP
RELDS (FSIREQ)
(ISSUE) TYPE(ACK
(ISSUE) TYPE(RESP
RETURN
After an FSA notifies JES3 (using the FSI SEND request) that it successfully started the
associated device, it is ready to begin data set processing. As part of data set processing, the
FSA invokes the FSI data access services (GETDS, GETREC, FREEREC, RELDS, and
CKPT) to:
Obtain a SYSOUT data set and its characteristics from JES3.
Obtain logical records of an obtained data set
Release logical records for a data set to JES3
Release an obtained data set to JES 3
Request JES3 to record checkpoint information for a JES spool data set currently being
processed by the FSA device
WTR
(PSF)
*I F,TYPE=WTR
IAT8701 FSSNAME TYP SYSTEM PROCNAME JOBID STAT T S MD RC
IAT8701 DSP/DEV MAXASST
IAT8702 WTRIAZF WTR SC43 WTRIAZF JOB26509 FSSC Y JES 42
IAT8702 ACTV IAZFSS
*I,F
IAT8701 FSSNAME TYP SYSTEM PROCNAME JOBID STAT T S MD RC
IAT8701 DSP/DEV MAXASST
IAT8702 CIFSS1 C/I SC43 JES3CI JOB33379 ACTV N Y
IAT8702 020,001 00000000
IAT8702 WTRIAZF WTR SC43 WTRIAZF JOB34153 FSSC N JES 42
IAT8702 ACTV IAZFSS
A display of the WTR FSS shows a job, JOB26509, as active on the FSS writer.
Syntax:
*INQUIRY F,[ACTIVE | ALL | FSS=(fssname,....) | INACT | TYPE=[WTR | CI]] [C | S]
Display the short version of messages IAT8701 and IAT8702 for the inactive FSSs which
display both types of FSSs:
*I,F,INACT,C
IAT8701 FSSNAME TYP SYSTEM PROCNAME JOBID STAT T S MD RC
IAT8702 CIFSS2 C/I SY1 JES3CI NONE INAC N N
IAT8702 CIFSS3 C/I SY1 JES3CI NONE INAC Y N
IAT8702 CIFSS4 C/I SY2 JES3CI NONE INAC Y N
IAT8702 CIFSS5 C/I SY2 JES3CI NONE INAC Y N
IAT8702 CIFSS6 C/I SY6 JES3CI NONE INAC N N
IAT8702 CIFSS7 C/I SY7 JES3CI NONE INAC Y N
IAT8702 CIFSS8 C/I SY3 JES3CI NONE INAC Y N
IAT8702 MF1 WTR SY1 PRTSIMO2 NONE INAC N JES 42
IAT8702 PRT804 WTR SY1 PRT804 NONE INAC N JES 42
Benefits?
Multiprocessor type CPUs
Global address space offload
JES3 off-loads that part of the output writer's work that actually prints or punches the output.
The JES3 primary task can then execute in parallel with the JES3 auxiliary task and other
JES3 subtask Only traditional (non-FSS) writers are eligible for writer output multitasking.
The writer output multi-tasking facility allows JES3 output writers to do more work in parallel
with other JES3 functions on a multiprocessor. To do this, JES3 provides an additional task
called the JES3 auxiliary task. This subtask of the JES3 primary task allows writers to
execute in parallel with the JES3 primary task or with other JES3 subtasks.
After the system programmer or an operator enables the writer output multi-tasking facility,
active output writers execute part of the time under the JES3 primary task and the rest of the
time under the JES3 auxiliary task. Writers execute under the auxiliary task while reading the
job output files from the spool and while writing these files to an I/O device such as a printer.
The rest of the time the writers execute under the JES3 primary task.
JES3 initialization
Operator command
If the global processor is a uniprocessor, you should turn off the multitasking facility. On a
uniprocessor, with the multitasking facility turned on, MVS must do additional task switching
for JES3. Also, it may take the output writers longer to print or punch their output because
JES3 changes its work sequence. To turn off the multitasking facility during initialization,
specify MT=OFF on the OPTIONS initialization statement. To turn it off while JES3 is running
issue the command *MODIFY,MT=OFF.
JES3
NUCLEUS
TCB FCTs
CONCMD
CONSERV
JSS
When the multifunction monitor receives control from a function running under the JES3
auxiliary task, it scans the ATDE queue to select an FCT for dispatching. For details on how
this selection process works, see
If there are no ATDEs for which an AWAITed event has completed, the MFM reaches a
dummy ATDE at the end of the ATDE queue. The dummy ATDE points to a dummy WAIT FCT
that causes the JES3 auxiliary task to enter the wait state when the WAIT FCT is dispatched
by the MFM.
H/W Integrated
MCS Console (Non-SNA)
Console z/OS z/OS
XCF Max 99 in a sysplex
z/OS z/OS
One per image Max 250 in a sysplex
in z/OS V1R10
System Console - Master Console
- IPL - Status Display Console
- Problem Determination Mode z/OS - MCS Message Stream Console
- (NIP Console) - (NIP Console)
- (SUBSYSTEM)
MCS and EMCS Consoles:
- SMCS consoles (z/OS v1R1)
Can be active on any system in a sysplex
Can operate any system in a sysplex
Extended MCS Console
Can receive messages from any system in a sysplex Program MCSOPER
Can have alternates on any system(s) in the sysplex MCSOPMSG
MCSOPER MSCOPMSG
MGCRE
MGCRE
Number unlimited
MCS Sysplex Features:
- Programmable
Sysplex wide AMRF - Full function console
Reply IDs are unique in a sysplex (range 99 - 9999) - TSO/E
CPF, CMDSYS and ROUTE command for command routing - NetView
MSCOPE for console message screening by system - SDSF
Consoles in a sysplex
In a sysplex, a console can be active on any system in a sysplex and can provide
sysplex-wide control. MCS uses XCF services for command and message transportation
between systems and thus provides a single system image for the operators. MCS
multisystem support features:
Sysplex-wide action message retention facility (ARMF)
Sysplex-wide unique reply IDs
Sysplex-wide command routing through:
In shared mode, any CONSOLxx CONSOLE definition after the 99th console in the sysplex is
rejected.
In distributed mode, each system is allowed to define 250 (or 251 if one is for the system
console) consoles. They can be any combination of MCS, SMCS, and SUBSYSTEM
consoles. As in shared mode, the SMCS and SUBSYSTEM definitions are available to any
system in the sysplex. The MCS definitions now define how the console behaves on that
system. Another system may have a unique definition (as long as it is an MCS console) that
governs the console’s behavior on that system.
System symbols
System symbols act like variables in a program; they can take on different values, based on
the input to the program. When you specify a system symbol in a parmlib member the system
symbol acts as a "place holder". Each system that shares the definition replaces the system
symbol with a unique value during initialization.
System symbolics are also useful in the operations area. A particular application may run on
several images. One of the goals of replication is to use a common set of source JCL to
initialize the application but retain the uniqueness where required. The most efficient way to
do this is to have a single set of source JCL that uses symbolics for those parameters that
must be unique per image and initiate the application as a started task or started job.
Support is provided that allows a unique jobname to be associated with a single set of source
JCL by adding a JOBNAME= parameter to the start command. Support was also provided
that allowed the source JCL for a started task to be a job. Although only a subset of the JOB
card parameters were allowed, it provided the level of accounting, security and output control
that was required by many customers in order to use started tasks.
Static symbols
Static symbols are symbols that do not vary the contents across an IPL. These symbols have
their names defined to the system. Your installation defines substitution texts or accepts
system default texts for static system symbols. These static system symbols are the following:
&SYSCLONE
&SYSNAME
&SYSPLEX
PROCLIB members
JES3 commands
JES3 PROC
JES3 commands
System symbols represent unique values in shared commands. For each system, you can
define values for system symbols. When shared commands are processed, each JES3
system replaces the system symbols with the defined values.
Before you use system symbols in JES3 commands, you must understand the types of
system symbols, the elements that comprise them, and the general rules for using them. See
z/OS JES3 Initialization and Tuning Reference, SA22-7550 for details about planning to use
system symbols.
CI
CI
JCL
Create
SWA Set
SYMT
L
JCL
SYMT : SYMT
By CI Scheduler
Set SWA
G L
Through STCINRDR
In order for the replication of installation definitions (cloning) to work for demand select jobs,
JES3 must use the correct system symbolics table during the MVS C/I phase even if the
conversion occurs on a system other than where the demand select job is to execute. When
the local connects, it passes the connecting system's system symbolics to the global. When a
demand select job is scheduled for CI, the symbol table of the system, where the job
executes, is passed with the JCL to the processor which performs the JCL conversion. For
ARM restarts, JES3 uses the symbol table that was used for the original execution of the job.
JES3 allows you to specify system symbols in source JCL for demand select jobs. The
symbols allow two or more systems in a JES3 complex to share the source JCL, while
retaining unique values in the JCL.
System symbols represent unique values in source JCL for demand select jobs. Each system
has its own values for system symbols. When shared demand select jobs are processed,
each JES3 system replaces the system symbols with its own values.
When the source JCL for a demand select job is sent to another processor for conversion, the
converter uses the system symbols that are defined to the processor on which the started
task was submitted (not the processor on which the conversion takes place).
Consoles in a sysplex
The introduction of a sysplex into the MVS environment provides a simpler and more flexible
way to operate consoles in a multisystem environment. Many changes were introduced into
multiple console support (MCS) to support the sysplex environment. These changes began
with MVS/ESA Version 4 and have continued with each new MVS release.
Therefore, new considerations need to be made when defining MCS consoles in this
environment, such as:
There is no requirement that each system have consoles attached.
The 99 console limit for the sysplex can be extended with the use of extended MCS
consoles. This adds greater flexibility when attaching consoles.
A sysplex, which can be up to 32 systems, can be operated from a single console.
Multiple consoles can have master command authority.
With MCS consoles in a sysplex, no matter where they are attached, it is possible to control
any system in the sysplex. The ability to assign each console a unique name and unique
characteristics greatly eases the task of system management.
Multisystem console support has features to support single system image, single point of
control, and minimal human intervention for those sysplex environments with these
processors.
In a sysplex, the major tasks of operating an individual MVS image do not change very much.
Consoles are used to receive messages and issue commands to accomplish system tasks.
With the existence of multiple MVS images and multiple subsystems, the potential exists for
the operator to receive an enormous number of messages, since there is the capability to
route all messages from all MVS systems to a single console.
Multisystem consoles can be used by applications to be sysplex aware due to the fact that no
matter on which system the applications exists, command routing and message routing can
be done. The application does not have to exist on the same system as a console used to
communicate with it.
WTO(R)
MPF
X
C
JES F JES
Message flow
In a sysplex, a message is routed to all active consoles on all systems that are eligible to
receive that particular message.
The visual shows the message flow in a sysplex. It is important to understand this flow since
in a sysplex environment, message flow is changed to send messages issued on one system
to other systems in the sysplex using XCF services.
WTO(R) The MVS write to operator (WTO) and the write to operator with reply (WTOR)
macro services cause messages to be routed to the consoles and the hardcopy
log.
MPF First on the issuing system, the message is processed by the message
processing facility (MPF). This processing is based on entries in the MPFLSTxx
parmlib member.
MPF processing allows an installation to influence how WTO and WTOR
messages are to be processed. Through the MPFLSTxx member, you can
specify some processing options for a message.
SSI Following MPF processing, the message is broadcast to all active subsystems
that request to receive control for the WTO SSI function code 9. The subsystem
must use the IEAVG700 interface to indicate that all WTO and WTORs are to be
broadcast. The message is presented to each subsystem in turn. Each
subsystem may inspect the message and process it as appropriate. A subsystem
can alter write-to-operator queue element (WQE) fields, in which case later
subsystems on the SSI will see the changed WQE. A WQE is an internal control
After the XCF transportation on the receiving system, the message goes through the SSI
loop, but it is not logged, and finally the message is processed by the message queueing
tasks to be displayed on the consoles.
If a message is destined for a specific console that is not active in the sysplex, it is logged and
discarded unless it is an action message or WTOR message, in which case it is processed as
an undelivered message. It is sent to all active consoles receiving UD messages. The master
console is a UD receiver by default.
Messages that are already "delivered" to an active extended MCS console, but not yet
"retrieved", are purged from the MCS queues when the console is deactivated; that is,
unprocessed queued messages are not rerouted.
MSCOPE specification
The MSCOPE specification on the CONSOLE statement in the CONSOLxx parmlib member
allows you to screen those systems in the sysplex from which a console is to receive
messages not explicitly routed to the console.
VARY CN(name),MSCOPE=SC65
CONSOLE AUTH(MASTER)
VARY CN(name),AUTH=MASTER
An asterisk (*) indicates the system on which this CONSOLE is active and *ALL indicates all
systems in the sysplex.
The following command adds, deletes, or changes a console's scope of systems from which
messages are received:
VARY CN(cn),AMSCOPE=(sy..)|DMSCOPE=(sy..)|MSCOPE={(*ALL)|(sy..)}
AUTH specifies the group of operator commands that can be entered from the console.
AUTH {(MASTER) }
{(INFO) }
{([SYS][,IO][,CONS])}
{(ALL) }
IBM strongly suggests using a security product, such as RACF, to control commands instead
of using AUTH, especially with SMCS. For more information about SMCS and console
security see z/OS MVS Planning: Operations, SA22-7601.
Where:
MASTER Indicates that this is a console with master-level authority.
INFO Specifies that any informational commands can be entered from this console.
INFO is the default for all consoles except the system console, which is forced to
be AUTH(MASTER).
SYS Specifies that system control commands and informational commands may be
entered from this console.
IO Specifies that I/O control commands and informational commands may be
entered from this console.
CONS Specifies that console control commands and informational commands may be
entered from this console.
ALL Specifies that information, system control, I/O control, and console control
commands may be entered from this console.
Issuing System
XCF
Processing System(s)
MGCR
Command Prefix or
CMDSYS Routing MPF
MPF Command
Command User Exit
User Exit JES
SC50
SC49 JES Local
Local Command SSI NetView
Command Processing
Processing SSI NetView
Including ......
ROUTE Command ...... Hardcopy
Hardcopy Log
Log
ROUTE Command MVS
MVS Routed Command Command
Command CONTROL ...,L=
Processing
Processing
Services
Command flow
When an operator command is entered through the MGCR(E) macro service, the following
processing flow takes place:
Command prefix and CMDSYS routing
If the command contains a prefix or the console has a CMDSYS specification that directs
the command to another system, the command is immediately transmitted using XCF
services to the processing system.
Note: For command prefix and CMDSYS routing, the command is first transported to
the receiving system before any system symbol substitution takes place.
A REPLY command is sent to the system where the WTOR was issued. If the REPLY
command text contains system symbols, substitution occurs on the receiving system.
MPF command user exit
If the command is not transmitted to another processing system, it is processed on the
issuing system by the installation MPF command exit routines. The exits are specified
using the.CMD statement in the MPFLSTxx parmlib member. These exits can perform
authority checking, modify the command text, or the command processing.
Note: For commands containing system symbols, substitution has occurred before the
exit is entered.
Note: At this point in processing, all system symbol substitution has occurred. The
original command text is also available.
Hardcopy log
Once the command has been examined by all active subsystems, it is logged to the
hardcopy log (usually SYSLOG or OPERLOG).
Note: The hardcopy log contains the command before any system symbols contained
in the command have been substituted and, it also contains the command after
substitution has occurred.
CMDSYS {(sysname) | * )}
On CONSOLE statement
IEECMDPF program
Sample SYS1.SAMPLIB
Command routing
This visual shows the different ways or techniques that be used to route commands in a
multisystem sysplex. There are:
The operator can use the MVS ROUTE command to route commands to any MVS image in
the sysplex.
The CMDSYS keyword on the CONSOLE statement in the CONSOLxx member can
specify for each console which system, commands issued from the console are to be
executed on.
The command prefix facility can be used to define which MVS image processes command
issued with the prefix used.
The IEECMDPF program in SYS1.SAMPLIB can be used to specify the sysname as a
prefix for command routing.
ROUTE {sysname,text }
{*ALL,text }
{sysgrpname,text }
{[T=nnn,] }
{*OTHER }
{(sysname,sysgrpname,sysname,..}
T=nnn - Optional timeout interval
T -- does not work with a single sysname
-- must be first parameter
ROUTE command
The MVS ROUTE command explicitly routes another operator command for execution on
another system in a sysplex. It can be issued from both MCS and extended MCS consoles.
The response to the command is returned to the issuing console (unless redirected by an L=)
operand.
RO ALLSYS,D T
RO T=005,SC65,D T
RO T=005,SC64,D T
RO T=005,SC63,D T
RO T=005,SC70,D T
SYSNAME RESPONSES
------------------------------------------
SC63 IEE136I LOCAL: TIME=10.45.06 DATE=2008.326 UTC:
TIME=15.45.06 DATE=2008.326
SC64 IEE136I LOCAL: TIME=10.45.06 DATE=2008.326 UTC:
TIME=15.45.06 DATE=2008.326
SC65 IEE136I LOCAL: TIME=10.45.06 DATE=2008.326 UTC:
TIME=15.45.06 DATE=2008.326
SC70 IEE136I LOCAL: TIME=10.45.06 DATE=2008.326 UTC:
TIME=15.45.06 DATE=2008.326
Route by groups
This visual shows an example of the ROUTE command using the groupname defined by the
program provided in the IEEGSYS member in the SYS1.SAMPLIB to define installation
named system groups.
The IEEGSYS program builds groups only on a single system, and this program must be
executed on every system to which the group definitions apply.
The IEEGSYS program does for every group defined in the input file:
Enqueue the group name exclusive (to serialize with programs that use groups and
enqueue shared).
Build a list of the system names in CSA.
If the group was previously defined, delete its name/token entry, saving the address of the
old list in CSA.
Create a name/token entry naming the group and pointing to the list of system names.
If the group was previously defined, free the CSA storage used for the old list.
Dequeue the group name.
MVS console service routines locate, for the route-by-group command, the name/token data
for the group and issues a RO T=005,system,cmd for each system listed in the group.
CMDSYS definitions
Consoles, both MCS and extended MCS, can have an associated CMDSYS value, which
specifies the system to which commands issued on the console are to be sent. This provides
an implicit command routing allowing a console that is physically attached to one system to
be logically associated with another system.
The REPLY command is always processed on the system where the WTOR was issued.
EMCS consoles
The extended MCS console (EMCS) is a set of programmable interfaces introduced in
MVS/ESA SP Version 4 that makes it possible for a program to enter commands and receive
messages as though it were an MCS console.
It is recommended that you use extended MCS consoles when you write an authorized
program that acts as an operator. Extended MCS consoles also provide relief for the number
of consoles that can be used in an MVS system as they are not included in the 99 MCS and
subsystem consoles in a sysplex limit.
The MCSOPER macro is used to activate an EMCS console. Once the extended MCS
console is activated, the program can receive messages and command responses by
invoking the MCSOPMSG macro service, and can issue commands by issuing the MGCRE
macro.
The TSO/E CONSOLE and CONSPROF commands make use of the programmable
interfaces and can be used by a TSO/E user or applications written in REXX.
The MCSOPER macro service allows you to activate and manage extended MCS consoles.
You can specify only one of the following functions each time you invoke the MCSOPER
macro:
REQUEST=ACTIVATE Initializes an extended MCS console session. The MCSOPER
macro with REQUEST=ACTIVATE defines and activates an
extended MCS console to the system. When you activate an
extended MCS console, MCS creates a dataspace to store
messages and DOM requests. There is one dataspace for every
address space with an active extended MCS console. Therefore,
if an address space has two active extended MCS consoles, both
share the same message dataspace. Note that the system
deletes this dataspace upon deactivation of all the extended
MCS consoles in the address space.
REQUEST=DEACTIVATE Terminates the session. Through MCSOPER with
REQUEST=DEACTIVATE and ABTERM=YES, you can
deactivate an active console and switch processing from an
extended MCS console to another active MCS or extended MCS
console. Before deactivating a console, you must define a valid
alternate group for the console through operator attributes.
Switching an extended MCS console to an alternate console
allows processing to continue without interruption, and is useful if
a program representing an extended MCS console abnormally
ends, and your installation needs to have its processing taken
over by another console.
REQUEST=RELEASE Releases a migration ID from an extended MCS console that has
been deactivated by issuing REQUEST=DEACTIVATE.
You need to specify the extended MCS console's attributes when it is activated. You specify
the operator parameters in the OPERPARM segment of the user profile of a security product,
such as RACF.
Note: You can override the console attributes specified in the user profile of the security
product by turning on the MCSOVRDY bit in the MCSOP data area. Therefore, if you
specify the extended MCS console attributes in the MCSOP data area and request security
product override, the MCSOP data area specifications are used (even if the RACF
OPERPARM data is also specified for the user).
CONSOLE DEL(W)
K S,DEL=W
K S,DEL=W,RTME=1/4
WRAP mode
Message presentation features on MCS consoles include:
Messages are displayed in either ROLL mode or WRAP mode on locally attached MCS
consoles.
The HOLDMODE specification on the DEFAULT statement of the CONSOLxx member
allows an operator to temporarily suspend or hold screen updates when in roll,
roll-deletable, or wrap mode.
The WRAP mode display allows new messages to overlay the oldest messages on the
console screen. A separator line appears between the new and the old messages when
messages are being overlaid. WTOR and action messages are also overlaid if WRAP mode
is in effect.
You can activate WRAP mode by specifying DEL(W) on the CONSOLE statement of the
CONSOLxx parmlib member.
CONSOLE DEL(W)
If this option is not specified in parmlib, activate WRAP mode with the following command:
CONTROL S,DEL=W
Note: You might want to change the RTIME value, which is the interval for message roll, to
1/4 second. If so, enter:
CONTROL S,DEL=W,RTIME=1/4
MFORM {(M) }
{([J][,S][,T][,X]) }
CONTROL S,MFORM
MFORM keyword
MFORM specifies the display format of the messages.
M M indicates that the system is to display the message text only. The message display
does not include a time stamp, job ID, or job name information, or the system name.
M is the default.
J J specifies that the display is to include the job ID or name.
S S specifies that the display is to include the name of the system originating the
message.
T T specifies that the display is to include a time stamp.
X X specifies that the system suppress the job name and system name for JES3
messages issued from the global processor.
You can use the following command to change a console's message display format:
CONTROL S,MFORM
CONSTD,EDIT=({escape,bkspace,,linedl}),
GLOBMPF={YES|NO},
SYN={(syn1,...syn6)|8},
PLEXSYN={(syn1,...syn6)|*},
CIFSS={FSSDEF|MSGROUTE},
DLOG={ON|OFF}
Command stacking:
EDIT=(,,newline,) deleted
CONSOLxx INIT CMDDELIM{;}
Example:
*I Q;*I A;*I Q,S
CONSTD statement
Some JES3 installations have come to rely on the JES3 global processor to be a "focal point"
for message processing and have implemented extensive MPF processing on the global for
messages that originate on local processors. To accommodate "global-oriented" MPF
processing that an installation may have, an option (GLOBMPF=) is provided on the
CONSTD initialization statement.
GLOBMPF=YES Indicates that all messages routed by MCS to the global processor
should also be made available to MPF processing on the global
processor in addition to MPF processing on the originating system.
GLOBMPF=NO The default. Indicates that messages routed to the global should not be
presented to MPF on the global processor. In this case, MPF
processing is only possible on the system that a message originates
from.
It should be noted that the GLOBMPF option does not influence the
routing of messages to the global processor. Installations wishing to
use the GLOBMPF option must ensure that routing mechanisms are in
place to guarantee the global is presented the proper set of messages.
This could include the activation of DLOG which will result in the
hardcopy message set being presented to the global, or the definition of
a physical console or extended MCS console on the global that
receives the proper set of routing codes (or all routing codes).
Instead, it uses the MCS command delimiter that is defined by the CMDDELIM parameter on
the INIT statement in the CONSOLxx parmlib member.
INIT CMDDELIM(c)
The processing for commands entered from an MCS console or an automated operator
interface through MGCR(E) remains the same. When multiple commands are entered
through a single input from an MCS console, MCS unstacks commands and sends one
command at a time to the SSI. When multiple commands are entered through a single
MGCR(E) by an automated operator, the whole stack of commands is sent by MCS to the
SSI. If the first command is an MVS command, the JES3 SSI routine returns the whole stack
of commands back to MCS for processing. If the first command is a JES3 command, the
JES3 SSI routine sends the whole stack of commands to the JES3 address space for
processing. The JES3 command processing continues to provide the unstacking service as in
prior releases of JES3.
Command prefixes
A new keyword, PLEXSYN, defines the sysplex command prefixes.
PLEXSYN PLEXSYN={(syn1,...syn6)|:us.*:eus.} - Specifies a sysplex scope for the
command prefix. The sysplex scope means that any command issued with this
prefix from any system in the sysplex executes on the global processor. The
default is *. This keyword is used together with the SYN keyword to determine
the prefix to be used. If a prefix is defined on both keywords, the prefix is used
as a system-scoped prefix.
JES3 registers with CPF sysplex-wide command prefixes that are defined with the
PLEXSYN= parameter on the JES3 CONSTD initialization statement. Up to six sysplex-wide
JES3 prefixes (also known as synonyms) can be specified. The sysplex-wide prefixes are
always registered with CPF on the global processor and are re-registered during the dynamic
system interchange. In general, commands routed explicitly with the MVS ROUTE command
and with sysplex-wide prefixes are rerouted by MCS as required according to the
sysplex-wide prefix definition after the ROUTE command routing completes. If a command is
routed using a sysplex-wide prefix, MCS routes it only once, even if the command has
multiple sysplex-wide prefixes.
JES3 defines both SYSTEM and SYSPLEX scope prefixes with the option
FAILDISP=PURGE. This means that a command prefix is deleted when the defining system
is removed from the sysplex or the defining address space terminates. The CPF
REMOVE=NO option is used by JES3 for the prefix removal. This implies that both the
If a prefix is specified on both the SYN= and PLEXSYN= parameter, JES3 defines it as a
SYSTEM-wide (SYN=) prefix. If the JES3 global fails to define one or more of the prefixes
specified on the PLEXSYN= parameter, a warning message is issued and the prefix is
ignored. When every PLEXSYN= prefix registration fails, JES3 uses the default
SYSPLEX-scope prefix * and issues a warning message stating that the default sysplex-wide
prefix is being used.
If JES3 fails to register the * prefix, there will not be any JES3 sysplex-wide prefixes, and all
JES3 commands from locals must be explicitly routed to the global using either the MVS
ROUTE command or double command prefixes. The first of the double prefixes must be
defined as "REMOVE=YES", to route the command to the global. The second prefix should
be the JES3 "*" or any of the system-scope prefixes registered by the global.
Note: Double prefixes are allowed for commands. MCS uses the first prefix to transport the
command. Once the command is transported, MCS then presents the command with the
remaining prefix to the command processors on that system.
Sysplex
PLEXSYN=(@)
Global SYN=(*,8)
XCFGRPNM=WTSCPLX4
SC43
PLEXSYN=(%)
Local Global
SYN=(*,8)
XCFGRPNM=WTSCPLX3
SC70 SC65
When JES3 is unable to register one or more of the SYSTEM-scope prefixes specified on the
SYN= parameter on any processors, a warning message is issued. If all prefixes specified on
the SYN= parameter fail to be defined to CPF on a processor, JES3 uses the default prefix
value 8 on that processor and issues a warning message stating the fact.
Note: The 8 prefix is implemented as a SYSTEM-scope prefix but is not registered with
CPF to avoid conflicts with short-form WTOR replies.
D OPDATA
IEE603I 14.42.58 OPDATA DISPLAY 840
PREFIX OWNER SYSTEM SCOPE REMOVE FAILDSP
% JES3 SC70 SYSPLEX NO PURGE
* JES3 SC70 SYSTEM NO PURGE
* JES3 SC65 SYSTEM NO PURGE
@ JES3 SC43 SYSPLEX NO PURGE
* JES3 SC43 SYSTEM NO PURGE
SC43 IEECMDPF SC43 SYSPLEX YES SYSPURGE
SC65 IEECMDPF SC65 SYSPLEX YES SYSPURGE
SC70 IEECMDPF SC70 SYSPLEX YES SYSPURGE
# RACF SC43 SYSTEM NO PURGE
# RACF SC70 SYSTEM NO PURGE
# RACF SC65 SYSTEM NO PURGE
IEECMDPF
IBM-supplied sample program in SYS1.SAMPLIB
Defines the executing system's name as a
command prefix
For example
Run IEECMDPF on system SC65
ROUTE SC65,command - valid
SC65 command - valid
SC65command - valid
SC65,command - invalid
ROUTE *ALL,S IEECMDPF
The ROUTE *ALL,S IEECMDPF command can be used to register the system name as a prefix
on each system in the sysplex.
For example, if you run IEECMDPF on system SC65, then the following have the same effect
on each system in the sysplex:
ROUTE SC65,command
SC65 command
SC65command
GLOBMPF=YES indicates that all messages routed by MCS to the global processor should
also be made available to MPF processing on the global processor in addition to MPF
processing on the originating system. Messages that originate from the global processor are
eligible for MPF on the global regardless of the GLOBMPF value.
The GLOBMPF option does not influence the routing of messages to the global processor.
Installations wishing to use the GLOBMPF option must ensure that routing mechanisms are
in place to direct the proper set of messages to the global. This could include the activation of
DLOG which will result in the hardcopy message set being presented to the global, the
definition of a physical console or extended MCS console on the global which receives the
proper set of routing codes (or all routing codes), or the marking of target messages with the
'AUTO' attribute together with an extended console on the global receiving 'AUTO' messages.
When using the GLOBMPF function, remember that MPF processing may have to be
adjusted as part of a DSI. Ensure that the MPF options on the old and new global are set up
correctly. The SET MPF operator command can be used to change the MPF options for a
particular system.
There are two options that force all messages to be routed to the global, they are:
Activating the JES3 DLOG
Having an EMCS or MCS console that has all route codes
Message exits
Because JES3 does not transport messages to the JES3 global address space for display
and logging purposes, two JES3 installation exits, exits IATUX69 (Determine If a Message is
to be Sent to the JES3 Global Address Space) and IATUX70 (Perform Additional Message
Processing), are provided to accommodate special message processing that is dependent on
running in the JES3 address space and having access to JES3-maintained information. Exits
IATUX69 and IATUX70 allow you to implement JES3 environment specific message
processing in the global JES3 address space.
Exit 69
Exit IATUX69 allows a message to be examined and optionally sent to the global for further
processing in user exit IATUX70. IATUX69 is called from module IATSIWO during WTO SSI
processing.
Exit 70
Exit IATUX70 receives messages that have been examined by user exit IATUX69 and sent for
further processing in the JES3 global address space. IATUX70 is called from module
IATCNSV. A parameter list (mapped by IATYUX70) provides all the information needed to
process the message.
Message exits
Exit IATUX69 and exit IATUX70 are managed through the MVS dynamic exit facility. JES3
defines exit points to the MVS dynamic exit facility with the name IAT_EXIT69 and
MSGROUTE statement
The MSGROUTE (MVS Message Route Table) statement controls the routing of subsystem
modifiable messages (such as most MVS-issued messages). If you do not include a
MSGROUTE statement, the routing attributes of the messages that originate from that
processor are not modified by JES3 MSGROUTE processing. Even though MSGROUTE
processing may not make modifications, a message is still eligible for other forms of JES3
message routing.
MSGROUTE,MAIN=main,routecode=(destclass,console,J),...,routecode=(destclass,console,J)
routecode =
Specifies the MVS routing code and a console name or destination class to which
you want messages sent.
routecode
Specifies an MVS routing code which between 1 and 128 inclusive.
destclass
Specifies a JES3 console destination class to which you want messages with the
designated MVS routing code mapped.
console
Specifies the name of an MCS console or an extended MCS console.
J
Specifies that the routing code equivalent of the destination class is to be used
for the message instead of the message's original routing code(s). If you do not
specify "J", the routing code equivalent will be merged with the message's
original routing code(s).
When a message is issued with multiple routing codes, JES3 selects a single routing code to
use for MSGROUTE processing.
Exit IATUX70
Exit IATUX70 allows you to implement JES3-specific processing in the JES3 global address
space under the CONSERV FCT.
You can use the EXIT statement of the PROGxx parmlib member, the SETPROG EXIT
operator command, or the CSVDYNEX macro to control this exit and its exit routines. JES3
allows multiple exit routines to exist for this exit.
SETPROG EXIT,ADD,EXITNAME=IAT_EXIT69,MODNAME=IATUX69,STATE=ACTIVE
D PROG,EXIT,EXITNAME=IAT_EXIT69
D PROG,EXIT,EXITNAME=IAT_EXIT69,DIAG
CSV464I 16.00.27 PROG,EXIT DISPLAY
EXIT IAT_EXIT69
MODULE STATE EPADDR LOADPT LENGTH JOBNAME
IATUX69 A A4B02660 24B02660 00000008 *
Exit IATUX69
Exit IATUX69 is called from the JES3 WTO SSI processing and allows you to examine a
message and decide whether it should be sent to the JES3 global address space for
additional processing. If the exit indicates that the message should be sent to the global, the
WTO SSI sends the message through the JES3 SSISERV service. This exit is called on the
system where the message is issued for all messages regardless of the origin of the message
(for example, messages that originate on a local, messages that originate on the global, and
messages issued by JES3 DSPs through the JES3 MESSAGE macro). In addition to calling
exit IATUX69, the WTO SSI processing continues to call IATUX57 to allow the installation to
select a single routing code for JES3 message routing processing.
The following is a summary of the types of WTOs and WTORs that are presented to exit
IATUX69 and any special considerations that exist for the type of message. Flags in the exit
parameter list indicate the type of request being passed to the exit:
Multi-Line WTO The first line of a multi-line WTO (the major line). Subsequent minor
lines are not passed to the exit. Using the major line, the exit
determines whether the message should be sent to the global.
Exit IATUX70
Exit IATUX70 is called in the global JES3 address space when the installation exit IATUX69
has sent a message that requires further processing in the JES3 global address space. This
exit cannot influence any routing, presentation or retention attributes of the message.
JES3 defines this exit to the MVS dynamic exit facility with the name IAT_EXIT70. By default,
JES3 does not define any exit routines to this exit point. JES3 allows multiple exit routines to
exist for this exit. Note that the exit routines are not invoked with ASAVE linkage. A sample
exit module IATUX70 is provided in the SYS1.AJES3SRC data set.
The exits can be added by using the SETPROG command as shown in the previous visual.
The MVS DISPLAY command can be used to display the status of a JES3 dynamic exit, as
follows:
D PROG,EXIT,{{EXITNAME|EX|EN}=exitname }[,DIAG]
INTERCOM macro
Simulate input of operator message
CNDB= (optional keyword)
INTERCOM macro
The JES3 INTERCOM macro simulates operator input of a console command. The
INTERCOM service is used by DSPs to internally issue commands. The INTERCOM macro
processing enters the command into the system with an MCS MGCRE macro. As a result, all
commands go through the MCS interface, which serves as the single command entry into the
MCS sysplex.
The INTERCOM macro continues to be the primary means for JES3 DSPs to enter
commands into the MCS sysplex. Some changes have been made to the INTERCOM macro:
An optional CNDB= parameter is added to the INTERCOM macro. It addresses a CNDB
that contains a 4-byte console ID, a console name, and a CART of the command issuer. If
the CNDB= parameter is not specified, the INTERCOM macro uses the default dummy
CNDB in the TVTX.
Since the console ID is included in the CNDB, the CONS= parameter is deleted. The
BUFFER= parameter is also deleted.
JES3 also uses the CART to insure accurate presentation of command responses to the NJE
and RJP extended MCS console. The CART is carried in the CNDB throughout the command
processing.
LOGIN ENTER=CONAPNDG
...
IATXCNS TYPE=GET GET PARAMETERS
...
...
CONAPNDG DS 0H
USING CONSMESS,R6 COMMAND BUFFER BASE
USING CONAPNDG,R10 ROUTINE BASE
LR R6,R1 CONSMESS ADDRESSABILITY
LR R10,R15 ROUTINE ADDRESSABILITY
When an operator issues a command, JES3 creates a CNDB containing information about
the source of the command, such as the console identifier and console type. This CNDB is
passed to the DSP's console appendage along with the command text. When your DSP
needs to communicate with the operator issuing the command, you may use the MESSAGE
macro service, specifying the CNDB that was saved by your appendage. In addition, any
commands that your DSP may internally issue on behalf of an operator may be issued using
the INTERCOM service specifying a CNDB.
CNDBs may also be used for routing of unsolicited messages. For example, JES3 creates
CNDBs for much of the message destination information specified in your initialization
stream. When you need to issue a message to this destination, such as a message about a
particular main processor, you use the MESSAGE service specifying the appropriate CNDB.
DSP Messages
...
LA R0,MYCNDB GET REQUESTING CONSOLE
LA R1,MYMSG GET MESSAGE TEXT
MESSAGE CNDB=(R0), ISSUE MESSAGE
TEXT=(R1)
...
Issuing Commands
...
LA R1,MYCMD GET COMMAND TEXT
INTERCOM CNDB=MYCNDB, INTERCOM THE COMMAND
TEXT=(R1)
...
MGCR(E)
BDT
MPF processing
Command
Exit
JES3 IATSI34 SVC 34 Dest
SSISERV queue
SSI
IATCNCM
DSQLOC IATUX18 IATUX59
Hardcopy OPERLOG
SAF
Log SYSLOG
IATCNIN IATCNIA IATUX58
MVS
Command
Processor
JES3 cmd
processing
Support for JES3 command entry through a BDT session is deleted. The JES3 commands
authorization exit (IATUX56) for commands entered through BDT is also deleted.
MGCR(E) processing
The processing for commands entered from an MCS console or an automated operator
interface through MGCR(E) remains the same. When multiple commands are entered
through a single input from an MCS console, MCS unstacks commands and sends one
command at a time to the SSI. When multiple commands are entered through a single
MGCR(E) by an automated operator, the whole stack of commands is sent by MCS to the
SSI. If the first command is an MVS command, the JES3 SSI routine returns the whole stack
of commands back to MCS for processing. If the first command is a JES3 command, the
JES3 SSI routine sends the whole stack of commands to the JES3 address space for
processing. The JES3 command processing continues to provide the unstacking service as in
prior releases of JES3.
JES3 command processing (IATCNCM) processes staging areas on the SVC 34 destination
queue and enters the commands contained in the staging areas for execution. IATCNIN
receives control from IATCNCM to perform input command processing.
JES3 enters all commands, independent of their source, to the system through an internally
issued MGCRE macro. The MGCRE processing may invoke one or more MPF command
installation exits to affect command processing. The command exits receive control every
time a command is entered.
Exit 18
Exit IATUX18 is not entered for MVS commands issued from a JES3 source; it is entered only
for JES3 commands. In the visual, for JES3 commands, IATCNIN calls the JES3 console
authorization checking module (IATCNIA) to validate command authority. IATCNIA calls user
exit IATUX18. This exit routine allows you to modify a JES3 command and validate the
console's authority to enter the command. If the operator enters a JES3 command at a
console that has been defined as not having a high enough authority level for that command,
the command is rejected. You could use this exit to allow a particular command to be issued
from a console whose definition would reject the command. A new return code (16) is
provided which may be used when a command is completely processed within the exit. When
this return code is used, JES3 performs no further processing for the command.
Exit 58
The JES3 command authorization process includes invocation to the security authorization
facility. Before JES3 calls SAF to perform security processing, exit IATUX58 is given control.
This exit allows you to modify security checks or to make your own security decisions for
JES3. After the SAF call, JES3 calls exit IATUX59. Also this exit gives you the opportunity to
modify security checks or to make security decisions for JES3. After successful completion of
the command authorization checks, the command is passed to the appropriate command
executor.
Exit IATUX18 continues to be called for all JES3 commands independent of their source. In
summary, it is recommended to continue to have all installation JES3 commands processing
in the JES3 command exit, and move all installation non-JES3 commands processed in to
MPF command installation exits (or other facilities).
MGCR(E) processing allows one or more MPF command exits to affect command
processing. You specify on the MPFLSTxx parmlib member the MPF command exits. SET
MPF operator command lets you dynamically change the MPFLSTxx member configuration
and the exit specifications. Up to six command installation exits can be defined. These exits
can:
Change the text of commands.
In a sysplex, change the destination of commands by routing them to a different system for
execution.
Modify a console's authority to use a particular command. That is:
– Authorize the command from a console that normally would not have the authority to
issue the command
– Reject the command from a console that normally would have the authority to issue the
command
Execute commands.
Suppress commands.
Subsystems and applications can exploit without restrictions all MCS facilities (for example,
CART and 4-byte console ID). The JES3 command processors support 4-byte console IDs
and the MCS command-and-response token (CART).
JES3 supports the CART to insure accurate presentation of command responses to the
extended MCS console. The CART is carried in the CNDB throughout the command
processing.
Delete any installation-written code contained in the JES3 BDT command authorization exit
IATUX56. JES3 5.2.1 no longer calls IATUX56.
You may need to specify a CNDB on the INTERCOM macro. Use the IATXCNDB service to
set up the CNDB if necessary. If a CNDB is not provided, the dummy CNDB is used.
The JES3 INTERCOM service uses MGCRE to issue all commands beginning with JES3
5.2.1. Previously, JES3 commands were queued directly to JES3 console services. MGCRE
translates any non-printable data found in the command text as part of its processing. If it is
not practical to eliminate the passing of this data with a command, the non-printable data can
be enclosed in quotation marks. MGCRE then passes the data unchanged.
*I A - *I G - *I P - *I Q
Message destinations
Consider using MVS routing codes in the initialization stream and in JES3 commands in
addition to, or in place of, JES3 destination classes.
Review your user written DSPs and exits to determine if they can benefit from the JES3
multi-line message service, IATXMLWO. The IATXMLWO and MESSAGE macro services
allow JES3 functions to issue true multi-line WTOs. The IATXMLWO macro creates one line
of a multi-line message. Each line of a multi-line message is stored in its own copy
(IATYMLWO token). These lines (tokens) are chained together and sent to the MESSAGE
macro to issue the multi-line WTO message. A multi-line WTO message is limited to a
maximum of 999 lines.
In addition, installation exit code related to non-JES3 commands entered from JES3 sources
must be moved to an MVS command exit. MVS command exits run in the address space from
which the command is issued. Therefore, any code you move to an MVS command exit will
still run in the JES3 address space, and JES3 address space data such as device group will
continue to be available. JES3 provides a new return code for IATUX18 to allow the exit to
indicate that it has completely processed a command. Previously, JES3 would issue an error
message for any unrecognized command processed within your exit code.
Move any IATUX18 code related to non-JES3 commands to an MVS command exit.
Update your IATUX18 code due to the JES3 5.2.1 changes in the exit interface.
When processing commands use information on from the command buffer which is mapped
by the IATYCNS macro with the TYPE=INPUT parameter. Use the IATXCNDB service to
obtain information from the console destination block which is provided in IATYCNS. The
console destination block identifies the console issuing the command.
The IAT7107 message indicates that a JES3 command is modified by user exit 18.
D R,L
D R,L,SYS=main
D R,L,KEY=dspname
D R,I,KEY=MOUNT
D R,I,KEY=MOUNT,JOB=jobname
You change the status of the action message retention facility by:
Use the CONTROL M,AMRF command to turn the action message retention facility on or off.
Following forms of the DISPLAY command displays outstanding messages requiring operator
action. These messages include WTOR messages, action messages saved by AMRF, action
messages issued by the communications task, and action messages that were not displayed
on all necessary consoles:
D R,L SETUP-related messages are displayed by the D R
command. The D R command also displays messages
that were issued before JES3 was fully initialized.
D R,L,SYS=main All messages issued from the named system are
displayed by the D R command.
D R,L,KEY=dspname No major differences.
D R,I,KEY=MOUNT No major content differences. Change in the KEY
name from prior releases.
K M,RMAX=9999
JES3 WTORs
32,U or 8,U
You want to change the maximum value of the WTOR reply id from its default of 99. Use the
RMAX keyword on the DEFAULT statement.
RMAX specifies the maximum value of a reply ID in the sysplex. RMAX also determines the
size of the reply ID displayed in the message text. For example, specifying an RMAX value of
9999 results in all messages having a four character reply ID.
Use the following command to dynamically increase the maximum number of reply IDs:
K M,RMAX=nnnn
You must have at least one active hardcopy log on each of your systems.
When you use the disk log facility, the log is spun off at installation-defined intervals and
processed by JES3 output service according to the DLOG output class. If DLOG is active, you
can force the log to be spun off before the installation-defined threshold occurs by entering
the MVS WRITELOG command on the global. For example, to spin off the DLOG and direct it to
output class D, enter WRITELOG D.
SYS1.TRANSLOG
Staging Data Set
Parallel Sysplex
SYS2
System Logger
System Logger is an MVS component that allows an application to log data from a sysplex
environment. Data can be logged from one system or from multiple systems across the
sysplex.
The z/OS System Logger is a set of services that allows an application to write, browse, and
delete log data. You can merge the log data from applications in a sysplex into a log stream,
which is simply a collection of data in log blocks residing in the coupling facility. Log blocks in
the coupling facility can be backed up either in storage in each system or on DASD in staging
data sets. When the log blocks in the coupling facility reach an installation-defined threshold
value, they are offloaded to DASD log data sets. Therefore, at any point in time the log stream
consists of records on the DASD log data sets and the log blocks currently in the coupling
facility.
Log streams
A log stream is a collection of one or more log records (also referred to as log blocks) written
by an application using services provided by the MVS System Logger. The application using
MVS System Logger services may or may not have multiple instances of itself executing in a
sysplex. In the case of a multi-instance application where each instance of the application
writes log blocks to the same log stream, the result is a sysplex-wide merged log stream.
Independent of SYSLOG
SYSLOG records are MVS format
OPERLOG processing
The operations log is a log stream that uses the System Logger to record and merge
communications about programs and system functions from each system in the sysplex. The
OPERLOG provides a sysplex-wide merged and chronologically ordered message log.
IBM recommends that JES3 customers with a multisystem sysplex use an OPERLOG
coupling facility log stream and turn off JES3 DLOG and SYSLOG.
You can also use OPERLOG as a DASD-only log stream. This method is only suitable for a
single system sysplex, because a DASD-only log stream is single-sysplex in scope and you
can only have one OPERLOG log stream per sysplex. This means that if you make
OPERLOG a DASD-only log stream, only one system can access it.
Writes to SYSLOG
CONSTD,...........DLOG=ON|OFF
*F O,DLOG=ON|OFF
JES3 DLOG
The hardcopy medium (also known as the hardcopy log) records command and message
traffic for your systems. MVS and JES3 provide three forms of the hardcopy medium:
OPERLOG Centrally records command and message traffic for systems in a sysplex in
Message Data Block (MDB) format.
JES3 DLOG Centrally records command and message traffic for systems in a JES3
complex in JES3 format. The JES3 DLOG is written to SYSLOG on the global
processor.
SYSLOG Individually records command and message traffic for each system in MVS
format.
The initial state for DLOG is defined on the CONSTD initialization statement with the
parameter DLOG=ON or DLOG=OFF, as shown in the figure. The operator can turn the
DLOG on or off with a command.
JES3 DLOG
JES3 provides a migration accommodation (DLOG) for customers who are unable to activate
the MVS OPERLOG across the JES3 complex. A sysplex-wide log is written from the global
processor in the JES3 DLOG format as shown in the figure. The JES3 DLOG may be used as
part of a staged migration to OPERLOG. The JES3 DLOG, when active, contains command
and message traffic for all systems in the JES3 complex. OPERLOG, on the other hand, may
be activated on a system by system basis during the migration period.
For DLOG, the system log is spooled and periodically can be printed by JES3 output service.
By default, the log is printed every 500 lines to output class A. To change these defaults, code
the LOGLMT and LOGCLS parameters of member IEASYSnn of the MVS SYS1.PARMLIB
data set. You can also print the disk log by entering the MVS WRITELOG command from the
global.
CONSTD,..DLOG=ON
:
*F O,DLOG=ON
CONNECT CONNECT
DLOG problems
The DLOG will obtain MDBs (message data blocks) from the consoles data space to create
the messages it will put in the log.The following documentation is required for diagnosing
JES3DLOG problems:
A dump of JES3DLOG address space and the data space associated with the Consoles
ASID that is created for DLOG.
JOBNAME=(CONSOLE,JES3DLOG),DSPNAME=('console'.ieam*)
DASD
SPOOL
Log
Dataset
CF
The JES3 WTO subsystem interface routines receive control as part of the MCS WTO or WTL
processing. If the DLOG is active, the JES3 WTO SSI processing suppresses the MCS
logging of operator commands and WTO messages into the SYSLOG. JES3 never
suppresses the MCS logging into the OPERLOG log stream.
Data travels between workstations and the JES3 global processor over communication lines
or adapters that substitute for communication lines. JES3 processes the jobs it gets from
workstations as if it had received the jobs locally. JES3 can write output of remotely-entered
jobs on local devices or it can transmit the output to the originating workstation. JES3 can
also transmit output to any other workstation connected to the global processor.
Remote job processing with BSC multi-leaving protocols is called BSC remote job processing
(RJP), and that with SNA protocols is called SNA remote job processing (RJP).
JES3 network job entry (NJE) allows JES3 users at one JES3 complex to send jobs to
another JES location for execution, to send output (SYSOUT) data to another JES location for
processing, and to send jobs, commands, and messages to another JES location or to a
non-JES location.
Therefore, JES3 can become a part of a network comprised of a Job Entry Subsystem 2
Network Job Entry (JES2 NJE) configuration, a Virtual Machine/Remote Spooling
Communications Subsystem (VM/RSCS) configuration, a VSE/POWER system, as well as
other JES3 complexes.
The JES3 SNA/NJE protocol in combination with z/OS BDT Version 2 provides a JES3
complex with systems network architecture/network job entry (SNA/NJE) capability.
A JES3 complex that uses the BSC/NJE, SNA/NJE, or TCP/IP/NJE protocol might also
communicate with nodes that use one of the three protocols. This means that the NJE
network might consist a mixture of the three protocols.
Modifications with a command (*F T) or JES3 restart with cold, warm, or hot start with refresh
for all parameters.
Modifications with a command (*F T and *F CONFIG) or JES3 restart with cold, warm, or hot
start with refresh for all parameters.
See z/OS JES3 Initialization and Tuning Reference, SA22-7550 for keyword parameter
details.
Activating RJP
BSC - *X RJP
SNA - *X SNARJP
Restarting RJP
BSC - *R RJP,L= lname [,I]
SNA - *R SNARJP,T= wsname [,I]
Stopping RJP
BSC - *C RJP [,L={lname | ALL}] [,I]
SNA - *C SNARJP,T={wsname | ALL} [,I]
Changing RJP
*F T...
SNA - *F CONFIG,ADD=mem [,LOG={YES|NO|ERR}] [,P=xxxxxxxx]
Displaying RJP
BSC - *I T,L={(lname[,lname]...) | ALL[,P | ,STAT[,R]}
SNA - *I D,WS={(wsname[,wsname]...) | ALL [,ONLINE | TRACEON]}
Signing on or off at a BSC RJP workstation
Workstation operator must use the /*SIGNON card to sign on and off
Restarting RJP:
Use the *R RJP command to end a BSC RJP session or activity on any line and then start
it again. The command can be used to end activity immediately or as though the normal
workstation sign-off occurred. This command has the same effect as entering an *C RJP
command followed by an *S RJP command for the same line(s). After the line is restarted,
communication with the workstation must be reestablished through the workstation
start-up procedure.
Use the *R SNARJP command to end a SNA RJP workstation and then start it again. This
command has the same effect as entering an *C SNARJP command followed by an *S
SNARJP command for the same workstation. It can be used to end activity immediately or
Stopping RJP:
Use the *C RJP command to stop a BSC RJP session or activity on any line. The
command can be used to stop activity immediately or as though a normal workstation
sign-off occurred.
Use the *C command to halt the SNA RJP network, a SNA RJP workstation, or processing
on a SNA RJP device.
Changing RJP:
Use the *F T command to:
– Specify the action to be taken if a remote printer or punch becomes "not ready".
– Assign a password to a line or to specify that no password is required.
– Hold or release jobs that are being submitted from BSC RJP workstations.
– Hold or release jobs on the JES3 job queue that are being submitted from a SNA RJP.
– Specify whether a line will be started automatically when BSC RJP is reinitialized.
– Control the RJPSNPS facility.
– Disable or enable an automatic reader at a SNA RJP workstation.
– Disable or enable SNA RJP tracing.
– Change the number of times an incorrect password is allowed from a SNA RJP
workstation before logons are inhibited.
– Change the group name on a SNA or BSC RJP workstation.
You use the *F CONFIG command to make configuration dynamically changes to SNA RJP
definitions. The command is equivalent to adding the following SNA RJP initialization
statements to the initialization stream:
– RJPWS - SNA RJP Workstation Characteristics
– CONSOLE - SNA RJP Consoles
– DEVICE - SNA RJP Devices
FCTs
CONSDM Queue Messages for Remote Console
RJP FCTs
This figure shows the FCTs used for processing of RJP functions, both SNA and BSC.
CONSDM The CONSDM DSP processes JESMSG and RJP message spooling.
SNARJP Synchronous data link control (SDLC) protocols within the network architecture
(SNA) is used. Remote devices using SDLC protocols are managed by the
SNARJP DSP. With SNA RJP, line protocols are managed VTAM.
RJP BSC RJP (binary synchronous communication remote job processing) include
two logical sections: the RJP line manager DSP, which controls all the line
activities; and the remote terminal access method (RTAM), which blocks data
into and deblocks data out of the appropriate transmittal buffers. The RJP line
manager and the RTAM RJPPUT processing routines can execute
simultaneously under different tasks; but the line manager must run under the
primary task (IATNUC) because it interacts with other non-multi-tasked JES3
DSPs.
WTR Output can be sent to a variety of devices. For RJP attached devices that are
not driven by the JES3 global address space, the WTR DSP passes output to
the appropriate interface. This can be RJP, SNARJP, or NJE services.
CR Reader processing takes place in the JES3 global address space. The reader
phase reads jobs from any of the sources mentioned above and place the jobs
on JES3 spool in batches for later processing. Jobs submitted from BSC RJP
remote stations are processed as if they come from a local card reader. Jobs
from SNA RJP use a special logical record (LR) interface.
RJP consoles
The RJP console services processor (RJPCONS) processes all messages from JESXCF
destined for an RJP workstation by invoking JESXCF to obtain messages destined for RJP
workstations. When JESXCF returns messages, process under RJPCONS FCT searches the
messages and chains the messages to be sent to the workstation's RJP console.
The NJE console services processor (NJECONS) maintains a queue for pending network
commands. A console is established for the pending NJE command instance by invoking
JESXCF. The command is then issued. When a response is issued for the command, it is
routed to JESXCF which in turn notifies this DSP that a command response is available. The
responses are retrieved from JESXCF, NJE command response entries are created and
routed back to their origin.
SYSJ3Rxx consoles
The extended MCS console named SYSJ3Rxx, where xx is a number starting with 01, is
activated by JESXCF. This console is used to deliver messages to all RJP consoles. JES3
messages issued in response to commands entered from RJP consoles are directed to the
SYSJ3R01 console. JES3 retrieves messages queued on the SYSJ3R01 console for a
specific RJP workstation by using the RJP terminal name as the CART value and delivers
these messages to the remote console.
CONSOLE,JNAME=name,TYPE=RJP,DEST=(msgdest,..msgdest),
LL=nnn,LEVEL=nn,SAVEMSG={YES|NO}
CONSOLE TYPE=RJP supported
SAVEMSG= keyword
Messages spooled if console logged off
DEST= accepts MVS route codes
*INQUIRY O=*
The workstation name is derived from the RJPWS initialization statement for an SNA
workstation or the RJPTERM initialization statement for BSC. This workstation name serves
as the userID for the workstation console. Users of the RJP console have to log on using this
terminal ID and supply the same password.
The following commands apply only to RJP consoles and the DLOG function:
*I O command displays RJP console and DLOG status
*F O command modifies RJP console and DLOG status
Message IAT8618
To display the number of spooled messages queued to a signed off RJP console, enter:
*I D,T=RJP01
IAT8618 .. gives SPOOLED MSG=xx
Message IAT8622
This message is issued in response to an *INQUIRY command that requested the status of a
BSC RJP line or workstation or a SNA RJP workstation. The designated line or workstation is
signed on.
*I D,T=RJP02
IAT8622 .. gives CHAINED MSG=xx
*I O=*
IAT8589 CONSOLE DISPLAY
NAME COUNT SWITCH LL AUTH SAVEMSG
RJP01 00000010 0120 15 YES
ROUTE CODE=(BROADCAST)
DEST CLASS=(ALL)
SWITCHED CONSOLES=(RJP06)
*I O=RJP06
IAT8589 CONSOLE DISPLAY
NAME COUNT SWITCH LL AUTH SAVEMSG
RJP06 00000000 RJP01 0120 15 YES
ROUTE CODE=(HARDCOPY,1-128)
DEST CLASS=(TOTAL)
RJP01 00000010 0120 15 YES
ROUTE CODE=(BROADCAST)
DEST CLASS=(ALL)
*I O=*
IAT8589 CONSOLE DISPLAY
NAME COUNT SWITCH LL AUTH SAVEMSG
RJP01 00000010 0120 15 YES
ROUTE CODE=(BROADCAST)
DEST CLASS=(ALL)
SWITCHED CONSOLES=(RJP06)
When displaying console RJP06 whose messages have been switched to console RJP01,
RJP01 console status is also displayed:
*I O=RJP06
IAT8589 CONSOLE DISPLAY
NAME COUNT SWITCH LL AUTH SAVEMSG
RJP06 00000000 RJP01 0120 15 YES
ROUTE CODE=(HARDCOPY,1-128)
DEST CLASS=(TOTAL)
RJP01 00000010 0120 15 YES
ROUTE CODE=(BROADCAST)
DEST CLASS=(ALL)
Unit of work
An NJE transfer unit is a unit of work that is transmitted across the network. An NJE transfer
unit can be either an NJE job or a nodal message record (NMR).
An job is a transfer unit that contains data to be processed at another node in the NJE
network. It begins with a job header, is followed by data, and ends with a job trailer. The type
of data contained in the NJE job further defines the type of the NJE job. The data between the
job header and job trailer can be either SYSIN or SYSOUT data. An NJE SYSIN job is an
NJE job that contains JCL for a job and may have one or more SYSIN data sets. An NJE
SYSOUT job is an NJE job that contains one or more SYSOUT data sets. Each SYSOUT
data set is preceded by a data set header.
A nodal message record (NMR) is a unit of work that begins with an NMR header and is
followed by message text. The message text can be either a message or system command.
Note: If a node uses SNA protocols, the node has two names:
– An LU name as defined to VTAM
– An NJE node name created during JES initialization processing
The NJE node name appears in job headers, data set headers, and NMRs.
Each node in the network can do the following with an NJE transfer unit:
Transmit - The node packages the NJE transfer unit and transmits it to another node.
Receive - The node recognizes the NJE transfer unit, receives, and stores it.
Store-and-forward - The node accepts the NJE transfer unit, stores it, and schedules it to
be forwarded to another node.
Types of nodes
NJE uses the following terminology for the nodes that comprise an NJE network.
Originating Node is the node where the user submitted the request to transmit the data.
Intermediate Node is a node that lies in the path of either the:
Originating node and execution node
Execution node and the destination node
It receives and transmits the NJE transfer unit to the next node in the path of the target
node.
Target Node is the node where a NJE job or NMR is received and will either be executed
or be processed. The target node can be either a:
Destination Node - a node that receives and processes:
• An NJE SYSOUT job.
• A message contained in an NMR.
Execution Node - a node where:
• JCL contained in an NJE SYSIN job executes.
• A command contained in an NMR is processed.
NODEA NODEC
Job
Job Transmitter Job Receiver
Transmitter
SYSIN
Job Receiver Job Transmitter
NJE networking
Each node has the capability to:
Send job streams to the other node.
Send SYSOUT streams to the other node.
Send commands to the other node.
Networking examples
If a user at NODEA submits a request to transmit a job to execute at NODEC, NODEA is the
originating node. Input service at NODEA processes the user's JCL for the request and
creates a network job.
Networking creates separate data sets to contain the different portions of the network stream
and creates JDS entries to identify the data sets. Networking assigns the following names to
each data set:
See Network Job Entry Formats and Protocols, SA22-7539 for additional information.
BSC
JES2, JES3, VM RSCS, VSE/POWER support BSC
No AS/400 BSC NJE support
SNA
JES2
JES3 with BDT
VM RSCS, AS/400, VSE/POWER support SNA
TCP/IP
VM RSCS, AS/400, VSE/POWER support TCP/IP
JES2 Version 1 Release 7
JES3 Version 1 Release 8
Transport protocols
A network stream is transmitted across a connection that is initialized by a networking
protocol. JES3 supports two networking protocols:
SNA and BSC
The network is comprised of the home node and all of the remote nodes defined to the home
node. Each node in the network is identified by a unique node name assigned to the node
during JES3 initialization. A node can be a JES3 complex networking for both SNA and BSC
to:
Another JES3 complex
JES2 complex
VM RSCS complex
VSE/POWER complex
AS/400®
The type of protocol used to transmit the network stream is determined by the TYPE=
parameter on the NJERMT statement that defines the directly connected remote node. If
TYPE=BSC is specified on the NJERMT statement that defines the remote node, BSC
protocols are used to transmit the network stream. If TYPE=SNA is specified on the NJERMT
statement, SNA protocols are used to transmit the network stream. TYPE=TCPIP specifies a
TCP/IP networking protocol. Since a node can be directly connected to more than one node,
each JES3 node in the network has the capability of transmitting a network stream by using
BSC, SNA, or TCPIP protocols.
BSC definitions
You must code a NJERMT statement for the home node (your node) and one for each remote
node that will communicate with the home node.
All DEVICE statements with the parameter DTYPE=SYSMAIN specified must precede the
NJERMT statement.
To transmit an NJE transfer unit to a complex other than the user’s installation (a remote
node), the user issues a command or submits a job specifying a destination node name. The
destination node can be either directly- or indirectly-connected to the originating node. In the
network depicted in the figure, if NODE1 is the originating node, NODE2 is a
directly-connected node to NODE1, and NODE3 is an indirectly-connected node to NODE1.
*X,NJE,NAME=
Starts communication on a networking BSC line
BSC line could have been defined as directly
connected or indirectly connected
*X,NJECONS
Starts networking console support
Node NODE1 Node NODE2
Physical
0505 0907
Connection
Commands Commands
*X,NJE,NAME=NODE2 *X,NJE,NAME=NODE1
$HASP880 LINE1 ... $HASP880 LINE1 ...
*X,NJE,NJECONS *X,NJE,NJECONS
IAT7131 NJECONS NOW IAT7131 NJECONS NOW
ACTIVE ACTIVE
BSC commands
Use the *X NJE command to start communication on a networking line that directly connects
your complex to a remote node.
You must use this command after JES3 initialization to start communication on a line that
directly connects your node to a remote node before you can transmit to or receive data from
that node or from indirectly connected nodes whose path is through that node.
If more than one line connects your node with a remote node, you can also use this command
to start the additional lines as they are needed.
Use the *X,NJE command to specify I/O operations across the BSC NJE line and only for
BSC/NJE networking.
NJECONS DSP
Use the *X NJECONS command to start networking console support DSP. After JES3
initialization and before you can send or receive commands or messages from nodes in your
network, you must use this command to start networking console support.
JES3 starts networking console support. You can now send and receive messages and
commands to or from any other node in the network.
IAT7131 NJECONS NOW ACTIVE
NJE consoles
JES3 networking console support is handled by the NJECONS DSP (module IATCNNJ). This
DSP is called and canceled by the operator.
NJECONS DSP
The NJECONS DSP processes nodal message records (NMRs), which contain network
commands or messages. The NMRs may be received from or sent to other nodes in the
network.
The NJECONS DSP mainline performs initialization, routing and termination functions. The
DSP initializes the network console queue (NCQ) and anchors it from the TVT. Routines in
NJECONS DSP maintain also the network pending command queue (NPC). When a remote
node sends a command to this node, the command NMR is chained from an NPC entry which
will represent the NJE command. Console support is established for the NJE command
instance by invoking JESXCF with a unique console name associated with the new NJE
command instance. The command is issued. When a response is issued for the command, it
is routed to JESXCF which in turn will notify the NJECONS DSP that a command response is
available. The responses are retrieved from JESXCF. NJE command response entries are
created and routed back to their origin for each message received from JESXCF.
You can use this command to modify or display the status of jobs submitted at your node and
sent to another node for processing.
Syntax: *T nodename,system-commands
Note: The comma between nodename and system-commands is required.
*F NJE,ADD=nodename,TYPE=[TCPIP | SNA]
[,PATH=nodename]
*F NJE,DEL=nodename
Note: You cannot dynamically add or delete your installation (the home node) to the
network.
Do not use the *F NJE command to change the type of protocol, from SNA to BSC, for
dynamically added nodes. Be careful when using the *F NJE command to change the type of
protocol from SNA or TCP/IP to BSC. In particular, a device with DTYPE of NJELINE must be
available for this BSC node to use. If such a device does not exist, it must be added with a hot
start with refresh before you can use the modified BSC node. You cannot delete an active
adjacent BSC node from your installation. An active node is a node currently transmitting to or
receiving data.
In the example, for sending commands via NJE you must use a double ampersand with
symbolic symbols. When the system finds two consecutive ampersands at the beginning of a
valid symbol, it removes the first ampersand and keeps the second ampersand in place. A
subsequent process can then substitute text for the symbol in later processing, or the second
ampersand can remain as a literal character.
So if you route a command to another node in a network, use double ampersand (&&)
notation to cause substitution to occur on the receiving node.
However, since exit 35 is entered before substitution occurs, be aware that the command may
have the symbol still there.
Note: In the example, the MCS ROUTE command could be used to send operator
commands from JES3 global running on SC50 main to another JES3 global main
running on SC43 because the two JES3 complexes were running in the same sysplex.
BDT runs in its own address space. A JES complex may have one or more BDT address
spaces. Each processor in the complex may have one or more BDT address spaces. A
complex with multiple BDT address spaces is called a poly-BDT complex. You must decide
whether you want to set up such a complex. A poly-BDT complex is beneficial during testing,
as a way to separate testing from production work.
JES3 passes the jobs to BDT, which have to enter the network to adjacent SNA NJE node. If
necessary, the network jobs can be routed through intermediate systems (store and forward)
to reach their destination.
When writing new JCL, IBM recommends using the XMIT JCL (//name XMIT form) since this
statement is not dependent on using a particular JES subsystem. In addition, the XMIT JCL is
preferred because it allow transmission of records that a //*ROUTE XEQ, /*ROUTE XEQ or a
/*XEQ statement does not allow.
JES3
BDT Version 2
FTF NJE
BDT file-to-file
The z/OS BDT Facility is available as a program product of the MVS system product. z/OS
BDT is available in two releases. z/OS BDT Version 1 allows the installation to transfer (copy)
data sets from its original location to a new data set in the same or a new complex. This is the
file-to-file function of z/OS BDT.
( 1 ). SYSOUT ( 5 ). To NODEB
SNA LINK
JES3 ( 2 ). BDT
USER
( 3 ). Via SSI ( 4 ).
( 3 ). BDT Queue
This figure is an overview of how a BDT transaction takes place from the creation of the
SYSOUT file to the transmission by BDT to another node.
User SYSOUT
A user can create a network job to send one or more SYSOUT data sets (DEST=node) to one
or more nodes. Each SYSOUT data set is represented by one or more data set headers. The
data set headers indicate:
The node where the SYSOUT data set should be processed
Processing options for the SYSOUT data set
A shuttle BDT Subsystem Interface Data (BSID) area is associated with each z/OS BDT
address space that is defined in the complex. JES3 uses the shuttle to send requests to the
specified z/OS BDT subsystem. The BSID contains a data area where JES3 places the
request. To send a BSID to z/OS BDT, JES3 issues a JSERV macro TYPE=RESP. The
subsystem communication routines that process the JSERV macro, place the BSID in the
shuttle staging area and pass it through the subsystem interface to the specified z/OS BDT
subsystem.
SNA - LINK
JES3 BDT BDT JES3
JES3 ( 4 ).
( 5 ). ( 1 ). ( 3 ).
( 2 ).
NJERDR DSP
The data set containing the stream is received by the z/OS BDT subsystem. z/OS BDT
decompresses the data and writes the data to spool as a single data set. z/OS BDT spins off
the data set with a destination of NJERDR. The data set is queued to a NJERDR DSP or a
NJERDR DSP that is waiting is posted to indicate a data set was received and is ready to be
processed.
The NJERDR DSP, module IATNTNR, passes records containing a Record Identifier (RID
e.g. SYSIN or SYSOUT) and data to module IATNTJS. Module IATNTJS removes the RID
from the spool record. For a network SYSOUT stream, module IATNTJS creates at least four
data sets. Each data set contains either:
Job header information
Data set header information
File description blocks that contain the addresses of the SYSOUT data sets on spool
SYSOUT data
Job trailer information
To process the data, module IATNTNR obtains buffers (JDS, JDAB, JCT, AND JMR) that will
be used to create a network job at this node to process the network stream.
The home node packages the data to be transmitted in a network stream. JES3 recognizes
two types of network streams: a network job stream and a network SYSOUT stream. A
network job stream and a network SYSOUT stream both include a job header and trailer. The
data sets for the data streams have their own spool space (DSISO) and can be purged
following transmission.
The data streams are compressed and their format follows Network Job Entry Formats and
Protocols, SA22-7539 definitions.
Syntax:
//[name] XMIT parameter[,parameter]... [comments]
Parameters:
– DEST=nodename[.vmuserid] - Identifies the destination for all following records until a
delimiter stops transmission of the records.
– DLM=delimiter - Specifies a delimiter to stop the transmission of records.
– SUBCHARS=substitute - Specifies a substitute for internal reader control statements.
(JES3 only)
Use of XMIT JCL Statement in a JES3 System allows network transmission of the job. A
//*ROUTE XEQ statement can also be used to transmit records from a JES3 node. Because
an XMIT JCL statement allows transmission of records that the //*ROUTE XEQ statement
does not allow, use XMIT JCL statements rather than //*ROUTE XEQ statements.
The sending system does not process or check the records for validity except when the JCL is
processed by an internal reader (such as with TSO/E submit processing). In this case, the
system recognizes /*EOF and /*DEL as internal reader control statements and errors can
occur on the sending system if /*EOF or /*DEL are included in the XMIT JCL stream.
NJE jobs contain two JOB statements. The first JOB statement is used to route the work to
the remote node. The second JOB statement is the statement used to process the work. The
JES3 //*ROUTE XEQ or //XMIT statement have their first JOB statement verified at the
submitting node and their second JOB statement verified at the execution node.
The system builds network job header and trailer records from information on the JOB
statement and any //*NETACCT statements, if included, preceding the XMIT JCL statement.
Then the system transmits all the records between the XMIT JCL statement and a delimiter
statement.
The records can consist of a job input stream, an in-stream DD * or DD DATA data set, or any
job definition statements recognized by the destination node. If the records are a job input
stream, and the destination node can process the JCL, the transmitted input stream is
executed at the destination node. The records must be 80 characters long.
The records end when the system finds one of the following delimiters:
/* in the input stream, if a DLM parameter is not coded on this XMIT JCL statement.
XMIT rules
This figure shows the rules that apply when using the XMIT JCL statement.
Use the DEST parameter to specify a destination for the following input stream records. The
DEST parameter can send the records to a node or, for a node that is a VM system, to a
guest system running on the virtual machine.
If the delimiter is not two characters, the system terminates the job and does not transmit any
records. If the specified delimiter contains any special characters, enclose the delimiter in
apostrophes. In this case, a special character is any character that is neither alphanumeric
nor national ($, #, @).
If the system finds an error on the XMIT JCL statement before a specified DLM parameter, all
jobs in the batch are flushed.
JCTENTRY
For a network SYSOUT stream, the CI and MAIN SEs have already been marked complete
(due to the execution of the job) and the OUTSERV and PURGE scheduler elements will
complete the processing required to transmit the network stream. If the network stream will
be forwarded to another node, JES3 creates a NJESF, OUTSERV and PURGE scheduler
element.
JSS scheduling
The JES3 job segment scheduler (JSS) adds a job to the output service queue when it
determines all previous SEs for the job are complete. JES3 places the job on the appropriate
output service queue and:
Indicates that normal or spin-off processing should be performed for the network job
Posts the OUTSERV FCT
OUTSERV FCT
OSEs for network job stream
JES3 output service has "queue" Q = BDT
Q=BDT - Q=WTR - Q=HOLD
Post BDT FCT - (Work to do)
BDT FCT
Create BDT transaction for transmission - (SSI)
Transaction now on BDT queue - (BDT jobno)
MVS/BDT on NODEA
An OSE must be built for each part of the network stream to be transmitted across the
network. If necessary, an OSE for the job header, an OSE for the job trailer and an OSE for
the data set header, if the data is SYSOUT data. Output Service groups the OSEs that
represent the network stream together. Since the OSE that represents the data was built
before the OSEs for the job header, data set header and job trailer, IATOSBP makes a copy of
the OSE created by IATOSDO so that all the OSEs for the network stream are grouped
together.
BDTCOMM FCT
After building the necessary control blocks needed for the SNA networking job, the
BDTCOMM FCT is posted. The JES3/BDT communications interface notifies the z/OS BDT
subsystem at the home node that the JES3 job queue contains a network job that should be
transmitted to the destination node by using SNA protocols. Module IATOSBM processes a
TYPE=GET request to obtain the OSEs.
Module IATBDCI creates a transaction to send to the z/OS BDT subsystem. Module IATBDCI
issues a JSERV to send the data set information in a staging to the BDT queue.
Module IATNTNR, the NJERDR DSP driver, requests work from output service by indicating
in a writer selection parameter area (WSP) that a SYSOUT data set destined for an external
writer named NJERDR is required. The NJERDR uses the IATXOSPC macro service to
request a data set from output services and calls 'Networking Job/SYSOUT Receive Module'
IATNTJS. IATNTJS creates a “utility” job to process the “spin off” network stream at this node.
JCT
When scheduled - Builds "execution job"
- Jobname - EXEJOB
ISDRVR
JCT
PURGE
EXEJOB
ISDRVR FCT
CI
Adds job to JES3 job queue MAIN
OUTSERV
EXEJOB Executes
PURGE
Creates output for originating node
Default destination for output is originating node
EXEJOB job
When the job finally executes and creates SYSOUT output, the default destination for the
SYSOUT data is the originating node. The OUTSERV scheduler element of the EXEJOB job
will then send the output to the originating node.
OUTSERV FCT
Builds OSE for sysprint - DEST=originating_node
Module IATOSBP (at OSE construct)
Builds NJE header trailer
Place OSEs on Q=BDT Queue for SNA NJE jobs
(No utility job)
BDT FCT posted
BDT FCT
Select OSEs
Create transaction for MVS/BDT via SSI
z/OS BDT A/S
Select transaction - transmit output to originatin node
Record identifiers are added to each record.
OSE construction
An OSE must be built for each part of the network stream to be transmitted across the
network. If necessary, module IATOSBP builds an OSE for the job header, an OSE for the job
trailer and an OSE for the data set header, if the data is SYSOUT data. Output Service
groups the OSEs that represent the network stream together.
After module IATOSDR has built the necessary control blocks needed for the SNA networking
job, the BDTCOMM FCT is posted. The JES3/BDT communications interface routine notifies
the z/OS BDT subsystem that the JES3 job queue contains a network job that should be
transmitted to the destination node by using SNA protocols.
BDT FCT
A routine in module IATBDCI (BDT FCT) is invoked by the JES3 dispatcher (multifunction
monitor - MFM) when the FCT is posted. Processing in module IATBDCI uses the IATXOSBM
TYPE=GET macro to search the output service writer RESQUEUE chain for a network job
that requires SNA protocols. Module IATBDCI creates a transaction to send to the z/OS BDT
subsystem and issues a JSERV to send the information in a staging area to BDT address
space. BDT then transmits the network job by selecting the transaction from its queue.
NJERDR FCT
JCT
NJERDR FCT
The NJERDR FCT selects the OSE and creates a utility job. When a network stream that
contains a SYSOUT data set is received, module IATNTJS builds a job that will process the
SYSOUT data. This job has NJESF, OUTSERV, and PURGE scheduler elements.
NJESF DSP
The NJESF DSP prepares a SYSOUT stream for local printing or store-and-forward through a
communication link. It also prepares a job stream for store and forward via a BSC or SNA link.
NJESF
OUTSERV
NJESF
OUTSERV When scheduled - Prints output
PURGE
JES3 networking creates “utility” jobs with the NJESF scheduler element for the following
types of NJE streams received from other nodes:
job streams to be forwarded through BSC, SNA or TCPIP nodes.
SYSOUT streams to be forwarded through BSC, SNA or TCPIP nodes.
SYSOUT streams to be processed locally.
NJESF DSP
The NJEFS DSP, once scheduled, prepares the network job for the next scheduler element in
the “utility” job. For SYSOUT streams for local processing it updates the JDS in preparation
for the OUTSERV DSP.
All of the data set headers for this stream are in a single spool file. Any SYSOUT data set
within the stream may be preceded by one or more data set headers. the destinations for
these multiple data set headers can be mixed, i.e. local, BSC, SNA and TCPIP destinations
can all exist in a single received stream.
Transmission summary
This figure is a summary of the process of sending a SNA NJE job from an originating node to
execute on the execution node and the SYSOUT coming back to the originating node to print
that was discussed in the previous visuals.
GROUPID
Number assigned sequentially at OSE build
BDTnnnnn Where nnnnn=00000 to 65535
OSEGRPID Field (for BDT)
To odentiry netwrok streams
GROUPID, jobname, and jobno
*I U Q=BDT J=?
IAT8131 JOB PCPRTJV (JOB22144), D=WTSCPLX9, L=8, PG=0, SR=8,
IAT8131 JOB PCPRTJV (JOB22144), BY=4084, BG=BDT00000.
IAT8131 JOB PCPRTJK (JOB22145), D=WTSCPLX9, L=8, PG=0, SR=8,
IAT8131 JOB PCPRTJK (JOB22145), BY=4084, BG=BDT00000.
IAT8131 JOB PCPRTJK (JOB22145), D=WTSCPLX9, L=8, PG=0, SR=8,
IAT8131 JOB PCPRTJK (JOB22145), BY=4084, BG=BDT00001.
IAT8131 JOB PCPRTJK (JOB22145), D=WTSCPLX9, L=8, PG=0, SR=8,
IAT8131 JOB PCPRTJK (JOB22145), BY=4084, BG=BDT00002.
IAT8131 JOB PCPRTJK (JOB22145), D=WTSCPLX9, L=8, PG=0, SR=8,
IAT8131 JOB PCPRTJK (JOB22145), BY=4084, BG=BDT00003.
IAT8119 NUMBER OF JOBS FOUND : 2
IAT8141 NUMBER OF BDT JOBS FOUND : 5
JOB13 JOB14
BDT00000 BDT00000
BDT00001
BDT00002 |
BDT00003
After the job is placed on the z/OS BDT job queue, z/OS BDT sends a transaction notification
BSID to the JES3/BDT Communications Interface (IATBDCI). This BSID is a queued
response BSID. After receiving that transaction notification BSID, IATBDCI issues an Output
Service BDT/TCP Manager IATXOSBM macro PUT request. This PUT request, containing
indicators in the Output Service BDT/TCP Parameter List (IATYOSB) indicates that the file
work has been queued on z/OS BDT (field OSEBFLG2 is set to OSEBQUED). T he
IATXOSBM macro processing in IATOSBM module updates the OSEs pertaining to that job to
indicate that the job has been placed on the z/OS BDT queue. The OSE is also updated with
the BDT job number. IATOSBM uses the jobname and groupid to retrieve the Resident Job
Queue Table entry (RQ) for the job. IATOSBM then returns control to IATBDCI.
NO - Specifies that JES3 send DSISO data sets destined for SNA/NJE nodes as
separate data sets. Specifying SNAGROUP= NO allows JES3 to release spool space
as soon as a data set is sent.
Using DSISO
This is the example from the last figure after the OSEs have been created. The 3 OSEs would
be processed separately. After all SYSOUT data sets have had their SYSOUT OSEs built for
a job, module IATOSDR calls IATOSBP, supplying a pointer to a RESQUEUE indicating the
job that is being processed and a pointer to the chain of SYSOUT OSEs (built by IATOSDO)
for the current job. The head pointer to the chain of in-storage SYSOUT OSEs for this job is in
IATODDR (location OSDRSECH). IATOSBP obtains working storage for building the job
header, data set header and job trailer.
Note: If CLASS=X was not a DSISO class, then there would be one transaction created
and one transmission stream.
CELLPOOL Define
Pool the NODEs
for z/OS BDT use SP= 21
OPTIONS z/OS BDT Installation Options
SNABUF Allocate storage for data buffers
Initialization statements:
CELLPOOL A cell (sometimes called a storage cell) is another name for the main storage
that is defined by a CELLPOOL statement. A cell pool is a group of cells that
are related by the fact that BDT uses them for the same purpose.
A subsystem with only a SNA NJE node requires 12 different cell pools.
CELLPOOL statements must be first in an initialization stream.
OPTIONS You can use the OPTIONS statement to specify operating characteristics of
the home BDT subsystem.
SYSID The SYSID statement specifies the name of the home SNA NJE node. It also
provides the application name and password that identify each node to
VTAM.
BDTNODE BDTNODE TYPE=NJE specifies that the home and remote BDT nodes may
send and receive only SNA NJE jobs and SYSOUT. This parameter
corresponds to the BDT SNA NJE feature for JES3 installations.
For each session, BDT always requires one VLU for communicating control information. The
other VLUs transfer the data.
For each JES3 SNA NJE session, 28 data transfer VLUs are possible. Of the 28 possible
VLUs in a session, one node can schedule 14 (7 for sending jobs and 7 for sending output)
and the other node can schedule 14 (7 for sending jobs and 7 for sending output). They are
specified in groups of four.
A VLU can transfer data in two directions--either to or from a node. During the time a VLU is
allocated to a specific transfer, however, that VLU can transfer data in only one direction.
Once that transfer completes and BDT deallocates the VLU, the VLU will again be able to
transfer data in either direction.
*I NJE N=WTSCPLX9
IAT8659 - NODE WTSCPLX9 NOHOLD PATH WTSCPLX9 SNA PROTOCOL
*S BDT I NODE=WTSCPLX9
IAT9514 COMMAND/TRANSACTION ACCEPTED, TQI DISABLED
BDT8646 WTSCPLX9 IS ONLINE
BDT8645 NJE NODE WTSCPLX9 VLU COM TYPE COM VLU STATUS ONLINE / ALLOCATED / CLOSED /
BDT8645 NJE NODE WTSCPLX9 VLU OJ1 TYPE XFR VLU STATUS ONLINE / UNALLOCATED / CLOSED /
BDT8645 NJE NODE WTSCPLX9 VLU OS1 TYPE XFR VLU STATUS ONLINE / UNALLOCATED / CLOSED /
BDT8645 NJE NODE WTSCPLX9 VLU IJ1 TYPE XFR VLU STATUS ONLINE / UNALLOCATED / CLOSED /
BDT8645 NJE NODE WTSCPLX9 VLU IS1 TYPE XFR VLU STATUS ONLINE / UNALLOCATED / CLOSED /
BDT8645 NJE NODE WTSCPLX9 VLU OJ2 TYPE XFR VLU STATUS ONLINE / UNALLOCATED / CLOSED /
BDT8645 NJE NODE WTSCPLX9 VLU OS2 TYPE XFR VLU STATUS ONLINE / UNALLOCATED / CLOSED /
BDT8645 NJE NODE WTSCPLX9 VLU IJ2 TYPE XFR VLU STATUS ONLINE / UNALLOCATED / CLOSED /
BDT8645 NJE NODE WTSCPLX9 VLU IS2 TYPE XFR VLU STATUS ONLINE / UNALLOCATED / CLOSED /
*S BDT C SNA NODE=WTSCPLX9
IAT9514 COMMAND/TRANSACTION ACCEPTED, TQI DISABLED
BDT2862 SESSION QUIESCE REQUESTED FOR WTSCPLX9 (WTSCPLX9), TYPE=NJE
BDT2803 SESSION TERMINATED WITH WTSCPLX9 (WTSCPLX9)
/S SNA NODE=WTSCPLX9
BDT2822 LOGON IN PROGRESS FOR WTSCPLX9 (WTSCPLX9)
BDT2802 SESSION ESTABLISHED WITH WTSCPLX9 (WTSCPLX9), TYPE=NJE
BDT2877 - WTSCPLX9 (WTSCPLX9) - BUFSZ = 01024, SNA TERMINATION EXTENSION = YES
Frequently used commands can be assigned to the program function keys (PF keys) on the
console's keyboard. The PF keys can be set up to issue a command immediately when you
press them, or to produce skeletal commands with blank spaces for you to fill in.
In JES3, TCP/IP/NJE can be thought of as a hybrid between BSC and SNA. NJE over TCP/IP
uses the same record structure and data streams as BSC NJE. But like SNA NJE, in JES3,
the NJE communication is driven through a separate Netserv address space that is
analogous, although not functionally identical, to BDT.
IPv4 addresses are represented in dotted-decimal format. The 32-bit address is divided along
8-bit boundaries. Each set of 8 bits is converted to its decimal equivalent and separated by
periods. In contrast, IPv6 addresses are 128 bits divided along 16-bit boundaries. Each 16-bit
block is converted to a 4-digit hexadecimal number and separated by colons. The resulting
representation is called colon-hexadecimal.
The following are the three conventional forms for representing IPv6 addresses as text
strings:
The preferred form is x:x:x:x:x:x:x:x, where the x's are the hexadecimal values of the eight
16-bit pieces of the address. For example:
2001:DB8:7654:3210:FEDC:BA98:7654:3210
2001:DB8:0:0:8:800:200C:417A
It is not necessary to write the leading zeros in an individual field, but there must be at
least one numeral in every field (except for the case described in the following bullet).
SSL is not defined by the IETF. TLS is based on SSL and is defined by the IETF as RFC
2246.
The transport layer security (TLS) provides endpoint authentication and communications
privacy over the Internet using cryptography. Typically, only the server is authenticated (i.e., its
identity is ensured) while the client remains unauthenticated; this means that the end user
(whether an individual or an application, such as a Web browser) can be sure with whom they
are communicating. The next level of security in which both ends of the "conversation" are
sure with whom they are communicating is known as mutual authentication. Mutual
authentication requires public key infrastructure (PKI) deployment to clients unless TLS-PSK
or TLS-SRP are used, which provide strong mutual authentication without needing to deploy
a PKI.
TCP sets up a connection between two endpoints (nodes), identified by the respective IP
addresses and a port number on each. A port is the abstraction used by Internet transport
protocols to distinguish among multiple simultaneous connections to a single destination
host.
Each system in a network is assigned an IP address. Each TCP/IP service machine will have
an IP address. Many applications on a system can use the TCP/IP service machine.
To enable the TCP/IP service machine to separate incoming packets, the applications use
port numbers to indicate which packets correspond to which applications. TCP allows an
application to open a virtual circuit in either passive mode (waiting for incoming requests to
open, also known as server mode) or active mode (sending requests to open, also known
as client mode). In general, one TCP application (the server) issues a passive open for a
port number (known as the well known port) and the other TCP application (the client) will
normally issue an active open for the well known port on the system (IP address) where the
first (server) application is located. Either side can attempt to connect to the other side's port.
The TCP connection or virtual circuit path between the two applications will be completed and
data can be exchanged over the path.
In the JES3 TCP/IP/NJE implementation, the Netserv address space can run either on the
global or a local main processor. There is no limit to the number of Netserv address spaces
that can run in the JES3 complex simultaneously.
A Netserv address space is a started task that requires authority to communicate with JES in
order to spool, despool jobs and data sets. The common TCP/IP/NJE component, IAZNJTCP,
uses TCP/IP services and, thus, must operate in the z/OS UNIX System Services
environment. Therefore, the Netserv must have the proper authority to function. The required
authorities consists of:
A definition in the STARTED class to associate the started task with a userid.
An OMVS segment in the security definition for the userid associated with the started task.
Netserv definition
A network server, typically abbreviated Netserv, which runs as a separate address space
from JES3 on the global or any local that is at a sufficient software level. A NETSERV
definition consists of the following information:
A host name and port of a local socket over which the Netserv listen for incoming
information from TCP/IP. The host name can be left unspecified in order to indicate to
TCP/IP that it can use any IP address that is defined for the home node.
The port can be any number from 1 to 65,535. It can also be specified as, or allowed to
default to, the special value of 0. This value indicates that a default service name should
be used. The service name is VMNET for non-secure connections, and NJENET-SSL for
secure connections, if TLS=YES is specified.
More than one Netserv can use the default IP address by omitting the HOSTNAME
parameter, but they must specify unique ports.
A system name where the Netserv is to run. If you do not specify a system name, the
Netserv will run on the current JES3 global. If a DSI is performed while a Netserv is active,
the Netserv will remain active on the same system on which it was active before the DSI.
Note: The Internet protocol suite (commonly TCP/IP) is the set of communications
protocols that implement the protocol stack on which most networks run.
Socket definition
A socket definition, defining a foreign socket that will be used to connect to TCP/IP. Each
socket runs as a subtask under a Netserv address space. The SOCKET definition consists of
the following information:
A unique name representing the view of the socket by JES3 global, and used in inquiry
and modify commands as well as internal JES3 processing of outbound and inbound
TCP/IP data.
A host name.
A port number, handled the same way as the Netserv port number.
The Netserv under which the socket task will run.
The concept of foreign and local sockets exist in TCP/IP. A JES3 socket defines JES3's usage
of a foreign socket only. The local socket is implicitly defined by the NETSERV statement.
You may use the SECSIGNON parameter (valid for TYPE=TCPIP only) to indicate that the
signon procedure includes additional checking using the encryption of a random string to
confirm the identity of the node.
TCP/IP networking
The Netserv address space plays the same role in the TCP/IP/NJE function as BDT does in
SNA. Certain definitions in one world have analogous definitions in the other. More
specifically, the Netserv definition plays the same role as the SYSID definition in the SNA
world, it defines the server address space. The socket definition within the Netserv plays the
same role as a VTAM LU definition inside BDT. But a major difference is that while BDT has
its own initialization stream and definitions, the Netserv and Socket definitions and modify
commands to add, change, or delete these definitions all live in JES3.
Open and close processing for SYSOUT is data involves IATSIOR and IATDMJA and the
communication data area JDS Interface Block (JIB). A JIB represents a single Job Data Set
Control Block (JDS) that is being created in a user address space and is being sent over to
the global to "register" as a global control block.
To avoid double spooling, TCP/IP/NJE requires multiple JDSes to have spool space allocated
from the same Job/Data set Track Allocation Table (DSTAT), instead of individual DSTATs.
Instead of individual JIBs, a Multiple JDS Interface Block (MJIB) is used by the JDS access
SSISERV request. The MJIB consists of multiple JDS entries.
When Netserv has received each piece of the inbound network job’s data, JDS entries have
been constructed, and placed into the MJIB, the MJIB is sent (SSISERV) to the global. If
there are too many JDS entries to fit into one staging area, a multi-segmented staging area is
sent.
When an inbound network job is received, the NJERDR DSP acts as the front end to the
networking receiver routine (IATNTJS) for SNA NJE processing (the NJE DSP driver
(IATNTDR) is the front end for BSC/NJE processing).
IATNTTCT's functional routine initiates a SAPI request to retrieve outgoing data for the job. To
make the spool access faster, instead of using SAPI GET to retrieve the data, IATNTTCT then
uses the block spooler (IATDMBS) to read the data.
Transmission summary
This figure is a summary of the process of sending a TCP/IP/NJE job from an originating
node to execute on the execution node and the SYSOUT coming back to the originating node
to print.
The *F NETSERV,ADD= operator command can dynamically add a new TCP/IP/NJE network
server.
The NETSERV address space can run either on the global or a local. There is no limit to the
number of NETSERV address spaces that can run in the JES3 complex at a single time. You
specify the system on which a NETSERV is to run when you define it to JES3.
You must use the *X TCP command to start a Netserv before you can start communication to
a node through any sockets that are defined under that Netserv. Following any restart of
JES3, other than a cold start, if the Netserv was not canceled before the restart, it is
automatically called again. Syntax:
*X TCP,NETSERV=ntsvname
The Netserv address space is started by using the ASCRE macro. (This is a common JES
implementation.) The purpose for this, rather than a START command for a procedure, is so
that a Netserv can work with no PROCLIB needed to be customized, although a RACF
started task table is still needed.
JES3 job name for the Netserv address space is IEESYSAS, MVS address space name for
the Netserv is ntsvname.
TLS/SSL support
Use of SSL and TLS by NJE/TCP is through Application Transparent TLS (AT-TLS). All of the
SSL/TLS definitions are defined in the TCP/IP and security profiles, rather than in JES3
parameter statements. The TLS= parameter on the NJERMT initialization statement indicates
whether the Transport Layer Secure facility will be used by any socket that is used to
communicate with this node.
NJERMT statement
The NJERMT statement has some new parameters that define a TCP/IP connection. The
TYPE=TCPIP parameter defines the protocol as TCP/IP. The JOBTRANS, OUTTRANS,
JOBRECV, and OUTRECV define the number of transmitters and receivers. Each of these
can be from 1 to 7. According to the NJE protocol, the sum of the transmitters can be a
maximum of 8, and likewise for the sum of receivers.
The TYPE=TCPIP parameter defines the node as an NJE over TCP/IP node. Following
parameters on the NJERMT statement define:
JOBTRANS, OUTTRANS, JOBRECV, and OUTRECV define the number of transmitters
and receivers for the node. Each of these is a number between 1 to 7. According to the
NJE protocol, the sum of the transmitters can be a maximum of 8, and likewise for the sum
of receivers.
SECSIGNON=YES defines that nodes signing on to each other verify their identity using
session keys defined to the security product’s APPCLU class. JES3 allows the
SECSIGNON=YES only for TYPE=TCPIP nodes.
TLS=YES indicates that the TCP/IP Transport Layer Secure (TLS) facility will be used to
encrypt transmissions.
*F NJE command
The *F NJE command can dynamically add a directly-connected node, delete a node or alias,
change the type of networking protocol you are using between your node and a remote node,
and change the usage of secure signon protocol and the Transport Layer Secure facility.
*START,TCP,SOCKET=sockname command
Starts a socket under a Netserv
JES3 Global
*X TCP NETSERV=ntsvnm
IATCNIN -> WTDDRVR (IATGRWD) ->
CallDSP (IATGRCD) -> TCP/IP/NJE DSP (IATNTTDR)
Calls IATNTTAC directly, if the Netserv runs on the global,
IATNTTDR otherwise sends a request to the local to call IATNTTAC.
ACALL JSERV This causes the ASCRE for the server to be issued.
ATTACH
Socket
subtasks
NETSERV,NAME=J3TCPIP,HOSTNAME=WTSC65.IBM.COM,PORT=1234
NJERMT,NAME=WTSCPLX4,HOME=YES
NJERMT,NAME=WTSCPLX9,TYPE=TCPIP
A socket statement for WTSCPLX4 to WTSCPLX9 is optional. One socket statement is necessary.
A “server” socket @0000001 is dynamically created on WTSCPLX4 when a *S TCP SOCKET=WTSCPLX4
command is issued on WTSCPLX9. If more sockets are needed, the next socket is @0000002, if @0000001
is still active, then @0000003 and so forth.
The HOSTNAME and PORT parameters on the NETSERV statement are optional. The
default is that the NETSERV listens to TCP/IP over any host and port that it can for the node.
The HOSTNAME and PORT parameters shown illustrates the relationship between the
NETSERV definition on one node and the SOCKET definition on the other.
*I NETSERV=J3TCPIP
IAT8707 NETSERV INQUIRY RESPONSE 791
INFORMATION FOR NETSERV J3TCPIP
SYSTEM=, HOST=WTSC43.IBM.COM, PORT= 1234, STACK=TCPIP,
JTRACE=NO, VTRACE=NO, ITRACE=NO, ACTIVE=NO
SOCKETS DEFINED IN THIS NETSERV
SOCKET ACTIVE NODE SERVER
WTSCPLX4 NO WTSCPLX4 NO
END OF NETSERV INQUIRY RESPONSE
*X TCP NETSERV=J3TCPIP
IAT6306 JOB (JOB44000) IS TCP , CALLED BY VAINI
IRR812I PROFILE J3*.* (G) IN THE STARTED CLASS WAS USED 822
TO START J3TCPIP WITH JOBNAME J3TCPIP.
IAT6100 ( DEMSEL ) JOB IEESYSAS (JOB44001), PRTY=15, ID=STC
ICH70001I STC LAST ACCESS AT 08:48:16 ON THURSDAY, MAY 29, 2008
IAT9301 TCP START SUCCESSFUL FOR SERVER J3TCPIP
IAZ0542I J3TCPIP IAZNJTCP for HBB7740 compiled Nov 16 2007 07:35:48
IAZ0537I J3TCPIP NJETCP SERVER WAITING FOR WORK
*S TCP NODE=WTSCPLX4
IAT7100 (CONCMD ) *S,TCP,SOCKET=WTSCPLX4
*S,TCP,SOCKET=WTSCPLX4
IAZ0543I J3TCPIP TCP/IP connection with IP Addr: WTSC65.IBM.COM Port: 1234 Initiated
IAZ0543I J3TCPIP TCP/IP connection with IP Addr: WTSC65.IBM.COM Port: 1234 Successful
IAT9305 NODE WTSCPLX4 SIGNED ON NETSERV J3TCPIP SOCKET WTSCPLX4
IAZ0544I J3TCPIP WTSCPLX4 NJE connection with IP Addr: wtsc65.ibm.com Port: 1234 Successful
The sockets that are defined for the requested node need to be started by an internally
generated *S TCP,SOCKET= command.
*I NJE N=NOGO
IAT8659 - NODE NOGO NOHOLD PATH NOGO SNA PROTOCOL
*F NJE N=NOGO TYPE=TCPIP
IAT8460 NJERMT UPDATE COMPLETE. REQUEST HONORED.
*I NJE N=NOGO
IAT8711 NODE INQUIRY RESPONSE 883
INFORMATION FOR NODE NOGO
TYPE=TCPIP, JT=1, JR=1, OT=1, OR=1, SS=NO, TLS=NO, ACTIVE=NO,
PWCNTL=SENDCLR
SOCKETS DEFINED FOR THIS NODE
NONE
END OF NODE INQUIRY RESPONSE
*F SOCKET ADD=NOGO HOSTNAME=WTSC70.IBM.COM PORT=2345 NODE=NOGO NETSERV=J3TCPIP
IAT8160 ADD COMPLETE FOR SOCKET NOGO
*S TCP SOCKET=NOGO
IAZ0543I J3TCPIP TCP/IP connection with IP Addr: WTSC70.IBM.COM Port: 2345 Initiated
IAZ0545I J3TCPIP Error encountered in function connect() - EDC8128I Connection refused.
IAZ0543I J3TCPIP TCP/IP connection with IP Addr: WTSC70.IBM.COM Port: 2345 ended due to TCP/IP error, rc: 1128
IAZ0528I J3TCPIP IP address of remote peer could not be resolved, TCP/IP rc: 1128
*I NJE N=WTSCPLX9
IAT8659 - HOME WTSCPLX9 PRTDEF A PRTTSO A PRTXWTR A PUNDEF B
Before you can establish any TCP/IP network connections, z/OS Communications Server
TCP/IP must be active, which in turn requires z/OS UNIX System Services and ACF/VTAM to
be active. A TCP DSP can be started by issuing *CALL,TCP. This can start a Netserv address
space. If the TCP DSP is started by issuing *CALL,TCP before TCP/IP is active, the Netserv
address space waits until TCP/IP is active. If the remote node is JES2 or JES3, you must start
the appropriate Netserv there as well. The sockets can then be activated from either side. The
operator can migrate any jobs that remain waiting for BDT to despool the output by using the
NJEROUT DSP. Jobs are transmitted when the socket is activated.
The visual shows the messages issued during the conversion of an existing SNA node to
TCP/IP.
*I NJE N=WTSCPLX9
IAT8659 - HOME WTSCPLX9 PRTDEF A PRTTSO A PRTXWTR A PUNDEF B
Job and SYSOUT streams, however, cannot be rerouted from the home node using this
facility.
To begin the rerouting process, the operator must *X the NJEROUT DSP. The *S and *R
commands can then be used to reroute specific jobs.
*I NJE N=WTSCPLX4
IAT8659 - HOME WTSCPLX4 PRTDEF A PRTTSO A PRTXWTR A PUNDEF B
IAT8707 NETSERV INQUIRY RESPONSE
IAZ0543I J3TCPIP TCP/IP connection with IP Addr: wtsc43.ibm.com Port: 1030 Successful
IAT8160 ADD COMPLETE FOR SOCKET @0000001 (INTERNAL)
IAT9305 NODE WTSCPLX9 SIGNED ON NETSERV J3TCPIP SOCKET @0000001
IAZ0544I J3TCPIP NJE connection with IP Addr: wtsc43.ibm.com Port: 1030 Successful
*I SOCKET=@0000001
IAT8709 SOCKET INQUIRY RESPONSE 937
INFORMATION FOR SOCKET @0000001
NETSERV=J3TCPIP, HOST=, PORT= 0, NODE=WTSCPLX9, JTRACE=NO,
VTRACE=NO, ITRACE=NO, ACTIVE=YES, SERVER=YES
END OF SOCKET INQUIRY RESPONSE
*I NETSERV=J3TCPIP
INFORMATION FOR NETSERV J3TCPIP
SYSTEM=SC65, HOST=WTSC65.IBM.COM, PORT= 1234, STACK=TCPIP,
JTRACE=NO, VTRACE=NO, ITRACE=NO, ACTIVE=YES
SOCKETS DEFINED IN THIS NETSERV
SOCKET ACTIVE NODE SERVER
@0000001 YES WTSCPLX9 YES
END OF NETSERV INQUIRY RESPONSE
Rerouted job is received and executed
IAT9127 JOB (JOB22212) IS VAINIXMT FROM WTSCPLX9(VAINI )
IAT6100 (JOB22212) JOB VAINIEX (JOB22213), PRTY=01, ID=VAINI
IAT7450 JOB VAINIXMT (JOB22212) PURGED
IAT9370 JOB VAINIEX (JOB22213) GROUPID (TCP00000) TRANSMISSION TO NODE WTSCPLX9 SUCCESSFUL
IAT7450 JOB VAINIEX (JOB22213) PURGED
The *I NETSERV=ALL displays information about all Netserv address spaces. Up to 999
address spaces may be defined.
Secure signon
With TCP/IP, there is a greater potential for a hacker to pretend to be an NJE over TCP/IP
node than with BSC or SNA nodes. It is much harder for someone to hack into BSC or SNA
and pretend to be an NJE node. Generally, this can happen if hardware equipment is
connected the wrong way. To cope with this potential risk, JES3 provides a mechanisms to
secure the NJE over TCP/IP communications. These are secure signon and the transport
layer secure (TLS) protocol.
Secure signon involves an encryption key, which is on a node by node basis (and only directly
connected nodes). The encryption key is stored in the RACF APPCLU class as a profile
which the JES code can extract.
NJERMT statement
Secure signon is selected by using the SECSIGNON=YES/NO parameter on the NJERMT
statement.
The first node must then encrypt that string and send the result back. If both nodes have the
same encryption key defined to the RACF APPCLU class, the encryptions will yield the same
result and the nodes are allowed to sign on. Otherwise the signon fails. This is a means for
two nodes to authenticate one another.
N1 N2
Generate RAND1
Encrypt RAND1 using key RAND1
Generate RAND2
Encrypt RAND1 using key
encrypted RAND1, RAND2
Compare encrypted
RAND1 values
Encrypt RAND2 using key encrypted RAND2
Compare encrypted
RAND2 values
Secure signon
Secure signon is an optional security mechanism to ensure that two nodes prove their
identities to each other during NJE signon. Secure signon is provided only in JES2 and JES3.
Secure signon has nothing to do with Transport Layer Secure (TLS) in TCP/IP. TLS is a
separate security feature.
Secure signon uses the APPCLU security class to provide an encryption key. A node
participating in secure signon supplies a random string to its NJE partner. The other node
encrypts the string and sends the result back to the first node. At the same time, it supplies its
own random string. The first node must then encrypt that string and send the result back.
If both nodes have the same encryption key defined to the APPCLU class, the encryptions
will yield the same result and the nodes are allowed to sign on. Otherwise the secure signon
fails.
The SESSION parameter in the APPCLU security class on both nodes must specify a
session key and both session keys must be the same. The name of the APPCLU security
profile is NJE.homenode.rmtnode.
User exits
JES3 job networking user exits:
IATUX35 (Validity Check Network Commands)
IATUX36 (Collect Accounting Information)
IATUX37 (Modify the JES3 Networking Data Set Header for Local Execution)
IATUX37 - Changed installation exit for TCP/IP.
IATUX38 (Change the SYSOUT Class and Destination for Networking Data Sets)
IATUX39 (Modify the Data Set Header for a SYSOUT Data Set)
IATUX40 (Modify Job Header for a Network Stream Containing a Job)
IATUX42 (TSO Interactive Data Transmission Facility Screening and Notification)
IATUX43 (Modify Job Header for a Network Stream Containing SYSOUT Data)
IATUX50 (JES3/BDT Unknown BSID Modifier Exit)
IATUX58 (Modify Security Information Before JES3 Security Processing)
IATUX59 (Modify Security Information After JES3 Security Processing)
IATUX66 (Determine Transmission Priority for a SNA/NJE Stream)
IATUX67 (Determine Action When Remote Data Set Is Rejected by RACF)
IATUX68 (Modify Local NJE Job Trailers)
This change must be made before starting JES3 level HJS7730. The change is required even
if you do not plan to make use of NJE over TCP/IP support. If you do not have any intention of
using the NJE over TCP/IP support yet, or if you do not know what TCP/IP action to take for a
node, you can specify the same label on TYPETCP as you do for TYPESNA.
IAT4131 SPOOL RECORD ERROR DETECTED (JCT ) FOR JOB TCP (JOBxxxxx)
IAT4174 CONFIRM DELETION OF JOB TCP (JOBxxxxx) DUE TO SPOOL RECORD
ERROR(S) (CONTINUE, SNAP(,ALL) OR TERMINATE)
When you enter the *X DSI command on the global, if any NETSERV address
spaces are active, the following message are issued:
IAT0921 DSI - WARNING: SYSTEM sysname HAS nnnnn ACTIVE NETSERVS
Coexistence messages
During fallback to a lower release, the following messages will be issued:
IAT4131 SPOOL RECORD ERROR DETECTED (JCT) FOR JOB TCP (JOBxxxxx)
IAT4174 CONFIRM DELETION OF JOB TCP (JOBxxxxx) DUE TO SPOOL RECORD ERROR(S)
(CONTINUE, SNAP(,ALL) OR TERMINATE)
When returning to a JES3 level HJS7730, the following messages will be issued:
IAT4159 ERROR RESTORING TCP/IP CHECKPOINT
IAT4103 ERROR(S) ENCOUNTERED RECOVERING JES3 STATUS CHECKPOINT DATA (CONTINUE
OR CANCEL)
When you enter the *X DSI command on the global, if any NETSERV address spaces are
active, the following message will be issued:
IAT0921 DSI - WARNING: SYSTEM sysname HAS nnnnn ACTIVE NETSERVS
Most of the JES3 programs in the global processor is divided into parts called dynamic
support programs, or DSPs. There are DSPs for reading job input, for processing jobs, and for
writing job output. What distinguishes DSPs from ordinary routines or subroutines is that
DSPs are schedulable units. Before a DSP is executed, it must be scheduled by JES3. (DSPs
have priorities that govern their position in a JES3 dispatching queue.)
System programmers can alter what DSPs do (with installation exit routines), or they can
write new DSPs to supplement or replace the DSPs shipped with JES3.
JES3
FCTs
NUCLEUS
TCB CONCMD
CONSERV
WAIT
Scheduling DSPs
Each small piece of work that JES3 performs when processing a job is accomplished with a
JES3 program called a dynamic support program, or DSP. Each DSP is represented on the
FCT chain by one or more FCT entries or elements. The elements on the FCT chain are
executed according to their priority, and are placed on the FCT chain with the high priority
element first. The higher priority elements are executed before the lower priority elements.
JSS scheduling
JSS schedules all DSPs into execution. The function of the job segment scheduler (JSS) is to
select scheduler elements (SEs) and prepare them for processing by JES3. Every SE
denotes a unit of work JES3 must perform to process the job. Those units of work re
processed sequentially. Each SE in the job control table (JCT) represents one or more
dynamic support programs (DSPs), and each DSP is represented by one function control
table (FCT) entry on the FCT chain, the master JES3 dispatching queue.
Define DSECTs
Creating DSPs
Before your DSP can be executed (after you've assembled it and link-edited it), you need to
include the name of the DSP in the DSP dictionary. To do so, add one or more of each of the
following two macros in module IATGRPT:
IATYDSD - Generates one entry for the DSP in the DSP dictionary.
IATYFCD - Generates an entry in the permanent function control table (FCT). You need
one IATYFCD macro for each FCT entry you want.
Note: If you want the DSP to have a resident FCT, include the IATYFCD macro in
IATGRPT, but do not include IATYDSD.
All JES3 tables should be referred to by using DSECTs generated by mapping macros. For
ease of reference, place these macros at the beginning of a program after the prolog but
before any executable instructions. Use of the mapping macros insulates the user-written
DSPs from changes to system control blocks.
As a minimum, perform step 1. The other steps depend on whether the DSP needs a job
description accounting block (JDAB) and job data set (JDS) information.
1. Establish a base register for the DSP. By convention, DSPs use register 10 as the
standard base register. Although another register can be used, using the standard base
register convention will ease program analysis.
2. Issue the LOGIN macro to establish the means by which the operator can communicate
with the DSP.
3. Establish the JESTAE environment.
4. Issue the IATXCNS macro specifying TYPE=GET. On return, register 1 contains the
address of the parameter buffer for the job.
5. Extract the parameter information from the parameter buffer in the previous step.
6. Issue the IATXCNS macro specifying TYPE=RELEASE to free the parameter buffer.
7. Issue the GETUNIT macro to request any required JES3 support devices. If the required
devices are unavailable, cancel or request specialized rescheduling for the unavailable
devices. The system programmer must specify the type of devices required by the DSP in
the device requirements table (DRT). The DRT is located within the DSP dictionary and is
Register conventions
Register usage for installation exits is defined for each exit in In general, registers 11, 12, 14,
and 15 on entry are as defined below but other input registers are also provided. Also, most
installation exits use the same register conventions.
JES3 stores the following data in the registers before passing control to a DSP:
Registers 0 through 10 are undefined.
Register 11 contains the address of the function control table (FCT) for the DSP.
Register 12 contains the address of the JES3 transfer vector table (TVT).
Register 13 is the base register of the DSP's data CSECT, if one is defined for the DSP.
Register 14 is the address to which a called routine must return.
Register 15 is the entry point address of the called program.
Once JSS schedules the DSP and it gets control, the DSP should initialize, do some
housekeeping, and finally have a termination routine.
JES3
FCTs
NUCLEUS
TCB CONCMD *X AUTO
CONSERV
Add AUTO Job to System
WTDDRVR
Post JSS
JSS
WAIT
CONCMD DSP
The *X command issued by the operator is read by a DSP named CONCMD, which is
responsible for command processing. The CONCMD DSP is represented by a resident FCT
entry, so it will be dispatched (if there work to do) when the multifunction monitor reaches the
entry.
WTDDRVR DSP
The CONCMD DSP simply routes the *X command to another DSP, the work-to-do driver
(WTDDRVR). Like the CONCMD DSP, the WTDDRVR DSP is represented by a resident
entry on the FCT chain. It is the WTDDRVR DSP which actually begins the process of adding
the called job to the system.
IATYCNS
TYPE = INPUT
IATGRCD
*X DSP,.. SPOOL
IATYCNS
//*PROCESS IATISPR
TYPE = SPOOL
DSP
IATXCNS
IATYCNS
TYPE = INPUT
*X DSP,..
DSP processing
Issue the IATXCNS macro specifying TYPE=GET. On return, register 1 contains the address
of the parameter buffer for the job. You now have access to the operator *X command and its
parameters.
Note: The console input buffer is sometimes called an input message buffer or an input
parameter buffer. Issuing the IATYCNS macro with TYPE=INPUT generates the buffer
table, as shown in the previous visual.
Operator communication
Use of subtasking
DSPs should not use these macros. Use of these macros disrupts the flow of processing on
the global main and can cause a degradation in system performance by possibly causing
JES3 itself to wait. The queued access methods, QSAM and QISAM, use these macros and,
therefore, should not be invoked. If your program needs to use one of the above macros, you
must first establish a JES3 subtask environment in which to use the macro. To do so, include
the IATXCSF macro in your program. IATXCSF passes control to a JES3 subtask.
Loading modules
If your program consists of more than one module, you should organize it so that the first
module is reenterable and all other parts are at least serially reusable. If you use multiple
modules in your program, use the ALOAD and ADELETE macros for dynamic loading and
unloading of the subprograms. In case of a failure in your DSP, be sure to set up a JESTAE
environment that includes the ADELETE macro.
Console communication
All DSP-to-operator communication is accomplished by the console service routines. Each
DSP that requires two-way communication with the operator must define a console
appendage routine for accepting asynchronous entries from console service. The DSP must
use the LOGIN macro to define the console appendage routine's entry point. For reentrant
DSPs, therefore, appendages are typically located in the DSP data CSECT. See next visual.
The two types of JES3 subtasks that can be invoked by the IATXCSF macro are:
General subtasks Any caller can use these subtasks.
Specific subtasks Callers specifying the subtask ID can use these subtasks.
IATXCSF uses one of the four general subtasks when the ID parameter is not specified. The
caller receives control under one of the subtasks and has no control over which subtask is
used. When running under a general subtask's control, you must free (before relinquishing
control) all resources that were acquired while running under control of the subtask.
LOGIN macro
DSPs, except DSPs running in a C/I FSS address space, must issue a LOGIN macro for
operator communication and must always respond to console messages. DSPs running in a
C/I FSS address space must issue a LOGIN macro to define the entry point to a console
appendage routine but do not communicate directly with the operator. Instead, the CIDRVR
FCT receives the operator commands and routes them to the C/I FSS address space using
the MVS functional subsystem intercommunication (FSI).
Console appendage
All DSP-to-operator communication is accomplished by the console service routines. Each
DSP that requires two-way communication with the operator must define a console
appendage routine for accepting asynchronous entries from console service. The DSP must
use the LOGIN macro to define the console appendage routine's entry point. For reentrant
DSPs, therefore, appendages are typically located in the DSP data CSECT.
The console appendage is entered when a *START, *RESTART, or *CANCEL command is received
for the DSP, and may be entered when a *FAIL command is received.
Because DSP console appendages run under the CONCMD FCT, which is the highest
priority FCT, their processing time should be as short as possible. You should limit processing
to deciding whether to accept the command, and, if necessary, saving the command and
posting the command processing routine of the DSP.
The return codes, shown in the visual, specify what to reply is sent back to the operator or
that the command is queued to be processed by the DSP.
Then set your ECF to allow new messages from the operator and issue an AWAIT waiting for
the next communication from the operator.
Writing DSPs
Documented in JES3 Customization
Use of subtasking
As stated in a previous figure, use the IATXCSF macro to obtain a subtask to execute code
that would cause a WAIT of the JES3 task. The macro specifies the address of the code to
execute under the subtask (MYSUB).
JESTAE macro
If your DSP uses an MVS function that could cause an abnormal termination, be sure that you
set up a JESTAE recovery environment. The purpose of the recovery environment is to insure
that a failing DSP does not also bring down the JES3 primary task (IATNUC).
The JESTAE macro defines a DSP abnormal exit routine. The JESTAE exit routine must be
resident throughout the life of the JESTAE request. A DSP can issue more than one JESTAE
macro. All JESTAE requests issued by programs running under the same FCT are queued so
that the exit established by the most recent JESTAE request will be the first to get control. If
this exit fails or requests that the abnormal termination continue, the exit established by the
previous JESTAE request will get control. This process is called JESTAE percolation.
Coding example
The coding example in the visual illustrates the use of the IATXCSF macro. The code to be
executed under control of the subtask begins at label DRCLSBTK.
This facility is used when a system requires a software change, when a test is to be
conducted on a dedicated system, when the user shuts down the complex but requires the
integrity of the job queue to be maintained or when job data is being archived. Use dump job
for:
Archive. Some installations regularly dump jobs to tape to save them for a given period of
time.
Provide additional spool space. Jobs can be dumped to tape when the current workload is
heavy, and restored when the workload lessens.
Perform preventive maintenance. Jobs not complete at a time when preventive
maintenance is scheduled can be dumped and subsequently restored.
Migrate. Installations can save and restore jobs when migrating from one level of JES3 to
another.
*X DJ,OUT=(TA33490)
Job selection criteria
"ALL" for input and output modes
J = Jobid
P = priority
N = netname
*S DJ,
ALL
C = class
JOBS
NETS
RANGE=(jobno1-jobno2)
You can specify the range of jobs to be selected for dumping or restoring. Jobs can be in any
non active stage of processing and, with the exception of DJC networks and jobs waiting to
be transmitted across networking lines, do not need to be in hold status.
Restrictions
Output mode DJ only
Only one output mode DJ may be active
When a DJ DSP is invoked to dump a job or net, the DJ facility sets dump control flags for
each job processed. Because of these flags, any jobs remaining on the JES3 job queue after
DJ has processed them cannot be dumped again until the flags are reset.
Use the *START command with the RESET parameter to reset DJ dump control flags for all
jobs or a selected set of jobs on the JES3 job queue. Enter this command when all other
dumping using the DJ facility is complete.
You can use the dump job facility to dump jobs to tape devices that you have defined through
the use of the JUNIT and XUNIT initialization parameters or to the tape devices that include
the IBM 3494 and 3495 Tape Library Dataserver.
Using JUNIT and XUNIT to perform the dump job process is the traditional way that maintains
that JES3 manages the tape I/O to JES3 defined tape devices. Using the IBM 3494 and 3495
Tape Library Dataserver as well as any tape devices in the JES3 system to perform a dump
job exploit a new feature of dump job. This feature is running dump job in server mode In this
mode, the tape I/O portion of dump job runs in its own address space. The major MVS I/O
facilities are used freeing the installation from having to remember the volumes and their
current order when the job restore is performed.
The data set name that is generated is different for standard label tapes versus unlabeled
tapes.
For standard label tapes, the data set name has the following format, where jesn is the
JES3 subsystem name.
jesn.DJ.Dyyyyddd.Thhmmss
For unlabeled tapes, the data set name is not unique and has the following format, where
jesn is the JES3 subsystem name.
jesn.DJOUT
To dump jobs to tape, issue the *S DJ command and specify which jobs you want dumped.
*X,DJ,OUT=(3490),LABEL=SL,SERVER=YES
*X,DJ,OUT=(LDE10435),SERVER=YES
If you have tape DEVICE statements in your initialization stream for use only by Dump Job,
these statements can be removed once you decide only to run Dump Job in server mode. To
remove tape DEVICE and SETNAME statements from the initialization stream requires a
JES3 warm start.
If you want JES3 to continue to manage tape devices for jobs in execution but no longer need
them for Dump Job, you can remove the DTYPE, JNAME, and JUNIT parameters from the
tape DEVICE statements and perform a hot start with refresh. If you change your mind and
want to add them back, this can also be accomplished by performing a hot start with refresh.
Note: When using non-server mode, the device used by Dump Job must be defined to
JES3 via a DEVICE statement and must be defined as a shared device. It must be defined
as a JES3 global device via the DTYPE, JNAME, and JUNIT parameters, and as an
execution device via the XTYPE and XUNIT parameters.
*X DJ,SERVER=YES|NO,...........
DSN=dsname
*X,DJ,IN=560,SERVER=YES,DSN=JES3.DJ.D1998091.T163039
VOL=
*X,DJ,IN=560,SERVER=YES,DSN=JES3.DJOUT,VOL=(TAPVOL,TAPVL2,TAPVL3)
As a result of the *X command, a dump job server address space is started. The dump job
server address space initializes and allocates the tape device. The tape device is allocated
with deferred mounting so you will not see any IAT5210 messages asking the operator to
mount the tape if this is a JES3 managed device. A mount message (IEC501A) will be issued
when a *S DJ command is issued and the tape data set is opened.
If a unlabeled tape was created when the jobs were dumped to tape, the VOL= parameter
must be specified in addition to the DSN= parameter. This is necessary because unlabeled
tapes are always created and cataloged with the data set name jesn.DJOUT. If you create
multiple unlabeled tapes, JES3 needs to know the volsers to determine which instance of
jesn.DJOUT you want to restore. This is not a problem for standard labeled tapes because
the data set name that is generated and cataloged is unique.
*X,DJ,IN=560,SERVER=YES,DSN=JES3.DJOUT,VOL=(TAPVOL,TAPVL2,TAPVL3)
*X DJ,OUT=560,LABEL=SL,SERVER=YES
*I J=34
The job name of the dump job server address space is DJ followed by the job number of the
DJ DSP that started the server address space. To display information about the dump job
server address space, issue one of the following commands:
D A,DJ* or D A,DJ000033
*I J=34
*IEC501A M 0560,TAPVOL,SL,,IEESYSAS,DJ000034
Operator messages
After the dump job server address space has successfully initialized, dump job issues the
messages below to show that it is ready to begin dumping jobs to tape. Message IAT7285
contains the name of the tape data set that contains the jobs that are dumped to tape. This
data set name must be specified on the *X DJ command when you restore the jobs from tape.
IAT7285 DJ0560 (JOB00033): OUTDSN=JES3.DJ.D1998091.T163039
IAT7213 DJ0560 (JOB00033): UP AND RUNNING; OUTPUT ON UNIT 0560, DEVICE MVS 560
*IAT7228 ISSUE START OR CANCEL FOR DJ (JOB00033) (0560)
To dump jobs to tape, issue the *S DJ command and specify which jobs you want dumped. In
the example that follows, jobs in priority 6 will be dumped to tape:
*S,DJ,P=4
As a result of the *S command, dump job dumps the requested jobs to tape:
*IEC501A M 0560,TAPVOL,SL,,IEESYSAS,DJ000034
*C,DJ
IEF234E R 0560,TAPVOL,PVT,IEESYSAS,DJ000034
IEF471E FOLLOWING VOLUMES NO LONGER NEEDED BY IEESYSAS
TAPVOL.
IEF404I IEESYSAS - ENDED - TIME=16.37.00
IAT7200 DJ0560 (JOB00033): DUMP JOB DSP TERMINATING
IAT7450 JOB DJ (JOB00033) PURGED
IEF234E R 0560,TAPVOL,PVT,IEESYSAS,DJ000034
IEF471E FOLLOWING VOLUMES NO LONGER NEEDED BY IEESYSAS
TAPVOL.
IEF404I IEESYSAS - ENDED - TIME=16.37.00
IAT7200 DJ0560 (JOB00033): DUMP JOB DSP TERMINATING
IAT7450 JOB DJ (JOB00033) PURGED
*X DJ,SERVER=YES OUT=560
> OUT DSN=JES3.DJ.D1998091.T163039 - TAPVOL
*S DJ P=6
IAT7226 DJ0560 (JOB00033): JOB JOB999 (JOB32766) CANNOT BE DUMPED -
IAT7229 DJ0560 (JOB00033): SUCCESSFULLY DUMPED JOB JOB21 (JOB33414)
IAT7229 DJ0560 (JOB00033): SUCCESSFULLY DUMPED JOB JOB12 (JOB33413)
IAT7229 DJ0560 (JOB00033): SUCCESSFULLY DUMPED JOB JOB30 (JOB33418)
IAT7229 DJ0560 (JOB00033): SUCCESSFULLY DUMPED JOB JOB3 (JOB33420)
IAT7229 DJ0560 (JOB00033): SUCCESSFULLY DUMPED JOB JOB6 (JOB33438)
IAT7229 DJ0560 (JOB00033): SUCCESSFULLY DUMPED JOB JOB24 (JOB33434)
IAT7230 DJ0560 (JOB00033): DUMP PROCESSING COMPLETE FOR PRIORITY LEVEL
IAT7230 DJ0560 (JOB00033): DUMP PROCESSING COMPLETE FOR JOBS REQUEST
IAT7253 DJ0560 (JOB00033): 0000038 JOBS SUCCESSFULLY DUMPED TO TAPE
IAT7220 DJ0560 (JOB00033): FUNCTION COMPLETE ON UNIT 0560
*S DJ P=1
IAT7230 DJ0560 (JOB00033): DUMP PROCESSING COMPLETE FOR PRIORITY LEVEL
IAT7253 DJ0560 (JOB00033): NO JOBS SUCCESSFULLY DUMPED TO TAPE
IAT7220 DJ0560 (JOB00033): FUNCTION COMPLETE ON UNIT 0560
*C DJ
IAT7200 DJ0560 (JOB00033): DUMP JOB DSP TERMINATING
In addition to writing all messages to the calling console, the DJ facility logs in a separate data
set all DJ START commands and all DJ job-related messages that indicate whether a job was
successfully dumped or restored. If tracing is specified via the TRACE parameter on the *S
command, all trace output is also recorded in the data set. You can print the DJ message log
data set by specifying the SPIN=YES parameter on the *S DJ command. If SPIN=YES is not
specified on the START command, the DJ message log data set is printed when the DJ DSP is
cancelled.
When the first start command completes, a second command can be issued to dump a
different set of jobs to the tape.
*S DJ,P=1
*X DJ,IN=560,SERVER=YES,DSN=JES3.DJOUT,VOL=(TAPVL1,TAPVL2),LABEL=NL
*X DJ,IN=560,SERVER=YES,DSN=JES3.DJ.D1998091.T163039
IAT7213 DJ0560 (JOB33530): UP AND RUNNING; INPUT ON UNIT 0560, DEVICE MVS 0560
*IAT7228 ISSUE START OR CANCEL FOR DJ (JOB33530) (0560)
*S DJ,P=6
*IEC501A M 0560,TAPVOL,SL,,IEESYSAS,DJ033530
As a result of the *CALL command, a dump job server address space is started. The dump
job server address space initializes and allocates the tape device.
IAT6306 JOB (JOB33530) IS DJ , CALLED BY 01
IAT6100 ( DEMSEL ) JOB IEESYSAS (JOB33531), PRTY=15, ID=*UNKNOWN
IEF403I IEESYSAS - STARTED - TIME=16.51.54
IAT5110 JOB IEESYSAS (JOB33531) USES T TAPVOL ,SL JES3.DJ.D1998091
After the dump job server address space has successfully initialized, dump job issues the
following messages to show that it is ready to begin restoring jobs from tape.
IAT7213 DJ0560 (JOB33530): UP AND RUNNING; INPUT ON UNIT 0560, DEVIC
*IAT7228 ISSUE START OR CANCEL FOR DJ (JOB33530) (0560)
To restore dump jobs from tape, issue the *START,DJ command and specify which jobs you
want dumped. In this example, we will restore jobs in priority 6:
*S,DJ,P=4
LCL REP
*X JESNEWS,DS=RJP,TYPE=ADD
TSO DEL
Enter Text via:
*S JESNEWS,text ......... for each line
Activate Data set:
*R JESNEWS
You can use the JESNEWS DSP to create, to replace, or to delete three special output data
sets that can be included as part of a normal output data set burst page. The JESNEWS DSP
work on three types of data sets: local, TSO/E and RJP. Use these data sets to send
information to JES3 users.
You can end processing of the JESNEWS DSP by entering the following command:
*C,JESNEWS
The text is entered by the operator using the *S JESNEWS command and when finished
entering the text, the *R JESNEWS command activates the data set.
The JESNEWS data set is created by the operator command or by executing a job with
//*PROCESS JESNEWS with the data following the //*PROCESS statement.
//JESNEWS JOB ..........
//*PROCESS JESNEWS
TYPE=ADD,DS=TSO
/*
Use Dump Core (DC) to display storage allocated to JES3. Dump core commands allow you
to:
Display and then modify data in main storage
Intercept program flow during processing
Format control blocks for debugging purposes
Find the location of a module in storage
Display a requested portion of JES3's storage
Set traps
Display and print JES3 control blocks
Determine where the output from the dump core DSP should be routed. You specify the
destination of the output by using the OUT= parameter on the *X DC command when you
invoke the dump core facility or any *S DC command.
The above option allows for display of a specific job using J=jobno or of all jobs using J=ALL.
To specify the location of the JCT, the SOURCE keyword can be used:
SOURCE=DSPACE|JCTDS|ALL
Where:
DSPACE Display Data Space copy of JCT
JCTDS Display JCT spool data set copy of JCT
JCTDS Display JCT spool data set copy of JCT and JCT Data Space copy.
JMF is changed to support JCT Access Method related information. Also displayed is the JQE
table information.
For errors encountered accessing the JCT Data Space, a dump of the JES3 address space
and a dump of the JCT Data Space are taken.
A single job or
DISPLAY DSP
Use the *X DISPLAY command to display detailed information about a single job or all jobs in
the JES3 job queue. The *X DISPLAY command obtains the diagnostic information from the
JES3 control blocks associated with the jobs in the job queue.
OUT=devname on the *X command returns output to the device type you specify. If you omit
this parameter, the output goes to the calling console.
You can specify a job number or name to display or a priority level to display jobs.
DISPDJC DSP
Use the DISPDJC facility to display the status of a dependent job control network on a printer.
For each network the DISPDJC facility displays:
The name of the network.
The FLAG1 parameters as defined in the job network control block (JNCB).
The FLAG2 parameters as defined in the JNCB.
The number of jobs in the designated network.
The number of jobs in the designated network that have completed.
SPART,NAME=partition-name
,DEF={YES|NO}
,INIT={YES|NO}
,SPLIM={min,marg}
,OVRFL={NO|partition-name|NO}
,GRPSZ=nnn
Spool partitioning by:
Execution main - MAINPROC
Job class - CLASS
SYSOUT class - SYSOUT
Spool partitioning
A partition is a group of spool data sets. The partition is used by spool space management to
manage track groups within the data sets.
The SPART initialization statement has a parameter that defines action to be taken when the
spool space in that partition is exhausted.
SPART,...OVRFL=(yes|no|spart),...
Where:
yes Specifies that the spool partition may overflow into the default spool partition. This
is the default for this parameter.
no Specifies that the spool partition may not overflow. This only affects allocations
requested by USAM. Jobs requesting additional spool space will wait. JSAM
requests to the partition will overflow into the default spool partition.
spart Specifies the name of the spool partition into which spool space allocation will
overflow.
Where:
min Specifies a minimum percentage of spool space in a partition. When this threshold
is detected for the default partition, all sysout data set track allocation is suspended.
marg Specifies a marginal percentage of spool space in a partition. When this threshold
is detected for the default partition, all job selection is suspended.
Default partition
No overflow allowed
STT expansion
Deleted
Out of space
Partitioning concepts
Using SPART initialization statements, you can define up to 1024 spool partitions.
Additionally, you can identify one of the partitions as the default partition by specifying
DEF=YES on a SPART statement.
You need not define spool partitions or specify a default partition. If you do not define a spool
partition (do not include SPART statements in the initialization stream), JES3 creates a
minimum of three spool partitions. JES3 assigns spool data sets to one of the following
partitions:
DRAINED Result of an operator drain, hold or cancel command
UNAVAIL For data sets unavailable to JES3 during JES3 initialization
DEFAULT JES3 names the default partition JES3PART
If you define partitions but not a default partition, JES3 uses as the default partition the
partition defined on the first SPART statement in the initialization stream.
Default partition
The default spool partition always contains:
JES3 spool access method (JSAM) single and multi-record files
Job input (SYSIN) data
JES3 control blocks created by input service
*I Q,SP=P1,U,N=1
Partitioning commands
You can use the *I Q command to identify the spool data sets assigned to a particular
partition and to determine if the partition is an overflow partition, the default partition, or the
initialization partition. You can also display the size of a partition, the amount of space that is
currently available, and the largest users of spool space.
You might want to use this command to help determine if a performance problem is the result
of JES3 using a high percentage of the available spool space in one or more spool partitions.
*F Q,SP=spart,O= NO
YES Examples
SPARTN *F Q,SP=P1,O=P2
*F Q,SP=P1,O=NO
*F Q,DD=SPOOL4,SP=P3
*F Q,SP=P1,O=P2
Command examples
You can use the *F Q command to assign or reassign a spool overflow partition or to reassign
a spool data set from one partition to another. You can reassign any spool data set to any
spool partition as long as the default partition has a minimum of one data set assigned to it
and the number of available track groups in the default partition does not fall below the
minimal condition established by your installation. (The changes remain in effect if you restart
JES3 using a hot start. They do not remain in effect if you use a warm start.)
The *F Q command also allows you to reassign a job's spool data from one partition to
another. You can do this for all jobs in a specific job class or for all jobs that run on a specific
main. These changes might or might not remain in effect after a JES3 restart. Once data is
written to a spool data set, the data itself does not move. If you want to use a specific spool
partition for the output data from a particular job, it is not necessary to modify JES3 system
parameters; use the //*MAIN control statement in the job's JCL to override the partition that
JES3 would normally use to write the job's output data.
When you reassign data from one partition to another, keep in mind that the partition
assignments for a particular job's spool data can overlap. While a job is running, JES3 uses
the following priority scheme to choose the partitions it will use. For each portion of the job's
data, JES3 uses the first partition in the list that is assigned for that part of the job's data.
*I G,SY1,SP
*F G,SY1,SP,P3
*I C=A,SP
*F C=A,SP=P3
Partitioning commands
Once data sets in a SYSOUT class are assigned to a partition, you cannot change the
assignment without restarting JES3. Note that by using JES3 commands, initialization
statements, and the //*MAIN control statement, you can assign data from any combination of
jobs, classes of jobs, processors, and SYSOUT classes to a partition. You can use the
*INQUIRY command to identify the spool partition assigned for a specific job, for all jobs in a
specific job class, and for jobs that run on a specific main.
Using partitions
When submitting a job, the user can request that JES3 write the job's spool data to a specific
spool partition. To do this, the user specifies the name of the spool partition on a //*MAIN
JES3 control statement. This allows the user to override partition names specified on
MAINPROC or CLASS statements. The user, however, cannot override partition names
specified on SYSOUT statements. Instructions for coding the //*MAIN statement are in z/OS
MVS JCL User's Guide.
Command examples
The visual refers to the modifying with a GMS command to specify to which spool partition
JES3 writes the jobs' spool data when the jobs execute on processor SY1. The second
modify specifies that all class A jobs should use spool partition P3.
The *F Q command allows you to control activity on a spool data set. For spool volume
recovery, you can do the following:
You can stop JES3 from allocating additional space on a specific spool data set and then
restart space allocation processing at a later time. This action does not affect the jobs that
already have data on this data set; the jobs continue to run in the normal manner.
If necessary, you can place a spool data set and all jobs with spool data on the data set in
hold status and release both the data set and the jobs at a later point in time.
Another parameter allows you to place the data set in hold status and cancel all jobs with
spool data on the data set. You then can release the data set from hold status and resume
allocating space on the data set.
All these changes remain in effect when you restart JES3, using a hot or warm start.
*F Q,DD=spool1,DRAIN
*F Q,DD=spool1,USE
For the DRAIN parameter, JES3 stops allocating space on the specified spool data set(s). If
there are jobs in the system that currently have data on the data set(s), JES3 continues
normal processing for these jobs and releases the space as each job completes.
*F Q,DD=spool1,HOLD
Drains volume
*F Q,DD=spool1,STOP
Drains volume
*F Q,DD=spool1,RELEASE
STOP option
JES3 issues the following messages for the STOP command:
IAT8091 ALLOCATION FROM SPOOL DATA SET ddname SUSPENDED
This message is issued for each job put into spool hold status as a result of this command.
IAT8083 JOB QUEUE FOR SPECIFIED EXTENTS STOPPED
JES3 puts the specified spool data set(s) into spool hold status and does not allocate
additional space on the data set(s).
For each job with data on the specified spool data set(s) that is currently active on a main,
JES3 requests that MVS cancel the job. If MVS cannot cancel the job, message IEE841I is
issued. To cancel the job, you must enter the MVS FORCE command.
Release option
JES3 issues the following messages:
IAT8091 ALLOCATION FROM SPOOL DATA SET ddname RESUMED
This message is issued once for each job affected by the command.
IAT8083 JOB QUEUE FOR SPECIFIED EXTENTS RELEASED
JES3 releases each of the specified spool data set(s) from spool hold status and resumes
allocating space on the data set(s).
For each job that has data on the specified data set(s), JES3 releases the job from spool hold
status as long as the job does not also have data on other spool data sets that are being held.
If other data sets are being held, JES3 again issues message IAT8091. All the job's spool
data sets must be released before the job can be released from spool hold status.
*F Q,DD=spool1,CANCEL
CANCEL option
JES3 issues the following messages:
IAT8091 ALLOCATION FROM SPOOL DATA SET ddname SUSPENDED
JES3 puts the specified spool data set(s) in spool hold status and does not allocate any
additional space on the data set(s).
JES3 cancels each job that has data on the specified spool data set(s). It also cancels any
output from the job that is ready to be printed.
When you restart JES3 on a global processor with either a warm start or a hot start, you can
remove a spool data set from the system or reinstate a spool data set that was previously
removed from the system.
The ability to remove and reinstate a spool data set is useful when I/O errors occur on the
volume containing the spool data set and the error affects JES3 system functions. If the
volume is repairable, you can remove the volume for repairs and return it to the system when
repairs are complete without jeopardizing all the jobs in the system; only jobs with data on the
spool data set on the failed volume are affected.
To restart without a spool volume, use the techniques in the visual, as follows:
The effects of warm start processing with the replace function are the same as normal warm
start processing except that the replace function also removes one or more spool data sets
from the system, replaces them with other, possibly larger, data sets, and cancels each job in
the system that has data on the replaced data sets. If the replaced data set contained single
track table (STT) records, JES3 might have lost information such as the status of the devices.
To replace the same or a different volume with the same name, a hotstart can be done.
*I Q,DD=spool1
*I Q,DD=spool1,S
*I J=500,SD
*X DISPLAY,DD=spool1
*X DISPLAY,DD=spool1,LIST
The *I Q command allows you to display the status of any spool data set as well as the size
of the data set and the amount of space currently available. Also, for a particular job, you can
list the names of either all the spool data sets containing data for the job or only those data
sets that are being held.
If you need to know which jobs have space allocated on a particular spool data set and the
amount of space allocated to each job, you can use the DISPLAY DSP.
AT INITIALIZATION
DURING FORMATTING
08/25/96 10.14.00
BADTRACK statements
A BADTRACK table and search algorithm is in storage. The table is called, the "track group
bypass table":
Entries may be added to the table dynamically.
A BADTRACK checkpoint record is created.
Operator commands to inquire on tracks in error
The BADTRACK table is constructed during JES3 initialization based on the BADTRACK
statements in the initialization stream. There is an entry in the table for each spool extent. The
entries in the table describe a track group where the error or bad track occurred.
The JES3 checkpoint contains a record describing the tracks that are in error. When the
checkpoint record exists, the BADTRACK table can be constructed by converting the tracks in
error to the appropriate track group.
When an I/O error is encountered on a JES3 spool extent, an entry to the BADTRACK table is
created dynamically. Entries are added only under the following conditions:
All permanent write failures that are device related.
Permanent read errors are ignored on the assumption that when the track group is
reassigned and the track is really bad, a write error will occur.
Entries are added to this checkpoint record at initialization time when BADTRACK cards are
encountered in the initialization stream. This record is also structured to allow dynamic
addition of a new entry when bad tracks are encountered during the running of the system.
JES3 tuning and performance diagnosis requires a great deal of JES3 knowledge. JMF can
expand the information that is available to the person attempting either of these tasks. It can
also provide a great deal of interesting information, some of which has value and some of
which is merely information.
You should run JMF regularly and when the system is running normally. When JES3 is
running poorly you will have the "historical perspective" necessary to identify deviations from
when JES3 is running normally. You must have a base from which you can assess changes,
even if the base moves as the configuration and workload evolves over time.
There is workload and capacity information that can be derived from JMF reports:
Estimates of the total number of jobs in the system and the distribution of this work (for
example, CI, MAIN, and OUTSERV)
Changes in workload (group and initiator use counts)
Demand for JES3 managed resources (for example, tape drives and spool space)
JMF analysis
When there is classic symptoms of a JES3 problem, the question is:
How does one determine what change occurred in the operating environment and how
does one associate the external change with changes in JES3 internal processing so that
the observed "abnormal" JES3 behavior can be explained? What is the first thing that you
should do? You need to collect several pieces of information. These should include:
– A crisp, clear description of the observed changes in behavior
– When the behavior changed
– Known changes that have occurred in the system prior to this time including:
• Configuration changes (for example, DASD movement, Catalog movement)
• Operational changes (for example, changes in message traffic to different consoles)
• Known workload changes (for example, additional TSO/E users)
If you are fortunate, you will be able to find the change and then use your knowledge of JES3.
Most likely, you will get into the situation where he change is not easily identified, or there
were several changes that occurred at the time, or "we didn't change a thing". You are going
to have to examine the behavior of the system to find the change that no one remembers.
You probably aren't going to dive into JMF reports first; but after looking through the normal
RMF data and other reports, you have to investigate the JMF data. The JMF data must be
examined in relationship to what JMF has reported in the past when the system was healthy.
Without reference points, diagnosing the problems is very difficult.
JMF analysis
Finding problems is essentially an exercise in observation. When JES3 performance
characteristics change, something in the environment has changed.
So now you have a purported JES3 performance problem. At least all the normal signs are
there:
Consoles aren't responsive
Inquiry commands are not coming back promptly
TSO/E logons are backed-up
Output processing is slow
To get the results you expect from JMF, you will need
to determine:
JMF analysis
JMF generates one or more reports depending on the values specified in the INTERVAL and
TIME parameters on the modify command. To determine the number of reports that will be
generated, use the following formula:
Number of reports = TIME/INTERVAL
JMF generates one or more samples for a report depending on the values specified in the
INTERVAL and CYCLE parameters on the modify command. IBM suggests generating at
least 1000 samples for each report. To determine values to specify on the INTERVAL and
CYCLE parameters, use the following formula:
Number of samples = INTERVAL*60/CYCLE
For example, if 1000 samples and 4 reports should be generated in 60 minutes, the operator
should enter a *X JMF,CYCLE=.9,TIME=60,INTERVAL=15 command to generate the results.
*X JMF,CYCLE=2,INTERVAL=15,TIME=15
FCT=50,AWAIT=5,WAIT=100
SDM=Y
SPOT=ALL,NAME=NUC,WIDTH=nn,HFCT=ALL
JOB=50,JSTAT=5
SSI=Y
WTR=Y
OUT=devname
DEBUG=N
INTRDR=Y
SMF=N
DESTQ=Y
Using JMF
JMF should be run under normal conditions. A good sample size is 1000 samples in an
interval. Sampling once a second for an hour should be sufficient for normal situations.
The default number of FCTs is 250 which may not be sufficient in the following cases:
If you have a great amount of BSC NJE activity
When JMF is running with a long interval
The default value for JOB will let you track the first 50 jobs in the RESQUEUE and report
scheduling information on them. Some reports are jobs in which you are interested. There are
some jobs dependent on this option being in effect, so have JMF track one job.
JMF sampling activity and output can be tailored to your needs by specifying the correct
start-up options for your installation.
WLM=Y | N
Specifies whether (Y) or not (N) to report Workload
Management (WLM) information (such as the backlog
of jobs in each service class). WLM=Y is not valid on
a local processor. Y is the default on the global, and
N is the default on the local
WTR=Y|modulename|N
Specifies that JES3 formats a hardcopy report (Y);
that the installation specify its own module to format a
hardcopy report (modulename); that no hardcopy
report is generated (N). This parameter does not
apply to the local
JMF parameters
A new option, WLM, on the *X JMF command has been added to allow you to specify whether
or not you want the WLM information reported. WLM=Y is the default on the global processor.
WLM=N is the default on a local processor. If you attempt to specify WLM=Y on a local, the
command will be rejected.
When WLM information is requested, the following information will be reported for each
service class that is detected during the sampling interval. Information will be reported only
for those jobs in WLM managed groups, as follows:
The number of jobs waiting to be scheduled for main service.
The number of jobs is MDS processing.
The number of jobs waiting to be selected by an initiator (GMS Select).
The number of jobs that were eligible to execute somewhere in the SYSPLEX.
JMF reports
The JES3 Monitoring Facility (JMF) is a JES3 diagnostic and performance utility that you can
use to help monitor, diagnose, and tune your JES3 complex. You can use JES3 operator
commands to produce JMF reports that contain data about:
JES3 spool data management
JES3 CPU/storage
JES3 functions
JES3 device scheduling
JES3 job throughput
Since JMF measurements vary from installation to installation, you must first establish your
own baseline measurements by running JMF over a period of time under normal operating
conditions. See z/OS JES3 Diagnosis for sample JMF reports and the commands that you
need to generate those reports.
JMF reports
Only the system report and the JES3 control block report are created with every run of JMF.
The remaining reports are optional and can be eliminated. The reports often have overlapping
and complimentary information. You will normally have to use two or more of the reports to
analyze what the system is doing.
System report
The system report contains information about IATNUC, IATAUX tasks, and CPU utilization. It
also provides information about JES3 storage requirements and configuration data.
Note: You will find that this report does not match the resource management facility (RMF)
reports. The spool data management report is the most accurate.
Function report
The JES3 function report contains information about internal reader activity, Subsystem
Interface (SSI) response time, and JES3 DESTQ lengths.
JMF OVERHEAD
MINIMUM = .000704 SEC.
MAXIMUM = .105328 SEC.
AVERAGE = .001472 SEC. .73 %
OF JMF CYCLE TIME
MVS OVERHEAD
MINIMUM = .000256 SEC.
MAXIMUM = .167264 SEC.
AVERAGE = .000944 SEC. .47 %
OF JMF CYCLE TIME
JMF overhead
JMF will also report on the number of tasks simultaneously active in the ES3 address space.
You will also get a chart showing the percent active for each task. The only tasks that you
have control over are the C/I subtasks. JES3's performance is impacted by having a great
number of subtasks (there is no TCB ready queue similar to the ASCB ready queue). You
should control the number of these tasks. You should consider moving the C/I function to a C/I
FSS address space. This will have the added benefit of reducing local lock contention in the
JES3 address space.
IATNUC posted
The example shows the IATNUC task is using the CPU 14% of the time. However, the task is
considered to be 20% busy because 6% of the time the task is suspended due to
unavailability of the local lock. The task busy time is the sum of the:
ACTIVE,
IN NONSTANDARD WAIT
SUSPENDED - LOCAL LOCK REQ
SUSPENDED - OTHER
A rule of thumb is to keep the IATNUC CPU utilization below 60%. Going any higher may lead
to performance degradation. A few things can be done to reduce CPU utilization. If the global
system has multiple engines, use the writer multi-tasking feature. Also, using C/I or writer FSS
will off-load some of the CPU processing to other address spaces.
From a performance point of view, the starting and stopping of dynamic writers introduces
additional CPU utilization for the IATNUC task. On the other hand, there is overhead
associated with using a large number of idle hot writers. This overhead shows up in high
multi-function monitor CPU consumption. There are performance and operational trade-offs
to be made when making these decisions.
System report
System Report consists of the:
General Information Section
Working Set Section
JES3 Subtask Section
Global Processor Description Section
You can use these sections to obtain information on the CPU utilization of the nucleus and
auxiliary task. It also describes JES3's real storage requirements and configuration
information for your installation.
You can use these sections to obtain information on the workload distribution in your
installation.
You can use these sections to determine if JES3 is accessing your installation's spool
environment efficiently.
This chapter is for use with z/OS System Display and Search Facility (SDSF) in the JES3
environment. It is intended primarily for system programmers and operators, and assumes
you are familiar with the z/OS operating system, including JES3. It contains information about
migration, customization, security, operation, maintenance and problem determination,
including explanations of SDSF messages.
SDSF (Program Number 5694-A01), a feature of IBM mainframes running z/OS, enables
users and administrators to view and control various aspects of mainframes’ operation. These
include jobs in execution, job output, status of Unix System Services processes, system
information, workload scheduling, and log files.
SDSF displays data on panels. Commands and actions that you enter on the panels let you
monitor and control jobs and system resources. The SDSF Primary Option Menu lists the
panels that you are authorized to use.
The objects, displayed on the SDSF panels, are initiators, printers and punches, jobs,
SYSIN/SYSOUT data sets, and so on. Information for the objects is extracted using formal
JES3 or MVS programming interfaces, for example subsystem interface (SSI) calls. Actions
against objects are also invoked through formal programming interfaces or operator
commands. Most actions generate MVS or JES commands. In a JES3 environment, the MVS
system authorization facility (SAF) is required for SDSF security. When a request is made to
access a resource, and the profile that protects the resource is not defined, or the associated
class is not active, SDSF fails the request. All SAF profiles must be defined and activated in
all of the classes that are used for SDSF security.
Most SDSF panels display information in a tabular format. You can scroll the information up,
down, right, and left.
History
SDSF was originally known as SPOOL Display and Search Facility when it was a
field-developed program offering. The word SPOOL was changed to System when it became
a program product in the late 1980s. Starting with z/OS Release 9 SDSF also supports a
REXX interface, allowing batch program facilities to use SDSF. The REXX support
implementation presents data through stem variables containing SDSF-originated
information.
Prior to z/OS Version 1 Release 10 SDSF supported only JES2 environments. z/OS
Version 1 Release 10 SDSF included support for the JES3 environment. The JES3
job-related Display Active Users (DA), Input Queue (I) and Status (ST) panels were available
for JES3 displays. Other SDSF panels that do not depend on JES were also available in the
JES3 environment.
z/OS Version 1 Release 11 expanded function in the JES3 environment to include the
SYSLOG, Job Class (JC), Spool Volumes (SP) and JESPLEX (JP) displays. Support was
also added to display and modify output descriptors for JES3 jobs through the Output
Descriptor (OD) panel and the Job Data Set (JDS) panel. JES3 browse of a job that is running
on a system other than the one you are logged on to, shows data from buffers not yet written
to the spool.
z/OS Version 1 Release 13 expands SDSF function in the JES3 environment to include
Initiator (INIT), Job 0 (J0), Line (LI), Node (NO), Punch (PUN), Reader (RDR), Held Output
Queue (H) and Output Queue (O) panels for JES3 objects. Network Connect (NC) and
Network Server (NS) panels show information about JES job networking.
SDSF may be invoked on either a local or global processor running JES3. When SDSF is
invoked on a local processor, the global processor must also be at the z/OS V1R10 JES3 or
later level.
SDSF information
Information about SDSF and z/OS is available on the Internet. If it is supported by your 3270
emulator, you can click a web address to launch a web browser.
SDSF home page: usage tips, presentations, as well as a wizard to help you enable the
sysplex support can be found at:
http://www.ibm.com/servers/eserver/zseries/zos/sdsf
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 845
The latest edition of z/OS SDSF Operation and Customization, SA22-7670 is available at:
http://publibz.boulder.ibm.com/epubs/pdf/isf4cs90.pdf
http://www.ibm.com/servers/eserver/zseries/zos/bkserv/
The ZSEL statement in the PROC section should be updated to invoke SDSF with the ISFISP
entry point:
&ZSEL = TRANS(TRUNC (&ZCMD,'.')
. . . .
S,’PANEL(ISFSDOP2) NEWAPPL(ISF) SCRNAME(SDSF)’
’ ’,’ ’
*,’?’ )
IF (&ZCMD = ’S’)
&ZSEL = ’PGM(ISFISP) NOCHECK NEWAPPL(ISF) SCRNAME(SDSF)’
IF (&ZCMD = ’S.’)
&ZSEL = ’PGM(ISFISP) NOCHECK NEWAPPL(ISF) SCRNAME(SDSF)’
When you invoke SDSF as an ISPF dialog using the ISFISP entry point, you can specify
parameters to specify an initial panel and other values. SDSF may be interactively invoked
with TSO commands SDSF or ISF outside ISPF.
SDSF
PRIMARY
OPTION
MENU
USER
HOLD JOB JOB INITIATORS
SESSION
QUEUE DATA SET CLASSES
LOG
(ULOG) (H) (?) (JC) (INIT)
OUTPUT JES3
DESCRIPTOR
JOB 0
(Q) (J0)
OUTPUT OUTPUT NJE NETWORK
QUEUE DATA SET LINES CONNECTION
(O) (S) (LINE) (NC)
Figure 18-2 shows the SDSF functions available on the authorized primary option menu
panel in a JES3 environment. The SDSF commands for the functions are as follows:
DA The Display Active Users (DA) selection allows authorized users to display
information about jobs, users, and started tasks that are active in the sysplex. It also
shows system data, such as CPU usage and paging information. In a JES3
environment, the DA selection also requires RMF.
I The Input Queue (I) selection allows authorized users to display information about
jobs that are on the JES input queue or that are executing.
O The Output Queue (O) selection displays information about SYSOUT data sets for
jobs, started tasks, and TSO users on any nonheld JES output queue.
H The Held Output (H) selection shows the user information about SYSOUT data
sets for jobs, started tasks, and TSO users on any held JES output queues.
ST The Status (ST) selection allows authorized users to display information about
jobs, started tasks, and TSO users on the JES queues.
J0 The Job zero (J0) selection displays information about SYSOUT data sets for a
JES3 job 0.
LOG O The OPERLOG (LOG [O]) selection allows authorized users to display a
sysplex-wide system message log, which contains console messages, operator
commands, and responses for the sysplex.
LOG S The SYSLOG (LOG S) selection allows authorized users to display the system log.
The SYSLOG is a data set residing in the primary job entry subsystem's spool
space. If JES3 DLOG is active on the global, system log entries are for the whole
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 847
JES3 complex. The DLOG message prefix (IATYCNS TYPE=DLOG) is different
from the MVS hardcopy log prefix (IHAHCLOG). The JES3 *F O command enables
or disables the DLOG.
SR The System Requests (SR) selection allows authorized users to display
outstanding operator replies (WTORs) and messages retained by the Action
Message Retention Facility (AMRF).
JP The JESPLEX (JP) selection allows authorized users to display and control the
main processors in a JES3 JESPLEX.
JC The Job Class (JC) selection allows authorized users to display and control the job
classes defined to JES. Both JES and WLM managed classes are shown.
SE The Scheduling Environment (SE) selection allows authorized users to display
the sysplex wide scheduling environments. A scheduling environment. is a list of
resource names along with their required states. If an MVS image satisfies all of the
requirements in the scheduling environment associated with a given unit of work,
then that unit of work can be assigned to that MVS image. If any of the
requirements are not satisfied, then that unit of work cannot be assigned to that
MVS image.
RES The Resource (RES) selection allows authorized users to display WLM resources.
To display resources in the sysplex, access the panel with the RES command. To
display resources for a scheduling environment, access the panel with the R action
character from the SE panel. When a resource is used as part of a scheduling
environment, the resource is an abstract element that can represent an actual
physical entity (such as a peripheral device), or an intangible quality (such as a
certain time of day). A resource is listed in a scheduling environment along with a
required state of ON or OFF. If the corresponding resource state on a given system
matches the required state, then the requirement is satisfied for that resource.
ENC The Enclaves (ENC) selection allows authorized users to display information about
WLM enclaves. An enclave is an anchor for a transaction that can be spread across
multiple dispatchable units in multiple address spaces. These multiple address
spaces can even span across multiple systems in a parallel sysplex. The value of
using an enclave to represent a transaction is that the resources used to process
the transaction can be accounted to the transaction itself, rather than to the address
space or spaces that the transaction runs in. In addition, you can assign a
performance goal to the enclave, which means that as a transaction consumes
system resources, it can switch periods to run with a new goal. Any number of tasks
and SRBs can be grouped in an enclave.
PS The Processes (PS) selection allows authorized users to display information about
z/OS UNIX System Services processes. A process is a program or command that is
actually running the computer. It consists of a loaded version of the executable file,
its data, its stack, and its kernel data structures that represent the process's state
within a multitasking environment. The executable file contains the machine
instructions (and any calls to shared objects) that will be executed by the hardware.
A process can contain multiple threads of execution. A process is created via a
fork() system call and ends using an exit() system call. Between fork and exit, the
process is known to the system by a unique process identifier (pid).
INIT The Initiators (INIT) selection displays information about JES initiators that are
defined for the JES3 job class groups. The display shows both mode JES and WLM
initiators.
PR The Printers (PR) selection displays information about JES printers.
PU The Punches (PU) selection displays information about JES punches.
RDR The Readers (RDR) selection displays information about JES readers.
Only those SDSF panel commands (such as DA, I, and O) for which the user is authorized
are displayed on the SDSF Primary Option Menu.
The SDSF support in the JES2 environment includes some functions that are not available in
the JES3 environment. These are:
The Multi-Access Spool (MAS) selection allows authorized users to display and control
the members of a JES2 MAS.
Many installations take advantage of JES2's ability to link processors together to form a
multiple-processor complex, which is generally referred to as a multi-access spool (MAS)
configuration. A multi-access spool configuration consists of two or more JES2 (MAS)
processors at the same physical location, all sharing the same spool and checkpoint data
sets.
The analogous JES3 JESPlex panel simplifies the display and control of members in a
JES3 JESPlex. The JES2 MAS panels and JES3 JP panels share a single field list.
The Spool Offload (SO) selection displays information about JES2 spool offloaders and
their associated transmitters and receivers.
(The JES3 dump job utility program transfers the contents of the JES3 job queue to tape.
This program also returns the JES3 job queue to storage, so that JES3 can resume
processing jobs where processing stopped when the job queue was dumped. A JES3
command causes dumping or restoration of the JES3 job queue.)
The ResourceMonitor (RM) selection displays information about critical JES2 resources
such as JOEs (Job Output Element), JQEs (JES2 Job Queue Element) and BERTs
(HASP Block Extension Reuse Table).
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 849
Display Filter View Print Options Search Help
----------------------------------------------------------------------------
---
HQX7780 ----------------- SDSF PRIMARY OPTION MENU
--------------------------
COMMAND INPUT ===> SCROLL ===>
PAGE
JES3 monitoring
The JES3 MONITOR DSP monitors a resource or queue based on information you specify.
JES3 starts the MONITOR DSP and monitors various queues and resources automatically.
The monitor DSP makes it possible to monitor how long a job or FCT has been waiting for a
specific JES3 function or resource. For example, if you want to know when a job has been
waiting for a CI DSP for more than five minutes, you can set the monitor DSP to issue a
message when five minutes have elapsed.
The JES3 monitor DSP runs as an FCT under the JES3 nucleus task and monitors
unavailable JES3 resources. A JES3 resource is anything that can use an FCT or a job that
can become unavailable. The following JES3 resources can be monitored:
Generalized subtasks - allow to execute code containing implicit or explicit MVS WAITs.
AENQ resources - obtain use of a JES3 resource.
JQEs - Job Queue Element.
Job numbers - JES3 supports as many as 999,999 jobs in your JES3 complex at the same
time. However, JES3 limits the maximum number of jobs by choosing the smallest of the
following:
– The value you specify on the job limit parameter on the JOBNO= keyword of the
OPTIONS initialization statement
– The range of job numbers that you define on the JOBNO= keyword of the OPTIONS
initialization statement
– The number of entries in the job control table (JCT)
SDSF panels
When you use SDSF interactively, SDSF displays data on panels. There are panels for active
jobs, output groups, printers, initiators and so on. Most SDSF panels are tabular, that is, they
display data in rows and columns.
The numbered entities on the sample SDSF tabular panel in Figure 18-4 are as follows:
1. Action bar - The action bar permits you to select a pull-down menu to SDSF tasks.
2. Title line - The title line shows the panel name as well as status information.
3. Message area - Short error and confirmation messages appear here.
4. Command line - The command line lets you enter SDSF, MVS, or JES commands.
5. Message and information lines - Longer messages appear below the command line.
6. Data area - The column titles and tabular data columns and rows.
7. NP column - Action characters for rows.
Global options and the format of the panels are defined in ISFPARMS. The options include
things like the names of SDSF data sets, what generic and wildcard characters to allow in
SDSF commands, and whether to display the action bar on SDSF panels. The format of the
panels includes the order and titles of the columns.
The ISFPARMS can be defined only in the ISFPRMxx member of PARMLIB in the JES3
environment. The statements in the ISFPRMxx member are processed by an SDSF server. If
the SDSF server is not started, defaults for all values are used.
An FLD statement, along with FLDENT statements in the ISFPRMxx member, defines the
fields, including column names and titles, for an SDSF panel. FLD statement is associated
with the field list for a particular panel by GROUP statement. The group function parameters
are used to determine which functions the members of a group can perform. The SAF profiles
GROUP.group-name.server-name, in the SDSF class, define the user-to-group associations.
SDSF checks for READ access for a users-to-group association.
The source of the panel column data is either readily available from in-storage control blocks
(Immed column) or the data comes from the JES spool and requires an I/O operation (Delay
column). SDSF maintains an alternate column list for columns requiring I/O operations for
data. I/O operations are only done when the columns are visible on the window or are being
sorted.
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 851
You can define a primary and alternate variable field list for each SDSF panel. The primary
field list contains those fields that are shown upon entry into a panel. The alternate field list
contains fields that can be displayed with the ? command.
The COLSHELP (COLSH for short) command shows the columns on the SDSF panels. All
possible columns are included. The actual columns that are available to you, as well as their
titles, may have been customized with field lists in ISFPARMS. In the columns’ help display,
an X in the Delayed? column indicates that access for the column is delayed.
To switch between primary and alternate field lists display of a panel, use the ? command or
the panel’s action bar View pop-up choice 4 (Change field list to ALTERNATE / PRIMARY). To
select the View option, press Enter with the cursor on View.
You can overtype columns on any tabular panels. The syntax for overtyping columns on tabular
panels is the column title followed by = and the changed value, all within <>. Enclose the
column title and value in single quotation marks.
SDSF in batch is invoked with one of two program names on a JCL EXEC statement:
SDSF Supports commands and action characters.
ISFAFD Supports commands, action characters, and overtyping of fields on tabular
and other panels, such as the print panels.
In the JCL for a batch SDSF job the ISFIN DD statement defines the input data, and the
ISFOUT DD statement defines the output data set. For example, the JCL for a batch job to
invoke program name ISFAFD might use the following statements:
//SDSF EXEC PGM=ISFAFD
//ISFOUT DD SYSOUT=*
//ISFIN DD *
To change panel width and depth of the batch output, specify PARM=’++xxxx,yyyy’ on the
EXEC statement, where xxxx is the depth of the panel (number of lines) and yyyy is the width
(number of characters). For example, to set the depth to 32 and the width to 1000, use:
//SDSF EXEC PGM=SDSF,PARM=’++32,1000’
If you do not specify the PARM, the width defaults to 132 and the depth to 60. The maximum
for width and depth is 9999.
Note: When you invoke SDSF with either program name SDSF or ISFAFD, SDSF
determines whether to process the JES2 or JES3 environment. You can request that SDSF
not do that determination and process JES2. For this purpose, use the alternate program
name SDSF2 or ISFAFD2.
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 853
AFD .END Assigns a label, .END, to the current top line of the SYSLOG or
OPERLOG
Notes about ISFAFD program on commands and actions in batch processing:
Selected PF keys may be used by coding ++AFD PFxx (where xx=03 is a request to end
the current panel and xx=05 repeats the previous FIND).
Columns on tabular panels and on other SDSF panels can be overtyped. The syntax for
overtyping columns on tabular panels is the column title followed by = and the new value,
all within <>.
Where it is valid when using SDSF interactively, you can combine an action character and
overtypes; the action character must precede the overtypes.
Action characters are not SAF-protected as separate resources. However, use of most action
characters causes an interaction with two resources, both of which must be protected:
The object of the action character, such as an initiator, printer, MAS member, or job
The MVS or JES command that is generated in response to the action character. When
these resources are protected, a user requires authority to both resources to enter most
action characters.
The objects of action characters are such things as initiators in the SDSF class, printers and
punches in the WRITER class, and jobs, output groups, and SYSIN/SYSOUT data sets in the
JESSPOOL class. The resource name that protects the object and the access level required
varies from panel to panel.
Most action characters generate MVS or JES commands that are protected in the
OPERCMDS class. Users can be conditionally permitted to access OPERCMDS resources
so they are authorized to use MVS and JES commands only while they are using SDSF.
Many of the things you work with in a REXX exec, such as the list of columns on an SDSF
panel, the contents of the title line of a panel, and the contents of responses to SDSF
commands such as WHO, may change over time. You should design your REXX execs to
minimize the impact of those changes.
For an up-to-date description of the REXX SDSF functions and special variables, see z/OS
SDSF Operation and Customization, SA22-7670.
REXXHELP command
Information about using REXX with SDSF is also available in SDSF's online help. The help
includes links to descriptions of commands, action characters and overtypable columns,
which are not included here.
SDSF server
The SDSF server is an address space that SDSF uses to:
Process ISFPARMS statements. ISFPARMS defines global and group options and the
format of the panels. The options include things like the name of the JES subsystem to
process, what generic and wildcard characters to allow in SDSF commands, and whether
to display the action bar on SDSF panels. The format of the panels includes the order and
titles of the columns.
Provide sysplex support. This consists of sysplex-wide data for JES2 devices and for
system resources (CK, ENC, INIT, LI, NO, PR, PS, PUN, RDR, RM and SO panels) as
well as the most recent SYSLOG data for remote systems (SYSLOG panel).
The SDSF server is not required for sysplex-wide device panels (INIT, LI, NO, PR, PUN, RDR
and SO):
In a JES3 environment. For JES3, all configuration parameters default if there is no server.
That is because the assembler ISFPARMS is not supported in JES3 and the server is
required to process the ISFPRMxx parmlib member.
In a JES2 environment when all systems are at the z/OS V1R13 level.
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 855
To process ISFPARMS, the server must be active on each system that contains SDSF users.
To provide sysplex data, the server must be active on each system that is to be included on
SDSF panels. Use the WHO command or pop-up to verify that the server is in use.
Multiple SDSF servers may be run on the same system; however, you must assign them
unique names. Only one server with a particular name can be active on the system. The level
of the server must match the level of the SDSF application.
You control the server through the MVS operator START, STOP, and MODIFY commands.
(The START command names the server; the MODIFY command refreshes the ISFPARMS
statements, changes server options, and displays and controls server communications.)
Note: The document z/OS SDSF Operation and Customization, SA22-7670 describes the
most up-to-date security considerations and customization of SDSF.
The principal source of information for using Java with SDSF is the Javadoc supplied with
SDSF. To use the Javadoc:
1. Download the isfjcallDoc.jar file, in binary, to an empty directory on your workstation.
By default, this file is installed into /usr/include/java_classes/isfjcallDoc.jar.
2. If you have the Java SDK installed, use this command:
jar -xf isfjcallDoc.jar
Otherwise, use another utility to unzip the file.
3. Navigate to the index.html file and open it with a web browser. Once the index.html file
is displayed, links allow you to navigate to specific classes or topics, such as:
Overview Display an overview to using SDSF with Java
Package Display a list of classes
Tree Display a hierarchical view of classes
Index Display an index to the Javadoc
Accessing panels and panel data: Each of the panels that you work with when using SDSF
interactively (DA, O, PR and so on) has an associated Java interface that describes the
returned data and the available methods. Panel data is represented by lists, with each
element in a list corresponding to a row on the panel. You access column data within a list
element by referencing column values by column name.
Processing system log and issuing commands: You can retrieve records from the system
log (SYSLOG) and search for specific messages or events. You can also issue free-form
system commands and receive their responses in a manner similar to the SDSF slash (/)
command.
Retrieving job output: You can allocate the spool data sets for a job and read them using
standard utilities.
Filtering data: For best performance, limit the data that a request returns to the minimum
that is required. You do this with request settings, which allow you to specify things such as:
Filters of various kinds. The same filters that are available when you use SDSF
interactively are available with request settings. They include filters by job name, owner
and destination, like the PREFIX, OWNER and DEST commands, or any column, like the
FILTER command.
The list of columns to process. Columns are specified by column name.
Whether to include columns with delayed access. Because gathering the data for
"delayed" columns can take significant time, they are not included unless you request
them explicitly
View results: You can access messages and return codes that describe the completion of a
request through a results object. SDSF messages and system messages, if any, issued in
response to commands are contained in lists, with each element corresponding to a
message. Return codes from SDSF functions are available both in the results object and as
return codes on most methods.
Control access: Standard SDSF authorization checking occurs for all requests and for
attempts to modify the row represented by a returned object. SDSF security is described in
z/OS SDSF Operation and Customization, SA22-7670.
9 - Quick summary
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 857
Some parts of the tutorial ask you to enter information on simulated SDSF panels. These
simulated panels respond to your input. Interacting with them will help you learn how SDSF
works. However, if you prefer, the system provides the input on interactive panels if you simply
press Enter twice.
Except on the interactive tutorial panels, SDSF commands are not valid on tutorial or help
panels.
For detailed information such as command syntax, use the help facility.
The tabular panels have a fixed field or column, at the left, that does not move as you scroll
right and left. You can scroll displayed information up, down, right, and left.
Under ISPF, most SDSF functions can be selected from the action bar at the top of the panel.
To display a pull-down menu of action bar choices, place the cursor on an option and press
Enter.
Note: The words “field” and “column” are used interchangeably in this document.
SDSF uses colors on the tabular panels to identify active objects (such as jobs) and
overtypable fields, as shown in Table 18-1 on page 859.
White Active No
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 859
In ISPF each SDSF pop-up panel has PF keys assigned with an ISPF keylist. Although ISPF
allows you to change the values of the keys in keylists, and to turn off the use of keylists, you
should use the IBM-supplied key definitions and leave keylists on.
The default PF key definitions for SDSF's panels running under ISPF and TSO are shown in
Figure 18-8.
Action bar
F1=Help F12=Cancel
F1=Help F12=Cancel
Figure 18-9 Action bar Display -> 1. Panels -> Panels list
Under ISPF, SDSF functions can be selected from the action bar, a row of options at the top
of the panel shown in Figure 18-9. Select an option from the action bar by placing the cursor
on an item and pressing Enter. In the pull-down menu of choices that is displayed, select a
Most of the SDSF’s displays use the same ISPF ISFPCU41 panel. This panel defines the
same set of action bar choices for all displays where used.
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 861
shown in Figure 18-10. The field for server communications (COMM=) shows
information about communications between SDSF servers.
USERID=VJUHA,PROC=IKJACCJV,TERMINAL=SC38TC86,GRPINDEX=1,GRPNAME=ISFSPROG,
MVS=z/OS 01.11.00,JES=z 1.11.0,SDSF=HQX7760,ISPF=6.1,RMF/DA=760,SERVER=YES,
SERVERNAME=SDSF,JESNAME=JES3,MEMBER=SC75,JESTYPE=JES3,GLOBAL=SC75,
GLOBALREL=HJS7760,SYSNAME=SC75,SYSPLEX=PLEX75,COMM=NOTAVAIL
Print - The Print option of the action bar allows you to select options for printing data:
– Print open sysout - The Print Open Sysout choice displays a panel that allows you to
specify the attributes of a SYSOUT print file.
– Print open data set - The Print Open Data Set choice displays a panel that allows you
to specify the attributes of a data set to be used as the print file.
– Print open file - The Print Open File choice displays a panel that allows you to specify
the ddname to be used as the print file.
– Print - The Print choice displays a pop-up that allows you to specify the lines to print
from a SYSLOG or output data set. If no print file is open, the Print choice opens a
default SYSOUT file.
– Print close - The Print Close choice either frees a SYSOUT print file and makes it
available for printing, or closes a print data set.
– Print screen with ISPF - The Print Screen with ISPF choice invokes ISPF's PRINT
command to print the panel image to an ISPF list file. This choice does not use SDSF's
print file.
Options - The Options option of the action bar allows you to set options such as a find
limit and colors:
– Set action character display - The Set Action Character Display choice of the
Options pull-down displays a pop-up that allows you to control the display of valid
action characters on SDSF panels.
Action characters are typed in the NP column of tabular panels. For example, to purge
a job, you type p in the NP column next to the job on the Status panel.
The display of the valid action characters for a panel can also be set with the SET
ACTION command.
– Find limit - The Find Limit choice of the Options pull-down displays a pop-up that
allows you to limit the number of lines searched when the FIND command is issued on
a browse panel.
– Change include SYSIN to ON - The Change Include SYSIN choice of the Options
pull-down lets you control whether the Output Data Set panels that you select from the
DA, ST, or I panels will include SYSIN data sets.
– Set bookshelf - The Set Bookshelf choice of the Options pull-down displays a pop-up
that allows you to set the default bookshelf to be searched by BookManager.
– Set display values to ON - The Set Display Values choice of the Options pull-down
acts as a toggle to control the display of values for DEST, OWNER, PREFIX, FILTER,
SORT and SYSNAME on the information line. Figure 18-11 is an example of the “Set
display values to ON” display.
– Set screen characteristics - The Set Screen Characteristics choice of the Options
pull-down displays a pop-up that allows you to control the use of color and highlighting
on SDSF panels, as well as turn the display of the action bar on or off.
– Set delay for responses - The Set Delay choice of the Options pull-down displays a
pop-up that allows you to control the default timeout value for awaiting responses to the
slash (/) command.
– Set communications timeout - The Set communications timeout choice of the
Options pull-down displays a pop-up that lets you set the timeout value for awaiting
sysplex data.
– Set console name - The Set Console Name choice of the Options pull-down displays
a pop-up that allows you to set the name of the extended console used by SDSF. The
extended console is used by the ULOG panel.
– Set search characters - The Set Search Characters choice of the Options pull-down
displays a pop-up to let you set the generic and placeholder characters used in pattern
matching.
– Assign PF keys - The Assign PF Keys choice of the Options pull-down invokes ISPF's
KEYS facility to let you change the PF keys for SDSF panels.
– Change show PF keys - The Change Show PF Keys choice of the Options pull-down
invokes ISPF's PFSHOW command to let you turn the display of PF keys on or off.
– Set language for help and tutorial - The Set Language for Help and Tutorial choice of
the Options pull-down displays a pop-up that allows you to select English or Japanese
for the Help and Tutorial.
– Set cursor option - The Set Cursor choice of the Options pull-down acts as a toggle to
control how SDSF places the cursor when you work with rows on tabular panels
(except OD).
ON causes the cursor to return to the NP column for the last row you worked with. If the
row is not on the panel, either because it would require a scroll, or because your
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 863
actions or system activity caused it to be removed from the display, the cursor is
returned to the command line.
OFF causes the cursor to return to the command line.
– Set confirmation - The Set Confirmation choice of the Options pull-down acts as a
toggle to control confirmation of action characters. When confirmation is on, SDSF
requests confirmation of cancel, purge, restart and system stop action characters on
job-oriented tabular panels (DA, H, I, JDS, O, PS and ST), drain and halt actions on the
SP panel, and quiesce on the ENC panel.
– Operlog limit for filter - The Operlog Limit for Filter choice of the Options pull-down
displays the Operlog Limit for Filter pop-up, which lets you set the amount of Operlog
data SDSF will search for records that meet filter criteria.
– Set date format - The Set Date Format choice of the Options pull-down displays the
Set Date Format pop-up, which lets you select the format SDSF uses for dates. The
available date formats are mm/dd/yyyy, dd/mm/yyyy, or yyyy/mm/dd and the separator
character, either slash (/), dash (-), or period (.).
– Set log default - The Set Log Default choice of the Options pull-down displays a
pop-up that allows you to select the default panel for LOG command. The default panel
is displayed when you enter LOG with no parameters, or select the Log choice from the
Display pull-down.
– Set default browse action - The Set Default Browse Action choice of the Options
pull-down displays a pop-up that allows you to select the default browse action (S, SB
or SE) that is issued when you place the cursor in the NP column and press Enter on
the job and output panels. The options are S (SDSF browse), SB (ISPF browse), SE
(ISPF edit), and None. The default browse action character is invoked when you select
a row on a job or output panel (DA, I, JDS, OD or ST) by placing the cursor in the NP
column and pressing Enter. The result is the same as if you had typed the action
character in the NP column.
If you select None, then you must type an action character in the NP column to invoke
browse.
– Help - The Help option of the action bar allows you to select online help for: Extended
help, Keys help, Help Index, Tutorial, Book, web sites, REXX help and Columns help.
Cursor-sensitive sort
You can sort a tabular panel by placing the cursor on a column title and pressing Enter. For
example, to sort a panel by job name, place the cursor on the JOBNAME column and press
Enter. This is a quick alternative to typing the SORT command.
You can disable cursor-sensitive sorting with the SET CSORT OFF command and enable with
the SET CSORT ON command.
Help panels appear in pop-up windows in response to user requests for assistance during
SDSF application sessions. Figure 18-12 shows the table of contents (TOC) for SDSF online
help. This panel can be accessed by typing HELP at the Command Input line, by pressing the
PF1 key at the SDSF Primary Option Menu, or choosing Option 1. Extended help from the
SDSF HELP action bar menu.
SDSF provides HELP for the HELP too. Figure 18-13 on page 865 and Figure 18-14 on
page 866 are the window pop-ups for the HELP command. These panels can be accessed by
typing HELP at the command input line from any HELP pop-up window.
Where used: Any SDSF panel, including help and tutorial panels.
Format: HELP
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 865
HELP: HELP Command Panel 2 of 2
COMMAND INPUT ===>
Figure 18-15 on page 866 and Figure 18-16 on page 867 are the HELP Index pop-ups. The
HELP index can be accessed by entering I command in the command input line from any
HELP dialog window. To view an index selection, just type that character on the HELP index
pop-up COMMAND INPUT ===> line.
Note: The HELP pop-ups for the other SDSF panels have the same basic format and flow.
The z/OS SDSF Operation and Customization, SA22-7670 document is intended primarily for
system programmers and operators. It contains information about customization, security,
operation, maintenance and problem determination and explanations of SDSF messages.
The Online HELP offers the SDSF User's Guide.
97 - What's new
98 - Search and navigate the help
99 - Messages
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 867
Figure 18-17 shows the general layout of the first pop-up window for an SDSF display panel.
Examples of the help text in the DA display pop-up windows follow.
Note: The PF key settings are the same on all the following pop-ups and are shown.
The HELP pop-up for the selection “1- Introduction to the DA panel” is shown in Figure 18-18.
Note: Some of the values on the DA panel, such as CPU% and SIO,
are approximate. For detailed and precise performance
monitoring, use RMF.
The HELP pop-ups for the selection “2- Syntax of the DA command” are shown in
Figure 18-19 on page 869.
Note: The PF key settings are the same for all three pop-ups and are shown only for the 1
of 3 pop-up.
Format: DA (parameters)
Parameters allow you to limit the display by:
- Types of address spaces: jobs, TSO users, started tasks,
or initiators
- Positions of address spaces: swapped in, swapped out,
in transition, or ready.
The HELP pop-ups for the selection “3 - Action characters ” for the DA panel are shown in
Figure 18-20 on page 870 and Figure 18-21 on page 871.
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 869
HELP: Display Active Users Panel -- Action Characters Panel 1 of 5
COMMAND INPUT ===>
H Hold a job.
K Cancel a started task (system cancel).
KD Cancel a started task and take a dump (system cancel).
L List output status of a job in the log. For JES3, this
is job output in the writer queue. You can add:
B - SNA/NJE output (JES3 only)
H - Output on the hold queue (JES3 only)
L - Long form (JES2 only)
T - TCP/IP job output (JES3 only)
P Cancel a job and purge its output.
PP Cancel a protected job and purge its output. (JES2 only)
R Reset and resume a job. (RMF)
RQ Reset and quiesce a job. (RMF)
Q Display output descriptors for all of the data sets
in an output group.
The HELP pop-ups for the selection “4 - Fields on the DA pane” are shown in Figure 18-22
and Figure 18-23 on page 873.
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 871
HELP: Display Active Users Panel -- Fields Panel 1 of 9
COMMAND INPUT ===>
SDSF DA IPO1 IP* PAG 0 CPU/L/Z/ 26/ 26/ 0 LINE 1-20 (20)
| | | | | |
System ID | | | Lines displayed |
of system | Total demand | or first line |
you are | paging rate | if 100,000 |
logged | Percentage of time |
on to | the CPU is busy, |
Systems displayed MVS, LPAR and zAAP |
(MVS value or views Total lines
SYSNAME value) (**** if more
than 99,999,999)
Title Description
JOBNAME Job name of the address space
StepName Job step name, or TSO procedure name for TSO users
ProcStep Procedure step name, or terminal name for TSO users
Type Type of address space: job, started task,
TSO user, or initiator
JNum JES job number
Owner User ID of job creator
C JES input class at the time the job was selected for
execution
Pos Address space position, for example, swapped in,
swapped out, nonswappable, in transition
___________________________________________________________________________
HELP: Display Active Users Panel -- Fields Panel 9 of 9
COMMAND INPUT ===>
Title Description
SLCPU% Percentage of time the LPAR is busy for the system,
in the most recent interval. The value for SLCPU%
is the same for all rows for a system. (RMF)
Field Description
SrvClass Service class name
Quiesce Quiesce indicator (QUIESCE or RESUME)
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 873
The HELP pop-up for the selection “5 - Overtyping fields to change their values” for the DA
panel is shown in Figure 18-20 on page 870 and Figure 18-25 shows the HELP pop-up for
selection “6 - Commands: limit jobs displayed, search, etc” of DA panel help.
Purpose: Search SDSF's help and tutorial. (ISPF and English only)
Where used: Any SDSF panel except help and tutorial panels.
SEARCH lets you search and display help panels, but
you enter the command outside of help.
Format: SEARCH (phrase)
Searches the help and tutorial panels.
Examples: SEARCH cpu use - Searches for cpu use , cpu and use .
SEARCH 'cpu use' - Searches for cpu use .
Figure 18-27 on page 875 is an example of the SEARCH command pop-up output.
Any character on a search result row will display the related help pop-up.
You can also search in online documents using the BOOK command (see the online help for
more information). When the cursor is in the message area, BOOK uses the message text as
a search string.
For example, in Figure 18-28, the INVALID COMMAND response is displayed on the right of
the panel above the COMMAND INPUT line.
You can display help pop-up with the HELP key (default PF 1) or HELP command on the
command line. From the pop-up select the SDSF messages option. When the HELP: Messages
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 875
and Codes pop-up is displayed, enter the first letter of the message (I) on the COMMAN LINE
and hit Enter. The HELP: Messages - 'I' pop-up is displayed. By pressing Enter, Scroll
forward the numbered list of short message texts until you find the subject message and use
the number to display the pop-up explaining the meaning of the message.
Alternatively you can use the SEARCH command with the message text as the argument.
Select the first line of the Search Help pop-up to display the pop-up explaining the meaning
of the message.
Action characters
In most cases, action characters cause system commands to be issued for the object on the
selected row. Both the ability to issue some action characters, and the command that is
generated, depend on your installation options and operating system level.
The help for each SDSF panel also includes a list of the action characters that are valid for
that panel.
You can display the valid action characters for a panel with the SET ACTION command:
SET ACTION (ON|LONG|SHORT|OFF|?)
Complete information about using SDSF action characters is provided in the online help for
SDSF.
The server must be active on each system that contains SDSF users to process ISFPARMS
statements,. To provide sysplex data, the server must be active on each system that is to be
included on SDSF panels.
SDSF for JES3 implementation requires the SDSF server address space to be started to
process ISFPARMS. The server uses dynamic ISPFPARMS, which are defined with
statements rather than assembler macros that can be used in JES2 SDSF. Statements are
easier to code and are more dynamic than the assembler macros: they can be updated
without reassembling or link-editing.
The IBM-supplied class descriptor table provides a resource group class (GSDSF) and a
resource member class (SDSF) for SDSF. For a resource group class, each user or group of
users permitted access to that resource group is permitted access to all members of the
resource group. For each GSDSF class created, a second class representing the members
must also be created.
As with generic profiles, resource group class profiles enable you to protect multiple
resources with one profile. However, the resources need not have similar names.
A resource group profile is a general resource profile with the following special
characteristics:
Its name does not match the resources it protects.
The ADDMEM operand (not the profile name itself) specifies the resources it protects.
Its class is a resource group class or grouping class (for example GSDSF).
The related member class (not the resource group class itself) must be RACLISTed. For
example, the SDSF class must be RACLISTed, not the GSDSF class. Depending on the
class, RACLISTing is accomplished using the SETROPTS command or RACROUTE
REQUEST=LIST macro service.
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 877
To accomplish SDSF security through SAF with RACF, you:
1. Activate generic processing before defining profiles, using the SETROPTS command.
2. Define profiles to protect the resources in the appropriate classes, using the RDEFINE
command. (Classes are already defined for RACF. You must define them for other security
products.)
Begin with generic profiles for broad access to resources and then define generic or
discrete profiles that are more restrictive.
3. Permit users to access appropriate profiles in each class with the necessary access
levels, using the PERMIT command.
4. Activate the classes, using the SETROPTS command.
The sample ISFPARMS definitions in the ISF.SISFJCL(ISFPRM00) data set are used in the
following discussion. This sample is included in Appendix A, “SDSF ISFPARMS default
definitions” on page 991 for your reference.
The sample ISFPRM00 defines security for three SDSF groups of users that are common to
most installations:
Group 1 - System programmers. Users have JCL, OPER and ACCT TSO authority.
Group 2 - Operators. Users have JCL and OPER TSP authority.
Group 3 - General users. Users have JCL TSO authority. ISF024I USER userid NOT
AUTHORIZED TO SDSF, NO GROUP ASSIGNMENT is issued if a user with none of the above TSO
authorities attempts to invoke SDSF.
You have to choose SAF to protect SDSF functions in the JES3 environment. Even when SAF
is used for all of SDSF security, you need ISFPARMS to control the following:
Global values (OPTIONS statement)
Any values for groups that are not related to security (GROUP statement)
Code page - ITRTAB statement
The control of user membership into a group is accomplished with SAF profiles, as shown in
Table 18-2.
The access authorities to other profiles in classes SDSF, OPERCMDS, CONSOLE, WRITER,
XFACILIT, and LOGSTRM control the actions allowed for members in a group. Refer to z/OS
SDSF Operation and Customization, SA22-7670 for a complete description of the SAF
profiles.
SDSF users do not need access authority to work with their own jobs and output. In general,
all TSO users can access the JESSPOOL resources they own. When you provide SAF
authority to the SDSF resources by group, go from broad access (for example, RACF generic
profiles) to limited access (RACF discrete profiles).
You can define a primary and alternate variable field list for each SDSF panel. The primary
field list contains those fields that are shown upon entry into a panel. The alternate field list
contains fields that can be displayed with the ? command.
It is also important to locate overtypable fields on the panel so that the entire field is visible on
one panel. An overtypable field can be overtyped only when the entire field is visible.
The fields that are available on the display depend on your JES level and installation options.
The ARRANGE command allows users to change the order and widths of the fields in each
field list.
The columns on SDSF panels that display data in a tabular format are customized with FLD
statements. The NAME on an FLD statement is referenced by a group. The TYPE on FLD
statements name the SDSF panel for which the list of following FLDENT statements defines
columns that are included on a tabular panel, as well as their order, titles, and widths.
. TITLE is the title that appears on a panel for the column defined by column. WIDTH is the
width of the column on the panel.
REXX execs reference columns by their names rather than by their titles.
FLD NAME(FLD-statement-name),TYPE(panel-ID)
FLDENT COLUMN(column),TITLE(title),WIDTH(width)
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 879
The source of the data for each column is extracted from either of the following:
From in-storage control blocks. These columns are in the primary field list. SDSF
performance is best when the columns with data from in-storage control blocks are at the
beginning of the field list.
From the JES spool data set, requiring an I/O operation. These columns are in the
alternate field list. I/O operations are only done when the columns are visible on the panel
or being sorted. SDSF performance is best when the columns with data from the spool
data set are at the end of the field list.
Figure 18-31 Panel columns described in the z/OS SDSF Operation and Customization document
The z/OS SDSF Operation and Customization, SA22-7670 document has tables for panel
column and column source descriptions. The panels are listed in Figure 18-31.
COLSHELP command
The COLSHELP command displays a table of column information for SDSF panels. In
Figure 18-32 on page 881 the table display shows some of the columns and the column titles
on the SDSF DA (Display Active Users) panel. The COLSHELP command requires ISPF. The
ISPF PFSHOW command displays PF key settings for Columns on SDSF Panels. A slash (/)
in the ALL panels and Include descriptions input fields indicates that the options have been
selected.
Sort with F5 (panel), F6 (column), F10 (title). Use Filter to filter rows.
An X in the Delayed? column indicates that access for the column is delayed. Inclusion of
these columns on a panel may impact SDSF performance.
By default, the table shows the columns for the SDSF panel on which it is issued. When you
use the COLSHELP command from the SDSF primary option menu, the table includes
columns for all panels. You may scroll to the first row for a specific panel with the LOCATE
panel command. LOCATE can be abbreviated as L, for example, L DA.
Filter the columns based on panel name or title with the FILTER command. For more
information, tab to the link and press the Help PF (F1).
If you cannot find a field on a tabular panel that you are interested in, use the COLSHELP
command to display all fields of the panel you are working with. If the field you are interested
in is listed in the Columns on SDSF Panels (COLSHELP) display, but is marked with an X in
the Delayed? column, you can switch the panel field list to ALTERNATE to see the contents of
the delayed field. To switch to the panel field list, select the action bar View action and then
option 4. Change field list to PRIMARY/ALTERNATE from the View pop-up.
Overtyping fields
In Figure 18-33 on page 882 is a sample display of a few rows on the SDSF INPUT QUEUE
panel and a display of the COLSHELP command output for the overtypable job priority and
job class columns. You can change the data on these columns by typing over it. For example,
you can change the class of a job by typing a new value for the class. (JES3 command
*F,J=jobno,C=new_class is issued for the overtype value.) Overtype columns are highlighted
(red or green, by default) on panel displays.
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 881
Display Filter View Print Options Search Help
-------------------------------------------------------------------------------
SDSF INPUT QUEUE DISPLAY ALL CLASSES LINE 1-26 (41)
COMMAND INPUT ===> SCROLL ===> HALF
NP JOBNAME JobID Owner Prty C Pos PrtDest SAff AS
VAINISCT JOB07219 VAINI 1 A ANYLOCAL
:::::
______________________________________________________________________________
Columns on SDSF Panels Row 211 from 1244
Command ===>
Sort with F5 (panel), F6 (column), F10 (title). Use Filter to filter rows.
Figure 18-33 Sample COLSHELP for JES3 I queue JPRIO and JCLASS columns
To be able to overtype a column you must be authorized and the entire column must be
visible.You can use the tab key to move from one overtypable column to another. Blanking out
a value with the space bar does not delete the value. Some fields, where the associated
system command allows it, support deleting the value by typing a comma by itself in the field.
The help for each SDSF panel includes guidance on valid values for overtypable fields. In
most cases, overtyping a field causes a system command to be issued.
The overtype extension function also lets you delete values when the field supports a set of
related values. You can display the overtype extension pop-up by typing a + by itself in any
overtypable field. Figure 18-34 on page 883 is an example of the overtype extension pop-up.
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 883
The Initiator (INIT) panel, which displays information about JES-managed and
WLM-managed initiators.
Printers, punches and readers (PR, PUN and RDR) panels that display JES3 printer,
punch and reader support unit information and jobs on the units.
The Nodes (NO) panel, which displays information about nodes node in an NJE network.
The Spool Volumes (SP) panel, which allows users to display information about JES spool
volumes and spool partitions.
The Network Server (NS) panel, which displays information about server-type networking
devices on the node:
– NETSERV devices used to communicate between JES and TCP/IP
– Bulk Data Transfer (BDT) instances used to communicate between JES3 and VTAM
The Network Connection (NC) panel, which displays information about networking
connections to an adjacent node:
– SOCKET devices that represent a TCP/IP networking connection
– Active Binary Synchronous Communication (BSC) NJE lines
– Associated NJE transmitters and receivers
The JESPlex (JP) panel, which displays and controls the main processors of a JES3
complex.
The Job Class (JC) panel, which allows users to display and control the job classes in a
JES3 complex. It shows both the JES and the WLM managed classes.
The hardcopy log (LOG) panel, which displays a merged, sysplex-wide system message
log, which contains console messages, operator commands, and operator responses for
the MVS systems.
The term "hardcopy log" refers to the system log (SYSLOG), the operations log
(OPERLOG) and the JES3 DLOG. The DLOG centrally records command and message
traffic for systems in a JES3 complex in JES3 format. The JES3 DLOG is written to
SYSLOG on the global processor.
– Access OPERLOG with the LOG O command. Messages are displayed in their original
color.
– Access MVS SYSLOG or JES3 DLOG with the LOG S command.
The user session log (ULOG) panel, which displays the MVS and JES commands and
responses issued during the user's session, including commands generated by SDSF and
SAF. SDSF deletes the user session log when an SDSF session is ended or when the
ULOG CLOSE command is issued.
SDSF uses MVS console services to acquire an extended console that is used to issue
commands and receive responses.
Users’ authorization
The target objects (for example, the job, output group, initiator, or printer) of the SDSF action
characters are controlled as resources in the SAF SDSF class and in the JESSPOOL class.
JES uses the JESSPOOL class to protect SYSIN/SYSOUT data sets. Printers and punches
are controlled in the WRITER class. Most SDSF action characters generate MVS or JES
commands that are protected in the OPERCMDS class.
CONSOLE class controls access to MCS consoles. It may also be used for restricting access
(conditional access) to other resources in WRITER and OPERCMDS for commands
originating from an MCS console.
SAF security provides a dynamic means of authorizing SDSF users to issue commands and
process job output. Once a user starts an SDSF session, SDSF checks user authorization for
virtually every interaction with SDSF resources. SAF authorization dynamically affects the
next user interaction. You must end an SDSF session and restart it when changes are made
to SAF authorization for destination names and for operator authority by destination.
If you are using RACF as a security product, RACF logs access attempts to protected SDSF
resources according to the audit setting in the RACF profile for the resource. Logging is
performed for all access attempts except for the following resource names in the SDSF class:
ISFOPER.DEST.**
ISFOPER.ANYDEST.jesx
All resource names beginning with ISFATTR.
Logging is not performed for these access attempts because the user is not specifically trying
to gain access to those resources.
SAF protection
Protection for each type of resource can be defined separately, so that, for example, a user
may be authorized to issue action characters for a job, but not be authorized to browse that
job's data sets. Users can always access the JESSPOOL resources they own; they do not
need additional authority to work with their own jobs and output.
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 885
All other action characters on the DA, I, and ST panels:
ALTER access to the nodeid.userid.jobname.jobid resource
All other action characters on the JDS and OD panels:
ALTER access to the nodeid.userid.jobname.jobid.Ddsid.dsname resource
Where:
nodeid Is the NJE node ID of the target JES subsystem.
userid Is the local user ID of the job owner.
jobname Is the name of the job.
• jobid Is the JES job ID of the: Job (for jobs on DA, I, and ST)
• Job with which the data set is associated (for SYSIN or SYSOUT data sets).
Ddsid Is the data set ID number that identifies the job data set prefixed by the required
letter D.
dsname Is the user-specified or system-assigned data set name.
???Typically, when you define SAF authority for JESSPOOL resources, you also need to
define other authorities for action characters and overtypable fields. For most action
characters, a user must be authorized for jobs or job output. However, the S, V, and X action
characters require authorization only for SYSIN/SYSOUT data sets. No security checking is
done for the object when the ? or Q action characters are used.
Some other profiles for commands generated by SDSF action characters are also required,
such as:
In the OPERCMDS class: JESx.** profiles for JES3 commands
In the OPERCMDS class: MVS.** profiles for MVS commands
To protect resources individually in the OPERCMDS class with restrictive profiles, you would
use the specific resource name for the command generated by the action character.
Authorized SDSF commands are protected by defining resource names in the SAF SDSF
class profiles ISFCMD.** with READ access. These commands include:
ABEND, ACTION, CK, DA, DEST, ENC, FINDLIM, H, I, INIT, INPUT, JC, the JESNAME
parameter on the SDSF command, the JES3NAME parameter om on the SDSF
command, JP, J0, LI, LOG, NC, NO, NS, O, OWNER, PR, PREFIX, PS, PUN, RDR, RES,
RSYS, SE, the SERVER parameter on the SDSF command, the SDSF command, SO, SP,
SR, ST, SYSID, SYSNAME, TRACE, and ULOG
Notes:
In a JES3 environment, when an SAF class for a resource is inactive, or the profile to
protect the resource is not defined, requests will be failed.
The ISPFPARM’s GROUP function AUTH parameter (authorized-command-list) applies
to JES2 only.
For a complete description of protecting SDSF, refer to Chapter 7 in z/OS SDSF Operation
and Customization, SA22-7670.
A resource group profile is a general resource profile with the following special
characteristics:
Its name does not match the resource it protects.
The ADDMEM operand of the RDEFINE command specifies the resources it protects (not
the profile name itself).
The related member class (not the resource class itself) must be RACLISTed. For
example, the SDSF class must be RACLISTed, not the GSDSF class. Use the
SETROPTS command with the RACLIST operand for this task.
To select the choice, type the number of the choice or place the cursor on the choice and
press Enter. Under ISPF, the values you specify are saved across sessions.
1. Filter Displays Filter pop-up (Figure 18-35 on page 888).
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 887
Displa EssssssssssssssssssssssssssssssssssssssssssssssssssssssssssN
-------- e Filter
Filter Row 11 to
Row to 99 of
of 25
25 e ---------
SDSF STA e Command
Command ===>
===> e
COMMAND e e ==> HALF
PREFIX=V e Type
Type filter
filter criteria.
criteria. Type
Type aa // in
in the
the Column
Column or
or Oper
Oper e
ACTION=/ e fields
fields for
for valid
valid values.
values. Press
Press F11/23
F11/23 to
to clear
clear all
all e M,
ACTION=C e filter
filter criteria.
criteria. e
ACTION=D e e DSAlloc,
ACTION=D e Filtering
Filtering is
is OFF
OFF e ,
ACTION=D e e
ACTION=D e AND/OR
AND/OR between
between columns
columns AND
AND (AND/OR)
(AND/OR) e ed,
ACTION=E e AND/OR
AND/OR within
within aa column
column OROR (AND/OR)
(AND/OR) e
ACTION=L e e ,
ACTION=S e Column
Column Oper Value (may include * and
Oper Value (may include * and %) %) e lose,
ACTION=X e e lose
NP JOB e e Sys S
VAI e e H
VAI e e H
VAI e e H
Figure 18-35 Filter pop-up on top of a STATUS DISPLAY
You can either type the column names directly or select them from a
prompt pop-up.
You can abbreviate the column name to the shortest string of
characters that uniquely identifies that column. The value field data
may include * and % pattern matching characters.
Prefix of jobname Type a prefix to limit jobs on the DA, H, I, O, PS and ST panels. The
prefix string may include * and % pattern matching characters.
Owner Type an owner to limit jobs on the DA, H, I, O, PS and ST panels. The
owner string may include * and % pattern matching characters.
Destination Type up to four destinations to limit jobs on the H, I, J0, O, ST, PR and
PUN panels. Only those jobs whose names match the destination are
displayed.
To delete a destination, simply blank it out. Blank out all destinations
on the pop-up to display jobs for all destinations, or for the destinations
named filter criteria in the IDEST parameter of ISFPARMS if one is
coded.
System name Type a system name or leave blank for the system you are logged on
to. The system name string may include * and % pattern matching
characters.
Replies on the Log Type a system name to limit WTORs on the Log panels. Leave blank
for the system you are logged on to. The system name string may
include * and % pattern matching characters.
Filter commands
Filter commands limit data on the SDSF panels. Under ISPF, filters are saved (one set for
each JES type).
* JES2 only
Filter command
The FILTER command format is shown in Figure 18-37.
Use pattern matching characters (* and % by default) for an inexact or partial match. For
example:
FILTER JOBNAME EQ %A* matches jobs with a name that has A in the second
position.
You can change the pattern matching characters with the SET SCHARS command.
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 889
ACTION command
The ACTION command controls the display of Write-To-Operator-with-Reply (WTOR)
messages on the log by specifying which WTOR messages are displayed at the bottom of the
Log panel. You must be authorized to use this command. ACTION may be used on any SDSF
panel. The ACTION command format is shown in Figure 18-38.
ACTION routing-code-list | ?
routing-code-list is up to four routing codes separated by blanks (1-28)
MVS is all routing codes reserved for MVS (1-12).
USER is all routing codes reserved for customer use (13-28).
ALL requests the display of WTORs for all routing codes.
OFF requests the display of no WTORs. This is the default.
? displays the current setting for ACTION on the message line.
Use up to 4 parameters. The routing-code-list, MVS, and USER parameters may be combined.
ACTION commands are cumulative.
DEST command
The DEST command limits jobs to be selected for display by destination. You must be
authorized for the command and for the destination. The DEST command may be used on
any panel. It affects only the ST panel. The DEST command format is shown in Figure 18-39.
DEST (+ or -) (destination-names) | ?
+ add-destination-names
- delete-destination-names
destination-names are destination names of up to 18 characters. Enter up to 4
destination names.
? displays the current setting on the command line or pop-up.
OWNER command
The OWNER command limits jobs selected for display by owner ID. You must be authorized
to use this command. OWNER may be used on any SDSF panel but affects only the DA, I,
PS, and ST panels. The OWNER command format is shown in Figure 18-40.
OWNER ownerid|?
ownerid is the owning user ID of the job, or the netmail ID. It can be up to 8
characters including * (any string of characters) or % (any single character).
? displays the current setting on the command line or pop-up.
OWNER with no parameters displays all jobs.
PREFIX command
The PREFIX command limits jobs selected for display by job name or netmail ID. This
command may be used on any SDSF panel, but affects only the DA, I, PS, and ST panels.
The PREFIX command format is shown in Figure 18-41 on page 891.
RSYS command
The RSYS command limits WTORs displayed at the bottom of the Log panels. You must be
authorized for this command. This command may be used on any SDSF panel, but affects
only the syslog and operlog panels. The RSYS command format is shown in Figure 18-42.
RSYS system-name|?
system-name is the MVS system name, up to 8 characters, including * (any string of
characters) or % (any single character).
? displays the current setting on the command line or pop-up.
RSYS with no parameters displays only WTORS from the system you are logged on to.
SYSNAME command
The SYSNAME command specifies the systems in the sysplex that are included on the CK,
DA, ENC, and PS panels. You must be authorized to use this command. The SYSNAME
command may be used on any SDSF panel. This command format is shown in Figure 18-43.
SYSNAME system-name|?
system-name is the MVS system name, up to 8 characters, including * (any string of
characters) or % (any single character).
? displays the current setting on the command line or pop-up.
SYSNAME with no parameters displays only data for the system you are logged on to.
SELECT command
The SELECT command temporarily limits the jobs (rows) displayed on tabular panels. This
command only lasts until you exit the panel or issue another SELECT with no parameters.
The SELECT command may be used on any tabular panel. Its format is shown in
Figure 18-44 on page 892.
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 891
SELECT | S (selection-criteria)
SELECT with no parameters removes any filtering done with SELECT.
selection-criteria specifies the rows to be selected. The selection criteria varies
depending on the current panel.
Queue panels (DA and ST):
jobname {jobid}. The jobid is the job number. You do not need leading zeros.
job number. You do not need to type leading zeros.
On these panels, SELECT overrides other filters (parameters on panel commands, FILTER,
and, if you are authorized, PREFIX, OWNER and DEST. For DEST, you must also be
authorized to the destination).
JDS panel:
ddname {stepname}
dsid
CK panel:
checkname {checkowner}
You may use special characters (* and %) except with jobid.
SET TIMEOUT with no parameters results in the timeout value specified in ISFPARMS.
Note: The sysplex-wide DA panel requires RMF in the JES3 environment. Some of the
values on the DA panel, such as CPU% and SIO, are approximate. For detailed and
precise performance monitoring, use RMF.
The action bar View pull-down choice 4. Change field list to ALTERNATE also toggles the
display of the primary or alternate fields on SDSF tabular panels.
Locate command
The LOCATE command can be used to scroll a panel to a specific line or column. Its syntax is
shown in Figure 18-46 on page 893.
Note: If LOCATE column returns with message COLUMN NOT FOUND, switch the panel view (?
command) and retry the LOCATE command. If the COLUMN NOT FOUND message is
repeated, use the COLSHELP command to check the spelling of the column title you are
trying to locate.
I[class] [H|NH]
I with no parameters displays all jobs in all classes (but not TSO users or started
tasks). The jobs displayed may be limited by your authorization and by filter settings
such as PREFIX or FILTER.
class - displays information for a specific input class. Enter a single class, up to 7
characters. You can also use special characters for class:
@ - jobs waiting to be transmitted to another node.
$ - TSO users
# - started tasks
! - hardcopy queue
The hardcopy queue contains all jobs that have any type of output in the system.
Accessing the hardcopy queue by using the I command allows you to find output for a job,
whether it is on a held or nonheld JES output queue.
H - displays only held jobs.
NH - displays only jobs that are not held.
Examples:
IA H Displays jobs in classes A that are held.
IA NH Displays jobs in class A that are not held.
I$ Displays the input queue for all TSO users.
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 893
Title Description
JOBNAME Job name of the address space
JobID JES job ID, or work ID
Type Type of address space: job, started task, TSO user, or initiator
JNum JES job number
Owner User ID of job creator
Prty JES input queue priority
C JES input class
Pos Position in the JES input queue
PrtDest JES print destination name or default print routing
SAff JES execution system affinity (if any)
ASys JES execution system ID
Status Status of job
SecLabel Security label of job
OrigNode Origin node name
ExecNode Execution node name
Device Device or JES processor name
PhaseName Name of the job phase
Phase Number of the job phase
SrvClass Service class
Dly Indicator that job processing is being delayed. Use the I action
character for details.
Mode Subsystem managing the job (WLM or JES)
Figure 18-49 lists the delayed access fields on the Input queue panel (except Spin).
Figure 18-50 on page 895 shows a snippet of an SDSF input queue PRIMARY field list
display.
Figure 18-50 Input queue panel with SET ACTION LONG data
Tip: You can define a primary and alternate variable field list for each SDSF panel. The
primary field list contains those fields that are shown upon entry into a panel. The
alternate/primary field list contains fields that can be displayed with of the ? command. In
alternate field display the ? command toggles to the primary fields display.
Action bar View option choice 4. Change field list to PRIMARY/ALTERNATE allows you to
select between the primary and alternate variable field list display.
Figure 18-51 displays some fields on the SDSF input queue ALTERNATE field list for the
Input queue panel.
Figure 18-51 Input queue panel with some ALTERNATE fields and with SET ACTION OFF
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 895
Tip: The SET SCREEN command displays a panel that allows you to set the colors,
highlighting, and intensities used on SDSF panels, and control display of the action bar. It
is valid only if SDSF was accessed through ISPF. The values are saved across SDSF
sessions.
The ARRANGE (parameters) command allows you to reorder and change the widths of
columns on the current panel:
ARRANGE from-column A|B to-column
ARR from-column FIRST|LAST|width
DEFAULT
?
from-column, to-column each name a column on an SDSF panel.
The column can be abbreviated to the shortest name that is unique for that panel.
A moves from-column after to-column.
B moves from-column before to-column.
FIRST or F makes from-column the first column after the fixed field (the first column). The fixed
field cannot be moved.
LAST or L makes from-column the last column (furthest to the right).
width sets the width of from-column; it is a number (1-127).
DEFAULT resets the column arrangement to the default
? under ISPF, displays the Arrange pop-up.
Under ISPF the ARRANGE criteria are saved (one set for each JES type).
When a value is too large to fit in a column, SDSF scales the value using these
abbreviations:
K Kilo (hexadecimal scaling)
T Thousands (decimal scaling) or Tera (hexadecimal scaling)
M Millions (decimal scaling) or Mega (hexadecimal scaling)
B Billions (decimal scaling)
G Giga (hexadecimal scaling)
P Peta (hexadecimal scaling)
KB Kilobytes
MB Megabytes
GB Gigabytes
TB Terabytes
PB Petabytes
The SORT command sorts the rows on the current tabular panel, including its alternate
form (displayed with the ? command). It is available on any panel that displays tabular data.
SORT (major-column) (A or D) (minor-column) (A or D)
(OFF) or (?)
with no parameters sorts a panel in ascending order using the fixed output field for that panel.
The list is in ascending sort order by NP field. The JES3 commands and command responses
resulting from actions are recorded in the hardcopy log.
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 897
Title JES3 command - Action
C *F J=,C= - Change job’s JES3 class
Prty *F J=,P= - Change job’s JES3 priority
F1=Help F12=Cancel
Note: SDSF may not display responses for the NP actions if the SDSF Extended MCS
(EMCS) console actvation fails. However, the action commands will be executed
successfully. The ULOG displays:
ISF032I CONSOLE nnnnnnnn ACTIVATE FAILED, RETURN CODE 0004, REASON CODE 0000
There is one row on the panel for SYSOUT data sets of a job on the JES3 output service
writer queue that share the same characteristics, such as class and destination.
The output display is accessed with the O command from any SDSF panel. Figure 18-56 on
page 900 shows the syntax of the O command.
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 899
O(classes) (form-number)
O with no parameters displays information for all output data sets. The information
displayed may be limited by your authorization and by settings for filters such as
FILTER, PREFIX, and so on.
Examples:
OJAB Displays output in classes J, A, and B.
OBK STD Displays output in classes B and K, with a form number of STD.
Title Description
JOBNAME Job name. This is the fixed field.
JNum JES job number (not included in the default field list)
JobID JES job ID or work ID X
Owner User ID of SYSIN/SYSOUT owner, or default values of ++++++++ or
???????? if user ID not defined to RACF
Prty JES output group priority
C JES output class
Forms Output form number
Dest JES print destination name
Tot-Rec Output total record count (lines). Blank for page-mode data.
Tot-Page Output page count. Blank if not for page-mode data.
Device Output device name (only if it is printing)
Status JES job status
SecLabel Security label of output group
JP JES job priority
FCB Output FCB ID
UCS Output UCS ID (print train required)
Wtr Output external writer name
Flash Output flash ID
Burst 3800 burst indicator
PrMode Printer process mode
OHR Output hold reason code
Output-Hold-Text Output hold reason text
Max-RC Return code information for the job
Type Type of address space
Figure 18-58 on page 901 lists the delayed access fields on the output queue panel.
REXX execs and Java programs reference columns by name rather than by title. The
COLSHELP command displays both column (field) names and titles.
In Figure 18-59 there are several rows for job PCPNTJV 20847. A row is created for a group
of output data sets (one or more) that share the same characteristics, such as class and
destination.
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 901
The title line of the Output Queue panel is described in Figure 18-60 on page 902. The
characteristics of the print data represented by each row differ.
SDSF OUTPUT ALL CLASSES ALL FORMS LINES94372 LINE 1-20 (20)
| | | | |
JES output classes | | | |
on displayed SYSOUT forms | | Totallines
being displayed | | (**** if
| | more than
Total number of print lines for | 99,999,999)
output being displayed. Scaled Lines displayed
if needed, for example, 1G or first line
rather than 1,000,000,000. if 100,000 or more
There is one row on the panel for SYSOUT data sets of a job on the JES3 output service held
queue that share the same characteristics, such as class and destination.
Operator hold JES3 writer queue SYSOUT is not displayed on the SDSF held output queue
panel.
The held output panel is accessed with the H command from any SDSF panel. Figure 18-62
on page 903 shows the syntax of the H command
H with no parameters displays information for all output data sets. The information
displayed may be limited by your authorization and by settings for filters such as FILTER,
PREFIX, and so on.
class - is a list of up to 7 output classes. Do not use blanks between H and the classes
or between classes.
string - is a character string that limits the panel to jobs with names that match the
character string.
string may be up to 8 characters, including * (any string of characters) and (any
single character).
Examples:
HDE ALL - Displays information for all jobs in output classes D and E.
H ABC - Displays information for jobs with the name abc.
H ABC* - Displays information for jobs with names that begin with abc.
The Held output queue panel in the JES3 environment may include the following columns,
shown in Figure 18-63. (The order and titles may be different, depending on installation and
user options.)
Title Description
JOBNAME Job name. This is the fixed field.
JNum JES job number. Not included in the default field list.
JobID JES job ID X
Owner User ID of SYSIN/SYSOUT owner, or default values of ++++++++ or
????????, if user ID not defined to RACF
Prty JES output group priority
C JES output class
Dest JES print destination name
Tot-Rec Output total record count (lines). Blank for page-mode data.
Tot-Page Output page count (lines). Blank if not for page-mode data.
Forms Output form number
FCB Output FCB ID
Status JES job status
UCS Output UCS ID (print train required)
Wtr Output external writer name
Flash Output flash ID
Burst 3800 burst indicator
PrMode Printer process mode
SecLabel Security label of data sets
JP Job priority
OHR Output hold reason code
Output-Hold-Text Output device name
Max-RC Return code information for the job
Type Type of address space
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 903
Figure 18-64 lists the delayed access fields on the held output queue panel.
Title Description
RNum JES job room number X
Programmer-Name JES programmer name X
Acct JES account number X
Notify TSO user ID from NOTIFY parameter on job card X
ISys JES input system ID X
Rd-Time Time that the job was read in X
Rd-Date Date that the job was read in X
ESys JES execution system ID X
St-Time Time that execution began X
St-Date Date that execution began X
End-Time Time that execution ended X
End-Date Date that execution ended X
Cards Number of cards read for job X
JC JES input job class
MC Message class of job X
SubGroup Submittor group X
JobAcct1 Job accounting field 1. Not included in the default field list.
JobAcct2 Job accounting field 2. Not included in the default field list.
JobAcct3 Job accounting field 3. Not included in the default field list.
JobAcct4 Job accounting field 4. Not included in the default field list.
JobAcct5 Job accounting field 5. Not included in the default field list.
Figure 18-64 Held output queue panel columns with delayed access
REXX execs and Java programs reference columns by name rather than by title. The
COLSHELP command displays both column (field) names and titles.
Figure 18-65 on page 905 is an SDSF held output queue display on a 24x80 TSO panel.
In Figure 18-65 there are several rows for job PCPNHJV 20850. A row is created for a group
of output data sets (one or more) that share the same characteristics, such as class and
destination.
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 905
18.13 Status (ST) panel
The status panel displays information about jobs, started tasks, and TSO users on all the
JES3 queues.
ST[classes] [string]
string is a character string that limits the panel to jobs whose names match
the character string. The string can be up to 8 characters, including:
* - to represent any character or string of characters
% - to represent any single character.
Note: SET SCHARS command may be used to change the characters for pattern
matching.
“Status panel fields” on page 907 shows an example of some columns on an SDSF status
display for a JES3 job.
. A select command with no parameters returns the display to the original display.
----------------------------------------------------------------------------
---
SDSF STATUS DISPLAY ALL CLASSES LINE 1-1 (1)
COMMAND INPUT ===> SCROLL ===>
HALF
PREFIX=* DEST=(ALL) OWNER=* SYSNAME=SC75
ACTION=//-Block,=-Repeat,+-Extend,?-JDS,A-Release,C-Cancel,CA-CancelARM,
ACTION=CD-CancelDump,CDA-CancelARMDump,CP-CancelPrint,D-Display,
ACTION=DE-DisplayEstimates,DL-DisplayLong,DM-DisplayMains,DMA-DisplayMDSAllo
c,
ACTION=DME-DisplayMDSError,DMR-DisplayMDSRestart,DMSS-DisplayMDSSysSel,
ACTION=DMSV-DisplayMDSSysVer,DMU-DisplayUnavailVol,DSD-DisplayDDnames,
ACTION=DSH-DisplaySpoolHold,DSP-DisplaySpoolPartition,DX-DisplayExtended,
ACTION=E-Restart,H-Hold,I-Info,J-Start,L-List,LB-ListBDT,LH-ListHold,
ACTION=LT-ListTCP,P-Purge,Q-OutDesc,S-Browse,SB-ISPFBrowse,SE-ISPFEdit,
ACTION=SJ-JCLEdit,W-Spin,X-Print,XC-PrintClose,XD-PrintDS,XDC-PrintDSClose,
ACTION=XF-PrintFile,XFC-PrintFileClose,XS-PrintSysout,XSC-PrintSysoutClose
NP JOBNAME JobID Owner Prty Queue C Pos SAff ASys
S
VAINISCT JOB07219 VAINI 1 EXECUTION A 49
H
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 907
Title Description
JOBNAME Job name. This is the fixed field.
Type Type of address space
JNum JES job number. Not included in the default field list.
JobID JES job ID
Owner User ID of job owner, or default values of ++++++++ or ????????, if
user not defined to RACF
Prty JES job queue priority
Queue JES queue name for job
C (JES2) 8 (JES3) JES input class
Pos Position in JES queue
SAff JES execution system affinity (if any)
ASys JES active system ID (if job active)
Status Status of job
PrtDest JES print destination name
SecLabel Security label of job
OrigNode Origin node name
ExecNode Execution node name
Device JES device name
Max-RC Return code information for the job
SrvClass Service class
WPos Position on the WLM queue
Scheduling-Env Scheduling environment for the job
Dly Indicator that job processing is delayed
Mode Subsystem managing the job (JES or WLM)
Figure 18-70 lists the delayed access fields on the status panel.
Title Description
RNum JES job room number
Programmer-Name JES programmer name
Acct JES account number
Notify TSO user ID from NOTIFY parameter on job card
ISys JES input system ID
Rd-Time Time that the job was read in
Rd-Date Date that the job was read in
ESys JES execution system ID
St-Time Time that execution began
St-Date Date that execution began
End-Time Time that execution ended
End-Date Date that execution ended
Cards Number of cards read for job
MC MSGCLASS of job
Tot-Lines Total number of spool records for job
Spin Indicator of whether the job is eligible to be spun
SubGroup Submittor group
PhaseName Name of the phase the job is in
Phase Number of the phase the job is in
JobAcct1 Job accounting field 1. Not included in the default field list.
JobAcct2 Job accounting field 2. Not included in the default field list.
JobAcct3 Job accounting field 3. Not included in the default field list.
JobAcct4 Job accounting field 4. Not included in the default field list.
JobAcct5 Job accounting field 5. Not included in the default field list.
SubUser Submitting user ID
J0
J0 can be issued on any SDSF panel.
J0 panel fields
Figure 18-72 lists the fields on the J0 panel.
Title Description
DSPNAME Name or job number of the DSP that created the data set
DSID Data set ID
Owner User ID that created the data set
C Output class
CC Data set copy count
PrMode Process mode
Burst Burst indicator
Forms Creation form number
FCB FCB name
UCS UCS name
Wtr External writer name
Flash Flash name
FlashC Flash count
SegID Segment number
Chars Character arrangement tables
CpyMod Copy-modification module for the 3800 printer
Queue Queue the SYSOUT is on
Dest Print destination name
SecLabel Security label for the data set
CrDate-CrTime Creation date and time
Spin Spin data set indicator
Sel Selectable indicator
Rec-Cnt SYSOUT record count
Page-Cnt SYSOUT page count (for page-mode data)
Byte-Cnt SYSOUT byte count
RecFM Record format
DDName DD name of the data set
DSName Full data set name
StepName Name of the job step that created the data set
ProcStep Name of the procedure step that created the
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 909
Figure 18-73 is an SDSF J0 panel display. The rows on the panel are for a spin-off spool data
set created by JES3 DSPs. The rows with the DSP name JOBnnnnn are created by the
*CALL DSIPDJC command.
Tip: The bottom line in Figure 18-73 is the ISPF list of logical sessions activated by
entering the SWAPBAR command. The panel name SDSF is set by SDSF. It may be
changed with the ISPF command SCRNAME name. The ‘*’ in front of a panel name is set
for an active panel. The ‘-’ is for the inactive split panel.
Field Description
Burst Data set burst indicator
C JES output class: A-Z, 0-9
CC Data set copy count
Chars Character arrangement table names
CpyMod Copy modification table name
Dest Print destination name
FCB Output FCB name
Flash Output flash ID
Forms Data set creation form number
PrMode Process Mode
UCS UCS ID
Wtr Output special writer ID or data set ID
The JES3 *F U J=0,Q=WTR,DSN= command is used to set the overtype value for a field
If action bar Options selection 3. Change include SYSIN to ON/OFF or the INPUT ON|OFF
command is ON, the SYSIN data sets for the job are included in the display entered from DA,
I and ST panels. If the data to be viewed contains nondisplay characters, the SET HEX
ON|OFF command may be used to display the data in hexadecimal format.
The NP action ? displays a list of data sets for a job on the Job Data Set (JDS) panel. The NP
actions S, SB, SE and SJ can be used to work with the individual spool data sets. Note that
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 911
the SJ action always invokes a job’s JCL edit independent of the job information panel from
where it is used.
The INPUT {ON|OFF} command specifies whether jobs’ input data sets are to be included
into the display when you view jobs from the DA, ST, or I panels. You must be authorized to
use this command. The action bar Options pull-down choice 3 can be used to toggle
between input ON or OFF.
The SET HEX {ON|OFF} command controls the display in hexadecimal for this session. The
action bar View pull-down choice 3 “Set hex to ON|OFF” may be used instead of the SET
HEX command to control the display in hexadecimal.
The SDSF browse does not support the ISPF type labels for data lines and the ISPF picture
string find commands.
On the Job Data Set panel page-mode output is indicated by the PrMode column value
PAGE, a value other than blanks in the Page-Cnt columns and RecFm value VM.
When the ISPF browse is active, SDSF commands are not available. To use SDSF
commands (such as / or PRINT) you must access SDSF's browse with the S action character.
The SET BROWSE command controls the default browse action character (S, SB, or SE) that
is issued when you place the cursor in the NP column and press Enter. Figure 18-76 shows
an example of the SDSF job output browse display on the SDSF output display panel.
Figure 18-77 shows an example of a re-edit request for a job’s JCL. The SJ action can be
entered on any line on the job data set display panel or on a row of any queue display panel.
NP field action ?-JDS on I, O, H, ST, and DA panels - Job Data Set panel
The Job Data Set panel allows users to list and display information about the SYSOUT data
sets for a job, started task, or TSO user. The Job Data Set panel is accessed with the NP
column ? action character.
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 913
Figure 18-78 shows an example of the SDSF job data set panel. INPUT ON is set. SDSF
displays the type of the spool data sets.
SDSF JOB DATA SET DISPLAY - JOB VAINISCT (JOB07219) LINE 1-9 (9)
| | |
|
Job name | | Total
lines
Job or work ID Lines
displayed
Note: When JDS is accessed from H or O panels, access for fields marked with * is
immediate. Otherwise, access for all fields is delayed.
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 915
Title Description
Spin Indicates if it is a spin data set
Sel Indicates if it is selectable
TP Indicates if it was created by a transaction program
TPJName Job name of the transaction program that created it
TPJobID Job ID of the transaction program that created it
TRd-Time Start time and date for entry of the transaction
TRd-Date program
TSt-Time Start time and date for execution of the
TSt-Date transaction program
TPAcct Account number of the transaction program
RecFm Record format
Title Description
Address Output address (lines 1-4). Type + alone to modify ADDRESS2-4
AFPParms Data set containing parameters to be used by the AFPPrint Distributor
Building Output building
Burst Data set burst indicator
C JES output class: A-Z, 0-9
CC Data set copy count
Chars Character arrangement table names
ColorMap AFP resource for the data set containing color translation
The JES3 *F U J=0,Q=WTR,DSN= command is used to set the overtype value for
fields managed by JES3. If the overtype value is associated with an output
descriptor, then the output characteristics are modified with the scheduler
facilities call.
Note: JES uses the JESSPOOL class to protect SYSIN/SYSOUT data sets. SDSF
extends the use of the JESSPOOL class to protect SDSF job and output group resources
as well. SDSF checks a user's SAF authorization to:
Job resources on the DA, I, and ST panels.
Output groups on the H, JDS, O, and OD panels.
SYSIN/SYSOUT data sets on the JDS, J0 and any other panel used for browsing with
the S or V action characters and printing with the X action character.
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 917
Display Filter View Print Options Search Help
-------------------------------------------------------------------------------
SDSF OUTPUT DESCRIPTORS - JOB VAINIJV (JOB20671) LINE 1-21 (107)
COMMAND INPUT ===> SCROLL ===> HALF
PREFIX=V* DEST=(ALL) OWNER=* SYSNAME=SC75
ACTION=//,=,+,?,E,S,SB,SE,SJ,V,X,XC,XD,XDC,XF,XFC,XS,XSC
NP DDNAME Output Descriptors
SYSUT2 PageDef
SYSUT2 FormDef
SYSUT2 Title
SDSF OD TEST
SYSUT2 Name
JUHA VAINIKAINEN
SYSUT2 Building
BLDG8
SYSUT2 Department
ITSO
The output descriptor fields, shown in Figure 18-86, can be overtyped if the output descriptors
panel was accessed from the DA, I, O, H or ST panels. The data set must be closed.
The Output Descriptors panel in Figure 18-86 and Figure 18-87 on page 919 have the
following fields.
Title Description
DDNAME Ddname of the data set
PageDef Library member used by PSF to specify print characteristics
FormDef Library member used by PSF to specify print characteristics
Title Title of output
Name Output name
Building Output building
Department Output department
Room Output room
Address Output address lines 1 through 4
OutBin Output bin
ComSetup Printer setup options
FormLen Form length
ColorMap AFP resource for the data set containing color translation information
InTray Paper source
OverlayB Overlay for the back of each sheet
OverlayF Overlay for the front of each sheet
OffsetXB Offset in x direction from the page origin for the back of each page
OffsetXF Offset in x direction from the page origin for the front of each page
OffsetYB Offset in y direction from the page origin for the back of each page
OffsetYF Offset in y direction from the page origin for the front of each page
Title Description
PortNo Number of the TCP/IP port where the FSS connects to the printer
Notify Print completion notification for 1 to 4 IDs
UserLib User resource (AFP) libraries to be used by PSF
RetainS Retain time for successful transmissions (hh:mm:ss)
RetainF Retain time for unsuccessful attempts (hh:mm:ss)
RetryL Maximum number of retries
RetryT Time between retries (hh:mm:ss)
PrtOptns Entry in the PrintWay options data set
PrtQueue Print queue name
IP Destination IP address or TCP/IP name (for example, node.IP:1.2.333.444.5)
UserData User data
AFPParms Data set containing parameters used by the AFP Print Distributor
All output descriptor fields can be overtyped when the output descriptors panel is accessed
from the DA, I or ST panels.
Figure 18-89 on page 920 shows a JESPLEX panel for a three main processor JES3 complex
on an 80-byte line length panel. The Status and ConnStat columns have been transposed --
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 919
ARR Status A ConnStat; ARR ConnStat A NAME. The Version and SLevel columns are
moved to be the last columns of the JESPLEX panel -- ARR Version L; ARR SLevel L. The
ARRANGE command reorders and changes the widths of columns on the current panel.
The C (Command character) field has been shortened (ARR C 1) to one byte to fit more visible
fields on the display lines.
Attention: The C column shows the JES3 SYN= specification. The JES3 SYN= parameter
on CONSTD initialization statement specifies a set of prefixes (or synonyms) to be used as
SYSTEM scope command prefixes. A command entered with a SYSTEM scope prefix will
execute on the system on which the command is entered.
Note: ULOG should be active when the JP panel’s NP actions are used or fields are
overtyped. The SDSF User Session Log (ULOG) allows users to view the MVS and JES
generated by SDSF and SAF. SDSF deletes the user session log when an SDSF session
is ended or when the ULOG CLOSE command is issued.
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 921
18.17 Job class (JC) panel
The Job Class (JC) panel displays and controls the job classes in the JES3 JESplex. Both
JES-managed and WLM-managed classes are shown.
JC[one_class]
----------------------------------------------------------------------------
---
SDSF JOB CLASS DISPLAY CLASS A LINE 1-3 (3)
COMMAND INPUT ===> SCROLL ===>
HALF
ACTION=//-Block,=-Repeat,+-Extend,D-Display,DC-DisplayClass,DG-DisplayGroup
,
ACTION=ST-Status
NP CLASS Status Member Group Mode Xeq-Cnt TDepth Log Jrnl
Rst Je
A ACTIVE SC70 A JES 1 NONE STD NO NO
NO
A ACTIVE SC74 A JES 1 NONE STD NO NO
NO
A ACTIVE SC75 A JES 1 NONE STD NO NO
NO
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 923
INIT [JES | WLM | ALL]
There are three types of rows on the initiator display for each system in the JESPlex: ResType
GROUP, CLASS, and INIT. The GROUP rows are displayed on each system for the defined
JES3 the GROUP initialization statement in the JES3 initialization deck. CLASS rows, for
classes defined to the JES3 job class group, follow each GROUP row. Highlighted INIT rows,
with an active job, follow the CLASS rows.
Tip: The order of the columns on the default initiator panel starts with NP, ID, Status,
JobName, Stepname, JobID, C, ASID, ASIDX, and Owner on an 80-byte panel row.
In Figure 18-100 on page 924 the order of columns has been arranged to NP, ID, ResType,
Status SysName and the rest as they were originally. The filter for the panel requests rows
with ID S or T for sysname SC74 or SC75 to be displayed.
S GROUP ON SC75
S CLASS ON SC75 S
S INIT ACTIVE SC75 CLASSS2 XYZZY JOB21135 S
S INIT ACTIVE SC75 CLASSS XYZZY JOB20889 S
S INIT ACTIVE SC75 CLASSS3 XYZZY JOB21136 S
T CLASS ON SC74 T
Title Description
Seclabel Security label of the job
SrvClass Service class of the active job (JES) or the initiator is running (WLM)
Mode Initiator mode (WLM or JES)
Barrier Group barrier
Default Default group indicator
DefCount Defined initiator count (Group only)
AllocCount Allocated initiator count
UseCount Count of initiators in use
Alloc Allocation indicator (manual/dynamic) (Group only)
Unalloc Unallocation indicator (manual/dynamic) (Group only)
Group Group name (Class only)
ResType Resource type (GROUP, CLASS or INIT)
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 925
Note: The SDSF panel display issues message COMMAND ISSUED even if an invalid overtype
value is entered. Enter the ULOG command to view the JES3 action for an overtyped
column.
PR [printer-list]
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 927
Title Description
PRINTER Name of the printer
Status Printer status
Group Device group
SForms Printer selection form number
SClass Printer output selection classes
JobName Job name
JobID JES job ID, or work ID
Owner Owner ID of the active job
Rec-Cnt Number of line-mode records
Rec-Prt Number of line-mode records printed
Page-Cnt Number of output pages
Page-Prt Number of output pages printed
JP JES job priority
DP Output data set priority
C JES output class
SecLabel Security label of output group
Forms Output form number
FCB Output FCB ID
UCS Output UCS ID (print train required)
Flash Output flash ID
Burst 3800 burst indicator
SepDS Separator page between data sets
PrMode Printer process mode
SFCB Printer selection FCB ID
SUCS Printer selection USC ID
SFlh 3800 or FSS printer selection flash ID
Work-Selection Printer work selection criteria
SBurst 3800 output selection burst mode
SPrmode1-4 Output selection process mode 1-4
M 3800 or FSS mark forms control
NPro FSS nonprocess run-out time, in seconds
Mode FSS control mode of printer
CkptRec Number of logical records per checkpoint
CkptPage Number of logical pages per checkpoint
CkptSec 3800 or FSS default checkpoint interval
CkptMode Checkpoint interval used by FSS
CpyMod 3800 or FSS copy modification module ID
Unit Printer unit name
DFCB Device default forms control buffer (FCB)
Setup Setup mode
CopyMark Copymark mode
Pau Pause mode (pause between data sets)
Tr Printer tracing
FSSName FSS defined for the printer
FSSProc Proc used to start the FSS
SysName System name
JESN JES subsystem name
JESLevel JES version and release
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 929
NP Description JES3 command / SDSF description
C-Cancel *CANCEL,devname - Canceling output for current job on a printer:
G - Cancel only the output destined for this device for
J - Cancel all output of the type PRT or PUN
P - Stop printer and determine the position of data being processed
T - Stop the printer once the current activity is canceled
D-Display *INQUIRY,D,D=devname - Display printer information
DL-DisplayLong *INQUIRY,D,D=devname - Display the long form of the information
E-Restart *RESTART,devname - Restart a printer. Use parameters:
A - Automatic mode. Mutually exclusive with M.
D - Turn on diagnostic mode. Mutually exclusive with X.
H - Suspend activity on the current data set and place it in hold
J - Requeue all data sets for the current job
L - Reload FCB and UCS/CHARS buffer
M - Manual mode. Mutually exclusive with A.
R - Request that it perform a scheduling pass
T - End it automatically once the current job is rescheduled
X - Turn off diagnostic mode. Mutually exclusive with D.
F-Forward *RESTART,devname - Forward space a printer. Required parameters:
number - Number of lines
C - Mmost recent checkpoint
Cnumber - Lines from the most recent checkpoint
CnumberP - Pages from the most recent checkpoint
N - last internally-noted checkpoint
Nnumber - Lines from the last internally-noted checkpoint
NnumberP - Pages from the last internally-noted checkpoint
K-ForceFSS FORCE jobname - Force termination of the FSS
L-Fail *FAIL,devname - Fail device
LD-FailDump *FAIL,devname,DUMP - Fail the device with a dump
S-Start *START,devname - Start a printer. Use one or more of parameters:
A - Automatic mode. Mutually exclusive with M.
D - Turn on diagnostic mode. Mutually exclusive with X.
M - Manual mode. Mutually exclusive with A.
T - End it when this request completes
X - Turn off diagnostic mode. Mutually exclusive with D.
V-VaryOn *VARY,devname,ON - Vary the printer online
VF-VaryOFF *VARY,devname,OFF - Vary the printer offline
X-CallWtr *X,WTR,OUT=devname - Invoke a writer. Use one or more of parameters:
D - Turn on diagnostic mode. Mutually exclusive with X.
R - Suspend writer output until the device is available
T - End it after the output is printed
X - Turn off diagnostic mode. Mutually exclusive with D.
Field Description
B Burst. Action: S
CB Clear printer processing indicator. Actions: S, X
Char1 Character arrangement table 1. JES3: Type + alone to modify Char2-4.
JES3 actions: Bx, Fx, E, S, X
CkptPage Number of logical pages per checkpoint: 1-32767. JES3 actions: Bx, Fx,
E, S, X
CkptSec 3800 or FSS default checkpoint interval: 0-32767 JES3 actions: Bx, Fx,
E, S, X
Copies Copy count. JES3 actions: Bx, Fx, E, S
Copymark Copymark mode: DATASET, JOB, CONSTANT, DEFAULT, NONE. JES3 actions:
Bx, Fx, E, S, X
CpyMod 3800 or FSS CPYMOD ID. JES3 actions: S
DGrpY Device cannot process data sets destined for a local device
Dyn Device can be started dynamically
Line-Lim-Hi Selection output size, maximum number of lines. JES3 actions: Bx, Fx,
E, S, X
Line-Lim-Lo Selection output size, minimum number of lines. JES3 actions: Bx, Fx,
E, S, X
Mode Mode of printer: FSS or JES
NPro Nonprocess run-out time, in seconds. JES3 actions: Bx, Fx, E, S, X
Oplog Operator command actions will be logged
Page-Lim-Hi Selection output size, maximum number of pages. JES3 actions: Bx, Fx,
E, S, X
Page-Lim-Lo Selection output size, minimum number of pages. JES3 actions: Bx, Fx,
E, S, X
PDefault Print default
SBurst 3800 output selection burst mode: Yes or No. JES3 actions: S or X
SClass Printer output selection classes: classes with no delimiters. JES3
actions: Bx, Fx, E, S, X
SepDs Separator page between data sets: Yes or No. JES3 actions: Bx, Fx, E
Setup Printer setup mode
SFCB Printer selection FCB ID. JES3 actions: Bx, Fx, E, S, X
SFlh 3800 or FSS printer selection flash ID. JES3 actions: Bx, Fx, E, S
SForms Printer selection form number. JES3 actions: Bx, Fx, E, S, X
SPrMode1 Selection process mode 1. JES3 actions: Bx, Fx, E, S, X
SUCS Printer selection USC ID. JES3 actions: Bx, Fx, E, S, X
Trans Data translation: Yes or No
Work-Selection Printer work selection criteria. JES3 actions: Bx, Fx, E
The list of criteria must be enclosed in parentheses. Criteria must be
separated by a comma. /value specifies that the characteristic
prefixed with a slash (/) is not to be used as work-selection
criterion.
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 931
PUN [punch-list]
Title Description
PUNCH Name of the punch
Status Punch status
Group Device group name
SForms Punch selection form
JobName Job name
JobID JES job ID, or work ID
JNum JES job number
Owner User ID of job creator
SClass Punch output selection classes
Rec-Cnt Number of line-mode records in the job
Rec-Prt Number of line-mode records punched
Page-Cnt Output page count
Page-Prt Output pages punched
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 933
NP Description JES3 command / SDSF description
D-Display *INQUIRY,D,D=devname - Display punch information
DL-DisplayLong *INQUIRY,D,D=devname - Display the long form of the information
E-Restart *RESTART,devname - Restart a punch. Use parameters:
A - Automatic mode. Mutually exclusive with M.
D - Turn on diagnostic mode. Mutually exclusive with X.
H - Suspend activity on the current data set and place it in hold
J - Requeue all data sets for the current job
M - Manual mode. Mutually exclusive with A.
R - Request that it perform a scheduling pass
T - End it automatically once the current job is rescheduled
X - Turn off diagnostic mode. Mutually exclusive with D.
F-Forward *RESTART,devname - Forward space a punch. Required parameters:
C - Mmost recent checkpoint
Cnumber - Lines from the most recent checkpoint
CnumberP - Pages from the most recent checkpoint
N - last internally-noted checkpoint
Nnumber - Lines from the last internally-noted checkpoint
NnumberP - Pages from the last internally-noted checkpoint
K-ForceFSS FORCE jobname - Force termination of the FSS
L-Fail *FAIL,devname - Fail device
LD-FailDump *FAIL,devname,DUMP - Fail the device with a dump
S-Start *START,devname - Start a punchrinter. Use one or more of parameters:
A - Automatic mode. Mutually exclusive with M.
D - Turn on diagnostic mode. Mutually exclusive with X.
M - Manual mode. Mutually exclusive with A.
T - End it when this request completes
X - Turn off diagnostic mode. Mutually exclusive with D.
V-VaryOn *VARY,devname,ON - Vary the punch online
VF-VaryOFF *VARY,devname,OFF - Vary the punch offline
X-CallWtr *X,WTR,OUT=devname - Invoke a writer. Use one or more of parameters:
D - Turn on diagnostic mode. Mutually exclusive with X.
R - Suspend punch writer output until the device is available
T - End it after the output is punched
X - Turn off diagnostic mode. Mutually exclusive with D.
Important: For some fields, you must also type an action character when overtyping. See
the description of each field.
The readers panel is accessed with the RDR command. Figure 18-120 on page 936 shows
the RDR command syntax.
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 935
RDR [reader-list]
Title Description
READER Device name. This is the fixed field.
Status Reader status
Group Device group name
JobName Job name
JobID Active job ID
Type Type of active address space. Not in the default field list
JNum Active job number. Not in the default field list
Owner User ID of owner
Rec-Cnt Number of records in the job
Rec-Proc Number of records processed
C Default execution class
MC Message class
Unit Reader unit name
SysName System name
JESN JES subsystem name
JESLevel z/OS JES level
SecLabel Security label of the job on the reader
DevType Device type name
DSPName DSP name
AReq Account number required on job card
PReq Programmer name required on job card
SWA SWA ABOVE or BELOW
BLP BLP label setting is respected
DP Default job priority
ML Default job message level
AL Default allocation message level
Time Default time limit
Region Default region size
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 937
Lines panel fields
Figure 18-124 on page 938 is a list of the lines panel columns in the JES3 environment.
Title Description
DEVICE Device name. This is the fixed field.
Status Line status
Unit Line address or type
Node Node that the line is connected to
JobName Job name
JobID JES job ID
Owner User ID of owner
Proc-Lines Number of lines processed for the job.
Tot-Lines Number of lines in the job.
Type Type of line (RJP or NJE)
ADisc Line disconnect option
Code BSC adaptor code
Comp BSC data compression option
Duplex BSC line mode
Intf BSC adapter interface
Speed Speed of the line
Tr Trace I/O option
Transp BSC transparency feature
Password Password
Discon Disconnect status: NO, INTERRUPT, or QUIESCE (only for active lines).
SysName System Name
JESN JES subsystem name
JESLevel JES version and release
Figure 18-127 is an example of the SDSF nodes panel display. The command ARR
LineName L was issued for the panel. -- JES3 NJE TCPIP and SNA connections do not use
lines.
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 939
Title Description
NodeName Node name. This is the fixed field
Status Node status for the first path.
Hold Job hold indicator for the local node
LineName Line dedicated to NJE for this node
Tr Trace option
VerifyP Password received from the node
SendP Password sent to the node
SysName System Name
JESN JES subsystem name
JESLevel JES version and release
Title Description
MaxRetries Number of retries to attempt before ending the BSC NJE line
Path Name of the adjacent node in the path
PType Protocol type
BDTName Bulk Data Transfer (BDT) ID
PartName Spool partition name to which all incoming NJE streams are written
MaxLines Maximum number of lines for the node.
Direct Specifies whether the node can be directly attached only
SSignon Specifies whether secure signon protocol is to be used
JTNum Number of job transmitters associated with the TCP/IP node
JRNum Number of job receivers associated with the TCP/IP node
STNum Number of SYSOUT transmitters associated with the TCP/IP node
SRNum Number of SYSOUT receivers associated with the TCP/IP node
Secure Use secure (TLS) socket
PwCntl Password encryption control
XNameReq Specifies whether inbound SYSOUT can be held for an external writer if no
external writer name is supplied
Connect Automatically reconnect
Conn-int Connection interval (minutes)
BufSz Buffer size
Strm Number of concurrent streams
PrtDef Print class default for networking output received at the home node
PrtTSO TSO data set default class for networking output received at the home node
PrtXwtr External writer data set default class for networking output received at
the home node
PunDef Punch class default for networking output received at the home node
NetPr Number of logical network printers on the home node
NetPu Number of logical network punches on the home node
CTC Channel to channel node
The Network Server panel is accessed with the NS command, which does not have any
arguments.
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 941
Display Filter View Print Options Search Help
----------------------------------------------------------------------------
---
SDSF NS DISPLAY SC75 LINE 1-2 (2)
COMMAND INPUT ===> SCROLL ===>
HALF
ACTION=//-Block,=-Repeat,+-Extend,C-Cancel,D-Display,E-Restart,K-SysCancel,
ACTION=KD-SysCancelDump,L-Fail,LD-FailDump,S-Start,X-CallTCP,Z-SysForce
NP DEVICE Status DSPName Stack CTr VTr JTr ASID SrvJobNm
IPName
JES3NS ACTIVE JOB20820 TCPIP NO NO NO 003B JOB20941
WTSC75.
JES3NS9 INACTIVE TCPIP NO NO NO
WTSC75.
Title Description
DEVICE Name of the network server. This is the fixed field.
Status Device status
DSPName Dynamic support program name (JES3 only)
Stack Name of the TCP/IP stack
Restart Restart the device automatically
Rest-Int Restart interval (minutes)
CTr Common tracing
VTr Verbose tracing
JTr JES tracing
ASID ASID of the network server
SrvJobNm Job name of the network server address space
IPName Local TCP/IP host name
Port Local TCP/IP port number
Secure Secure (TLS) socket
SysName System Name
JESN JES subsystem name
JESLevel z/OS JES level
The Network Connection panel is accessed with the NC command. The NC syntax is shown
in Figure 18-136.
NC [SHORT]
Figure 18-137 is an example of the SDSF network connections panel display, invoked with the
NC command, in the JES3 environment.
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 943
Display Filter View Print Options Search Help
----------------------------------------------------------------------------
---
SDSF NC DISPLAY SC75 INVALID COMMAND
COMMAND INPUT ===> SCROLL ===>
HALF
ACTION=//-Block,=-Repeat,+-Extend,C-Cancel,D-Display,SN-StartNetComm
NP DEVICE Status Type ANode JobName JobID JType Owner
Pr
@0000002 ACTIVE TCP WTSCPLX9
@0000002.JR1 INACTIVE
@0000002.JT1 INACTIVE
@0000002.OR1 INACTIVE
@0000002.OT1 INACTIVE
WTSCNET ACTIVE TCP WTSCNET
WTSCNET.JR1 INACTIVE
WTSCNET.JT1 INACTIVE
WTSCNET.OR1 INACTIVE
WTSCNET.OT1 INACTIVE
WTSCPLX1 INACTIVE TCP WTSCPLX1
WTSCPLX4 ACTIVE TCP WTSCPLX4
WTSCPLX4.JR1 INACTIVE
WTSCPLX4.JT1 INACTIVE
WTSCPLX4.OR1 INACTIVE
WTSCPLX4.OT1 ACTIVE VAINI JOB20994 JOB
WTSCPLX7 INACTIVE TCP WTSCPLX7
In Figure 18-137 the TCPIP NJE connection to the local node (WTSC75J3) was started from
the foreign node WTSCPLX9. JES3 on the local socket side dynamically created a SOCKET
definition with a unique name of @0000002 for the connection.
A socket definition, defining a foreign socket that is used to connect to TCP/IP: Each socket
runs as a subtask under a Netserv address space. The socket definition consists of the
following information:
A unique name representing the view of the socket by JES3 global and used in inquiry
and modify commands as well as internal JES3 processing of outbound and inbound
TCP/IP data.
A host name.
A port number, handled the same way as the Netserv port number.
The Netserv under which the socket task runs.
Title Description
DEVICE Name of the connection, transmitter or receiver. This is the fixed field.
Status Device status
Type Connection type (SNA, BSC, TCP)
ANode Adjacent node
Jobname Job name
JobID JES job ID
JType Type of address space
Owner User ID of job creator
Proc-Lines Number of lines processed for the job
Tot-Lines Number of lines in the job
Unit Unit associated with line
JRNum Job receiver count
JTNum Job transmitter count
SRNum SYSOUT receiver count
STNum SYSOUT transmitter count
CTr Common tracting
JTr JES tracing
VTr Verbose tracing
IPName IP host name
Port TCP/IP port number
Secure Secure (TLS) connection
RelConn Related connection name
SrvName Name of the associated server device
SysName System Name
JESN JES subsystem name
JESLevel z/OS JES version and release
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 945
Figure 18-138 on page 945 lists network connection panel fields for the JES3 environment.
----------------------------------------------------------------------------
---
SDSF SPOOL DISPLAY SC75 1% ACT 1772K FRE 1759K LINE 1-5 (5)
| | | | | |
| | Active Free Lines |
| | tracks tracks displayed|
| Spool utilization Total
System name the user is logged on to lines
The Spool Volumes panel of the JES3 environment includes some or all of the following fields
listed in Figure 18-143. (The order and titles may be different, depending upon installation
and user options.)
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 947
Title Description
NAME DDNAME, DRAINED or UNAVAIL. This is the fixed field.
Status Spool or partition status (active, starting, halting, draining, inactive)
TGPct Spool utilization
TGNum Total track groups
TGUse Track groups in use
Ext Extent number, in hexadecimal
LoCyl Low cylinder
LoTrk Absolute low track number, in hexadecimal
LoHead Low head
HiCyl High cylinder
HiTrk Absolute high track number, in hexadecimal
HiHead High head
TrkPerCyl Tracks per cylinder
RecPerTrk Records per track
TrkPerTG Tracks per track group
Type Spool type (PARTITION or EXTENT)
PartName Partition name
OverFNam Overflow partition name
OverAllow Indicates if overflow from this partition to another partition is allowed
OverOccur Indicates if overflow from this partition to another partition occurred
OverInto Indicates if overflow into this partition is allowed
PTracks Total tracks in the partition
PTrackU Tracks in use in the partition
DTracks Total tracks in the data set
DTrackU Tracks in use in the data set
Default Default partition indicator
STT Single track table indicator
MargPct Marginal SLIM threshold percentage shown only on the row for the partition
MargExc Marginal threshold exceeded
MinPct Minimal SLIM threshold percentage
MinExc Marginal threshold exceeded
DataSetName Data set name
SDSF uses MVS console services to acquire an extended console that is used to issue
commands and receive responses.
The ULOG panel is accessed with the ULOG command, shown in Figure 18-146.
{ULOG|U} [CLOSE]
CLOSE deletes all entries in the user session log and deactivates the
extended console.
ULOG with no parameters displays the ULOG panel. An extended console is
activated if one is not already active.
The SDSF ULOG extended console activation may fail with message “ISF032I CONSOLE
emcs_name ACTIVATE FAILED, RETURN CODE 0004, REASON CODE 0000 “. Use the SET
CONSOLE command or action bar Options choice 9 to set a new name for the extended
console.
Figure 18-147 shows an example of the JES3 commands entered on the spool volumes
panel and command responses on the ULOG panel. The D EMCS command was issued as a
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 949
slash (/) command on a COMMAND INPUT line. The ULOG panel is scrolled to the right past
the message text prefix.
All commands and command responses are always logged into the system hardcopy log.
The message text on the ULOG message lines is prefixed with the system name, julian date,
time stamp and ID of job that issued the message:
SC75 2011095 11:10:32.12 JES3 IAT8607 INQUIRY ON SPOOL PARTITION S
When a JES or MVS operator command is issued on a active SDSF panel, the responses of
the commands are displayed on the active panel, as shown in Figure 18-148 on page 951.
Users can request that SDSF use a console ID of 0 with the i parameter on the / command (i/
command). The i/ command responses are not displayed on the ULOG panel, but are logged
into the system hardcopy log.
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 951
(write-to-log) macro as well as the hardcopy log (console messages, operator commands,
and operator responses for a z/OS system). SYSLOG is maintained by JES in the JES
SPOOL space.
JES3 DLOG centrally records command and message traffic for systems in a JES3
complex in JES3 format. The JES3 DLOG is written to SYSLOG on the global processor.
SYSLOG on the global processor must be active when DLOG is active.
IBM recommends use of OPERLOG on all systems in the sysplex as the only normally active
hardcopy medium. The OPERLOG MDB records contain considerably more information than
either the JES3 DLOG or SYSLOG formats. In addition, with OPERLOG each system writes
its own command and message traffic to the common log, rather than all log activity taking
place on the JES3 global processor, as with DLOG.
You control which messages are included in the hardcopy message set with the
VARY,HARDCPY command. The HARDCPY operand on the VARY command assigns
SYSLOG or OPERLOG as the hardcopy medium. You can assign both SYSLOG and
OPERLOG as the hardcopy medium. To display information about the hardcopy medium,
enter:
DISPLAY CONSOLES,HARDCOPY or D C,HC
Unless you specify otherwise, the system includes all operator and system commands,
responses, and status displays in the hardcopy message set. To request that some
commands and command responses not be included in the hardcopy message set, the
system gives you the following choices on the VARY,HARDCPY command:
NOCMDS - The system does not include operator commands or their responses in the
hardcopy message set.
INCMDS - The system includes all operator commands and their responses, excluding
any status displays, in the hardcopy message set.
STCMDS or CMDS - The system includes all operator and system commands, their
responses, and status displays in the hardcopy message set. As of z/OS V1R8, STCMDS
and CMDS are equivalent.
Use the JES3 *MODIFY,O command to activate or deactivate the JES3 DLOG:
*MODIFY,O,DLOG={ON|OFF}
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 953
FIND (string) (start-col) (end-col) (PREV) (CHARS)
F (*) (NEXT) (WORD)
(X'string') (FIRST) (PREFIX)
(LAST) (SUFFIX)
(ALL)
string is the string of characters to be searched for.
* uses the string entered with the previous FIND command.
X'string' specifies a string of hexadecimal characters.
start-col starts the search in the specified column. If used without
end-col, the string must begin there.
end-col ends the search in the specified column.
PREV searches backward.
NEXT searches forward.
FIRST starts at the beginning of the data.
LAST starts at the end of the data.
ALL starts at the beginning, scrolls to the first occurrence, and indicates
the number of occurrences.
CHARS (or CHAR) indicates a character string. It is the default.
WORD indicates the string is preceded and followed by a non-alphanumeric
character.
PREFIX (or PRE) indicates the string is preceded by a nonalphanumeric
character and followed by an alphanumeric character.
SUFFIX (or SUF) indicates the string is preceded by an alphanumeric
character and followed by a nonalphanumeric character.
Note: X'string', WORD, PREFIX, and SUFFIX are valid only on the Log, and
Output Data Set panels. FIRST, LAST, and ALL are not limited by FINDLIM.
FINDLIM {number|?}
Note: The SDSF panel action bar Options pull-down choice 16 “Operlog limit for filter...“
can be used to limit the amount of OPERLOG data SDSF will search for records that meet
filter criteria.
The first time you access the OPERLOG panel in a session, SDSF positions the data to show
the most recent OPERLOG entries. If you exit the panel and then re-access it, you must scroll
to the bottom to see the most recent entries.
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 955
Display Filter View Print Options Help
----------------------------------------------------------------------------
---
SDSF OPERLOG DATE 04/05/2011 1 WTOR 1 FILTER COLUMNS 02-
81
COMMAND INPUT ===> SCROLL ===>
HALF
---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+--
--8-
D 062 00000090 IRRH204E The
RACF_SENS
E 062 00000090 more potential
errors
N 0000000 SC75 2011095 15:11:00.02 JES3 00000090 IAT6395 00002
REQUEST(
M 0080000 SC74 2011095 15:14:56.16 00000090 IRR812I PROFILE **
(G)
E 063 00000090 TO START
BPXAS
N 0200000 SC74 2011095 15:14:56.18 STC04095 00000090 $HASP100 BPXAS
ON S
N 4000000 SC74 2011095 15:14:56.25 STC04095 00000090 $HASP373 BPXAS
STAR
N 0000000 SC74 2011095 15:14:56.26 STC04095 00000290 BPXP024I BPXAS
INITIAT
S 0041
N 0000000 SC75 2011095 15:21:00.02 JES3 00000090 IAT6395 00002
REQUEST(
NC0000000 SC75 2011095 15:24:18.87 NEWNAME 00000290 *I O DLOG
NR0000000 SC75 2011095 15:24:18.88 JES3 00000090 IAT8617 DLOG
STATUS -
******************************** BOTTOM OF DATA
********************************
Figure 18-153 shows an OPERLOG panel display. The COLS command has been used to
display the formatted line for identifying display columns. The RESET command resets the
results of a previous COLS command. The ACTION OFF command is also in effect; no
WTOR messages are displayed at the bottom of the panel.
The format of the lines on the OPERLOG panel is shown in Figure 18-154 on page 957. The
MVS mapping macro for hardcopy log format is IHAHCLOG in the SYS1.MODGEN library.
Messages are displayed on the OPERLOG panel with the color and highlighting that were
assigned to them when they were issued. You can customize the colors with the SET
SCREEN command.
The / command is used to issue a system command. The syntax is shown in Figure 18-155.
The ACTION command is used to specify which WTORs to display. The syntax is shown in
Figure 18-156.
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 957
The FILTER command is used to filter log records. The format is shown in Figure 18-157 on
page 958.
The FIND command is used to search for a character string. The syntax is shown in
Figure 18-150 on page 954.
The LOCATE command is used to locate a time and date in the log. The syntax is shown in
Figure 18-152 on page 955.
The NEXT and PREV commands control scrolling options. The syntax is shown in
Figure 18-158.
The RSYS command is used to limit WTORs by the system. The format is shown in
Figure 18-159.
RSYS (system-name | ?)
RSYS with no parameters displays only WTORS from the system you are logged on to.
system-name is the MVS system name, up to 8 characters, including * (any string of
characters) or % (any single character).
? displays the current setting on the command line or pop-up.
The PRINT command is used to print data. The format is shown in Figure 18-160 on
page 959.
The SET SCREEN command displays a panel that allows you to set the colors, highlighting
and intensities used on SDSF panels, and control display of the action bar. It is valid only if
SDSF was accessed through ISPF. The values are saved across SDSF sessions.
You can use the FILTER function to define up to 25 filters with boolean operators. The filter
criteria are column, operator and value, and can include pattern matching.
When entering multiple filters, you can specify AND or OR to define the relationship between
filters.
When using SDSF interactively under ISPF, type FILTER ? to display the Filter pop-up, then
type values on the pop-up or select from lists of valid values.
The usage of the FILTER command is explained in Figure 18-157 on page 958. An SDSF
panel’s action bar Filter pop-up choice ‘1. Filter’ guides you to set up a complex filter.
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 959
SYSLOG as hardcopy
The MVS hardcopy log records command and message traffic on the systems. The three
forms of the hardcopy log are:
OPERLOG centrally records command and message traffic for systems in a sysplex in
Message Data Block (MDB) format. OPERLOG is controlled by the MVS VARY
OPERLOG,HARDCPY command.
SYSLOG individually records command and message traffic for each system in MVS
format. SYSLOG is controlled by the MVS VARY SYSLOG,HARDCPY command.
JES3 DLOG centrally records command and message traffic for systems in a JES3
complex in the JES3 format. The JES3 DLOG is written to SYSLOG on the global
processor. The JES3 DLOG is controlled using the *MODIFY O,DLOG=ON|OFF
command. SYSLOG on the global processor must be active when DLOG is active.
Users can access the SYSLOGs of all individual systems in the JES complex as a single
entity. Instead of searching multiple SYSLOG data sets, viewing and searching is performed
on a single, logical SYSLOG data set.
Note: JES3 DLOG activates an extended MCS console to receive messages from the
sysplex systems that are defined to belong to the JES3 complex. The DLOG processing,
on the JES3 global, extracts the messages from the data space, formats them in JES3
DLOG format, and writes them to SYSLOG using a WTL macro service.
The SYSLOG on the global may contain messages from JESPLEX systems that are
IPLed, but do not have an active JES3 primary subsystem.
The first time you access the SYSLOG panel in a session, SDSF positions the data to show
the most recent SYSLOG entries. If you exit the panel and then re-access it, you must scroll
to the bottom to see the most recent entries.
Note: SYSLOG panel data filtering is not available. FIND and LOCATE (with some
limitations) for scrolling are available.
Figure 18-162 on page 961 is an example of the MVS SYSLOG and JES3 DLOG data display
formats of the messages issued for the MVS S DEALLOC command.
Figure 18-162 SYSLOG (LOG S) panel (MVS SYSLOG and JES3 DLOG data on display)
The MVS format of data description of the SYSLOG panel is shown in Figure 18-163.
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+-
---8-
M 0080000 SC75 2011072 11:31:57.60 00000090 IRR812I PROFILE
** (G)
| | | | | | | |
| First 28| | Time | User exit |
| routing | Julian date | flags |
| codes | Console name, Message text,
Record System name jobname, or beginning
with
and Request type multi-line ID message ID
The JES3 DLOG format of data on the SYSLOG panel is shown in Figure 18-164.
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 961
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+-
---8-
SEC 2011072 1133225 SC75= DEALLOC IRR812I PROFILE ** (G) IN THE
STARTE
| | | | | | | |
| | Julian Time | Job name | Message
text
| | date System Message ID
| Console name name |
JES3 Destination Class
Figure 18-164 Description of the JES3 DLOG format of a SYSLOG message
The MVS format of data on the SYSLOG panel is the same as on the OPERLOG panel.
SYSID (system-id)
(*)
(?)
with no parameters indicates the SYSLOG panel displays the SYSLOG for the
all systems in the JESPlex.
system-id is a system name 1-8 characters.
* specifies that the JES3 global system is to be used.
? displays the current SYSID setting on the command line, as well as a list
of the systems defined in the JESPLEX beginning on the message line. The
member the user is logged on to is shown in parentheses.
Figure 18-167 is a sample active panel display invoked with a DA JOB NOSTC command.
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 963
Display Filter View Print Options Search Help
----------------------------------------------------------------------------
---
SDSF DA SC75 (ALL) PAG 0 CPU/L/Z 5/ 1/ 0 LINE 1-8 (13)
COMMAND INPUT ===> SCROLL ===>
HALF
PREFIX=%* DEST=* OWNER=* SYSNAME=*
ACTION=//-Block,=-Repeat,+-Extend,?-JDS,A-Release,C-Cancel,CA-CancelARM,
ACTION=CD-CancelDump,CDA-CancelARMDump,CP-CancelPrint,D-Display,
ACTION=DE-DisplayEstimates,DL-DisplayLong,DSD-DisplayDDDnames,
ACTION=DSH-DisplaySpoolHold,DSP-DisplaySpoolPartition,DX-DisplayExtended,
ACTION=E-Restart,H-Hold,K-SysCancel,KD-SysCancelDump,L-List,LB-ListBDT,
ACTION=LH-ListHold,LT-ListTCP,P-Purge,Q-OutDesc,R-Reset,RQ-ResetQuiesce,
ACTION=S-Browse,SB-ISPFBrowse,SE-ISPFEdit,SJ-JCLEdit,W-Spin,X-Print,
ACTION=XC-PrintClose,XD-PrintDS,XDC-PrintDSClose,XF-PrintFile,
ACTION=XFC-PrintFileClose,XS-PrintSysout,XSC-PrintSysoutClose,Y-SysStop,
ACTION=Z-SysForce
NP JOBNAME SIO CPU% ASID ASIDX EXCP-Cnt CPU-Time SR Status
SysName
VAINI 0.00 0.00 76 004C 2947 2.51 TI SC74
INITS 0.00 0.00 31 001F 2 0.00 DW
EATING 0.00 0.00 61 003D 2 0.00 DW SC75
JUST 0.00 0.00 62 003E 2 0.00 DW SC75
SOME 0.00 0.00 63 003F 2 0.00 DW SC75
CLASSA 0.00 0.00 64 0040 2 0.00 DW SC75
JOBS 0.00 0.00 66 0042 2 0.00 DW SC75
Note: The DA panel shows information about jobs, TSO users, started tasks, and initiators
that are active in the JESPLEX even if some of the systems are not running JES3 as the
primary job entry subsystem.
The title line description of the display active users panel is in Figure 18-168.
Title Description
JOBNAME Job name of the address space
StepName Job step name, or TSO procedure name for TSO users
ProcStep Procedure step name, or terminal name for TSO users
Type Type of address space: job, started task, TSO user, or initiator
JNum JES job number. Not included in the default field list.
Owner User ID of job creator
C JES input class at the time the job was selected for execution
Pos Address space position; swapped in, swapped out, nonswappable, in
transition
DP Address space dispatching priority in hexadecimal
Real Current utilization of real storage in frames
Paging Demand paging rate (only present if the address space was swapped in for
the entire interval)
SIO Address space's EXCP rate in EXCPs per second
CPU% Percent of CPU time used on behalf of this address space during the most
recent interval measured
ASID Address space identifier
ASIDX Address space identifier in hexadecimal
EXCP-Cnt Address space's EXCP count for the current job step. Uses hexadecimal
scaling.
CPU-Time Accumulated CPU time (TCB plus SRB) consumed on behalf of the address
space, for the current job step, in seconds
SR Swap out reason code
JobID JES job ID or work ID
Status PROT (job is protected)
Workload Workload name
SrvClass Service class name
SP Service class period
ResGroup Resource group name
Server Server indicator, indicates if resource goals are being honored
Quiesce Quiesce indicator (address space is quiesced)
SysName System on which the address space is running
SPag Demand paging rate for the system (see note)
SCPU% System CPU utilization for the system that is processing the job (see note)
ECPU-Time Accumulated CPU time consumed within the address space, for the current job
step, in seconds
ECPU% CPU usage consumed within the address space
CPUCrit Current address space CPU protection
StorCrit Current address space storage protection
RptClass Report class
MemLimit Memory limit
Tran-Act Elapsed time the transaction has been active
Tran-Res Elapsed time the transaction was swapped in
Spin Indicator of whether jobs in the job class can be spun (
Seclabel Security label
GCP-Time Accumulated general processor service time, in seconds
zAAP-Time Accumulated zAAP service time, in seconds
zACP-Time Accumulated general processor service time that was eligible for a zAAP, in
seconds
GCP-Use% Percent of the total general processor time used by the address space in
the most recent interval (not normalized
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 965
Title Description
zAAP-Use% Percent of the total zAAP time used by the address space in the most recent
interval (not normalized)
SzAAP% zAAP view of CPU use for the system, in the most recent interval. The same
for all rows for a system.
SzIIP% zIIP view of CPU use for the system, in the most recent interval. The same
for all rows for a system.
Promoted Promoted due to a chronic resource contention
zAAP-NTime Normalized zAAP service time, in seconds
zIIP-Time Accumulated zIIP service time, in seconds
zICP-Time Accumulated general processor service time that was eligible for a zIIP, in
seconds
zIIP-NTime Normalized zIIP service time, in seconds
zIIP-Use% Percent of the total zIIP time used by the address space in the most
recent interval (not normalized)
SLCPU% Percentage of time the LPAR is busy for the system, in the most recent
interval. The value for SLCPU% is the same for all rows for a system.
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 967
SR ALL | {ACTIONS|A} | CEM | EM | IM | {MOUNTS|M} | {REPLIES|R|RM})
ALL displays all reply and action messages. This is the default.
ACTIONS or A displays action messages.
CEM displays critical eventual action messages.
EM displays eventual action messages.
IM displays immediate action messages.
MOUNTS or M displays DASD and tape mount messages. SDSF considers a message
to be a mount if it has tape or DASD pool routing codes.
REPLIES or R or RM displays reply messages.
If the MVS action message retention facility (AMRF) is not active, the SR panel shows only
reply messages. The AMRF parameter in the CONSOLxx PARMLIB member INIT statement
specifies whether AMRF is to be active.
You change the status of AMRF with the CONTROL M,AMRF={Y|N} command. To learn the
status of AMRF, issue the CONTROL M,REF command.
The system requests panel includes some or all of the following fields listed in Figure 18-177
on page 970.
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 969
Title Description
REPLYID Reply ID of the message
SysName Originating system name
JobName Name of the issuing job
Message-Text Message ID and text
JobID JES job ID of the issuing job (JES2) or Proc name or job name (JES3)
Date Date when the message was logged
Time Time when the message was logged
Console Target console
RouteCd First 28 routing codes, in hexadecimal
Desc Descriptor codes, in hexadecimal
Type Message type
Queue Queue the message is on (CEM - critical eventual action, EM - eventual
action, IM - immediate, RM - reply)
AutoReply Automatic reply indicator
AutoRDelay Message delay time until the automatic reply is done, in seconds
AutoReplyTime Date and time when auto reply will be done
AutoReplyText Automatic reply text
A scheduling environment is a list of abstract resource names along with their required states.
If an MVS image satisfies all of the requirements in the scheduling environment associated
with a given unit of work, then that unit of work can be assigned to that MVS image. If any of
the requirements are not satisfied, then that unit of work cannot be assigned to that MVS
image.
A scheduling environment is dynamic. It identifies the dependency that a job has to run on
particular systems without specifically naming the systems. Since a scheduling environment
can change state, the systems where a job is eligible to run can change without modification
to its JCL.
The JES3 //*MAIN JECL SYSTEM parameter is specific and static, since it lists system
names. You can use scheduling environments and the SYSTEM parameter together.
Figure 18-179 displays a scheduling environment panel. The SE panel is invoked with the SE
primary command (Figure 18-180). You must be authorized to use the command.
The SE panel displays the same data that is returned by the D WLM,SCHENV=*,SYSTEMS
command IWM036I response message.
SE {MAS|ALL}
ALL displays scheduling environments for all systems in the sysplex. This is
the default for JES3. MAS under JES3 is treated as ALL.
Title Description
SCHEDULING-ENV Scheduling environment name
Description Description of the scheduling environment
Systems Systems with the scheduling environment available
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 971
NP action MVS command / SDSF description
DD-Display D WLM,SCHENV=JES2,SYSTEMS - Display scheduling environments in the log.
This issues the MVS D command.
R-Resource Display resources for a scheduling environment. F WLM,RESOURCE= command
used to change resource state.
ST-Status Display the ST panel for all jobs requiring the scheduling environment.
Resource, when used as part of a scheduling environment, is an abstract element that can
represent an actual physical entity (such as a peripheral device), or an intangible quality (such
as a certain time of day). A resource is listed in a scheduling environment along with a
required state of ON or OFF. If the corresponding resource state on a given system matches
the required state, then the requirement is satisfied for that resource.
Figure 18-183 shows an SDSF WLM resources panel display. The resources panel is invoked
with the RES command. You must be authorized to use the command.
RES {MAS|ALL}
ALL displays WLM resources for all systems in the sysplex. This is the
default for JES3. MAS under JES3 is treated as ALL.
An enclave is a transaction that can span multiple dispatchable units (SRBs and tasks) in one
or more address spaces and is reported on and managed as a unit. A multisystem enclave
can run in multiple address spaces spanning multiple systems within a sysplex. With all units
of work of a job running in the same enclave, WLM can manage all of the work to a single
performance goal.
SDSF displays multisystem enclaves on multiple rows. When you act against any of these
rows, SDSF issues the WLM service against the original enclave.
Figure 18-188 on page 974 is an SDSF enclave display. It is invoked with the ENC command
(Figure 18-187). You must be authorized to use this command.
ENC {ACTIVE|ALL}
ACTIVE displays only active enclaves
ALL displays all enclaves. This is the default.
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 973
Display Filter View Print Options Search Help
----------------------------------------------------------------------------
---
SDSF ENCLAVE DISPLAY (ALL) ALL LINE 1-8 (8)
COMMAND INPUT ===> SCROLL ===>
HALF
PREFIX=%* DEST=* OWNER=* SYSNAME=*
ACTION=//-Block,=-Repeat,+-Extend,I-Info,M-Match,R-Reset,RQ-ResetQuiesce
NP NAME SSType Status SrvClass Per PGN RptClass ResGroup
CPU-
2400000002 STC INACTIVE SYSSTC 1
2000000001 STC INACTIVE SYSTEM 1
2800000003 STC INACTIVE SYSSTC 1
2C00000004 TCP INACTIVE SYSOTHER 1
2400000002 STC INACTIVE SYSSTC 1
2000000001 STC INACTIVE SYSTEM 1
2800000003 STC INACTIVE SYSSTC 1
2C00000004 TCP INACTIVE SYSOTHER 1
Figure 18-188 Enclave panel
The Enclave panel includes some or all of the following fields explained in Figure 18-189.
(The order and titles may be different, depending upon installation and user options.)
Title Description
NAME Enclave token
SSType Subsystem type (for example, DB2, MQ)
Status Status of the enclave
SrvClass Service class
Per Period number
PGN Performance group
RptClass Report class
ResGroup Resource group
CPU-Time Total CPU time
OwnerSys Enclave owner system
OwnerJob Enclave owner jobname
OwnerAS Enclave owner ASID
OwnerASX Enclave owner ASID in hexadecimal
Scope Scope of the enclave, either LOCAL (single-system) or MULTISYS (the
enclave has an export token and so is multisystem-capable)
Type Enclave type: IND (independent) or DEP (dependent)
Original For an enclave that has been exported, YES if this is the original
enclave
Quiesce Indicates if the enclave is in a quiesce delay, which occurs if the
address space has been reset with the MVS RESET,QUIESCE command
Workload Workload name
SysName System that reported the data
SysLevel Version and release
Subsys Subsystem name
zAAP-Time Accumulated zAAP time, in seconds
zACP-Time Accumulated zAAP on CP time, in seconds
zIIP-Time Accumulated zIIP time, in seconds
zICP-Time Accumulated zIIP on CP time, in seconds
Promoted Promoted due to a chronic resource contention
zAAP-NTime Normalized zAAP time, in seconds
zIIP-NTime Normalized zIIP time, in seconds
Note: If you reset a dependent enclave, the owner address space is reset.
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 975
Display Filter View Print Options Help
-------------------------------------------------------------------------------
SDSF ENCLAVE DISPLAY (ALL) ALL LINE 1-8 (8)
COMMAND INPUT ===> SCROLL ===> HALF
PR EssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssN
Enclave 2C00000004 on System SC75
AC e Enclave 2C00000004 on System SC75 e
NP e e e.z
Subsystem type
e Subsystem type TCP TCP Plan
Plan name
name e 0
Subsystem name
e Subsystem name TCPIP
TCPIP Package
Package name
name e 0
Priority
e Priority Connection
Connection type
type e 0
Userid
e Userid Collection
Collection name
name e 0
Transaction name
e Transaction name TCPENC01
TCPENC01 Correlation
Correlation e 0
Transaction class
e Transaction class Procedure
Procedure name
name e 0
e Netid
Netid Function
Functionname
name TCPENC01 e 0
I e TCPENC01
Logical unit name Performance group e 0
e Subsys
Logicalcollection
unit name Scheduling env group
Performance e
e Process name
Subsys collection Scheduling env e
e Reset
Process name NO e
e Reset NO e
e e
e F1=Help F12=Cancel e
F1=Help F12=Cancel
I-Info action data on the additional information pop-up about an enclave is shown in
Figure 18-192 on page 976. WLM uses this information to classify the enclave.
A UNIX process is defined as being an instance of a program running on a system and the
resources that it uses. A process can have one or more threads; a thread is a single flow of
control within a process. Application programmers create multiple threads to structure an
application in independent sections that can run in parallel for more efficient use of system
resources.
PS {ALL | ACTIVE}
ALL displays all z/OS UNIX System Services processes. This is the default.
ACTIVE displays only active processes.
Figure 18-194 on page 978 shows the processes panel invoked by the PS command.
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 977
Display Filter View Print Options Search Help
----------------------------------------------------------------------------
---
SDSF PROCESS DISPLAY SC75 ALL LINE 1-17 (28)
COMMAND INPUT ===> SCROLL ===>
HALF
PREFIX=%* DEST=* OWNER=* SYSNAME=SC75
ACTION=//-Block,=-Repeat,+-Extend,C-Cancel,D-Display,K-Kill,T-Terminate
NP JOBNAME JobID Status Owner State
CPU-Time
BPXOINIT RUNNING OMVSKERN MR
7.66
RESOLVER RUNNING IBMUSER 1R
0.63
RESOLVER RUNNING IBMUSER 1R
0.63
JES3NS RUNNING JES3 1R
15.65
HZSPROC JOB20946 RUNNING IBMUSER 1R
63.07
TCPIP JOB20969 FILE SYS KERNEL WAIT TCPIP 1F
417.69
TN3270 JOB20974 RUNNING IBMUSER 1R
189.31
TN3270 JOB20974 RUNNING IBMUSER 1R
189.31
FTPOE1 JOB20966 SWAPPED,FILE SYS KERNEL WAIT TCPIP 1FI
0.01
CEA FILE SYS KERNEL WAIT CEA 1F
0.10
CBDQDISP JOB20972 SWAPPED,FILE SYS KERNEL WAIT TCPIP 1FI
0.01
PFA JOB20978 SWAPPED,RUNNING PFA 1RI
25.00
DB9YDIST JOB20982 FILE SYS KERNEL WAIT IBMUSER MF
0.79
In the UNIX operating environment, the innermost level of UNIX is the kernel. This is the
actual UNIX operating system, a program that always resides in memory. Sections of the
code in this program are executed on behalf of users to do needed tasks, like access files or
terminals. The OMVS address space is not considered a process.
BPXOINIT is the started procedure that runs the z/OS UNIX initialization process. The
BPXOINIT address space has two categories of functions:
1. It behaves as PID(1) of a typical UNIX system. It is the parent of /etc/rc, and it inherits
orphaned children so that their processes get cleaned up using normal code in the kernel.
BPXOINIT is also the parent of MVS address spaces that are dubbed and not created by
fork or spawn. Therefore, TSO/E commands and batch jobs have a parent PID of 1.
2. Certain functions that the kernel performs need to be able to make normal kernel calls.
The BPXOINIT address space is used for these activities.
Value Description
1 State is for a single thread process
A Message queue receive wait
B Message queue send wait
C Communication system kernel wait
D Semaphore operation wait
E Quiesce frozen
F File system kernel wait
G MVS pause wait
H Process state is for multiple threads and pthread was used to create one of the
threads. Process state is obtained from the initial pthread created task (IPT).
Title Description
JOBNAME Job name
JobID JES job ID
Status Status of the process
Owner Userid of the owner
State State of the process or the most recently created thread
CPU-Time Compute time in hundredths of seconds
PID Process ID
PPID Parent process ID
ASID Address space ID
ASIDX Address space ID in hexadecimal
LatchWaitPID PID on which this process is waiting
Command Command that created the process
ServerName Server name
Type Server type
ActFiles Number of active files
MaxFiles Maximum number of files
St-Time Time the process was started
St-Date Date the process was started
SysLevel Level of z/OS on the system
SysName System name where the process is executing
SecLabel Security label
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 979
18.35 Health Checker (CK) panel
The SDSF Health Checker (CK) panel displays information from IBM Health Checker for
z/OS. The panel shows the active checks. Checks that are currently running are highlighted.
IBM Health Checker for z/OS is a z/OS component that is used to gather information about
their system environment and system parameters to help identify potential configuration
problems before they impact availability or cause outages. Individual products, z/OS
components, or ISV software can provide checks that take advantage of the IBM Health
Checker for z/OS framework.
Figure 18-199 on page 981 is an example of the Health Checker panel displayed. The CK
command invokes the Health Checker panel (Figure 18-198 on page 980). You must be
authorized to use this command.
CK (category|E|EH|EM|EL|EN|D|ALL)
with no parameters displays active checks.
category shows only checks for that category. The value can include * (any
string of characters) or % (any single character).
E displays all exception checks, with these variations:
EH - exception-high
EM - exception-medium
EL - exception-low
EN - exception-none
D displays deleted checks.
ALL displays deleted as well as active checks.
Title Description
NAME Check name
CheckOwner Check owner
State Check state
Status Check status
Result Result from the last invocation of the check
Diag1 Diagnostic data from the check (first word)
Diag2 Diagnostic data from the check (second word)
DiagFrom Source for the diagnostic data: ABEND, HCHECKER or CHECKRTN
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 981
Title Description
Global Indicator if this is a global check
GlobalSys System on which the global check is running
ExcCount Number of exceptions detected in the last iteration of the check
RunCount Number of times the check has been invoked
Fail Number of times the check failed
Severity Severity level of the check
SevCode Numeric severity level of the check
WTOType WTO type or descriptor code
ModifiedBy How the check was modified
PolicyStatus Policy error status
WTONum Number of WTOs issued by the check
NumCat Number of categories in which the check is defined
Category Category name
Category2-16 Category names two through sixteen
ExitName Exit module name that added the check
ModName Check module name at which the check runs
MsgName Message load module name
UserDate Current date of the check (YYYYMMDD)
DefDate Default date of the check (YYYYMMDD)
Debug Debug mode indicator
Start-Date-Time Date and time the check last started
Interval Interval at which the check runs
NextSch-Date-Time Date and time the check is next scheduled to run (YYYY.DDDD
HH:MM:SS)
NextSch-Int Time remaining until the check runs, in hhhhh:mm:ss
Log-Date-Time Date and time of the last successful write to System Logger
Deleted-Date-Time Date and time the check was deleted
ProcName TaskID Procedure name and started task ID for IBM Health Checker for
z/OS
Reason Description of the reason for the check
TaskID Health Checker started task ID
UpdateReason Description of updates to the check
ParmLen Length of the check parameters
Parameters Check parameters. Unprintable characters are translated to
periods (.).
SysLevel Level of the operating system
SysName System name
EInterval Interval at which the check will run when it has raised an
exception
ExecName Name of the exec to run
Locale Where the check is running
Origin Origin of the check
Verbose Verbose mode for the check
RexxIn Rexx input data set name
RexxOut Rexx output data set name
LogStream Name of the logstream used to record this check
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 983
Health Check history (CHK) panel for CK panel L NP action
The CKH panel, Figure 18-204, shows information about instances of a check selected from
the Health Checker panel with the L-ListHistory NP action.
The Health Checker history panel includes fields listed in Figure 18-205. Browse and print NP
field action characters are the only ones available on the Health Checker history panel.
Title Description
Count Count of this instance of the check
CheckOwner Check owner
Status Check status
Result Result code from the check
Diag1 Diagnostic data from check, word 1
Diag2 Diagnostic data from check, word 2
Start-Date-Time Date and time the check started (YYYY.DDD HH:MM:SS)
End-Date-Time Date and time the check ended (YYYY.DDD HH:MM:SS)
Sysplex Sysplex name for the sysplex on which the check ran
SysName System name for the system on which the check ran
Name Check name
The Restructured Extended Executor (REXX) language is a procedural language that allows
you to write programs and algorithms in a clear and structural way. It is an interpreted and
compiled language, and you do not have to compile a REXX command list before executing it.
SDSF with REXX merges the power of SDSF with the simplicity of REXX. REXX with SDSF
integrates with your REXX executable by executing commands and returning the results in
REXX variables. To understand the REXX with SDSF API you need to understand the
commands and what they do and you need to know which variables are set and what these
variables include. For a full description of REXX with SDSF, refer to the chapter “Using SDSF
with the REXX programming language” in z/OS SDSF Operation and Customization,
SA22-7670. You can also refer to the interactive tutorial panels that display when you press
PF1when using SDSF or use the REXXHELP command from any SDSF panel.
You must be authorized to use SDSF from REXX, and to the SDSF functions that you invoke
from REXX. Depending on how your SDSF security is implemented, you may be placed in a
different SDSF user group when you use SDSF from REXX than when you use SDSF
interactively. In some cases, invoking an SDSF function from REXX when you are not
authorized to the function will cause the exec to fail and the invocation of SDSF to end.
REXXHELP command
To display the online help for using REXX with SDSF, type REXXHELP on any command line
in SDSF when using SDSF under ISPF. Figure 18-206 and Figure 18-207 on page 986
display the REXXHELP pop-ups.
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 985
ISFG90 Using REXX with SDSF
More: +
Tab to a topic and press Enter, or press Enter to view the topics in
order.
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 987
Special variables for slash (/) commands set options such as the delay limit and the
console name.
ISFCMDLIM limits the number of commands that may be issued through ISFSLASH.
ISFCONS specifies the console name for the user session log (ULOG).
You can request all of the column values for a specific row using the ISFGET host
environment command, as follows:
Address SDSF " ISFGET command TOKEN ('" token "') ( options ) “
command is the command for the panel. It must be the same SDSF command, including
any parameters, that was previously entered with the ISFEXEC command.
token identifies the row to be acted upon. The token was previously set by ISFEXEC or
ISFACT for the panel accessed with command.
To browse the output of jobs and browse check output on the CK or CKH panel, you use a
combination of action characters, with ISFACT, and special REXXvariables.
To browse job output from the DA, H, I, JDS, O and ST panels, allocate the output data
sets with special REXX-only action characters, then browse the data sets using EXECIO
or a similar utility. The action characters are:
– SA - Allocate all data sets associated with the item. On the DA, I or ST panels, this will
be all data sets in the job. On the O and H panels, it will be all data setsin the output
group. On the JDS panel, it will be a single data set.
– SJA - Allocate the JCL data set.
To browse check output from the CK or CKH panel, use the S action character with the
special variable ISFLINE.
SDSF defines several REXX variables to supplement host environment commands and
provide feedback for requests. These special variables all begin with the prefix ISF. Any
variable starting with that prefix is considered reserved for use by SDSF. Do not name
variables in your REXX execs with the prefix ISF.
The names of special variables are not affected by the PREFIX option used with the
ISFEXEC or ISFACT commands.
Some special variables correspond to SDSF commands and result in a command being
issued. The authorization for those special variables is the same as for the associated
command. In some cases, using a special variable when you are not authorized to the
associated command will cause the exec to fail and the invocation of SDSF to end.
Special REXX variables provide function equivalent to many of the SDSF commands. The
special variables use the format:
variable-name='parameters'
The parameters for the variable are the same as for the associated command, with the
exception that the ? parameter is not supported. The values of special variables are not
saved across sessions (or invocations) in the REXX environment.
The variables are grouped by command type:
– SDSF command
– Filter commands
– Options commands
– Trace commands
To drop SDSF special variables (that is, unassign the variables and restore them to their
original undefined state) use the ISFRESET() function. The option to use with ISFRESET
corresponds to the variable type (Input, InOut, or Output).
Chapter 18. System Display and Search Facility (SDSF) in the JES3 environment 989
990 ABCs of z/OS System Programming Volume 13
A
This appendix provides listings of the sample ISFPARMS definitions in the ISF.SISFJCL data
set ISFPRM00 member.
/*********************************************************************/
/* */
/* Sample SDSF Initialization Statements */
/* */
/* */
/* Proprietary Statement = */
/* */
/* Licensed Materials - Property of IBM */
/* 5694-A01 */
/* Copyright IBM Corp. 1981, 2011. */
/* */
/* Status = HQX7780 */
/* */
/* EXTERNAL CLASSIFICATION = OTHER */
/* END OF EXTERNAL CLASSIFICATION: */
/* */
/* */
/* This is a sample SDSF parameter definition. It is equivalent */
/* to the macros supplied in ISFPARMS. */
/* */
/* To use this member, copy it to SYS1.PARMLIB or a dataset */
/* concatenated to it and edit the member as appropriate. */
/* Alternatively, you can modify the SDSF server JCL to point */
/* to a data set that contains the member. */
/* */
/* Note that, even with conditional processing, if you want */
/* to use a common member with different levels of SDSF, you */
/* must ensure that the member does not include support (such */
/* as new keywords or values) that was introduced in a */
/* higher level of SDSF. */
/* */
/* The SDSF server must be started for the member to be used. */
/***************************************************/
/* WHEN Statement - Provide Conditional Processing */
/***************************************************/
/*******************************************************************/
/* Note: The following statements are commented out to show the */
/* syntax. The statements are only needed when the sysplex */
/* support is to be used. */
/* */
/* Refer to the Operation and Customization Guide for the */
/* complete set of options that may be specified. */
/*******************************************************************/
/*********************************************************/
/* SERVERGROUP, SERVER, and COMM - Define Communications */
/*********************************************************/
/********************************************************************/
/* Each SERVER statement defines an SDSF server in the sysplex. */
/********************************/
/* CONNECT - Connection Options */
/********************************/
CONNECT DEFAULT(COND),/* Default server if not already assigned */
/* DEFAULT(NO) to not assign server as default */
/* DEFAULT(YES) to unconditionally assign */
/* server as default */
XCFSRVNM(SAME) /* Use server name as XCF appl name */
/*******************************************/
/* OPTIONS Statement - Global SDSF Options */
/*******************************************/
/*****************************/
/* GROUP ISFOPER - Operators */
/*****************************/
GROUP NAME(ISFOPER), /* Group name */
TSOAUTH(JCL,OPER), /* User must have JCL and OPER */
ACTION(ALL), /* All route codes displayed */
ACTIONBAR(YES), /* Display action bar on panels */
APPC(ON), /* Include APPC sysout */
AUPDT(2), /* Minimum auto update interval */
AUTH(ALLOPER), /* All operator authorized functions */
BROWSE(NONE), /* Browse default action character */
CMDAUTH(ALL), /* Commands allowed for all jobs */
CMDLEV(7), /* Authorized command level */
CONFIRM(ON), /* Enable cancel confirmation */
/*********************************/
/* GROUP ISFUSER - General Users */
/*********************************/
GROUP NAME(ISFUSER), /* Group name */
TSOAUTH(JCL), /* User must have JCL */
ACTION(11,12,USER), /* Default route codes in log */
ACTIONBAR(YES), /* Display action bar on panels */
APPC(ON), /* Include APPC sysout */
AUPDT(10), /* Default auto update interval */
AUTH(ALLUSER), /* All user authorized functions */
BROWSE(NONE), /* Browse default action character */
CMDAUTH(USERID,NOTIFY), /* Command authority */
CMDLEV(2), /* Command level */
CONFIRM(ON), /* Enable cancel confirmation */
CPUFMT(LONG), /* Long format CPU utilization on DA */
CTITLE(ASIS), /* Allow mixed case column titles */
/*CUSTOM(USERPROP),*/ /* Uncomment for custom properties */
CURSOR(ON), /* Leave cursor on last row processed */
DADFLT(IN,OUT,TRANS,STC,TSU,JOB), /* Default rows on DA */
DATE(MMDDYYYY), /* Default date format */
DATESEP('/'), /* Default datesep format */
DISPLAY(OFF), /* Do not display current values */
DSPAUTH(USERID,NOTIFY), /* Browse authority */
EMCSAUTH(MASTER), /* Activate EMCS cons with master auth */
EMCSREQ(NO), /* EMCS console not required */
ILOGCOL(1), /* Initial display column in log */
LANG(ENGLISH), /* Default language */
LOG(OPERACT), /* Default log option */
OWNER(USERID), /* Default owner */
PREFIX(USERID), /* Default prefix */
UPCTAB(TRTAB2), /* Upper case translate table name */
VALTAB(TRTAB), /* Valid character translate table */
/********************/
/* Sample NTBL list */
/********************/
NTBL NAME(SLIST)
NTBLENT STRING($S),OFFSET(1)
NTBLENT STRING(P),OFFSET(7)
NTBLENT STRING(PAY),OFFSET(3)
/********************************/
/* Define default SDSF Codepage */
/********************************/
TRTAB CODPAG(SDSF) VALTAB(TRTAB) UPCTAB(TRTAB2)
/**********************************************/
/* Sample alternate field list for DA display */
/**********************************************/
FLD NAME(DAFLD2) TYPE(DA) /* Name is referenced by GROUP statement */
FLDENT COLUMN(STEPN),TITLE('StepName'),WIDTH(D)
FLDENT COLUMN(PROCS),TITLE('ProcStep'),WIDTH(D)
FLDENT COLUMN(JOBID),TITLE('JobID'),WIDTH(D)
FLDENT COLUMN(OWNERID),TITLE('Owner'),WIDTH(D)
FLDENT COLUMN(JCLASS),TITLE('C'),WIDTH(D)
FLDENT COLUMN(ASID),TITLE('ASID'),WIDTH(D)
FLDENT COLUMN(ASIDX),TITLE('ASIDX'),WIDTH(D)
FLDENT COLUMN(EXCP),TITLE(' EXCP-Cnt'),WIDTH(D)
FLDENT COLUMN(CPU),TITLE(' CPU-Time'),WIDTH(D)
FLDENT COLUMN(REAL),TITLE('Real'),WIDTH(D)
FLDENT COLUMN(PAGING),TITLE('Paging'),WIDTH(D)
FLDENT COLUMN(EXCPRT),TITLE(' SIO'),WIDTH(D)
FLDENT COLUMN(CPUPR),TITLE(' CPU%'),WIDTH(D)
FLDENT COLUMN(DP),TITLE('DP'),WIDTH(D)
FLDENT COLUMN(POS),TITLE('Pos'),WIDTH(D)
FLDENT COLUMN(SWAPR),TITLE('SR'),WIDTH(D)
FLDENT COLUMN(PGN),TITLE('PGN'),WIDTH(D)
FLDENT COLUMN(DOMAIN),TITLE('DmN'),WIDTH(D)
FLDENT COLUMN(STATUS),TITLE('Status'),WIDTH(D)
FLDENT COLUMN(WORKLOAD),TITLE('Workload'),WIDTH(D)
FLDENT COLUMN(SRVCLASS),TITLE('SrvClass'),WIDTH(D)
FLDENT COLUMN(PERIOD),TITLE('SP'),WIDTH(D)
FLDENT COLUMN(RESGROUP),TITLE('ResGroup'),WIDTH(D)
FLDENT COLUMN(SERVER),TITLE('Server'),WIDTH(D)
FLDENT COLUMN(QUIESCE),TITLE('Quiesce'),WIDTH(D)
FLDENT COLUMN(SYSNAME),TITLE('SysName'),WIDTH(D)
FLDENT COLUMN(SPAGING),TITLE('SPag'),WIDTH(D)
FLDENT COLUMN(SCPU),TITLE('SCPU%'),WIDTH(D)
FLDENT COLUMN(ECPU),TITLE(' ECPU-Time'),WIDTH(D)
FLDENT COLUMN(ECPUPR),TITLE(' ECPU%'),WIDTH(D)
FLDENT COLUMN(CPUCRIT),TITLE('CPUCrit'),WIDTH(D)
FLDENT COLUMN(STORCRIT),TITLE('StorCrit'),WIDTH(D)
/*********************/
/* Custom Properties */
/*********************/
This appendix contains sample SDSF REXX EXECs for JES3 SDSF. These EXECs can be
downloaded from the IBM Redbooks website.
Example B-1 SDSF REXX - Show jobs in the JES3 MDS queue
/* Show some SDSF REXX basic features - List JES3 MDS alloc queue */
/* for the user who invokes this REXX exec */
mdsq = "MDS Q empty" /* Nothing in MDS queue */
zrc=isfcalls("ON") /* Add the SDSF host command environment*/
isfprefix="*" /* Set filtering PREFIX */
owner=SYSVAR("sysuid") /* Get userid for filtering OWNER */
isfowner=owner /* Set userid for filtering OWNER */
zcn="SD"owner /* Get ULOG console name */
isfcons=strip(substr(zcn,1,8),"T"," ") /* Set ULOG console name */
Address SDSF "ISFEXEC ST" /* Access ST panel with ISFEXEC command */
do i=1 to JNAME.0 /* Loop for all rows returned */
if PhaseName.i="AWAIT RES ALLOC" then /* Job in JES3 MDS queue? */
do /* Yes - Query why? - Ask JES3 */
isfdelay="5" /* Wait for JES3 response */
Address SDSF "ISFACT ST TOKEN('"TOKEN.i"') PARM(NP DMA)"
/* Issue DMA action with ISFACT cmd */
do j=2 to isfulog.0 /* JES3 response in ULOG for DMA action */
Say substr(isfulog.j,41) /* Copy what JES3 says */
mdsq = ""
end
end
end
if mdsq <> "" then say mdsq
zrc=isfcalls("OFF") /* Delete SDSF command environment */
The highlights in the REXX exec are examples of SDSF REXX panel access commands,
action character commands, and some special REXX variables that provide function
equivalent to other SDSF commands.
SDSF REXX - Display JES3 DJC nets and the DJC net status
Example B-4 SDSF REXX - Display JES3 DJC nets and the DJC net status
/* Rexx exec for JES3 DJC net displays using SDSF services */
/* e&oe - minimal error checking - SDSF REXX sample only */
/* Function: */
/* Checks for JES3 environment - If none, EXIT */
/* Re-invoke this REXX with ISPF APPLID "USRT" (as required) */
/* Check z/OS release level => "01.13.00" required - If not, EXIT */
/* Set up an ISPF table for JES3 *I N command response */
/* Issue *I N command using SDSF ISFSLASH */
/* - Read *I N command response (IAT8578 messages) from SDSF ULOG */
/* - Add IAT8578 message data into ISPF table */
/* - ISPF display the IAT8578 message table (until END requested) */
/* For valid table selections (B, D, and S show DJC data) */
/* - Issue *X DISPDJC command using SDSF ISFSLASH */
/* (*X DISPDJC command spins the DJC net data to JES3 job zero) */
/* - Read, ISFLOG, the OPERLOG, locate IAT6306 message for the */
/* DISPDJC job and parse out the DISPDJC's job number */
/* - Access using ISFEXEC J0 spool data set list and find the */
Tip: The terminal monitor program (TMP) provides an interface between the user,
command processors, and the TSO/E control program. It obtains commands, gives control
to command processors, and monitors their execution.
Example B-9 SDSF in batch - BATSD REXX and BADSDR SDSF REXX sample output
MDSWAIT3 JOB14444 VAINI EXECUTION MDS ERROR 2009.117 12:08:49
NOUNITS JOB14506 VAINI EXECUTION MDS ERROR 2009.120 13:23:19
BECKER1 JOB04066 BECKER SETUP AWAIT RES ALLOC 2006.130 11:29:11
MDSWAIT JOB14437 VAINI SETUP AWAIT RES ALLOC 2009.117 11:22:00
MDSWAIT0 JOB14440 VAINI SETUP AWAIT RES ALLOC 2009.117 11:52:08
MDSWAIT1 JOB14441 VAINI SETUP AWAIT RES ALLOC 2009.117 11:52:14
MDSWAIT2 JOB14442 VAINI SETUP AWAIT RES ALLOC 2009.117 11:52:22
NOVOLS JOB14503 VAINI SETUP UNAVAIL VOL 2009.120 13:06:42
The publications listed in this section are considered particularly suitable for a more detailed
discussion of the topics covered in this redbook.
IBM Redbooks
For information on ordering these publications, see “How to get IBM Redbooks” on
page 1012. Note that some of the documents referenced here may be available in softcopy
only.
ABCs of z/OS System Programming Volume 9, SG24-6989-05
ABCs of z/OS System Programming Volume 10, SG24-6990-03
ABCs of z/OS System Programming Volume 6, SG24-6986-00
ABCs of z/OS System Programming Volume 5, SG24-6985-02
ABCs of z/OS System Programming Volume 3, SG24-6983-03
ABCs of z/OS System Programming Volume 2, SG24-6982-02
ABCs of z/OS System Programming Volume 1, SG24-6981-02
ABCs of z/OS System Programming Volume 11, SG24-6327-01
ABCs of z/OS System Programming Volume 8, SG24-6988-00
ABCs of z/OS System Programming Volume 7, SG24-6987-01
ABCs of z/OS System Programming Volume 12, SG24-7621-00
ABCs of z/OS System Programming Volume 4, SG24-6984-00
Other publications
These publications are also relevant as further information sources:
z/OS MVS Planning: Operations, SA22-7601
z/OS MVS System Codes, SA22-7626
z/OS MVS JCL Reference, SA22-7597
Network Job Entry Formats and Protocols, SA22-7539
z/OS SDSF Operation and Customization, SA22-7670
z/OS JES3 Initialization and Tuning Reference, SA22-7550
JES3 Initialization and Tuning Guide, SA22-7549
z/OS JES3 Customization, SA22-7542
z/OS JES3 Diagnosis, GA22-7547
z/OS JES3 Diagnosis Reference, GA22-7548
Online resources
These Web sites are also relevant as further information sources:
http://www.ibm.com/servers/eserver/zseries/zos/bkserv/
JES3 internals and A major goal of operating systems is to process jobs while making the best
use of system resources. Thus, one way of viewing operating systems is as INTERNATIONAL
externals
resource managers. Before job processing, operating systems reserve input TECHNICAL
and output resources for jobs. During job processing, operating systems SUPPORT
JES3 initialization manage resources such as processors and storage. After job processing, ORGANIZATION
statements, JES3 operating systems free all resources used by the completed jobs, making
SDSF the resources available to other jobs. This process is called resource
management.
JES3 operator There is more to the processing of jobs than the managing of resources
commands needed by the jobs. At any instant, a number of jobs can be in various BUILDING TECHNICAL
stages of preparation, processing, and post-processing activity. To use INFORMATION BASED ON
resources efficiently, operating systems divide jobs into parts. They PRACTICAL EXPERIENCE
distribute the parts of jobs to queues to wait for needed resources. Keeping
track of where things are and routing work from queue to queue is called IBM Redbooks are developed
workflow management, and is a major function of any operating system. by the IBM International
Technical Support
JES3 considers job priorities, device and processor alternatives, and Organization. Experts from
installation-specified preferences in preparing jobs for processing job IBM, Customers and Partners
output. This IBM Redbooks publication describes a JES3 environment that from around the world create
includes the following: timely technical information
based on realistic scenarios.
Single-system image Specific recommendations
Workload balancing are provided to help you
Availability implement IT solutions more
Control flexibility effectively in your
Physical planning flexibility. environment.
This book will help you install, tailor and configure a JES3 system.
SG24-7717-01 ISBN0738436259