File Transfer Options

File TransferOptions are all optional and are used to:

  • optimize file transfer (BufferSize, ConcurrentTransfer) and
  • ensure transfer has been completed and handle errors (TransactionalTransfer)

File transfer options are specified as child elements of the file transfer operations - e.g. Copy and Move - and apply to both the source and target parts of the transfer operation. 

Specification of File Transfer Options

File Transfer Options are defined using the FileTransferOptions elements. FileTransferOptions elements are specified as part of a file transfer Profile, as child elements of the Copy or Move elements as shown in the following hierarchy:

  • Profile
    • Operation
      • Copy
        • CopySource
          • Child elements ...
        • CopyTarget
          • Child elements ...
        • TransferOptions
      • Move
        • MoveSource
          • Child elements ...
        • MoveTarget
          • Child elements ...
        • TransferOptions

The YADE file transfer options are independent of the transfer protocol. As they apply to the transfer, it follows that they are independent of the source /target and are specified as sibling elements of - in the cases of a Move operation - the MoveSource and MoveTarget elements.

The TransferOptions element can have three children as listed below. The use of these child elements is described in the next sections:

  • TransferOptions
    • BufferSize
    • ConcurrentTransfer
      • MaxConcurrentTransfers
    • Transactional

Transfer Optimization 1 - Buffer Size

The BufferSize parameter element defines the maximum data block size. 

Transfer Optimization 2 - Concurrent Transfer

The ConcurrentTransfer element is used to allow parallel file transfer to occur.

A child element of ConcurrentTransfer - MaxConcurrentTransfers - can be used to limit the number of parallel transfers.

  • TransferOptions
    • ConcurrentTransfer
      • MaxConcurrentTransfers
       

Ensuring Transfer has been Completed

Transactional Transfer

This parameter specifies whether a transfer should be processed as a single transaction, i.e. whether all objects are to be successfully transferred or none at all.

Should an error occur during a transfer operation then transfers already carried out will be rolled back.

Transactional transfer is often used together with the following parameters:

  • Atomicity (a TargetFileOption for the CopyTarget and MoveTarget elements)
  • DisableOverwriteFiles (a TargetFileOption for the CopyTarget and MoveTarget elements)

See the Transactional parameter reference article for a detailed explanation of the dependencies between these elements.

Note that transactional transfer is not 100% reliable - there are situations where rollback will not be possible. This is also explained in detail in the Transactional parameter reference article.