Coding Interdependent Transfers

You can use the following parameters to code a set of interdependent transfers for CNF configuration files:
xdtw116
You can use the following parameters to code a set of interdependent transfers for CNF configuration files:
  • NEWXFER
    The parameter NEWXFER must be used at the beginning of each of the multiple transfer requests, as shown in the following diagram:
    ... ... ... transfer request 1 parameters ... ... ... #============================== CONTROL=NEWXFER #============================== ... ... ... transfer request 2 parameters ... ... ... #============================== CONTROL=NEWXFER #============================== ... ... ... transfer request 3 parameters ... ... ...
  • XTCNET 
    The parameter XTCNET is used to indicate which transfer requests belong to the same group (are dependent on each other). Suppose, for example, that the transfers XFER1, XFER2 and XFER3 need to be grouped. This can be accomplished simply by assigning the name of the group (say, GROUP1) to XTCNET and including XTCNET=GROUP1 in the definition of each of the three transfer requests.
  • XTCJOB 
    Each interdependent transfer request must have a unique name, which is assigned to the XTCJOB parameter. Thus, if XFER1, XFER2 and XFER3 are the names of three interdependent transfer requests, their transfer definitions must contain the parameter XTCJOB=XFER1, XTCJOB=XFER2, and XTCJOB=XFER3, respectively.
  • Other XTC Parameters
    XTC parameters other than XTCNET and XTCJOB are used to indicate the dependencies obtaining between the transfer requests. The outcome of a transfer request can affect as many as eight other transfer requests. In addition to the XTC parameters, other configuration parameters can (and some, for example, the local file name, must) be used when defining interdependent transfer requests.
  • HOLD_TRANSFER
    HOLD_TRANSFER=YES must be coded in each transfer request that depends the successful/unsuccessful completion of another transfer request (see Example 1).
  • HOLDCOUNT 
    However, HOLD_TRANSFER=YES do not need to be coded if the holding/releasing of the transfer request is controlled by the HOLDCOUNT parameter (see Example 2).
  • Multiple Jobs
    You can also define multiple jobs (see Example 3).
Example 1
This sample definition contains three interdependent transfer requests that are defined in a CNF configuration file.
TRANSFER_TYPE=4 REMOTE_SYSTEM=10.10.10.10 LOCAL_FILE=C:\TEMP\ABC.TXT REMOTE_FILE= C:\TEMP\REMOTE.TXT FILE_OPTION=REPLACE XTCNET=METS XTCJOB=PAYROLL HOLD_TRANSFER=YES #============================== CONTROL=NEWXFER #============================== TRANSFER_TYPE=4 REMOTE_SYSTEM=10.10.10.10 LOCAL_FILE=C:\TEMP\DEF.TXT REMOTE_FILE= C:\TEMP\REMOTE2.TXT XTCNET=METS XTCJOB=PAYME HOLD_TRANSFER=YES #============================== CONTROL=NEWXFER #============================== TRANSFER_TYPE=4 REMOTE_SYSTEM=10.10.10.10 LOCAL_FILE=C:\TEMP\GHI.TXT REMOTE_FILE= C:\TEMP\REMOTE3.TXT XTCNET=METS XTCJOB=GETDATA XTCGOODREL=PAYROLL XTCGOODPURGE=PAYME XTCERRPURGE=PAYROLL XTCERRREL=PAYME
In this example, the three transfer requests are identified as GETDATA, PAYME, and PAYROLL, and they belong to the group METS. Of these, GETDATA is the parent transfer request, that is, the request that tries to execute first and the execution of which controls the subsequent execution of the other two (dependent) transfer requests. Four XTC parameters (other than XTCNET and XTCJOB) are associated with the transfer request GETDATA. XTCGOODREL=PAYROLL means that the PAYROLL transfer belonging to the same group (METS) as GETDATA is to start if GETDATA completes successfully.
At the same time, the PAYME transfer is purged from the transfer request queue (XTCGOODPURGE=PAYME). However, if GETDATA does not complete successfully, then the PAYROLL transfer is purged (XTCERRPURGE=PAYROLL) and the PAYME transfer is to start (XTCERRREL=PAYME).
 XTC is not supported by QUEUE=NO transfer requests.
Example 2
This sample definition is controlled by the HOLDCOUNT parameter, as defined in a CNF configuration file.
TRANSFER_TYPE=4 REMOTE_SYSTEM=10.10.10.10 LOCAL_FILE=C:\TEMP\ABC.TXT REMOTE_FILE= C:\TEMP\REMOTE.TXT FILE_OPTION=REPLACE XTCNET=METS XTCJOB=PAYROLL HOLDCOUNT=2 #============================== CONTROL=NEWXFER #============================== TRANSFER_TYPE=4 REMOTE_SYSTEM=10.10.10.10 LOCAL_FILE=C:\TEMP\DEF.TXT REMOTE_FILE= C:\TEMP\REMOTE2.TXT XTCNET=METS XTCJOB=PAYME XTCGOODDECR=PAYROLL #============================== CONTROL=NEWXFER #============================== TRANSFER_TYPE=4 REMOTE_SYSTEM=10.10.10.10 LOCAL_FILE=C:\TEMP\GHI.TXT REMOTE_FILE= C:\TEMP\REMOTE3.TXT XTCNET=METS XTCJOB=GETDATA XTCGOODDECR=PAYROLL
In this example, the three transfer requests are identified as GETDATA, PAYME, and PAYROLL, and they belong to the group METS. Of these, PAYME and GETDATA are the parent transfer requests, that is, the requests that try to execute first. PAYME does not attempt to execute until the HOLDCOUNT value is zero.
XTCGOODDECR=PAYROLL means that the PAYROLL transfer belonging to the same group (METS) as GETDATA is to have its HOLDCOUNT value that is decremented if GETDATA completes successfully. Similarly, XTCGOODDECR=PAYROLL in PAYME in the same group (METS) also decrements the HOLDCOUNT value in PAYROLL if PAYME completes successfully.
If both GETDATA and PAYME complete successfully, the HOLDCOUNT value in PAYROLL becomes zero, and then PAYROLL attempts to be executed. However, if either GETDATA or PAYME fails, the PAYROLL HOLDCOUNT value remains with a non-zero value and PAYROLL is not executed.
Example 3
You can also define multiple jobs,for example, XTCGOODREL=PAYROLL,PAYME,PAYROLL. A sample definition for a CNF configuration file is as follows:
#============================== CONTROL=NEWXFER #============================== TRANSFER_TYPE=4 REMOTE_SYSTEM=10.10.10.10 LOCAL_FILE=C:\TEMP\GHI.TXT REMOTE_FILE= C:\TEMP\REMOTE3.TXT XTCNET=METS XTCJOB=GETDATA XTCGOODREL=PAYROLL,PAYME,PAYROLL XTCGOODPURGE=PAYME XTCERRPURGE=PAYROLL XTCERRREL=PAYME