-
Notifications
You must be signed in to change notification settings - Fork 51
/
Copy pathConfiguringRJE.txt
879 lines (678 loc) · 32.5 KB
/
ConfiguringRJE.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
Not clear who the author of this is, but it's not me (moshix)
Configuring RJE on Vintage IBM Systems
--------------------------------------
First Edition
This is a compendium of all the knowledge I've gained and can find about how
to configure and run Remote Job Entry terminals on the vintage IBM operating
systems DOS, DOS/VS, OS/360, MVS, and VM/370. I expect this body of
knowledge of grow and there will be more editions of this document. If
you are interested in this subject, you should get the latest version you
can find.
Before we begin, I should probably talk a little bit about what RJE is and
what it means on these old systems. Veterans can skip down to the operating
system that interests them, or to "Configuring Hercules" below.
RJE obviously stands for Remote Job Entry. It's simply a way to connect
a card reader and printer to an IBM mainframe over a communications link
so as to be able to send cards over the line and receive printouts in
return. Optionally, most RJE stations can also receive punched cards
from mainframe jobs.
There are very, very few big-iron mainframes in the world still running the
old -- sorry, vintage -- operating systems I'm talking about in this
document. However, there's a emulator called Hercules that runs on Windows
and Linux PCs that fully emulates an IBM System/370. Intrepid mainframe
programmers have resurrected the last and greatest versions of all the IBM
public domain operating systems and gotten them to run on Hercules. However,
most of these systems are not configured "out of the box" to support RJE.
That's why you are reading this -- I'll tell you how to get RJE up and
running.
Remote Job Entry requires a host and a client. The host is the OS running
in the mainframe. Real-world RJE occurred over bisyncronous lines with
modems on each end, usually at a rate not exceeding 9600 bits per second.
Hercules does not support a real bisyncronous line with a modem, and this
is a good thing. Instead, it emulates such a line over a TCP/IP connection.
This is much faster and more reliable, and allows you to connect from any
internet-connected PC to any internet-connected Hercules mainframe. There
are several RJE clients written for Hercules, and they emulate an IBM 3780
or 2780 RJE terminal. The one I use is RJE80, since I wrote it. It offers
an easy-to-use and pleasant Windows interface. But any working client
program should do (there's a command-line version of RJE80 for Windows and
Linux too).
This document doesn't tell you how to connect and use RJE. RJE80 has a
help button that will tell you that. Instead, here we talk about RJE
from the host's perspective. Each operating system is different in how
RJE is configured and operated.
One thing that is common is how you will tell Hercules about your 2703
lines.
Configuring Hercules
--------------------
First, before you can configure any OS for RJE lines, you must configure both
Hercules and the OS to support the 2703 interface that RJE expects to use to
talk to its remote stations. Hercules is easy to configure. Simply add
a line like this one to your hercules.cnf file for each switched (dial-up)
line you want to add to your virtual 370:
0070 2703 dial=in lport=3780
Pay attention to that lport= number. That's the TCP/IP port that you will
later give to RJE80 to inform it where to connect. Each line must have its
own unique port, but the number doesn't really matter, except it should be
between 1025 and 9999. The 0070 is of course the device number. It's
important because you are going to have to configure the OS to recognize the
2703 lines you are putting into Hercules. Here's an example of a bank of
4 dial-up lines:
0070 2703 dial=in lport=9001
0071 2703 dial=in lport=9002
0072 2703 dial=in lport=9003
0073 2703 dial=in lport=9004
What about leased lines? The Hercules emulation supports those too. The only
host OS that benefits from leased lines over dial-up is Os/360, which has a
three-minute timeout that will disconnect a dial-up line after 3 minutes of
inactivity. This is annoying and won't happen on a leased line. Neither MVS,
nor DOS/VS, nor VM/370 have this timeout "feature".
For those hosts dial-up is better. A leased line expects to be connected all the
time. RJE80 connections come and go, and are better suited for dialup. If
you were connecting two mainframes that would be running all the time, the
leased line (non-switched in IBM parlance) makes more sense. Why would you
connect two mainframes? Well, VM/370 RSCS can be a host or a client to
JES2, so you could connect a VM machine to an MVS one and exchange files and
submit jobs without RJE80 or another RJE terminal emulator being involved.
Also, there are small RJE emulator programs written by IBM that in theory
could also be RJE terminals -- but so far, no one has gotten them to work.
Here's now to configure a simple leased line:
00E0 2703 dial=no lport=7701 rport=8701
On the other mainframe, the line that connects to this one might look
like:
0070 2703 dial=no lport=8701 rport=7701
The 2703 has many more options, such as specifying the host name or IP
address for security. See the 2703 documentation in the Hercules write-ups
for more details.
MVS - JES2
----------
MVS 3.8J is probably the most popular OS running (legally at least) on
Hercules. MVS supports two job entry systems: JES2 and JES3. I have not
worked with JES3 and so here I will only talk about JES2. It's by far the
most common JES in use anyway.
1. Configuring MVS.
You must be sure that MVS knows about your 2703 lines at the device
addresses you put into the Hercules.cnf file. As of this writing, most
people that are running MVS 3.8J on Hercules are using Volker's Turnkey MVS
#3. This system does NOT have any 2703 lines generated into it, because at
the time Volker was putting together his great Turnkey MVS, the 2703 support
was nonexistent. Turnkey #4 is reputed to have 2703 lines already built-in.
This is a great blessing, for although it's easy to change the stage 1
sysgen deck in MVS, actually doing a sysgen or an iogen is a great deal of
work for those of us who do not have decades of sysprog experience.
This document does NOT walk you through the sysgen process. You'll have to
consult other documentation for that. I will tell you what to change and
how to change it.
So...if you are not running Turnkey #3, best to look at your stage 1
sysgen I/O configuration and see if there are already lines genned into
it. Here's what they look like:
A switched line:
IODEVICE +
ADDRESS=(070,8),UNIT=BSC2,FEATURE=(AUTOCALL,AUTOANSR),+
ADAPTER=BSCA,TCU=2703
An unswitched line:
IODEVICE +
ADDRESS=(090,8),UNIT=BSC1,ADAPTER=BSCA,TCU=2703
If your stage 1 sysgen deck doesn't contain these definitions, you'll need
to add them and do an IOGEN or a SYSGEN of MVS. Good luck, and may the
ghost of Thomas Watson have mercy on your frail and quivering soul.
2. Configuring JES2.
Once your sysgen is done...there, that was easy to say...you're ready to
move on to configuring JES2. Luckily, you don't have to reconfigure and
re-gen it, you just have to modify the JES2PARM member of SYS1.PARMLIB.
There's a potential gotcha here, in that in some systems the JES2PARM
that's in SYS1.PARMLIB isn't the one that counts. Often, it's kept in
a dataset called SYS1.JES2PARM. If this dataset exists on your system,
then it's probably the one that JES2 is looking at to configure itself.
Modify it instead, and if you totally blow it, you can restore from the
saved copy in SYS1.PARMLIB.
You need to add a set of parameters for each line you want to use. Here
is the model:
&NUMLNES=1
LINE1 UNIT=070,EBCDIC,TRANSP,LOWSPEED,FDUPLEX,NOADISC,CODEA,IFACEA
RMT1 3780,LINE=1,NUMPR=1,NUMPU=1,NUMRD=1,TRANSP,NOTABS
R1.RD1 CLASS=A
R1.PR1 START,PRWIDTH=132,CLASS=LTZA
R1.PU1 CLASS=B
DESTID NAME=RMT01,DEST=R1
If you are adding more than one line, you'll need to modify these parameters
like this (example for two lines):
&NUMLNES=2
LINE1 UNIT=070,EBCDIC,TRANSP,LOWSPEED,FDUPLEX,NOADISC,CODEA,IFACEA
RMT1 3780,LINE=1,NUMPR=1,NUMPU=1,NUMRD=1,TRANSP,NOTABS
R1.RD1 CLASS=A
R1.PR1 START,PRWIDTH=132,CLASS=LTZA
R1.PU1 CLASS=B
DESTID NAME=RMT01,DEST=R1
LINE2 UNIT=071,EBCDIC,TRANSP,LOWSPEED,FDUPLEX,NOADISC,CODEA,IFACEA
RMT2 3780,LINE=1,NUMPR=1,NUMPU=1,NUMRD=1,TRANSP,NOTABS
R2.RD1 CLASS=A
R2.PR1 START,PRWIDTH=132,CLASS=LTZA
R2.PU1 CLASS=B
DESTID NAME=RMT02,DEST=R2
3. Operating RJE with JES2.
Now that JES2 is configured, re-IPL your system. We're now ready to
use the line.
Once JES2 is up, you need to start each line like this:
$SLINE1
Now you should be able to start RJE80, enter the host name (or address)
and port to connect to, and send a signon card. Actually, the signon
card is optional here, because we didn't configure JES2 for a password.
You can actually just load some JCL into your RJE80 card reader and SEND
it to the mainframe. The printout should arrive automatically on your
RJE80 printer window.
When you disconnect RJE80, the 2703 "hardware" will see this and drop
the line, awaiting the next "dial-up" connection.
To shut down the RJE line, use this command:
$PLINE1
If you do need to send a signon card, the format is rather strange:
/*SIGNON REMOTE1 SECRET
The REMOTE1 has to start in column 16 and the password (here SECRET) has
to start in column 25.
Sometimes, the line will get confused and not react normally. You can
use these commands on the jES2 console to restart it from scratch:
$ELINE1
$PLINE1
$SLINE1
The $E command will also interrupt the flow of data to or from the line.
JES2 will restart an interrupted printout at the page where it was
interrupted.
That's the essentials of RJE on MVS with JES2 and RJE80.
I don't know of any MVS 3.8J vintage JES2 or RJE manuals on the net. If
you know, please let me know at [email protected].
DOS/VS - POWER/VS
-----------------
RJE is a pretty nice way of interacting with DOS/VS, and it has more value,
since there is currently no interactive alternative like RPF for MVS.
DOS/VS itself doesn't know RJE. It relies on its spooling software,
POWER/VS, to provide RJE support.
First, of course, DOS/VS must be told about our 2703 lines.
1. Configuring DOS/VS
You need to look in your SYSGEN deck to see if any 2703 lines might
already be genned there. Here's how they look:
DVCGEN CHUN=X'070',DVCTYP=2703
Simple, eh? Well, this is DOS/VS. If there are any, note their device
addresses and configure Hercules to match. If not, add some lines and
re-do your sysgen. Remember to add devices in device number order.
2. Configuring POWER/VS.
Take a look in your POWER/VS generation deck. If you didn't have a line
in your sysgen, chances are you'll need to configure POWER/VS. In a
non-RJE POWER deck, there's only one macro: POWER. The RJE macros are
two, and they are added after the end of the POWER macro parameters.
Here's an example to match our one 2703 line above:
LINE001 PLINE ADDR=X'070',PSWRD=SECRET,SWITCH=NO
PRMT REMOTE=1,TYPE=3780,PUNROUT=001,LSTROUT=001,LIST=132
Note that this is a leased line, which works fine with DOS/VS, which
doesn't seem to dislike the other end coming and going like some other
systems do. If you'd prepher dial-up, change the SWITCH=NO to
SWITCH=YES but be sure the Hercules configuration matches.
Once you have re-generated POWER/VS and re-IPLed, you should be ready
to bring up your line and connect RJE80 to it.
3. Operating RJE on POWER/VS.
I assume you've re-IPLed your DOS/VS system, and brought up POWER/VS
in its partition according to your tastes. Now, there's at least
one RJE line generated into it. To start the line listening, use
this command:
S RJE,070,SECRET
Obviously, use the device address of the real line you want in place of the
070. The SECRET parameter is a password that will override the password you
gave when you generated the line. This parameter is optional.
To see the RJE queues, do this:
D RJE
Now, fire up RJE80 or the client of your choice and connect to the host
and port. The first card you must send will be a signon card:
* .. SIGNON 1 SECRET
You can, and should, follow that with a card to start the writer, which
doesn't start automatically:
* .. S LST
Now, if you load jobs into the card reader and SEND them to DOS/VS, you
will receive the output automatically on your RJE80 printer and punch.
Each job should be surrounded by JECL. Here's an example:
* $$ JOB JNM=LVTOC,USER='DUTCH',CLASS=0,DISP=D
* $$ LST LST=00E,CLASS=A,DISP=D,JSEP=0
// JOB LVTOC - VOLUME VTOC DISPLAY UTILITY
// ASSGN SYS004,X'131'
// ASSGN SYS005,X'00E'
// EXEC PGM=LVTOC
/*
/&
* $$ EOJ
There's a gotcha. If your JECL asks for a form, as in this
example:
* $$ LST LST=00E,CLASS=A,DISP=D,JSEP=0,FORM=0001
You'll get a message on the printer asking you to change the forms.
You need to supply this command to tell POWER/VS to go ahead and
send you the printout:
* .. G LST
To signoff the line, use the signoff command:
* .. SIGNOFF
You can, from the RJE station or the DOS console, display the
contents of your queues:
D LST
D RDR
To stop the line from the DOS console, use
P 070
You may need to stop and re-start the line if it becomes confused
and stops working right.
That's the essentials of using RJE with DOS/VS POWER/VS.
For more details, see the POWER/VS manual online at www.bitsavers.org.
VM/370 - RSCS
-------------
VM/370 is an interactive system, so one could rightly ask what use RJE might
have connected with it. The answer is mainly file transfer. The part of VM
that supports RJE terminals is RSCS, the Remote Spooling Communication
System. An RJE terminal like the 3780 can connect to an RJE line and send
card decks from its reader to the virtual reader of a virtual machine, and
it can receive printouts and punched cards from the output queues of any
virtual machine. On a modern PC using Hercules, there are probably better
ways to get data into VM, but RJE will certainly work. In the olden days,
this form of file transfer made good sense in some situations. The RSCS
system seems primarily designed to connect mainframe to mainframe though, and
we will be discussing that possibility also.
1. Configuring VM/370.
You need to modify your sysgen specifications in DMKRIO ASSEMBLE to include
a 2703 bisync line or lines if it doesn't contain some already. Type 2701
lines won't do the trick -- it needs to be a 2703. This is what the spec
looks like:
RDEVICE ADDRESS=(070,16),DEVTYPE=2703,ADAPTER=BSCA
RCTLUNIT ADDRESS=070,CUTYPE=2703,FEATURE=16-DEVICE
This specifies 16 2703 BSCA lines at device number 070.
With this in DMKRIO ASSEMBLE, do a sysgen and re-IPL VM/370. That part
of the job is done.
2. Configuring RSCS.
These examples are taken using Andy Norrie's 4-pack VM/370 system, which
has an RSCS virtual machine built into it, with the RSCS software loaded
onto its own minidisk. However, RSCS isn't quite ready to run correctly
in the current incarnation of the 4-pack system. Here's what needs to be
done.
First, be sure that the RSCS virtual machine has the lines you need.
Logon as MAINT, and edit your directory file (VM50 DIRECT on the 4-pack
system). Here is the full RSCS user parameters I use:
USER RSCS RSCS 2M 16M
ACCOUNT RSCS RSCS
IPL CMS
OPTION ECMODE
CONSOLE 009 3215
SPOOL 001 2540 READ A
SPOOL 00C 2540 READ A
SPOOL 00D 2540 PUNCH A
SPOOL 00E 1403 A
MDISK 191 3350 141 005 VM50-2 WR READ WRITE ALL
MDISK 192 3350 146 015 VM50-2 WR READ WRITE ALL
LINK MAINT 190 190 RR
LINK MAINT 194 194 RR
LINK MAINT 19D 19D RR
LINK MAINT 19E 19E RR
DEDICATE 0B1 070
DEDICATE 0B2 071
DEDICATE 0B3 072
DEDICATE 0B4 073
DEDICATE 0B5 074
Logoff MAINT and logon to the RSCS user virtual machine.
Now, you need to configure the RSCS macros. The main one is called
AXSLINKS COPY. It defines all the nodes in the RSCS network for this
machine. Here is a sample:
GENLINK ID=MYVMSYS,TYPE=DMTNPT
GENLINK ID=DIALUP1,TYPE=DMTNPT,LINE=0B1
GENLINK ID=DIALUP2,TYPE=DMTNPT,LINE=0B2
GENLINK ID=DIALUP3,TYPE=DMTNPT,LINE=0B3
GENLINK ID=DIALUP4,TYPE=DMTNPT,LINE=0B4
GENLINK ID=HISVM,TYPE=DMTSML,KEEP=5,LINE=0B5,TASK=SML1
GENLINK
GENLINK
This defines 5 lines, 4 dial-up and 1 leased. The first entry supplies the
name of our node - MYVMSYS in this case. The next 4 are the 4 switched
lines. The fifth line is a potential leased line to another VM or MVS
system. The last two entries are blank to provide "expansion slots" so that
for experimental purposes we could define new lines on the fly in RSCS.
The other file to change is named LAXLINES COPY. Here you define all
the lines that RSCS can use.
GENLINE LINE=0B1
GENLINE LINE=0B2
GENLINE LINE=0B3
GENLINE LINE=0B4
GENLINE LINE=0B5
Once those are changed, we are ready to generate. RSCS in the 4-pack system
comes with a 5-cylinder minidisk. We first need to change that so that the
CMS filesystem fits on 4 of those cylinders and the 5th is reserved for
an IPLable copy of our RSCS system. An easy way to do this is to use a tape
to backup, then format and restore our RSCS files. Put an empty tape on
a drive, ATTACH it to virtual device 181 for RSCS, then back it up, then
format our drive and restore the files. Here are the commands:
REL B
REL D
VMFPLC2 DUMP * * A
FORMAT 191 A 04
REWIND 181
VMFPLC2 LOAD
ACC 192 B/A
ACC 194 D/A
You are now ready to generate RSCS itself. And you have a good backup!
Here is the sequence of commands to execute. Since this may be done
again, I put them all into an EXEC and called it RSCSGEN EXEC.
ERASE DMTLOC MACLIB
MACLIB GEN DMTLOC AXSLINKS LAXLINES TAGQUEUE
EXEC VMFASM DMTSYS DMTR60
CP CLOSE RDR
CP PURGE RDR
CP CLOSE PUN
CP PURGE PUN
CP SPOOL PUN TO * CLASS A
CP SPOOL PRT FOR * CLOSE
VMFLOAD DMTLOAD DMTR60
CP CLOSE RDR
CP SPOOL PUN OFF
CP IPL C CLEAR
Once that last IPL gets executed, you'll get asked four important questions.
Here they are and the correct answers:
DMTINI407R REWRITE THE NUCLEUS ?
yes
DMTINI408R IPL DEVICE ADDRESS =
191
DMTINI409R NUCLEUS CYL ADDRESS =
4
DMTINI410R ALSO IPL CYLINDER 0 ?
yes
Now RSCS will write itself onto that 5th cylinder of our minidisk, and
it will also run for the first time. You'll see these messages:
RDR 001 DETACHED
RDR 001 DEFINED
0001 FILE PURGED
11:39:49
MSG FROM RSCS : DMTAXS103E FILE 0007 REJECTED...
RSCS (REL 6, LEV 0, 02/01/04) READY
That "FILE REJECTED" message looks bad but it's in fact harmless, and
you won't be seeing it again unless you do another RSCSGEN.
3. Operating RSCS.
There are a number of commands you can enter in the RSCS virtual machine.
First, you'll probably want to start your dial-up lines:
START DIALUP1
START DIALUP2
Now you are ready to connect RJE80 to one of these lines for some file
transfer action. The first card you send must be a signon card:
SIGNON DIALUP1 3780 PCHY
This is about the minimum required. The DIALUP1 is the link name, it
must match the line you connected to. You must tell RSCS what device
you are emulating (notice that you didn't say that during the gen, unlike
all the other OSes). The PCHY is telling RSCS you have a punch available,
if you don't do this, it will assume there is no punch device. Other
possible options include TRSY for transparency, and PWD=SECRET for a
password if one is required.
You now are connected to RSCS. It will print a confirmation message
for you.
The cards you send will either be a file to transfer to a user (or virtual
machine), or commands to RSCS itself. RSCS tells a file by an ID card
that precedes it. The format of this ID card is
ID USERNAME
There is "ID" in columns 1 and 2, seven blanks, and the username or name
of the virtual machine to send the card deck to. Fail to get the username
in the right column and RSCS will not recognize this as an ID card and will
complain about "INVALID COMMAND ID" and "ID CARD MISSING - INPUT FILE
PURGED". Here's an interesting fact: there is no end-of-file marker. At
least, not that I can see from the RSCS code -- I don't have an RSCS manual.
The end of file is the end of cards in the card reader hopper.
If your first card isn't an ID card, it's an RSCS command. These are a
subset of the commands the RSCS operator can enter at the RSCS console.
To signoff, use this command:
/*SIGNOFF
Here is a partial list of RSCS commands which are known to work:
QUERY <linkid> STAT
QUERY <linkid> QUEUE
QUERY <linkid> DEF
QUERY SYSTEM [ACTIVE]
QUERY FILE <spoolid> STAT
QUERY FILE <spoolid> RSCS
QUERY FILE <spoolid> VM
START <linkid> LINE nnn (2780/3780 terminal)
START <linkid> PARM Mid Bxxx <password> (...HASP host)
START <linkid> PARM Hid Bxxx <password> (...HASP station)
START <linkid> PARM Rid Bxxx <password> (...RES station)
START <linkid> PARM Aid Bxxx <password> (...ASP station)
(id must be 2 bytes and match other side, xxx is buffersize)
CHANGE <linkid> <spoolid> PRIORITY p CLASS c COPY nn HOLD NOHOLD
TRACE ALL
TRACE ERRORS
TRACE END
FLUSH <linkid>
HOLD <linkid>
DRAIN <linkid> (brings down the link)
DISCONN (this brings down RSCS)
MSG <linkid> text...
CMD <linkid> command...
DEFINE <linkid> TYPE DMTSML LINE nnn CLASS c TASK id PARM ...
DEFINE <linkid> TYPE DMYNPT LINE nnn CLASS c TASK id PARM ...
DELETE <linkid>
PURGE <linkid> <spoolid>
FWDSPACE <linkid>
BACKSPAC <linkid>
To connect two mainframes, I'll use an example connecting two VM/370 machines
together. We'll use the leased lines to do this. Once both machines are
started, and a TCP/IP link established between their Hercules 370s, you can
start the two lines. Note that in order to do this, both machines must have
different node names and the name of the other's node must in the AXSLINKS
COPY file. (Or you could use the DEFINE command above but lines and nodes
you DEFINE won't be there next time you start RSCS.)
One system, let's say it's ours, will be the master station and the other
will be the slave. Let's call the other system HISVM for example.
Here's how we start up the master on our RSCS console:
START HISVM PARM M01 B256 SECRET
Now, over on the other system enter this command:
START MYVMSYS PARM H01 B256 SECRET
Note that each start names the other's system, and that the 01 after the
M or H is an ID code that must match between the two systems. SECRET represents
a password which must also match of course. Once the two machines are talking
over the link, you can use regular CP commands to send files. Let's say I want
to send a set of JCL over to user DUTCH on HISVM. It would take three commands
from my CMS session:
TAG DEV PUN HISVM DUTCH
SPOOL PUN TO RSCS
PUNCH MYSAMPLE JCL (NOH
The file that was in MYSAMPLE JCL on my machine will appear in user DUTCH's
virtual reader without a header (the NOH option) over on the HISVM machine.
Use the DISCONN command to shut down the RSCS virtual machine. To start
it back up, signon as the RSCS user but specify NOIPL in the LOGON:
LOGON RSCS RSCS NOIPL
Then, IPL from device 191 instead and RSCS will IPL and run.
That's the essentials of configuring and running RJE on VM/370.
I don't know of any VM/370 R6 vintage RSCS or RJE manuals on the net. If
you know, please let me know at [email protected].
OS/360 - RJE
------------
OS/360 was probably the first IBM operating system to support RJE over
bisync lines. It shows. Not only will you probably have to do a
sysgen to get the 2703 lines into the OS, but you also have to do
through a fairly extensive generation and configuration of RJE itself.
1. Configure OS/360.
RJE is supported under MFT or MVT. I have not tried the MFT version.
The instructions that follow are for an OS/MVT system. I don't think
there's much difference in the setup, but who runs MFT anyway?
All you have to do with OS/MVT itself is to add some lines to the
stage 1 sysgen deck and sysgen the system. Sounds easy enough, doesn't
it? Only if you've never done an OS/360 sysgen! Here's how the
definition of the 2703 lines should look:
IOCONTRL UNIT=2703,ADDRESS=070
IODEVICE UNIT=BSC2,ADDRESS=(070,16),ADAPTER=BSCA
Another thing you must be sure of is that RJE support is included in the
operating system. The OPTIONS parameter of the SCHEDULR macro is where
it's specified. Mine looks like this: OPTIONS=(LOG,RJE). Having made
sure your stage 1 deck is correct, go and do your sysgen and come back.
We're all ready to proceed now, right? Okay, on to RJE itself.
2. Configure RJE.
The system I run at home lives on 2314 drives, so the JCL I'll be
using as examples are for those. There really shouldn't be any
significant differences.
My RJE system lives on a disk all by itself, called RJE001. In fact,
that's a bit of wasted space even on a 2314 drive, on a 3330 you won't
use but about 10 percent of the available space.
The first step is to generate RJE. Have a look at my RJE generation JCL:
//RJEASLE JOB (101),CEO,MSGLEVEL=(1,1),CLASS=A,MSGCLASS=A
//STEP0 EXEC PGM=IEFBR14
//DD1 DD DSN=RJETEMP,UNIT=2314,VOL=SER=WORK03,DISP=(OLD,DELETE)
//STEP1 EXEC PGM=IEUASM,PARM='LIST,NOLOAD,DECK,NOXREF',REGION=256K
//SYSPRINT DD SYSOUT=A
//SYSLIB DD DSN=SYS1.MACLIB,UNIT=2314,VOL=SER=SYSRES,DISP=SHR
//SYSUT1 DD UNIT=SYSDA,SPACE=(CYL,(35,10)),VOL=SER=WORK01
//SYSUT2 DD UNIT=SYSDA,SPACE=(CYL,(35,10)),VOL=SER=WORK02
//SYSUT3 DD UNIT=SYSDA,SPACE=(CYL,(50,10)),VOL=SER=WORK02
//SYSPUNCH DD DSNAME=RJETEMP(IHKAARJE),DISP=(NEW,KEEP),
// SPACE=(TRK,(10,1,2)),UNIT=2314,VOL=SER=WORK03
//SYSIN DD *
LINE1 RJELINE DDLINE=LINE1,DDSYSIN=LINE1IN,LERB=(255,10,5,250)
LINE2 RJELINE DDLINE=LINE2,DDSYSIN=LINE2IN,LERB=(255,10,5,250)
LINE3 RJELINE DDLINE=LINE3,DDSYSIN=LINE3IN,LERB=(255,10,5,250)
LINE4 RJELINE DDLINE=LINE4,DDSYSIN=LINE4IN,LERB=(255,10,5,250)
TERM1 RJETERM TYPE=2780,PUNCH=YES,PRTSZ=120
TERM2 RJETERM TYPE=2780,PUNCH=YES,PRTSZ=120
TERM3 RJETERM TYPE=2780,PUNCH=YES,PRTSZ=120
TERM4 RJETERM TYPE=CPU,PUNCH=YES,PRTSZ=120
RJEUSER 16,GST,111,CPU,222,CEO,333
RJETABL JOB=32,SYSPRT=A,SYSPCH=B,SYSUSER=U,SYSRJE=R,BUFNO=32
END
/*
//STEP5 EXEC PGM=LINKEDIT,PARM=(XREF,LIST,DC,NCAL,LET)
//SYSLMOD DD DSN=SYS1.TELCMLIB,DISP=OLD
/*
//SYSLIB DD DSN=RJETEMP,DISP=(OLD,DELETE),UNIT=2314,VOL=SER=WORK03
//SYSUT1 DD SPACE=(TRK,(10,10)),UNIT=SYSDA
//SYSPRINT DD SYSOUT=A
//SYSLIN DD *
INCLUDE SYSLIB(IHKAARJE)
NAME IHKAARJE(R)
/*
//STEP6 EXEC PGM=LINKEDIT,PARM=(XREF,LIST,DC)
//SYSLMOD DD DSN=SYS1.LINKLIB,DISP=OLD
//SYSLIB DD DSN=SYS1.TELCMLIB,DISP=OLD
//SYSUT1 DD SPACE=(TRK,(40,10)),UNIT=SYSDA
//SYSPRINT DD SYSOUT=A
//
You should be able to use this pretty much unaltered except for the RJELINE,
RJETERM, and RJEUSER macros to define the lines you want, the terminals that
can connect to them, and the user IDs and passwords. It's very odd that the
user IDs and passwords are limited to 3 characters apiece, but it's true.
Having generated the RJE system, the next step is to initialize the
RJE001 disk datasets. This is the JCL to do that:
//RJEINIT JOB (101),CEO,CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1)
//STEP1 EXEC PGM=IEHPROGM
//SYSPRINT DD SYSOUT=A
//DD1 DD VOL=SER=RJE001,DISP=OLD,UNIT=SYSDA
//SYSIN DD *
SCRATCH DSNAME=SYS1.IHKFSTB,VOL=SYSDA=RJE001,PURGE
SCRATCH DSNAME=SYS1.IHKJEDTB,VOL=SYSDA=RJE001,PURGE
SCRATCH DSNAME=SYS1.IHKUDRTB,VOL=SYSDA=RJE001,PURGE
SCRATCH DSNAME=SYS1.IHKTDRTB,VOL=SYSDA=RJE001,PURGE
SCRATCH DSNAME=SYS1.IHKTXTTB,VOL=SYSDA=RJE001,PURGE
SCRATCH DSNAME=SYS1.IHKMSGSL,VOL=SYSDA=RJE001,PURGE
SCRATCH DSNAME=SYS1.IHKBRDSL,VOL=SYSDA=RJE001,PURGE
/*
//STEP2 EXEC PGM=IHKINTAB
//SYSABEND DD SYSOUT=A
//IHKFSTDD DD DSN=SYS1.IHKFSTB,DISP=(NEW,CATLG),SPACE=(24,(11,5)),
// UNIT=SYSDA,VOL=SER=RJE001,DCB=DSORG=DA
//IHKJEDDD DD DSN=SYS1.IHKJEDTB,DISP=(NEW,CATLG),SPACE=(98,(11,5)),
// UNIT=SYSDA,VOL=SER=RJE001,DCB=DSORG=DA
//IHKUDRDD DD DSN=SYS1.IHKUDRTB,DISP=(NEW,CATLG),SPACE=(18,(15,5)),
// UNIT=SYSDA,VOL=SER=RJE001,DCB=DSORG=DA
//IHKTDRDD DD DSN=SYS1.IHKTDRTB,DISP=(NEW,CATLG),SPACE=(80,(15,5)),
// UNIT=SYSDA,VOL=SER=RJE001,DCB=DSORG=DA
//STEP3 EXEC PGM=IHKCDBMI
//SYSABEND DD SYSOUT=A
//IHKTXTDD DD DSN=SYS1.IHKTXTTB,DISP=(NEW,CATLG),SPACE=(60,(161,20)),
// UNIT=SYSDA,VOL=SER=RJE001,DCB=DSORG=DA
//IHKMSGDD DD DSN=SYS1.IHKMSGSL,DISP=(NEW,CATLG),SPACE=(750,(1,1)),
// UNIT=SYSDA,VOL=SER=RJE001
//IHKBRDDD DD DSN=SYS1.IHKBRDSL,DISP=(NEW,CATLG),SPACE=(400,(1,1)),
// UNIT=SYSDA,VOL=SER=RJE001
//
Whew! It's a good thing someone already did this. It was a pain to
figure all this out and get it working, although I copied a great deal
of this JCL from the OS/360 RJE manual available at bitsavers.org.
Now that the RJE datasets are ready, we need to load up a start procedure
of the RJE system. This will do it:
//RJEPROC JOB (1),CEO,MSGLEVEL=(1,1)
//STEP1 EXEC PGM=IEBUPDTE
//SYSPRINT DD SYSOUT=A
//SYSABEND DD SYSOUT=A
//SYSUT1 DD DISP=SHR,DSN=SYS1.PROCLIB,UNIT=SYSDA,VOL=SER=SYSRES
//SYSUT2 DD DISP=SHR,DSN=SYS1.PROCLIB,UNIT=SYSDA,VOL=SER=SYSRES
//SYSIN DD DATA
./ ADD NAME=RJE
//RJE EXEC PGM=IHKRJBGN,REGION=128K,
// PARM='000999030010249050322314 '
//* APPTTTSSSQQQIIIRRRCLUUUUUUUU
//* A = ACCOUNTING REQD
//* PP = PRIORITY
//* TTT = TIMELIMIT
//* SSS = SYSOUT PRI ALLOC
//* QQQ = SYSOUT SEC ALLOC
//* III = INTERPRETER PRIORITY
//* RRR = REGION SIZE
//* C = COMMAND AUTHORITY
//* L = LABEL PROCESSING
//* UUUUUUUU = DEFAULT UNIT
//IEFRDER DD DUMMY
//IEFDATA DD UNIT=SYSDA,VOL=SER=RJE001,
// SPACE=(80,(500,500),RLSE,CONTIG),
// DCB=(BUFNO=2,LRECL=80,BLKSIZE=80,RECFM=F,BUFL=80)
//IEFPDSI DD DSN=SYS1.PROCLIB,DISP=SHR
//IHKFSTDD DD DSN=SYS1.IHKFSTB,DISP=OLD,DCB=DSORG=DA
//IHKJEDDD DD DSN=SYS1.IHKJEDTB,DISP=OLD,DCB=DSORG=DA
//IHKUDRDD DD DSN=SYS1.IHKUDRTB,DISP=OLD,DCB=DSORG=DA
//IHKTDRDD DD DSN=SYS1.IHKTDRTB,DISP=OLD,DCB=DSORG=DA
//IHKTXTDD DD DSN=SYS1.IHKTXTTB,DISP=OLD,DCB=DSORG=DA
//IHKMSGDD DD DSN=SYS1.IHKMSGSL,DISP=OLD
//IHKBRDDD DD DSN=SYS1.IHKBRDSL,DISP=OLD
//LINE1IN DD DISP=(OLD,KEEP),VOL=SER=RJE001,SPACE=(TRK,(5,20)),
// UNIT=SYSDA,DCB=BLKSIZE=400
//LINE2IN DD DISP=(OLD,KEEP),VOL=SER=RJE001,SPACE=(TRK,(5,20)),
// UNIT=SYSDA,DCB=BLKSIZE=400
//LINE3IN DD DISP=(OLD,KEEP),VOL=SER=RJE001,SPACE=(TRK,(5,20)),
// UNIT=SYSDA,DCB=BLKSIZE=400
//LINE4IN DD DISP=(OLD,KEEP),VOL=SER=RJE001,SPACE=(TRK,(5,20)),
// UNIT=SYSDA,DCB=BLKSIZE=400
//LINE1 DD UNIT=070
//LINE2 DD UNIT=071
//LINE3 DD UNIT=072
//LINE4 DD UNIT=073
./ ENDUP
/*
//
Now, at last, we should be ready to bring up RJE and connect to it.
3. Operating OS/360 RJE.
You should IPL your OS/360 system again, and this time, re-format your
spool space. In other words, instead of replying U to this message:
REPLY WITH SET PARAMETERS OR U
like you usually do, reply Q=(,F). You don't have to do this again, unless
RJE goes catatonic on you, in which case, re-formatting the OS spool queues
again may be the only way to recover. You'll know this is the case if RJE
gives a WRONG LENGTH RECL error on one of its files every time you try and
start it. Re-IPLing with Q=(,f) seems to fix this bug. Good old OS/360,
flaky as ever.
Once the usual readers and writers are up and running, you are ready
to start RJE. This is the command:
S RJE,,,FORM
The FORM tells RJE to format its own datasets. In contrast to the many
other chatty IBM programs, RJE starts up silently. If you do a D A from
the console you should see RJE as a task among the others.
You are now ready to connect RJE80 to OS/360. The first two cards you
should submit to it are:
.. RJSTART TERM1
.. LOGON GST,111
...where TERM1 is the name of the terminal from your RJETERM macros,
and GST,111 is a valid userid and password from the RJEUSER macros.
OS/360 will confirm on the printer if you are successully logged on.
You can then submit jobs and see results on the printer and punch.
To log off, it also takes two cards:
.. LOGOFF
.. RJEND
At the console, and from the reader, RJE will accept a number of useful
commands. Some are:
SHOW USERS
SHOW LINES
SHOW LERB
SHOW BRDCST
BRDCST 00,'MESSAGE TO USERS'
to stop RJE, just tell it to stop:
P RJE
That's the essentials of configuring and running OS/360 RJE.
For more details on configuring and running OS/360 RJE, please consult the
OS/360 RJE manual online at www.bitsavers.com.