TWiki> LCG Web>EGEEgLite>DataManagement>FTS>FTS22 (revision 19)EditAttachPDF

WARNING Preliminary documentation, use at own eek!

FTS 2.2 Documentation

A review of the FTS documentation.

Release status

Changes from previous version

Check the document describing changes from FTS version 2.1 to 2.2 for the list of new features, changes in service configuration and fixed bugs.

Service deployment model

The FTS service deployment model document describes the impact of outages of service components on the overall service quality, and suggests possible deployment scenarios.


Hardware requirements

You should install the FTS and FTA servers on reasonable Scientific Linux 4 machines, ideally of mid-range server-class.

It is recommended to have a least 512M memory, and a modern processor.

Large amounts of disk space are not critical, so a disk-server class machine is not needed.


  • There should be a valid host certificate and host key in /etc/grid-security/.
  • Your system should have Java installed on it, this is available from This is not provided by gLite for redistribution licensing restrictions. FTS uses other components from the JPackage repository. You can find more details about Java and JPackage installation at
  • Your system should have Oracle InstantClient installed on it. This is available from Oracle. The recommended version is currently You need at least oracle-instantclient-basic and oracle-instantclient-sqlplus for a successful installation.
  • For the host running the FTS web-service, the firewall should be open for incoming on port tcp/8443 for the web-service. The connection from the client to the web-service is secured with SSL/TLS.
  • For the host running the FTA agent daemons, the outgoing firewall (if present) should allow access to your MyProxy server, the database, all source SRM/gridFTP clusters and all destination SRM/gridFTP clusters.

Before you start

Read the Generic Installation and Configuration Guide

Read the generic installation guides:

Please note that YAIM is only used to configure the system. You have to install the service components either by YUM (via gLite metapackages) or by your local package management system.

For FTS-specific YAIM details, see the Configuration section.

Choose deployment scenario

Examine the possible deployment scenarios from the deployment model section and choose the one that best fits your needs.

The miniumum suggested configuration is:

  • two machine for the FTS web-service (for high availability)
  • one machine for all the FTA agent daemons (both the VO agents and the channel agents)

Both the web-service instances (if there is more than one) and the agent dameons can be (and should be) spread across machines for scalability.

Grid dependencies

FTS requires:

  • a MyProxy server
    • For legacy mode, the MyProxy server must be configured to allow the FTS host certificate to be an "authorized_retriever" (it should allow access from all machines running FTA agents).
    • For delegation renewal mode, FTS can use the same MyProxy as the WMS. Due to MyProxy restrictions, the server cannot be the same used by the resource broker to renew user credentials.
  • the production storage endpoints to be running SRM (currently SRM v2.2).
    • SRM services should publish themselves into the EGEE BDII information system. SRM v1.1 is still supported.

Prepare the site-info.def file

The site-wide YAIM configuration file, site-info.def, should be prepared in advance. It must contain the configuration for the web-service and agents machines.

Two template files are available:

  • /opt/glite/yaim/examples/siteinfo/site-info.def for site configuration.
  • /opt/glite/yaim/examples/fta-info.def for FTS/FTA.

The FTS/FTA example is provided separately as it contains many parameters. If you want to use the example, append it to the end of the example site-info.def file first. The structure of the configuration file and detailed configuration instructions are available in the #FtsYaimValues section.

Identify the agents you need

This will depend on what VO transfers your site is required to serve, and this depends on whether you are the tier-0 or a tier-1. Please read this document which describes the suggested channel deployment model. IS THIS DOCUMENT UP-TO-DATE??? Once you have identified the channels you need and the VOs that you want to serve, you will need to define:

  • An agent daemon for every VO you want to serve
  • An agent daemon for every channel you want to serve
If you are unsure of what agents you need and how to define them, there is an example at FtsServerDeployExampleTier1 : IS IT UP TO DATE???.

New installation

Package Installation

The package installation is managed by YUM.

In general you have to add the DAG and JPackage repositories besides the node specific gLite repository.

Using YUM:

cd /etc/yum.repos.d

There are two distinct server types to install, FTS (the web-service dameons) and FTA (the agent dameons). From the deployment model you have chosen, identify which machines will be running FTS web-service and which machines will be running FTA agents.

Installing FTS web-service

You need to add the FTS gLite repository and install the glite-FTS_oracle metapackage.

At the time of writing this document (2008-08-01) there are problems with the dependencies of ecj 1:3.3.0-2.jpp5, so it it recommended to install an older version by hand first: cd /etc/yum.repos.d wget yum install ecj-
yum install glite-FTS_oracle

Installing FTA agents

You need to add the FTA gLite repository and install the glite-FTA_oracle metapackage.

At the time of writing this document (2008-08-01) FTA uses an older version of the log4cpp package than the one in the DAG repository (v1.0), so you have to install the older version by hand: cd /etc/yum.repos.d wget yum install log4cpp-0.3.4b-1.slc4
yum install glite-FTS_oracle

Configuring and Starting services

On each node, run the YAIM configuration script, dependent on the node type.

Configuring FTS web-service

For the web-service nodes, run (note the name FTS2 rather than FTS):
/opt/glite/yaim/bin/yaim -c -s my-sitecfg.h -n  FTS2 
If you have a fresh database, it will stop with a note similar to:
Database schema does not appear to be loaded. Please load it using the command:
sqlplus fts_xxxx/xxxxxxxxx@(DESCRIPTION=(LOAD_BALANCE=no)(ADDRESS=(PROTOCOL=TCP)( @/opt/glite/etc/glite-data-transfer-fts/schema/oracle/oracle-schema.sql
Run the suggested command to load the schema and then rerun the YAIM configuration.

Depending on your connection string, you may have to put quotes around it, as:

sqlplus fts_xxxx/xxxxxxxxx@"(DESCRIPTION=(LOAD_BALANCE=no)(ADDRESS=(PROTOCOL=TCP)(" @/opt/glite/etc/glite-data-transfer-fts/schema/oracle/oracle-schema.sql
Normally oracle-instantclient adds itself to the dynamic library configuration via the /etc/ file. If it did not happen, then you may also have to add the library path first:
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/lib/oracle/ 
You have to use lib64 instead of lib on 64 bit platforms.

Starting the FTS web-service

To start the FTS web-service (if YAIM didn't already):
service tomcat5 start 
A single daemon will start under the tomcat:tomcat user.

Configuring the Initial Channels

You should start the web-service first and create the channels in the DB using the command glite-transfer-channel-add before configuring the FTA agent daemons. The FTA agent daemons will fail to start if the corresponding channel has not yet been created.

For every channel agent you have defined, create the channel using the command:

glite-transfer-channel-add SOURCE-DEST SITE1 SITE2 
To choose the agents' names, see the agents naming convention section in the configuration reference.

Channel parameters can be configured with the glite-transfer-channel-set command line tool.

Configuring FTA agents

For the agent nodes, run (note that the name is FTA2 rather than FTA):

/opt/glite/yaim/bin/yaim -c -s site-info.def -n FTA2 

Starting FTA agents

To start the FTA agent and information system caching daemons:

service transfer-agents start
service glite-sd2cache start

Every agent daemon that you have chosen to configure on the box will be started in sequence.

The second command will start a daemon that populates the services.xml information system cache file as it is described in FtsServicesXmlGliteSd2Cache. You may want to populate it cache initially by running

sh /etc/cron.daily/glite-sd2cache-cron 

To start a single agent daemon:

service transfer-agents start --instance glite-transfer-channel-agent-srmcopy-CERN-FNAL 

You can get a list of the names of the agents defined on the machine with the command

service transfer-agents status

Installing the history package

This moves old jobs away from the active schema so as to avoid performance problems. See FtsAdminTools20 ("History package") for this.

Setup your site BDII to publish the FTS information

The FTS web-service node is installed with a BDII GRIS where it publishes the FTS endpoints and the channels you have defined. Publish this contents of this resource BDII via your site BDII. This will then be picked up by the top-level BDII servers.

Register the FTS web-service node in the GOC database

Go to the GOCDB and register the FTS web-service node (or its DNS alias) in the Grid Operations Center database. Register with node type FTS. This will automatically add your node to the LCG SAME monitoring.

Upgrade from a previous version


With FTS 2.1, various channel settings previously handled via YAIM and agents configuration files have been moved to the database. Since the channel management command line interface had not been updated accordingly, a migration script,, had been provided and was called by YAIM each time a channel definition was updated. This script copied to the database these new parameters from the generated configuration files.

Starting from FTS 2.2 those parameters are obsolete, and trying to set them through your YAIM configuration scripts will result in an error.


Client Installation

Please install the client as part of the gLite 3.1 UI. See Generic install guide 3.1.

Client configuration

The client command line tools must be told the endpoint of the service portal that they are to talk to.

This can be done directly on the command line with the -s option:

   glite-transfer-channel-list -s

or using one of the two options below.

Static services.xml file

If your FTS server is publishing into the EGEE.BDII, you are recommended to use the approach in 'EGEE.BDII configuration' below; skip this section.

If your FTS server is not publishing in the EGEE.BDII, you can create a gLite services.xml file in /opt/glite/etc/services.xml:

This is described in the client section of FtsServicesXml14.

EGEE.BDII configuration

If your FTS is publishing in the EGEE.BDII, the following should be set on the client:

 export GLITE_SD_PLUGIN=bdii

where is the appropriate EGEE.BDII (the one in the example is the LCG top-level EGEE.BDII), and CERN-SC is the GOC-DB name for the site your FTS server is running at (the example is for the CERN production EGEE.BDII at CERN-SC). You do not need a client services.xml if you are using EGEE.BDII.

Path and library path

The environment variable LD_LIBRARY_PATH must include /opt/glite/lib.

The environment variable PATH should include /opt/glite/bin.

We provide a script as an example (the tcsh profile script is left as an exercise for the sysadmin). Download it (also attached below) to /etc/profile.d/

if [ -z "$PATH" ]; then
    export PATH=$GLITE_LOCATION/bin
if [ -z "$LD_LIBRARY_PATH" ]; then

Client testing

A basic test can be made for the client command lines.

From an unpriviliged account, obtain a standard grid proxy or a VOMS proxy. Ensure that this grid proxy has been entered in the manager mapfile of the FTS service you are testing against, or you will receive an authorisation error from the service.


Then try a simple management command:

   glite-transfer-channel-list -v

which should, after contacting the service, print the service, interface and schema version. If the service is new, it will return no channel names since none have yet been configured. Try next a job list:

   glite-transfer-list -v Pending

which should print the same set of version numbers, and again, if the service is new, will return no Pending jobs, since none have yet been submitted.

If both of the tests work, then the client command line is correctly configured.

Problems you may see

If you see:

list: listChannels: SOAP fault: SOAP-ENV:Client - CGSI-gSOAP: Could not open connection ! (TCP connect failed in tcp_connect())

then either the service is down, or your services.xml file is pointing to the wrong endpoint. You can see what endpoint the client is attempting to connect to by using the verbose flag:

glite-transfer-channel-list -v

If you see:

list: Service discovery: No services of type org.glite.ChannelManagement were found

then either the services.xml file is missing or is not readable by the client.

If you see:

list: listChannels: SOAP fault: "":Server.NoService - The AXIS engine could not find a target service to invoke!  targetService is ChannelManagement

then either the endpoint specified in the services.xml file is incorrect, or the service is misconfigured.

To check whether the endpoint specified in the services.xml file is correct, connect to it directly with a web browser. e.g. connect to https://yourhostname:8443/site-fts/glite-data-transfer-fts/services/FileTransfer (you will need your grid certificate loaded in your browser). If the service is listening, you should see a web page with a message like:

Hi there, this is an AXIS service!

If you see:

list: listChannels: You are not authorised for channel management upon this service

then you are not a channel manager. Look in the FTS server logs ( to see how the authorisation decision was made. See the FtsServerAdmin14 guide for using the glite-transfer-channel-addmanager command.


The FTS Configuration document explains the configuration model used by FTS and provides a configuration variables reference.


See FTS Administration.

Command Line Interface

Complete documentation for the Command Line Interface (man pages).




configuration issues, software problems...
issues related to CERN FTS services.
open list. Announcements are also sent to this list.


See tests for FTS version 2.2.

Last edit: AkosFrohner on 2009-05-13 - 15:51
Number of topics: 1

Maintainer: PaoloTedesco

Topic attachments
I Attachment HistorySorted ascending Action Size Date Who Comment
GIFgif tx_progress_first_tx_mark_to.gif r1 manage 24.0 K 2009-01-06 - 10:35 PaoloTedesco First transfer market timeout
GIFgif tx_progress_no_activity_timeout.gif r1 manage 21.0 K 2009-01-06 - 10:37 PaoloTedesco No activity timeout
GIFgif tx_progress_timeouts.gif r1 manage 13.3 K 2009-01-06 - 10:32 PaoloTedesco Transfer progress to illustrate timeouts
GIFgif tx_progress_tx_marks_timeout.gif r1 manage 20.1 K 2009-01-06 - 10:37 PaoloTedesco Transfer markers timeout
GIFgif tx_timeline_fts21.gif r1 manage 8.9 K 2009-01-06 - 10:00 PaoloTedesco Channel occupation timeline for FTS 2.1
GIFgif tx_timeline_fts22.gif r1 manage 9.0 K 2009-01-06 - 10:00 PaoloTedesco Channel occupation timeline for FTS 2.2
GIFgif parameters_model.gif r2 r1 manage 17.1 K 2009-01-09 - 17:10 PaoloTedesco YAIM parameters model
Edit | Attach | Watch | Print version | History: r23 | r21 < r20 < r19 < r18 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r19 - 2009-03-17 - PaoloTedesco
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    LCG All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2023 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
or Ideas, requests, problems regarding TWiki? use Discourse or Send feedback