Send Request
You can execute the Send Request program (XRRCVREQ) on the host on the receiving side to request a remote host to send a file.
Before you execute the Send Request program (XRRCVREQ), you must run the Receive program (XRRCV) on the local host as well as the Send program (XRSND) and the Observe program (XRACCPT) on the remote host. In addition, you must correctly register the management information that is required for the Send processing on the remote host.
(1) Send Request Program (XRRCVREQ)
Program Name
XRRCVREQ
XRSYSIN Definition Card
This card defines the System Environment Settings of HULFT system. For details on the definitions, refer to the explanation of the System Environment Settings in Administration Manual.
Format of definition card
HOST-NAME=Local Host Name DOMAIN=Local Domain Name RETRY=Retry Count on Connection Error HSTCHA=Case Options for Local Host Name or Local Domain Name TIMEOUT=Socket Read Timeout TCPIP=Address Space Name of TCP/IP MSGDYNPARM=Message Dynamic Parameter Specification OPLSELECT=Operation Log Output Option (*1) SNDSOCKSIZE=Socket Buffer Size for Data Sending RCVSOCKSIZE=Socket Buffer Size for Data Receiving SCANMODE=Handling of Cancelation of Synchronous Transfer HULCHARSET=HULFT Character Set
*1 |
: |
When you use the operation log output function, you must include definitions related to operation logs. For details, refer to Definitions for operation logs. |
On the remote host, you must define the local host name and the local domain name on the XRSYSIN definition card. You need to specify these fields in the Send Management Information for the transfer group ID of the file that the remote host will send.
XRCARD Definition Card
Format of definition card
a b c d e xxxxxxxx,[xxxx...xxxx],[SYNC[,TIME=999999]][,MSG0=xxxx...xxxx] [,MSG1=xxxx...xxxx][,MSG2=xxxx...xxxx][,MSG3=xxxx...xxxx] [,MSG4=xxxx...xxxx][,MSG5=xxxx...xxxx] f [,MSGL0=xxxx...xxxx][,MSGL1=xxxx...xxxx]
If the definition card spans two lines, use either of the following two methods to define the definition card:
-
Describe the first line up to column 71, and then insert a hyphen (-) in column 72. Describe the second line starting in column 1.
-
Describe a line up to a comma (,) that follows a parameter, insert a single-byte space, and then insert a hyphen (-) in column 71 or before.
Input contents of definition card
- a. File ID
-
This parameter defines the file ID of the file that you request the remote host to send. (Mandatory)
Specify an alphanumeric string within 50 bytes for this parameter.
- b. Host name
-
This parameter defines the name of the remote host to which you issue a request for the Send processing. (Optional)
Specify an alphanumeric string within 50 bytes for this parameter.
Defaulting this parameter issues the request to all the hosts that are registered for the transfer group ID in the Receive Management Information.
- c. Synchronous Transfer
-
This parameter is defined to stop job steps of the Send Request program (XRRCVREQ) until the Receive processing ends. (Optional)
When you define multiple definition cards, after a definition card is processed successfully or unsuccessfully, the processing of the next definition card starts.
- d. Synchronous Transfer time-out
-
This parameter defines the Synchronous Transfer time-out for the Send Request in seconds. (Optional)
Define the duration of synchronization during which the local host can receive the processing result of the Synchronous Transfer from the remote host.
Specify a value from '10' to '259200' for this parameter. If you specify a value outside of this range, an error occurs. Defaulting this parameter sets '36000.'
When the defined time-out value is reached, a time-out occurs even if the Receive processing is in progress. Note that if it occurs, the Send Request program (XRRCVREQ) does not receive the transfer results.
To define the time-out for the Synchronous Transfer, you must define 'SYNC.' The Synchronous Transfer time-out is enabled when the version of HULFT on the remote host is Ver.6.3.0 or higher.
- e. Message0 to message5
-
These parameters define messages that are sent to the host on the sending side. (Optional)
Define a string within 50 bytes for each message. If you default these parameters, messages are not sent to the host on the sending side. You can define up to six messages. For example, when you send message0, specify the message for 'MSG0.'
- f. Long message0 to long message1
-
These parameters define long messages that are sent to the host on the sending side. (Optional)
Define a string within 200 bytes for each message. If you default these parameters, long messages are not sent to the host on the sending side.
You can define up to two long messages. For example, when you send long message0, specify the message for 'MSGL0.'
When you define only the File ID, you can omit commas.
When you default the Host Name or the Synchronous Transfer, include the corresponding commas in the definition card.
- Example:
-
Case where you define the File ID and Message0 to Message5
FILE01,,,MSG0=HULFT.DATA
-
When you use the following characters in a message or a long message, enclose the entire message within single quotations ('):
-
Space
-
Equal sign (=)
-
Comma (,)
-
Multibyte characters
-
-
You cannot specify the following in a message:
-
Single quotation marks (')
-
-
When you define a variable from 'MSG0' to 'MSG5' or from 'MSGL0' to 'MSGL1' on the XRCRD definition card, replacement with message may end unsuccessfully and the transmission may fail, due to the language setting of the remote host. For points to be noted on message transmission, refer to Administration Manual.
Example of JCL
//XRRCVREQ JOB CLASS=A,MSGCLASS=B //XRRCVREQ EXEC PGM=XRRCVREQ,REGION=4096K //STEPLIB DD DSN=HULFT.LOAD,DISP=SHR //XRSYSIN DD DSN=HULFT.PARMLIB(HULPRM),DISP=SHR //XRFILE DD DSN=HULFT.FILE,DISP=SHR //XRHOST DD DSN=HULFT.HOST,DISP=SHR //IPGET DD DSN=HULFT.HOSTS.LOCAL,DISP=SHR //*SYSTCPD DD DSN=TCPIVP.TCPPARMS(TCPDATA),DISP=SHR //SYSOUT DD SYSOUT=* //XRCARD DD * LOOPTEST,ZOS //
DD Name |
Value |
Description |
---|---|---|
STEPLIB |
HULFT.LOAD |
HULFT load module library |
XRSYSIN |
HULFT.PARMLIB(HULPRM) |
System Environment Settings File |
XRFILE |
HULFT.FILE |
Send and Receive Management File |
XRHOST |
HULFT.HOST |
Host Information File |
IPGET |
HULFT.HOSTS.LOCAL |
IP Management File |
SYSTCPD |
TCPIVP.TCPPARMS(TCPDATA) |
TCPIP.DATA Data Set |
-
For the Send Request with the Synchronous Transfer, the conditions that enable the Synchronous Transfer time-out vary depending on whether the requestee-side host runs HULFT for Mainframe or not.
-
Case where the requestee-side host runs HULFT for Mainframe
The Synchronous Transfer time-out is enabled only when all of the following conditions are fulfilled:
-
The version of HULFT on both request issuing side and the requestee-side are Ver.6.3 or higher.
-
The Wait Synchronous Observe Mode (REQWAITMODE) in the System Environment Settings on the requestee-side host is set as '1.'
-
The Synchronous Transfer time-out is defined on the host on the requestor side.
If any of the conditions are not fulfilled, a time-out does not occur in HULFT for Mainframe on the requestee-side host even when you define the Synchronous Transfer time-out. However, if the processing takes longer than the non-communication time-out, a non-communication time-out of the Send Request occurs.
-
-
Case where the requestee-side host does not run HULFT for Mainframe
The Synchronous Transfer time-out is enabled only when both of the following conditions are fulfilled:
-
The version of HULFT on both request issuing side and the requestee-side are Ver.6.3 or higher.
-
The Synchronous Transfer time-out is defined on the host on the requestor side.
If any of the conditions are not fulfilled, HULFT sets the Synchronous Transfer time-out to 36000 seconds. Therefore, if you do not define 36000 seconds or higher for the Socket Read Timeout (TIMEOUT) in the System Environment Settings, a time-out of the Send Request (non-communication time-out) occurs when the Socket Read Timeout is reached.
-
-
-
When you define the Synchronous Transfer, you cannot specify the Receive file in DD statements.
When you want to specify the Receive file in subsequent job steps, create a program that dynamically allocates the Receive file and carries out processing with the Receive file.