You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 13 Next »

Introduction

  • JS7 makes use of the YADE Add-on for transfer of files using a number of protocols such as FTP, FTPS, SFTP, WebDAV, HTTP/HTTPS etc.
  • The JS7 Agent ships with a YADE client installation that is available in the yade sub-directory of the Agent's home directory.
  • In addition to the JS7 - Order History and JS7 - Task History the JS7 - File Transfer History is available, displaying detailed results about transfers and files included.

File Transfer Jobs

Usage of the YADE Client

File Transfer jobs are technically shell jobs that execute the YADE command line interface (CLI). Therefore the job script looks like this:


YADE Client Job Script example
#!/bin/sh

$JS7_YADE_BIN \
  -profile $YADE_PROFILE \
  -file_path $YADE_FILE_PATH


Explanation:

  • The job script can make use of a number of JS7 - Job Environment Variables that are automatically available. This includes any environment variables prefixed with JS7 such as:
    • JS7_YADE_BIN points to the YADE start script that is available
      • for Windows from %JS7_AGENT_HOME%/yade/bin/yade.cmd
      • for Unix from $JS7_AGENT_HOME/yade/bin/yade.sh
    • JS7_YADE_CONFIG_DIR points to the YADE configuration directory that corresponds to the Agent's configuration directory, i.e. JS7_AGENT_CONFIG_DIR
  • The following environment variables are specific to this File Transfer job as they are mapped from order variables and node arguments, see JS7 - Order Variables:
    • YADE_PROFILE is the name of the profile to be applied from the the YADE configuration file.
    • YADE_FILE_PATH is the path of the file to be transferred.
  • The mapping of order variables and optionally node arguments to environment variables for the job looks like:


  • The declaration of the above order variables looks like:



  • Note that use of default values is not required. If no default value is specified then the order has to specify a value for the variable in question.

Parameterization of the YADE Client

The YADE Client allows a number of additional command line arguments to be specified:


YADE Client Job Script Parameterization example
#!/bin/sh

# Any environment variables assigned the job are automatically applied if used by the YADE profile

$JS7_YADE_BIN \
  -settings $JS7_YADE_CONFIG_DIR/yade.xml \
  -profile $YADE_PROFILE \
  -java-options "-Xmx32m" \
  -log-level debug

Explanation:

  • The following command line arguments can be used with a File Transfer job:
    • -settings is the path to a YADE *.xml or *.ini configuration file that holds fragments and profiles for transfer of files.
      • YADE configurations can be managed from the Configuration -> File Transfer View and can be exported to *.xml files.
      • As the YADE configuration file has to be located with an Agent we recommend manually deploying or transferring this file to the Agent.
    • -profile is the name of the profile to be applied from the the YADE configuration file.
    • -java-options are options for the Java Virtual Machine. Frequently such options are used to specify the maximum heap size. By default YADE will use 32 MB, however, if 1000s of files are transferred with a single call to the YADE Client, e.g. when using a file specification to transfer any files from a directory, then it will be necessary to increase the default heap size.
    • -log-level enables to specify Log4j2 log level indicators such as info, debug, trace that will provide more detailed information, e.g. in case that files permanently could not be transferred.
  • The job script does not indicate a specific selection of files for transfer. This gives you two options:
    1. Hard-wire the file selection directly with the YADE configuration file (yade.xml).
    2. Specify the file selection from an order variable that is mapped to an environment variable with the job script. Use this environment variable with the YADE configuration.
      • Example:
        • Add an environment variable such as e.g. YADE_FILE_SPEC to your mapping of environment variables.
          • The value can be a hard-wired regular expression:



          • The value can be mapped from an order variable or node argument:


        • The YADE configuration can makes use of the ${YADE_FILE_SPEC} environment variable that will be substituted at run-time, e.g. with:



        • Note that this mechanism can be used for any environment variable names that are available for a job and with the YADE configuration.

File Transfer View

The File Transfer View allows monitoring of current transfers and detailed checking of past and present transfers:


Explanation:

  • The view shows details about each transfer such as
    • the source, target, transfer result that are reported individually for each file included in a transfer,
    • any errors occurring during transfer.
  • The Advanced Search allows individual files to be looked up by name, path etc.

File Transfer Security

The YADE supports a number of mechanisms to secure file transfer operation:

  • Connection Management
    • Use of secure protocols such as SFTP, FTPS, WebDAVS
    • Use of private/public keys for authentication
    • Use of a YADE Credential Store for file transfer connections
  • Access Management
  • Logging
    • The JS7 - Logging stores information about access by users, including connection attempts and permission violations.
    • The JS7 - Audit Log stores information about any operations on file transfers such as starting, stopping a transfer.
    • The JS7 - History holds information about past file transfers.

The above building blocks allow to implement secure file transfers for compliance with standards such as HIPPA, PCI-DSS, SOX etc. For further information see Is YADE compliant to some information security standard?

File Transfer Operation

Parallelism of File Transfers

Any number of parallel file transfer jobs can be executed. There is no built-in limit to parallelism.

  • Memory requirements typically include 32 MB for a YADE job.
  • CPU consumption is somewhat higher when loading the YADE Client, however this will be modest during transfer of a file.

YADE jobs are executed in separate OS processes. Therefore there is no interference between jobs.

Mutual Exclusive File Transfers

High parallelism of file transfers can exhaust resources such as an SFTP server that receives a larger number of parallel requests.

In this situation consider to use the JS7 - Resource Locks to implement an exclusive lock or a shared lock that will limit parallel access to a resource. Any file transfer jobs that cannot immediately acquire a Resource Lock will wait until the lock is freed.


  • No labels