Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents
outlinh1. true
outlinh1. true
1printablefalse
2stylh1. none
3indent20px

Atomic Transfer

JADE YADE has many features to simplify day to day file transfer requirements. One of JADEYADE's feature is Atomic Transfer.

...

  • In some cases on a target server incoming files are automatically detected while being transferred by JADEYADE
    • either by applications that monitor directories for incoming files
    • or by FTP, SFTP server daemons.
  • In case of large files the data transfer could take some seconds and the directory watchers would detect the file as soon as some initial bytes are written on the target server.

...

To avoid any partially transferred file being picked up by the directory watchers JADE YADE has a built-in feature called atomic transfer.

  • JADE YADE has two parameters atomic_prefix and atomic_suffix to configure atomic transfer. 
  • As the name suggest, during file transfer JADE will create a temporary file on target server with atomic_prefix and atomic_suffix in the filename, thus make it virtually hidden for the directory watchers. 
  • As soon as file transfer has completed without error, then JADE renames the file to its original name. In case of any error partially transferred files will be deleted from the target server.

...

The user can apply any character or word as prefix/suffix as long as a directory watcher would not recognize the prefix/suffix being a valid part of the expected file name.

...

YADE JITL Job Example

Code Block
languagehtml/xml
<job
     title = "API Job for JobScheduler Advanced Data Exchange"
     order = "yes"  stop_on_error = "no" >

     <description>
       <include file = "jobs/JADE-Job.xml" />
     </description>
    
     <params>
       <param name = "atomic_prefix" value = "~" />
       <param name = "atomic_suffix" value = "~" />
       <param name = "file_spec"     value = "^report\.csv$" />
       <param name = "host"          value = "ftp.example.com" />
       <param name = "local_dir"     value = "." />
       <param name = "operation"     value = "copy" />
       <param name = "passive_mode"  value = "false" />
       <param name = "password"      value = "top-secret" />       
       <param name = "remote_dir"    value = "." />       
     </params>

     <script language   = "java"
             java_class = "sos.scheduler.jade.JadeJob" >
     </script>
 </job>