home *** CD-ROM | disk | FTP | other *** search
/ Unix System Administration Handbook 1997 October / usah_oct97.iso / rfc / 100s / rfc105.txt < prev    next >
Text File  |  1997-04-02  |  22KB  |  508 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                     James E. White
  8. Request for Comments: 105                         Computer Research Lab.
  9. Category: Informational                         University of California
  10.                                                Santa Barbara, California
  11.                                                               March 1971
  12.  
  13.                        Network Specifications for
  14.                             Remote Job Entry
  15.                                   and
  16.                       Remote Job Output Retrieval
  17.                                 at UCSB
  18.  
  19.  
  20.      In the discussions that follow, 'byte' means 8 bits, with those
  21. eight bits numbered 0-7 from left to right.
  22.  
  23. I - Remote Job Entry (RJE)
  24.  
  25.      UCSB will accept input of pseudo card files for batch processing
  26. at socket number x'200', site 3.  Network users should obtain an
  27. account number from the UCSB Computer Center; account #1025,
  28. programmer names 'UCLA', 'SRI', 'UTAH', etc. may be used during
  29. checkout.  The 360/75 runs under OS MVT and HASP.  Users submit jobs
  30. to HASP for scheduling and subsequent execution by OS through an
  31. intermediary process hereafter called RJE which is addressed as socket
  32. number x'200' and can be invoked through the Logger.  This section is
  33. intended to provide programmers with the information necessary to
  34. communicate with RJE; the is assumed familiar with the batch services
  35. offered by the Computer Center, and with its job control language
  36. (JCL) requirements.
  37.  
  38.      RJE conducts all Network transactions through the NCP, which
  39. operates under the Host-Host protocol of 3 August 1970.  It expects
  40. the first message it receives to be Type 0, discards the first eight
  41. bits (the message type) assuming them to be zeros, and thereafter for
  42. the life of the connection takes no notice of IMP-message boundaries.
  43.  
  44. I.A - Logging into RJE
  45.  
  46.      To submit one or more jobs for batch processing, the Network user
  47. must establish a simplex connection with RJE.  RJE is core resident
  48. only while such a simplex connection is established (i.e., while a
  49. user is transmitting a file).  At all other times, it resides on
  50. direct-access storage and must be invoked through the Logger.  A login
  51. sequence can always be initiated by requesting connection to socket
  52. x'200'.  RJE does not serve multiple users simultaneously.  This if a
  53. connection request is made to that socket while RJE is in use, the NCP
  54. will queue the request.  When the current file transmission is
  55.  
  56.  
  57.  
  58. White                                                           [Page 1]
  59.  
  60. RFC 105                       RJE at UCSB                     March 1971
  61.  
  62.  
  63. complete, RJE will listen for and accept the next request (if any) in
  64. its queue; if no requests are queued for it, it will terminate
  65. execution, releasing the main storage it occupied.  At times when RJE
  66. is not in core, the Logger listens on socket x'200', and will reject
  67. the first call it receives, read RJE into core, and dispatch it.  RJE
  68. will then list on that socket.  Thus to initiate a login sequence, the
  69. user requests connection to socket x'200'.  If accepted, he is in
  70. contact with RJE.  If rejected, he should reissue the connection
  71. request; when accepted, he will be connected to RJE.  A second
  72. rejection would indicate that the NCP's resources were exhausted.
  73. Once the connection has been established, RJE will consider the user
  74. logged in.
  75.  
  76.      To prevent RJE from being monopolized by a single user, provision
  77. is made within the software for terminating a connection if RJE is
  78. ever required to wait more than a certain amount of time for a
  79. transmission from the connected user.  For now, this time limit has
  80. been set at one minute per record, but it may be shortened or
  81. lengthened as required in the future.  Barring such termination, RJE
  82. will maintain its connection to the user indefinitely.  Card images
  83. will be accepted over the connection, and each one will be passed to
  84. HASP as it is received.  The user is expected to close the connection
  85. once his file has been transmitted.  RJE will interpret that action as
  86. an end-of-file indication, and the user will be considered logged off.
  87.  
  88. I.B - The RJE Connection
  89.  
  90.      RJE expects the first byte of data it receives over the
  91. connection established with it to be zeros, indicating message Type 0;
  92. it discards this byte unexamined, and thereafter, attaches no
  93. significance to IMP-message boundaries.  The second byte of data
  94. received is interpreted as flags specifying the format of the data
  95. (file) to follow.  The byte is interpreted as follows:
  96.  
  97.      Bits 0-1 = 00:  file follows as Class A (stream-oriented)
  98.                      input.
  99.               = 01:  not defined, should not occur.
  100.               = 10:  file follows as Class B (variable-length
  101.                      record) input.
  102.               = 11:  file follows as Class C (fixed-length record)
  103.                      input.
  104.      Bits 2-7     :  not examined, should be zeros.
  105.  
  106. Once made, this declaration prevails for the life of the connection.
  107.  
  108.      Regardless of the input class specified, the user transmits his
  109. file as card images, each of which will be padded on the right with
  110. blanks or truncated on the right to 80 bytes if necessary.  The file
  111.  
  112.  
  113.  
  114. White                                                           [Page 2]
  115.  
  116. RFC 105                       RJE at UCSB                     March 1971
  117.  
  118.  
  119. transmitted must be structured exactly as if it were being placed on
  120. the card reader at the Computer Center.  A job card and all the other,
  121. usual JCL must be present for each job in the file (batching of jobs
  122. is permissible and is transparent to RJE).  For any job which requires
  123. that special (non-resident) disk(s) and/or tape(s) to be mounted, a
  124. special JCL card must be inserted immediately after the job card for
  125. that job, and it must have the format:
  126.  
  127.         /*SETUP        vol-ser , vol-ser ,...
  128.                               1         2
  129.  
  130. where 'vol-ser ' is the volume serial number of a volume requiring
  131.               i
  132. mounting.  '/*SETUP' begins in column 1; 'vol-ser ' must begin in
  133.                                                  1
  134. column 16.  The job will then enter the System in a HASP hold status
  135. until the required volume(s) can be mounted by the operator.  If the
  136. user neglects to declare all such required volumes, his job is subject
  137. to immediate cancellation.  All cards of the file which are not
  138. contained in a SYSIN data set must consist of valid, EBCDIC
  139. characters.
  140.  
  141. I.B.1 - Class A (Stream-Oriented) Input
  142.  
  143.     If input to RJE has been declared as Class A, the third byte of data
  144. received over the connection by RJE is interpreted as a break character
  145. declaration.  Each byte received thereafter is compared to that
  146. character.  Any other character is taken to be the next byte of the
  147. current card image.  Whenever the break character is encountered, the
  148. previous byte is taken to be the last byte of the current card image,
  149. which is then padded or truncated as required and passed to HASP.  Zero
  150. or more non-break characters may occur between occurrences of the break
  151. character.  Thus when Class A input is specified, data transmitted to
  152. RJE shall have the following form:
  153.  
  154.     1       1       1            variable         1
  155. +-------+-------+-------+  / +------//--------+-------+ \
  156. |       |       | BREAK | /  |                | BREAK |  \
  157. | x'00' | x'00' | CHAR. | \  |  CARD  IMAGE   | CHAR. |  / ...
  158. +-------+-------+-------+  \ +------//--------+-------+ /
  159.  
  160. where the length of each field has been specified in bytes.  Zero or
  161. more occurrences of the quantity in parentheses [angle brackets] may be
  162. transmitted before the connection is closed by the user.
  163.  
  164. I.B.2 - Class B (Variable-Length Record) Input
  165.  
  166.      If input to RJE has been declared as Class B, then all input after
  167.  
  168.  
  169.  
  170. White                                                           [Page 3]
  171.  
  172. RFC 105                       RJE at UCSB                     March 1971
  173.  
  174.  
  175. the initial two bytes is expected to consist of a contiguous string of
  176. variable length records, each consisting of a one-byte op code (the op
  177. code should be x'01'), a two-byte length field which specifies the
  178. unsigned length in bits of the variable-length text field which follows.
  179. The text field may be zero or more bytes in length; the length field
  180. must contain an integer which is a multiple of 8.  The text field
  181. represents one card image, which is padded or truncated by RJE as
  182. required and passed to HASP.  Thus when Class B input is specified, data
  183. transmitted to RJE shall have the form:
  184.  
  185.     1       1            1       2      L bits
  186. +-------+-------+  / +-------+-------+-----//-----+ \
  187. |       |       | /  |       |       |    TEXT    |  \
  188. | x'00' | x'80' | \  | x'01' |   L   | card image |  / ...
  189. +-------+-------+  \ +-------+-------+-----//-----+ /
  190.  
  191. where the length of each field has been specified in bytes, except where
  192. stated to the contrary.  Zero or more occurrences of the quantity in
  193. parentheses [angle brackets] may be transmitted before the connection is
  194. closed.
  195.  
  196. I.B.3 - Class C (Fixed-Length Record) Input
  197.  
  198.      If input to RJE has been declared as Class C, then all input after
  199. the initial two bytes is expected to consist of a contiguous string of
  200. fixed-length, 80-byte card images.  Thus, when Class C input is
  201. specified, data transmitted to RJE shall have the form:
  202.  
  203.     1       1                  80
  204. +-------+-------+  / +--------------------+ \
  205. |       |       | /  |                    |  \
  206. | x'00' | x'C0' | \  |     card image     |  / ...
  207. +-------+-------+  \ +--------------------+ /
  208.  
  209. where the length of each field has been specified in bytes.  Zero or
  210. more occurrences of the quantity in parentheses [angle brackets] may be
  211. transmitted before the connection is closed.
  212.  
  213. II - Remote Job Output Retrieval (RJOR)
  214.  
  215.      Class A SYSOUT output from jobs submitted through RJE for batch
  216. processing at UCSB may be obtained by contacting socket x'300', site 3,
  217. provided that when the job was submitted, the character 'T' appeared as
  218. the eighth positional accounting parameter on the job card.  Output is
  219. retrieved upon request and relayed to the Network user by a process
  220. hereafter called RJOR which is addressed as socket x'300'.  RJOR can be
  221. invoked through the Logger.  This section is intended to provide
  222. programmers with the information necessary to communicate with RJOR.
  223.  
  224.  
  225.  
  226. White                                                           [Page 4]
  227.  
  228. RFC 105                       RJE at UCSB                     March 1971
  229.  
  230.  
  231.      RJOR conducts all Network transactions through the NCP, which
  232. operates under the Host-Host protocol of 3 August 1970.  RJOR expects
  233. the first message it receives to be Type 0, discards the first byte,
  234. assuming it to be zeros, and thereafter for the life of the connection
  235. takes no notice of IMP-message boundaries.  Similarly, the first message
  236. sent by RJOR is of Type 0: the first byte consists of zeros, and
  237. thereafter for the life of the connection, IMP-message boundaries are
  238. not significant.
  239.  
  240. II.A - Logging into RJOR
  241.  
  242.      To obtain output from a batch-mode job, the Network user must
  243. establish a full duplex connection with RJOR.  RJOR is core resident
  244. only while in use (i.e., while control information or a file is being
  245. transmitted to or from a user, or while RJOR is waiting for a previously
  246. requested output file (or files)).  At all other times, it resides on
  247. direct-access storage and must be invoked through the Logger.  A login
  248. sequence can always be initiated by requesting connection to socket
  249. x'300'.  If a connection request is made to that socket while another
  250. user is being logged in, the NCP will queue the request.  After the
  251. current connection is terminated, RJOR will listen for and accept the
  252. next request (in any) in its queue; if no requests are queued for it and
  253. if it has fulfilled all of its output file requests, it will terminate
  254. execution, releasing the main storage it occupied.  At times when RJOR
  255. is not in core, the Logger listens on socket x'300', and will reject the
  256. first call it receives, read RJOR into core, and dispatch it.  RJOR will
  257. then listen on that socket.  Thus to initiate a login sequence, the user
  258. requests connection to socket x'300'.  If accepted, he is in contact
  259. with RJOR.  If rejected, he should reissue the connection request; when
  260. accepted, he will be connected to RJOR.  A second rejection would
  261. indicate that the NCP's resources were exhausted.  Once this first half
  262. of the required duplex connection has been established, RJOR will
  263. consider the user logged in.
  264.  
  265.      Over this first connection (hereafter called the Input Connection),
  266. the user transmits flags designating the function(s) to be performed by
  267. RJOR, and the name of the job to which the function(s) is(are) to be
  268. applied.  RJOR then closes this connection.  RJOR transmits control
  269. information specifying the disposition of the user's request and the
  270. output file (if requested) over a secondary connection involving RJOR's
  271. socket number x'301', site 3, and the socket at the user's site whose
  272. socket number is one less than that on which RJOR was contacted by the
  273. user.  The user's request may or may not be immediately executable.  If
  274. the former is the case, RJOR issues a connection request to the
  275. designated user receive socket, and when the connection is established
  276. transmits whatever control information is appropriate along with the
  277. user's output (if required); RJOR then closes the connection and the
  278. user is considered logged out.  If the user's request cannot be
  279.  
  280.  
  281.  
  282. White                                                           [Page 5]
  283.  
  284. RFC 105                       RJE at UCSB                     March 1971
  285.  
  286.  
  287. immediately satisfied (e.g., the job whose output is sought hasn't been
  288. submitted yet or hasn't finished execution), the second connection is
  289. opened by RJOR just long enough to inform the user of the delay, and
  290. then closed.  Then when the request can be serviced, the connection is
  291. reopened, the required data transmitted, and the connection closed; the
  292. user is then considered logged out.
  293.  
  294.      To prevent RJOR from being monopolized by a single user, provision
  295. is made within the software for terminating a connection if RJOR is ever
  296. required to wait more than a certain amount of time for completion of a
  297. transmission to or from the connected user.  For now, this time limit
  298. has been set at one minute per record, but it may be shortened or
  299. lengthened as required in the future.
  300.  
  301. II.B - The Input Connection
  302.  
  303.      RJOR expects the first byte of data it receives over the Input
  304. Connection to be zeros, indicating message Type 0; it discards this byte
  305. unexamined, and thereafter, attaches no significance to IMP-message
  306. boundaries.  The second byte of data received is interpreted as flags
  307. specifying the function(s) to be performed.  Following the flag byte,
  308. RJOR expects an eight-byte, EBCDIC job name, padded on the right with
  309. blanks if necessary.  The flag byte is interpreted as follows:
  310.  
  311.      Bit 0 = 1:  transmit the output generated by the specified job.
  312.      Bit 1 = 1:  purge the output file created by the specified job.
  313.      Bit 2 = 1:  wait as long as is required to execute the
  314.                  function(s) specified by Bits 0-1.
  315.            = 0:  if the function(s) specified by Bits 0-1 cannot be
  316.                  executed immediately, simply return an indication of
  317.                  that fact.
  318.      Bit 3 = 1:  an earlier request pertaining to the specified job
  319.                  which exercised the wait-for-output (Bit 2) option
  320.                  is to be canceled.
  321.      Bits  4-7:  not examined, should be zeros.
  322.  
  323. Any combination of Bits 0-2 is permissible.  If Bit 3 = 1, no other bits
  324. are examined.  If Bit 0 = 1 and Bit 1 = 1, the output file is
  325. transmitted before it is purged.  If two jobs with the same name are
  326. executed in succession, output from the second job will overlay that
  327. produced by the first.  In such cases, the user should purge the output
  328. from the first job after it has been transmitted to him so that a
  329. request for output from the second job will not simply return a second
  330. copy of the first job's output.
  331.  
  332. II.C - The Output Connection
  333.  
  334.      RJOR may open the output connection either one or two times as the
  335.  
  336.  
  337.  
  338. White                                                           [Page 6]
  339.  
  340. RFC 105                       RJE at UCSB                     March 1971
  341.  
  342.  
  343. result of a single transmission on the Input Connection.  In each case,
  344. the first byte transmitted will consist of zeros indicating message Type
  345. 0, and thereafter for the life of the connection, IMP-message boundaries
  346. are not significant.  Following the first byte, RJOR will transmit the
  347. name of the job to which the response applies.  The job name will be
  348. contained in an 8-byte field identical to that supplied by the user over
  349. the Input Connection.  Following the job name, RJOR will transmit zero
  350. or more variable length logical records.  Each will consist of a one-
  351. byte op code, a two-byte length field which specifies the unsigned
  352. length in bits of the variable length text field which follows.  The
  353. text field may be zero or more bytes in length; the length field will
  354. contain an integer which is a multiple of eight.
  355.  
  356.      The op codes presently defined are listed in Figure 1.  An op code
  357. of x'01' indicates that the text field contains one record of one of the
  358. SYSOUT data sets created by the job whose output was requested.  The
  359. length fields of all logical records with an op code of x'01' will be
  360. identical.  For data sets with record lengths other than this value,
  361. records are padded on the right side with blanks or truncated on the
  362. right to this standard record length.  Carriage control characters which
  363. would ordinarily appear in column 1 for printer-destined output have
  364. been discarded and do not appear.* The records are transmitted to the
  365. user in the same sequence as they would be printed on the printer, and
  366. collectively include everything that would appear in printed output with
  367. the exception of HASP separator sheets.
  368.  
  369.      In all logical records but those with an op code of x'01', the
  370. length field contains the value zero, and the op code conveys the entire
  371. meaning of the logical record.
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388. ________________________________________________________________________
  389. *This restriction is temporary; a fix is in the works and will be
  390. announced.
  391.  
  392.  
  393.  
  394. White                                                           [Page 7]
  395.  
  396. RFC 105                       RJE at UCSB                     March 1971
  397.  
  398.  
  399. Figure 1.  Output Connection Op Codes
  400. ---------  --------------------------
  401.  
  402. Op Code
  403.  (Hex)    Name                   Explanation
  404. -------   ----                   -----------
  405.  
  406.   00      End-of-File.           All output from the job has been
  407.                                  transmitted (follows last op-code-x'01'
  408.                                  logical record).
  409.   01      Output.                The text field contains one record of
  410.                                  one SYSOUT data set generated by the
  411.                                  job.
  412.   02      Output file purged.    Output from the job has been purged as
  413.                                  requested.
  414.   03      No core for buffer.    Insufficient main storage is available
  415.                                  for transmitting output from the job.
  416.                                  The transmission request has been
  417.                                  aborted and the purge request (if any)
  418.                                  has been suppressed.
  419.   04      I/O Error reading      An irrecoverable I/O error was
  420.           file.                  encountered reading the output file.
  421.                                  The transmission request has been
  422.                                  aborted and the purge request (if any)
  423.                                  suppressed.
  424.   05      I/O Error purging      An irrecoverable I/O error was
  425.           file.                  encountered purging the output file.
  426.                                  The purge request was aborted.
  427.   06      No queue space for     Output from the job was not available
  428.           request.               and the wait-for-output option was
  429.                                  specified, but RJOR's resources were
  430.                                  insufficient to queue the request,
  431.                                  which was suppressed.
  432.   07      Waiting for output.    Output from the job is not available
  433.                                  and the wait-for-output option was
  434.                                  specified.  RJOR is waiting for the
  435.                                  job's output.
  436.   08      Canceled request not   The user requested that a previously
  437.           found.                 made request specifying the
  438.                                  wait-for-output option be canceled.  No
  439.                                  such request was found by RJOR.
  440.   09      Request canceled.      At the user's request, a previously
  441.                                  made request specifying the
  442.                                  wait-for-output option has been
  443.                                  canceled.
  444.   0A      I/O Error seeking      An irrecoverable I/O error was
  445.           file.                  encountered attempting to locate output
  446.                                  from the job.  The user's request was
  447.  
  448.  
  449.  
  450. White                                                           [Page 8]
  451.  
  452. RFC 105                       RJE at UCSB                     March 1971
  453.  
  454.  
  455.                                  aborted.
  456.   0B      Output not found.      Output from the job was not found.  The
  457.                                  wait-for-output option was not
  458.                                  specified by the user.
  459.  
  460.        [ This RFC was put into machine readable form for entry ]
  461.          [ into the online RFC archives by Randy Dunlap 4/97 ]
  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. White                                                           [Page 9]
  507.  
  508.