RFC 499

Harvard's network RJE

πŸ“… published April 1973, from ietf

HARVARD'S NETWORK RJE πŸŽ€

  • Network Working Group 🧚
  • Request for Comments: 499
  • NIC: 15716
  • Author: B. Reussow, Center for Research in Computing Technology, Harvard University
  • Date: April 1 1973
  • Obsoletes / Updates: The original doesn't list anything it obsoletes or updates.

Section I ✨

okay so RJE was designed to give network users a way to submit jobs to remote servers over the ARPA net and then pull the results back using Harvard's PDP-10. it's giving remote batch processing πŸ’…

bestie, to be an expert at using RJE from a remote host, you need to know your FTP commands and usage 🫢. right now RJE only exists for UCLA, so every example in here is about the UCLA installation. you have to sort out a password and a job ID with UCLA before you can start. if you're interested, we'll make an account up for you. people at other sites should go straight to UCLA to get one πŸ’œ

Section II πŸ¦‹

HOW TO USE RJE AT HARVARD

start the program by typing R RJE<CR> at monitor level. RJE will reply with a ! ✨

then type RJE UCL<CR> to make the TELNET connection. this connection carries your commands over to UCLA and brings error messages from UCLA back to you. the important thing to know is that you're talking to two systems at once πŸ‘€: the local system (HARV-10) and the remote host where the job will actually run. so there are two command processors, one local and one foreign πŸ”₯

COMMANDS TO THE LOCAL (HARVARD) PROCESS

every command to the local process starts with a * πŸ’–

*READ LDEV:FILENAME.EXTENSION<CR>

this one reads the file you point at (job cards, JCL, program and data all in there). it formats the file for RJS at UCLA and ships it over a data connection. when it's using that data connection, ASCII files get translated into EBCDIC, which is what the UCLA end expects. once the transfer is done, the file is spooled for processing right away πŸš€

*PRINT LDEV:FILENAME.EXTENSION<CR>

this grabs the next print file from UCLA's 91 and reformats it for a PDP-10 line printer. then it writes the file to your chosen logical device under the FILENAME.EXTENSION you gave it. FILENAME can be up to 6 characters and EXTENSION up to 3 characters πŸ“

*QUIT<CR>

this tears down every connection RJE is using and sends you back to monitor level πŸ‘‹

COMMANDS TO THE REMOTE PROCESS (UCLA RJS COMMANDS)

commands to the remote process don't have any special character in front of them 🌸 for an explanation of the command arguments, ask Terry Sack for the document called RJS OPERATOR COMMANDS FOR REMOTE TERMINALS.

Terminal Control and Information Command

Terminal Control and Information Command
-------- ------- --- ----------- -------

SIGNON              First command of a session identifies VRBT
                    (virtual remote batch terminal) by giving its
                    terminal ID.  For UCLA, Harvard's terminal ID is
                    NETHARV.

SIGNOFF             Last command of a session; RJS waits for any data
                    transfer in progress to complete and then closes
                    all connections.

STATUS              Outputs on the local user's terminal a complete
                    list, or a summary, of all jobs in the system for
                    this VRBT, with an indication of their
                    progressing status in the Model 91.

ALERT               Outputs on the user's terminal any special
                    "Alert" message from the CCN computer operator.
                    The Alert message is also automatically sent when
                    the user does a SIGNON, or whenever the message
                    changes.

MSG                 Sends a message to CCN computer operator or to
                    any other RJS terminal (real or virtual).  A
                    message from the computer operator or another RJS
                    terminal will automatically appear on the user's
                    terminal.

ok the terminal control stuff is giving vibes of checking in and checking your status ✨ SIGNON is your first move, and it's how you tell RJS which VRBT you are (for UCLA, Harvard's is NETHARV). SIGNOFF is the last one, and RJS waits for any transfer that's still going before it closes everything 🫢 STATUS shows your jobs and how far along they are on the Model 91. ALERT shows any special Alert from the CCN operator, and it gets sent automatically when you SIGNON or whenever the message changes πŸ’€ MSG lets you message the operator or any other RJS terminal, and replies show up on your screen automatically πŸ’¬

Job Control and Routing Commands

Job Control and Routing Commands
--- ------- --- ------- --------

bestie, this part is the main character energy πŸ‘‘ under CCN's job management system, the default output destination is the input source. so a job you submit under a given VRET gets sent back to that VRBT (the same terminal ID), unless your JCL overrides the default destination πŸŽ€

RJS puts print and punch output meant for a particular remote terminal into either an Active Queue or a Deferred Queue 🧚 when you open your print or punch channel (with the *PRINT command of RJE), RJS starts sending job output from the Active Queue right away and keeps going until that queue is empty. Deferred Queue output is different. RJS won't send it until someone asks for it by job name (with a RESET command from the remote operator) πŸ™ˆ which queue a job's output lands in depends on the VRBT's deferral status when the job gets entered. that status is set to Active when you sign on, and you can change it with the SET command 🌈

SET                 Allows the remote user to change certain
                    properties of his VRBT for the duration of the
                    current session

                    (a) May change the default output destination to
                    be another (real or virtual) RJS terminal or the
                    central facility.

                    (b) May change the deferral status of the VRBT.

DEFER               Moves the print and punch output for a specified
                    job or set of jobs from the Active Queue to the
                    Deferred Queue.  If the job's output is in
                    process of being transmitted over a channel, RJS
                    aborts the channel and saves the current output
                    location before moving the job to the Deferred
                    Queue.  A subsequent RESET command will return it
                    to the Active Queue with an implied Backspace
                    (BSP).

RESET               Moves specified job(s) from Deferred to Active
                    Queue so they may be sent to user.  A specific
                    list of job names or all jobs can be moved with
                    one RESET command.

ROUTE               Re-routes output of specified jobs (or all jobs)
                    waiting in the Active and Deferred Queues for
                    this VRBT.  The new destination may be any other
                    RJS terminal or the central facility.

ABORT               Cancels a job which was successfully submitted
                    and awaiting execution or is currently executing
                    in the Model 91.  If the cancelled job was in
                    execution, all output it produced will be
                    returned.

so SET lets you switch your default output destination (to another RJS terminal or the central facility) or change your VRBT's deferral status, but only for the current session πŸ’… DEFER moves a job's print and punch output from Active to Deferred. if that output was already going over a channel, RJS aborts the channel and saves where it was before moving the job πŸ’” a later RESET brings it back to Active with an implied Backspace (BSP) πŸ¦‹ RESET moves job(s) from Deferred to Active so they can be sent to you, and you can do a list of names or all jobs in one go 🫢 ROUTE re-routes output for specific jobs (or all of them) that are waiting in either queue, and the new destination can be any other RJS terminal or the central facility πŸš€ ABORT cancels a job that was submitted and is waiting, or one that's running on the Model 91. if it was running, you still get all the output it made πŸ“

Output Stream Control Commands

Output Stream Control Commands
------ ------ ------- --------

BSP (BACKSPACE)     Backspaces output stream within current SYSOUT
                    data set.  Actual amount backspaced depends upon
                    SYSOUT blocking but is typically equivalent to a
                    page on the line printer.

CAN (CANCEL)        (a) On an output channel, CAN causes the rest of
                    the output in the SYSOUT data set currently being
                    transmitted to be omitted.  Alternatively, may
                    omit the rest of the SYSOUT data sets for the job
                    currently being transmitted; however, the
                    remaining system and accounting messages will be
                    sent.

                    (b) On an input channel, CAN causes RJS to ignore
                    the job currently being read.  However, the
                    channel is not aborted as a result, and RJS will
                    continue reading in jobs on the channel.

                    (c) CAN can delete all SYSOUT data sets for
                    specified job(s) waiting in Active or Deferred
                    Queue.

RST (RESTART)       (a) Restarts a specified output stream at the
                    beginning of the current SYSOUT data set or,
                    optionally, at the beginning of the job.

                    (b) Marks as restarted specified job(s) whose
                    transmission was earlier interrupted by system
                    failure or user action (e.g., DEFER command or
                    aborting the channel).  When RJS transmits these
                    jobs again, it will start at the beginning of the
                    partially transmitted SYSOUT data set or,
                    optionally, at the beginning of the job.  This
                    function may be applied to jobs in either the
                    Active or the Deferred Queue; however, if the job
                    was in the Deferred Queue then RST also moves it
                    to the Active Queue.  If the job was never
                    transmitted, RST has no effect other than this
                    queue movement.

REPEAT              Sends additional copies of the output of
                    specified jobs.

EAM                 Echoes the card reader stream back in the printer
                    or punch stream, or both.

last group, the output stream stuff πŸŽ€ BSP backspaces the output stream inside the current SYSOUT data set. how far it goes depends on the SYSOUT blocking, but it's usually about one page on the line printer πŸ“„ CAN (CANCEL) is kind of iconic πŸ™…β€β™€οΈ. on an output channel, it skips the rest of the SYSOUT data set being sent (or the rest of the SYSOUT data sets for that job, though the leftover system and accounting messages still go out). on an input channel, it makes RJS ignore the job it's reading, but the channel stays open and RJS keeps reading jobs. CAN can also delete all the SYSOUT data sets for specific jobs sitting in either queue πŸ’€ RST (RESTART) starts an output stream over at the beginning of the current SYSOUT data set, or at the beginning of the job if you pick that. it can also mark jobs that got interrupted by a system failure or by you (like a DEFER or an aborted channel) so that they restart from the beginning of the partly sent data set or the job. if the job was in Deferred, RST moves it to Active too. if it never got sent, RST just does the queue move and that's it ✨ REPEAT sends extra copies of the output for specific jobs 🌸 and EAM echoes the card reader stream into the printer stream, the punch stream, or both 🧚

Section III 🌈

USE OF RJE FROM A REMOTE HOST

to use RJE from a remote host, make a TELNET connection to Harvard's 10 with your TELNET program. then log in under one of Harvard's guest accounts by typing LOGIN <CR>. LOGIN will prompt you with a #. when it does, type 62,# <CR>. then answer all the questions it asks πŸ’–

USING FTP TO TRANSFER FILES

here are the prompts you'll see πŸ‘€

  • * is the prompt from FTP when no network connections are established.
  • ! is the prompt when network connections are open.

type R FTP<CR>, then type Host host # or abbreviation <CR> to set up a TELNET connection. the local FTP process will then type the foreign host's greeting message 🫢

if you're transferring files to or from something other than a PDP-10, type the commands TYPE A and BYTE 8, each one followed by a carriage return πŸ”₯

!USER 'Your project, programmer number'<CR>
      Tell the server who you are.  The USR command should be the
      first command to FTP.

!RETRIEVE FILENAME.EXTENSION <CR>
      Retrieve a file from the foreign host.  After the message
      "transfer completed" has been typed, use the QUIT command.

!QUIT<CR>
      Break connections return to monitor level.  After you have
      transfered your files consult Section II for the usage of RJE.

so USER tells the server who you are, and it should be the first FTP command you send πŸ’… RETRIEVE grabs a file from the foreign host, and once you see "transfer completed" you use QUIT πŸ¦‹ QUIT breaks the connections and drops you back at monitor level. after you've moved your files, check out Section II for how to use RJE πŸ’œ

Warning!!!

🚨 The RJE program formats printer output for a PDP-10 line printer. If you plan to use another type of printer, special arrangements will have to be made.
🚨 Also, never leave a file on Harvard's disk area when detached. A detached job is a job to which no terminal is assigned. You may find that your file is gone when you come back. We have limited disk resources and, if a crisis arises, files belonging to detached jobs are subject to deletion. πŸ’€

[ This RFC was put into machine readable form for entry ] [ into the online RFC archives by Via Genie]

πŸ“¦ where this page comes from