RFC 360
Proposed Remote Job Entry Protocol
PROPOSED REMOTE JOB ENTRY PROTOCOL ๐
Okay bestie, first the vital stats ๐ This is RFC 360 from the Network Working Group, written by C. Holland of UCSD-CC, dated June 1972. Its category is Protocols, RJE, and it's a proposed protocol with NIC number 10602. It doesn't list any RFCs it obsoletes or updates, so it's coming in totally fresh ๐
Remote job entry is when a user in one place makes a batch-processing job run somewhere else ๐ง This protocol is the Network standard for how that user talks over the Network to a remote batch-processing server. The server then goes and grabs a job-input file, processes the job, and delivers the job's output file(s) to a remote location ๐ฆ The control chat runs over TELNET, but it's a special standardized logger, not socket 1 ๐ Then the server site uses the File Transfer Protocol to pull the job-input file and send back the output file(s). It's giving teamwork โจ
There are two kinds of users: direct users (actual people) and user processes ๐ A direct user types from an interactive terminal attached to a TIP or any host. They can make the input and/or output go to a specific socket on a specified host (think card readers or printers on a TIP), or they can have the files moved by pathname using File Transfer Protocol. The other kind is an RJE User-process in one remote host talking to the RJE Server-process in another host. This one gets its instructions from a human, just through some unspecified indirect means ๐ The command and response streams are designed so that both the human user and the user process can easily use and interpret them ๐ซถ
A user location can choose to open a TELNET control connection for each logical job, or leave it open for a long time ๐ If it stays open, multiple job-files can be told to get retrieved. Or, if the server can figure out where one logical job ends by reading the input stream and make several jobs out of one input file, you can do one continuous retrieval (like from a TIP card reader) ๐ฅ That makes a "hot" card reader pointed at a particular server, with the TELNET connection acting as a "job monitor". Output always goes back one job at a time per connection to the output socket, so output from this "hot" reader shows up when it's ready, like a "hot" printer ๐ญ For fancier hosts, you can attach an RJE User-process to a card reader and have it take instructions from a lead control card. That opens an RJE control TELNET to the right host with the right logon and input retrieval commands. To the human user, this card reader looks like a Network "host" card reader ๐ The details of that RJE User-process are out of scope for this protocol, so don't worry about them here ๐
GENERAL SPECIFICATIONS โจ
- User - A human user at a real terminal, or a process that supplies the command control stream that gets a job submitted remotely, is called the User. How a process user gets its instructions is out of scope for this protocol.
- User TELNET - The User sends its commands over the Network in Network Virtual Terminal code, through a User TELNET process in the User's Host. That User TELNET process starts up by sending an ICP to the standard "RJE logger" socket (socket 5) at the desired RJE-server Host ๐
- RJE-server TELNET - The RJE-server process gets its command stream from the TELNET channel, and sends its response stream back through it, via an RJE-server TELNET process in the server host. This process must listen for the ICP on the "RJE logger" socket, and cause the appropriate ICP socket shifting.
- TELNET Connection - The command and response streams for the RJE mechanism run over a TELNET-like connection to a special socket, with full specifications according to the current NWG TELNET protocol ๐ง
- RJE-Server - The RJE-Server process lives in the Host providing the Remote Batch Job Entry service ๐ธ It takes input from the RJE-Server TELNET, controls access through the "logon" procedure, retrieves input job files, queues jobs for execution by the batch system, responds to status inquiries, and sends job output files when they're available.
- User FTP - All input and output files get transferred under control of the RJE-server process, on its own initiative. Files can be transferred directly via Request-for-connection to a specific Host/socket, or via File Transfer Protocol. If it's the latter, the RJE-server acts through its local User FTP process to make the transfer happen. That process starts by making an active Request-for-connection to the "FTP Logger" in the foreign host ๐ฆ
- Server FTP - This process in a remote host (remote from the RJE-server) listens for an ICP from the User FTP, then acts on the commands from the User FTP to carry out the appropriate file transfer.
- FTP - When File Transfer Protocol is used for RJE files, the standard FTP mechanism is used, as fully specified by the current NWG FTProtocol ๐
- RJE Command Language - The RJE system is controlled by a command stream from the User over the TELNET connection. That stream specifies the user's identity (logon), the source of the job input file, the status, and any changes to job status or output disposition. Extra commands that affect output disposition can also be included in the job input file. This command language gets its own explicit specification in a later section of this protocol ๐
- RJE Command Replies - Every command the User inputs via TELNET, plus certain other conditions, calls for a response message from the RJE-server back to the User over the TELNET connection ๐ These messages are formatted in a standard way so that both human Users and User processes can interpret them easily. A later section of this protocol specifies the response messages.
RJE COMMANDS OVER TELNET CONNECTION ๐
GENERAL CONVENTIONS
- All commands are contained in one input line, terminated by the standard TELNET "crlf". The line can be any length the user wants (explicitly not restricted to a physical terminal line width). The characters "cr" and "lf" are ignored by the RJE-server, except in the explicit order "crlf", and they can be used as needed for local terminal control ๐
- All commands begin with a recognized command name, and may then contain recognized syntactic element strings and free-form variable strings (for userid, pathnames, etc.) โจ Recognized words are alphanumeric strings (letters and digits) or punctuation. Recognized alphanumeric string elements must be separated from each other, and from unrecognizable strings, by at least one blank or a syntactically permitted punctuation. Other blanks can be used freely before or after any syntactic element. The "=" after the command name is optional in all commands except OUT and CHANGE.
- Recognized alphanumeric strings can mix upper case and lower case letters in any combination, with no syntactic difference. Unrecognizable strings are used exactly as presented, with full upper and lower case distinction, unless the host that finally uses the string defines otherwise ๐ซถ
- There are two types of unrecognizable strings: final and imbedded ๐ง Final strings appear as the last syntactic element of a command. They're parsed as starting at the next non-blank character of the input stream, and continuing to the last non-blank character before the "crlf".
Imbedded strings include "job-id" and "job-file-id" in the OUT, CHANGE, and ALTER commands. For now these fields are left undelimited, since they only need to be recognizable by the server host, which hopefully can recognize its own job-ids and file-names ๐
SYNTAX
The following command descriptions are written in a BNF-like syntax ๐ฅ Parenthesized names are non-terminal syntactic elements, which get expanded in the equations that follow. Each equation has the defined name on the left of the ::=, and a set of alternative definitions on the right, separated by slashes /. The equations for (host-file) and (disp) use the characters / and ( ) explicitly in their definitions. In those cases, the quotes aren't part of the definition. They surround literal text that is part of it ๐
USER ๐
USER = (user-id)
This command must be the first command over a new TELNET connection ๐ As such, it starts a "logon" sequence. The response to this command is one of the following:
a) User code in error. b) Enter password (if usercode ok) c) Log-on ok, proceed. (if no password required)
Another USER command can be sent by the User at any time to change Users. Further input is then charged to the new user. A server may refuse to honor a new user command if it can't process it in its current state (during input file transfer, for example). But the protocol permits the USER command at any time without altering previous activity ๐ฆ An incorrect later USER command, or its following PASS command, is ignored with an error response, and the original User stays logged in.
It's permissible for a server to close the TELNET connection if the initial USER/PASS commands aren't completed within a server-specified time period โฐ
It is not required or implied that the "logged-on" User be the user-id used for file transfer or job execution. The logged-on User only identifies the submitter of the command stream ๐ธ Servers establish their own rules relating User-id to the job-execution user for Job or Output alteration commands.
A successful "log-on" always clears any previous Input or Output default parameters (INID, etc.) โจ
PASS ๐
PASS = (password)
This command immediately follows a USER command and completes the "log-on" procedure ๐ Even though a particular Server may not require a password, and has already said "log-on ok" after the USER command, every Server must permit a PASS command (and may ignore it), and acknowledge it with a "log-on ok" if the log-on is completed ๐ซถ
BYE ๐
BYE
This command terminates a USER. If input transfer isn't in progress, it closes the TELNET connection. If input is in progress, the connection stays open for the result response, and then closes. In the meantime, a new USER command (and no other command) is acceptable ๐
An unexpected close on the TELNET connection causes the server to take the effective action of an ABORT and BYE ๐ญ
INID/INPASS ๐ง
INID = (user-id)
INPASS = (password)
The specified Userid and Password are sent in the File Transfer request to retrieve the input file ๐ These parameters aren't used by the Server in any other way. If this command doesn't appear, the USER/PASS parameters are used instead โจ
INPATH/INPUT ๐ฆ
(part 2 is coming, babe ๐ )
INPATH = (pathname)
INPUT = (pathname)
INPUT
NOTE: The following syntax will also be used for output
(pathname).
(pathname)::= (host-socket) / (host-file)
(host-socket)::= (host),(socket) / (socket)
no (host) part implies the User-site host
(host)::= (decimal-integer) / (standard-host-name)
(socket)::= (decimal-integer) / PORT (decimal-integer)
(decimal-integer) implies explicit socket, lower bit
will be set appropriately for the direction
PORT implies the specified port-sockets for a TIP
Tip-Socket = Port * 2**16 + (2 or 3)
(host-file)::= (host)(attributes)"/"(file-name)
(attributes)::= (empty) / : (transmission)(code)
(transmission)::= (empty) / T / A / N
(empty) implies default which is
N for Input files
A for output files
T specifies TELNET-like coding with imbedded "crlf"
for new-line, "ff" for new-page
N specifies FTP blocked transfer with record marks
but without other carriage-control
A specifies FTP blocked records with ASA carriage-
control (column 1 of image is forms control)
(code)::= (empty) / E
(empty) specifies NVT ASCII code
E specifies EBCDIC (TE not allowed)
(file-name)::= (any string recognized by the
FTP Server at the site of the file)
okay so the (pathname) thing is the general RJE way to say where a file comes from or goes to ๐๐ it's giving very flexible energy. If you use the (host-socket) form, the RJE-Server does a direct transfer to the named socket using TELNET-like ASCII ๐ฆ. If you use the (host-file) form, the RJE-server calls up its local FTP-user process to do the actual transfer ๐ง. In that mode the data is either TELNET-like ASCII or blocked records, and blocked records might use column 1 for ASA carriage-control ๐
. A mode is allowed on input (column 1 gets deleted), but honestly the usual choice would be the default N ๐ธ. The output default A supplies carriage-control in the first character of each record ("blank" means single-space, "1" means new-page, and so on), while the optional N mode only transfers the data, like sending it to a card punch ๐ญ๐ซถ.
The (file-name) is an arbitrary Unrecognized string that the RJE-server saves and then sends back over FTP to the FTP-server so it can retrieve or store the right files ๐.
INPATH or INPUT commands first store the specified (pathname) if you give one, and then the INPUT command starts the input โจ. The INPATH name can be used to set a pathname for a later INPUT, and an INPUT without a pathname will start input over a pathname you already set ๐. An INPUT "crlf" command with no previous (pathname) specified is illegal ๐.
ABORT โจ
ABORT
This command aborts any input retrieval in progress, discards already received records, and closes the retrieval connection ๐.
Note: ABORT with parameters is an Output Transmission control. ๐ฅ
OUTUSER/OUTPASS ๐ง
OUTUSER = (user-id) OUTPASS = (password)
The specified Userid and Password get sent in the File Transfer request to send the output file(s) ๐. These parameters aren't used by the Server in any other way ๐. If this command doesn't show up, then the USER/PASS parameters get used instead ๐ฆ.
OUT ๐ธ
OUT (out-file) = (disp)(pathname)
(out-file)::= (empty) / (job-file-id)
(empty) implies the primary print file of the job
(job-file-id)::= (string representing a specific output file
from the job as recognized by the Server)
(disp)::= (empty) / "(H)" / "(S)" / "(D)"
(empty) specifies Transmit then discard
(H) specifies Hold-only, do not transmit
(S) specifies Transmit and Save
(D) specified discard without transmitting
Note: Parentheses are part of the above elements.
(pathname) see INPUT command
This command sets the disposition of output file(s) the job produces ๐. Files you don't specify are Hold-only by default ๐ซถ. The OUTUSER, OUTPASS, and OUT commands must be specified before the INPUT command to work ๐ . They affect any following jobs this USER submits over this RJE-TELNET connection โจ. A particular job can override them with NET control cards at the front of its input file ๐.
Once the output disposition is set by this OUT command or by a NET OUT card, the info stays with the job until final output disposition, and you can still change it with the CHANGE command ๐.
OUTPUT RE-ROUTE ๐ฆ
CHANGE (job-id)(out-file) = (disp)(pathname)
This command changes the output disposition that came with the job submission โญ. The (job-id) is assumed to be recognizable by the RJE-server, which may check whether this USER is allowed to modify that job ๐ฅ. Once the job is identified, the rest has the same syntax and meaning as the original OUT command ๐. A CHANGE command can name a job-file-id that wasn't mentioned at submission time, and it works the same as an original OUT command would ๐ง.
OUTPUT CONTROLS DURING TRANSMISSION ๐
(command)(count)(what)
(command)::= RESTART / RECOVER / BACK / SKIP / ABORT / HOLD
these commands specify
Restart the transmission (new RFC, etc.)
Recover restarts transmission from last
FTP Restart-marker-reply (see FTP).
Back up the output "count" blocks
Skip the output forward "count" blocks
Abort the output, discarding it
Hold the output after Aborting it
(count)::= (empty) / (decimal-integer)
(empty) implies 1 where defined
(what)::= @(pathname) / (job-id)(job-file-id)
(pathname) is as in the INP command
(job-id)::= (server recognized job identifier which was
supplied at INP completion by the server)
(job-file-id)::= (server recognized file identifier or
if missing then the prime printer output
of the specified job)
These commands change the transmission of output that's in progress or was recently aborted ๐ธ. If output transmission gets cut off before it finishes, the RJE-server will either try to resend the whole file (if the file's (disp) was Transmit-and-discard) or Hold the file for more User control (if the (disp) was (S) transmit-and Save) ๐ญ. These commands work during transmission, during the Save part of a transmit-and-Save, or for a Hold-only file ๐. The @(pathname) form of (what) is only allowed if transmission is actually in progress ๐.
If the file's state doesn't match the command, then the command is illegal and gets ignored with a reply ๐.
STATUS ๐
STATUS
STATUS (job-id)
These commands ask for the status of the RJE-server or of one particular job, respectively ๐ง. What the Status reply contains depends on the site โจ.
CANCEL/ALTER ๐ฅ
CANCEL (job-id)
ALTER (job-id) (site dependent options)
These commands change the course of a submitted job ๐ . CANCEL means the job gets terminated right away and any output is discarded ๐. ALTER handles system dependent options, like changing job priority, process limits, Terminate without Cancel, and so on ๐.
OP ๐
OP (any string)
The string you give gets displayed to the Server site operator when any following job starts being serviced from the Server's batch queue ๐ฆ. This command usually shows up in the input file as a NET OP control card, but it can also be a TELNET command ๐ซถ. It's cancelled as an all-jobs command by an OP "crlf" command (no text supplied) ๐ธ.
RJE CONTROL CARDS IN THE INPUT FILE โญ
Certain RJE commands can be specified by control cards at the front of the input file ๐. If these controls show up, they win over the same command given through the RJE-TELNET connection, and they only affect this specific job ๐ .
All these RJE control cards have to be the first records of the job's input-file ๐. They all contain the control word NET in columns 1-2 ๐ง. Scanning for these controls stops when the first card without NET in col 1-3 is encountered ๐.
The control commands go in individual records and end with the end-of-record (usually an 80 column card-image) ๐. You can continue onto the next record by putting NET+ in columns 1-4 of that next record ๐. Column 5 of the next record immediately follows the last character of the previous record ๐.
NET OUTUSER = (userid)
NET OUTPASS = (password)
NET OUT (out-file) = (disp)(pathname)
NET OP (any string)
See the corresponding TELNET commands for details ๐ซถ. One option the NET OUTUSER and NET OUT controls allow, which isn't possible over the TELNET connection, is specifying different OUTUSERs for different OUTs ๐ฅ. That's because TELNET only stores and supplies one initial OUTUSER, but the controls can change OUTUSERs before each OUT control is encountered ๐ .
RJE USE OF FILE TRANSFER PROTOCOL ๐ง
Most non-TIP files get transferred to or from the RJE-server through the FTP process ๐ธ. The RJE-server calls up its local FTP-user and supplies the Host, File-pathname, User-id, Password, and Mode of the transfer it wants โจ. The FTP-user then connects to its FTP-server counterpart on the specified host and sets up a transfer path ๐. Data then flows through the RJE-FTP interface in the Server, over the Network, to or from the foreign FTP-server, and then to or from the specified File-pathname in the foreign host's file storage space ๐ญ. For output files, the file-pathname might be recognized by the foreign host as directions to a printer, or the file might just get stored ๐. A User-RJE-process can supply the output (pathname) by default, which its own Server-FTP recognizes as routing to a printer ๐ฆ.
A lot of the RJE-Server/User-FTP interface details are going to be site dependent ๐. But there are several FTP options that RJE-Servers will use in a standard way ๐ :
- A new FTP connection gets initiated for each file to be transferred. The connection gets opened with the RJE User supplied User-id (OUTUSER or INUSER) and Password. ๐
- The data bytesize will be 8 bits. ๐
- The FTP Type, Structure, and Mode parameters are determined by the RJE transfer direction (I/O) and the (transmission and (code) options the User supplied: ๐ซถ
I/O (TRANS) (CODE) FTP TYPE STRUCTURE MODE
----------------------------------------------------
I* N - Ascii R Hasp
I N E Image R Hasp
I T - Ascii F Ascii
I A - Ascii R Hasp
I A E Image R Hasp
O* A - Ascii-print R Hasp
O A E Ebcdic-print R Hasp
O N - Ascii R Hasp
O N E Image R Hasp
O T - Ascii-print F Ascii
Note: The I* and O* are the default cases.
- Okay so the service commands are
Retrievefor input andAppend(with create) for output ๐โจ. The FTP pathname is the (filename) the RJE User gives us ๐. - On output in Hasp form, the User-FTP at the RJE-Server site sends Restart-markers at periodic intervals (like every 100 lines or so) and remembers the latest Restart-marker-reply for the file ๐. If the transfer doesn't finish and the (disp) is (S), the file gets held until the User steps in ๐ซถ. The User can then use the
RECOVERcommand to restart FTP from that last remembered Restart-marker-reply ๐๐. - The FTP Abort command handles the
ABORTandCANCELcommands for RJE ๐.
The exact FTP commands an RJE-Server site uses, and the order it uses them in, aren't specified in this protocol ๐คทโโ๏ธโจ.
Errors from FTP fall into three buckets: a) access errors or no storage space errors, b) command format errors, and c) transfer failure errors ๐จ. Since the RJE-Server process builds the commands, an error is a programming problem, so it should be logged for attention and handled as safely as possible ๐ . A transmission failure or access failure on input causes an effective ABORT and a user notification ๐ โโ๏ธ. A transmission failure on output causes either a RESTART or a Save, depending on (disp). See the OUT command for that ๐ฎ. Access failure on output is the tricky one because the User might not be reachable ๐ญ. In that case a status response should be queued for that user in case they ask later, a (disp)=(S) file should be Held, and a (disp)=(empty) transmit-and-discard file should be kept around for a bit and then discarded after a reasonable time if nobody claims it ๐ง.
REPLIES OVER THE TELNET CONNECTION ๐ฌโจ
Every action the RJE-server takes, including every TELNET command that comes in, gets noted over the TELNET connection to the User ๐ก. These RJE-server replies are formatted so that a human or a program can read them. Each one starts with a 3-digit numeric code, then a blank, then a text explanation ๐. The numbers are grouped on purpose so there's room to grow and maybe cover other protocols besides RJE, like FTP ๐. The code is built to be easy for programs to read, and the three digits break down like this:
a) The first digit tells you the "type" of response:
000 These "replies" are purely informative, and are issued
voluntarily by the Server to inform a User of some state of
the server's system.
100 Replies to a specific status inquiry. These replies server as
both information and as acknowledgement of the status request.
200 Positive acknowledgement of some previous command/request.
The reply 200 is a generalized "ok" for commands which require
no other comment. Other 2xx replies are specified for
specific successful actions.
300 Incomplete information supplied so far. No major problem, but
activity can not proceed with the input supplied.
400 Unsuccessful reply. A request was correctly specified, but
could not be correctly completed. Further attempts will
require User commands.
500 Incorrect or illegal command. The command or its
parameters were invalid or incomplete from a syntactic view,
or the command is inconsistent with a previous command. The
command in question has been totally ignored.
600-900 Reserved for expansion.
b) The second digit tells you the general subject the response is about:
x00-x29 General purpose replies, not assignable to other subjects.
x30 Primary access. There replies refer to the attempt to "log-
on" to a Server service (RJE, FTP, etc.).
x40 Secondary access. The primary Server is commenting on its
ability to access a secondary service (RJE must log-on to a
remote FTP service).
x50 FTP results.
x60 RJE results.
x70-x99 Reserved for expansion.
c) The last digit picks out a specific message type ๐. Since a program is the one reading these codes, not every variation of a reply needs its own number. The basic meaning just needs a unique number. The text can explain the specific reason to the human User ๐.
Each TELNET line from the Server, ended by "crlf", is meant to be one complete reply message ๐. If a reply has to run onto more lines, those continuation lines begin with a special reply code made of three blanks ๐.
The assigned reply codes for RJE are:
000 General information message (time of day, etc.)
030 Server availability information
050 FTP commentary or user information
060 RJE or Batch system commentary or information
100 System status reply
150 File status reply
151 Directory listing reply
160 RJE system general status reply
161 RJE job status reply
200 Last command received ok
201 An ABORT has terminated activity, as requested
202 ABORT request ignored, no activity in progress
203 The requested Transmission Control has taken effect
230 LOG-on completed
231 Log-off completed, goodbye.
232 Log-off noted, will complete when transfer done
240 File transfer has started
250 FTP file transfer started ok
251 FTP Restart-marker-reply
Text is: MARK yyyy = mmmm
where yyyy is data stream marker value (yours)
and mmmm is receiver's equivalent mark (mine)
252 FTP transfer completed ok
253 Rename completed
254 Delete completed
260 Job (job-id) accepted for processing
261 Job (job-id) completed, awaiting output transfer
262 Job (job-id) Cancelled as requested
263 Job (job-id) Altered as requested to state (status)
300 Connection greeting message, awaiting input
301 Current command not completed
(may be sent after suitable delay, if no "crlf")
330 Enter password
(may be sent with hide-your-input mode)
360 INPUT has never specified an INPATH
400 This service is not implemented
401 This service is not accepting log-on now, goodbye.
430 Log-on time or tries exceeded, goodbye.
431 Log-on unsuccessful, user and/or password invalid
432 User not valid for this service
434 Log-out forced by operator action, please phone site
435 Log-out forced by system problem
436 Service shutting down, goodbye.
440 RJE could not log-on to remote FTP for input transfer
441 RJE could not access the specified input file through FTP
442 RJE could not establish (host-socket) input connection
443 RJE could not log-on to remote FTP for output delivery
444 RJE could not access file space given for output
445 RJE could not establish (host-socket) output connection
450 FTP: The named file does not exist (or access denied)
451 FTP: The named file space not accessible by YOU
452 FTP: Transfer not completed, data connection closed
453 FTP: Transfer not completed, insufficient storage space
460 Job input not completed, ABORT performed
461 Job format not acceptable for processing, Cancelled
462 Job previously accepted has mysteriously been lost
463 Job previously accepted did not complete
464 Job-id referenced by STATUS, CANCEL, ALTER, CHANGE, or
Transmission Control is not known (or access denied)
465 Requested Alteration not permitted for the specified job
466 Un-deliverable, un-claimed output for (job-id) discarded
500 Last command line completely unrecognized
501 Syntax of the last command is incorrect
502 Last command incomplete, parameters missing
503 Last command invalid, illegal parameter combination
504 Last command invalid, action not possible at this time
505 Last command conflicts illegally with previous command(s)
506 Requested action not implemented by this Server
SEQUENCING OF COMMANDS AND REPLIES ๐ฌ
The User and the Server are supposed to take turns, like a little dialogue ๐ฃ๏ธ๐. The User sends an RJE command and the Server answers with a prompt primary reply. The User waits for that first success-or-failure reply before sending anything else ๐โณ.
The Server also sends a second kind of reply, and it doesn't wait for User commands to arrive first ๐. These replies track how a job submission is going when it was kicked off by the INPUT command, so they count as secondary replies to that command ๐.
The last class of Server "replies" is purely informational and can show up at any time ๐ธ. These are listed below as spontaneous โจ.
COMMAND-REPLY CORRESPONDENCE TABLE ๐๏ธ
COMMAND Success Fail
------- ------- ----
USER 230,330 430,431,432,500-505
PASS 230 430,431,432,500-505
BYE 231,232 500-505
INID 200 500-505
INPASS 200 500-505
INPATH 200 500-505
INPUT 240 360,440-442,500-505
sec. Input retrieval 260 460,461
sec. Job execution 261 462,463
sec. Output Transmission -- 443,444,445,446
ABORT (input) 201,202 500-505
OUTUSER 200 500-505
OUTPASS 200 500-505
OUT 200 500-505
CHANGE 200 500-505
RESTART/RECOVER/BACK/
SKIP/ABORT(output)/HOLD 203 464,500-506
STATUS 1xx 464,500-505
CANCEL 262 464,500-506
ALTER 263 464,465,500-506
OP 200 500-505
Spontaneous 0xx,300,301 434-436
Heads up ๐: for commands that come in on cards, the 200 isn't sent, but the 500-505 errors may still be sent asynchronously ๐.
TYPICAL RJE SCENARIOS ๐งโโ๏ธ๐
- TIP USER WANTING HOT CARD READER TO HOSTX
a) TIP user opens TELNET connection to HOSTX socket 5
b) Commands sent over TELNET to RJE
USER=myself
PASS=dorwssap
OUT=PORT 7
INPUT=PORT 5
c) RJE-server connects to the User's host port 5 and begins
reading. When end-of-job card is recognized, the job is queued
to run. The connection to the card reader is still open for
more input as another job
d) The first job finishes. A connection to the Users host port 7
is established by RJE-server and the output is sent as an NVT
stream.
e) Continue at any time with another deck at step c).
- TIP WITH JOB-AT-A-TIME CARD READER
a) thru d) the same but User closes Reader after the deck
e) The output finishes and the printer connection closes.
f) INPUT may be typed any time after step c) finishes and another
job will be entered starting at c).
3. HOSTA USER RUNS JOB AT HOSTC, INPUT FROM HOSTB โจ
okay so this one is a whole scenario bestie ๐ง a user at HOSTA runs a job on HOSTC, but the input comes from HOSTB. main character energy fr ๐
a) the user's TELNET connects to HOSTC socket 5 for RJE ๐ and they log in with these details:
USER=roundabout
PASS=aaabbbc
OUTUSER=roundab1
OUT=:E/.sysprinter
OUT puncher = (s)HOSTB:NE/my.savepunch
INUSER=rounder
INPASS=x.x.x
INPUT=HOSTB:E/my.jobinput
b) the RJE-server has FTP grab the input from HOSTB ๐ฅ using the Userid of rounder and the Password of x.x.x for the file named my.jobinput. it's giving organized.
c) the job finishes ๐ and the RJE-server uses FTP to send two files back. the print output goes to HOSTA in EBCDIC with ASA carriage control, into the file .sysprinter ๐จ๏ธ. meanwhile, the file known as puncher goes to HOSTB in EBCDIC without carriage control, into the file my.savepunch ๐
d) when the outputs are done, the RJE-server at HOSTC discards the print file but keeps the puncher file ๐๏ธโจ the puncher file is literally the one that survives, iykyk.
e) the user signed out after submitting the job, so now they've got their output and have checked my.savepunch at HOSTB ๐ฅน to delete the saved copy at HOSTC, they call RJE at HOSTC again:
USER=roundabout
PASS=aaabbbcc
ABORT job123 puncher
or by
CHANGE job123 puncher = (D)
eagle eyes ๐ the password in e) is aaabbbcc, one extra c compared to step a). copy it exactly, bestie ๐
and that's the whole arc, from submit to cleanup ๐ฆ
๐ฆ where this page comes from
- ietf: rfc360 1972-06
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms