Software Version – Document Version: v1.8.0-1.4

COPYRIGHT

© 2020 TIXEL GmbH

The information in this document is property of TIXEL GmbH. It may not be used, reproduced or disclosed without written approval of TIXEL GmbH.

Notice of non-liability:

TIXEL GmbH is providing the information in this document to you AS-IS with all faults. TIXEL GmbH makes no warranties of any kind (whether express, implied or statutory) with respect to the information contained herein. TIXEL GmbH assumes no liability for damages (whether direct or indirect), caused by errors or omissions, or resulting from the use of this document or the information contained in this document or resulting from the application or use of the product or service described herein. TIXEL GmbH reserves the right to make changes to any information herein without further notice.

Used formatting:

Tip
Additional hint
Note
Remark, further information
Important
Crucial note, please obey
Caution
Neglecting may cause malfunction
Warning
Neglecting may cause severe malfunction or data loss

1. Introduction

TIXstream MFT is TIXEL’s software solution for high-speed file transfer in distributed file based workflows, that seamlessly combines corporate-wide asset exchange including meta data handling with efficient and secure B2B workflow integration. It can be seamlessly connected to TIXstream FX, a separate software from TIXEL, that allows users on the Internet to upload and download files, share them with other users and automatically forward them to TIXstream MFT for further internal processing.

You can configure the system for different application and integration scenarios, and thus adapt it to the requirements of your workflow.

This document describes the steps to install and configure TIXstream MFT. If you already have a previous version installed, please note section Update.

TIXstream MFT is available for Linux and Windows. If the explanations for the two operating systems differ, they are divided into two correspondingly named sections.

Before continuing with installing and using the provided software, please make sure you have read and agreed to the terms and conditions of the included TIXEL Software License Agreement.

1.1. Additional Documents

  • An overview of the relevant changes can be found in the Changelog file.

  • For an overview of already known errors or restrictions for the current software version, see the Known Issues file.

  • A detailed description regarding the usage of an installed and configured TIXstream MFT system can be found in the UserGuide file.

1.2. Abbreviations

Explanation of the terms or abbreviations used:

  • MFT, TIXstream MFT, transfer system for fast file exchange between different sites of an organization

  • TCC, TIXEL control center, web GUI for controlling and administering the MFT system

  • TJM, Transfer-Job-Manager, web service to control the MFT transfers

  • TXS, TIXstream, high-speed transfer engine

  • AM, Access-Manager, internal service for user access management (authentication and authorization)

  • FX, TIXstream FX, a separate software solution provided by TIXEL for File eXchange on the Internet - can be connected to TIXstream MFT via relay job functionality

2. System Requirements

2.1. Hardware Requirements

TIXstream MFT can be installed on physical and virtual Hosts. Depending on the targeted data rate and the use case scenario the CPU, RAM and storage requirements vary. Please contact TIXEL to ask for current recommendations.

2.2. Operating Systems

  • Windows 2012R2 64bit (Windows 2008R2 64bit is possible) or

  • CentOS7, 64bit (binary compatible with RHEL7)

  • CentOS6, 64bit (binary compatible with RHEL6)

  • Ubuntu 18.04, 64bit

3. Host System Configuration

3.1. Service-Account

The transfer system services require a user account ("service account"). The services are running under this user. This account must have access to the files in the installation directory and have access rights to the storage systems or directories used for file transfers.

3.1.1. Linux

The Linux install script specifies the service account tixstream as well as the group of the same name, under which the MFT services are started. If the account of such user already exists on the system, it will be used without any changes.

3.1.2. Windows

The transfer system services require a Windows user account that has access to the directories of the storage systems (e.g. CIFS) used for transfers. Administrative rights are not required. In the following, it is assumed that this is the user tixstream.

The following is an example of the steps required to create a local user account tixstream with password xsecret. These can be skipped if the account to be used has already been created by Windows administration.

Adding Windows Users
net user tixstream xsecret /add

The user can also be created without specifying the password. Then net user tixstream xsecret can be used to assign it afterwards. The service account must have rights to run services, see the corresponding section Assigning a Service Account for Windows Services.

Access to CIFS Shares

In order to provide access to password-protected CIFS shares (also known as "Windows shares" or "Samba shares") for the user `tixstream, the credentials (username/password) used for this purpose must be stored in the system. To do this, start a console (input prompt)

runas /user:tixstream cmd

Enter the password of user tixstream. In this console, you can now store CIFS authorizations. For example, to allow access to a CIFS server cifsserver by the user cifsuser with password cifspass:

cmdkey /add:cifsserver /user:cifsuser /pass:cifspass

Alternatively, you can log in the Windows-GUI as the tixstream user and open the corresponding CIFS shares (\\cifsserver) with the Explorer. In the login window, choose save credentials by setting the corresponding check box.

With cmdkey /del:cifsserver stored access credentials can be removed. cmdkey /list:cifsserver shows the stored data for this server, cmdkey /list shows all access data without passwords.

3.2. External Dependencies

The TIXEL MFT system itself consists of individual services that depend on each other. After initial installation, the system is configured without external dependencies. Optionally, however, external services may be connected, in particular

  • Database (MSSQL, MySQL/MariaDB)

  • LDAP server

For more information, see the corresponding sections on configuration.

3.3. License

3.3.1. License-Media

A license is required to operate the MFT system. It is alternatively provided as a USB dongle (license dongle) or as a license file (license file). In both cases, Wibu’s CodeMeter software is used.

Depending on the licensing medium, a parameter in the configuration file tixstream.conf (in the directory config ) has to be adapted or created:

License file (default if not specified):

license-source = file

License dongle:

license-source = usb

Explanations on installation and configuration can be found in the sections on the operating systems.

Evaluation licenses do not contain any restrictions, apart from the expiration time. Upon purchasing, they are exchanged for permanent licenses for production. However the basic licensing mechanism remains the same.

3.3.2. Standby License

Regular USB dongles contain a permanent license (without expiration time), which is not linked to a specific system. If an MFT system fails, you can start up an identical configured cold standby system by (physically or virtually) re-plugging the USB dongle.

There are also dongles with cold standby licenses available. These are valid for a period of 14 days starting at the time of first use, i.e. access by the application. Thus a cold standby system can be put into operation in the event of a failure of the primary system without re-plugging dongles. Within the 14-day period, the dongle with the permanent license can be plugged into the active system or the primary system can be put into operation again.

Caution
Do not use the cold standby dongle for testing or setting up the cold standby system, as the 14-day period starts expiring upon first use. You can temporarily use the dongle with the permanent license for testing. To check the temporary license, you can connect the cold standby dongle and check license information with the Wibu tools, However you should not start the MFT services.

No dongle is required for installation and configuration. Therefore, a cold standby system can also be set up (usually by cloning the primary system), without the need for a dongle at all. A valid license is only required for actual data transfer.

A cold standby dongle can be provided with a new license again after expiration of the usage period. Please contact TIXEL.

4. Installation

The following information is required for installation:

  • Hostname of the transfer system (FQDN, e.g. mft01.example.com)

  • Alias of the systems (e.g. MFT01)

  • User account

  • For encrypted transfers and https: valid certificate and key for the transfer system (see Certificates)

  • For productive systems: access data for external database server or local MariaDB / MySQL / MSSQL database (see Database Setup)

Each installation package is provided with a checksum file. After download, the checksums of each package should be generated and compared with those provided.

  • Windows Powershell: certutil -hashfile [path/to/filename] sha256

  • 7-zip: Context menu – CRC SHA – SHA-256

  • Bash: go to the directory containing both files and execute sha256sum -c [filename.tgz.sha256]

The OS-specific installation steps for Linux and Windows are described below. This is followed by an explanation of the OS independent configuration.

4.1. Windows

4.1.1. Installation of Basic Packages

In addition to a standard Windows system, the following software is required:

  • Java Runtume Environment

  • Wibu CodeMeter Runtime

  • Local or external database (MariaDB, MySQL, MSSQL)

Caution
The default file based h2-DB is only intended for use in initial test or evaluation setups. A migration of h2-DB data to other DBs is not supported.
Note
The following is an example of an installation in d:\bin\ for an account tixstream.
Java RE

Java Runtime Environment (JRE) 64bit, version 8 (1.8) is used. OpenJDK Java runtime packages are available for download e.g. at https://adoptopenjdk.net/ as MSI installer. Note that a JRE is sufficient, a JDK is not required. No special steps are necessary for the default installation process.

Wibu CodeMeter

The license management software Wibu CodeMeter is available free of charge at https://www.wibu.com/de/software.html. You can install Wibu CodeMeter on the system via a standard installation procedure. The CodeMeter package can optionally be installed for the current user only or for the entire system. The latter is recommended.

4.1.2. Initial Setup

The installation archive contains the TIXEL software packages of the application stack of an MFT system and some utilities (tools).

For installation, the archive is unpacked into any directory, here, for example, D:\sw\. The created main folder (e.g. tixstream-mft-windows-bundle-v1.2.3-0-gda4787b) contains an installation script install.cmd.

Please execute this script with run as administrator:

  • For a new installation by specifying a target folder, e.g. install.cmd D:\bin\tixel

  • For an update installation without parameters: install.cmd

This results in the following folder structure, e.g. in`D:\bin\tixel`:

├───access-manager
├───admscripts
├───cluster
├───config
├───consolescripts
├───logs
├───nginx
├───plugins
├───tixel-control-center
├───tixstream
├───tmp
├───tools
└───transfer-job-manager
  • tixstream: TIXstream Transfer Engine (Core-Transfersystem)

  • transfer-job-manager Transfer Job Manager (administration or control of transfer jobs, directory and storage locations)

  • tixel-control-center: TIXEL Control Center (Web UI for administration and control of transfer jobs)

  • access-manager: Access Manager (Authentication and Authorization)

  • nginx: http und https Proxy, TLS (SSL) Termination of the TIXEL services

  • plugins: contains the metadata input tool in the subdirectory editor

  • admscripts: Utilities for managing/controlling Windows services

  • consolescripts: Utilities for using the TIXEL services as a console program (recommended for debugging purposes only); not required when used as a Windows services

  • cluster: Script and customized configuration files for setting up MFT on a shared memory (e.g. NAS) for operation in a Windows HA cluster

  • config: contains customized configuration files

    • Transfer-Engine:

      • tixstream.conf

      • Transfer-Profile (.profiles)

    • Service Property Files:

      • access-manager.properties

      • transfer-job-manager.properties

      • tixel-control-center.properties

  • in logs the log files of the individual services are stored

  • tmp is used to store temporary data, e.g. to resume transfers

  • tools ontains optional utilities such as curl, resolveip, setsysname

  • versions.txt contains the version number of the bundle and the individual components

A license file (*.WibuCmRaU) may be provided separately.

The content in logs and tmp can be cleared for housekeeping purposes. The location for directories can be configured in the .properties files. However, if any changes are made, please keep in mind possible dependencies of other services.

The read/write and execution rights should be restricted to the user tixstream so that regular users may not have access to configuration files.

License Activation

Please note the instructions for switching between license dongle and license file (see License).

  • License file: A double-click on the license file *.WibuCmRaU starts the Wibu tool. The license is activated and available for use with TIXstream.

  • License dongle: Please connect the USB dongle to the system.

The license is displayed in the "CodeMeter Control Center". The status should be displayed as "license activated". Clicking on WebAdmin starts a web browser with the Wibu web interface. The license validity period is displayed in Container - Licenses.

License Check

To verify the license, open a command prompt (Windows-R, cmd ) and start tixstream:

%TIXEL_HOME%\tixstream\tixstream.exe --config %TIXEL_HOME%\config\tixstream.conf --check-license

If the current version and the "License Information" appear in the console, the license was successfully imported. Otherwise, an error message is displayed; Check whether the CodeMeter Runtime Server is running (check Windows services) and whether the license is displayed in CodeMeter ControlCenter. If you receive the output Application Error: Error in TIXstream base license: License Error, the CodeMeter service is not running.

Tip
The tixstream program outputs version number and license status at startup. Thus you will also find this information at the beginning of the tixstream log files.

To check the expiration of a cold standby license, use "%ProgramFiles(x86)%\CodeMeter\Runtime\bin\cmu32.exe" -l -x. The output contains information on usage Usage Period: 14 days (1209600 seconds) as well as on the activation Usage Period: 14 days (1209600 seconds) as well as the activation status (not yet activated).

Deleting a License

You can explicitly delete temporary licenses from the system. This is, however, not required, a current license automatically replaces an expired one.

Warning
Deleting a license (even a valid one) can not be reverted. The deleted license can not be re-imported.

With "%ProgramFiles(x86)%\CodeMeter\Runtime\bin\cmu32.exe" -l the currently available licenses with their serial numbers are displayed. The following command (with NNN-NNNNNNN to be replaced with the correspongin serial number) permanently deletes this license from the system.

"%ProgramFiles(x86)%\CodeMeter\Runtime\bin\cmu32.exe" --delete-cmact-license --serial NNN-NNNNNNN
Checking Java

In a command prompt run:

java -version

You should receive the output of the Java version. If not, please check the Java installation. Alternatively, you can modify the java call in the install or start script (not recommended) by opening the files admscripts\install-tix-services.cmd and consolescripts\services.cmd in a text editor and replacing the java path by path and file name of your Java installation, e.g. "C:\Program Files\AdoptOpenJDK\jre-8.0.232.09-hotspot\bin\java.exe" (please adapt version). Note that in the case of a Java update, the path must be adapted again.

TIXEL Services as Windows Services

The scripts in the admscripts folder allow you to run the TIXEL services as Windows services.

Warning
The scripts in the directory admscripts must always be executed with administrative rights ("run as administrator"). In Explorer, use the mouse and select script in Explorer, click right mouse button: run as administrator. Alternatively, open a command prompt (as Administrator) and execute the scripts.

The TIXEL services can also be operated in a console, in particular for troubleshooting purposes, see Windows Console.

Installing and Registering the Windows Services

The following call creates the service descriptions (config/*.services), registers the Windows services, and globally sets the TIXEL_HOME environment variable. The latter contains the current installation directory, the entire configuration uses this parameter and corresponding relative paths.

D:\bin\tixel\admscripts\install-tix-services.cmd

In the next step, the Windows services must be assigned to the service account, i.e. the user account running the services. This account must also have access rights to the storage systems used by the transfer system.

Assigning a Service Account for Windows Services

The following command assigns the service account to the installed Windows services.

D:\bin\tixel\admscripts\setaccount-tix-services.cmd

The script asks for user name (e.g. tixstream) and password (e.g. xsecret). Alternatively, you can start the script on the console by specifying username and password as command-line parameters.

The notation .\tixstream with the dot for the local computer name or mft01\tixstream (with mft01 as local computer name) is also valid. The account name in the form domain\username or user@domain is supported as well. The assignment of the services to the account also works with domain accounts, but not the following assignment.

Tip
The assignment of the services to the service account can also be done without setaccount-tix-services by using the standard Windows service settings (services.msc).

The service account must be granted the right to execute services in Windows. The script uses the program ntrights.exe from the Windows Server 2003 Resource Kit Tools (https://www.microsoft.com/en-us/download/details.aspx?id=17657) in the form ntrights.exe +r SeServiceLogonRight -u USERNAME (-r removes the right).

If the operation is successful, the following message appears:

Granting SeServiceLogonRight to USERNAME... successful
Caution
Granting with ntrights only works with local accounts; for domain accounts the assignment must be done manually. See section below.
Manually Granting Rights to Execute Services

The following steps are only necessary if setaccount-tix-services.cmd via ntrights could not be used for granting the rights.

Option 1: Policy Editor

The permission can be explicitly granted using the Policy Editor:

  • Start program (Windows-R): gpedit.msc

  • Navigate to:

- Local Computer
 - Computer Configuration
  - Windows Settings
   - Security Settings
    - Local Policies
     - User Rights Assignment
      - Log on as a service
  • Add user or group …​

  • Type in tixstream. By selecting the user, domain or local computer name is added correspondingly, e.g. mft-01\tixstream.

Option 2: Service Manager

When you initially assign an account to a service in the Windows Service Manager, Windows automatically grants the user the corresponding right, indicated by the notification that the account .\USERNAME was granted the right to log on as a service.

It is also possible to assign the rights by toggling the user account between the local service account and the explicitly specified service account ("this account").

Since all TIXEL services run under the same account, it is sufficient to do this only once, i.e. for one of the TIXEL services.

4.1.3. Basic Configuration

Please adapt the following two parameters to your system:

  • External visible hostname, FQDN (hostname), e.g. mft01.example.com

  • Freely selectable SystemAliasName (name), under which the system is listed at other transfer systems, e.g. mft01-tixel

Configuration via Program (Alternative 1)

Start tools/setsysname.exe (as an administrator or as user with access to the configuration files). Enter the two parameters and save the settings by clicking on save.

You can also use the program later to change the values. Please note that a restart of the Transfer Job Manager is necessary for the changes to take effect.

Configuration via Configuration File (Alternative 2)

Customize the two following entries in the file config/transfer-job-manager.properties:

custom.transfer-job-manager.hostname=mft01.example.com
custom.transfer-job-manager.name=mft01
Caution
Note that in an initial installation the lines are marked with a comment mark (#) at the beginning. Please remove the comment marks when you adjust the parameters.
Starting Windows Services
D:\bin\tixel\admscripts\start-tix-services.cmd

The script starts all TIXEL services. Please note that it may take some time until all services are available, depending on system performance and utilization, even if the services are already displayed as "running".

With stop-tix-services.cmd and restart-tix-services.cmd you can stop or restart all TIXEL services.

The TIXEL services can also be controlled individually using the typical Windows tools net and sc on the command-line as well as via the control panel (services.msc or Computer ManagementServices and ApplicationsServices). You can find them under the following designations (service names):

  • TIXEL Access Manager (accessmanager)

  • TIXEL TIXEL Control Center (tixelcontrolcenter)

  • TIXEL Transfer Job Manager (transferjobmanager)

  • TIXEL TIXstream WAN Transfer Engine (tixstream)

  • TIXEL nginx server for TIXstream MFT (tixnginx)

Windows Console

As described, the TIXEL services or usually operated as Windows services. Alternatively they can also run directly on a console ("Command Prompt") as foreground processes. However, this is only recommended for debugging purposes. On a system only one kind of execution (foreground or Windows service) should be used at a time. A mixed operation is not recommended.

Start the MFT system with tixstart.cmd in the directory consolescripts (double-click or start in a console). This startup script starts the TIXEL Transfer Engine, nginx and the Java-based web services using services.cmd. The programs appear successively as minimized windows. You can track the output of the services in their consoles.

Usage on the Windows console does not require the execution of install-tix-services.

4.1.4. Uninstalling

The following script removes the MFT windows services from the system.

D:\bin\tixel\admscripts\remove-tix-services.cmd

The script stops the services (please ignore error messages if the services have already been inactive) and removes them from the system. The programs files will not be removed.

Under certain circumstances (e.g. active service panel window, "Computer Management") the services can not be immediately removed from the system. In this case they are marked as "for removal" and effectively removed later.

In addition to the Windows services, the system-wide environment variable TIXEL_HOME will also be unset.

4.1.5. Windows Cluster Installation

TIXstream MFT provides the option to be operated on HA cluster nodes. For details please refer to: TIXstream MFT Cluster Setup for Windows.

4.2. Linux

4.2.1. Installation of Basic Packages

In addition to a CentOS7 or an Ubuntu 18.04 base OS installation (package selection "minimal") the following packages will be required.

  • Java Runtime Environment

  • EPEL (Extra Packages for Enterprise Linux) - CentOS only

  • NGINX

  • Local or external database (MariaDB, MySQL, MSSQL)

Caution
The default file based h2-DB is only intended for use in initial test or evaluation setups. A migration of h2-DB data to other DBs is not supported.
Java RE

Additionally, the distribution’s Java 1.8 will be needed, to be installed with:

  • CentOS:

[root]# yum install java
  • Ubuntu 18.04:

[root]# apt-get install openjdk-8-jdk

The command java -version should produce the following output (possibly different version numbers):

openjdk version "1.8.0_91"
OpenJDK Runtime Environment (build 1.8.0_91-b14)
OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode)
EPEL, NGINX and other Dependencies
  • CentOS:

The NGINX web server/reverse proxy is available via the EPEL repository.

[root]# yum install epel-release
[root]# yum install nginx
  • Ubuntu 18.04:

[root]# apt-get install nginx
[root]# apt-get install libssh2-1
[root]# apt-get install libaio1
Wibu CodeMeter

As opposed to the Windwos installer, the Wibu CodeMeter license management for users is already included in the installation package for Linux and automatically installed.

4.2.2. Installation of the MFT Software

The installation package is available as a tgz archive and a checksum file ( *.tgz.sha256). After downloading the checksum should be verified:

sha256sum -c [filename.tgz.sha256]

The following section describes the initial installation of the MFT software. The update of an existing installation is similar, see section Update.

The archive will be unpacked, e.g. in the home directory of user tixel, $HOME (/home/tixel).

  • CentOS:

[tixel]# tar -zxf *-centos.tar.gz
  • Ubuntu 18.04:

[tixel]#  tar -zxf *-ubuntu-18.tgz

The new directory tixel now contains the following data:

tixel/
├── admin/
├── bin/
├── config/
├── data/
├── log/
├── packages/
├── run/
├── scripts/
├── tmp/
└── install.sh

This directory also contains the installation script install.sh.

The following command is used to install the services as root in /opt/tixel/.

Caution
All active TIXEL services will automatically be stopped when the installation script is executed.
[tixel]# sudo ./install.sh
  • /opt/tixel/config contains the customized configuration files

  • /opt/tixel/admin contains some scripts for service starts etc.

  • /opt/tixel/tmp is used to store temporary data. The contents herein can be deleted to clean up.

  • /opt/tixel/data is especially used to persist progress information for tixstream and to store checksum data for integrity checks

  • On EL7 and Ubuntu 18.04 log output is managed by journald; journalctl -u [servicename] produces log information;

  • On EL6 /opt/tixel/log is used for storgin log data

Call the install script with the --help or -h parameter to see other available options, e.g. to provide user, group and umask settings for the services.

4.2.3. Activating a License

Please follow the instructions for switching between license dongle and license file (see License).

  • License dongle: Please connect Wibu USB dongle to the system.

  • License File: Please use the following command to install the license file.

[tixel]# cmu -i -f *.WibuCmRaU

The license will be activated (1 successful update done) and is available for use with TIXstream.

4.2.4. Checking a License

The following command is used to verify license installation:

cmu -l -x

The output includes e.g. the following information (here: evaluation license):

Expiration Date: 2016-10-08 14:16:38 (UTC)

- CmContainer with Serial Number 128-4922431 and version 1.19
Result: 1 CmContainer(s) listed.

For permanent licenses no expiration date will be displayed.

Finally it can be verified if a TIXstream license is (still) valid. For this purpose the following command displays TIXstream version information. In case of an invalid license or an inactive Wibu runtime TIXstream refuses to start.

/opt/tixel/tixstream/bin/tixstream --config /opt/tixel/config/tixstream.conf --check-license
License Information: TIXstream 4 Direct EE;LPN:DEU-201706-0006-0001;LPID:DEU0-00060001;Berlin;2017-06-12;Example Ltd.;Bart Simpson;bart@example.com
Permanent Licensed Copy, Firm Code: 101232
NOTICE   2017-06-21 16:00:28.810707 License check: valid license

If the current version along with the license information is displayed, the license has been successfully installed.

The expiration date of a Cold Standby License can be check with cmu -l -x. The output shows information about the usage period Usage Period: 14 days (1209600 seconds) as well as the activation status (not yet activated).

4.2.5. Deleting a License

You can explicitly delete temporary licenses from the system. However, this is not required, as a current license will automatically replace an expired one.

Warning
Deleting a license (also a valid license) can not be reverted. A deleted license can not be reinstalled.

To check all current installed licenses and the respective serial numbers use the command cmu --list. The following command (replace NNN-NNNNNNN by a valid serial number) removes a license permanently from the system.

cmu --delete-cmact-license --serial NNN-NNNNNNN

4.2.6. Basic Configuration

In the following section the host name mft01.example.com and system alias (name) mft01 will be used as an example for the MFT system.

The install script already transmits the current host name and the derived system alias in the configuration file. The necessary changes to these parameters are described as follows.

If necessary, adjust the following two entries

  • Externally visible host name, FQDN (hostname)

  • System alias name (name), which lists the system at other transfer systems

in the file /opt/tixel/config/transfer-job-manager.properties , e.g.:

custom.transfer-job-manager.hostname=mft01.example.com
custom.transfer-job-manager.name=mft01

Changes will be effective after restarting of the transfer job manager (systemctl restart transfer-job-manager)

4.2.7. Starting and Controlling Services

After install.sh has been executed, all services can be started (as root) with /opt/tixel/admin/ctl-services.sh start; alternatively the services will be started automatically by rebooting of the system. Stopping the services can be done with /opt/tixel/admin/ctl-services.sh stop.

The services

  • tixstream.service

  • access-manager.service

  • transfer-job-manager.service

  • tixel-control-center.service

can be controlled individually with the commands systemctl start, stop, restart, status. journalctl shows log information, e.g.

# as root:
systemctl start tixstream.service
systemctl status access-manager.service
systemctl stop tixel-control-center.service
systemctl restart transfer-job-manager.service
journalctl -u tixel-control-center.service

Services are deactivated by systemctl disable <servicename>. Thus a service does not start automatically with the system start. To (re-) activate the service, use systemctl enable <servicename>.

To perform actions on all TIXEL services simultaneously, the following script can be used encompassing all of the mentioned systemctl functions (start, stop, restart, status, disable, enable):

/opt/tixel/admin/ctl-services.sh [function]

4.3. OS Independent Configuration

4.3.1. Network Configuration

The following TCP ports are used for communication among MFT systems:

  • 60000 http Transfer-Job-Management

  • 60001 https Transfer-Job-Management (if configured)

  • 60002 http Transfer-Engine-Control

  • 60003 https Transfer-Engine-Control (if configured)

  • 60004-60009 Transfer-Engine Data Ports

The ports are configured in the .properties-files of the respective services. Please note that manual changes might require further adjustments to other files or systems. The configuration files of the installation package are pre-configured, so that usually no changes are necessary.

Currently there is only one hostname per machine supported.

Warning
The workaround described below should be used in test environments only. For productive systems the correct name resolution or DNS configuration will be required.

If the computer cannot contact itself via the public DNS name, it must be registered in the local hosts file and point to the IP address used for communication with other transfer systems.

Therefore please edit (as root or administrator) the file /etc/hosts (Linux) or C:\Windows\System32\drivers\etc\hosts (Windows) and create an entry with IPv4 address (here: 10.10.10.48) and its hostname (here mft01.sample.com):

...
10.10.10.48 mft01.sample.com
...

4.3.2. Local Transfer System Administrator

TIXEL Control Center enables you to configure TIXEL services via a web interface. The respective access to the Web UI for a transfer system administrator is designed in a way that it is configured and available without external services being operational. Thus it can be used independent from data base servers, directory services (LDAP) as well as Windows user accounts.

Setting up Access Data

First username and password (credentials) for a transfer system administrator must be assigned. With the first start of TIXEL Control Center via a web browser (e.g. http://localhost:9010/tixel-control-center) these credentials have to be set up once.

Warning
Please choose an (individual) user name that does not collide with the pre-configured users. So do not select usernames admin or demo, but e.g. sysadmin and select a password. Password complexity is not tested in the current version – only a minimum length of 8 characters is required.

After successful establishment of credentials you can log in with those to the Control Center and access various configuration forms for the different services. When settings of a previous installation have been kept, no changes are required at this point.

If changes are made in the future, you will need to re-start TIXEL services after saving changes for them to become effective.

Resetting Access Data

The hash value of the credentials for the local transfer system administrator will be stored in the file config/access (as salted bcrypt hash). If you have forgotten or wish to change access data, delete this file, restart TIXEL Control Center service, access the Control Center via web browser and assign new credentials.

Note
Changing a password via the user’s pop-up menu at the top right is not possible for the local transfer system administrator.

4.3.3. Web Access

For using the Web UI you need a recent web browser (Firefox, Chrome, Safari, Edge, IE) with activated JavaScript (IE: "Active Scripting"). In case of malfunction with older versions of IE, the entry add_header X-UA-Compatible "IE=edge"; in the section server of the configuration file nginx.conf might help.

Open the TIXEL Control Center URL http://localhost:9010/tixel-control-center/ with a web browser. You can login with default credentials (user admin, password verysecret). The password can be changed via the top right User icon.

The user admin has rights for both, configure the transfer system as well as to manage (create, monitor and control) file transfers.

The http access on port 9010 works directly on the MFT system (localhost or 127.0.0.1). If you have configured https, you can also access the web UI via https://<FQDN>/tixel-control-center/ using standard https port 443. Depending on configuration, http access from other systems might be denied, so that only https access will be available in this case.

5. Configuration

To carry out changes described below, login to the Control Center as the default administrator (not system administrator). The default-credentials are admin with password verysecret.

To perform transfers, source and destination shares have to be defined first. Furthermore, the systems involved in the file transfer have to "know" each other.

Tip
To enable local transfers, the own system must be registered as a transfer system as well. Local transfers are treated analogously to transfers with other systems. Consequently, they appear as both incoming and outgoing transfers in the job list.

Configuration of database and logging are explained in sections ( Logging, Database setup).

5.1. Local Shares

Local shares reflect storage systems to be used for file transfer. They are accessed by MFT via a local path, usually as a file system. In a local area network (LAN) they are referenced via a "public URI" valid inside the LAN. This allows third-party systems to create transfer jobs pointing to files by using this URIs.

Tip
The Public URI refers to the URI that is visible in the local network (LAN), e.g. a CIFS share. This information is not visible to other transfer systems. However, please make sure that third-party systems refer exactly to the URI shown here, for example ftp://paula@ftpserver.domain:21/path. For FTP and SFTP shares including user name and port but without password.

Settings are changed in TIXEL Control Center in section TIXstreamShares .

Note
Starting with version 1.1.0, FTP and SFTP can be used in addition to CIFS shares. The following settings apply to all storage types.
  • Name: Unique identification of the MFT system, displayed on remote systems ("nodes").

  • Description: optional description, only visible on the system

  • Expiration Date: optional validity period

  • Permissions

    • Read (y/n)

    • Write (y/n)

  • Relay Share (y/n), additional settings, see Relay Shares

All shares that are used as a source or destination of transfer-jobs are to be created here.

  • For a source share select Read only.

  • For a destination share select Write only.

  • Of course it is possible to create shares for writing and reading.

Shares with Write permissions are visible to other systems as destination shares.

5.1.1. CIFS

Local and CIFS shares can be configured here. Click on the + symbol and enter values for Name, Local Path and Public URI, e.g.

Here videoserver is the network hostname of the CIFS share in the LAN, scratch`is the name of the CIFS share (in the notion of CIFS/Samba). The full local path can be accessed via directory browser `…​. On Linux, a CIFS share has to be mounted first, e.g. as /mnt/cifs/videoserver/scratch, also see Local Path.

In Permissions tick checkbox Write. Values for Description and Expiration Date are optional. Click Save to enable the new share.

Warning
Make sure that the MFT system account has access to the corresponding CIFS file systems. For Windows, see access to CIFS shares.

5.1.2. FTP

Creating a share for an FTP server is similar. While CIFS credentials are handled by the operating system, for an FTP share they are handled by MFT.

  • Protocol: Ftp

  • Host: hostname or IP address of the FTP server, e.g. audiobox.example.com

  • Port: FTP port, standard: 21

  • Username: user used by the MFT-System to access FTP server

  • Password: FTP password of this user

  • Folder: path to be accessed on the FTP server (optional)

5.1.3. SFTP

Use of SFTP is similar to FTP. The default port is usually the SSH port (22).

  • Protocol: Sftp

  • Host: hostname or IP address of the SFTP server, e.g. voicebox.example.com

  • Port: SFTP or SSH port, standard: 22

  • Username: user used by the MFT-System to access SFTP server

  • Password: SFTP/SSH password of this user

  • Folder: path to be accessed on the SFTP server (optional)

For SFTP access currently only username/password authentication is supported. The Microsoft PowerShell OpenSSH implementation has some limitations resulting in limited functionality: a root folder must be specified and it is not possible to select subfolders in TCC.

5.2. TIXstream MFT Peer Nodes

To create a network file transfer to a remote location, the systems involved must be announced to each other. It is not sufficient to register the receiving MFT-System on the sending side; both, sender and receiver, have to be registered on either side to know each other.

Caution
Both addresses (service URIs) and transfer system name must be unique. It is not possible to enter a system whose address is already present in the list. Moreover, no system can be entered that uses an already existing name.

These settings are changed in TIXEL-Control-Center under TIXstreamNodes.

5.2.1. Manual Entry

By clicking + , in the field Address you may enter a Service-URI of a Node. Even for local transfers your own system has to be entered here. The address has the format http://<FQDN>:60000/transfer-job-manager/v1(or https and Port 60001), e.g.

http://mft.example.com:60000/transfer-job-manager/v1

If system to be added is online, the stored system name and its associated address appears in the node list. The name of the other system and its configured destination shares will automatically be made available to the local system. If the remote system is not accessible (offline, missing network connection) a corresponding error message will be displayed.

Tip
If an entry fails with the message "Invalid input parameter", please check whether your entry has spaces. Often a trailing space creeps in when using copy-and-paste. After deleting the space it should work.

It is recommended to set up the system list by using one of the import functions described below. Already configured systems, which are not included in the import list, are not deleted but remain and can be deleted individually if required. The list contains one line per address in the above described format.

Important
Each involved transfer system must be mutually registered at the other systems. Only when the respective entry was made on the peer system, transfer jobs can be created.

5.2.2. Import from Local File

With Import you can select a local file which contains the service URIs of transfer systems line by line. Each line contains a transfer system URI in the above format.

5.2.3. Import via Network

You can also retrieve a transfer system list via network. The format corresponds to the one of the local file. The address used in this case can be configured in the system administrator section (see TIXEL Control Center)

Click on the cloud icon with the downward-pointing arrow. No systems will be deleted during an import, but new systems will be added only.

Caution
If the transfer system list is an UTF encoded file which contains a Byte-Order-Mark (BOM), the entry in the first row will not be recognized as a valid URI. In this case, please leave the first line empty or remove BOM.

5.2.4. Possible Errors when Adding a Transfer System

  • "Job Creation failed - Service not available, I/O error on GET request": system not reachable, address wrong or unresolvable.

  • "Job Creation failed - Invalid parameters, SQL constraint 470": A system with this URI is already present.

  • "Job Creation failed - Unknown error": A system with this name (MFT node alias) is already present.

5.2.5. Node Capabilities

TIXstream MFT allows the administrator to configure certain environment specific capabilities on per-node basis. After a node has been imported, parameters can be configured which are applied to all transfers with this specific node.

Table 1. Node Capability Parameters
Parameter Type Default Description

Data Channel Encryption

Policy

AVAILABLE

Data channel encryption policy. [NOT_AVAILABLE, AVAILABLE, PREFERRED, ENFORCED]

Pixspan Acceleration

Policy

NOT_AVAILABLE

Pixspan acceleration policy. [NOT_AVAILABLE, AVAILABLE, PREFERRED, ENFORCED]

Transfer Strategy

Enum

XP

Transfer strategy preference: XP (TCP based), RWTP (UDP based). [XP, RWTP, XP_RWTP, RWTP_XP]

max Sending Chunk Size

Integer

1048576

Maximum chunk size for outgoing transfers in Bytes

max Sending Streams

Integer

10

Maximum number of streams for outgoing transfers. For XP transfer strategy only

max Sending Data Rate

Integer

100

Maximum data rate for outgoing transfers in MBit/s.

max Receiving Chunk Size

Integer

1048576

Maximum chunk size for incoming transfers in Bytes

max Receiving Streams

Integer

10

Maximum number of streams for incoming transfers. For XP transfer strategy only

max Receiving Data Rate

Integer

100

Maximum data rate for incoming transfers in MBit/s.

Before each transfer sender and receiver negotiate these parameters, the integer values are determined by using the minimum of sender and receiver parameter. Thereby the sender uses the outgoing parameters defined by the administrator of the sender node for the receiver node. The receiver uses the incoming parameters defined by the administrator of the receiver node for the sender node.

Based on the policy parameters, a boolean value is determined which either enables or disables a feature. The following table shows how the boolean value is determined.

Table 2. Policy Truth Table

Sender/Receiver →

NOT_AVAILABLE

AVAILABLE

PREFERRED

ENFORCED

NOT_AVAILABLE

false

false

false

error

AVAILABLE

false

false

true

true

PREFERRED

false

true

true

true

ENFORCED

error

true

true

true

The transfer strategy is determined based on the following table.

Table 3. Transfer Strategy Decision Table

Sender/Receiver →

XP

RWTP

XP_RWTP

RWTP_XP

XP

XP

error

XP

XP

RWTP

error

RWTP

RWTP

RWTP

XP_RWTP

XP

RWTP

XP

XP

RWTP_XP

XP

RWTP

RWTP

RWTP

In both cases the sender is the dominant part. In case of an error, the transfer is rejected and a policy mismatch is reported.

Note
When negotiation is not possible, e.g. the receiver runs TIXstream MFT prior v1.3.0, default parameters are used.

5.2.6. Deleting Systems

Deleting systems is done by selecting them in the list and clicking on the trash can icon. Already created transfers using this system are no longer possible.

A deleted system can be re-entered at any time resulting in a procedure exactly like adding a new system.

Deletion is affecting the local system only, i.e it has no impact on the referred (deleted) system other than that no transfers between the two systems are possible anymore.

5.2.7. Ping-test to the Remote System

The general availability of the remote system can be checked with ping.

In many networks as the ICMP messages used by the standard Ping are discarded, the use of a TCP-based Ping tool is recommended. Under Windows, for example, psping from Sysinternals can be used (PsTools from http://www.sysinternals.com).

The test should be carried out by each participating sender and receiver system on ports 60000 and 60002 to ensure the communication capability of the Transfer Job Manager (60000) and the transfer engine (60002).

The ports used for the actual file transfer (60004-60009) can not be verified with psping because they are only active at the beginning of a file transfer.

Permanent Ping, quit with Ctrl-C:

psping -t mft01.sample.com:60000

limited to 10 iterations:

psping -n 10 mft01.sample.com:60000

Example output:

PsPing v2.01 - PsPing - ping, latency, bandwidth measurement utility
Copyright (C) 2012-2014 Mark Russinovich
Sysinternals - www.sysinternals.com

TCP connect to 10.245.102.61:60000:
11 iterations (warmup 1) connecting test:
Connecting to 10.245.102.61:60000 (warmup): 5.49ms
Connecting to 10.245.102.61:60000: 4.54ms
Connecting to 10.245.102.61:60000: 11.88ms
Connecting to 10.245.102.61:60000: 4.59ms
Connecting to 10.245.102.61:60000: 4.84ms
Connecting to 10.245.102.61:60000: 4.71ms
Connecting to 10.245.102.61:60000: 4.58ms
Connecting to 10.245.102.61:60000: 4.96ms
Connecting to 10.245.102.61:60000: 4.75ms
Connecting to 10.245.102.61:60000: 4.76ms
Connecting to 10.245.102.61:60000: 4.61ms

TCP connect statistics for 10.245.102.61:60000:
  Sent = 10, Received = 10, Lost = 0 (0% loss),
  Minimum = 4.54ms, Maximum = 11.88ms, Average = 5.42ms

5.3. Notifications

You can set up multiple systems to receive information about any status changes regarding transfer jobs. The MFT system notifies receivers by calling an URI.

In TIXEL Control Center recipients are set up in section TIXstreamNotification Receiver. Each receiver is registered with its URL, optional user name and password and a unique name.

If https is used, the notification receiver must have a certificate trusted by the MFT system, otherwise notifications will fail.

Details about notification format and configuration can be found in the API documentation.

5.4. Relay-Shares

In section Shares (see also Local Shares) enabling the Relay Share option reveals additional parameters used to configure forwarding transfer jobs from and to a TIXstream FX system.

Note
Further information about the functionality and configuration of Relay Jobs can be found in the installation instructions for TIXstream FX.

Transfer jobs that address such configured destination path are forwarded to TIXstream FX, which allows an external user to download these files. Compared to "regular" transfer jobs, the only difference is that in addition to the target system and -path, an e-mail address can be provided allowing the external users to be addressed and notified.

Similar to a local storage system, the parameters configured here can not be seen by the sending system. The target path is, however, marked as "Relay", so that the sender is indicated to specify an e-mail address. If the transfer job contains no e-mail address, a default (aka fallback) address is used. Thereby relay jobs can be carried out without the sending system specifying the e-mail address (also known as "fixed targets for the FX system").

  • Relay Destination Path: Enabling relay function (yes/no)

  • Default Relay E-Mail: e-mail address that is used when the transfer job does not contain one

  • Relay Server URL: Service URL of the relay server

  • Relay Server Users: if necessary, account name for accessing the relay server

  • Relay Server Password: If necessary, password for accessing the relay server

Note
The following emulation of the relay function is no longer available. Remove any created shares from the configuration (or remove the Relay Flag).

Until the rollout version 1.0.2 an FX system was emulated as follows. This emulation is not available in more recent versions starting with 1.1.0 or not more available: Without the connected external-transfer-system, relay jobs behave as follows, provided that transfer-job-manager.properties have the value of custom.transfer-job-manager.relay-jobs-enabled set to true:

  • If a Relay Server URL is entered, the transfer job will be automatically confirmed after completion ( "confirm").

  • If no Relay Server URL is entered, the transfer job will be automatically rejected after completion ( "reject").

The e-mail address used is the recipient in the transfer view which is displayed under Relay Recipient E-Mail. Analogous to the local user information this parameter is not communicated to the Sender.

5.5. TIXEL Control Center

Depending on the role of the current user, TCC provides different functions:

Caution
The settings are stored locally in the configuration file tixel_control_center.properties and changes require a restart of the service.
  • Administrator, administrative user; Transfer control and configuration of

  • User: Transfermanagement; Can optionally be finer divided into

    • Transfer monitoring (read-only access)

    • Transfer control

    • Transfer control and prioritization

While the setup mode is a separate area, the administrator access also includes user’s functionality.

5.5.1. Basic Settings

  • Listen Address: address, from which the TCC can be reached; 0.0.0.0 for all interfaces, 127.0.0.1 for the restriction on the local host if it is only accessible through the nginx proxy (http, https).

  • Listen Port: port for the HTTP connection to the TCC (9010).

  • Language: English/German. The system attempts to identify the appropriate setting of the web browser depending on the settings of the user; Therefore this setting applies only to the default or fallback.

  • Upload directory: internal temporary directory, used for uploads e.g. metadata (${TIXEL_HOME}/tmp).

  • System list URL: URL from where the system list can be accessed (see Import via Network).

5.5.2. Advanced Settings

  • Access Manager URL: http://localhost:9001/access-manager/v1

  • Transfer Job Manager URL: http://localhost:60000/transfer-job-manager/v1

  • Update interval: Period until next automatic update of the Web GUI (1000ms); a larger interval may be used to reduce the system load.

  • Min logon delay [s]: Delay after incorrect login (wrong password) in seconds.

  • Logon delay increase factor: Factor, by which the logon delay increases which each failed login.

  • Custom Title: Title displayed in web browser ("Control Center"). Special characters (non latin-1/ISO-8859-1) have to be encoded as \uHHHH with HHHH as four digit unicode hex value.

  • Custom logo path: path and file name of a logo to be displayed in TCC; file format: PNG or JPEG, 150 pixels wide, for example ${TIXEL_HOME}config/logo.png.

The following list contains all available configuration parameters and their default values for MFT. All parameters that are unavailable in the GUI can be modified directly in the .properties file.

custom.access-manager.config-directory = ${TIXEL_HOME}/config
custom.access-manager.url=http://127.0.0.1:9001/access-manager/v1
custom.logging.level=WARN
custom.security.login-delay-increase-factor=2
custom.security.min-login-delay=5
custom.tcc.config-directory = ${TIXEL_HOME}/config
custom.tcc.default-locale=de_DE
custom.tcc.dev.use-fake-services=false
custom.tcc.enabled-admin-modules=TRANSFER_JOB_MANAGER,ACCESS_MANAGER
custom.tcc.enabled-modules=TRANSFER_JOB_MANAGER,ACCESS_MANAGER
custom.tcc.history-page-size=50
custom.tcc.logo-path=${TIXEL_HOME}/config/logo.jpg
custom.tcc.max-session-inactivity-time=1200
custom.tcc.metadata-editor-directory=${TIXEL_HOME}/plugins/metadata-editor
custom.tcc.metadata-editor-enabled=true
custom.tcc.node-list-url=
custom.tcc.password-strength-regex=((?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@!;:.,<>#$%]).{8,32})
custom.tcc.queue-length=25
custom.tcc.refresh-interval=1000
custom.tcc.title=MFT 2.0
custom.tcc.upload-directory=${TIXEL_HOME}/tmp
custom.tixstream-express-job-manager.config-directory=${TIXEL_HOME}/config
custom.tixstream-fx.config-directory=${TIXEL_HOME}/config
custom.transfer-job-manager.config-directory=${TIXEL_HOME}/config
custom.transfer-job-manager.url=http://127.0.0.1:60000/transfer-job-manager/v1
logging.level.com.tixeltec.tcc=${custom.logging.level}
logging.level.root=WARN
server.address=127.0.0.1
server.port=9010

The password strength can be defined by specifying a regular expression (regex). The expression in the standard configuration provides the following password requirements:

  • 8 to 32 characters in length

  • at least one lowercase character

  • at least one uppercase character

  • at least one digit

  • at least one special characters from the set @!;:.,<>#$%

For username the expression ^[A-Za-z0-9_@.-]{4,64}$ is predefined. This applies:

  • 4 to 64 characters in length

  • consisting of the following characters: uppercase letters, lowercase letters, numbers and the special characters`_@.-`

5.6. Access Manager

The settings are available in system administrator area and locally stored in the configuration file access-manager.properties.

Caution
Changes to these settings require a restart of the service and, if necessary, a re-login to TCC.

The settings of the Access Manager (AM) are largely self-explanatory. Should basic settings like IP and/or port be changed, then those changes should be adjusted in the other services (e.g. Transfer Job Manager) accordingly.

5.6.1. Basic Settings

  • Listen Address: Address to access Access Manager. Since this service is used locally only: 127.0.0.1 (localhost).

  • Listen Port: Port for the HTTP connection to the AM (9001).

  • Validity temporary user: Duration, after a temporary user account is automatically removed (minutes). Does not apply to MFT, FX use only.

server.address=127.0.0.1
server.port=9001

5.6.2. Database

See section Database Setup.

5.6.3. LDAP settings

For authentication and authorization with LDAP see section LDAP.

List of configuration parameters:
custom.security.ldap.domain=
custom.security.ldap.email-attribute=email
custom.security.ldap.enabled=false
custom.security.ldap.fullname-attribute=cn
custom.security.ldap.group-base-search=ou=tixel-groups,ou=groups
custom.security.ldap.group-role-attribute=cn
custom.security.ldap.group-search-filter=uniqueMember={0}
custom.security.ldap.manager-dn=
custom.security.ldap.manager-password=
custom.security.ldap.root-dn=dc=tixeltec,dc=net
custom.security.ldap.url=ldap://localhost:389
custom.security.ldap.user-search-base=ou=people
custom.security.ldap.user-search-filter=(uid={0})

The parameter custom.security.ldap.enabled may contain the following values:

  • true: LDAP active

  • false: LDAP inactive

  • ad: Active Directory, experimental support (starting in version 1.5), defining the Windows domain with custom.security.ldap.domain.

  • dev: development mode, test LDAP data are defined as LDIF file with custom.dev.security.ldap.server.ldif-file.

5.7. Transfer Job Manager

The settings are available in system administrator area and stored locally in the configuration file transfer-job-manager.properties.

Caution
Changes to these settings require a restart of the service.

5.7.1. Basic Settings

In the Transfer Job Manager the following basic settings are available. Default values are shown in parentheses.

  • System Name: (target-) system alias, unique system ID

  • Listen Address: IP address on which the service is available; 0.0.0.0 for all interfaces.

  • Listen Port: Default value 60000

  • Hostname (FQDN): global visible and resolvable name (system externally and internally)

  • Max number of parallel outgoing transfers

  • Number of reserved priorization slots

  • Max number of parallel incoming transfers

  • File extension filter: none, blacklist, whitelist

  • File extension list: comma-separated list of file name suffixes, e.g. doc, xls, dat

  • _Auto delete enabled: (yes/no)

  • Auto delete after [min]: Time in minutes, after which transfer jobs are deleted (not the files of the job!), e.g. 1440 for 1 day.

  • _Relay Jobs enabled: (yes/no)

  • Relay_Jobs_TTL [min]: Lifetime of Relay jobs, in minutes.

On a system running https only, the Listen Address can be limited to localhost (127.0.0.1). Note that the http access to the TJM just like the TCC is also realized by the nginx proxy port 80. However, if systems (other transfer systems or local third party systems) use http and port 60000 for access, leave the setting, using the default 0.0.0.0.

Please note that the maximum number of simultaneous outgoing transfers (e.g. 5) comprises already the Number of reserved priorization slots (e.g. 1). Using the previous example, without prioritization, 4 outgoing transfers would be processed in parallel.

5.7.2. Database

See section database setup . Database-Setup.

5.7.3. E-Mail

E-mail settings are used for sending transfer system notifications.

Note
In order to avoid duplicate messages, only the receiving MFT system sends the e-mail notifications. Thus even if you have set an e-mail address for a job and the local system is set up for sending mails, it may happen that no notification is sent when the target system does not send e-mails.
  • Enabled: yes/no

  • SMTP Hostname (FQDN): Mailserver hostname

  • Port: SMTP server port, typically 25, 465 (SSL/TLS), or 587

  • Sender Address: E-mail address for sending notifications

  • Authentification: (yes/no)

  • Username (for authentication only): Username for authentication

  • Password (for authentication only): Password for authentication

  • SSL: yes / no

  • StartTLS: yes / no

  • Trusted Hosts: SMTP servers, that are trusted to send via SSL; * means all.

Templates for e-mail notifications can be saved in the folder config/templates which is in the TIXEL installation directory.

Example JobStatusNotification.html:

<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
<head>
<title th:remove="all">Template for TIXstream Job Status Notifcation</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<h3>Dear <span th:text="${recipient}"/> -</h3>
<p>Status update on following TIXstream transfer job:</p>
<div th:remove="tag" th:utext="${message}"/>
</body>
</html>

In the template, following variables can be used:

  • ${recipient}: Receiver (E-Mail-Address)

  • ${message}: Status information

The following is an example notification of a completed and confirmed transfer:

Dear re@example.com -

Status update on following TIXstream transfer job:

Job ID:20170328T174137-OM9H21NlHi-braunschweig-in
Description: Tue Mar 28 19:38:04 CEST 2017, created by admin
Status: completed; confirmed
Detail: transfer successfully finished and externally confirmed by receiver
Created at: 2017-03-28 19:41:38.0
User Defined Status: test only
Source System: braunschweig
Destination System: bremen
Destination Share: dest

Templates are read at the service start. Thus for changes to take effect, please restart the Transfer Job Manager service.

5.7.4. Advanced settings

  • Access Manager URL: URL of the Access Manager service, http://localhost:9001/access-manager

  • Progress update interval [ms]: Update interval of the transfer status (1000ms).

  • Job scheduler interval [ms]: Time segment in which transfer requests are processed (15000ms).

  • Max Retries: Number of attempts to start a transfer, e.g. if the Sender is not available.

  • Min Reschedule Time [s]: Minimum waiting time to reschedule a transfer, e.g. when the Sender is busy (60 seconds).

  • Max Reschedule Time [s]: Maximum waiting time for rescheduling (300 seconds).

The following settings are related to the transfer engine (TIXstream).

Note
The term internal refers to the communication between transfer engines which usually occurs over the WAN. In contrast, external refers to the control interface (API), which is accessed locally on the MFT (on the same host) by the TJM.
  • TIXstream SSL: yes/no, activation of the TIXstream API SSL interface, deactivated (see note).

  • TIXstream external address: Address used to control tixstream; used locally only by TJM (127.0.0.1) otherwise: ${custom.transfer-job-manager.hostname}.

  • TIXstream external port: Port used to control tixstream; used locally only by TJM (59999).

  • TIXstream internal address: address for internal communication between two TIXstream systems, i.e. the external WAN address, ${custom.transfer-job-manager.hostname}.

  • TIXstream internal port: port for the tixstream control connection (unencrypted: 60002, TLS: 60003)

  • TIXstream Share file: internally generated configuration file of the used storage systems; generated by TJM and used by tixstream. ${custom.transfer-job-manager.hostname}.

  • TIXstream Access file: (not used).

Details regarding rescheduling interval: if a transfer job can not be started because the sender is busy with other jobs, the receiver will start a new transfer attempt after a random period of time between 1 and 5 minutes. The upper and lower limits of this interval can be set, wherein the minimum value is 45s.

Warning
Leave the function TIXstream SSL disabled! This setting refers to the TIXstream control interface used by TJM, which is exclusively local and therefore unencrypted. The TIXstream control channel between two transfer systems is SSL-encrypted independently, see TIXstream configuration.

A list of all configuration parameters and their default settings:

custom.dev.use-fake-transfer=false
custom.logging.level=INFO
custom.mail.from-email=no-reply@tixeltec.com
custom.security.authentication.access-manager.url=http://127.0.0.1:9001/access-manager
custom.tixstream.external.address=127.0.0.1
custom.tixstream.external.port=59999
custom.tixstream.external.ssl=false
custom.tixstream.internal.address=${custom.transfer-job-manager.hostname}
custom.tixstream.internal.port=60002
custom.tixstream.password-file=
custom.tixstream.share-file=shares.xml
custom.transfer-job-manager.auto-delete-after-minutes=10080
custom.transfer-job-manager.auto-delete-enabled=false
custom.transfer-job-manager.destinations-file=target/destinations.json
custom.transfer-job-manager.email-notification-enabled=false
custom.transfer-job-manager.file-extension-list=
custom.transfer-job-manager.file-list-filter-mode=none
custom.transfer-job-manager.hostname=<FQDN>
custom.transfer-job-manager.incoming-job-sync-interval-ms=6000
custom.transfer-job-manager.job-scheduler-interval-ms=3000
custom.transfer-job-manager.max-metadata-size=1048576
custom.transfer-job-manager.max-parallel-incoming-jobs=2
custom.transfer-job-manager.max-parallel-outgoing-jobs=4
custom.transfer-job-manager.max-reschedule-time-seconds=300
custom.transfer-job-manager.max-retries=25
custom.transfer-job-manager.min-reschedule-time-seconds=60
custom.transfer-job-manager.name=<NAME>
custom.transfer-job-manager.notification-threads=100
custom.transfer-job-manager.progress-update-interval-ms=1000
custom.transfer-job-manager.relay-jobs-enabled=false
custom.transfer-job-manager.relay-jobs-ttl-minutes=10080
custom.transfer-job-manager.reserved-prioritized-outgoing-jobs=1
custom.transfer-job-manager.rest-connect-timeout-ms=1000
logging.level.com.tixeltec.tjm=${custom.logging.level}
logging.level.root=WARN
server.address=127.0.0.1
server.port=60000
spring.mail.defaultEncoding=UTF-8
spring.mail.host=localhost
spring.mail.password=
spring.mail.port=25
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.ssl.trust=
spring.mail.properties.mail.smtp.starttls.enable=false
spring.mail.protocol=smtp
spring.mail.tls=false
spring.mail.username=
spring.thymeleaf.prefix=file:///{TIXEL_HOME}/config/templates/

5.7.5. Metadata Size

  • custom.transfer-job-manager.max-metadata-size=8000000, limiting the maximum accepted metadata size

The maximum metadata size can be limited (similar to whitelist/blacklist) on the input side. Note that for using of large datasets (greater than 400 KBytes) several conditions must be met:

  • The receiving system must also be configured to handle metadata of this size, otherwise transfer job creation will fail.

  • Database configuration is designed for use of large data sets. However, processing of corresponding packet sizes must also be configured the MySQL or MSSQL server. In case of an error, check the TJM log. TJM prior version 1.0.4 (Bundle 1.2.2) supports only 400000 bytes when using h2 database.

In general, use of large metadata records can delay transfer job creation and further processing. If any abortions occur due to timeouts, adjust the parameters custom.transfer-job-manager.rest-connect-timeout-ms or, in particular,` custom.transfer-job-manager.rest-read-timeout-ms`. The system was originally designed for metadata sets of up to 400000 characters. Notably when processing jobs with up to 300 files and complex XML schema, data sets with the size of up to 8 megabytes can occur.

5.7.6. Internal Settings

Explanation of internal advanced settings, usually not to be changed:

  • custom.transfer-job-manager.incoming-job-sync-interval-ms = 6000: Synchronization interval of incoming transfer jobs

  • custom.transfer-job-manager.relay-jobs-ttl-minutes = 10080: Lifetime of outgoing FX jobs (downloads)

  • custom.transfer-job-manager.rest-connect-timeout-ms = 1000: Maximum time to wait for connection establishment of control-information between MFT nodes

  • custom.transfer-job-manager.rest-read-timeout-ms = 10000: Maximum time to wait for responses to control-requests between MFT nodes

5.8. TLS/HTTPS

In typical enterprise environments TIXstream MFT should be configured to use TLS encrypted network communication. For API function and TIXEL control center access within the local area network, basic auth is used via https. Communication between different TIXstream MFT nodes uses certificate based mutual authentication. Thus only transfer systems can exchange data when certificates have been provided correspondingly.

For this purpose, individual host certificates containing FQDN, along with the derivation chain up to the root certificate, must be stored on each system. If, for example, the host certificates of all transfer systems involved are derived from one single root CA (certification authority), it is sufficient, that in addition to the host certificate, this CA certificate is set up on all involved systems. If a host certificate was derived from one or more intermediate CA(s), then the entire certificate chain is required up to the root CA.

Independent of the described authentication mechanism, MFT requires transfer systems to be explicitly authorized on systems exchanging transfers. Thus a system owning a certificate derived from a trusted root CA can not automatically initiate transfers. A CRL mechanism (consideration of withdrawn certificates) is currently not envisaged. If CRL is required for enhanced security, it can be implemented via https proxy configuration.

5.8.1. Certificates

The following X.509 certificates and keys are required for using the system with TLS/HTTPS:

  • host-crt.pem, host certificate (cert): host certificate, including derivation chain up to root CA, possibly including intermediate CAs

  • host-key.pem, host key belonging to host-crt.pem.

  • trusted.pem, trusted cert bundle, truststore: contains trusted certificates (root CAs), alternatively individual host certificates, which should be trusted independently of a root CA

The host certificate contains its hostname (FQDN) as CN (common name) as the certificate subject or, alternatively, in the subject alternative name (SAN).

On the server side, https connections are terminated by an nginx reverse proxy. Moreover, the services transfer engine (tixstream), transfer job manager (TJM) and TIXEL control center (TCC) also require host key and truststore for mutual authentication. For https access to TCC and TJM by third-party systems, certificates are used for regular (i.e. non-mutual) server based authentication. For sending notifications via https, TJM requires truststore access as well.

Certificates are required in PEM (base64 encoded) as well as in PKCS12 (PFX/P12) format. PEM is used for nginx and tixstream while the Java services TJM and TCC require host certificates and keys as a PKCS12 Java keystore. A Java keystore can be created in different formats, such as JKS (Java Keystore) or PKCS12 (".p12").

Tip
The file names used in the following are referenced in different configuration files. We recommend to rename or copy files generated with different names to the names above. The same applies to the use of changeit for the password of the Java keystores (` host.p12`, trusted.p12). Otherwise please follow the hints regarding certificate use in the individual services and adjust them.

To summarize, certificates are used in different formats by the following services:

  • nginx, tixstream: host-crt.pem, host-key.pem, trusted.pem

  • Java-Services: host.p12, trusted.p12

These services require read permissions of the respective files. On Linux you may want to create a group tixcerts and assign users` tixstream` and nginx to this group. The tixcerts group is then allowed read access to these files.

Warning
The host key may not be protected with a passphrase. Since this would required manual interaction upon service start, this is the common practice for services. If necessary, remove the passphrase with openssl rsa -in host-key.pem -out host-key.pem. Java keystores can not be used without have a password. Since this is required to start the service, it is stored in the service configuration file.

The truststore file trusted.pem contains concatenated trusted certificates. Typically, these are (only) the root CA certificates, analogous e.g. to the cacerts file of curl or a Java truststore. In addition, individual host certificates to be trusted can also be stored here. If the host certificate was not derived from a stored CA, the truststore must also include the own host certificate in order to allow access to the metadata editor which is connected via an internal service (metadata clipboard).

5.8.2. Certificate Creation and Conversion

When creating certificates, keep in mind that the certificate is used as a server certificate as well as a client certificate. This is the case for a certificate generated by openssl using standard options. When using the corresponding extensions, it must be taken into account during certificate creation (extendedKeyUsage = serverAuth, clientAuth).

When you need your certificate to be signed by a root CA, create a (secret) key and a Certificate Signing Request (CSR, * .csr file) which you pass to your signing authority. The CA will return the signed certificate. The commonly used file name extension is .cer which corresponds to the PEM format required here.

Note that host-crt.pem must contain the derivation chain up to its root CA. The host’s certificate must be the first certificate inside this file. E.g. creating the required certificate chain in host-crt.pem from host certificate host-only-crt.pem, intermediate CA` inter-crt.pem` and root-CA ca-crt.pem, can be done as follows (Windows Shell):

copy /b host-only-crt.pem + inter-crt.pem + ca-crt.pem host-crt.pem

For Linux:

cat host-only-crt.pem inter-crt.pem ca-crt.pem > host-crt.pem

In order to create a PKCS12 from this X.509 certificate and the associated key (host-crt.pem, host-key.pem), you can use openssl (please replace "myhost" with your actual hostname):

openssl pkcs12 -export -in host-crt.pem -inkey host-key.pem -chain -CAfile host-crt.pem -name myhost -out host.p12 -passout pass:changeit

The created file host.p12 can be used as a Java keystore, which can be verified with keytool -v -list -storepass changeit -keystore host.p12. The keytool is included in the JRE or JDK (in Windows, for example,c:\Program Files\Java\jre1.8.0_111\bin\keytool.exe).

Certificates present as .pem files (root CA certificates or host certificates) can be included in a keystore by using the keytool, e.g. (please replace myrootca accordingly):

keytool -storetype PKCS12 -noprompt -storepass changeit -importcert -file myrootca-crt.pem -alias myrootca -keystore trusted.p12

This allows you to add additional trusted certificates. If the import fails, make sure that the PEM is not UTF-16 encoded (e.g. by editing it with a Windows editor).

Tip
Note that the host’s certificate chain is stored in host-crt.pem and host.p12. Hence the truststore files trusted.pem and trusted.p12 only need to contain the root CA(s).

Place the certificate files in the config directory of the MFT installation under the following filenames:

host-crt.pem
host-key.pem
host.p12
trusted.p12
trusted.pem
Caution
If you have used other filenames or passwords for host.p12 or trusted.p12, please adjust the service descriptions accordingly. These are located in the * .service files (Windows) or the systemd modules (Linux).

5.8.3. NGINX

The web server nginx is used as a reverse proxy for https. The MFT software package contains a configuration file nginx_https.conf that has all relevant settings prepared and can be activated manually.

Note
Make sure to restart the NGINX service after making changes to the configuration files.
Activating NGINX Configuration on Windows

To activate the https configuration rename the file %TIXEL_HOME%/nginx/conf/nginx.conf to e.g. %TIXEL_HOME%/nginx/conf/nginx_http.conf and the prepared file %TIXEL_HOME%/nginx/conf/nginx_https.conf to %TIXEL_HOME%/nginx/conf/nginx.conf.

Activating NGINX Configuration on Linux

To activate the https configuration rename the file /etc/nginx/nginx.conf to e.g. /etc/nginx/nginx.conf.bak and copy the prepared file %TIXEL_HOME%/nginx/nginx_https.conf to /etc/nginx/nginx.conf.

NGINX Ports

The system can be set up in a way that

  • it works with both http and https or

  • only works with https.

In the second case, the services can be configured in a way that they can only be accessed from the local proxy via http, i.e. they are bound to localhost only (IPv4 listen address 127.0.0.1). Remote connection however runs via https/nginx only.

The included configuration files nginx_http(s).conf are set up as follows.

  • http configuration

    • http 80 → TCC 9010

    • http 80 → TJM 60000

  • https configuration

    • https server 443 → TCC 9010

    • https server 443 → TJM 60000

    • https mutual 60001 → TJM 60000

    • https mutual 60003 → tixstream 60002

Only ports forwarded by the nginx reverse proxy are listed. In addition, Access Manager runs on Port 9001 and tixstream on port 59999. However, both ports are used locally only.

Caution
In the default configuration, the depth for verifying the certificate chain is set to 4. If longer certificate chains are used, please increase the parameter ssl_verify_depth in the sections for mutual authentication (port 60001 and 60003). Otherwise client verification fails.

5.8.4. TIXstream

To enable TLS for the TIXstream transfer engine, set parameter internal-client-tlsverify to 1 in the configuration file config/tixstream.conf. With value 0 the remaining internal-client-tls*-parameters are ignored. Certificate names and paths are already pre-configured.

internal-client-tlsverify = 1
internal-client-tlscacert = config\trusted.pem
internal-client-tlscert = config\host-crt.pem
internal-client-tlskey = config\host-key.pem

5.8.5. Java Services

Tip
If you use the suggested filenames and the default truststore password, you do not have to make any configuration changes to Java service descriptions.

Java services require the certificates in a Java keystore. Even a truststore containing certificates only is always protected by a password (default: changeit). Details about keystore and truststore are to be specified as options when starting the service (i.e. java command-line). During installation, the services are created with following configuration:

-Djavax.net.ssl.trustStore=%TIXEL_HOME%\config\trusted.p12
-Djavax.net.ssl.trustStorePassword=changeit
-Djavax.net.ssl.keyStore=%TIXEL_HOME%\config\host.p12
-Djavax.net.ssl.keyStorePassword=changeit

If the keystore files names and/or passwords are modified, they must be adjusted in the configuration files of the services (Windows: /config/*.service or – prior installation – in install-tix-services.cmd, Linux: systemd modules and install.sh).

5.8.6. Transfer Job Manager

The Transfer Job Manager notifies the sender system about the port of the receiver system to be used by tixstream.

For encrypted connections select port 60003 (port for http: 60002). In TCC, this setting can be modified in Transfer Job ManagerAdvanced SettingsTIXstream internal port.

Warning
Leave the TIXstream SSL function disabled! This setting refers to the TIXstream control interface used by TJM, which is local only (i.e. inside the MFT system) and therefore unencrypted. The TIXstream control channel between two transfer systems is SSL encrypted independently.

Alternatively, the parameter can be changed in config/transfer-job-manager.properties:

custom.tixstream.internal.port=60003

Do not change setting custom.tixstream.external.ssl=false.

5.8.7. Transfer System List

Transfer system configuration is described in TIXstream MFT Peer Nodes. To use https instead of http, modify the address as follows:

  • replace http with` https`

  • replace port 60000 with 60001, e.g.

https://mft01.example.com:60001/transfer-job-manager/v1
Caution
If a system has already been registered for use with http (e.g.http://mft01.example.com:60000/transfer-job-manager/v1), delete this entry first. Since a system name must be unique, MFT will reject the entry otherwise.

Optionally, you may also activate data channel encryption per transfer system. This is independent of control channel encryption, but makes no sense without encrypted data channel since, in this case, the key for user data would be transmitted via an unsecured channel. Data channel encryption is activated by the sender.

5.8.8. TLS Checklist

As a summary here is a checklist for migrating a system for use with TLS:

  • Create certificates with the specified names and passwords and store them in folder config

  • Exchange prepared nginx configuration (https)

  • In tixstream.conf set the parameter internal-client-tlsverify = 1

  • In TJM configuration, change custom.tixstream.internal.port = 60003 (from 60002)

  • Restart services

  • Adapt transfer system list (change to https and port 60001)

To check whether transfer job manager can be reached using mutual authentication via https port 60001 go to tixel\config directory and issue the following command (replacing FQDN with your MFT hostname):

Windows:

..\tools\curl.exe --cacert .\trusted.pem --cert .\host-crt.pem --key .\host-key.pem https://FQDN:60001/transfer-job-manager/v1/info/name

Linux:

curl --cacert ./trusted.pem --cert ./host-crt.pem --key ./host-key.pem https://FQDN:60001/transfer-job-manager/v1/info/name

This command should display the configured system alias.

If this fails, using curl with an additional -v may provided further details. If you get "SSL certificate verify ok" but 400 ("SSL certificate error"), it is probably due to nginx configuration. Please check the server section for port 60001 and 60003, especially if the certificate file names have been changed:

# Windows:
ssl_client_certificate ../../config/trusted.pem;
# Linux: ssl_client_certificate /opt/tixel/config/trusted.pem;
ssl_verify_client on;
ssl_verify_depth 4;

5.9. Database Setup

For internal data storage, different database types can be used for Access Manager and Transfer Job Manager. While Access Manager data primarily consist of rather static information, Transfer Job Manager saves and updates the entire information related to all transfer jobs.

Thus Access Manager may be used with a file based H2 database. However use of an MSSQL or MySQL compatible database is strongly recommended for the productive operation of the Transfer Job Manager with a large number of transfers, since using the H2 database might lead to high CPU load and therefore delayed responses when operating under heavy load.

The database used by the TIXEL services can be configured in TIXEL Control Center (system configuration mode). Corresponding parameters are stored in the .properties file of the respective service.

5.9.1. H2 DB

Use of file-based H2 databases is pre-configured so that an MFT system can be put into operation without external dependencies. The database files are located in the config directory as service name (with underscore) and suffix .mv.db, e.g. access_manager.mv.db..

5.9.2. MariaDB/MySQL

A sample configuration of a MariaDB or MySQL database server for use with MFT transfer job manager is described below.

Creating a Database

The following SQL statements are used to create the database. Please adapted parameters according to local conditions.

  • <dbName>, arbitrary name of the database, e.g.transfer_jobs

  • <dbUser>, database user, e.g. trjoma@mftsys.sample.com

  • <dbPassword>, database user password <dbUser>, e.g. 'changeit'

CREATE DATABASE <dbName> CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON <dbName>.* TO <dbUser> IDENTIFIED BY <dbPassword>;

On Linux, a script is available for creating a MySQL database on an active database server (localhost) in transfer-job-manager/scripts/create_db.sh.

Configuring Transfer Job Manager

In setup mode of TIXEL control center, the following entries are now made in Transfer Job ManagerDatabase:

  • Database: mysql

  • Jbdc URL: jdbc: mysql://<dbHost>:<dbPort>/<dbName> with

    • <dbHost>: hostname or IP address of the SQL server

    • <dbPort>: port of SQL server, default: 3306

    • <dbName>: name of database created (see above)

  • Username: username, e.g. "trjoma"

  • Password: password used for database login of the above user

  • Jdbc driver: com.mysql.jdbc.Driver (default)

These values can also be set manually with a text editor in the configuration file of the service (config/transfer-job-manager.properties) as datasource.mysql.url = etc. Additionally, spring.datasource.platform = mysql must be set.

The Transfer Job Manager service must be restarted to activate the changes. Upon first use, the required tables are created in the database.

Deleting Database Content

As database administrator, the easiest way to delete the created database is (DROP DATABASE <dbName>) and re-create it as described above.

As database user mentioned above (e.g. "trjoma") each table in the database <dbName> must be deleted (dropped) individually:

USE <dbName>;
DROP TABLE IF EXISTS file_items, file_lists, jobs, metadata, notifications, notification_receivers, queued_jobs, schema_version, transfer_job_parameters, transfer_job_status, nodes, shares;

5.9.3. MSSQL

A sample configuration of an MSSQL server for MFT Transfer Job Manager is described below.

Based on a standard MSSQL installation the following configurations have to be made:

  • Set Server Authentication to SQL Server and Windows Authentication mode or` Mixed mode (SQL and Windows)`

  • Allow access by TCP

  • Create a database and user/login (Collate: utf8_general_ci) and assign access rights

Usually the following steps are required:

Server Authentication
  • In "SQL Server Management Studio", right-click "Server" → Properties → Security

  • "Server Authentication" = SQL Server and Windows Authentication mode

Enable TCP Access

In the MSSQL Configuration Manager, enable TCP. The setting is located in Computer Administration – SQL Configuration Manager – SQL Server Network Configuration – Protocols for 'MSSQLSERVER'. See https://msdn.microsoft.com/en-us/library/ms191294.aspx for details.

Create Database

In the database instance to be used, an empty database must be created for the service using create database. Its name is arbitrary, e.g. mft_transfer_jobs

CREATE DATABASE mft_transfer_jobs;
Database Account

Of course an existing user and its login can be used. To create a dedicated user and login, e.g. trjoma the following SQL statements are required (* to be replaced by database user password):

CREATE LOGIN trjoma WITH PASSWORD = '***';
USE mft_transfer_jobs;
CREATE USER trjoma FOR LOGIN trjoma;
Assign Database User

Define the user created above (here: trjoma) as database owner:

exec sp_addrolemember 'db_owner', 'trjoma';

To configure the MFT service, the instanceName of the database (which was defined during MS SQL installation) is required, unless the default name ("MSSQLSERVER") is used.

In setup mode of the TIXEL Control Center, the following entries need to be made in Transfer Job ManagerDatabase:

  • Database: mssql

  • Jbdc URL: jdbc: sqlserver: // <SERVER_IP>; instanceName = <INSTANCE_NAME>; databaseName = mft_transfer_jobs; integratedSecurity = false;

  • Username: database username, e.g. "trjoma"

  • Password: password for database user

  • Jdbc driver: com.microsoft.sqlserver.jdbc.SQLServerDriver (default)

These values can also be set manually with a text editor in the service configuration file (config/transfer-job-manager.properties) as datasource.mssql.url= etc. Additionally, spring.datasource.platform = mssql must be set.

The Transfer Job Manager service must then be restarted. Database tables are created during first use.

Examples for Access Manager and Transfer Job Manager services:

create login acma with password = 'changeme';
create database mft_access_manager;
use mft_access_manager;
create user acma for login acma;
exec sp_addrolemember 'db_owner', 'acma';

create login trjoma with password = 'chnagemenow';
create database mft_transfer_jobs;
use mft_transfer_jobs;
create user trjoma for login trjoma;
exec sp_addrolemember 'db_owner', 'trjoma';
Deleting Database Content

To clean databases completely, please select the appropriate database and execute the following command:

EXEC sp_MSforeachtable "DROP TABLE?";

or

EXEC sp_MSforeachtable @command1="DROP TABLE?";

5.10. LDAP

User authentication and authorization can also be handled by using LDAP. TIXstream MFT accesses an LDAP server with read permissions only. Hence, no directory modifications are done by the MFT system.

5.10.1. Sample configuration

The following description is based on the example below. The LDAP groups (groupOfUniqueNames), used for mapping user roles are particularly relevant for the transfer system; in the example tixel-user and tixel-admin.

  • dc=tixel,dc=it

    • ou=tixgroups

      • cn=tixel-admin

      • cn=tixel-user

    • ou=Users

      • uid=ernie

      • uid=bert

      • uid=oskar

dn: dc=tixel,dc=it
objectClass: dcObject
objectClass: organization
objectClass: top
o: tixel
dc: tixel

dn: ou=Users,dc=tixel,dc=it
objectClass: top
objectClass: organizationalUnit
ou: Users

dn: uid=ernie,ou=Users,dc=tixel,dc=it
objectClass: posixAccount
objectClass: top
objectClass: inetOrgPerson
gidNumber: 0
givenName: Ernie
sn: Henson
displayName: Ernie
uid: ernie
homeDirectory: /home/ernie
cn: Ernie
uidNumber: 12758
mail: ernie@tixeltec.com
userPassword: {SHA}kG****k=

...

dn: ou=tixgroups,dc=tixel,dc=it
objectClass: top
objectClass: organizationalUnit
ou: tixgroups

dn: cn=tixel-admin,ou=tixgroups,dc=tixel,dc=it
cn: tixel-admin
objectClass: groupOfUniqueNames
uniqueMember: uid=ernie,ou=Users,dc=tixel,dc=it
uniqueMember: uid=bert,ou=Users,dc=tixel,dc=it

dn: cn=tixel-user,ou=tixgroups,dc=tixel,dc=it
cn: tixel-user
objectClass: groupOfUniqueNames
uniqueMember: uid=ernie,ou=Users,dc=tixel,dc=it
uniqueMember: uid=bert,ou=Users,dc=tixel,dc=it
uniqueMember: uid=oskar,ou=Users,dc=tixel,dc=it

5.10.2. LDAP Settings in Access Manager

In setup mode of the TIXEL Control Center, create the following entries in Access ManagerLDAP Settings. Values have to be adapted to the actual LDAP configuration.

For the LDAP configuration from the example above:

LDAP enabled .............. yes
LDAP URL .................. ldap://dstst.example.com:389
LDAP root DN .............. dc=tixel, dc=it
User Search Base .......... ou=Users
Group Search Base ......... ou=tixgroups
User Search Filter ........ (uid={0})
Group Search filter ....... (uniqueMember={0})
Group Role Attribute ...... cn
LDAP Manager DN ...........
LDAP Manager Secret .......
Email Attribute ........... email
Full Name Attribute ....... cn

To use LDAPS (LDAP over TLS/SSL) LDAP URL must be adapted accordingly (e.g. ldaps://dstst.example.com:636). If not done already, import the certificate or the root CA chain in the truststore used by the Access Manager (default: ${TIXEL_HOME}/config/trusted.p12), see also TLS/HTTPS. The use of STARTTLS via port 389 is not supported.

If the LDAP server does not allow anonymous access, parameters LDAP Manager DN and LDAP Manager Secret must be specified for LDAP access. In the access-manager.properties file, these are the parameters custom.security.ldap.manager-dn and custom.security.ldap.manager-password.

The value from LDAP root DN is always added to the search path. Thus, do not repeat this value again (in the example, search path for users is ou=Users, dc=tixel, dc=it).

Upon log in, users enter their uid as user name. Thus User Search Filter is (uid={0}). If users are supposed to log on with their e-mail address instead, User Search Filter would be (mail={0}).

In the example, groups were created with objectClass groupOfUniqueNames. These contain members with complete DN (FDN, Fully Distinguished Name) in uniqueMember (e.g. uniqueMember: uid=ernie, ou=Users, dc=tixel, dc=it). Using groupOfNames behaves similar, here group members are stored as member.

If you are using posixGroups (which contain the uid as memberUid, e.g. memberUid: uid=ernie), you must change the group search filter from (uniqueMember={0}) to (memberUid={1}), since {1} contains the login name (uid), while {0} contains the FDN of the user.

Tip
While in the user search filter {0} is replaced by the login name, group search filter {0} contains the user’s FDN; here login name can be referenced as {1}.
Table 4. LDAP groups
objectClass Member Objects Example Group Search Filter

groupOfUniqueNames

uniqueMember

uniqueMember: uid=ernie,ou=Users,dc=tixel,dc=it

(uniqueMember={0})

groupOfNames

member

member: uid=ernie,ou=Users,dc=tixel,dc=it

(member={0}))

posixGroups

memberUid

memberUid: uid=ernie

(memberUid={1})

Finally, the Group Role Attribute specifies which attribute contains the group identifier (here: cn). These identifiers are used in role assignment described in the next section.

5.10.3. LDAP Role Assignment

In TIXEL Control Center, User administrationRoles, Directory server group, the appropriate LDAP groups can be assigned to each role (currently 6 different roles, for example, "Access Manager Admin"). Different roles can be assigned to the same LDAP groups. In this example, only two groups tixel-admin and tixel-user are used:

Table 5. role assignment
Authority Role Group (Example)

Access Manager User

ROLE_USER

tixel-user

Access Manager Admin

ROLE_ADMIN

tixel-admin

TIXstream Transfer Manager Limited User

ROLE_TRANSFER_MANAGER_LIMITED_USER

tixel-user

TIXstream Transfer Manager User

ROLE_TRANSFER_MANAGER_USER

tixel-user

TIXstream Transfer Manager Privileged User

ROLE_TRANSFER_MANAGER_PRIVILEGED_USER

tixel-admin

TIXstream Transfer Manager Admin

ROLE_TRANSFER_MANAGER_ADMIN

tixel-admin

The following roles are assigned to default users:

  • admin

    • Access Manager User ROLE_USER

    • Access Manager Admin ROLE_ADMIN

    • TIXstream Transfer Manager Admin ROLE_TRANSFER_MANAGER_ADMIN

    • TIXstream Transfer Manager User ROLE_TRANSFER_MANAGER_USER

  • privileged-user

    • Access Manager User ROLE_USER

    • TIXstream Transfer Manager Privileged User ROLE_TRANSFER_MANAGER_PRIVILEGED_USER

  • user (demo)

    • Access Manager User ROLE_USER

    • TIXstream Transfer Manager User ROLE_TRANSFER_MANAGER_USER

  • limited-user

    • Access Manager User ROLE_USER

    • TIXstream Transfer Manager Limited User ROLE_TRANSFER_MANAGER_LIMITED_USER

The following roles from a previous version were discarded:

Path Mapper Admin

ROLE_PATH_MAPPER_ADMIN

Path Mapper User

ROLE_PATH_MAPPER_USER

Transfer Status Monitor Admin

ROLE_TRANSFER_STATUS_MONITOR_ADMIN

Transfer Status Monitor User

ROLE_TRANSFER_STATUS_MONITOR_USER

Caution
After changing LDAP settings, restart Access Manager service.

5.11. Metadata Editor

TIXstream MFT comes with the option to include a metadata editor as plugin for the use in TCC. The following two parameters are relevant for the metadata editor.

custom.tcc.metadata-editor-directory=${TIXEL_HOME}/plugins/editor
custom.tcc.metadata-editor-enabled=true

The editor is stored in subdirectory plugins\editor of the MFT installation folder, e.g. D:\bin\tixel\plugins\editor.

In TCC Web interface, the editor is provided internally with base URI /tixel-control-center/eme/. If the editor requires absolute references to its resources, this parameter has to be set within the editor.

6. Logging

6.1. Windows

6.1.1. MFT Services

For each service, a subfolder with the service name is created in directory logs, e.g. tixelcontrolcenter. Each subfolder contains:

  • Start log, e.g. tixelcontrolcenter.log with information on the service start.

  • Status, e.g. tixelcontrolcenter.status with information about the current state (e.g. STARTED, STOPPED).

  • Service logs, e.g. tixelcontrolcenter-2016-10-05T14:20:40.log. For every (re)start a new file is created with the current time stamp. If the file reaches a size of 500 megabytes, a new file will be created.

The basic status of the service can be obtained from the start log. In the service logs, service specific information can be found.

Settings for logging can to be made separately for each service in TIXEL Control Center setup mode.

Note
Settings regarding logging shown in TCC are currently not used because log information is passed to the service wrapper via stdout that takes care of the log rotation on Windows.
  • Log Level: ERROR, WARN, INFO, DEBUG; in increasing detail

  • Log Directory: (sub)directory for log files (log)

  • Log File Name

  • Log rotation format

  • Max Log File Size

6.1.2. Web Proxy

The used web proxy NGINX generates various log files that can be rotated or deleted separately. For this purpose, the script nginxlogrotate.cmd (in admscripts) is available. It can be started periodically by using Windows task scheduling.

Individual adjustments can be made inside this script by using a text editor:

  • ROTSIZE: Log file size in bytes at which a new log file should be created.

  • ROTKEEP: Number of old log files to be persisted (per log file name)

The other parameters do not need to be changed in an unmodified installation.

  • NGLOGDIR: Log files Directory (%TIXEL_HOME%\logs\nginx\)

  • NGLOGS: Log file names, separated by spaces (error.log access.log access_tixstream.log access_tjm.log)

  • NGDIR: Directory of nginx.exe (%TIXEL_HOME%\nginx\)

Example configuration (excerpt from nginxlogrotate.cmd):

rem file size triggering rotation (Bytes):
set ROTSIZE=500000

rem number of old log files to keep (of each log):
set ROTKEEP=3

rem nginx log file directory:
set NGLOGDIR=%~dp0%..\logs\nginx\

rem nginx log files to process, space separated (no spaces in filenames allowed!):
set "NGLOGS=error.log access.log access_tixstream.log access_tjm.log"

rem nginx working directory
set NGDIR=%~dp0%..\nginx\
Note
The script must be run as administrator. Please take that into account when setting up Task Scheduler.

In general, proxy logging can be minimized or disabled during normal operation, and only be activated temporarily for troubleshooting. With the value off as log file names, access logs can be disabled in nginx.conf. However, error log cannot be disabled.

6.2. Linux

On Linux, the TIXEL services use journal daemon (journald) for standard logging conformity. Thus journald also takes care of log rotation. Using journalctl you can access logging (journal) data. For configuration and use please refer to general documentation; below there is only a brief overview of the most important functions.

In standard OS setting, log information is retained only until the next reboot. By setting Storage=persistent in the configuration file /etc/systemd/journald.conf logs can be stored permanently. Further information can be found with man journald.conf.

A brief overview of the most important functions and filters for journalctl:

  • -e Jump to end of journal

  • -f Jump to end of journal and provide continuous "live" output (similar to tail -f)

  • -u UNITNAME output only data of corresponding units, e.g. journalctl -u tixel-control-center.service

  • --since "2016-10-01" time restriction

  • --until "10 minutes ago" time restriction

For further information see man journalctl and (for information on times) man systemd.time.

7. Local Test Setup

In this section a minimal test setup is described. It is assumed that the system is set up up as described in section Installation.

7.1. Minimum Test Configuration

The transfer system can also perform transfers "to itself". Here it acts as a sending and receiving system. Consequently, a transfer job appears twice: as incoming and outgoing job.

Create two directories for test data, e.g. on Linux:

# as root
mkdir -p /data/in
mkdir /data/out
echo "Hello world" > /data/out/hello.txt
chown -R tixstream:tixstream /data

On Windows:

mkdir D:\data\in
mkdir D:\data\out
echo Hello world > D:\data\out\hello.txt

Log in to the transfer system Web UI, e.g. http://mft01.example.com:9010/tixel-control-center/ using default username admin and password verysecret.

In tab Nodes click + to create a new node with the address of your system, e.g. http://mft01.example.com:60000/transfer-job-manager/v1 and click Save.

In tab Shares add the directories that you just created:

  • Name=in

    • Local Path=/data/in (or d:/data/in)

    • Public URI=file://mft01/in

    • Permissions: Write

  • Name=out

    • Local Path=/data/out (or d:/data/out)

    • Public URI=file://mft01/out

    • Permissions: Read

7.2. A First Transfer

Switch to Tab Transfer . After clicking on Refresh (top button with the two semi-circular arrows) Source out, that has just been created, should be displayed. After clicking this source the file list appears in the center. Select one (or more) file(s) and add them with > to the transfer job.

In section Metadata, you can add content-specific metadata. The transfer system itself does not verify the existence or the accuracy of the metadata. For pure transfer tests, this is not mandatory.

In the Peer Selection section the available transfer destinations are displayed. If systems have been recently added, click on Refresh. Choose an online transfer system, a destination and add it by clicking > to the transfer job.

Under Execution optionally add a description, select the Queue Option Now and click Create.

In the tab Dashboard, you can track the status of the job.

8. Initiating, Monitoring and Controlling Transfer Jobs

For a detailed description on how to use all TIXstream MFT features for specific file transfer tasks please refer to: TIXstream MFT User Guide.

9. TIXwatch Watch Folder Setup

TIXwatch is an optional module in TIXstream MFT, that allows you to configure watch folders. The content of these folders is continuously monitored and transfer jobs are created automatically for files that have been copied to the folder within a configurable time interval.

For details please refer to: TIXstream MFT with TIXwatch Watch Folder.

10. Pixspan Plugin for Lossless Image Compression

TIXstream MFT provides the option to integrate Pixspan’s lossless image compression library as a plugin. For details please refer to: TIXstream MFT with Pixspan Image Compression.

11. Update

The following sections describe how to update bundles from previous versions. As usual, before running an update please make sure you have backups of the database and configuration data.

The additional manual steps mentioned for each release can be applied subsequently if you want to update from an older version. However, you don’t have to actually download and install each subsequent previous versions.

If you would like update TIXstream MFT v1.2.x to v1.8.0, please carefully read the separate guide Updating from v1.2.x.

11.1. Windows

You can update an existing Windows installation using the install script.

Unzip the installation archive. Make sure to not use the current installation directory as target folder. Run install.cmd located in the unzipped folder: right click "Run as administrator" or run it from "Command Prompt (Administrator)".

The script tries to stop the services; please ignore any error messages if the services are already stopped. A new directory on the same level as the installer directory tixbak-<date> is created and contents of the old TIXstream MFT installation are copied there.

The existing installation is updated with new program versions. Configuration files, certificates, logs and possibly file-based databases will not be touched. The content of the script directories (admscripts, consolescripts) will be updated and TIXstream profiles are replaced with most recent versions.

If successful you can restart the services.

11.2. Linux

You can update an existing Linux installation using a installation script.

The installation script will first stop the running TIXEL services. The directory of the existing installation will be backed up by the script. The backup will be placed in /opt/.tixel.bak/tixel-<date>-<time>. Afterwards, configuration settings of the old installation are restored in the installation directory.

TIXstream MFT services can be started with /opt/tixel/admin/ctl-services.sh start after a successful installation.

11.2.1. Keeping user, group and umask Settings

If you have installed the TIXstream MFT services using specific service user and group settings (instead of the defaults tixstream:tixstream), you are asked if you would like to keep those settings (recommended).

If you use specific umask settings in the corresponding service files, you need to provide umask setting explicitly (again) when invoking the install script, e.g.:

$ sudo ./install.sh --umask 002

11.3. Updating from v1.7.0 to v1.8.0

No new configuration options have been introduced. To update just run the installation script.

If you would like update from TIXstream MFT v1.2.x, please carefully read the separate guide Updating from v1.2.x.

11.4. Updating from v1.6.x to v1.7.0

A new license option has been introduced. To get legacy behaviour, please add the following line to tixstream.conf:

If you have a file based license:

license-type = 380

If you have a usb dongle license:

license-type = 100

On CentOS6 a new library is required, that is typically not part of the standard installation.

yum install c-ares

If you use the Pixspan immage compression library, please see: Pixspan Lossless Image Compression - Update.

11.5. Updating from v1.4.3 to v1.6.0

In order to support MariaDB >=10.2.0, the embedded Transfer Job Manager database migration scripts had to be adapted and are not compatible between v1.4.3 and v1.6.0. This has to be fixed manually after updating TIXstream MFT. Otherwise Transfer Job Manager will not start when using MySQL/MariaDB.

Ensure that Transfer Job Manager service is not running and open mysql command prompt.

$ mysql --user <user> --password transfer_job_manager
Enter password:

mysql> update schema_version set checksum = 1534752108 where version = '1.28';

Then restart Transfer Job Manager service (and other TIXstream MFT services).

11.6. Updating from v1.5.0 to v1.6.0

In order to support MariaDB >=10.2.0 the embedded Transfer Job Manager database migration scripts had to be adapted and are not compatible between v1.5.0 and v1.6.0. This has to be fixed manually after updating TIXstream MFT. Otherwise Transfer Job Manager will not start when using MySQL/MariaDB.

Ensure that Transfer Job Manager service is not running. Then open a mysql command prompt.

$ mysql --user <user> --password transfer_job_manager
Enter password:

mysql> update schema_version set checksum = -481479004 where version = '1.29';

Then restart Transfer Job Manager service (and other TIXstream MFT services).

11.7. Updating the TIXstream License

The update of the MFT software does usually not require updating the license key. If the TIXstream license has expired, a license file can be installed as described in Activate license. It is not necessary to uninstall old licenses.

Caution
Please pay attention to the expiration date of the license. To check the expiration date, see Check License.