mq90 MFT PDF
mq90 MFT PDF
IBM
Note
Before using this information and the product it supports, read the information in “Notices” on page
921.
This edition applies to version 9 release 0 of IBM® MQ and to all subsequent releases and modifications until otherwise
indicated in new editions.
When you send information to IBM, you grant IBM a nonexclusive right to use or distribute the information in any way it
believes appropriate without incurring any obligation to you.
© Copyright International Business Machines Corporation 2007, 2020.
US Government Users Restricted Rights – Use, duplication or disclosure restricted by GSA ADP Schedule Contract with
IBM Corp.
Contents
iii
Controlling MFT by putting messages on the agent command queue............................................. 271
Troubleshooting MFT...............................................................................................................................272
MFT general troubleshooting.............................................................................................................272
Troubleshooting the Connect:Direct bridge...................................................................................... 340
MFT reference..........................................................................................................................................346
MFT security reference...................................................................................................................... 346
Which MFT commands and processes connect to which queue manager.......................................361
MFT commands..................................................................................................................................368
MFT configuration reference..............................................................................................................522
MFT administration reference........................................................................................................... 609
MFT developing applications reference............................................................................................ 822
MFT diagnostic messages..................................................................................................................920
Notices..............................................................................................................921
Programming interface information........................................................................................................ 922
Trademarks.............................................................................................................................................. 922
iv
Managed File Transfer
Managed File Transfer transfers files between systems in a managed and auditable way, regardless of file
size or the operating systems used.
You can use Managed File Transfer to build a customized, scalable, and automated solution that enables
you to manage, trust, and secure file transfers. Managed File Transfer eliminates costly redundancies,
lowers maintenance costs, and maximizes your existing IT investments.
The diagram shows a simple Managed File Transfer topology. There are two agents, each connect to their
own agent queue manager in an IBM MQ network. A file is transferred from the agent on the one side of
the diagram, through the IBM MQ network, to the agent on the other side of the diagram. Also in the IBM
MQ network are the coordination queue manager and a command queue manager. Applications and tools
connect to these queue managers to configure, administer, operate, and log Managed File Transfer activity
in the IBM MQ network.
Managed File Transfer can be installed as four different options, depending on your operating system and
overall setup. These options are Managed File Transfer Agent, Managed File Transfer Logger, Managed
File Transfer Service, or Managed File Transfer Tools. For more information, see Managed File Transfer
product options.
You can use Managed File Transfer to perform the following tasks:
• Create managed file transfers
– Create new file transfers from IBM MQ Explorer on Linux® or Windows platforms.
– Create new file transfers from the command line on all supported platforms.
– Integrate file transfer function into the Apache Ant tool.
Set the keystore location and attributes with IBM MQ Explorer, or with the DEFINE CHANNEL command;
see DEFINE CHANNEL (MQTT). Multiple channels can share a keystore.
MQTT non-phrases
MQTTClient mqttClient = new MqttClient( "ssl://www.example.org:8884", "clientId1");
mqttClient.connect();
SampleAsyncCallBack
SampleAsyncCallBack is in the org.eclipse.paho.client.mqttv3 package. It calls the
asynchronous MQTT API. The asynchronous API does not wait for MQTT to complete processing a
call; it returns to the application. The application carries on with other tasks, then waits for the next
event to arrive for it to process. MQTT posts an event notification back to the application when it
completes processing. The event driven MQTT interface is suited to the service and activity
programming model of Android and other event driven operating systems.
As an example, look at how the mqttExerciser sample integrates MQTT into Android using the
service and activity programming model.
SampleAsyncWait
SampleAsyncWait is in the org.eclipse.paho.client.mqttv3 package. It uses the
asynchronous MQTT API; it waits on a different thread until an action completes. The main thread can
do other work until it synchronizes on the thread that is waiting for the MQTT action to complete.
@rem Set the certificate authority (CA) jks keystore and certificate parameters.
@rem Omit this step, unless you are defining your own certificate authority.
@rem The CA keystore contains the key-pair for your own certificate authority.
@rem You must protect the CA keystore.
@rem The CA certificate is the self-signed certificate authority public certificate.
@rem It is commonly known as the CA root certificate.
set caalias=caalias
set cadname="CN=mqttca.ibm.id.com, OU=ID, O=IBM, L=Hursley, S=Hants, C=GB"
set cakeypass=%password%
@rem ca keystore
set cajkskeystore=%certpath%\cakeystore.jks
set cajkskeystorepass=%password%
@rem ca certificate (root certificate)
set cacert=%certpath%\cacert.cer
@rem Set the paths to the client truststores signed by CA and signed by server key.
@rem You only need to define one of the truststores.
@rem A truststore holds certificates that you trust,
@rem which are used to authenticate untrusted certificates.
@rem In this example, when the client authenticates the MQTT server it connects to,
@rem it authenticates the certificate it is sent by the server
@rem with the certificates in its truststore. Managed File Transfer 15
@rem For example, the MQTT server sends its server certificate,
@rem and the client authenticates it with either the same server certificate
@rem that you have stored in the cltsrvtruststore.jks truststore,
cleancert.bat
The commands in the cleancert.bat script delete the MQTT client queue manager to ensure that
the server certificate store is not locked, and then delete all the keystores and certificates that are
created by the sample security scripts.
@rem Erase all the certificates and keystores created by the sample scripts.
erase %cajkskeystore%
erase %cacert%
erase %srvjkskeystore%
erase %srvcertreq%
erase %srvcertcasigned%
erase %srvcertselfsigned%
erase %cltjkskeystore%
erase %cltp12keystore%
erase %cltpemkeystore%
erase %cltcertreq%
erase %cltcertcasigned%
erase %cltcertselfsigned%
erase %cltcajkstruststore%
erase %cltcap12truststore%
erase %cltcapemtruststore%
erase %cltsrvjkstruststore%
erase %cltsrvp12truststore%
erase %cltsrvpemtruststore%
erase %mqlog%
@echo Cleared all certificates
dir %certpath%\*.* /b
Figure 2. cleancert.bat
genkeys.bat
The commands in the genkeys.bat script create key-pairs for your private certificate authority, the
server, and a client.
@rem
@echo ________________________________________________________________________________
@echo Generate %caalias%, %srvalias%, and %cltalias% key-pairs in %cajkskeystore%,
%srvjkskeystore%, and %cltjkskeystore%
@rem
@rem -- Generate a client certificate and a private key pair
@rem Omit this step, unless you are authenticating clients.
%keytool% -genkeypair -noprompt -alias %cltalias% -dname %cltdname% -keystore
%cltjkskeystore% -storepass %cltjkskeystorepass% -keypass %cltkeypass% -keyalg %algorithm% -
validity %validity%
Figure 3. genkeys.bat
sscerts.bat
The commands in the sscerts.bat script export the client and server self-signed certificates from
their keystores, and import the server certificate into the client truststore, and the client certificate
@rem
@echo ________________________________________________________________________________
@echo Export self-signed certificates: %srvcertselfsigned% and %cltcertselfsigned%
@rem Export Server public certificate
%keytool% -exportcert -noprompt -rfc -alias %srvalias% -keystore %srvjkskeystore% -
storepass %srvjkskeystorepass% -file %srvcertselfsigned%
@rem Export Client public certificate
@rem Omit this step, unless you are authenticating clients.
%keytool% -exportcert -noprompt -rfc -alias %cltalias% -keystore %cltjkskeystore% -
storepass %cltjkskeystorepass% -file %cltcertselfsigned%
@rem
@echo ________________________________________________________________________________
@echo Add selfsigned server certificate %srvcertselfsigned% to client truststore:
%cltsrvjkstruststore%
@rem Import the server certificate into the client-server truststore (for server self-
signed authentication)
%keytool% -import -noprompt -alias %srvalias% -file %srvcertselfsigned% -keystore
%cltsrvjkstruststore% -storepass %cltsrvjkstruststorepass%
@rem
@echo ________________________________________________________________________________
@echo Add selfsigned client certificate %cltcertselfsigned% to server truststore:
%srvjkskeystore%
@rem Import the client certificate into the server truststore (for client self-signed
authentication)
@rem Omit this step, unless you are authenticating clients.
%keytool% -import -noprompt -alias %cltalias% -file %cltcertselfsigned% -keystore
%srvjkskeystore% -storepass %srvjkskeystorepass%
@rem
@echo ________________________________________________________________________________
@echo Create a pem client-server truststore from the jks client-server truststore:
%cltsrvpemtruststore%
@rem
%keytool% -importkeystore -noprompt -srckeystore %cltsrvjkstruststore% -destkeystore
%cltsrvp12truststore% -srcstoretype jks -deststoretype pkcs12 -srcstorepass
%cltsrvjkstruststorepass% -deststorepass %cltsrvp12truststorepass%
%openssl%\bin\openssl pkcs12 -in %cltsrvp12truststore% -out %cltsrvpemtruststore% -passin
pass:%cltsrvp12truststorepass% -passout pass:%cltsrvpemtruststorepass%@rem
@rem
@echo ________________________________________________________________________________
@echo Create a pem client keystore from the jks client keystore
@rem Omit this step, unless you are configuring a C or iOS client.
@rem
%keytool% -importkeystore -noprompt -srckeystore %cltjkskeystore% -destkeystore
%cltp12keystore% -srcstoretype jks -deststoretype pkcs12 -srcstorepass
%cltjkskeystorepass% -deststorepass %cltp12keystorepass%
%openssl%\bin\openssl pkcs12 -in %cltp12keystore% -out %cltpemkeystore% -passin
pass:%cltp12keystorepass% -passout pass:%cltpemkeystorepass%
Figure 4. sscerts.bat
cacerts.bat
The script imports the certificate authority root certificate into the private keystores. The CA root
certificate is needed to create the keychain between the root certificate and the signed certificate. The
cacerts.bat script exports the client and server certificate requests from their keystores. The script
signs the certificate requests with the key of the private certificate authority in the
cajkskeystore.jks keystore, then imports the signed certificates back into the same keystores
from which the requests came. The import creates the certificate chain with the CA root certificate.
The script creates a client truststore in PEM format from the client JKS truststore.
@rem
@echo ________________________________________________________________________________
@echo Add CA to server key and client key and truststores: %srvjkskeystore%, %cltjkskeystore
%, %cltcajkstruststore%,
@rem The CA certificate is necessary to create key chains in the client and server
keystores,
@rem and to certify key chains in the server keystore and the client truststore
@rem
@rem Import the CA root certificate into the server keystore
%keytool% -import -noprompt -alias %caalias% -file %cacert% -keystore %srvjkskeystore% -
storepass %srvjkskeystorepass%
@rem Import the CA root certificate into the client keystore
@rem Omit this step, unless you are authenticating clients.
%keytool% -import -noprompt -alias %caalias% -file %cacert% -keystore %cltjkskeystore% -
storepass %cltjkskeystorepass%
@rem Import the CA root certificate into the client ca-truststore (for ca chained
authentication)
%keytool% -import -noprompt -alias %caalias% -file %cacert% -keystore %cltcajkstruststore% -
storepass %cltcajkstruststorepass%
@rem
@echo ________________________________________________________________________________
@echo Create certificate signing requests: %srvcertreq% and %cltcertreq%
@rem
@rem Create a certificate signing request (CSR) for the server key
%keytool% -certreq -alias %srvalias% -file %srvcertreq% -keypass %srvkeypass% -keystore
%srvjkskeystore% -storepass %srvjkskeystorepass%
@rem Create a certificate signing request (CSR) for the client key
%keytool% -certreq -alias %cltalias% -file %cltcertreq% -keypass %cltkeypass% -keystore
%cltjkskeystore% -storepass %cltjkskeystorepass%
@rem
@echo ________________________________________________________________________________
@echo Sign certificate requests: %srvcertcasigned% and %cltcertcasigned%
@rem The requests are signed with the ca key in the cajkskeystore.jks keystore
@rem
@rem Sign server certificate request
%keytool% -gencert -infile %srvcertreq% -outfile %srvcertcasigned% -alias %caalias% -
keystore %cajkskeystore% -storepass %cajkskeystorepass% -keypass %cakeypass%
@rem Sign client certificate request
@rem Omit this step, unless you are authenticating clients.
%keytool% -gencert -infile %cltcertreq% -outfile %cltcertcasigned% -alias %caalias% -
keystore %cajkskeystore% -storepass %cajkskeystorepass% -keypass %cakeypass%
@rem
@echo ________________________________________________________________________________
@echo Import the signed certificates back into the keystores to create the key chain:
%srvjkskeystore% and %cltjkskeystore%
@rem
@rem Import the signed server certificate
%keytool% -import -noprompt -alias %srvalias% -file %srvcertcasigned% -keypass %srvkeypass%
-keystore %srvjkskeystore% -storepass %srvjkskeystorepass%
@rem Import the signed client certificate and key chain back into the client keystore
%keytool% -import -noprompt -alias %cltalias% -file %cltcertcasigned% -keypass %cltkeypass%
-keystore %cltjkskeystore% -storepass %cltjkskeystorepass%
@rem
@rem The CA certificate is needed in the server keystore, and the client truststore
@rem to verify the key chain sent from the client or server
@echo Delete the CA certificate from %cltjkskeystore%: it causes a problem in converting
keystore to pem
@rem Omit this step, unless you are authenticating clients.
%keytool% -delete -alias %caalias% -keystore %cltjkskeystore% -storepass %cltjkskeystorepass
%
@rem
18 Managed@echo
File Transfer
________________________________________________________________________________
@echo Create a pem client-ca truststore from the jks client-ca truststore:
%cltcapemtruststore%
mqcerts.bat
The script lists the keystores and certificates in the certificate directory. It then creates the MQTT
sample queue manager and configures the secure telemetry channels.
@echo ________________________________________________________________________________
@echo List keystores and certificates
dir %certpath%\*.* /b
@rem
@echo Create queue manager and define mqtt channels and certificate stores
call "%MQ_FILE_PATH%\mqxr\Samples\SampleMQM" >> %mqlog%
echo DEFINE CHANNEL(%chlreq%) CHLTYPE(MQTT) TRPTYPE(TCP) PORT(%portsslreq%)
SSLCAUTH(%authreq%) SSLKEYR('%srvjkskeystore%') SSLKEYP('%srvjkskeystorepass%')
MCAUSER(%mcauser%) | runmqsc %qm% >> %mqlog%
echo DEFINE CHANNEL(%chlopt%) CHLTYPE(MQTT) TRPTYPE(TCP) PORT(%portsslopt%)
SSLCAUTH(%authopt%) SSLKEYR('%srvjkskeystore%') SSLKEYP('%srvjkskeystorepass%')
MCAUSER(%mcauser%) | runmqsc %qm% >> %mqlog%
echo DEFINE CHANNEL(%chlsslreqws%) CHLTYPE(MQTT) TRPTYPE(TCP) PORT(%portsslreqws%)
SSLCAUTH(%authreq%) SSLKEYR('%srvjkskeystore%') SSLKEYP('%srvjkskeystorepass%')
MCAUSER(%mcauser%) PROTOCOL(HTTP) | runmqsc %qm% >> %mqlog%
echo DEFINE CHANNEL(%chlssloptws%) CHLTYPE(MQTT) TRPTYPE(TCP) PORT(%portssloptws%)
SSLCAUTH(%authopt%) SSLKEYR('%srvjkskeystore%') SSLKEYP('%srvjkskeystorepass%')
MCAUSER(%mcauser%) PROTOCOL(HTTP) | runmqsc %qm% >> %mqlog%
echo DEFINE CHANNEL(%chlws%) CHLTYPE(MQTT) TRPTYPE(TCP) PORT(%portws%)
MCAUSER(%mcauser%) PROTOCOL(HTTP) | runmqsc %qm% >> %mqlog%
@echo MQ logs saved in %mqlog%echo
Figure 6. mqcerts.bat
Get a copy of the IBM MQ installation materials and a license in one of the following ways:
1. Ask your IBM MQ administrator for the installation materials, and to confirm you can accept the license
agreement.
2. Get a 90-day evaluation copy of IBM MQ. See Evaluate: IBM MQ.
3. Buy IBM WebSphere MQ. See IBM MQ product page.
Secure the SSL channel with either certificate authority signed keys, or self-signed keys.
There is no installation program, you just expand the downloaded file.
1. Download the IBM Messaging Telemetry Clients SupportPac, or download the clients and libraries
under an open source license from the Eclipse Paho project.
2. Create a folder where you are going to install the SDK.
You might want to name the folder MQTT. The path to this folder is referred to here as sdkroot.
3. Expand the compressed IBM Messaging Telemetry Clients SupportPac file contents into sdkroot. The
expansion creates a directory tree that starts at sdkroot\SDK.
There is a similar limitation for the MQTT client for Java. If the client code is running on a Java 1.6 JRE
from IBM, the required SHA-2 cipher suites must be explicitly enabled. In order to use these suites, the
client must also set the SSL context to a value that supports Version 1.2 of the Transport Layer Security
(TLS) protocol. For example:
When you request a personal certificate, you specify a key size for the public and private key pair. The key
size that is used during the SSL handshake can depend on the size stored in the certificate and on the
CipherSpec:
• On UNIX, Linux, and Windows, when a CipherSpec name includes _EXPORT1024, the
handshake key size is 1024 bits.
• Otherwise the handshake key size is the size stored in the certificate.
For further information, see the:
• Eclipse Paho web site, for the latest telemetry clients and an Android sample.
• MA9C: IBM Messaging Telemetry Clients SupportPac, which includes a similar set of clients to Paho,
plus samples for Java and C.
• Deprecated MA9B: Mobile Messaging and M2M Client Pack includes a sample for iOS that was written in
the IBM WebSphere MQ 7.5 time frame.
MFT overview
This section provides introductory information that you can use to get started with Managed File Transfer.
• “Managed File Transfer” on page 5
• Managed File Transfer product options
• “MFT topology overview” on page 23
• “What's new and changed in MFT in IBM MQ 9.0?” on page 24
IBM MQ 9.0.0
• New agent property adminGroup for use with MFT agents on z/OS
• Comparison check of transfer identifier and value of groupId attribute restored for
message-to-file transfers
Configuration changes
The configuration layout directly after installation in IBM WebSphere MQ 7.5, or later is different from the
configuration layout directly after installation in IBM WebSphere MQ File Transfer Edition 7.0.4 or earlier.
For example, the diagram shows the configuration layout directly after installation firstly as it was in IBM
WebSphere MQ File Transfer Edition 7.0.4 Fix Pack 1 and then as it is in IBM WebSphere MQ 7.5 or later.
wmqfte.properties installation.properties
The wmqfte.properties file sets properties that The installation.properties file is a
apply to the entire IBM WebSphere MQ File renamed and relocated equivalent of the
Transfer Edition installation. wmqfte.properties file.
The default location is On UNIX and Linux systems, the default location is
wmqfte_configuration_directory MQ_DATA_PATH/mqft/installations/
installation_name
On Windows, the default location is
MQ_DATA_PATH\mqft\installations
\installation_name
databaselogger.properties. logger.properties
This file contains property information for the This file now incorporates property information for
stand-alone database logger. stand-alone file loggers, stand-alone database
loggers, and Java EE database loggers.
The default location is
wmqfte_configuration_directory/ The default location is MQ_DATA_PATH/mqft/
coordination_qmgr_name config/coordination_qmgr_name/loggers/
logger_name.
Security changes
For IBM WebSphere MQ 7.5, or later, only users who are administrators (members of the mqm group) can
run the following list of fte commands:
• “fteChangeDefaultConfigurationOptions” on page 377
• “fteCreateAgent: create an MFT agent” on page 383
When using IBM WebSphere MQ 7.5 or later on Multiplatforms, only the user that the agent
process is running under can run the fteSetAgentTraceLevel command.
This also applies to the Long Term Support release from IBM MQ 9.0.0 Fix Pack 1.
This also applies to the Long Term Support release from IBM MQ 9.0.0 Fix Pack 1.
For more information, see the adminGroup property in “The MFT agent.properties file” on page 537.
Migrating MFT agents that run as a Windows service from IBM WebSphere MQ 7.5 to
IBM MQ 9.0
Between IBM WebSphere MQ 7.5, IBM MQ 8.0, and IBM MQ 9.0, the default IBM MQ installation path has
changed on the Windows platform.
If a queue manager is being migrated from IBM WebSphere MQ 7.5 to IBM MQ 8.0 or IBM MQ 9.0, any
applications that are running on the same system as the queue manager must be reconfigured to load the
IBM MQ libraries from the new installation location. This includes any IBM MQ Managed File Transfer
agents that are running as a Windows service.
Carry out the following procedure:
1. Stop the agents that are associated with the IBM WebSphere MQ 7.5 queue manager. See stopping an
MFT agent for more information. For example issue the following command:
fteStopAgent <agent_name>
2. Modify the agent to remove the service definition of the agent. See run an MFT agent as a Windows
service for more information.
For example, issue the following command:
3. Next, migrate the agent queue manager from IBM WebSphere MQ 7.5 to the later version by using the
setmqm command. See associating a queue manager with an installation for more information about
the setmqm command.
4. Finally, modify the agent to reconfigure the agent to run as a Windows service again, by using the
fteModifyAgent command.
For example:
Procedure
1. Install IBM WebSphere MQ 7.5 or later alongside the existing queue manager installation, selecting
the MQ Server and File Transfer components.
2. Stop the IBM WebSphere MQ File Transfer Edition 7.0.x agent.
3. Move the queue manager to the IBM WebSphere MQ 7.5, or later installation.
4. Use the fteMigrateAgent command to migrate the agent configuration from the IBM WebSphere
MQ File Transfer Edition 7.0.x installation to the agent capability integrated with IBM WebSphere MQ
7.5 or later.
5. Optional: If the IBM WebSphere MQ File Transfer Edition 7.0.x agent is configured as a Windows
service, complete the following optional steps:
a) Use the fteModifyAgent command to reconfigure the agent so that it is no longer a Windows
service.
b) Use the fteModifyAgent command from the IBM WebSphere MQ 7.5 or later, installation to
configure the IBM WebSphere MQ 7.5 or later, version of the agent to be a Windows service.
6. Start the IBM WebSphere MQ 7.5 or later, agent.
7. Optional: To migrate an agent connecting to its queue manager across a network as a client:
a) Install IBM WebSphere MQ 7.5 or later, onto the system
b) Use the fteMigrateAgent command to migrate the agent configuration from the WMQFTE 7.0.x
installation to the agent capability integrated with IBM WebSphere MQ 7.5 or later.
c) Stop the IBM WebSphere MQ File Transfer Edition 7.0.x agent.
d) If the IBM WebSphere MQ File Transfer Edition 7.0.x agent is configured as a Windows service, use
the fteModifyAgent command from the IBM WebSphere MQ File Transfer Edition 7.0.x
installation to re-configure the agent so that it is not run as a Windows service
e) If the IBM WebSphere MQ File Transfer Edition 7.0.x agent is configured as a Windows service, use
the fteModifyAgent command from the IBM WebSphere MQ 7.5 or later installation to configure
the IBM WebSphere MQ 7.5 or later agent as a Windows service.
f) Start the IBM WebSphere MQ 7.5 or later agent.
Procedure
1. Install IBM WebSphere MQ 7.5, or later, alongside the existing IBM WebSphere MQ File Transfer
Edition 7.0 installation, selecting the MQ Server and Managed File Transfer Service components.
2. Stop the IBM WebSphere MQ File Transfer Edition 7.0 database logger.
3. Move the queue manager to the IBM WebSphere MQ 7.5, or later installation.
4. Use the fteMigrateLogger command to migrate the database logger configuration from the IBM
WebSphere MQ File Transfer Edition 7.0 installation to the IBM WebSphere MQ 7.5, or later database
logger.
5. Create the tables needed for the database logger to start by running the sql scripts in
MQ_INSTALLATION_PATH/mqft/sql. There is one script for each increase in product level, run all
that are appropriate in order.
You must run the upgrade sql scripts in version order, starting with their current level of IBM
WebSphere MQ File Transfer Edition or Managed File Transfer. The available scripts, where *** can be
Db2, Oracle, or z/OS, are as follows:
• ftelog_tables_***_701-702.sql
• ftelog_tables_***_702-703.sql
• ftelog_tables_***_703-704.sql
• ftelog_tables_***_704-750.sql
• ftelog_tables_***_750-7502.sql
• ftelog_tables_***_7502-800.sql
For example, if you are using IBM WebSphere MQ File Transfer Edition 7.0.3 and are migrating to IBM
MQ 8.0.0.0, run 703-704, 704-750, 750-7502, and 7502-800.
Results
The database logger has now been migrated from IBM WebSphere MQ File Transfer Edition 7.0 to IBM
WebSphere MQ 7.5, or later.
Increasing the page size of the log database on Db2 on Windows, UNIX or
Linux
If your database is Db2 on a Windows, UNIX or Linux system, and you created your log database with a
page size of less than 8 KB, you must increase the page size of the database before migrating to the IBM
WebSphere MQ File Transfer Edition 7.0.3 or later tables.
Procedure
1. If you have not already stopped your database logger, stop your database logger using the
fteStopDatabaseLogger command.
2. Back up your log database using the tools provided by Db2.
3. Use the Db2 export command to transfer the data from your log database tables to files on disk.
Note: You must specify large object files for tables that include large objects. Those tables are
CALL_RESULT and METADATA.
4. Drop your log database tables.
5. Create a table space with a page size of at least 8 KB and with an associated buffer pool with a page
size of at least 8 KB.
Give your new table space a name. For example, FTE8KSPACE.
6. Edit the ftelog_tables_db2.sql file so that the commands create tables in the new table space.
In the ftelog_tables_db2.sql file, change all occurrences of the text IN "USERSPACE1" to IN
"new_tablespace_name". For example, change IN "USERSPACE1" to IN "FTE8KSPACE".
7. Run the SQL commands in the ftelog_tables_db2.sql file against your database.
8. Use the Db2 load command to transfer the exported data into the new tables.
Note:
• Map the column names based on the column names found in the input file. Ensure that the input
column names and target column names match up in those tables that have changed their
structure.
• You must specify the IDENTITY OVERRIDE behavior on the identity column of all tables, except for
MONITOR and TRANSFER. Specifying this behavior ensures that the row IDs are not regenerated
during the load operation.
9. Run the Db2 set integrity command with integrity status values of immediate and checked,
against the following tables in the order given:
The value returned from this command is the maximum existing ID in the specified table.
b) Alter the table to set the ID generator to begin from a new value that is 1 higher than the value
returned by the previous step.
You can set this value by running the following SQL statement:
Related tasks
“Migrating from the stand-alone database logger to the Java EE database logger for MFT” on page 148
You can migrate from the stand-alone database logger to the Java EE database logger. You must stop the
stand-alone database logger and install the Java EE database logger. To avoid losing or duplicating log
entries you must stop messages being published to the SYSTEM.FTE topic before stopping the stand-
alone database logger, and restart it after you have installed the JEE database logger. Back up your
database before migration.
“Migrating the database tables on Db2 on z/OS to IBM MQ 8.0” on page 35
If your database is Db2 on a z/OS system, you must complete the following steps to migrate from IBM
WebSphere MQ File Transfer Edition 7.0.3 to IBM WebSphere MQ File Transfer Edition 7.0.4, and from
IBM WebSphere MQ File Transfer Edition 7.0.4 to Managed File Transfer in IBM MQ 8.0. The Db2 tables
have different structures from previous releases. For example, there are new columns in some tables, and
some variable characters columns can be larger, so the tables from previous releases have to be migrated
to the Db2 format.
Procedure
1. If you have not already stopped your database logger, stop your database logger using the
fteStopDatabaseLogger command in USS or P loggerjob.
2. Issue the command ls /HMF8800/mqft/sql to list the SQL files in the directory.
If you are going to use BIGINT numbers copy, ftelog_tables_zos_bigint.sql to your home
directory, otherwise, copy ftelog_tables_zos.sql to your home directory.
3. Edit the file you moved to your home directory:
a) Change ftelog to the schema name for the new tables.
b) Ensure each index has a unique name.
To do this, in an edit session:
1) Exclude all lines.
2) Find 'CREATE UNIQUE INDEX ' ALL
3) Change _KEY _K8Y ALL NX
4. Check the file to make sure all of the statements are within column 71.
If the statements are not within column 71, split the line before column 71.
5. You might be able to use this file as input to SQL, or you might want to copy it to a PDS. To do this,
edit the PDS and use the copy command, specifying the directory and file name.
6. Check the definitions with your Db2 administrator, as there might be site standards that you need to
follow.
7. Carry out the following:
a) Copy the _zos_704-800.sql file, located in the /HMF8800/mqft/sql/ftelog_tables
directory to your home directory.
b) Edit this file. Change FTESRC to your existing schema (FTELOG) and FTEDEST to the new schema
(FTEV8).
c) Check the file to make sure all of the statements are within column 71.
If the statements are not within column 71, split the line before column 71.
d) If you have DB2 RUNSTATS jcl for the Managed File Transfer tables, create a new job specifying
the new schema and tables.
8. Some tables have a generated ID to enforce a unique identifier for each row and you need to set
these identifiers.
The following tables have generated ID columns:
• AUTH_EVENT
• CALL
• CALL_ARGUMENT
• CALL_RESULT
• FILE_SPACE_ENTRY
• METADATA
The value returned from this command is the maximum existing ID in the specified table.
b) Alter the table to set the ID generator to begin from a new value that is 1 higher than the value
returned by the previous step.
You can set this value by running the following SQL statement:
9. Edit the database properties file to specify the new schema name:
a) If your Managed File Transfer configuration directory is /u/userid/fteconfig you can use the
USS command find /u/userid/fteconfig -name databaselogger.properties to
locate the properties file for the logger.
b) Edit this file and change wmqfte.database.schema to the new schema value.
10. Issue the following commands to convert the directory tree structure to 8.0.0 format before you
attempt to use the logger:
a) fteMigrateConfigurationOptions
b) fteMigrateLogger
This copies the databaselogger.properties to logger.properties.
11. Edit existing Logger JCL to use the 8.0.0 Managed File Transfer libraries.
12. Start the logger.
Once the logger is working you can delete the V7 FTELOG tables.
Variable Value
++library++ Replace this variable with the name of the new PDSE.
armELEMENT Set this to the same value that is used by the IBM MQ 8.0 agent.
armELEMTYPE Set this to the same value that is used by the IBM MQ 8.0 agent.
BFG_DATA Set this to the same value that is used by the IBM MQ 8.0 agent.
BFG_GROUP_NAME Set this to the same value that is used by the IBM MQ 8.0 agent.
BFG_JAVA_HOME This needs to be set to the UNIX System Services (USS) path for
the Java Runtime Environment that is to be used to run the agent.
Set this to same value that is used by the IBM MQ 8.0 agent.
BFG_JVM_PROPERTIES Set this to the same value that is used by the IBM MQ 8.0 agent.
BFG_PROD This variable should be set to the USS path for the Managed File
Transfer for z/OS in IBM MQ 9.0 installation.
BFG_WTO Set this to the same value that is used by the IBM MQ 8.0 agent.
CLEAN_AGENT_PROPS Set this to blank.
connectionQMgr Set this to the same value that is used by the IBM MQ 8.0 agent.
coordinationQMgr Set this to the same value that is used by the IBM MQ 8.0 agent.
CREDENTIALS_PATH Set this to blank.
DB_PROPS_PATH Set this to the same value that is used by the IBM MQ 8.0 agent.
DLQ_HLQ Set this to the same value that is used by the IBM MQ 8.0 agent.
Attention: The member requires exclusive access to the PDSE, so you must stop using it while
BFGCUSTM is running.
Attention: The following procedure explains only how to backup and restore MFT configurations. If
you are migrating MFT to a new machine with the same operating system, queue manager data
and log files can be backed up and restored by copying all the data files from the old system to the
appropriate directories on the new system.
However, if the new machine has a different operating system, it is not possible to migrate the data
files, because they are created platform specific.
Procedure
1. Backup procedure
a) Save the queue manager configuration using the dmpmqcfg command to rebuild it later from its
definition.
For example:
b) Back up the configuration files for the agent that are stored under the IBM MQ data directory /
MQ_DATA_PATH/mqft
The mqft directory normally has three sub-directories, which are config, installation, and
logs. These contain agent installation data, configuration, and database logger files respectively.
If the agent is Protocol Bridge Agent, the ProtocolBridgeCredentials.xml file in the agent
configuration directory also needs to backed up. This file defines the user names and credential
information that the protocol bridge agent uses to authorize itself with the protocol server.
c) Export the configuration of the resource monitor to an XML file using the MFT ftelistMonitors
command with the -ox option.
For example:
d) Export transfer templates to XML files using the MFT fteListTemplates command with the -x
and -o options.
For example, the following command creates TransferTemplate1.xml in the current directory:
fteListTemplates -x -o . TransferTemplate1
c) Recreate the sender and receiver channels that connect to QMB on System two.
d) On the QMB queue manager side, update the connections details, such as host name and port
number of the sender channel that connects to QMA.
e) Recreate Agent1 by copying all of the backed up agent configuration files to the new system, and
start the agent.
f) Import the XML file for Monitor1 using the MFT fteCreateMonitor command with the -ix and -f
options.
For example:
g) Publish a message containing the contents of TransferTemplate1.xml in the message body to the
SYSTEM.FTE topic on the coordination queue manager.
Use a stand-alone application, and specify the topic string:
SYSTEM.FTE/Templates/<template_id>
where <template_id> is the transfer template ID that can be found inside the
TransferTemplate1.xml file.
For example, if the xml contains:
SYSTEM.FTE/Templates/a7838085-0f2a-4980-b958-2dbbdfb22702
h) Recreate the scheduled transfers manually using the MFT fteCreateTransfers command.
A base topology represents a complete configuration which includes the coordination queue manager.
The configuration name is the same as the name of the coordination queue manager. If the coordination
queue manager name is MFT1, the configuration name is MFT1.
The base topology is the first Managed File Transfer configuration that you complete. After the base
configuration is completed, partner agents from remote servers are added to the base configuration to
exchange files.
The base topology does not exchange files outside the base topology server. However, the base topology
enables you to move files to different locations in the same server and could be used for development
purposes.
This topology can exchange files between the two agents. Extra partner agents can be added in a similar
way to the first added agent.
Base topology with separate coordination queue manager and one partner agent
Figure 10. Base topology with separate coordination queue manager and one partner agent
In the base topology in Figure 3, on the base server, queue manager MFT4 is shared for the command and
agent roles, and queue manager MFT5 is dedicated to the coordination queue manager role.
Connectivity must exist across all queue managers in the topology, including queue managers in the base
topology, MFT4 and MFT5.
On the partner server queue manager, queue manager CSM1 has the roles of agent and commands queue
manager.
This topology can exchange files between the two agents. Each partner agent must connect to a queue
manager, as shown in the diagram. Extra partner agents can be added in a similar way, to the way that the
first partner agent was added.
Figure 11. Base topology with Managed File Transfer Agent partner
On the partner server, from IBM MQ 9.0.1 onwards, you can install the Managed File
Transfer Redistributable Client from Fix Central.
Note: The MQMFT redistributable client differs from the IBM MQ redistributable client, in that it is already
packaged and does not require use of the genmqpkg utility. For more information, see Redistributable
Clients.
Procedure
1. Configure the coordination queue manager
2. Configure the command queue manager
3. Set up the agent
4. Set up the logger
5. Configure a partner server
What to do next
Set up the MQExplorer with MQMFT so that you can test your example setup.
Procedure
1. Log in as the Managed File Transfer administrator.
2. Issue the following command to identify the coordination queue manager and set up the configuration
directory structure:
5. Open the mft5.txt results file with your preferred editor. and ensure that the definitions have been
created successfully.
What to do next
Set up the command queue manager.
Procedure
Issue the following command:
What to do next
Set up the agent.
Procedure
1. Issue the following command:
After you create the agent with the fteCreateAgent command, the agents directory, and a
subdirectory for the agent, MFT4AGT1, are added to the MFT5 directory.
In the data\MFT5\agents\MFT4AGT1 directory you find the:
• agent.properties file
• MFT4AGT1_create.mqsc file, which containsIBM MQ definitions required by the agent.
2. Change to the data\MFT5\agents\MFT4AGT1 directory, and create the required agent queue
manager definitions by issuing the following command:
3. Open the mft4.txt results file with your preferred editor and ensure that the definitions have been
created successfully.
4. Start the agent by typing the following command: fteStartAgent MFT4AGT1.
5. Display the agent by typing the following command: fteListAgents.
You should see output similar to the following:
5655-MFT, 5724-H72 Copyright IBM Corp. 2008, 2020. ALL RIGHTS RESERVED
BFGPR0127W: No credentials file has been specified to connect to IBM MQ.
Therefore, the assumption is that IBM MQ authentication has been disabled.
Agent Name: Queue Manager Name: Status:
MFT4AGT1 MFT4 READY
Note: if you have not enabled connection authentication in your Managed File Transfer environment,
you can ignore the BFGPR0127W message.
If you issue the ftelistAgents command and receive the following message, BFGCL0014W: No
agents exist that match the current selection criteria., see “What to do if your MFT
agent is not listed by the fteListAgents command” on page 302 for further information.
Procedure
1. Issue the following command:
Results
You have configured the base server, which includes the coordination queue manager for this
configuration.
Procedure
1. Create the partner server configuration directory by issuing the following command:
Notes:
a. When the coordination queue manager is on a different server from the partner server, the
connection to the base server coordination queue manager must be defined as a client connection.
Failure to define the coordination queue manager connection as an IBM MQ client connection, on
the partner server, causes any Managed File Transfer command, that connects to the coordination
queue manager, to fail.
An example of a command that connects to the coordination queue manager is fteListAgents.
b. You do not need to create the IBM MQ definitions as the definitions required by the coordination
queue manager were completed when you configured the base server.
2. Identify the commands queue manager by issuing the following command:
The commands queue manager does not require any extran IBM MQ definitions.
3. Identify the partner agent queue manager, and create the partner agent queue manager, by issuing the
following command:
a) Open file csm1.txt with your preferred editor to confirm that all agent required definitions have
been created successfully.
6. Start the agent, by issuing the following command:
C:\>fteListAgents
5655-MFT, 5724-H72 Copyright IBM Corp. 2008, 2020. ALL RIGHTS RESERVED
BFGPR0127W: No credentials file has been specified to connect to IBM MQ. Therefo
re, the assumption is that IBM MQ authentication has been disabled.
Agent Name: Queue Manager Name: Status:
CSM1AGT1 CSM1 READY
MFT4AGT1 MFT4 READY
Note: if you have not enabled connection authentication in your Managed File Transfer environment,
you can ignore the BFGPR0127W message.
If you issue the ftelistAgents command and receive the following message, BFGCL0014W: No
agents exist that match the current selection criteria., see “What to do if your MFT
agent is not listed by the fteListAgents command” on page 302 for further information.
If the status of one of the agents is UNREACHABLE, see “What to do if the fteListAgents command
shows an agent status of UNREACHABLE” on page 304 for further information.
Procedure
1. Start IBM MQ Explorer.
2. In the left Navigator panel, scroll down and expand the folder: Managed File Transfer.
You see the entry for the Coordination queue manager: MFT5
3. Right click on MFT5 and select Connect.
a) Select Agents in the drop down menu that appears and ensure that both agents, MFT4AGT1 and
CSMAGT1, are in the Ready state.
What to do next
Test your example setup with IBM MQ Explorer.
C:\temp\mft> dir *
Date stamp 61 test-file.txt
1 File(s) 61 bytes
Securing MFT
Directly after installation and with no modification, Managed File Transfer has a level of security that
might be suitable for test or evaluation purposes in a protected environment. However, in a production
environment, you must consider appropriately controlling who can start file transfer operations, who can
read and write the files being transferred, and how to protect the integrity of files.
Table 1. Property values that define the location of the MQMFTCredentials.xml file
Category Property File Property Name
Show/List commands Coordination properties coordinationQMgrAuthenticationCredentialsFile
Modify/create Command properties connectionQMgrAuthenticationCredentialsFile
commands
Agent/clean agent Agent properties agentQMgrAuthenticationCredentialsFile
Logger Logger properties loggerQMgrAuthenticationCredentialsFile
QMgr defines a single pair of credentials, and has the following format:
The user attribute is optional and, if not present, the credentials apply to all users.
Precedence
The precedence of determining the credential details is:
1. Command line argument.
2. MQMFTCredentials.xml index by associated queue manager and user running the command.
3. MQMFTCredentials.xml index by associated queue manager.
4. Default backward compatibility mode where no credential details are supplied to allow compatibility
with previous releases of IBM MQ or IBM WebSphere MQ.
Notes:
• The fteStartAgent and fteStartLogger commands do not support the command line argument -
mquserid, or -mqpassword, and the credential details can only be specified with the
MQMFTCredentials.xml file.
•
On z/OS, the password must be uppercase, even if the user's password has lowercase letters. For
example, if the user's password was "password", it would have to be entered as "PASSWORD".
Related reference
“Which MFT commands and processes connect to which queue manager” on page 361
A Managed File Transfer topology consists of a number of different components.
“MFT credentials file format” on page 789
The MQMFTCredentials.xml file contains sensitive user ID and password information. The elements in
the MQMFTCredentials.xml file must conform to the MQMFTCredentials.xsd schema. The security
of credentials files is the responsibility of the user.
Configuring MQMFTCredentials.xml
If Managed File Transfer is configured with security enabled, connection authentication requires all
Managed File Transfer commands that connect with a queue manager to supply user ID and password
Windows
Firstly by ensuring that inheritance is not enabled, and then removing all user Ids except the agent
owner.
The MFT credentials file, MQMFTCredentials.xml contains credential information in XML format and
defined either as clear text or obfuscated text. The elements in the MQMFTCredentials.xml file must
conform to the MQMFTCredentials.xsd schema. For information about the format of
MQMFTCredentials.xml, see “MFT credentials file format” on page 789. You can have one MFT
credentials file for the coordination queue manager, one for the command queue manager, one for each
agent, and one for each logger.
On z/OS, a member of a partitioned data set can be used for storing the
MQMFTCredentials.xml file.
The credential details used to connect to a Managed File Transfer coordination queue manager, in the
Managed File Transfer plug-in for IBM MQ Explorer, depends on the type of configuration:
Global (configuration on local disk)
A global configuration uses the credentials file specified in the coordination and command properties.
Local (defined within IBM MQ Explorer):
A local configuration uses the properties of the connection details of the associated queue manager in
IBM MQ Explorer.
Related concepts
“The MFT credentials file” on page 83
The MFT credentials file, MQMFTCredentials.xml, is used to hold user ID and password information.
You can have one MFT credentials file for the coordination queue manager, one for the command queue
manager, one for each agent, and one for each logger.
Related tasks
“Enabling MQCSP authentication” on page 56
From IBM MQ 9.0.3 for Continuous Delivery, and IBM MQ 9.0.0 Fix Pack 2 for Long Term Support, you can
enable MQCSP authentication mode for connection authentication of the IBM MQ Explorer MFT Plugin
connecting with a coordination queue manager or command queue manager. You can also enable MQCSP
authentication mode for connection authentication for a Managed File Transfer agent connecting with a
coordination queue manager or command queue manager.
“Creating an IBM MQ File Transfer structure” on page 108
You can configure a Managed File Transfer structure, based on a single agent connected to a queue
manager on the same machine.
Related reference
“MFT credentials file format” on page 789
Procedure
• To disable compatibility mode and enable MQCSP authentication for a coordination queue manager or
command queue manager in IBM MQ Explorer, complete the following steps:
a) Select the queue manager that you want to connect to.
b) Right click, and select Connection Details->Properties from the pop-up menu.
c) Click the Userid tab.
d) Ensure that Enable user identification is selected, and clear the User identification compatibility
mode check box.
• To disable compatibility mode and enable MQCSP authentication for a Managed File Transfer agent,
add the parameter useMQCSPAuthentication to the MQMFTCredentials.xml file for the relevant
user and set it to true.
The parameter must be set to true. If the parameter is not specified, it is by default set to false and
compatibility mode is used to authenticate the user with the queue manager.
The following example shows how to set the useMQCSPAuthentication parameter in the
MQMFTCredentials.xml file:
Related reference
“MFT and IBM MQ connection authentication” on page 53
Managed File Transfer in IBM MQ 8.0 or later supports the IBM MQ 8.0 or later security features, with the
default mode of disabled. If the associated queue manager has security enabled, and requires credential
details (user ID and password), this feature must enabled before a successful connection to a queue
manager can be made.
“MFT credentials file format” on page 789
MFT sandboxes
You can restrict the area of the file system that the agent can access as part of a transfer. The area that
the agent is restricted to is called the sandbox. You can apply restrictions to either the agent or to the user
that requests a transfer.
Sandboxes are not supported when the agent is a protocol bridge agent or a Connect:Direct bridge agent.
You can not use agent sandboxing for agents that need to transfer to or from IBM MQ queues.
Related reference
“Working with MFT agent sandboxes” on page 57
To add an additional level of security to Managed File Transfer, you can restrict the area of a file system
that an agent can access.
“Working with MFT user sandboxes” on page 58
You can restrict the area of the file system that files can be transferred into and out of based on the MQMD
user name that requests the transfer.
You cannot use agent sandboxing for agents that transfer to or from IBM MQ queues. Restricting access to
IBM MQ queues with sandboxing can be implemented instead by using user sandboxing which is the
recommended solution for any sandboxing requirements. For more information about user sandboxing,
see “Working with MFT user sandboxes” on page 58
To enable agent sandboxing, add the following property to the agent.properties file for the agent you
want to restrict:
sandboxRoot=[!]restricted_directory_nameseparator...separator[!]restricted_directory_name
where:
• restricted_directory_name is a directory path to be allowed or denied.
• ! is optional and specifies that the following value for restricted_directory_name is denied
(excluded). If ! is not specified restricted_directory_name is an allowed (included) path.
• separator is the platform-specific separator.
For example, if you want to restrict the access that AGENT1 has to the /tmp directory only, but not allow
the subdirectory private to be accessed, set the property as follows in the agent.properties file
belonging to AGENT1: sandboxRoot=/tmp:!/tmp/private.
The sandboxRoot property is described in Advanced agent properties.
Both agent and user sandboxing are not supported on protocol bridge agents or on Connect:Direct bridge
agents.
userSandboxes=true
<tns:read>
<tns:include name="/home/user/**"/>
<tns:include name="USER.**" type="queue"/>
<tns:exclude name="/home/user/private/**"/>
</tns:read>
The <include> and <exclude> name patterns are used by the agent to determine whether files, data
sets, or queues can be read from or written to. An operation is allowed if the canonical file path, data set,
or queue name matches at least one of the included patterns and exactly zero of the excluded patterns.
The patterns specified by using the name attribute of the <include> and <exclude> elements use the
path separators and conventions appropriate to the platform that the agent is running on. If you specify
relative file paths, the paths are resolved relative to the transferRoot property of the agent.
When specifying a queue restriction, a syntax of QUEUE@QUEUEMANAGER is supported, with the
following rules:
• If the at character (@) is missing from the entry, the pattern is treated as a queue name that can be
accessed on any queue manager. For example, if the pattern is name it is treated the same way as
name@**.
?
A question mark matches exactly one character in a directory name, or in a qualifier of a data set
name orqueue name.
**
Two asterisk characters match zero or more directory names, or zero or more qualifiers in a data set
name orqueue name. Also, paths that end with a path separator have an implicit "**" added to the end
of the path. So /home/user/ is the same as /home/user/**.
For example:
• /**/test/** matches any file that has a test directory in its path
• /test/file? matches any file inside the /test directory that starts with the string file followed by
any single character
• c:\test\*.txt matches any file inside the c:\test directory with a .txt extension
• c:\test\**\*.txt matches any file inside the 'c:\test directory, or one of its subdirectories that
has a .txt extension
• //'TEST.*.DATA' matches any data set that has the first qualifier of TEST, has any
second qualifier, and a third qualifier of DATA.
• TEST.*.QUEUE@QM1 matches any queue on the queue manager QM1 that has the first qualifier of
TEST, has any second qualifier, and a third qualifier of QUEUE.
Symbolic links
You must fully resolve any symbolic links that you use in file paths in the UserSandboxes.xml file by
specifying hard links in the <include> and <exclude> elements. For example, if you have a symbolic
link where /var maps to /SYSTEM/var, you must specify this path as <tns:include name="/
SYSTEM/var"/>, otherwise the intended transfer fails with a user sandbox security error.
Example
This example shows how to allow the user with the MQMD user name guest to transfer any file from
the /home/user/public directory or any of its subdirectories on the system where the agent
AGENT_JUPITER is running, by adding the following <sandbox> element to the file
UserSandboxes.xml in AGENT_JUPITER's configuration directory:
Related reference
“Additional checks for wildcard transfers” on page 61
From IBM MQ 9.0.1 in Continuous Delivery, and IBM MQ 9.0.0 Fix Pack 1 in Long Term Support, if an
agent has been configured with a user or agent sandbox in order to restrict the locations that the agent
can transfer files to and from, you can specify that additional checks are to be made on wildcard transfers
for that agent.
“Working with MFT user sandboxes” on page 58
You can restrict the area of the file system that files can be transferred into and out of based on the MQMD
user name that requests the transfer.
“The MFT agent.properties file” on page 537
Each Managed File Transfer Agent has its own properties file, agent.properties, that must contain the
information that an agent uses to connect to its queue manager. The agent.properties file can also
contain properties that alter the behavior of the agent.
additionalWildcardSandboxChecking property
To enable additional checking for wildcard transfers, add the following property to the
agent.properties file for the agent that you want to check.
additionalWildcardSandboxChecking=true
When this property is set to true, and the agent makes a transfer request that attempts to read a location
that is outside the defined sandbox for file matching of the wildcard, the transfer fails. If there are
multiple transfers within one transfer request, and one of these requests fails due to it attempting to read
a location outside of the sandbox, the entire transfer fails. If checking fails, the reason for failure is given
in an error message.
If the additionalWildcardSandboxChecking property is omitted from an agent's agent.properties file
or is set to false, no additional checks are made on wildcard transfers for that agent.
The following message occurs when a transfer within a multiple transfer request contains a wildcard
transfer request where the path is located outside of the restricted sandbox:
BFGSS0078E: Attempt to read file path: path has been ignored as another transfer
item in the managed transfer attempted to read outside of the restricted transfer sandbox.
The following message occurs when a file is located outside of the restricted sandbox:
BFGSS0079E: Attempt to read file file path has been denied.
The file is located outside of the restricted transfer sandbox.
The following message occurs in a multiple transfer request where another wildcard transfer request has
caused this one to be ignored:
BFGSS0080E: Attempt to read file: file path has been ignored as another transfer
item in the managed transfer attempted to read outside of the restricted transfer sandbox.
In the case of single file transfers that do not include wildcards, the message that is reported when the
transfer involves a file that is located outside of the sandbox is unchanged from earlier releases:
Fails with BFGIO0056E: Attempt to read file "FILE" has been denied.
The file is located outside of the restricted transfer sandbox.
Related reference
“Working with MFT user sandboxes” on page 58
You can restrict the area of the file system that files can be transferred into and out of based on the MQMD
user name that requests the transfer.
“Working with MFT agent sandboxes” on page 57
To add an additional level of security to Managed File Transfer, you can restrict the area of a file system
that an agent can access.
“The MFT agent.properties file” on page 537
Procedure
1. Create a truststore file and optionally a keystore file (these files can be the same file). If you do not
need client-authentication (that is, SSLCAUTH=OPTIONAL on channels) you do not need to provide a
keystore. You require a truststore only to authenticate the queue manager's certificate against.
The key algorithm of the truststore file and keystore file must be RSA to work with IBM MQ.
2. Set up your IBM MQ queue manager to use SSL.
For information about setting up a queue manager to use SSL using IBM MQ Explorer for example, see
Configuring SSL on queue managers.
3. Save the truststore file and keystore file (if you have one) in a suitable location. A suggested location is
the config_directory/coordination_qmgr/agents/agent_name directory.
4. Set the SSL properties as required for each SSL-enabled queue manager in the appropriate Managed
File Transfer properties file. Each set of properties refers to a separate queue manager (agent,
coordination, and command), although one queue manager might perform two or more of these roles.
One of the CipherSpec or CipherSuite properties is required, otherwise the client tries to connect
without SSL. Both the CipherSpec or CipherSuite properties are provided because of the
terminology differences between IBM MQ and Java. Managed File Transfer accepts either property and
does the necessary conversion, so you do not need to set both properties. If you do specify both the
CipherSpec or CipherSuite properties, CipherSpec takes precedence.
The PeerName property is optional. You can set the property to the Distinguished Name of the queue
manager that you want to connect to. Managed File Transfer rejects connections to an incorrect SSL
server with a Distinguished Name that does not match.
Set the SslTrustStore and SslKeyStore properties to file names that point to the truststore and
keystore files. If you are setting up these properties for an agent that is already running, stop and
restart the agent to reconnect in SSL mode.
Properties files contain plain-text passwords so consider setting appropriate file system permissions.
For more information about SSL properties, see “SSL properties for MFT” on page 591.
5. If an agent queue manager uses SSL, you cannot provide the necessary details when you create the
agent. Use the following steps to create the agent:
a) Create the agent by using the fteCreateAgent command. You receive a warning about being
unable to publish the existence of the agent to the coordination queue manager.
b) Edit the agent.properties file that was created by the previous step to add the SSL information.
When the agent is successfully started, the publish is attempted again.
Configuring SSL or TLS between the Connect:Direct bridge agent and the
Connect:Direct node
Configure the Connect:Direct bridge agent and the Connect:Direct node to connect to each other through
the SSL protocol by creating a keystore and a truststore, and by setting properties in the Connect:Direct
bridge agent properties file.
Procedure
For the Connect:Direct node, complete the following steps:
1. Generate a key and signed certificate for the Connect:Direct node.
You can do this by using the IBM Key Management tool that is provided with IBM MQ. For more
information, see Working with SSL or TLS.
2. Send a request to a certificate authority to have the key signed. You receive a certificate in return.
3. Create a text file; for example, /test/ssl/certs/CAcert, that contains the public key of your
certification authority.
4. Install the Secure+ Option on the Connect:Direct node.
If the node already exists, you can install the Secure+ Option by running the installer again, specifying
the location of the existing installation, and choosing to install only the Secure+ Option.
5. Create a new text file; for example, /test/ssl/cd/keyCertFile/node_name.txt.
6. Copy the certificate that you received from your certification authority and the private key, located
in /test/ssl/cd/privateKeys/node_name.key, into the text file.
The contents of /test/ssl/cd/keyCertFile/node_name.txt must be in the following format:
-----BEGIN CERTIFICATE-----
MIICnzCCAgigAwIBAgIBGjANBgkqhkiG9w0BAQUFADBeMQswCQYDVQQGEwJHQjES
MBAGA1UECBMJSGFtcHNoaXJlMRAwDgYDVQQHEwdIdXJzbGV5MQwwCgYDVQQKEwNJ
Qk0xDjAMBgNVBAsTBU1RSVBUMQswCQYDVQQDEwJDQTAeFw0xMTAzMDExNjIwNDZa
Fw0yMTAyMjYxNjIwNDZaMFAxCzAJBgNVBAYTAkdCMRIwEAYDVQQIEwlIYW1wc2hp
cmUxDDAKBgNVBAoTA0lCTTEOMAwGA1UECxMFTVFGVEUxDzANBgNVBAMTBmJpbmJh
ZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAvgP1QIklU9ypSKD1XoODo1yk
EyMFXBOUpZRrDVxjoSEC0vtWNcJ199e+Vc4UpNybDyBu+NkDlMNofX4QxeQcLAFj
WnhakqCiQ+JIAD5AurhnrwChe0MV3kjA84GKH/rOSVqtl984mu/lDyS819XcfSSn
cOOMsK1KbneVSCIV2XECAwEAAaN7MHkwCQYDVR0TBAIwADAsBglghkgBhvhCAQ0E
HxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFNXMIpSc
csBXUniW4A3UrZnCRsv3MB8GA1UdIwQYMBaAFDXY8rmj4lVz5+FVAoQb++cns+B4
MA0GCSqGSIb3DQEBBQUAA4GBAFc7klXa4pGKYgwchxKpE3ZF6FNwy4vBXS216/ja
8h/vl8+iv01OCL8t0ZOKSU95fyZLzOPKnCH7v+ItFSE3CIiEk9Dlz2U6WO9lICwn
l7PL72TdfaL3kabwHYVf17IVcuL+VZsZ3HjLggP2qHO9ZuJPspeT9+AxFVMLiaAb
8eHw
-----END CERTIFICATE-----
57kqxLOJ/gRUOIQ6hVK2YN13B4E1jAi1gSme0I5ZpEIG8CHXISKB7/0cke2FTqsV
lvI99QyCxsDWoMNt5fj51v7aPmVeS60bOm+UlGre8B/Ze18JVj2O4K2Uh72rDCXE
5e6eFxSdUM207sQDy20euBVELJtM2kOkL1ROdoQQSlU3XQNgJw/t3ZIx5hPXWEQT
rjRQO64BEhb+PzzxPF8uwzZ9IrUK9BJ/UUnqC6OdBR87IeA4pnJD1Jvb2ML7EN9Z
5Y+50hTKI8OGvBvWXO4fHyvIX5aslwhBoArXIS1AtNTrptPvoaP1zyIAeZ6OCVo/
SFo+A2UhmtEJeOJaZG2XZ3H495fAw/EHmjehzIACwukQ9nSIETgu4A1+CV64RJED
aYBCM8UjaAkbZDH5gn7+eBov0ssXAXWDyJBVhUOjXjvAj/e1h+kcSF1hax5D//AI
66nRMZzboSxNqkjcVd8wfDwP+bEjDzUaaarJTS7lIFeLLw7eJ8MNAkMGicDkycL0
EPBU9X5QnHKLKOfYHN/1WgUk8qt3UytFXXfzTXGF3EbsWbBupkT5e5+lYcX8OVZ6
sHFPNlHluCNy/riUcBy9iviVeodX8IomOchSyO5DKl8bwZNjYtUP+CtYHNFU5BaD
I+1uUOAeJ+wjQYKT1WaeIGZ3VxuNITJul8y5qDTXXfX7vxM5OoWXa6U5+AYuGUMg
/itPZmUmNrHjTk7ghT6i1IQOaBowXXKJBlMmq/6BQXN2IhkD9ys2qrvM1hdi5nAf
egmdiG50loLnBRqWbfR+DykpAhK4SaDi2F52Uxovw3Lhiw8dQP7lzQ==
-----END RSA PRIVATE KEY-----
11. Import the public certificate of the certification authority into the truststore.
You can use the following command:
cdNodeProtocol=protocol
cdNodeTruststore=/test/ssl/fte/stores/truststore.jks
cdNodeTruststorePassword=password
c) Import the certificate you receive from the preceding step into the keystore. The certificate must
be in x.509 format.
You can use the following command:
cdNodeKeystore=/test/ssl/fte/stores/keystore.jks
cdNodeKeystorePassword=password
In the example in this step, password is the password that you specified when you created the
keystore.
Related tasks
“Configuring the Connect:Direct bridge” on page 149
Configure the Connect:Direct bridge to transfer files between a Managed File Transfer network and a
Connect:Direct network. The components of the Connect:Direct bridge are a Connect:Direct node and a
Managed File Transfer agent that is dedicated to communicating with that node. This agent is referred to
as the Connect:Direct bridge agent.
Configuring MFT
You can configure the features of Managed File Transfer after installation.
Related concepts
“Customizing MFT with user exits” on page 258
You can customize the features of Managed File Transfer by using your own programs known as user exit
routines.
“MFT recovery and restart” on page 249
If your agent or queue manager are unavailable for any reason, for example because of a power or
network failure, Managed File Transfer recovers as follows in these scenarios:
“Hints and tips for using MFT” on page 273
Here are some suggestions to help you to make best use of Managed File Transfer.
“Administering MFT” on page 160
MQ_DATA_PATH/mqft/
config/
coordination_qmgr_name/
coordination.properties
command.properties
agents/
agent_name/
agent.properties
exits
loggers/
logger_name
logger.properties
installations/
installation_name/
installation.properties
The coordination_qmgr_name directory is a configuration options directory. There can be more than one
configuration options directory in the configuration directory. The agent_name directory is an agent
directory. In addition to containing the agent.properties file, this directory contains the exits
directory, which is the default location for user exit routines and various XML files generated by the
fteCreateBridgeAgent and fteCreateCDAgent commands. There can be more than one agent
directory in the agents directory of a set of configuration options.
Properties files
installation.properties
The installation.properties file specifies the name of your default set of configuration options.
This entry points Managed File Transfer to a structured set of directories and property files that
contain the configuration to use. Typically the name of a set of configuration options is the name of the
associated coordination queue manager. For more information about the
installation.properties file, see “The MFT installation.properties file” on page 524.
coordination.properties
The coordination.properties file specifies the connection details to the coordination queue
manager. Because several Managed File Transfer installations might share the same coordination
queue manager, you can use a symbolic link to a common coordination.properties file on a
shared drive. For more information about the coordination.properties file, see “The MFT
coordination.properties file” on page 528.
command.properties
The command.properties file specifies the command queue manager to connect to when you issue
commands and the information that Managed File Transfer requires to contact that queue manager.
For more information about the command.properties file, see “The MFT command.properties file”
on page 533.
agent.properties
Each Managed File Transfer Agent has its own properties file, agent.properties, that must contain
the information that an agent uses to connect to its queue manager. The agent.properties file can
also contain properties that alter the behavior of the agent. For more information about the
agent.properties file, see “The MFT agent.properties file” on page 537.
logger.properties
The logger.properties file specifies the configuration properties for the loggers. For more
information about the logger.properties file, see “MFT logger configuration properties” on page
125.
Overview
Managed File Transfer for z/OS (MFT) uses the standard z/OS installation procedure. The easiest way of
running MFT commands is to use JCL and the JZOS Java Launcher.
See JZOS Batch Launcher and Toolkit for further details.
If your JCL fails to process correctly, see “Common MFT problems with JZOS” on page 301.
where:
• (1) is the location of included JCL statements
• (2) Include the specified JCL member from the location in 1)
• (2A) This extends the //STDENV - see below
• (3) This is the command to be executed, without the leading fte prefix
• (4) These lines are required, they set up information for JZOS
• (5) The parameters to the command
• The BFGJCL8 member (you can select your own name) invokes JZOS. This member has the STEPLIB
and other JCL needed to run MFT.
where:
• (1) is the name of the JZOS program. Look in SYS1.SIEALNKE for the version on your system.
Add ,PARM='+T' to give additional diagnostics.
• (2) This is the data set with the JZOS program.
• (3) This is the member name of a shell script. It defines parameters needed by MFT. See “Shell script to
define MFT” on page 71.
It can be any data set and member. It needs to be last in the file because the JCL job extends this. See
2A in “Example JCL for IBM MQ 8.0 and later” on page 70.
Example file
export BFG_JAVA_HOME="${JAVA_HOME}"
export BFG_WTO="YES"
export BFG_GROUP_NAME=MQADM
export BFG_PROD="/HMF8800/"
export BFG_CONFIG="/u/johndoe/fteconfig"
# export BFG_LANG=" -Duser.language=de "
export BFG_LANG=" "
____________________
where:
export _BPXK_AUTOCVT="ON"
Is required for Unicode conversion
export JAVA_HOME="/java/java71_bit64/J7.1_64/"
Is the location of the Java directory. Specify the name of the path for Java. This directory contains bin
and other directories.
export PATH="/bin:${JAVA_HOME}/bin/classic/"
Sets up the path statement for Java executable statements
LIBPATH="/lib:/usr/lib:${JAVA_HOME}/bin"
Sets up the library path for the Java executable statements
LIBPATH="$LIBPATH:${JAVA_HOME}/bin/classic"
Adds more Java libraries to the LIBPATH statement.
LIBPATH=$LIBPATH:"/mqm/V8R0M0/java/lib/"
Adds IBM MQ for z/OS libraries in the library path. Specify the name of your IBM MQ for z/OS libraries
in USS.
export LIBPATH
Makes the LIBPATH available to JZOS
export BFG_JAVA_HOME="${JAVA_HOME}"
Sets the BFG_JAVA_HOME to the value of JAVA_HOME specified above
export BFG_WTO="YES"
Setting BFG_WTO to YES causes messages to be displayed on the joblog using WTO
export BFG_GROUP_NAME=MQADM
User IDs, which are a member of the specified group, are considered IBM MQ for z/OS administrators
export BFG_PROD="/HMF8800/"
Is the path where the MFT code is located
export BFG_DATA="/u/johndoe/fteconfig"
Is where the MFT configuration information is stored
# export BFG_LANG=" -Duser.language=de "
Is a commented out statement to define the language as German
export BFG_LANG=" "
Specifies the language as the default, English.
The contents of the MFT product in /lib/messages/BFGNVMessages_*.properties lists the
languages available. The default is to leave the value blank, which means that English is used.
For V7 specify:
export FTE_JAVA_HOME="${JAVA_HOME}"
export FTE_WTO="YES"
export FTE_GROUP_NAME=SCENU
export FTE_PROD=""/HMF7100/"
You must install the following Microsoft libraries on your system to use Redistributable
Managed File Transfer Agent:
• Microsoft Visual C++ Redistributable 2008
• Microsoft Visual C++ Redistributable 2012
These libraries are available from Microsoft. See The latest supported Visual C++ downloads.
Procedure
1. Download the Redistributable Managed File Transfer Agent package from IBM Fix Central.
a) Choose the package for your operating system:
• 9.0.1.0-IBM-MQFA-Redist-LinuxX64
• 9.0.1.0-IBM-MQFA-Redist-LinuxS390X
• 9.0.1.0-IBM-MQFA-Redist-LinuxPPC64LE
b) Identify the directory where you want to extract the package, for example:
• C:\MFTZ
• /home/MFTZ
2. Extract the contents of the downloaded package:
gunzip 9.0.1.0-IBM-MQFA-Redist-LinuxX64.tar.gz
and then
• bin64: Contains required libraries that are needed for Windows 64-bit OS support
• mqft: Contains ant and lib directories that are required for Ant support
and for core MFT function support
What to do next
You are ready to configure the MFT Agent. For the next steps, see the following topic: “Creating the initial
configuration” on page 74.
Related reference
“Possible errors when configuring the Redistributable MFT Agent” on page 318
Error messages when you are configuring the Redistributable Managed File Transfer Agent
Related information
Video: How to install and configure the Redistributable Managed File Transfer Agent (YouTube)
Procedure
1. Create the environment for the Redistributable Managed File Transfer Agent.
When you run the fteCreateEnvironment command, the MFT data directory with the configuration
information for MFT Agents is created. Ensure that you are in the bin directory that was created when
you extracted the downloaded MFT Agent redistributable component. Run the following command:
BFG_DATA=Datapath location
Before creating, starting, and stopping an agent, or any other commands, you must ensure that the
BFG_DATA variable is set to the correct data path location.
2. Set up the IBM MQ connectivity.
a) Set up the coordination queue manager by using the fteSetupCoordination command.
The fteSetupCoordination command creates the set that is up required for coordination queue
managers and the directories that are needed for further configuration. Redistributable Managed
File Transfer Agent works in client mode so you must provide extra parameters with this command
to avoid an error, as bindings mode is not supported.
For more details and steps for using the fteSetupCoordination command, see
“fteSetupCoordination” on page 503. For information on how to configure the coordination queue
manager, see “Configuring the coordination queue manager for MFT” on page 106.
b) Create and set up the command queue manager:
For more details and steps for using the fteSetupCommands command, see “fteSetupCommands:
create the MFT command.properties file” on page 501.
3. Create MFT Agent definition for an end point.
For more information on using the fteCreateAgent command to configure an agent and the agent
queue manager, see “fteCreateAgent: create an MFT agent” on page 383.
In steps “2” on page 75 and “3” on page 75 for each agent, you create queue and topic definitions on
the agent queue manager.
4. Start the agent and you are ready to transfer files.
You can verify the status of the agent by running the following command:
fteListAgents
For more details on using the fteListAgents command, see “fteListAgents: list the MFT agents for a
coordination queue manager” on page 462.
Related concepts
“Configuring MFT” on page 67
You can configure the features of Managed File Transfer after installation.
“MFT configuration options on Multiplatforms” on page 68
Managed File Transfer provides a set of properties files that contain key information about your setup and
are required for operation. These properties files are in the configuration directory that you defined when
you installed the product.
Related reference
“fteCreateTransfer: start a new file transfer” on page 428
The fteCreateTransfer command creates and starts a new file transfer from the command line. This
command can start a file transfer immediately, schedule a file transfer for a future time and date, repeat a
scheduled transfer one or more times, and trigger a file transfer based on certain conditions.
Procedure
1. Make a copy of the MFT command template PDSE library data set SBFGCMDS.
SBFGCMDS must be copied into a new library, for example prefix.agent.JCL_. You
can use an updated version of the SBFGCMDS(BFGCOPY) member with the following replacements:
• Replace ++supplied-library++ with the fully qualified name of the SBFGCMDS PDSE.
• Replace ++service-library++ with the fully qualified name of the new MFT command
PDSE library data set. The ++service-library++ is the output data set for the agent or logger service
that is created.
2. For the new MFT command PDSE library data set, edit the member BFGCUSTM, which is a JCL script to
customize the commands for the agent or logger. Each variable is specified in the format: ++variable
name++, which you must replace with its required value. For a description of the various JCL variables,
see “z/OS JCL variables” on page 90. The BFGSTDIN DD statement defines variables in three
categories: Variables, Properties, and Environment. The statement has the following format:
Variables define the set of setup and environment variables that are required for each command.
Properties define overrides for the MFT configuration properties. You can add agent and logger
properties as required to customize the agent or logger for your environment. For a list of all
properties, see “Configuration properties files” on page 101. This facility is provided to save having to
access the MFT configuration properties files, which are maintained as UNIX System Services files.
Environment defines any additionally required custom environment variables.
3. Submit job BFGCUSTM for the new MFT command PDSE library data set. This job generates the set of
JCL commands, as new members of the PDSE, appropriate for the agent or logger. For a full list of the
commands, see “z/OS agent and logger command JCL scripts” on page 94.
Job BFGCUSTM updates the library containing the JCL which includes a DD statement with DISP=OLD.
You must exit the editor after submission to allow the job to execute.
Examine the output job log to check that the JCL script ran successfully. If there are any failures,
correct them and submit the BFGCUSTM job again.
The BFGCUSTM JCL script also updates the UNIX System Services MFT configuration properties files
as necessary to keep the files in step. If the configuration defined by the CoordinationQMgr property
does not exist, warning messages are output and you must run the generated BFGCFCR and BFGCMCR
jobs to create the configuration properties files. You must run BFGAGCR for an agent, and BFGLGCRS
for a logger edit. If the specified configuration already exists, the configuration is updated with any
properties as defined in the BFTCUSTM JCL script.
Related concepts
“MFT configuration options on z/OS” on page 70
The Managed File Transfer configuration options on z/OS are the same as the options for distributed
platforms.
Related tasks
“Updating an existing MFT Agent or Logger command data set on z/OS” on page 89
You can update a Managed File Transfer command PDSE library data set that is created from the Managed
File Transfer command template data set.
Review the items in the following table and complete the table with the appropriate entries for your
enterprise. You need these values when you edit member BFGCUSTM.
In addition you must review the following variables and supply values where necessary:
• coordinationQMgrHost=
• coordinationQMgrPort=
• coordinationQMgrChannel=
• connectionQMgr=
• connectionQMgrHost=
• connectionQMgrPort=
• connectionQMgrChannel=
These properties are common to the AGENT or LOGGER.
Note: Host, Port, and Channel are required for client connection but should be left blank for a bindings
connection on the local machine.
Items to check
Ensure that you have enough disk space, a directory for storing data, and that the requisite files exist.
Create and check the directory for storing Managed File Transfer data
You need a directory for storing the Managed File Transfer (MFT) data.
Check you have enough space in the file system df -k /var. This file system should have at least
310,000 KB available.
If you have not created this file system, use the mkdir command; for example mkdir /var/mft.
Display what permissions users have on this directory, using the command ls -ltrd /var/mft.
If the owner or group is not correct, use the command chown owner:group /var/mft.
If permissions for the group are not correct, use the following command to give the owner and the group
read, write, and execute permissions. Note that the following command also gives all users read and
execute permissions chmod 775 /var/mft.
ls -ltrd /java/java71_bit64_GA/J7.1_64/bin
gives
Related concepts
“Before you start” on page 79
Managed File Transfer (MFT) configuration uses files in UNIX System Services (USS) and PDSE data sets.
“Common MFT for z/OS configurations” on page 82
An overview of the different Managed File Transfer configurations
When a job with userid ADMIN needs to connect to queue manager MQPH, it passes user ID JOHNDOEH
and uses password cXXXX.
If the job is run by any other user ID, and connects MQPH, that job passes user ID NONEH and password
yXXXX.
You can protect this file using a security product, for example, RACF®, but the user IDs running the
Managed File Transfer commands need read access to this file.
You can obscure information in this file using the JCL in member BFGCROBS. This takes the file and
encrypts the IBM MQ user ID and password. For example member BFGCROBS takes the line
and creates
If you want to keep the user ID to IBM MQ user ID mapping, you can add comments to the file. For
example
coordinationQMgr=MQPV
connectionQMgr=MQPV
%BFGCMD CMD=fteSetupCoordination +
-credentialsFile //'<MFTCredentialsDataSet(MemberName)>'
Save and submit the job. Note that if you need to resubmit the job, you need to add the -f option.
When this job runs it lists the IBM MQ resources it creates. You need to protect these resources.
Related tasks
“Defining the command queue manager” on page 87
You can either use the same queue manager as the coordination and command queue managers, or
create a new command queue manager.
Procedure
1. Rename member BFGCMCR with your own prefix, for example, CCPCMCR.
You must rename BFGCMCR because re-customizing this file replaces it.
2. Edit the renamed member by inserting the name of your credentials file.
For example:
%BFGCMD CMD=fteSetupCommands +
-credentialsFile //'<MFTCredentialsDataSet(MemberName)>' +
What to do next
See “Creating an agent” on page 88 for information on how you create an agent.
Related concepts
“Defining the coordination queue manager” on page 86
Managed File Transfer requires a queue manager to be created that acts as the coordination queue
manager.
Related tasks
“Configuring MQMFTCredentials.xml” on page 54
If Managed File Transfer is configured with security enabled, connection authentication requires all
Managed File Transfer commands that connect with a queue manager to supply user ID and password
credentials. You can either apply the required parameters for each command, or define an MFT
credentials file.
Related reference
“MFT credentials file format” on page 789
Creating an agent
You need to copy the PDSE to make the agent-specific PDSE, for example user.MFT.AGENT1. Copy the
PDSE from a previous agent or logger configuration, if they exist. If this is your first configuration, copy the
PDSE supplied with MFT.
Review member BFGCUSTM and if you need to use a different credentials file, create one.
Much of the content remains the same from the customization detailed in “Editing member BFGCUSTM”
on page 85.
You need to change:
• //SYSEXEC DD DSN=SCEN.FTE.JCL.AGENT1
• LIBRARY to match the agent PDSE
• SERVICE_TYPE=AGENT
• NAME to be the name of the agent ( matching the PDSE) JOBCARD
• Change BFG_JVM_PROPERTIES="-Xmx1024M"
Submit this job, remembering that the job requires exclusive access to the data set.
The jobs for the agent all have names of the form BFGAG*
Rename member BFGAGCR. This job updates files in the Managed File Transfer directory and uses
CSQUTIL to create agent specific queues in the local queue manager. Specify the name of your credentials
file, for example, -credentialsFile //'SCEN.FTE.JCL.VB(CREDOLD). If you do not specify the
name, the job to start the agent does not use a credentials file.
Check the output to ensure that the process has run successfully.
Tip: Copy the path name of the agent.properties file from the output of the job to a member in the PDSE
for the agent.
For example, copy /u/userid/fte/wmqmft/mqft/config/MQPA/agents/AGENT1/
agent.properties into member AGENT.
This is useful if you need to display the properties file, and add the line /u/userid/fte/wmqmft/mqft/
logs/MQPA/agents/AGENT1/logs.
This is where trace files are stored.
Related concepts
“Defining the coordination queue manager” on page 86
Managed File Transfer requires a queue manager to be created that acts as the coordination queue
manager.
“Using the agent” on page 89
How you use various commands to ensure that the agent is working correctly.
Related tasks
“Defining the command queue manager” on page 87
Procedure
1. Edit the BFGCUSTM JCL script member and update variables and properties in the BFGSTDIN DD
statement.
If you want to remove a property that was previously defined, set its value to blank, instead of
removing the entry. When the BFGCUSTM JCL script is run, the specified properties are applied as an
update to the actual agent and logger UNIX System Services properties files; setting a property to a
blank value indicates that the property is to be removed
2. Submit job BFGCUSTM. This job generates the set of JCL commands again, appropriate for the agent or
logger. For a full list of the commands, see “z/OS agent and logger command JCL scripts” on page 94.
Results
You can modify the generated JCL scripts and add your own logic. However, be careful when you run
BFGCUSTM again because you might overwrite the custom logic.
Related concepts
“MFT configuration options on z/OS” on page 70
The Managed File Transfer configuration options on z/OS are the same as the options for distributed
platforms.
Related tasks
“Creating an MFT Agent or Logger command data set” on page 76
You can create a PDSE data set of commands from the Managed File Transfer command template data set
for a specific Managed File Transfer Agent or Managed File Transfer Logger for a specific coordination.
The following table lists the substitution values for the BFGCUSTM JCL script in an MFT command PDSE
library data set. You must replace these substitution values with suitable values before you submit the
BFGCUSTM job.
The following table describes the environment variables for the BFGSTDIN DD statement for the
BFGCUSTM JCL script, in an MFT command PDSE library data set (in the [Variables] section). You must
replace all variables that are specified with substitution values (that is, values enclosed in two plus signs,
++) with suitable values before you submit the BFGCUSTM job.
export BFG_GROUP_NAME=FTEGB
Note: The IBM MQ jar files are shipped with MFT, in directory MQMFT product root/java/lib, are
always used, and not configurable.
The following table describes the mandatory MFT configuration properties for the BFGSTDIN DD
statement for the BFGCUSTM JCL script in an MFT command PDSE library data set. You must replace
properties specified with substitution values (that is, values enclosed in two plus signs, ++) with a suitable
non-blank value before you submit the BFGCUSTM job. These properties define overrides for the MFT
configuration properties. You can add agent and logger properties to customize agents or loggers for your
environment. For a list of all properties, see “Configuration properties files” on page 101.
Table 8. JCL commands available in an MFT command PDSE library data set
Member Description or fte command line command
BFGCOPY Job to create a copy of this library
BFGCUSTM Job to customize this library for agent or logger
BFGCFCR fteSetupCoordination
BFGCMCR fteSetupCommands
BFGAGCR fteCreateAgent. Created only when you set the
SERVICE_TYPE variable to AGENT.
BFGLGCRS fteCreateLogger. Created only when you set the
SERVICE_TYPE variable to LOGGER.
BFGAGST fteStartAgent. Created only when you set the
SERVICE_TYPE variable to AGENT.
BFGAGSTP fteStartAgent procedure. Created only when
you set the SERVICE_TYPE variable to AGENT.
BFGAGPI ftePingAgent. Created only when you set the
SERVICE_TYPE variable to AGENT.
BFGAGSP fteStopAgent. Created only when you set the
SERVICE_TYPE variable to AGENT.
BFGLGST fteStartLogger. Created only when you set the
SERVICE_TYPE variable to LOGGER.
BFGLGSTP fteStartLogger procedure. Created only when
you set the SERVICE_TYPE variable to LOGGER.
BFGLGSP fteStopLogger. Created only when you set the
SERVICE_TYPE variable to LOGGER.
BFGAGSH fteShowAgentDetails. Created only when you set
the SERVICE_TYPE variable to AGENT.
BFGLGSH fteShowLoggerDetails. Created only when you set
the SERVICE_TYPE variable to LOGGER.
BFGCFDF fteChangeDefaultConfigurationOptions
BFGAGCL fteCleanAgent. Created only when you set the
SERVICE_TYPE variable to AGENT.
Note: The JCL, for commands that create MQSC or reference delete scripts, asks you to run a script, but
the script has already been run by the job.
db2.jcc.traceDirectory=/u/johndoe/fte
db2.jcc.traceFile=jccTrace1
db2.jcc.traceFileAppend=false
# turn on all traces
# db2.jcc.traceLevel=-1
# turn off all traces
db2.jcc.traceLevel=0
BFG_JVM_PROPERTIES=-Ddb2.jcc.propertiesFile=/u/.../sql.properties
-Ddb2.jcc.ssid=DBCA
Where /u/.../sql.properties is the name of your Db2 trace properties file, and DBCA is the name of
your Db2 subsystem.
Submit this job, noting that the job requires exclusive access to the data set. The jobs for the agent all
have names like BFGLG*.
Logging to files
For more information on logging to Db2, see “Creating a logging task, when logging to Db2” on page 97
%BFGCMD CMD=fteCreateLogger +
-p MQPH +
-loggerQMgr MQPH +
-loggerType FILE +
-fileLoggerMode circular +
-fileSize 5MB +
-fileCount 5 +
-p MQPH +
-credentialsFile //'<MFTCredentialsDataSet(MemberName)>'
LOGGER
/u/user_ID/fte/wmqmft/mqft/config/MQPH/loggers/LOGGER/logger.properties
/u/user_ID/fte/wmqmft/mqft/logs/MQPH/loggers/LOGGER/
If you are logging to file, the log files are stored in this directory, for example
LOGGER0-20140522123654897.log.
Trace files are in the log subdirectory, for example
/u/user_ID/fte/wmqmft/mqft/logs/MQPH/loggers/LOGGER/logs
%BFGCMD CMD=fteCreateLogger +
-p MQPH +
-loggerQMgr MQPH +
-loggerType DATABASE +
-dbType DB2 +
-dbName DSNDBCP +
-dbDriver /db2/db2v10/jdbc/classes/db2jcc.jar +
-dbLib /db2/db2v10/jdbc/lib/ +
-credentialsFile //'<MFTCredentialsDataSet(MemberName)>' +
LOGGER
To create the logger task comment out the %BFGCMD CMD=fteCreateLogger -h by putting /* in front
of the statement, making sure that column one is blank.
Submit the job and check the output to see that it has processed successfully.
Tip: Copy the pathname of the logger.properties file from the output of the job to a member in the
PDSE of the agents.
For example copy into member APATH:
/u/user_ID/fte/wmqmft/mqft/logs/MQPH/loggers/LOGGER/logs
To avoid conflicts with other products, you can choose to create a .wmqfterc script in your home
directory. The .wmqfterc script is then invoked by each of the Managed File Transfer scripts and you can
use this script to provide custom environment settings for Managed File Transfer.
There is also one optional environment variable, BFG_WTO, that you can set to send messages to the
operator log when running agents from JCL.
The following is an example .profile that correctly configures the environment variables for Managed
File Transfer:
LIBPATH=/mqm/V8R0M0/java/lib:$LIBPATH
STEPLIB=MQM.V800.SCSQAUTH:MQM.V800.SCSQANLE:MQM.V800.SCSQLOAD
PATH=/u/fteuser/bin:/u/fteuser/J7.0/bin:/bin:/usr/bin:/u/fteuser/extras/bin:/bin:$PATH
BFG_JAVA_HOME=/u/fteuser/J7.0
BFG_DATA=/u/fteuser/DATA_DIR
export PATH LIBPATH STEPLIB BFG_JAVA_HOME BFG_DATA
export BFG_GROUP_NAME=FTEGB
Example
The following example of a restart policy defines agent BFGFT7CAG1 as being dependant on queue
manager FT7C:
RESTART_ORDER
LEVEL(3)
ELEMENT_TYPE(SYSBFGAG,SYSBFGLG)
RESTART_GROUP(GROUP7C)
ELEMENT(SYSMQMGRFT7C)
ELEMENT(BFGFT7CAG1)
RESTART_ATTEMPTS(3,300)
Procedure
1. For all new coordination queue managers: run the MQSC commands in the
coordination_qmgr_name.mqsc file against the coordination queue manager. If the coordination
queue manager is not on the same computer as the installation, copy the MQSC script file to the
computer where the queue manager is located and then run the script.
a) From an IBM i command line, start qshell using the following command: CALL QSHELL
You can configure the coordination queue manager manually instead. For more information, see
“Configuring the coordination queue manager for MFT” on page 106.
2. For all new agents: run the MQSC commands in the agent_name_create.mqsc file against the agent
queue manager.
If the agent queue manager is not on the same computer as the agent, copy the MQSC script file to the
computer where the queue manager is located and then run the script.
a) From an IBM i command line, start qshell using the following command: CALL QSHELL
b) Change to the following directory: /QIBM/UserData/mqm/mqft/config/agent_qmgr_name/
agents
c) Issue the following command, replacing agent_qmgr_name with the name of your agent queue
manager and replacing agent_name with the name of your agent:
You can configure the agent queue manager manually instead. For more information, see “Configuring
MFT Agent queue managers” on page 107.
3. If you have not already started the QMFT subsystem as part of the installation, from the IBM i
command line, start the QMFT subsystem using the following command: STRSBS SBSD(QMQMMFT/
QMFT), or STRSBS QMQMMFT/QMFT
4. Start your new agents using the fteStartAgent command.
a) From an IBM i command line, start qshell using the following command: CALL QSHELL
b) Change to the following directory: /QIBM/ProdData/mqm/bin
c) Issue the following command, replacing AGENT with the name of your agent:
./fteStartAgent AGENT
What to do next
You are recommended to set up sandboxes to limit the areas of the file system that an agent can access.
This feature is described in “Working with MFT agent sandboxes” on page 57.
Related concepts
“Configuring MFT for first use” on page 104
Connecting to IBM MQ
All network communication with IBM MQ queue managers, including communication related to Managed
File Transfer, involves IBM MQ channels. An IBM MQ channel represents one end of a network link.
Channels are classified as either message channels or MQI channels.
Procedure
1. Create a transmission queue on the IBM MQ queue manager with the same name as the coordination
queue manager.
You can use the following MQSC command:
2. On the IBM MQ queue manager, create a sender channel to the Managed File Transfer coordination
queue manager. The name of the transmission queue created in the previous step is a required
parameter for this channel. If communication with Managed File Transfer in IBM WebSphere MQ 7.5 or
Managed File Transfer agents is required, ensure the CONVERT parameter of the sender channel is set
to no. (Earlier versions of IBM WebSphere MQ File Transfer Edition always published messages in
UTF-8 format, which means that any data conversion corrupts the message. This is not necessary for
agents on Managed File Transfer in IBM MQ 8.0 or later, as messages are published with a blank
format.)
You can use the following MQSC command:
What to do next
Next, follow the configuration steps for your coordination queue manager: Configuring the coordination
queue manager.
Procedure
1. Create a local queue named SYSTEM.FTE.
2. Add the SYSTEM.FTE queue to the SYSTEM.QPUBSUB.QUEUE.NAMELIST namelist.
3. Create a topic named SYSTEM.FTE with a topic string of SYSTEM.FTE.
4. Ensure the Non-persistent message delivery (NPMSGDLV) and Persistent messages delivery
(PMSGDLV) attributes of the SYSTEM.FTE topic are set to ALLAVAIL.
5. Ensure the Publish/Subscribe mode (PSMODE) attribute of the coordination queue manager is set to
ENABLED.
What to do next
If you run the strmqm -c command on a queue manager that has been configured as a coordination
queue manager, the command deletes the change made in step 2 (adding the SYSTEM.FTE queue to the
SYSTEM.QPUBSUB.QUEUE.NAMELIST namelist). This is because strmqm -c re-creates the default IBM
MQ objects and reverses the Managed File Transfer changes. Therefore, if you have started the queue
manager with strmqm -c, complete either one of the following steps:
• Run the coordination_qmgr_name.mqsc script on the queue manager again.
• Repeat step 2.
Related concepts
“Connecting to IBM MQ” on page 104
All network communication with IBM MQ queue managers, including communication related to Managed
File Transfer, involves IBM MQ channels. An IBM MQ channel represents one end of a network link.
Channels are classified as either message channels or MQI channels.
“Configuring a multi-instance queue manager to work with MFT” on page 110
IBM WebSphere MQ 7.0.1 onwards supports the creation of multi-instance queue managers. A multi-
instance queue manager restarts automatically on a standby server. Managed File Transfer supports
Procedure
1. Create the agent operation queues.
These queues are named:
• SYSTEM.FTE.COMMAND.agent_name
• SYSTEM.FTE.DATA.agent_name
• SYSTEM.FTE.EVENT.agent_name
• SYSTEM.FTE.REPLY.agent_name
• SYSTEM.FTE.STATE.agent_name
For information about the queue parameters, see “MFT Agent queue settings” on page 606.
2. Create the agent authority queues.
These queues are named:
• SYSTEM.FTE.AUTHADM1.agent_name
• SYSTEM.FTE.AUTHAGT1.agent_name
• SYSTEM.FTE.AUTHMON1.agent_name
• SYSTEM.FTE.AUTHOPS1.agent_name
• SYSTEM.FTE.AUTHSCH1.agent_name
• SYSTEM.FTE.AUTHTRN1.agent_name
For information about the queue parameters, see “MFT Agent queue settings” on page 606.
What to do next
For information about creating and configuring a protocol bridge agent, see “fteCreateBridgeAgent (create
and configure an MFT protocol bridge agent)” on page 386 and “Configuring a protocol bridge for an FTPS
server” on page 232.
+--- config
+--- SAMPLECOORD
+--- command.properties
+--- coordination.properties
+--- SAMPLECOORD.mqsc
+--- agents
+--- SAMPLEAGENT
+--- agent.properties
+--- SAMPLEAGENT_create.mqsc
+--- SAMPLEAGENT_delete.mqsc
+---logs
+--- SAMPLECOORD
+--- agents
+--- SAMPLEAGENT
+--- logs
This example assumes that queue manager security has been disabled. The following commands, run in
runmqsc, will disable security after the queue manager is restarted:
For configuration with security enabled in MFT in IBM MQ 8.0 or later, CONNAUTH requires all MFT
commands that connect with a queue manager to supply user ID and password credentials. You can apply
the additional parameters -mquserid and -mqpassword for each command, or define a
MQMFTCredentials.xml file. The following sample credential file defines the user ID of fteuser, for
which the password of MyPassword is to be used when connecting to the queue manager SAMPLECOORD:
<tns:mqmftCredentials xmlns:tns="http://wmqfte.ibm.com/MQMFTCredentials"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://wmqfte.ibm.com/MQMFTCredentials MQMFTCredentials.xsd">
<tns:qmgr mqPassword="MyPassword" MyUserId="fteuser" name="SAMPELCOORD"/>
</tns:mqmftCredentials>
For more information, see “MFT and IBM MQ connection authentication” on page 53.
Notes:
• To locate your MFT configuration directory, use the fteDisplayVersion -v command.
• For z/OS users, the MQMFTCredential.xml file can be located as a member in a partitioned data set
with variable record format (RECFM=V), or undefined record format (RECFM=U)..
• For configuration with security enabled, add the following parameter to the steps below to associate the
credentials with the relevant queue manager: -credentialsFile full credential file path.
• The clear text password in the MQMFTCredential.xml can be obfuscated using the following
command:
This creates the basic top level configuration, and create an IBM MQ script file to call
coordination_qmgr_name.mqsc.
The configuration then needs to be loaded into the queue manager, by running the following IBM MQ
command:
Note: For TCP client connection to a queue manager, you can use:
For the created coordination_qmgr_name.mqsc, you will need to run the runmqsc command on
the same machine that the coordination queue manager is running on.
2. Create the command queue manager.
A command queue manager is a single queue manager which has been pre-configured so that the IBM
MQ infrastructure can route MFT requests to the relevant agent. Run the following command:
This creates a command.properties file in the coordination directory. Note that the -p is optional,
and not required if the commands are being set up for the default coordination.
Note: For TCP client connection to a queue manager, you can use:
This creates the agent configuration under the coordination, and creates an IBM MQ script file to call
agent_name.mqsc in the agent's configuration directory.
Run the following IBM MQ command to load the IBM MQ script file into the queue manager:
Note: For TCP client connection to a queue manager, you can use:
The agent starts in the background, and the command prompt is returned. To check that the agent is
running, run the following command:
fteListAgents -p coordination_qmgr_name
This shows the status of the agents. If the agent is running successfully, it is reported as in the READY
state.
Results
A basic MFT infrastructure is ready to use, and you can now use the fteCreateTransfer command to
request a transfer. Alternatively if the IBM MQ Explorer is available, use the MFT plug-ins to create and
monitor transfers.
More agents can be added to the configuration by repeating the Step 3: Create the agent. If the TCP client
connection is used, these can be on different machines. For different machines the
fteSetupCoordination and fteSetupCommands commands must be repeated for each machine,
however the mqsc scripts would not need to be run.
More complex configurations can have separate queue managers for coordination and each agent. In
these cases the various queue managers will need to be connected together.
Related reference
“fteSetupCoordination” on page 503
The fteSetupCoordination command creates properties files and the coordination queue manager
directory for Managed File Transfer.
“fteSetupCommands: create the MFT command.properties file” on page 501
The fteSetupCommands command creates the Managed File Transfer command.properties file. This
properties file specifies the details of the queue manager that connects to the IBM MQ network when you
issue commands.
“fteCreateAgent: create an MFT agent” on page 383
The fteCreateAgent command creates a Managed File Transfer Agent and its associated configuration.
“fteObfuscate: encrypt sensitive data” on page 484
The fteObfuscate command encrypts sensitive data in credentials files. This stops the contents of
credentials files being read by someone who gains access to the file.
“MFT credentials file format” on page 789
The MQMFTCredentials.xml file contains sensitive user ID and password information. The elements in
the MQMFTCredentials.xml file must conform to the MQMFTCredentials.xsd schema. The security
of credentials files is the responsibility of the user.
“The MFT agent.properties file” on page 537
Each Managed File Transfer Agent has its own properties file, agent.properties, that must contain the
information that an agent uses to connect to its queue manager. The agent.properties file can also
contain properties that alter the behavior of the agent.
“What to do if your MFT agent is not listed by the fteListAgents command” on page 302
If your agent is not listed by the fteListAgents command or is not displayed in the IBM MQ Explorer, or
your file transfers are not displayed in the Transfer Log of the IBM MQ Explorer, you can carry out a
number of problem determination steps to investigate the cause.
agentName=AGENT1
agentDesc=
agentQMgr=QM_JUPITER
agentQMgrPort=1414
agentQMgrHost=host1
agentQMgrChannel=SYSTEM.DEF.SVRCONN
agentQMgrStandby=host2(1414)
coordinationQMgr=QM_SATURN
coordinationQMgrHost=coordination_host1
coordinationQMgrPort=1420
coordinationQMgrChannel=SYSTEM.DEF.SVRCONN
coordinationQMgrStandby=coordination_host2(1420)
The Managed File Transfer stand-alone logger must always connect to its queue manager in bindings
mode. When using the stand-alone logger with a multi-instance coordination queue manager connect
stand-alone logger, in bindings mode, to a different queue manager. The steps to do this are described in
connectionQMgr=QM_SATURN
connectionQMgrHost=command_host1
connectionQMgrPort=1424
connectionQMgrChannel=SYSTEM.DEF.SVRCONN
connectionQMgrStandby=command_host2(1424)
Related concepts
“Connecting to IBM MQ” on page 104
All network communication with IBM MQ queue managers, including communication related to Managed
File Transfer, involves IBM MQ channels. An IBM MQ channel represents one end of a network link.
Channels are classified as either message channels or MQI channels.
Related tasks
“Configuring MFT network queue managers” on page 105
If your Managed File Transfer network includes more than one IBM MQ queue manager, these IBM MQ
queue managers must be able to remotely communicate with each other.
“Configuring the coordination queue manager for MFT” on page 106
After running the fteSetupCoordination command, run the coordination_qmgr_name.mqsc
script in the MQ_DATA_PATH/mqft/config/coordination_qmgr_name directory to perform the
necessary configuration for the coordination queue manager. However, if you want to do this configuration
manually, complete the following steps on the coordination queue manager.
If transfer progress or log information is significant to your business, you must take one of the following
steps to ensure that the information is retained:
• Use the Managed File Transfer database logger to copy messages published to the SYSTEM.FTE/Log
topic to an Oracle or Db2 database.
Using the Managed File Transfer database logger to retain log messages
The database logger is an optional component of Managed File Transfer that you can use to copy log
information in to a database for analysis and auditing purposes. The database logger is a stand-alone Java
application that you install on a system that hosts the coordination queue manager and the database. For
more information about the database logger, see “Configuring an MFT logger” on page 114.
Retaining progress and log messages by using the IBM MQ Explorer plugin
When an instance of the IBM MQ Explorer plug-in is first started, the instance creates a durable
subscription on the coordination queue manager. This durable subscription is used to collect the
information that is displayed in the Transfer Log and Current Transfer Progress views.
The name of the durable subscription is prefixed to show that the subscription was created by the IBM
MQ Explorer MFT plugin, the host name, and the name of the user, for example
MQExplorer_MFT_Plugin_HOST_TJWatson.
This prefix is added in case an administrator wants to delete a durable subscription that is no longer in
active use by an instance of the IBM MQ Explorer plugin.
Using a durable subscription on the coordination queue manager can cause messages to build up on the
SYSTEM.MANAGED.DURABLE queues. If you have a high-volume Managed File Transfer network, use the
IBM MQ Explorer plug-in infrequently, or both, this message data can fill the local file system.
To stop this from happening, you can specify that the IBM MQ Explorer plug-in use a non-durable
subscription to the coordination queue manager. Perform the following steps in your IBM MQ Explorer:
1. Select Window > Preferences > MQ Explorer > Managed File Transfer
2. From the Transfer Log subscription type list, choose NON_DURABLE.
After the log messages have been forwarded to an IBM MQ queue, they are persisted on the queue until
they are processed by an IBM MQ application that uses the queue.
Procedure
1. Ensure that you have the Managed File Transfer Logger component installed. For more information,
see Managed File Transfer product options
2. Run the fteCreateLogger command specifying the coordination queue manager, and setting the
parameter -loggerType to FILE to create your stand-alone file logger. For more information, see
“fteCreateLogger: create an MFT file or database logger” on page 400.
3. Optional: If you want to use a custom format then you can modify the XML file created by the
fteCreateLogger command. The log format definition is located in the FileLoggerFormat.xml
file. For more information, see “MFT stand-alone file logger format” on page 115.
4. Run the MQSC commands, provided by the fteCreateLogger command, against your coordination
queue manager to create the logger queues.
5. Identify a user to run the logger process and configure permissions for that user. For more
information, see “Configuring user access for an MFT stand-alone file logger” on page 121.
6. Optional: You can configure the stand-alone file logger further by editing the logger.properties
file created when you ran the fteCreateLogger command. This file is a Java properties file that
consists of key-value pairs. The logger.properties file is in the MQ_DATA_PATH/mqft/config/
coordination_qmgr_name/loggers/logger_name directory. For more information about
available properties and their affects, see “MFT logger configuration properties” on page 125.
7.
Optional: If you are using a Windows system, you can run the stand-alone file logger as a Windows
service. Run the fteModifyLogger command with the -s parameter. For more information, see
“fteModifyLogger: run an MFT logger as a Windows service” on page 481.
8. Start the stand-alone file logger with the fteStartLogger command. For more information, see
“fteStartLogger” on page 518.
If you carried out the previous step and used the fteModifyLogger command with the -s
parameter on Windows, the stand-alone file logger starts as a Windows service.
9. Check the logger output. The stand-alone file logger generates two types of output, file transfer audit
data and logger diagnostic data. The file transfer audit data can be found in MQ_DATA_PATH/mqft/
logs/coordination_qmgr_name/loggers/logger_name/logs. The logger diagnostic data can
be found in MQ_DATA_PATH/mqft/logs/coordination_qmgr_name/loggers/logger_name
10. You can stop the logger by using the fteStopLogger command. For more information, see
“fteStopLogger” on page 521.
Results
<callStarted>
<format>
<inserts>
<insert type="user" width="19" ignoreNull="false">/transaction/action/
@time</insert>
<insert type="user" width="48" ignoreNull="false">/transaction/@ID</insert>
<insert type="system" width="6" ignoreNull="false">type</insert>
<insert type="user" width="0" ignoreNull="false">/transaction/agent/
@agent</insert>
<insert type="user" width="0" ignoreNull="false">/transaction/agent/@QMgr</insert>
<insert type="user" width="0" ignoreNull="false">/transaction/job/name</insert>
<insert type="user" width="0" ignoreNull="true">/transaction/transferSet/
call/command/@type</insert>
<insert type="user" width="0" ignoreNull="true">/transaction/transferSet/
call/command/@name</insert>
<insert type="system" width="0" ignoreNull="true">callArguments</insert>
</inserts>
<separator></separator>
</format>
</callStarted>
2011-11-25T10:53:04;414d5120514d5f67627468696e6b20206466cf4e20004f02;[CSTR];
AGENT1;AGENT_QM;Managed Call;executable;echo;call test;
The inserts provided in the format definition are in the order in which the information appears on the line
in the log file. For more information on the XML schema defining the format for the
FileLoggerFormat.xml file, see “Stand-alone file logger format XSD” on page 602.
Message types
The FTE agents write a range of different message types to the SYSTEM.FTE/Log sub-topic. For more
information, see “SYSTEM.FTE topic” on page 605. The log file definition can contain format definitions
for these types of messages:
callCompleted
callStarted
monitorAction
monitorCreate
monitorFired
notAuthorized
scheduleDelete
scheduleExpire
scheduleSkipped
scheduleSubmitInfo
scheduleSubmitTransfer
scheduleSubmitTransferSet
transferStarted
transferCancelled
transferComplete
transferDelete
transferProgress
callCompleted
callStarted
monitorAction
monitorCreate
monitorFired
notAuthorized
scheduleDelete
scheduleExpire
scheduleSkipped
scheduleSubmitInfo
scheduleSubmitTransfer
transferStarted
transferCancelled
transferComplete
transferDelete
The other method used to write a log message uses multiple lines to represent the items in a transfer set
within a log message. In this case the format provided is applied to each item in the transfer set within the
log message. If you want to include information that is specific to each item within the transfer set, then
the XPATH provided is required to use the item as its XPATH root. These are the message types that use
this method to write output:
scheduleSubmitTransferSet
transferProgress
A line of output is written for each item in the transfer set. Information that you want to be fixed for all
items in a transfer set can still use XPATH addresses relative to the root of the log message. In the
following simplified transferProgress format definition example it's the timestamp and transfer ID
that are fixed. Any information that is relative to an item as its root will vary for each line written. In this
example the source and destination file information for each item are written.
<transferProgress>
<format>
<inserts>
<insert type="user" width="19" ignoreNull="false">/transaction/action/
@time</insert>
<insert type="user" width="48" ignoreNull="false">/transaction/@ID</insert>
<insert type="system" width="6" ignoreNull="false">type</insert>
<insert type="user" width="3" ignoreNull="true">status/@resultCode</insert>
<insert type="user" width="0" ignoreNull="false">source/file |
source/queue</insert>
<insert type="user" width="0" ignoreNull="false">source/file/@size |
source/queue/@size</insert>
<insert type="user" width="5" ignoreNull="true">source/@type</insert>
<insert type="user" width="6" ignoreNull="true">source/@disposition</insert>
<insert type="user" width="0" ignoreNull="false">destination/file |
destination/queue</insert>
<insert type="user" width="0" ignoreNull="false">destination/file/@size |
destination/queue/@size</insert>
<insert type="user" width="5" ignoreNull="true">destination/@type</insert>
<insert type="user" width="9" ignoreNull="true">destination/@exist</insert>
<insert type="user" width="0" ignoreNull="true">status/supplement</insert>
</inserts>
<separator></separator>
</format>
</transferProgress>
This produces a log file entry of one or more lines in this format:
2011-11-25T13:45:16;414d5120514d5f67627468696e6b20206466cf4e20033702;[TPRO];0
;/src/test1.file;3575;file;leave ;/dest/test1.file;3575;file;overwrite;;
2011-11-25T13:45:16;414d5120514d5f67627468696e6b20206466cf4e20033702;[TPRO];0
;/src/test2.file;3575;file;leave ;/dest/test2.file;3575;file;overwrite;;
In this example, the insert takes the information found in the log message at /transaction/@ID and
trims or pads it to 48 characters before writing it to the log. If the content of /transaction/@ID is null it
writes the string null after padding it to 48 characters because the ignoreNull attribute is set to false.
If ignoreNull is set to true the empty string, padded to 48 characters, is written instead. Setting
width="0" means the column width is not trimmed, it does not mean that the width is trimmed to 0. The
ignoreNull attribute can be used in this way to detect in the log when a null is found when it was not
expected. This can be useful when debugging a new log file definition.
Table 12. Summary of supported message types and their "type" system inserts.
Message type Value of "type" system insert
callCompleted [CCOM]
callStarted [CSTR]
monitorAction [MACT]
monitorCreate [MCRT]
monitorFired [MFIR]
notAuthorized [AUTH]
scheduleDelete [SDEL]
scheduleExpire [SEXP]
scheduleSkipped [SSKP]
scheduleSubmitInfo [SSIN]
scheduleSubmitTransfer [SSTR]
scheduleSubmitTransferSet [SSTS]
transferStarted [TSTR]
transferCancelled [TCAN]
transferComplete [TCOM]
transferDelete [TDEL]
transferProgress [TPRO]
Example
For example, the following format definition stops transferProgress messages being output by the file
logger.
Example
In this example, the format definition replaces the default format for the transferStarted message
type, with this reduced version that outputs only the user that started the transfer. All other message
types use the default format because they are not included in this log format definition:
Related reference
“MFT stand-alone file logger default log format” on page 598
Default log file format definition for the Managed File Transfer stand-alone file logger.
“Stand-alone file logger format XSD” on page 602
The schema for a stand-alone file format.
Duplicates always happen around the start time of the stand-alone file logger, because this is when the
last message read before the previous instance failed is processed. By knowing when the new instance
has started you can detect if duplicates should be expected, and whether they need to be handled or not.
wmqfte.max.transaction.messages
For example, by setting this to 1 the maximum number of duplicated messages is reduced to 1. Be aware
that modifying this value has an effect on the performance of your stand-alone file logger so thorough
testing is required to ensure this does not adversely affect your system.
The logger.properties file is in the MQ_DATA_PATH/mqft/config/coordination_qmgr_name/
loggers/logger_name directory. For more information on available properties and their effects, see
“MFT logger configuration properties” on page 125
Procedure
1. Ensure that the user has permission to read and, where necessary, execute, the files installed as part
of the Managed File Transfer installation.
2. Ensure that the user has permission to create and write to any file in the logs directory which is in the
configuration directory. This directory is used for an event log, and if necessary for diagnostic trace and
First Failure Data Capture (FFDC) files.
3. Ensure that the user has its own group, and is also not in any groups with wide-ranging permissions on
the coordination queue manager. The user should not be in the mqm group. On certain platforms, the
staff group is automatically given queue manager access as well; the stand-alone file logger user
should not be in the staff group. You can view authority records for the queue manager itself and for
objects in it by using the IBM MQ Explorer. Right-click the object and select Object Authorities >
Manage Authority Records. At the command line, you can use the commands dspmqaut (display
authority) or dmpmqaut (dump authority).
4. Use the Manage Authority Records window in the IBM MQ Explorer or the setmqaut (grant or revoke
authority) command to add authorities for the user's own group (on UNIX, IBM MQ authorities are
associated with groups only, not individual users). The authorities required are as follows:
• Connect and Inquire on the queue manager (the IBM MQ Java libraries require Inquire permission to
operate).
• Subscribe permission on the SYSTEM.FTE topic.
• Put permission on the SYSTEM.FTE.LOG.RJCT.logger_name queue.
• Get permission on the SYSTEM.FTE.LOG.CMD.logger_name queue.
The reject and command queue names given are the default names. If you chose different queue
names when you configured the stand-alone file logger queues, add the permissions to those queue
names instead.
Procedure
1. Install your database software using the documentation for your database.
If JDBC support is an optional component for your database, you must install this component.
On z/OS, the file that you need to run depends on the version of Db2 for z/OS that you are
using:
• For Db2 for z/OS 9.0 and earlier, run the file ftelog_tables_zos.sql to create the tables. This
file creates the tables using an INTEGER data type for fields which denote the sizes of files that are
transferred and the table ID associated with each transfer.
• For Db2 for z/OS 9.1 and later, run the file ftelog_tables_zos_bigint.sql to create the tables.
This file creates the tables using a BIGINT data type for fields which denote the sizes of files that are
transferred and the table ID associated with each transfer.
4. Run the MQSC commands, provided by the fteCreateLogger command, against your logger
command queue manager to create the logger queues. The stand-alone database logger uses two
queues on the coordination queue manager. The first queue is a command queue where messages to
control the operation of the stand-alone database logger are placed. The default name of this
command queue is SYSTEM.FTE.LOG.CMD.logger_name. The second queue is a reject queue. Because
the stand-alone database logger never discards log messages, if the logger encounters a message that
it cannot handle, it places the message on the reject queue for examination, and possible
reprocessing. You are not recommended to use the queue manager's dead letter queue for this
purpose, because rejected messages do not have a DLH header and because rejected messages
should not be combined with messages put to the dead letter queue for other reasons. The default
name for the reject queue is SYSTEM.FTE.LOG.RJCT.logger_name. These two queues are defined in the
MQSC script files generated by the fteCreateLogger command.
5. Choose a user and configure permissions
6. Optional: You can configure the stand-alone database logger further by editing the
logger.properties file created by the fteCreateLogger command in step “2” on page 122. This
file is a Java properties file that consists of key-value pairs. The logger.properties file is in the
MQ_DATA_PATH/mqft/config/coordination_qmgr_name/loggers/logger_name directory.
For more information about available properties and their effects, see “MFT logger configuration
properties” on page 125.
7.
Optional: If you are using a Windows system, you can run the stand-alone database logger as a
Windows service. Run the fteModifyLogger command with the -s parameter. For more information,
see “fteModifyLogger: run an MFT logger as a Windows service” on page 481.
8. Optional: If the database being used is Oracle or you are connecting to a Db2 database remotely, you
will need to specify a user name and password that the logger will use to authenticate with your
database server. This user name and password is specified in a credentials file that conforms to the
format defined by the MQMFTCredentials.xsd schema. For more information, see “MFT credentials
file format” on page 789. After creating the credential file, you must specify the location of the
credentials file in the logger.properties file using the wmqfte.database.credentials.file
property.
9. Start the stand-alone database logger using the fteStartLogger command. By default, the stand-
alone database logger runs in the background and the stand-alone database logger places output into
a file in the logs directory. If you want to run the stand-alone database logger in the foreground and
Procedure
1. Install a database client on the system that you have installed Managed File Transfer on.
2. Add your remote database server to your local database client configuration. This configuration update
is needed for Managed File Transfer and IBM MQ to correctly access the database.
3. Specify the new properties in the logger.properties file to connect to the database using the
credentials file: wmfte.database.credentials.file.
Note: Earlier versions of Managed File Transfer used the properties wmqfte.oracle.user or
wmqfte.database.user, and wmqfte.oracle.password or wmqfte.database.password.
These properties are now deprecated. Use wmfte.database.credentials.file instead.
4. Oracle only: To allow a remote connection to the database, change the XAResourceManager stanza in
the coordination queue manager's qm.ini file to the following (ensuring you change the database
name, user name and user password to match your own information):
Oracle_XA+Acc=P/ftelog/qgw783jhT
+SesTm=35+DB=FTEAUDIT1+SqlNet=FTEAUDIT1+threads=false, the change is highlighted in
bold.
5. Oracle only: Specify a host and port in the logger.properties file, using the
wmqfte.oracle.host and wmqfte.oracle.port properties. The default values for the host and
port allow you to work with a local database client so if you have previously worked with a local
database, you might not have set these values.
Related reference
“MFT logger configuration properties” on page 125
The Managed File Transfer logger has a set of configuration properties. Specify these properties in the
logger.properties file, which is in the MQ_DATA_PATH/mqft/config/
coordination_qmgr_name/loggers/logger_name directory.
Procedure
1. Ensure that the user has permission to read and, where necessary, execute, the files installed as part
of the Managed File Transfer Remote Tools and Documentation installation.
2. Ensure that the user has permission to create and write to any file in the logs directory (in the
configuration directory). This directory is used for an event log, and if necessary for diagnostic trace
and FFDC files.
3. Ensure that the user has its own group, and is not also in any groups with wide-ranging permissions on
the coordination queue manager. The user should not be in the mqm group. On certain platforms, the
staff group is automatically given queue manager access as well; the stand-alone database logger user
should not be in the staff group. You can view authority records for the queue manager itself and for
objects in it using the IBM MQ Explorer. Right-click the object and select Object Authorities > Manage
Authority Records. At the command line, you can use the commands dspmqaut (display authority) or
dmpmqaut (dump authority).
4. Use the Manage Authority Records window in the IBM MQ Explorer or the setmqaut (grant or revoke
authority) command to add authorities for the user's own group (on UNIX, IBM MQ authorities are
associated with groups only, not individual users). The authorities required are as follows:
• Connect and Inquire on the queue manager (the IBM MQ Java libraries require Inquire permission to
operate).
• Subscribe permission on the SYSTEM.FTE topic.
• Put permission on the SYSTEM.FTE.LOG.RJCT.logger_name queue.
• Get permission on the SYSTEM.FTE.LOG.CMD.logger_name queue.
The reject and command queue names given are the default names. If you chose different queue
names when you configured the stand-alone database logger queues, add the permissions to those
queue names instead.
5. Perform the user configuration that is specific to the database you are using.
• If your database is Db2, carry out the following steps:
There are several mechanisms for managing database users with Db2. These instructions apply to
the default scheme based on operating system users.
– Ensure that the ftelog user is not in any Db2 administration groups (for example, db2iadm1,
db2fadm1, or dasadm1)
– Give the user permission to connect to the database and permission to select, insert and update
on the tables that you created as part of Step 2: create the required database tables
• If your database is Oracle, carry out the following steps:
– Ensure that the ftelog user is not in any Oracle administration groups (for example, ora_dba on
Windows or dba on UNIX)
– Give the user permission to connect to the database and permission to select, insert and update
on the tables that you created as part of Step 2: create the required database tables
wmqfte.logger.type The logger type in use: file, or database. Set this No default value
value to FILE, or DATABASE.
wmqfte.command.queue.name The name of a queue that the logger reads command SYSTEM.FTE.LOG.CMD.logger_name
messages controlling its behavior from.
wmqfte.queue.manager The queue manager that the logger connects to. This No default value
parameter is required, and is all that is needed for
bindings mode connections to the queue manager.
(For the properties for connecting to a remote queue
manager, see Table 14 on page 132.)
wmqfte.database.credentials.file The file that contains the user name and password
for connecting to the database. For details on creating the
Authentication Credentials File see
For IBM WebSphere MQ 7.5, or later, the value of this Creating an MFT credentials file
property can contain environment variables.
For more information, see “MFT credentials file See Configuring
format” on page 789. MQMFTCredentials.xml for information on
the location and permissions of this file.
Further details on
creating the Authentication Credentials
File are in MFT and IBM MQ connection
authentication
wmqfte.database.driver The location of the JDBC driver classes for the No default value
database. This is typically the path and file name of a
JAR file. For example, the Type 2 driver for Db2 on
AIX® systems requires the file /opt/IBM/db2/
V9.5/java/db2jcc.jar. On Windows systems,
specify the path separator as a forward slash
character (/) for example, C:/Program
Files/IBM/SQLLIB/java/db2jcc.jar.
wmqfte.database.exclude .duplicate. Controls whether entries are stored in the metadata true
metadata table that contains information that can be found in
other tables within the database logger schema. Set
this value to true, or false. These metadata
entries are no longer stored by default as it is
duplication of existing data and a waste of database
storage capacity. The property entries and the tables,
where the same data appears, are as follows:
• com.ibm.wmqfte.SourceAgent TRANSFER_EVENT
or CALL_REQUEST
• com.ibm.wmqfte.DestinationAgent
TRANSFER_EVENT
• com.ibm.wmqfte.MqmdUser TRANSFER_EVENT or
CALL_REQUEST
• com.ibm.wmqfte.OriginatingUser
TRANSFER_EVENT or CALL_REQUEST
• com.ibm.wmqfte.OriginatingHost
TRANSFER_EVENT or CALL_REQUEST
• com.ibm.wmqfte.TransferId TRANSFER or
CALL_REQUEST
• com.ibm.wmqfte.JobName TRANSFER or
CALL_REQUEST
Setting the value of this property to false causes
these metadata entries to be stored in the metadata
table.
wmqfte.database.name The name of the database instance (or subsystem No default value
when using Db2 for z/OS) that contains the Managed
File Transfer log tables.
wmqfte.database.schema The database schema that contains the Managed File FTELOG
Transfer logging tables. In most cases the default
value is appropriate, but you might need to specify
an alternative value depending on your own site-
specific database considerations.
wmqfte.database.native.library.path The path that contains the native libraries that are No default value
needed by your chosen database driver (if any). For
example, the Type 2 driver for Db2 on AIX systems
requires libraries from /opt/IBM/db2/V9.5/
lib32/. As an alternative to this property, you can
set the java.library.path system property by using
other methods.
On Solaris and HP-UX systems, before running the
fteStartLogger command, you must also set and
export the LD_LIBRARY_PATH environment variable
to include the path.
wmqfte.file.logger.fileDirectory The directory where the file logger log files are mqft/logs/coordination_dir/
located. loggers/logger_name/logs
wmqfte.file.logger.fileSize The maximum size that a log file is allowed to grow 10MB
to. The size value is a positive integer, greater than
zero, followed by one of the following units: KB, MB,
GB, m (minutes), h (hours), d (days), w (weeks). For
example,
wmqfte.file.logger.fileSize=5MB
wmqfte.file.logger.fileSize=2d
wmqfte.file.logger.mode The logger mode in use: circular, or linear. Set this No default value
value to CIRCULAR, or LINEAR.
CIRCULAR - The file logger writes information to a
file until that file reaches its maximum size as
defined by using the
wmqfte.file.logger.fileSize property. When
the maximum size is reached, the file logger starts a
new file. The maximum number of files that are
written in this mode is controlled by the value that is
defined by using the
wmqfte.file.logger.fileCount property.
When this maximum number of files is reached, the
file logger deletes the first file and re-creates it for
use as the currently active file. If the value defined in
the wmqfte.file.logger.fileSize property is a
fixed size byte unit (for example, KB, MB, or GB) then
the upper limit on disk space that is used in this
mode equals fileSize multiplied by fileCount. If the
value defined in the
wmqfte.file.logger.fileSize property is a
time unit (for example, m, h, d, or w) then the
maximum size depends on the throughput of log
messages in your system over these time periods.
The log file naming convention that is used when
running in this mode is:logger_namenumber-
timestamp.log where:
• logger_name is the name that is given to the logger
in the fteCreateLogger command.
• number is the number of the file within the set.
• timestamp is the timestamp of when the file was
created.
For example,
LOGGER1-20111216123430147.log
LOGGER-20111216123430147.log
wmqfte.oracle.port The port that the logger uses to connect to the 1521
Oracle instance. This port is also known as a TNS
listener.
wmqfte.oracle.host The host that the logger uses to connect to the localhost
Oracle instance.
See Configuring
MQMFTCredentials.xml for information on
the location and permissions of this file.
Further details on
creating the Authentication Credentials
File are in MFT and IBM MQ connection
authentication
com.ibm.wmqfte.databaselogger=moderat
e:com.ibm.wmqfte.databaselogger.opera
tion=all
The following table shows the additional logger properties required to support client mode connection to
a logger queue manager.
Table 14. Connection properties for client mode
wmqfte.Ssl.CipherSuite Specifies TLS aspects of how the logger and No default value
the logger queue manager exchange data.
The value of wmqfte.Ssl.CipherSuite is
a CipherSuite name. The CipherSuite name
maps to the CipherSpec name used on the
logger queue manager channel.
For more information, see CipherSuite and
CipherSpec name mappings.
wmqfte.Ssl.TrustStoreCredentialsFile The path to the file that contains the No default value
wmqfte.Ssl.TrustStore credential.
Note that the value of this property can
contain environment variables.
wmqfte.Ssl.KeyStore.CredentialsFile The path to the file that contains the No default value
wmqfte.Ssl.KeyStore credential.
Note that the value of this property can
contain environment variables.
Related reference
“The use of environment variables in MFT properties” on page 522
From IBM WebSphere MQ 7.5, it is possible for environment variables to be used in Managed File Transfer
properties that represent file or directory locations. This allows the locations of files or directories used
when running parts of the product, to vary depending on environment changes. For example, which user is
running the process.
“SSL properties for MFT” on page 591
Administrative subscription
By default, a stand-alone logger creates its own subscription to the SYSTEM.FTE/Log/# topic, using the
default durable subscription options and a managed subscription (that is, the queue manager controls the
backing queue used to hold the messages before they are passed to the application). If other options are
required on the subscription or the queue, you can instead create a subscription yourself, set the options
that you require, and configure the stand-alone logger to use that subscription instead. Remember to add
permission for the stand-alone logger to use the subscription that you create.
An example of using this configuration is to partition the log space by using two wildcard subscriptions, to
send logs from agents whose name begins with FINANCE into one database and logs from agents
beginning with ACCOUNTING into another. This type of configuration requires two stand-alone logger
instances, each with its own logger.properties file referring to the required subscription and its own
command queue and reject queue.
To collect log messages only from agents whose names begin with ACCOUNTING, create a subscription
object on your coordination queue manager with a topic string of SYSTEM.FTE/Log/ACCOUNTING*. Set the
Wildcard usage value to Character level wildcard. You must also add entries to the
logger.properties file for your logger. For example, if you create a subscription object called
ACCOUNTING.LOGS with these settings, add the following entries to the logger.properties file:
wmqfte.message.source.type=administrative subscription
wmqfte.message.source.name=ACCOUNTING.LOGS
The stand-alone logger handles log messages that start with the topic string of SYSTEM.FTE/Log/ only.
You can specify a more restrictive topic string, but you cannot specify a less restrictive string. If you do
specify a less restrictive string in error, all publications that relate to a topic string other than
SYSTEM.FTE/Log/ go to the reject queue, and the stand-alone logger produces the error message
BFGDB0002E. This error message implies that there is a problem with the stand-alone logger
configuration.
Queue
The typical topology is where the stand-alone logger runs on the same system as the coordination queue
manager. If this is not possible, you can create a subscription on the coordination queue manager using a
queue on another queue manager as the subscription destination (either using a remote queue definition
or by using the DESTQMGR property of the subscription). The logger can then run on the system hosting
the second queue manager and read the messages from the queue. To ensure transactional integrity, the
stand-alone logger must always connect to its queue manager in bindings mode. You must define the
reject queue and command queue on the same queue manager that the stand-alone logger connects to.
The queue managers must be at IBM WebSphere MQ 7.5 or later.
wmqfte.message.source.type=queue
wmqfte.message.source.name=USER.QUEUE
Procedure
1. Before installing the Java EE database logger, you must prepare your environment. Use the
instructions in the topic “Preparing to install the Java EE database logger for MFT” on page 136.
2. You install the Java EE database logger in a Java Platform, Enterprise Edition (Java EE)-compliant
application server. For instructions, see the following topics:
• “Installing the Java EE database logger for MFT with WebSphere Application Server 7.0” on page
138
• “Installing the Java EE database logger for MFT with WebSphere Application Server Community
Edition” on page 143
Related tasks
“Preparing to install the Java EE database logger for MFT” on page 136
Follow these instructions to prepare your Managed File Transfer environment before installing the Java EE
database logger.
“Installing the Java EE database logger for MFT with WebSphere Application Server 7.0” on page 138
Follow these instructions to install and configure the Java Platform, Enterprise Edition (Java EE) database
logger for Managed File Transfer with WebSphere Application Server 7.0.
“Installing the Java EE database logger for MFT with WebSphere Application Server Community Edition”
on page 143
Follow these instructions to install and configure the Java Platform, Enterprise Edition (Java EE) database
logger for Managed File Transfer with WebSphere Application Server Community Edition.
“Configuring user access for the Java EE database logger for MFT” on page 146
When you configure the Java Platform, Enterprise Edition (Java EE) database logger for Managed File
Transfer, you need user accounts to access IBM MQ, your database, and your operating system. The
number of operating system users that is required depend on the number of systems you are using to host
these components.
“Migrating from the stand-alone database logger to the Java EE database logger for MFT” on page 148
You can migrate from the stand-alone database logger to the Java EE database logger. You must stop the
stand-alone database logger and install the Java EE database logger. To avoid losing or duplicating log
entries you must stop messages being published to the SYSTEM.FTE topic before stopping the stand-
alone database logger, and restart it after you have installed the JEE database logger. Back up your
database before migration.
Related reference
“Authorities for the MFT logger” on page 357
Procedure
1. Install your database software using the documentation for your database.
If JDBC support is an optional component for your database, you must install this component.
2. Create a database using the tools provided by your database. The database must have a tablespace
and bufferpool page size of at least 8K.
The default schema name is FTELOG. If you use a schema name other than FTELOG, you must edit the
provided SQL file appropriate to your database, ftelog_tables_db2.sql or
ftelog_tables_oracle.sql, to reflect this before proceeding to the next step.
3. Create the required database tables using your database's tools.
On z/OS, the file that you need to run depends on the version of Db2 for z/OS that you are
using:
• For Db2 for z/OS 9.0 and earlier, run the file ftelog_tables_zos.sql to create the tables. This
file creates the tables using an INTEGER data type for fields which denote the sizes of files that are
transferred and the table ID associated with each transfer.
• For Db2 for z/OS 9.1 and later, run the file ftelog_tables_zos_bigint.sql to create the tables.
This file creates the tables using a BIGINT data type for fields which denote the sizes of files that are
transferred and the table ID associated with each transfer.
4. If you have changed the schema name from FTELOG, you must change the schema name in the EAR
file. For more information, see “Changing the schema name in your Java EE database logger for MFT”
on page 137.
5. Create a reject queue in IBM MQ.
Because the logger never discards log messages, if the logger encounters a message that it cannot
handle, it places the message on the reject queue for examination and possible reprocessing. Do not
use the queue manager's dead letter queue for this purpose, because rejected messages do not have a
DLH header and because rejected messages must not be combined with messages put to the dead
letter queue for other reasons. The fteCreateLogger command creates a reject queue. The default
name for this reject queue is SYSTEM.FTE.LOG.RJCT.logger_name
6. Follow the instructions in the topic Configuring user access for the JEE logger.
What to do next
Now you can install the Java EE database logger in a Java EE-compliant application server. Use the
instructions in the following topics, based on the application server you are using:
• “Installing the Java EE database logger for MFT with WebSphere Application Server 7.0” on page 138
• “Installing the Java EE database logger for MFT with WebSphere Application Server Community Edition”
on page 143
Procedure
1. Extract the JPA JAR file from the EAR file by using the following command:
where:
• ear_file is com.ibm.wmqfte.databaselogger.jee.oracle.ear or
com.ibm.wmqfte.databaselogger.jee.ear depending on whether you are using Db2 or
Oracle.
• jpa_file is com.ibm.wmqfte.web.jpa.oracle.jar or com.ibm.wmqfte.web.jpa.jar
depending on whether you are using Db2 or Oracle.
2. Extract the persistence.xml file from the JPA JAR file by using the following command:
where:
• jpa_file is com.ibm.wmqfte.web.jpa.oracle.jar or com.ibm.wmqfte.web.jpa.jar
depending on whether you are using Db2 or Oracle.
3. Edit the persistence.xml file to change the following line:
where
• schema_name is the schema name you want to use.
4. Update JPA JAR with the modified persistence.xml file by using the following command:
where:
• jpa_file is com.ibm.wmqfte.web.jpa.oracle.jar or com.ibm.wmqfte.web.jpa.jar
depending on whether you are using Db2 or Oracle.
5. Update the EAR file with the modified JPA JAR file by using the following command:
where:
• ear_file is com.ibm.wmqfte.databaselogger.jee.oracle.ear or
com.ibm.wmqfte.databaselogger.jee.ear depending on whether you are using Db2 or
Oracle.
• jpa_file is com.ibm.wmqfte.web.jpa.oracle.jar or com.ibm.wmqfte.web.jpa.jar
depending on whether you are using Db2 or Oracle.
Use the WebSphere Application Server 7.0 administrative console to complete the following steps:
Procedure
1. In the navigation pane, expand Resources > JMS > JMS Providers.
2. Select the IBM MQ messaging provider that is at the correct scope for the connection factory or
activation specification that creates the bindings mode connection.
Note: Native path information at Server scope is used in preference to native path information at
higher scopes, and native path information at Node scope is used in preference to native path
information at Cell scope.
3. Under General Properties, in the Native library path field, enter the full name of the directory that
contains the IBM MQ native libraries.
For example, on Linux enter /opt/mqm/java/lib. Enter only one directory name.
4. Click OK.
5. Restart the application server to refresh the configuration.
6. Required: Restart the application server a second time to load the libraries.
Installing the Java EE database logger for MFT with WebSphere Application Server 7.0
Follow these instructions to install and configure the Java Platform, Enterprise Edition (Java EE) database
logger for Managed File Transfer with WebSphere Application Server 7.0.
Procedure
1. Deploy the IBM MQ resource adapter, wmq.jmsra.rar.
• To deploy the IBM MQ resource adapter for a JEE database logger using a coordination queue
manager QM_JUPITER, perform the following steps. This example applies when your WebSphere
Application Server Community Edition instance is running on the same system as the IBM MQ queue
manager that you want to connect to.
a. Create a plan file that defines a connection to the MFT coordination queue manager. The following
example plan file defines a connection to a queue manager called QM_JUPITER, and a reference
to a queue called SYSTEM.FTE.LOG.RJCT.LOGGER1 on that queue manager.
c) Use a text editor to edit the extracted META-INF/openejb-jar.xml file. Change the following
activation-config-property values to match your environment:
e) Update the supplied ear file with the updated EJB jar file, by running the following command:
Configuring user access for the Java EE database logger for MFT
When you configure the Java Platform, Enterprise Edition (Java EE) database logger for Managed File
Transfer, you need user accounts to access IBM MQ, your database, and your operating system. The
number of operating system users that is required depend on the number of systems you are using to host
these components.
Procedure
1. Ensure that the operating system user has its own group, and is not also in any groups with wide-
ranging permissions on the coordination queue manager. The user should not be in the mqm group. On
certain platforms, the staff group is automatically given queue manager access as well; the logger user
should not be in the staff group. You can view authority records for the queue manager itself and for
objects in it using the IBM MQ Explorer. Right-click the object and select Object Authorities > Manage
Authority Records. At the command line, you can use the commands dspmqaut (display authority) or
dmpmqaut (dump authority).
2. Use the Manage Authority Records window in the IBM MQ Explorer or the setmqaut (grant or revoke
authority) command to add authorities for the IBM MQ user's own group (on UNIX, IBM MQ authorities
are associated with groups only, not individual users). The authorities required are as follows:
• CONNECT and INQUIRE on the queue manager (the IBM MQ Java libraries require INQUIRE
permission to operate).
• SUBSCRIBE permission on the SYSTEM.FTE topic.
• PUT permission on the SYSTEM.FTE.LOG.RJCT.logger_name queue.
The reject and command queue names given are the default names. If you chose different queue
names when you configured the logger queues, add the permissions to those queue names instead.
3. Perform the database user configuration that is specific to the database you are using.
• If your database is Db2, carry out the following steps:
Note: There are several mechanisms for managing database users with Db2. These instructions
apply to the default scheme based on operating system users.
– Ensure that the ftelog user is not in any Db2 administration groups (for example, db2iadm1,
db2fadm1, or dasadm1)
– Give the user permission to connect to the database and permission to select, insert, and update
on the tables that you created as part of Step 2: create the required database tables
• If your database is Oracle, carry out the following steps:
– Ensure that the ftelog user is not in any Oracle administration groups (for example, ora_dba on
Windows or dba on UNIX)
– Give the user permission to connect to the database and permission to select, insert and update
on the tables that you created as part of Step 2: create the required database tables
Procedure
1. Open the WebSphere Application Server console.
Procedure
1. Before stopping the database, run the following MQSC command against your coordination queue
manager: ALTER QM PSMODE(COMPAT)
This stops messages being published to the SYSTEM.FTE/Log topic. Wait until the logger has
processed all of the messages on its subscription. By default, this subscription is called
SYSTEM.FTE.LOGGER.AUTO.
2. Stop the database logger using the fteStopLogger command.
3. Back up the database using the tools supplied with the database software.
• If your database is Db2 on z/OS and you are migrating between the 7.0.2 and 7.0.3
schemas or between the 7.0.3 and 7.0.4 schemas, you must create a new database schema and
copy your existing data into it. For more information, see “Migrating the database tables on Db2 on
z/OS to IBM MQ 8.0” on page 35.
• If your database is not Db2 or you created your database with a page size of more than 8K, you can
migrate the schema in the same way as for other versions, by completing the following steps.
• If you are migrating between database tables in any other circumstances complete the following
steps:
a. Choose the file that is appropriate to your database platform and has a name that includes the
string old-new. This file is located in the MQ_INSTALLATION_PATH/mqft/sql directory of the
Remote Tools and Documentation installation.
b. If you have made modifications to the initial schema, review the migration file to ensure that the
file will be compatible with your modified database.
c. Run the SQL file against your database.
6. Install the Java EE database logger EAR file.
7. Deploy the Java EE database logger. For more information, see “Installing the Java EE database logger
for MFT” on page 135.
8. Run the following MQSC command against your coordination queue manager: ALTER QMGR
PSMODE(ENABLED)
This enables publishing of messages to the SYSTEM.FTE/Log topic.
Results
Procedure
1. “Choose the operating systems for the Connect:Direct bridge agent and node” on page 150.
2. “Choose and configure a Connect:Direct node” on page 150.
3. “Create and configure a Connect:Direct bridge agent” on page 150.
4. “Configure the ConnectDirectNodeProperties.xml file to include information about the remote
Connect:Direct nodes” on page 151.
5. “Configure a secure connection between the Connect:Direct bridge agent and the Connect:Direct
node” on page 152.
Procedure
1. Choose a system running either Windows or Linux on System x to install the Connect:Direct bridge
agent on.
2. Choose an operating system that is supported by Connect:Direct for Windows or Connect:Direct for
UNIX to install the Connect:Direct bridge node on.
Procedure
1. Choose a Connect:Direct node for the Managed File Transfer agent to communicate with.
2. Check the network map for your chosen Connect:Direct node. If the network map contains any entries
for remote nodes running on a Windows operating system, you must ensure that these entries specify
that the nodes are running on Windows.
a) If the Connect:Direct node that you have selected for the Connect:Direct bridge is running on
Windows, use the Connect:Direct Requester to edit the network map. Ensure that the Operating
System field for any remote nodes that are running on Windows is set to Windows.
Procedure
1. Create a Connect:Direct bridge agent using the fteCreateCDAgent command.
Procedure
Edit the template ConnectDirectNodeProperties.xml in the Connect:Direct bridge agent
configuration directory. For each Connect:Direct node or group of nodes that you want to define
information about, perform the following steps:
a) Inside the nodeProperties element, create a node element.
b) Add a name attribute to the node element. Specify the value of this attribute as a pattern to match the
name of one or more remote Connect:Direct nodes.
c) Optional: Add a pattern attribute to the node element that specifies what type of pattern the value in
the name attribute is. Valid values are regex and wildcard. The default option is wildcard.
d) Add a type attribute to the node element that specifies the operating system that the remote
Connect:Direct nodes specified by the name attribute run on.
The following values are valid:
• Windows - the node runs on Windows
• UNIX - the node runs on UNIX or Linux
Procedure
Configure a secure connection. For an example of how to do this, see “Configuring SSL or TLS between the
Connect:Direct bridge agent and the Connect:Direct node” on page 65.
Procedure
1. Ensure that the name attribute in the element <tns:pnode name="Connect:Direct node host"
pattern="wildcard"> contains the value of the name of the Connect:Direct node that the
Connect:Direct bridge agent connects to. This value must be the same value that you specify for the
fteCreateCDAgent -cdNode parameter.
The value of the pattern attribute can be either wildcard or regex. If this attribute is not specified,
the default is wildcard.
2. Insert user ID and credential information into the file as child elements of <tns:pnode>.
You can insert one or more instances of the following <tns:user> element into the file:
<tns:user name="name"
pattern="pattern"
ignorecase="ignorecase"
cdUserId="cdUserId"
cdPassword="cdPassword"
pnodeUserId="pnodeUserId"
pnodePassword="pnodePassword">
</tns:user>
where:
• name is a pattern to match the MQMD user ID associated with the MFT transfer request.
– For a Windows node set the following authorities. This example is formatted with carriage returns
to aid readability:
– For a UNIX node set the following parameters in the userfile.cfg file:
pstmt.copy value: y
pstmt.upload value: y
pstmt.download value: y
pstmt.runjob value: y
pstmt.runtask value: y
cmd.submit value: y
pstmt.submit value: y
cmd.chgproc value: y
cmd.delproc value: y
cmd.flsproc value: y
cmd.selproc value: a
cmd.selstats value: a
cmd.trace value: y
snode.ovrd value: y
• cdPassword is the password associated with the user ID specified by the cdUserId attribute.
• You can optionally specify the pnodeUserId attribute. The value of this attribute is the user ID that
is used by the Connect:Direct node specified by the name attribute of <tns:pnode> element to
submit the Connect:Direct process. If you do not specify the pnodeUserId attribute, the
Connect:Direct node uses the user ID specified by the cdUserId attribute to submit the
Connect:Direct process.
• You can optionally specify the attribute pnodePassword. The value of this attribute is the password
associated with the user ID specified by the pnodeUserId attribute.
If no user element matches the MQMD user ID, the transfer fails.
3. Optional: You can include one or more <tns:snode> elements as child elements of the <tns:user>
element. The <tns:snode> element specifies credentials that are used by the Connect:Direct node
that is part of the Connect:Direct bridge. These credentials are the user ID and password that the
<tns:snode name="name"
pattern="pattern"
userId="userId"
password="password"/>
where:
• name is a pattern to match the name of the Connect:Direct node that is the source or destination of
the file transfer.
• pattern specifies whether the pattern specified for the name attribute is a wildcard expression or a
Java regular expression. The value of the pattern attribute can be either wildcard or regex. If this
attribute is not specified, the default is wildcard.
• userId is the user ID that is used by the Connect:Direct node specified by the name attribute of the
<tns:pnode> element to connect to a Connect:Direct node that matches the pattern specified by
the name attribute of <tns:snode>.
• password is the password associated with the user ID specified by the userId attribute.
If no <tns:snode> element matches the secondary node of the file transfer, this does not cause the
transfer to fail. The transfer is started and no user ID and password are specified for use with the
snode.
Results
When searching for a pattern match for user names or Connect:Direct node names the Connect:Direct
bridge agent searches from the start of the file to the end of the file. The first match that is found is the
one that is used.
Related tasks
“Configuring the Connect:Direct bridge” on page 149
Configure the Connect:Direct bridge to transfer files between a Managed File Transfer network and a
Connect:Direct network. The components of the Connect:Direct bridge are a Connect:Direct node and a
Managed File Transfer agent that is dedicated to communicating with that node. This agent is referred to
as the Connect:Direct bridge agent.
Related reference
“Connect:Direct credentials file format” on page 571
The ConnectDirectCredentials.xml file in the Managed File Transfer Agent configuration directory
defines the user names and credential information that the Connect:Direct agent uses to authorize itself
with a Connect:Direct node.
“fteCreateCDAgent: create a Connect:Direct bridge agent” on page 395
The fteCreateCDAgent command creates a Managed File Transfer Agent and its associated configuration
for use with the Connect:Direct bridge.
Procedure
For the Connect:Direct node, complete the following steps:
1. Generate a key and signed certificate for the Connect:Direct node.
You can do this by using the IBM Key Management tool that is provided with IBM MQ. For more
information, see Working with SSL or TLS.
2. Send a request to a certificate authority to have the key signed. You receive a certificate in return.
3. Create a text file; for example, /test/ssl/certs/CAcert, that contains the public key of your
certification authority.
4. Install the Secure+ Option on the Connect:Direct node.
If the node already exists, you can install the Secure+ Option by running the installer again, specifying
the location of the existing installation, and choosing to install only the Secure+ Option.
5. Create a new text file; for example, /test/ssl/cd/keyCertFile/node_name.txt.
6. Copy the certificate that you received from your certification authority and the private key, located
in /test/ssl/cd/privateKeys/node_name.key, into the text file.
The contents of /test/ssl/cd/keyCertFile/node_name.txt must be in the following format:
-----BEGIN CERTIFICATE-----
MIICnzCCAgigAwIBAgIBGjANBgkqhkiG9w0BAQUFADBeMQswCQYDVQQGEwJHQjES
MBAGA1UECBMJSGFtcHNoaXJlMRAwDgYDVQQHEwdIdXJzbGV5MQwwCgYDVQQKEwNJ
Qk0xDjAMBgNVBAsTBU1RSVBUMQswCQYDVQQDEwJDQTAeFw0xMTAzMDExNjIwNDZa
Fw0yMTAyMjYxNjIwNDZaMFAxCzAJBgNVBAYTAkdCMRIwEAYDVQQIEwlIYW1wc2hp
cmUxDDAKBgNVBAoTA0lCTTEOMAwGA1UECxMFTVFGVEUxDzANBgNVBAMTBmJpbmJh
ZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAvgP1QIklU9ypSKD1XoODo1yk
EyMFXBOUpZRrDVxjoSEC0vtWNcJ199e+Vc4UpNybDyBu+NkDlMNofX4QxeQcLAFj
WnhakqCiQ+JIAD5AurhnrwChe0MV3kjA84GKH/rOSVqtl984mu/lDyS819XcfSSn
cOOMsK1KbneVSCIV2XECAwEAAaN7MHkwCQYDVR0TBAIwADAsBglghkgBhvhCAQ0E
HxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFNXMIpSc
csBXUniW4A3UrZnCRsv3MB8GA1UdIwQYMBaAFDXY8rmj4lVz5+FVAoQb++cns+B4
MA0GCSqGSIb3DQEBBQUAA4GBAFc7klXa4pGKYgwchxKpE3ZF6FNwy4vBXS216/ja
8h/vl8+iv01OCL8t0ZOKSU95fyZLzOPKnCH7v+ItFSE3CIiEk9Dlz2U6WO9lICwn
l7PL72TdfaL3kabwHYVf17IVcuL+VZsZ3HjLggP2qHO9ZuJPspeT9+AxFVMLiaAb
8eHw
-----END CERTIFICATE-----
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,64A02DA15B6B6EF9
57kqxLOJ/gRUOIQ6hVK2YN13B4E1jAi1gSme0I5ZpEIG8CHXISKB7/0cke2FTqsV
lvI99QyCxsDWoMNt5fj51v7aPmVeS60bOm+UlGre8B/Ze18JVj2O4K2Uh72rDCXE
5e6eFxSdUM207sQDy20euBVELJtM2kOkL1ROdoQQSlU3XQNgJw/t3ZIx5hPXWEQT
rjRQO64BEhb+PzzxPF8uwzZ9IrUK9BJ/UUnqC6OdBR87IeA4pnJD1Jvb2ML7EN9Z
5Y+50hTKI8OGvBvWXO4fHyvIX5aslwhBoArXIS1AtNTrptPvoaP1zyIAeZ6OCVo/
SFo+A2UhmtEJeOJaZG2XZ3H495fAw/EHmjehzIACwukQ9nSIETgu4A1+CV64RJED
11. Import the public certificate of the certification authority into the truststore.
You can use the following command:
cdNodeProtocol=protocol
cdNodeTruststore=/test/ssl/fte/stores/truststore.jks
cdNodeTruststorePassword=password
In the example in this step, protocol is the protocol you are using, either SSL or TLS, and password is
the password that you specified when you created the truststore.
13. If you want two-way authentication, create a key and certificate for the Connect:Direct bridge agent.
a) Create a keystore and key.
You can use the following command:
c) Import the certificate you receive from the preceding step into the keystore. The certificate must
be in x.509 format.
You can use the following command:
cdNodeKeystore=/test/ssl/fte/stores/keystore.jks
cdNodeKeystorePassword=password
In the example in this step, password is the password that you specified when you created the
keystore.
Related tasks
“Configuring the Connect:Direct bridge” on page 149
Configure the Connect:Direct bridge to transfer files between a Managed File Transfer network and a
Connect:Direct network. The components of the Connect:Direct bridge are a Connect:Direct node and a
Managed File Transfer agent that is dedicated to communicating with that node. This agent is referred to
as the Connect:Direct bridge agent.
Procedure
1. Define the Connect:Direct process that you want the Connect:Direct bridge agent to call as part of the
transfer and save the process template in a file.
2. Open the MQ_DATA_PATH/mqft/config/coordination_queue_manager/agents/
cd_bridge_agent_name/ConnectDirectProcessDefinitions.xml file in a text editor.
3. Create a <processSet> element.
Results
When searching for a condition match, the Connect:Direct bridge agent searches from the start of the file
to the end of the file. The first match that is found is the one that is used.
Related tasks
“Configuring the Connect:Direct bridge” on page 149
Configure the Connect:Direct bridge to transfer files between a Managed File Transfer network and a
Connect:Direct network. The components of the Connect:Direct bridge are a Connect:Direct node and a
Managed File Transfer agent that is dedicated to communicating with that node. This agent is referred to
as the Connect:Direct bridge agent.
Related reference
“Connect:Direct process definitions file format” on page 576
The ConnectDirectProcessDefinitions.xml file in the Connect:Direct bridge agent configuration
directory specifies the user-defined Connect:Direct process to start as part of the file transfer.
“fteCreateCDAgent: create a Connect:Direct bridge agent” on page 395
Procedure
Scenario 1: Configuring the agent as an MSCS resource
• To configure the agent as an MSCS resource, complete the following steps:
a) Install Managed File Transfer locally on each machine in the cluster.
See Installing Managed File Transfer.
b) Create the agent on the primary machine in the cluster.
The agent should be configured to connect to the agent queue manager using the CLIENT transport.
Ensure that you create all of the objects on the queue manager for this agent. For information on
how to do this, see Setting up the agent.
c) Modify the agent to run as a Windows service, and configure it so that it does not start automatically
when Windows restarts by setting the Startup Type field for the agent service in the Windows
Services tool to Manual.
For more information, see Starting an MFT agent as a Windows service.
d) Repeat step “2” on page 159 and step “3” on page 159 of Scenario 1 on the secondary machine.
This ensures that the file structure for logs, properties, and so on, exists on the other machine in
the cluster. Note that there is no need to create the queue manager objects as in step “2” on page
159.
e) On the primary machine, add the agent as a 'Generic Service' under MSCS control.
To do this:
a. Right-click the cluster and select the Role -> Add Resource -> 'Generic Service'.
b. From the list of Windows services, select the agent service and complete the configuration
wizard by clicking Next.
The agent service is now added as an MSCS resource. If a failover occurs, then the agent service
will be started on the other machine.
Scenario 2: Configuring the agent queue manager and the agent as MSCS resources
• To configure the agent queue manager and the agent as MSCS resources, complete the following
steps:
a) Configure the agent queue manager to run as an MSCS resource.
For information on how to do this, see Putting a queue manager under MSCS control.
b) Create the agent on the primary machine in the cluster.
The agent should be configured to connect to the agent queue manager using the BINDINGS
transport. Ensure that you create all of the objects on the queue manager for this agent. For
information on how to do this, see Setting up the agent.
c) Modify the agent to run as a Windows service, and configure it so that it does not start automatically
when Windows restarts by setting the Startup Type field for the agent service in the Windows
Services tool to Manual.
Administering MFT
Use Managed File Transfer commands to administer Managed File Transfer. You can also use the IBM MQ
Explorer for some of the administrative tasks.
On UNIX, Linux, and Windows, you can configure an agent so that it continues running when
you log off from the system and can continue to receive file transfers.
On z/OS, you can configure the agent to start as a started task from JCL without the need for
an interactive session.
Procedure
• To start an agent from the command line, use the fteStartAgent command.
For more information, see “fteStartAgent” on page 516.
•
To configure an agent so that it continues running when you log off from the system:
– On Windows, configure the agent to run as a Windows service. For more information,
see “Starting an MFT agent as a Windows service” on page 161.
•
On z/OS, configure the agent to start as a started task from JCL without the need for an interactive
session.
For more information, see “Starting an MFT agent on z/OS” on page 164.
Procedure
1. If you are creating a Managed File Transfer agent, use the fteCreateAgent, fteCreateCDAgent, or
fteCreateBridgeAgent command. Specify the -s parameter to run the agent as a Windows
service. In the following example, the agent AGENT1 is created, which has an agent queue manager
QMGR1. The Windows service runs using a user name of fteuser, which has an associated password
ftepassword.
You can optionally specify a name for the service after the -s parameter. If you do not specify a name,
the service is named mqmftAgentAGENTQMGR, where AGENT is the agent name you specified and
QMGR is your agent queue manager name. In this example, the default name for the service is
mqmftAgentAGENT1QMGR1.
3. If you did not follow the previous steps to create an agent and instead want to configure an existing
agent to run as a Windows service, first stop your agent if it is running, and then modify its
configuration.
a) The following example uses an agent named AGENT1. Run the following command:
fteStopAgent AGENT1
b) Use the fteModifyAgent command to configure the agent to run as a Windows service:
For more information, see “fteModifyAgent: run an MFT agent as a Windows service” on page 479.
4. Start your agent using the fteStartAgent command. Alternatively, you can use the Windows
Services tool, which is available from Administrative Tools in the Control Panel, selected from the
Windows desktop start menu, to start the service.
fteStartAgent AGENT1
The service continues to run even if you log off Windows. To ensure that the service also restarts when
Windows restarts after a shutdown, the Startup Type field in the Windows Services tool is set to
Automatic by default. Change this to Manual if you do not want the service to restart when Windows
restarts.
5. Optional: To stop the agent, either use the fteStopAgent command or use the Windows Services tool.
For example, from the command line, run the following command:
fteStopAgent AGENT1
• When you run the fteStopAgent command as a service, the command always runs using the -i
parameter regardless of whether you specified this parameter. The -i parameter stops the agent
immediately without completing any transfers that are in progress. This is caused by a limitation of
the Windows service.
What to do next
If you have problems starting your Windows service, see “Guidance for running an MFT agent or logger as
a Windows service” on page 322. This topic also describes the location of the Windows service log files.
When you have created and configured an agent using one of these Managed File Transfer commands;
fteCreateAgent, fteCreateCDAgent, or fteCreateBridgeAgent, you can configure it to start
automatically during a reboot on UNIX machines by using a script file that simply executes:
Where mq_install_root is the root directory of the required Managed File Transfer installation, the
default is: /opt/mqm and agent_name is the name of the Managed File Transfer Agent to be started. The
usage of this script file varies depending on the specific UNIX operating system.
Solaris
On Solaris, follow these steps:
1. Run the following command, and keep track of the path returned:
which sh
#!/usr/bin/sh
su mqmft_user mq_install_root/bin/fteStartAgent agent_name
ln -s /etc/init.d/startmqmft /etc/rc3.d/S98startmqmft
The prefix S means default state Started for Solaris. 98 is a sequence number. The suffix is the
filename from init.d
HP-UX
On HP-UX, follow these steps:
1. Create a file called /sbin/init.d/mqmft with contents:
#!/bin/sh
su -l mqmft_user -c mq_install_root/bin/fteStartAgent agent_name
MQMFT=1
ln -s /sbin/init.d/mqmft /sbin/rc3.d/S84mqmft
Linux
For Linux systems there are multiple ways that you can start applications during the system boot process.
In general, consider following these steps:
1. Create a file called /etc/rc.mqmft with contents:
#!/bin/sh
su -l mqmft_user"-c mq_install_root/bin/fteStartAgent agent_name"
Where mqmft_user is the user ID under which the agent process is to run. This user ID must be a
member of the mqm group.
2. Make the file executable, for example:
mqmft:5:boot:/etc/rc.mqmft
Other ways to start an agent during boot on Linux include adding the script lines to the /etc/rc.d/
rc.local file, or on Linux SuSe, adding the script lines to the /etc/init.d/boot.local file. You
should select the method that works best for your environment. Here is some more information on other
ways to start an agent during startup on specific Linux distributions that are supported:
SLES 10 and 11
For SUSE Linux Enterprise Server (SLES) 10 and 11 systems, follow these steps:
1. As the system root user ID, create your own /etc/init.d/rc.rclocal file.
2. Add the following lines to the rc.rclocal file:
#!/bin/sh
### BEGIN INIT INFO
# Provides: rc.rclocal
# Required-Start: $network $syslog
# Required-Stop: $network $syslog
# Default-Stop: 0 1 2 6
# Description: MQMFT agent startup
### END INIT INFO
su -l mqmft_user"-c mq_install_root/bin/fteStartAgent agent_name"
A started task is used because it runs under a specific user ID and is not affected by users logging off.
adminGroup=MFTADMIN
Members of this group can then issue the fteStartAgent, fteStopAgent, and
fteSetAgentTraceLevel commands, and the fteShowAgentDetails command with the -d
parameter specified, for the agent that is running as a started task.
For more information, see the adminGroup property in “The MFT agent.properties file” on page 537.
As a Java application, an agent is a UNIX System Services application that you can run from JCL by using
the BFGAGSTP member, from a generated Managed File Transfer command PDSE library data set for an
agent. For more information about how to create an MFT command PDSE library data set, and customize
it for the required agent, see “Creating an MFT Agent or Logger command data set” on page 76.
Enable agent remote connections with IBM MQ Advanced for z/OS, Value Unit
Edition only
An MFT agent on z/OS, running under the product identifier (PID) of IBM MQ Advanced for z/OS VUE, can
connect to a queue manager on z/OS using a client connection.
Note that the PID under which the agent is running is displayed in the log at agent startup.
For details of IBM MQ products, their associated PID values, and export classifications, see IBM MQ
product identifiers and export information.
An MFT agent on z/OS, running under any other PID, can connect to a local queue manager using bindings
connection only.
An MFT agent on z/OS can connect only to a queue manager, also running on z/OS, regardless of the MFT
PID.
If an IBM MQ Advanced for z/OS VUE agent attempts to connect to a queue manager that is not running
on z/OS, the following BFGMQ1044E message is issued, and agent start-up is ended:
BFGMQ1044E: Agent client connection on z/OS must be to a queue manager on z/OS
Related reference
“Stopping an MFT agent on z/OS” on page 216
If you are running a Managed File Transfer Agent on z/OS as a started task from JCL, the agent accepts
the z/OS operator commands MODIFY and STOP, in addition to the fteStopAgent command.
“The MFT agent.properties file” on page 537
Procedure
1. In the Navigator view, click Managed File Transfer. Managed File Transfer Central is displayed in the
Content view.
2. All of your coordination queue managers are displayed in the Navigator view. Expand the name of the
coordination queue manager that the agent you want to use for the transfer is registered against. If you
are currently connected to a coordination queue manager other than the one you want to use for the
transfer, right-click that coordination queue manager name in the Navigator view and click Disconnect.
Then right-click the name of the coordination queue manager you want to use and click Connect.
3. Start the Create New Managed File Transfer wizard by using either of the following methods:
a) Right-click the name of any of the following nodes in the Navigator view: the relevant coordination
queue manager, Transfer Templates, Transfer Log, or Pending Transfers. Then click New Transfer
to start the wizard.
b) Click File > New > Other > Managed File Transfer Wizards > New Transfer Wizard
4. Follow the instructions on the wizard panels. There is also context-sensitive help provided for each
panel. To access the context-sensitive help on Windows, press F1. On Linux, press Ctrl+F1 or Shift
+F1.
To submit this format of transfer definition file you must specify the source and destination agents on the
command line:
fteCreateTransfer -sa AGENT1 -sm agent1qm -da AGENT2 -dm agent2qm -td
c:\definitions\example1.xml
The following example is a transfer definition file format that specifies all information required for a
transfer:
You can generate a file with this format by using the -gt parameter on the fteCreateTransfer
command. When you submit a transfer definition file with this format, you do not need to specify anything
else on the command line:
You can override the source and destination agent information about the command line by passing in the
normal parameters in addition to the transfer definition file. For example:
This example uses the command-line options to override the destination agent defined inside the transfer
definition file with AGENT9 and the destination queue manager defined in the transfer definition file as
agent9qm.
Both of the formats described can contain one or more <item> elements. For further information about
the <item> element, see File transfer request message format. Each of these transfer items defines a
source and destination file pair with additional attributes to control the behavior of the transfer. For
example, you can specify the following behavior:
You can use items to transfer a file from a distributed system to a z/OS system:
This example transfers the file textTransferTest.txt from the source agent to the data
set //TEXT.TRANS.TEST on the destination agent in text mode. This transfer converts the source data
from the default encoding of the source agent (no source encoding attribute is specified) to code page:
IBM-1047.
Procedure
1. In the Navigator view, click Managed File Transfer. Managed File Transfer Central is displayed in the
Content view.
2. All of your coordination queue managers are displayed in the Navigator view. Expand the name of the
coordination queue manager that the agent you want to use for the transfer is registered against. If you
are currently connected to a coordination queue manager other than the one you want to use for the
transfer, right-click that coordination queue manager name in the Navigator view and click Disconnect.
Then right-click the name of the coordination queue manager you want to use and click Connect.
3. Start the Create New Managed File Transfer wizard using either of the following methods:
a) Right-click the name of any of the following nodes in the Navigator view: the relevant coordination
queue manager, Transfer Templates, Transfer Log, or Pending Transfers. Then click New Transfer
to start the wizard.
b) Click File > New > Other > Managed File Transfer Wizards > New Transfer Wizard
4. Follow the instructions on the wizard panels. Ensure that you select the Enable schedule transfer
check box and enter your schedule details on the Schedule tab. Scheduled file transfers start within a
minute of the schedule start time, if there are no problems that might affect the transfer. For example,
there might be issues with your network or agent that prevent the scheduled transfer starting. There is
context-sensitive help provided for each panel. To access the context-sensitive help on Windows,
press F1. On Linux, press Ctrl+F1 or Shift+F1.
Results
For information about the messages involved in scheduled file transfers, see Message formats for
scheduled transfers.
Procedure
1. Expand Managed File Transfer in the Navigator view. Managed File Transfer Central is displayed in
the Content view.
2. All of your coordination queue managers are displayed in the Navigator view. Expand the name of the
coordination queue manager that you have used for the scheduled transfer. If you want to change
which coordination queue manager you are connected to, right-click the name of the coordination
queue manager you want to use in Navigator view and click Connect.
3. Click Pending Transfers. The Pending Transfers window is displayed in the Content view.
4. The Pending Transfers window displays the following details about your scheduled file transfers:
a) Name The number of the scheduled file transfer. This number is automatically assigned.
b) Source The name of the source agent.
c) Source File The name of the file to be transferred on its host system.
d) Destination The name of the destination agent.
e) Destination File The name of the file after it is transferred to the destination system.
f) Scheduled Start (selected time zone) The time and date that the file transfer is scheduled to start
in the administrator's selected time zone. To change the time zone displayed, click Window >
Preferences > IBM MQ Explorer > Managed File Transfer and select an alternative time zone from
the Time zone: list. Click OK.
g) Repeat Every If you have chosen to repeat the scheduled transfer, the specified interval that you
want to repeat the transfer, expressed as a number.
h) Repeat Type If you have chosen to repeat the scheduled transfer, the type of repeat interval you
have specified for the file transfer. The type can be one of the following values: minutes, hours,
days, weeks, months, or years.
i) Repeat Until If you have chosen to repeat the scheduled transfer, the details of when you want the
repeating file transfer to stop. For example, a specified date and time, or after a specified number of
occurrences.
Results
To refresh what is displayed in the Pending Transfers window, click the Refresh button on the Content
view toolbar.
To cancel a pending file transfer, right-click the particular transfer and click Cancel. Canceling a transfer
completely discards the file transfer request.
Procedure
1. In the Navigator view, click Managed File Transfer. Managed File Transfer Central is displayed in the
Content view.
2. All of your coordination queue managers are displayed in the Navigator view. Expand the name of the
coordination queue manager that you have used for the scheduled transfer. If you want to change
which coordination queue manager you are connected to, right-click the name of the coordination
queue manager you want to use in Navigator view and click Connect.
3. Start the Create New Managed File Transfer wizard by using either of the following methods:
a) Right-click the name of any of the following nodes in the Navigator view: the relevant coordination
queue manager, Transfer Templates, Transfer Log, or Pending Transfers. Then click New Transfer
to open the wizard.
b) Click File > New > Other > Managed File Transfer Wizards > New Transfer Wizard
4. Follow the instructions on the wizard panels. Ensure that you select the Enable triggered transfer
check box on the Triggers tab and complete the fields on that tab to set up triggering. There is context-
sensitive help provided for each panel. To access the context-sensitive help on Windows, press F1. On
Linux, press Ctrl+F1 or Shift+F1.
Procedure
After you have started a new file transfer using IBM MQ Explorer or the command line, you can monitor
the progress of your transfer in the Current Transfer Progress tab. The following information is displayed
for each transfer in progress:
a) Source. The name of the agent used to transfer the file from the source system.
b) Destination. The name of the agent used to receive the file at the destination system.
c) Current file. The name of the file currently being transferred. The part of the individual file that has
already been transferred is displayed in B, KiB, MiB. GiB, or TiB along with total size of the file in
parentheses. The unit of measurement displayed depends on the size of the file.
B is bytes per second. KiB/s is kibibytes per second, where 1 kibibyte equals 1024 bytes. MiB/s is
mebibytes per second, where 1 mebibyte equals 1 048 576 bytes. GiB/s is gibibytes per second where
1 gibibyte equals 1 073 741 824 bytes. TiB/s is tebibytes per second where 1 tebibyte equals 1 099
511 627 776 bytes.
d) File number. If you are transferring more than one file, this number represents how far through the
total group of files the transfer is.
e) Progress. The progress bar shows how complete the current file transfer is as a percentage.
f) Rate. The rate the file is being transferred in KiB/s (kibibytes per second, where 1 kibibyte equals
1024 bytes.)
g) Started (selected time zone). The time that the file transfer started, presented in the selected time
zone of the administrator. To change the time zone displayed, click Window > Preferences > IBM MQ
Explorer > Managed File Transfer and select an alternative time zone from the Time zone: list. Click
OK.
If the transfer enters a recovery state while transferring the file, the started time updates to reflect the
time that the file transfer resumed.
Results
This tab regularly refreshes its information automatically, but to force a refreshed view of what is
displayed in the Current Transfer Progress tab, click Refresh on the Content view toolbar.
To delete file transfers from the Current Transfer Progress tab, click Remove completed transfers on
the Content view toolbar. Clicking this button removes file transfer details from the tab only; it does not
stop or cancel a current or scheduled transfer.
If you want to return to the Current Transfer Progress tab after closing it, you can display the tab by
clicking Window > Show View > Other > Other > Managed File Transfer - Current Transfer Progress.
Click OK.
Procedure
1. Start the local IBM MQ Explorer.
2. When IBM MQ Explorer is loaded, right-click on the Managed File Transfer folder and select New
configuration.
3. Proceed through the wizard, selecting the Coordination and Commands queue manager, then define a
name for the configuration.
4. Click finish to complete the definition.
5. When the definition is finished, right-click on the definition and select Connect.
Results
Now start IBM MQ Explorer and use it to monitor transfer activity for the Managed File Transfer network
associated with the coordination queue manager.
Related tasks
“Monitoring file transfers that are in progress” on page 171
You can monitor a file transfer that is in progress using the Managed File Transfer - Current Transfer
Progress tab in IBM MQ Explorer. This file transfer can be one started from either IBM MQ Explorer or the
Procedure
1. Expand Managed File Transfer in the Navigator view and then expand the name of the coordination
queue manager that you want to view the transfer log for.
2. Click Transfer Log in the Navigator view. The Transfer Log is displayed in the Content view.
3. The Transfer Log window displays the following details about your file transfers:
a) Source The name of the agent on the system where the source file is located.
b) Destination The name of the agent on the system you want to transfer the file to.
c) Completion State The status of the file transfer. The state can be one of the following values:
"Started", "In progress", "Successful", "Partially Successful", "Cancelled", or "Failed".
d) Owner The user ID on the host that submitted the transfer request.
e) Started (selected time zone) The time and date that the file transfer request was accepted by the
Managed File Transfer agent, presented in the selected time zone of the administrator. To change
the time zone displayed, click Window > Preferences > IBM MQ Explorer > Managed File Transfer
and select an alternative time zone from the Time zone: list. Click OK.
f) State Recorded (selected time zone) (This column is not displayed by default. You can choose to
display the column by using the Configure Transfer Log Columns window.) The time and date
that the completion state was recorded, in the time zone selected by the administrator.
g) Job Name An identifier specified by the user by using the -jn parameter of fteCreateTransfer
or in an Ant script
h) Transfer ID The unique identifier for the file transfer.
i) Connect: Direct Details about Process Number, Process Name, Primary Node, Secondary Node,
Source Type and Destination Type are listed.
Results
Note: The internal format of the Transfer Log was changed in IBM MQ 8.0.0 Fix Pack 1 for APAR IC99545.
As a result, if an IBM MQ Explorer is upgraded to 8.0.0.1 or later, and then restored to 8.0.0.0, no audit
XML is displayed for transfers that took place while IBM MQ Explorer was at 8.0.0.1. The XML panel in the
Properties window for these transfers will contain an empty text box.
To view further details about a completed transfer, expand the transfer that you are interested in by
clicking the plus sign (+). You can then see all of the source and destination file names included in that
transfer. However, if the transfer is currently in progress and consists of many files, you can view only the
files that have already been transferred so far.
To refresh what is displayed in the Transfer Log, click the Refresh button on the Content view toolbar.
The file transfer information in the Transfer Log remains in the log after you stop and restart the IBM MQ
Explorer. If you want to delete all completed file transfers from the log, click Remove Completed
Transfers on the Content view toolbar.
To customize which columns are displayed in the Transfer Log, use Configure Transfer Log Columns .
Use the following steps to start and use the Configure Transfer Log Columns window.
Procedure
1. Ensure that you have the Transfer Log open in the Content view. Click Configure Transfer Log
Columns on the Content view toolbar. The Configure Transfer Log Columns window opens.
2. To customize your view of the Transfer Log, select or clear individual check boxes for the columns you
want to show or hide. You can click Select All, then OK to select all of the check boxes or Deselect All,
then OK to clear all of the check boxes.
Related tasks
“Monitoring file transfers that are in progress” on page 171
You can monitor a file transfer that is in progress using the Managed File Transfer - Current Transfer
Progress tab in IBM MQ Explorer. This file transfer can be one started from either IBM MQ Explorer or the
command line. The tab also displays the progress of scheduled transfers at the point the scheduled
transfers start.
“Viewing the status of file transfers in the Transfer Log” on page 174
From IBM MQ 9.0.3, Managed File Transfer includes resource monitor logging. For more
information, see “Logging MFT resource monitors” on page 195.
Resource monitoring is not supported on protocol bridge agents or Connect:Direct bridge agents.
Monitors
The resource monitor is associated with a Managed File Transfer agent, and is only active when that agent
is started. When the monitoring agent stops, so does the monitor. If the agent is already started when the
monitor is created, the monitor starts immediately. The monitoring agent must also be the source agent of
the task that is initiated by the monitor.
Monitor names must be unique within their agent. The monitor name must be a minimum of one character
in length and must not contain asterisk (*), percent (%) or question mark (?) characters. The case of
supplied monitor names is ignored and the monitor name is converted to uppercase. If you try to create a
monitor with a name that is already present, the request is ignored and the attempt is logged to the
monitor log topic.
There is no restriction on the number of monitors that can be created on an agent, and all run with the
same priority. Consider the implications of overlapping monitored resources, conflicting trigger conditions
and how frequently the resources are polled.
Monitors look at the contents of resources after every poll interval period. The contents of the resource
are compared with the trigger conditions and if those conditions are satisfied, the task associated with the
monitor is called.
The task is started asynchronously. If there is a condition match, and the task is started, the monitor
continues to poll for further changes to the resource contents. So for example, if a match occurred
because a file called reports.go arrived in a monitored directory, the task would be started once. At the
next poll interval, even if the file still exists, the task is not started again. However, if the file is deleted and
then placed in the directory again, or the file is updated (such that the last modified date attribute is
changed), the next trigger condition check causes the task to be called again.
Resources
Monitors in Managed File Transfer can poll the contents of directories or nested directory structures. By
default, the specified directory is monitored. To also examine subdirectories set the recursion level in the
fteCreateTransfer command.
Monitors in Managed File Transfer can poll the contents of IBM MQ queues. You can specify only one
monitor per queue. If you specify more than one monitor to poll an IBM MQ queue, unpredictable
behavior occurs.
Monitoring data sets is not supported.
Tasks
Managed File Transfer supports the following two types of task that you can configure to be started by
resource monitors:
• File transfer
• Command
File transfer tasks are defined in the same way as any other file transfer. A useful way to generate the task
XML required by a monitor is to run the fteCreateTransfer command with the -gt parameter. This
command generates a task definition as an XML document, including the transfer specification. You then
pass the name of the task XML document as the value for the -mt parameter on the fteCreateMonitor
command. When the fteCreateMonitor is run, it reads the task XML document. After the
fteCreateMonitor is run, any changes that are made to the task XML file are not used by the monitor.
Command tasks can run Ant scripts, call executable programs, or run JCL jobs. For more information, see
Configuring monitor tasks to invoke commands and scripts.
When using a file transfer task, you can select how many trigger conditions are batched into a task. The
default is for one trigger condition to start one task. You can run the fteCreateMonitor command with the
-bs option to select the number of trigger conditions that are batched together into one task.
• From IBM MQ 9.0.5, use the fteListMonitor command with the -od to export multiple
resource monitor definitions to a specified directory. Each resource monitor definition is saved to
Example
The following example shows an example task definition XML document saved as cleanuptask.xml,
which uses the <managedCall> element to call an Ant script called RunCleanup.xml. The
RunCleanup.xml Ant script must be located on the commandPath of the monitoring agent.
The <agent> element specifies the Managed File Transfer Agent that is configured with the named Ant
script on its commandPath.
The <call><command>... structure defines the executable or script you want to run. The command
takes an optional type attribute that can have one of the following values:
antscript
Run an Ant script in a separate JVM.
executable
Invoke an executable program.
jcl
Invoke a JCL job.
fteCreateMonitor -ma AGENT1 -mm QM1 -md /monitored -mn MONITOR01 -mt
/tasks/cleanuptask.xml -pi 30 -pu seconds -tr match,*.go
The path to the transfer definition XML document must be on the local file system that you run the
fteCreateMonitor command from (in this example /tasks/cleanuptask.xml). The
cleanuptask.xml document is used to create the resource monitor only. Any tasks that the
cleanuptask.xml document references (Ant scripts or JCL jobs) must be in the command path of the
monitoring agent. When the monitor trigger condition is satisfied, any variables in the task definition XML
are substituted with actual values from the monitor. So for example ${FilePath} is replaced in the request
message sent to the agent with /monitored/cleanup.go. The request message is put on the agent
command queue. The command processor detects that the request is for a program call and starts the
specified program. If a command of type antscript is called, a new JVM is started and the Ant task runs
under the new JVM. For more information about using variable substitution, see Customizing tasks with
variable substitution.
Related concepts
“Customizing MFT tasks with variable substitution” on page 185
Procedure
1. Replace the <managedTransfer> start and end tags with <managedCall> tags.
2. Remove any <schedule> element and child nodes.
3. Replace the <sourceAgent> start and end tags with <agent> to match the monitoring agent
configuration details.
4. Remove <destinationAgent> and <trigger> elements.
5. Remove <item> elements.
6. Insert a new <call>...</call> structure within the <transferSet> element. This structure
contains the command definition as shown in the following example:
<call>
<command name="RunCleanup.xml" type="antscript" retryCount="2"
retryWait="30" successRC="0">
<target>check_exists</target>
<target>copy_to_archive</target>
<target>rename_temps</target>
<target>delete_files</target>
<property name="trigger.filename" value="${FileName}"/>
<property name="trigger.path" value="${FilePath}"/>
</command>
</call>
Example
You can also retain the <managedTransfer> element including all the file transfer details, and insert up
to four command calls. In this case you insert any selection of the following call elements between the
<metaDataSet> and <item> elements:
preSourceCall
Call a program on the source agent before starting the transfer.
⋮
<transferSet priority="1">
<metaDataSet>
<metaData key="key1">value1</metaData>
</metaDataSet>
<preSourceCall>
<command name="send.exe" retryCount="0" retryWait="0" successRC="0"
type="executable">
<argument>report1.pdf</argument>
<argument>true</argument>
</command>
</preSourceCall>
<postSourceCall>
<command name="//DO_IT.JCL" retryCount="0" retryWait="0" successRC="0"
type="jcl">
<argument>argument</argument>
</command>
</postSourceCall>
<preDestinationCall>
<command name="ant_script.xml" retryCount="0" retryWait="0" successRC="0"
type="antscript">
<target>step1</target>
<property name="name" value="value"/>
</command>
</preDestinationCall>
<postDestinationCall>
<command name="runit.cmd" retryCount="0" retryWait="0" successRC="0"/>
</postDestinationCall>
<item checksumMethod="none" mode="binary">
⋮
You can mix different types of command into the transfer. Argument, target, and property elements are
optional.
Procedure
1. Create the task XML that defines the task that the monitor performs when it is triggered.
The variables that are replaced with the values associated with the trigger file are highlighted in bold.
This task XML is saved to the file /home/USER1/task.xml
2. Create a resource monitor to monitor the directory /test/monitored.
Submit the following command:
3. A user or program writes the file jump.zip to the directory /test/monitored, then writes the file
jump.go to the directory.
4. The monitor is triggered by the existence of the file jump.go. The agent substitutes the information
about the trigger file into the task XML.
This results in the task XML being transformed to:
Results
The transfer defined by the task XML is performed. The jump.zip file is read from the /test/
monitored directory by AGENT_HOP and is transferred to a file called /out/jump.zip located on the
system where AGENT_SKIP is running.
Procedure
Type the following command:
The monitor checks the queue every five minutes to see if the condition completeGroups is true. If there
are one or more complete groups on the queue, the monitor runs the task defined in the task.xml file
once for each complete group.
What to do next
Do not create more than one resource monitor to monitor an individual queue. If you do then
unpredictable behavior occurs.
Variable names must be preceded by a dollar sign ($) character and enclosed in braces, {}. For example, $
{FilePath} is replaced with the fully qualified file path of the matching trigger file.
There are two special keywords that can be applied to variable names to provide further refinement.
These are:
token
The token index to substitute (starting at 1 from the left and starting at -1 from the right)
separator
A single character to tokenize the variable value. The default is the forward slash character (/), but the
separator can be any valid character that can appear in the variable value.
If the separator keyword is specified in a variable name, the variable value is split into tokens according to
the separator character.
The value that is assigned to the token keyword is used as an index to select which token to use to replace
the variable name. The token index is relative to the first character in the variable, and starts at 1. If the
token keyword is not specified, the entire variable is inserted.
Variable names are not case-sensitive.
Any values that are substituted into an agent name in the message XML are treated in a not case-sensitive
way. All Managed File Transfer Agent names are uppercase. If the value Paris is substituted into an
agent attribute in the message XML, this value is interpreted as a reference to the agent PARIS.
Related concepts
“Examples: Variable substitution” on page 187
Examples of variable substitution using XML and IBM MQ Explorer.
Related reference
“What to do if variable substitution causes multiple files to go to a single file name” on page 326
For Managed File Transfer, if you are monitoring a directory and transferring multiple files from a source to
a destination location and you are using ${FileName} variable substitution, you must test the variable
substitution results. The results need to be tested because the use of variable substitution might cause
unexpected combinations of file transfer commands to be invoked.
The variables that are used for substitution are only available for positive trigger conditions. Only match
and fileSize trigger conditions cause variables to be substituted. If a noMatch condition is used, and
there are substitution variable names in the task definition, the task is not called, and the monitor raises a
return code of 103 and error message BFGDM0060E.
Example 1
In order to simply transfer the source file to another location when a trigger condition is met, the $
{FilePath} variable can be used:
• Set the source File name to be ${FilePath}.
• From the dropdown menu of Type for the destination, select Directory.
• Set the destination File name to be the location to which you wish the source file to be transferred, for
example, this could be C:\MFT\out\.
Example 2
In order to transfer the source file to another location and change the extension of the file, the $
{FileName} variable can be used in conjunction with the ${FilePath} variable:
In the following example it is assumed that the file path of the source file is equal to C:\MONITOR
\REPORTS\Paris\Report2009.doc:
• Set the source File name to be ${FilePath}.
• Set the destination File name to be the location to which you wish the source file to be transferred,
followed by ${FileName{token=1}{separator=.}}, followed by the new extension of the file. For
example, this could be C:\MFT\out\${FileName{token=1}{separator=.}}.rpt, which would
equate to C:\MFT\out\Report2009.rpt with the source file name.
Example 3
In order to use part of the file path of the source file to determine the destination of the transfer, the $
{FilePath} variable can be used in conjunction with token and separator specifications.
In the following example it is assumed that the file path of the source file is equal to C:\MONITOR
\REPORTS\Paris\Report2009.doc.
It is possible to use part of the source file path to determine the destination of the file. Using the file path
example of C:\MONITOR\REPORTS\Paris\Report2009.doc, if the file were to be transferred to a
folder depending upon the location of the source file, that is, Paris in this example, then the following
could be done:
• Set the source File name to be ${FilePath}.
• Set the destination File name to be the destination to where the folders for each location are situated,
and then append the destination part of the file path and the file name. For example, this could be
C:\MFT\out\${FilePath{token=-2}{separator=\}}\${FileName}, which would equate to
C:\MFT\out\Paris\Report2009.doc with the source file name.
Related concepts
“Customizing MFT tasks with variable substitution” on page 185
Procedure
1. Create the task XML that defines the task that the monitor performs when it is triggered.
The variables that are replaced with the values of IBM MQ message headers are highlighted in bold.
This task XML is saved to the file /home/USER1/task.xml
2. Create a resource monitor to monitor the queue START_QUEUE.
Submit the following command:
usr.fileName=larmer
usr.toAgent=AGENT_VIOLET
4. The monitor is triggered when the complete group is written. The agent substitutes the IBM MQ
message properties into the task XML.
This results in the task XML being transformed to:
Results
The transfer that is defined by the task XML is performed. The complete group of messages that are read
from the START_QUEUE by AGENT_VENUS is written to a file called /reports/larmer.rpt on the
system where AGENT_VIOLET is running.
What to do next
Transferring each message to a separate file
If you want to monitor a queue and have every message transferred to a separate file, you can use a
similar technique to the one described previously in this topic.
1. Create the monitor as described previously, specifying the -tr completeGroups parameter on the
fteCreateMonitor command.
2. In the task XML specify the following:
Example
The following example defines a monitor to trigger on a file that ends in trig and reads the file paths in
that file.
fteCreateTransfer -gt task.xml -sa SrcAgent -da DestAgent -dd /file/destdir ${contentSource}
fteCreateMonitor -mn TrigMonitor -md /home/trigdir -mt task.xml -ma SrcAgent -tr "match,*.trig"
-tc
The fteCreateTransfer command creates a file that is called task.xml for a single file with a source
file path of ${sourceContent}. For example:
The fteCreateMonitor command scans for files that end in trig in the /home/trigdir directory and
uses the contents to create a single transfer request that is based on the task.xml for all paths in that
trigger file. The format of the trigger file must be one file path (source only) on each line with no comma
separator. For example:
/home/file/first.txt
/home/file/second.txt
/home/different/third.txt
⋮
All files are delivered to the /file/destdir directory with its file name and not its file path, that is, /
home/file/first.txt is delivered to /file/destdir/first.txt.
Alternatively, if you change the -dd /file/destdir parameter in the fteCreateTransfer command
to -df ${contentDestination} and the format of the content of a trigger file to source file
path,destination file path, you can define different destination paths for the same destination agent. For
example:
/home/file/first.txt,/home/other/sixth.txt
Advanced options
You can change the default line format for the content of the trigger file by using the -tcr regex
parameter. Supply a regular expression that matches the required line format and supplies either one or
two capture groups. The first capture group is the source and the second, optional, capture group is the
destination. For example:
• The source and destination path are separated by a hyphen:
((?:[^-])+)-((?:[^-])+)
In this example, the separator is defined in three locations and all three instances of the hyphen, -, can
be changed to any character. Ensure that you escape any special characters.
• The source and destination paths are separated by a comma with trailing spaces. Comments that are
indicated by a number sign (#) are ignored.
((?:[^,])+),((?:[^,])+) *(?:#.*)+
File paths cannot contain the number sign (#). Typically an entry is as follows: /home/source/
from.txt,/home/destination/to.txt # some comment.
If you use the -tcr parameter, ensure that the regular expression is well designed and tested so that the
expression can detect errors and correctly parse the trigger files.
You can reverse the order of the capture by using the -tcc destSrc parameter. If you specify this
parameter, the first capture group is the destination file path and the second group is the source file path.
Examples
The following example is a basic content trigger where the contents of a trigger file has a source file path
only:
fteCreateTransfer -gt task.xml -sa SrcAgent -da DestAgent -dd /file/destdir ${sourceContent}
fteCreateMonitor -mn TrigMonitor -md /home/trigdir -mt task.xml -ma SrcAgent -tr "match,*.trig"
-tc
A trigger file with reversed file paths (destination then source) and a separator of comma ",".
The -tcr parameter defines two capture groups of a sequence of any characters that are separated by a
space character. The -tcc destSrc parameter and option indicate that the capture groups are to be
processed as destination then source.
For some example output of a resmoneventsN.log file, see.“What to do if your MFT directory resource
monitor is not triggering files” on page 312.
The following table lists the type of events the resource monitor writes to the log file. The third column
describes the log level needed to capture each event where the lowest level is INFO and highest is
VERBOSE..
Note that setting a higher log level, also writes lower level events. For example, setting log level to
MODERATE also writes INFO level events, but not VERBOSE level events.
Procedure
• To use the fteSetAgentLoglevel to turn resource monitor logging on and off, see
fteSetAgentLogLevel for a description of the logMonitor parameter, and examples of how you use
the different options.
• To use the agent.properties file to control resource monitor logging, see “The MFT
agent.properties file” on page 537 for a description of the additional properties that allow you to carry
out the following logging activities:
– Turn logging on or off
– Limit the size of each log file
– Limit the number of logs that resource monitors can generate
Example
The following sample message sets verbose level logging for agent HA2, on queue manager MFTDEMO:
<?xml version="1.0"?>
<log:log version="6.00"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:log="http://www.ibm.com/log">
<log:originator>
<log:request>
<log:hostName>192.168.7.1</log:hostName>
<log:userID>johndoe</log:userID>
</log:request>
</log:originator>
Related reference
fteSetAgentLogLevel command
Use the fteSetAgentLogLevel command to enable or disable diagnostic information logging for file
transfers between a Managed File Transfer protocol bridge agent and FTP/SFTP/FTPS file servers.
“The MFT agent.properties file” on page 537
Each Managed File Transfer Agent has its own properties file, agent.properties, that must contain the
information that an agent uses to connect to its queue manager. The agent.properties file can also
contain properties that alter the behavior of the agent.
From IBM MQ 9.0.5, the -od parameter is added to the fteListMonitors command. By
specifying this parameter, you can back up more than one resource monitor at a time by exporting their
definitions in bulk to a specified directory. Each resource monitor definition is saved to a separate XML file
with a name in the format agent name.monitor name.xml.
The -od parameter is particularly useful if you have a large number of resource monitors
that you want to back up because you need to run the fteListMonitors -od command once only,
instead of having to run the fteListMonitors -ox command separately for each resource definition,
or use a separate script to run the fteListMonitors -ox command for each resource monitor.
Procedure
• To back up the definition of one resource monitor by exporting it to an XML file, use either of the
following commands:
– The fteCreateMonitor command with the -ox parameter.
– The fteListMonitors command with the -ox parameter.
When you are using the -ox parameter, you must also specify the -ma and -mn parameters, as shown
in the following example:
•
To back up multiple resource monitor definitions by exporting them to XML files in a specified
directory, use the fteListMonitor command with the -od parameter as shown in the following
example:
You must specify a valid target directory when you are backing up resource monitors in bulk. Not
specifying a target path results in an error message as shown in the following example:
BFGCL0762E: Output directory not specified. Rerun the command specifying a valid path.
The -od parameter must not be combined with the -ox parameter, otherwise the following error
message is displayed:
BFGCL0761E: It is not valid to specify both the '-od' and '-ox' parameters together.
You can define a particular set of resource monitors to include in the backup. For instance, by using the
-ma parameter to specify the name of an agent, you can back up all the resource monitors for that
agent, as shown in the following example:
You can also use wildcard matching by including an asterisk character (*) character when defining a
pattern to use for matching agent names or monitor names, or both. The following example backs up
all the resource monitors that have names matching a specified pattern and that are in an agent with a
name matching a specified pattern:
While the command is running, it displays the following progress report messages:
A total of number matching resource monitor definitions found.
index of number resource monitor definitions saved to file system.
If you are using the verbose option, the running total is still displayed, but instead of displaying
index of number resource monitor definitions saved to file system
the command displays the name of the monitor definition being saved, for example:
BFGCL0762I: Definition of monitor ‘FILEMON’ of agent ‘XFERAGENT’ saved as
FILEMON.XFERAGENT.XML to file system.
•
To back up one resource monitor for a particular agent by exporting it to an XML file in a specified
directory, use the fteListMonitor command with the -od parameter:
Using the -od parameter to back up a single resource monitor is similar to using the -ox parameter,
except that the output file name is in the format agent name.monitor name.xml.
• To restore resource monitor definitions from a backup, use the fteCreateMonitor command with
the -ix parameter as shown in the following example:
For more examples of how to use the -od parameter, see “fteListMonitors: list MFT resource monitors”
on page 465.
Related reference
“fteCreateMonitor: create an MFT resource monitor” on page 405
The fteCreateMonitor command creates and starts a new resource monitor from the command line.
You can monitor a resource (for example, the contents of a directory) by using Managed File Transfer so
that when a trigger condition is satisfied, a specified task, such as a file transfer, is started.
“fteListMonitors: list MFT resource monitors” on page 465
Procedure
1. Expand Managed File Transfer in the Navigator view. Managed File Transfer Central is displayed in
the Content view.
2. All of your coordination queue managers are listed in the Navigator view. Expand the name of the
coordination queue manager that you have used for the scheduled transfer. If you want to change
which coordination queue manager you are connected to, right-click the name of the coordination
queue manager you want to use in Navigator view and click Connect.
3. Click Transfer Templates. The Transfer Templates window is displayed in the Content view.
4. The Transfer Templates window lists the following details about your file transfers:
a) Name The name of your file transfer template.
b) Source The name of the agent used to transfer the file from the source system.
c) Source File The name of the file to be transferred on its host system.
Expand the transfer template information to view this field.
d) Destination The name of the agent used to receive the file at the destination system.
e) Destination File The name of the file after it is transferred to the destination system.
Expand t the transfer template information to view this field.
f) Scheduled Start (selected time zone) The time and date that the file transfer is scheduled to start
in the time zone used by the administrator. To change the time zone displayed, click Window >
Preferences > IBM MQ Explorer > Managed File Transfer and select an alternative time zone from
the Time zone: list. Click OK.
g) Trigger Events The type of event that triggers the file transfer to start. The type can be one of the
following values: exists, does not exist, or exceeds.
Results
To refresh what is displayed in the Transfer Templates window, click the Refresh button on the
Content view toolbar.
To submit a transfer template and start the transfer defined in the template, right-click the template name
and click Submit.
To change a transfer template, right-click the template name and click Edit. All files included in the
original template are listed as part of a transfer group, even if they were not included as part of a group in
the original template. If you want to remove a file from the template you must select the file specification
Procedure
1. In the Navigator view, click Managed File Transfer. Managed File Transfer Central is displayed in the
Content view.
2. All of your coordination queue managers are displayed in the Navigator view. Expand the name of the
coordination queue manager that you have used for the scheduled transfer. If you want to change
which coordination queue manager you are connected to, right-click the name of the coordination
queue manager you want to use in Navigator view and click Connect.
3. Start the Create New Template for Managed File Transfer wizard by right-clicking Transfer
Templates and then clicking New Template.
4. Follow the instructions on the wizard panels. There is context-sensitive help provided for each panel.
To access the context-sensitive help on Windows, press F1. On Linux, press Ctrl+F1 or Shift+F1.
If you have created a template that contains all the required transfer details, ensure that you select the
Save transfer settings as a template check box on the Transfer Summary page if this check box is
Related tasks
“Working with file transfer templates” on page 199
You can use file transfer templates to store common file transfer settings for repeated or complex
transfers. Either create a transfer template from the command line by using the fteCreateTemplate
command or use the IBM MQ Explorer to create a transfer template by using the Create New Template
for Managed File Transfer wizard, or save a template while you are creating a file transfer by selecting
the Save transfer settings as a template check box. The Transfer Templates window displays all of the
transfer templates that you have created in your Managed File Transfer network.
Related reference
“fteCreateTemplate: create new file transfer template” on page 412
The fteCreateTemplate command creates a file transfer template that you can keep for future use.
The only required parameter is the -tn (template_name) parameter. All other parameters are optional,
although if you specify a source file specification, you must also provide a destination file. Similarly, if you
specify a destination file, you must also specify a source file specification.
“fteListTemplates” on page 469
Use the fteListTemplates command to list the available Managed File Transfer transfer templates on
a coordination queue manager.
“fteDeleteTemplates” on page 459
Use the fteDeleteTemplates command to delete an existing Managed File Transfer template from a
coordination queue manager.
If you attempt to perform a file-to-message transfer to a destination agent that does not have the
enableQueueInputOutput property set to true, the transfer fails. The transfer log message that is
published to the coordination queue manager contains the following message:
BFGIO0197E: An attempt to write to a queue was rejected by the destination agent. The
agent must have enableQueueInputOutput=true set in the agent.properties file to
support transferring to a queue.
To enable the agent to write to and read from queues perform the following steps:
Procedure
1. Stop the destination agent using the fteStopAgent command.
2. Edit the agent.properties file to include the line enableQueueInputOutput=true.
The agent.properties file is located in the directory MQ_DATA_PATH/mqft/config/
coordination_queue_manager/agents/destination_agent_name.
3. Optional: Edit the agent.properties file to include the line
enableClusterQueueInputOutput=true. The agent.properties file is located in the directory
MQ_DATA_PATH/mqft/config/coordination_queue_manager/agents/
destination_agent_name.
4. Start the destination agent using the fteStartAgent command.
Procedure
Type the following command:
If the destination queue is on a different queue manager to the queue manager used by the destination
agent you must specify the value of the -dq parameter in the following format
queue_name@queue_manager_name. If you do not specify @queue_manager_name in the value, the
destination agent assumes that the destination queue is located on the destination agent queue manager.
The exception is when the enableClusterQueueInputOutput agent property has been set to true. In this
case the destination agent will use standard IBM MQ resolution procedures to determine where the
queue is located.
The source agent, AGENT_NEPTUNE, reads the data from the file /tmp/single_record.txt and
transfers this data to the destination agent, AGENT_VENUS. The destination agent, AGENT_VENUS, sends
the data to a persistent message on the queue RECEIVING_QUEUE@QM_MERCURY. The message does
not have an IBM MQ group ID set.
Procedure
Type the following command:
The source agent, AGENT_NEPTUNE, reads the data from the file /tmp/source.file and transfers this
data to the destination agent, AGENT_MERCURY. The destination agent, AGENT_MERCURY, writes the
data to thirty-six 1 KB persistent messages on the queue RECEIVING_QUEUE@QM_MERCURY. These
messages all have the same IBM MQ group ID and the last message in the group has the IBM MQ
LAST_MSG_IN_GROUP flag set.
Procedure
Type the following command:
The source agent, AGENT_NEPTUNE, reads the data from the file /tmp/names.text and transfers this
data to the destination agent, AGENT_MERCURY. The destination agent, AGENT_MERCURY, writes the
data to three persistent messages on the queue RECEIVING_QUEUE. These messages all have the same
IBM MQ group ID and the last message in the group has the IBM MQ LAST_MSG_IN_GROUP flag set.
The data in the messages is as follows.
• First message:
Jenny Jones
• Second message:
John Smith
• Third message:
Jane Brown
Procedure
1. Stop the destination agent using the following command:
fteStopAgent AGENT_MERCURY
2. Add the following line to the agent properties file for AGENT_MERCURY:
maxDelimiterMatchLength=25
fteStartAgent AGENT_MERCURY
The source agent, AGENT_NEPTUNE, reads the data from the file /tmp/customers.text and
transfers this data to the destination agent, AGENT_MERCURY. The destination agent,
AGENT_MERCURY, writes the data to three persistent messages on the queue RECEIVING_QUEUE.
These messages all have the same IBM MQ group ID and the last message in the group has the IBM
MQ LAST_MSG_IN_GROUP flag set.
The data in the messages is as follows.
• First message:
• Second message:
• Third message:
Procedure
Type the following command:
The IBM MQ message properties of the first message written by the destination agent, AGENT_SATURN, to
the queue, MY_QUEUE, on queue manager, MyQM, are set to these values:
usr.WMQFTETransferId=414cbaedefa234889d999a8ed09782395ea213ebbc9377cd
usr.WMQFTETransferMode=text
usr.WMQFTESourceAgent=AGENT_JUPITER
usr.WMQFTEDestinationAgent=AGENT_SATURN
usr.WMQFTEFileName=source_file.txt
usr.WMQFTEFileSize=1024
usr.WMQFTEFileLastModified=1273740879040
usr.WMQFTEFileIndex=0
usr.WMQFTEMqmdUser=larmer
Procedure
Type the following command:
usr.account=123456
The prefix usr is added to the beginning of the name of the user-defined metadata.
<fte:filecopy cmdqm="qm0@localhost@1414@SYSTEM.DEF.SVRCONN"
src="agent1@qm1" dst="agent2@qm2"
rcproperty="copy.result">
<fte:metadata>
<fte:entry name="fileName" value="${FileName}"/>
</fte:metadata>
</fte:filecopy>
</target>
</project>
• Use a resource monitor and variable substitution. The following example shows some transfer task XML:
Related tasks
“Example: Setting IBM MQ message properties on a file-to-message transfer” on page 206
You can use the -qmp parameter on the fteCreateTransfer command to specify whether IBM MQ
message properties are set on the first message written to the destination queue by the transfer. IBM MQ
message properties allow an application to select messages to process, or to retrieve information about a
message without accessing IBM MQ Message Descriptor (MQMD) or MQRFH2 headers.
Related reference
“fte:filecopy Ant task” on page 831
The fte:filecopy task copies files between Managed File Transfer agents. The file is not deleted from
the source agent.
“fte:filemove Ant task” on page 834
The fte:filemove task moves files between Managed File Transfer agents. When a file has been
successfully transferred from the source agent to the destination agent, the file is deleted from the source
agent.
Example
A transfer is requested by running the following command:
The file source1.txt is 48 KB. The transfer splits this file into 1 KB messages and writes these
messages to the destination queue RECEIVING_QUEUE.
While the transfer is in progress, after the agent has written 16 messages to RECEIVING_QUEUE, a failure
occurs at the source agent.
The agent writes a blank message to RECEIVING_QUEUE. In addition to the standard set of message
properties, the blank message has the following message properties set:
usr.WMQFTEResultCode = 40
usr.WMQFTESupplement = BFGTR0036I: The transfer failed to complete successfully.
From IBM MQ 9.0.1, in a message to file transfer, the source agent browses the messages
from the source queue, unlike the destructive GET, in IBM MQ versions before IBM MQ 9.0.1. The
messages are removed from the source queue after all messages (in a group if message grouping is used)
have been browsed and data written to the destination file. This allows messages to remain in the source
queue if a transfer fails or is canceled. Due to this change, authority to BROWSE must also be provided
along with GET authority to run message to file transfers.
BFGIO0197E: An attempt to read from a queue was rejected by the source agent.
The agent must have enableQueueInputOutput=true set in the agent.properties file
to support transferring from a queue.
To enable the agent to write to and read from queues perform the following steps:
Procedure
1. Stop the source agent using the fteStopAgent command.
2. Edit the agent.properties file to include the line enableQueueInputOutput=true.
The agent.properties file is located in the directory MQ_DATA_PATH/mqft/config/
coordination_queue_manager/agents/source_agent_name.
3. Start the source agent using the fteStartAgent command.
Procedure
Type the following command:
The data in the messages on the queue START_QUEUE is written to the file /out/three_to_one.txt on
the system where AGENT_VENUS is running.
Procedure
Type the following command:
The data in the messages belonging to the first complete group on the queue START_QUEUE, the group
with IBM MQ group ID 41424b3ef3a2202020202020202020202020202020202222, is written to the
file /out/group.txt on the system where AGENT_VENUS is running.
Example: Inserting a text delimiter before the data from each message
When you are transferring in text mode from a source queue to a file, you can specify that a text delimiter
is inserted before the data from individual messages by using the -sq, -sqdt and -sqdp parameters with
the fteCreateTransfer command.
Procedure
Type the following command:
The text delimiter is added to the beginning of the data from each of the four messages on START_QUEUE
by the source agent, AGENT_NEPTUNE. This data is written to the destination file, /out/output.txt.
Procedure
Type the following command:
The binary delimiter is appended to the data from each of the three messages on START_QUEUE by the
source agent, AGENT_NEPTUNE. This data is written to the destination file, /out/binary.file.
Procedure
1. Create the task XML that defines the task that the monitor performs when it is triggered.
The variables that are replaced with the values of IBM MQ message headers are highlighted in bold.
This task XML is saved to the file /home/USER1/task.xml
2. Create a resource monitor to monitor the queue START_QUEUE.
Submit the following command:
usr.fileName=larmer
usr.toAgent=AGENT_VIOLET
4. The monitor is triggered when the complete group is written. The agent substitutes the IBM MQ
message properties into the task XML.
This results in the task XML being transformed to:
Results
The transfer that is defined by the task XML is performed. The complete group of messages that are read
from the START_QUEUE by AGENT_VENUS is written to a file called /reports/larmer.rpt on the
system where AGENT_VIOLET is running.
However, when you put the messages onto the source queue, do not put them in an IBM MQ group. Add
IBM MQ message properties to each message. For example, specify the usr.filename property with a
unique file name value for each message. This effectively causes the Managed File Transfer Agent to treat
each message on the source queue as a separate group.
Procedure
1. The user writes a message to the queue INPUT_QUEUE that has the following IBM MQ message
properties set:
usr.UserReturnCode=1
usr.UserSupplement="Cancelling transfer - sent wrong data."
2. The source agent reads the IBM MQ message properties and stops processing messages from the
queue. The destination agent deletes any file data that has been written to the destination directory.
3. The source agent sends a transfer log message to the coordination queue manager reporting the
transfer failure.
The message contains the following information:
A started task is used because it runs under a specific user ID and is not affected by users logging off.
Note: Started tasks are typically run under an administrative user that might
not have log-on privileges and so it is not possible to log on to the z/OS system as the user that the agent
is running under. The fteStartAgent, fteStopAgent, fteSetAgentTraceLevel commands, and the
fteShowAgentDetails command with the -d parameter specified, cannot be issued for that agent.
From IBM MQ 9.0.2 and IBM MQ 9.0.0 Fix Pack 1, the agent property adminGroup is available for use
with Managed File Transfer agents on z/OS. You can define a security manager group, for example
MFTADMIN and then add the started task userid and administrator TSO ids to this group. Edit the agent
properties file and set the adminGroup property to be the name of this security manager group.
adminGroup=MFTADMIN
Members of this group can then issue the fteStartAgent, fteStopAgent, and
fteSetAgentTraceLevel commands, and the fteShowAgentDetails command with the -d
parameter specified, for the agent that is running as a started task.
For more information, see the adminGroup property in “The MFT agent.properties file” on page 537.
F job_name,APPL=STOP
where job_name is the job that the agent process is running under.
P job_name
where job_name is the job that the agent process is running under.
Related reference
“Starting an MFT agent on z/OS” on page 164
On z/OS, in addition to running the fteStartAgent command from a UNIX System Services session, you
can start an agent as a started task from JCL without the need for an interactive session.
“The MFT agent.properties file” on page 537
The diagram shows two FTP servers, at different locations. The FTP servers are being used to exchange
files with the Managed File Transfer agents. The protocol bridge agent is between the FTP servers and the
rest of the MFT network, and is configured to communicate with both FTP servers.
Ensure that you have another agent in your MFT network in addition to the protocol bridge agent. The
protocol bridge agent is a bridge to the FTP, FTPS, or SFTP server only and does not write transferred files
to the local disk. If you want to transfer files to or from the FTP, FTPS, or SFTP server you must use the
protocol bridge agent as the destination or source for the file transfer (representing the FTP, FTPS, or
SFTP server) and another standard agent as the corresponding source or destination.
Procedure
1. Generate a ProtocolBridgeProperties.xml file from the ProtocolBridgeProperties.xsd
file in the MQ_INSTALLATION_PATH/mqft/samples/schema directory.
For more information about the content of the ProtocolBridgeProperties.xml file, see “Defining
properties for protocol file servers using the ProtocolBridgeProperties.xml file” on page 220.
2. Put the generated ProtocolBridgeProperties.xml file into the configuration_directory/
coordination_queue_manager/agents/agent_name directory.
3. Copy all protocol bridge properties for the agent you want to migrate from the agent.properties
file to the ProtocolBridgeProperties.xml file. The properties that relate to the protocol bridge in
the agent.properties file start with protocol.
Procedure
1. Move the protocol bridge properties from the ProtocolBridgeProperties.xml file for the agent
you want to migrate to the agent.properties file. The agent properties file is located at
configuration_directory/coordination_queue_manager/agents/bridge_agent/
agent.properties. The protocol bridge properties are described in Protocol bridge properties.
2. Delete the ProtocolBridgeProperties.xml file from the configuration_directory/
coordination_qmgr/agents/agent_name directory.
If a file path is not prefixed with a server name, for example '/home/user/file.txt' then this
XML
document can specify a default server to use for the managed file transfer. To specify a
default server use the <tns:defaultServer> element as the first element inside the
<tns:serverProperties>
An optional <tns:limits> element can be specified within each server definition. This element
contains
attributes that govern the amount of resources used by each defined server.
<tns:credentialsFile path="$HOME/ProtocolBridgeCredentials.xml"/>
<tns:defaultServer name="myFTPserver"/>
</tns:ftpServer>
</tns:ftpsServer>
<tns:limits connectionTimeout="60"/>
</tns:sftpServer>
</tns:serverProperties>
This example shows the outermost <tns:serverProperties> element which must exist for the
document to
be valid, an optional <tns:defaultServer> element, as well as definitions for an FTP, FTPS and
SFTP server.
The following attributes are valid for all of the <tns:ftpServer>, <tns:ftpsServer> and
<tns:sftpServer>
elements: name, host, port, platform, fileEncoding, limitedWrite and controlEncoding.
The following attributes are valid for the <tns:ftpServer> and <tns:ftpsServer> elements:
timezone, locale,
listFormat, listFileRecentDateFormat, listFileOldDateFormat, and monthShortNames.
The following attributes are valid for the <tns:ftpServer> element only: passiveMode
The following attributes are valid for the <tns:ftpsServer> element only: ftpsType, trustStore,
trustStorePassword,
trustStoreType, keyStore, keyStorePassword, keyStoreType, ccc, protFirst, auth, and
connectTimeout.
The following attributes are valid for the <tns:limits> element within all of the
-->
<tns:serverProperties xmlns:tns="http://wmqfte.ibm.com/ProtocolBridgeProperties"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://wmqfte.ibm.com/ProtocolBridgeProperties
ProtocolBridgeProperties.xsd">
<!-- By default the location of the credentials file is in the home directory of the user
that started the -->
<!-- protocol bridge agent. If you wish to specify a different location use the
credentialsFile element to -->
<!-- do this. For
example: -->
<!-- <tns:credentialsFile path="/test/
ProtocolBridgeCredentials.xml"/> -->
<tns:defaultServer name="WINMVSCA.HURSLEY.IBM.COM"/>
<tns:ftpServer name="WINMVSCA.HURSLEY.IBM.COM" host="WINMVSCA.HURSLEY.IBM.COM"
platform="UNIX"
timeZone="Europe/London" locale="en-GB" fileEncoding="US-ASCII"
listFormat="unix" limitedWrite="false" />
<tns:credentialsFile path="/test/ProtocolBridgeCredentials.xml"/>
If you want to add further non-default protocol servers, edit this file to define their properties. This
example adds an additional FTP server.
Note: The protocol bridge agent does not support file locking. This is because Managed File Transfer does
not support the file locking mechanism on a file server.
Procedure
1. Define a protocol file server by inserting the following lines into the file as a child element of
<tns:serverProperties>:
Procedure
1. Compile the protocol server properties user exit.
2. Create a Java archive (JAR) file containing the compiled exit and its package structure.
3. Put the JAR file containing the exit class in the exits directory of the protocol bridge agent . This
directory is found in the MQ_DATA_PATH/mqft/config/coordination_queue_manager/
agents/bridge_agent_name directory.
4. Edit the property file of the protocol bridge agent to include the property
protocolBridgePropertiesExitClasses. For the value of this property, specify a comma-
separated list of classes that implement a protocol bridge server properties user exit. The exit classes
are called in the order that they are specified in this list. For more information, see “The MFT
agent.properties file” on page 537.
5. You can optionally specify the protocolBridgePropertiesConfiguration property. The value
you specify for this property is passed in as a String to the initialize() method of the exit classes
specified by protocolBridgePropertiesExitClasses. For more information, see “The MFT
agent.properties file” on page 537.
serverName=type://host:port
The location of the properties file is taken from the protocol bridge agent property
protocolBridgePropertiesConfiguration.
To run the sample user exit, complete the following steps:
Procedure
1. Compile the SamplePropertiesExit2.java file.
2. Create a JAR file containing the compiled exit and its package structure.
3. Put the JAR file in the MQ_DATA_PATH/mqft/config/coordination_queue_manager/agents/
bridge_agent/exits directory.
4. Edit the MQ_DATA_PATH/mqft/config/coordination_queue_manager/agents/
bridge_agent_name/agent.properties file to contain the line:
protocolBridgePropertiesExitClasses=SamplePropertiesExit2
serverName=type://host:port
protocolBridgePropertiesConfiguration=MQ_DATA_PATH/mqft/config/coordination_queue_manager/
agents/bridge_agent/protocol_bridge_properties.properties
ProtocolBridgePropertiesExit.java interface
package com.ibm.wmqfte.exitroutine.api;
import java.util.Map;
import java.util.Properties;
/**
* An interface that is implemented by classes that are to be invoked as part of
* user exit routine processing. This interface defines methods that will be
* invoked by a protocol bridge agent to look up properties for protocol servers
* that are referenced in transfers.
* <p>
* There will be one instance of each implementation class for each protocol
* bridge agent. The methods can be called from different threads so the methods
* must be synchronised.
*/
public interface ProtocolBridgePropertiesExit {
/**
* Invoked once when a protocol bridge agent is started. It is intended to
* initialize any resources that are required by the exit.
*
* @param bridgeProperties
* The values of properties defined for the protocol bridge.
* These values can only be read, they cannot be updated by the
* implementation.
* @return {@code true} if the initialization is successful and {@code
* false} if unsuccessful. If {@code false} is returned from an exit
* the protocol bridge agent will not start.
*/
public boolean initialize(final Map<String, String> bridgeProperties);
/**
* Obtains a set of properties for the specified protocol server name.
* <p>
* The returned {@link Properties} must contain entries with key names
* corresponding to the constants defined in
* {@link ProtocolServerPropertyConstants} and in particular must include an
* entry for all appropriate constants described as required.
*
* @param protocolServerName
* The name of the protocol server whose properties are to be
* returned. If a null or a blank value is specified, properties
* for the default protocol server are to be returned.
/**
* Invoked once when a protocol bridge agent is shut down. It is intended to
* release any resources that were allocated by the exit.
*
* @param bridgeProperties
* The values of properties defined for the protocol bridge.
* These values can only be read, they cannot be updated by the
* implementation.
*/
public void shutdown(final Map<String, String> bridgeProperties);
<tns:credentialsFile path="/example/path/to/ProtocolBridgeCredentials.xml"/>
Before you can use a protocol bridge agent, set up credential mapping by editing this file to include host,
user, and credential information. For more information and samples, see “Protocol bridge credentials file
format” on page 560.
Note: On z/OS, you can store the protocol bridge credential file on a data set, where the
name of the .xml file can be specified by the user.
Procedure
1.
• Edit the line <tns:server name="server name"> to change the value of the name attribute to
the server name in the ProtocolBridgeProperties.xml file.
Protocol bridge agents that are created for IBM WebSphere MQ File Transfer Edition 7.0.4 and earlier
do not have a ProtocolBridgeProperties.xml file (or related user exits), so for IBM WebSphere
MQ File Transfer Edition 7.0.4 Fix Pack 1 and later the server name is automatically assigned the
2. Insert user ID and credential information into the file as child elements of <tns:server>.
You can insert one or many of the following elements into the file:
• If the protocol file server is an FTP, FTPS, or SFTP server, you can use passwords to authenticate the
user requesting the transfer. Insert the following lines into the file:
– name is a Java regular expression to match the MQMD user ID associated with the MFT transfer
request
– serverUserId is the value that is passed to the protocol file server as the login user ID. If the
serverUserId attribute is not specified, the MQMD user ID associated with the MFT transfer
request is used instead
– hostKey is the expected key that is returned from the server when logging on
– key is the private key of the serverUserId
– keyPassword is the password for the key to generate public keys
– associationName is a value that is used to identify for trace and logging purposes
The name attribute can contain a Java regular expression. The credential mapper attempts to match
the MQMD user ID of the MFT transfer request to this regular expression. The protocol bridge agent
Note:
When the transfer request is written to the command queue, the MQMD user ID might be converted to
uppercase if the source agent command queue is on a z/OS or IBM i system. As a result the MQMD
user ID for the same originating user might arrive at the credentials exit in the original case or
converted to uppercase depending on the source agent that is specified in the transfer request. The
default credential mapping exit performs case-sensitive matches against the supplied MQMD user ID,
which you might need to allow for in the mapping file.
exitClassPath=IBM MQ installation_directory\mqft\config\configuration_queue_manager\agents
\protocol_bridge_agent_name\exits\SampleCredentialExit.jar
Procedure
1. Compile the SampleCredentialExit.java file.
2. Create a JAR file that contains the compiled exit and its package structure.
3. Place the JAR file in the MQ_DATA_PATH/mqft/config/coordination_queue_manager/
agents/bridge_agent_name/exits directory.
4. Edit the MQ_DATA_PATH/mqft/config/coordination_queue_manager/agents/
bridge_agent_name/agent.properties file to contain the line:
protocolBridgeCredentialExitClasses=SampleCredentialExit
exitClassPath=IBM MQ installation_directory\mqft\config\configuration_queue_manager\agents
\protocol_bridge_agent_name\exits\SampleCredentialExit.jar
mqUserId=serverUserId,serverPassword
protocolBridgeCredentialConfiguration=MQ_DATA_PATH/mqft/
config/coordination_queue_manager/agents/bridge_agent_name/credentials.properties
Procedure
1. On the SFTP client, log on with the login ID to be passed to the SFTP server by the protocol bridge
agent and run the ssh-keygen command to create a public/private key sequence. Supply a pass
phrase when asked for one. The ssh-keygen command generates the following two files: id_rsa
and id_rsa.pub. If you need DSA format, use -t dsa when you run the ssh-keygen command
2. Copy the contents of the id_rsa.pub file into the ~/.ssh/authorized_keys file of the SFTP user
on the SFTP server. Ensure that the SFTP file server process has read access to this file.
3. Managed File Transfer requires a host ssh fingerprint generated using the MD5 algorithm. Run one of
the following commands to obtain the host ssh fingerprint of the SFTP server.
• For Red Hat® Enterprise Linux version 6.x and below, and Linux Ubuntu 14.04, run the following
command:
ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub
• Starting with Red Hat Enterprise Linux version 7.x, Linux Ubuntu 16.04 and SuSE Linux 12.4, the ssh-
keygen command generates, by default, the ssh fingerprint using the SHA56 algorithm. To generate
the ssh fingerprint using the MD5 algorithm, run the following command:
Extract the hexadecimal portion only of the output to use as the hostKey in the
ProtocolBridgeCredentials.xml file (see step “4” on page 232). Therefore, in this example,
you would extract 64:39:f5:49:41:10:55:d2:0b:81:42:5c:87:62:9d:27.
<tns:credentials xmlns:tns="http://wmqfte.ibm.com/ProtocolBridgeCredentials"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://wmqfte.ibm.com/ProtocolBridgeCredentials
ProtocolBridgeCredentials.xsd ">
<tns:agent name="Agent_name">
<tns:server name="SFTP_name">
</tns:server>
</tns:agent>
</tns:credentials>
where:
• Agent_name is the name of the protocol bridge agent.
• SFTP_host_name is the name of the SFTP server as shown in the
ProtocolBridgeProperties.xml file.
• mq_User_ID is the MQMD user ID associated with the transfer request.
• SFTP_user_ID is the SFTP user ID as used in step 2. It is the value passed to the SFTP serve as the
login user ID.
• ssh_host_finger is the fingerprint collected in step 3.
• name is a name that you can specify to be used for trace and logging purposes.
• pass_phrase is the pass phrase you provided in the ssh-keygen in step 1.
• Complete contents of the id_rsa file is the complete contents of the generated id_rsa file from step
1. To prevent a connection error, ensure that you include both of the following entries:
Procedure
1. Create a protocol bridge agent for the FTPS server by using the fteCreateBridgeAgent command.
The parameters that are applicable to FTP are also applicable to FTPS but there are also three required
parameters specific to FTPS:
a) The -bt parameter. Specify FTPS as the value of this parameter.
If you need instructions about how to create truststore files, see the IBM Developer article, Configuring
Secure Sockets Layer connectivity in IBM WebSphere MQ File Transfer Edition, or see the information
about the keytool at the Oracle keytool documentation.
2. Define the FTPS server properties within an <ftpsServer> element in the protocol bridge properties
file: ProtocolBridgeProperties.xml. For more information, see “Defining properties for protocol
file servers using the ProtocolBridgeProperties.xml file” on page 220. You can also enable client
authentication by editing the protocol bridge properties file. For details of all the configuration options,
see “Protocol bridge properties file format” on page 564.
3. Map user credentials in Managed File Transfer to user credentials on the FTPS server either by using
the default credential mapping function of the protocol bridge agent or by writing your own user exit.
For more information, see “Mapping credentials for a file server” on page 227.
4. By default, the truststore file is configured as having the JKS format; if you want to change the format,
edit the protocol bridge properties file.
Example
An example entry for an FTPS server in the protocol bridge properties file is shown as follows:
<tns:serverProperties xmlns:tns="http://wmqfte.ibm.com/ProtocolBridgeProperties"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://wmqfte.ibm.com/ProtocolBridgeProperties
ProtocolBridgeProperties.xsd">
<tns:defaultServer name="ftpsserver.mycompany.com"/>
What to do next
For information about the parts of the FTPS protocol that are supported and, which are not supported, see
“FTPS server support by the protocol bridge” on page 645.
The diagram shows an MFT Connect:Direct bridge between two departments, the B2B IT department and
the Application Integration IT department. The B2B IT department uses Connect:Direct to transfer files to
and from the company's business partners. The Application Integration IT department uses IBM MQ as its
messaging infrastructure and so has recently chosen Managed File Transfer as its file transfer solution.
Using the MFT Connect:Direct bridge, the two departments can transfer files between the Connect:Direct
network in the B2B IT department and the MFT network in the Application Integration IT department. The
Connect:Direct bridge is a component of Managed File Transfer, which includes an MFT agent that
communicates with a Connect:Direct node. The MFT agent is dedicated to transfers with the
Connect:Direct node, and is known as the Connect:Direct bridge agent.
The Connect:Direct bridge is available as part of the Service and Agent components of Managed File
Transfer, and can be used for the following tasks:
1. Use Managed File Transfer commands to initiate a transfer of a file, or multiple files, from an MFT agent
to a Connect:Direct node.
2. Use Managed File Transfer commands to initiate a transfer of a file, or multiple files, from a
Connect:Direct node to an MFT agent.
3. Use Managed File Transfer commands to initiate a file transfer that starts a user-defined
Connect:Direct process.
4. Use Connect:Direct process to submit an MFT file transfer request.
A Connect:Direct bridge can transfer files to or from only Connect:Direct nodes. The Connect:Direct bridge
can transfer files to or from its local file system only as part of a transfer submitted by a Connect:Direct
process.
You can use the Connect:Direct bridge to transfer to or from a data set that is located on a
Connect:Direct node on a z/OS system. There are some differences in behavior compared to data set
transfers that only involve Managed File Transfer agents. For more information, see “Transferring data
sets to and from Connect:Direct nodes” on page 618.
Supported platforms
The Connect:Direct bridge is made up of an MFT Connect:Direct bridge agent and a Connect:Direct node.
The agent is supported on Windows and Linux for System x. The node is supported on the platforms that
are supported for IBM Sterling Connect:Direct for Windows and IBM Sterling Connect:Direct for UNIX. For
Procedure
1. Use the fteCreateTransfer command with the value for the -df (destination file) parameter in the form
connect_direct_node_name:file_path and the value of the -da (destination agent) parameter
specified as the name of the Connect:Direct bridge agent.
Note: The Connect:Direct node specified by connect_direct_node_name is the node that you want
the file to be transferred to, not the Connect:Direct node that operates as part of the Connect:Direct
bridge.
For more information, see “fteCreateTransfer: start a new file transfer” on page 428.
Procedure
Use the fteCreateTransfer command with the value for the source specification in the form
connect_direct_node_name:file_path and the value of the -sa parameter specified as the name
of the Connect:Direct bridge agent.
Note: The Connect:Direct node specified by connect_direct_node_name is the node that you want the
file to be transferred from, not the Connect:Direct node that operates as part of the Connect:Direct bridge.
For example:
For more information, see “fteCreateTransfer: start a new file transfer” on page 428.
Procedure
1. Use the fteCreateTransfer command with the value for the -df parameter in the form:
connect_direct_node_name:data_set_name;attributes and the value of the -da
(destination agent) parameter specified as the name of the Connect:Direct bridge agent.
The Connect:Direct node specified by connect_direct_node_name is the node that you want the
data set to be transferred to, not the Connect:Direct node that operates as part of the Connect:Direct
bridge.
The data set name specified by data_set_name must be absolute, not relative. Connect:Direct does
not prefix the data set name with the name of the user.
For more information, see “fteCreateTransfer: start a new file transfer” on page 428.
Procedure
Use the fteCreateTransfer command with the value for the -dd (destination directory) parameter in the
form connect_direct_node_name:directory_path. Specify the value of the -da (destination
agent) parameter as the name of the Connect:Direct bridge agent.
Note: The Connect:Direct node specified by connect_direct_node_name is the node that you want the
files to be transferred to, not the Connect:Direct node that operates as part of the Connect:Direct bridge.
For more information, see “fteCreateTransfer: start a new file transfer” on page 428.
Results
The source agent FTE_AGENT transfers the first file to the Connect:Direct bridge agent CD_BRIDGE. The
Connect:Direct bridge agent temporarily stores the file in the location defined by the cdTmpDir property.
When the file has been completely transferred from the source agent to the Connect:Direct bridge, the
For more information, see “fteCreateTransfer: start a new file transfer” on page 428.
Results
The Connect:Direct bridge agent CD_BRIDGE requests the first file from the Connect:Direct node
CD_NODE1. The Connect:Direct node sends the file to the Connect:Direct bridge. While the file is being
transferred from the Connect:Direct node, the Connect:Direct bridge stores the file temporarily in the
location defined by the cdTmpDir agent property. When the file has finished transferring from the
Connect:Direct node to the Connect:Direct bridge, the Connect:Direct bridge sends the file to the
destination agent FTE_Z and then deletes the file from the temporary location. This process is repeated
for each specified source file.
Related concepts
“The Connect:Direct bridge” on page 234
You can transfer files to and from an existing IBM Sterling Connect:Direct network. Use the Connect:Direct
bridge, which is a component of Managed File Transfer, to transfer files between MFT and IBM Sterling
Connect:Direct.
Related reference
“The MFT agent.properties file” on page 537
Each Managed File Transfer Agent has its own properties file, agent.properties, that must contain the
information that an agent uses to connect to its queue manager. The agent.properties file can also
contain properties that alter the behavior of the agent.
For more information, see “fteCreateTransfer: start a new file transfer” on page 428.
2. The source agent FTE_AGENT transfers the first file that matches the pattern /reports/
report??.log to the Connect:Direct bridge agent CD_BRIDGE. The Connect:Direct bridge agent
temporarily stores the file in the location defined by the cdTmpDir property. When the file has been
completely transferred from the source agent to the Connect:Direct bridge, the Connect:Direct bridge
agent sends the file to the Connect:Direct node that is defined by the cdNode agent property. This
node sends the file to the destination Connect:Direct node CD_NODE1. The Connect:Direct bridge
agent deletes the file from the temporary location when the transfer between the two Connect:Direct
nodes is complete.This process is repeated for each source file that matches the wildcard pattern /
reports/report??.log.
Note: The list of files that match the pattern /reports/report??.log varies depending on the
operating system of the system where the source agent FTE_AGENT is located.
• If the source agent is located on a system with a Windows operating system, the pattern matching is
not case sensitive. The pattern matches all files in the /reports directory with a file name of the
form report followed by two characters and a suffix of .log, regardless of the case that the letters
are in. For example, Report99.Log is a match.
• If the source agent is located on a system with a Linux or UNIX operating system, the pattern
matching is case sensitive. The pattern matches only those files in the /reports directory with a file
name of the form report followed by two characters and a suffix of .log. For example,
reportAB.log is a match, but reportAB.LOG and Report99.Log are not matches.
Procedure
1. Define the Connect:Direct process that you want the Connect:Direct bridge agent to call as part of the
transfer and save the process template in a file.
2. Open the MQ_DATA_PATH/mqft/config/coordination_queue_manager/agents/
cd_bridge_agent_name/ConnectDirectProcessDefinitions.xml file in a text editor.
3. Create a <processSet> element.
4. Inside the <processSet> element, create a <condition> element.
Results
When searching for a condition match, the Connect:Direct bridge agent searches from the start of the file
to the end of the file. The first match that is found is the one that is used.
Related tasks
“Configuring the Connect:Direct bridge” on page 149
Configure the Connect:Direct bridge to transfer files between a Managed File Transfer network and a
Connect:Direct network. The components of the Connect:Direct bridge are a Connect:Direct node and a
Managed File Transfer agent that is dedicated to communicating with that node. This agent is referred to
as the Connect:Direct bridge agent.
Related reference
“Connect:Direct process definitions file format” on page 576
The ConnectDirectProcessDefinitions.xml file in the Connect:Direct bridge agent configuration
directory specifies the user-defined Connect:Direct process to start as part of the file transfer.
“fteCreateCDAgent: create a Connect:Direct bridge agent” on page 395
Procedure
1. Create a Connect:Direct process that uses intrinsic symbolic variables.
%FTEPNAME PROCESS
SNODE=%FTESNODE
PNODEID=(%FTEPUSER,%FTEPPASS)
SNODEID=(%FTESUSER,%FTESPASS)
COPY001 COPY
FROM (
FILE=%FTEFFILE
DISP=%FTEFDISP
)
TO (
FILE=%FTETFILE
DISP=%FTETDISP
)
PEND
<tns:processSet>
<tns:condition>
<tns:match variable="%FTESNODE" value="TOBERMORY" pattern="wildcard"/>
</tns:condition>
<tns:process>
<tns:transfer process="Example.cdp"/>
</tns:process>
</tns:processSet>
</tns:cdprocess>
In this example, if a transfer request is submitted to the Connect:Direct bridge agent that has
TOBERMORY as its source or destination Connect:Direct node, the Example.cdp Connect:Direct
process is called.
4. Submit a file transfer request that satisfies the conditions that you defined in the
ConnectDirectProcessDefinition.xml file in Step 3.
In this example, the destination Connect:Direct node is TOBERMORY. This node is the secondary node
in the transfer and the value of %FTESNODE is set to TOBERMORY. This command matches the
condition that is set in the ConnectDirectProcessDefinition.xml file.
5. Managed File Transfer transfers the source file to a temporary location on the same system as the
Connect:Direct bridge agent.
6. The Connect:Direct bridge agent sets the values of the intrinsic symbolic variables from the
information in the transfer request and configuration information.
The intrinsic symbolic variables are set to the following values:
• %FTEPNAME=process_name - This value is an 8 character process name generated by the
Connect:Direct bridge agent.
• %FTESNODE=TOBERMORY - This value is set from the -df parameter of the fteCreateTransfer
command.
• %FTEPUSER,=primary_node_user - This information is taken from the
ConnectDirectCredentials.xml file.
• %FTEPPASS=primary_node_user_password - This information is taken from the
ConnectDirectCredentials.xml file.
• %FTESUSER,=secondary_node_user - This information is taken from the
ConnectDirectCredentials.xml file.
• %FTESPASS=secondary_node_user_password - This information is taken from the
ConnectDirectCredentials.xml file.
• %FTEFFILE =temporary_location - This value is the temporary location of the file on the same
system as the Connect:Direct bridge agent.
• %FTEFDISP=leave - This value is set from the -sd parameter of the fteCreateTransfer
command.
• %FTETFILE=/home/bulgaria/destination.txt - This value is set from the -df parameter of
the fteCreateTransfer command.
• %FTETDISP=overwrite - This value is set from the -de parameter of the fteCreateTransfer
command.
7. The Connect:Direct process is started on the Connect:Direct bridge node. Connect:Direct transfers the
file from the temporary location on the Connect:Direct bridge system to the destination /home/
bulgaria/destination.txt on the system where the Connect:Direct node TOBERMORY is
running.
Related concepts
“Submitting a user-defined Connect:Direct process from a file transfer request” on page 242
You can submit a transfer request for a transfer that goes through the Connect:Direct bridge agent that
calls a user-defined Connect:Direct process as part of the file transfer.
Related reference
“Substitution variables for use with user-defined Connect:Direct processes” on page 639
Creating and submitting a Connect:Direct process that calls Managed File Transfer by
using the Connect:Direct Requester
The Connect:Direct Requester is a graphical user interface that you can use to create and submit a
Connect:Direct process that calls Managed File Transfer.
Procedure
1. Start the Connect:Direct Requester.
2. In the Nodes tab of the panel, select the Connect:Direct node that is used as the primary node of the
process.
3. Select File > New > Process. The Process Properties window opens.
4. In the Name: field, type the name of the process.
5. Select the secondary node from the Snode > Name: list.
6. Select the operating system of the secondary node from the Snode > Operating System: list.
7. Optional: Complete any further information in this window that you require.
8. Click OK. The Process Properties window closes.
9. Create a statement that runs the Managed File Transfer ftetag command.
a) Right-click in the Process window on the End statement.
b) Select Insert > Run Task. The Run Task Statement window opens.
c) In the Label: field, type Tag.
d) In the Optional Parameters or Commands field, type pgm(MQ_INSTALLATION_PATH/bin/
ftetag) args(source_specification). For more information about the format of
source_specification, see “fteCreateTransfer: start a new file transfer” on page 428.
e) Click OK. The Run Task Statement window closes.
10. Create a statement that runs the Managed File Transfer ftecxfer or ftebxfer command.
a) Right-click in the Process window on the End statement.
b) Select Insert > Run Task. The Run Task Statement window opens.
c) In the Label: field, type Transfer.
d) In the Optional Parameters or Commands field, type pgm(MQ_INSTALLATION_PATH/bin/
ftecxfer) args(parameters) or pgm(MQ_INSTALLATION_PATH/bin/ftebxfer)
args(parameters) depending on which command you choose. The parameters used by the
ftecxfer and ftebxfer commands are the same as the parameters used by the
fteCreateTransfer command, plus some additional parameters specific to ftecxfer and
ftebxfer. For more information, see “fteCreateTransfer: start a new file transfer” on page 428
and “Using Connect:Direct processes to submit Managed File Transfer transfer requests” on page
247.
e) Click OK. The Run Task Statement window closes.
BFGTR0075W: The source file has not been deleted because it is possible that the source file
was modified after the source file was transferred.
In this case, verify that the content of the source file is unmodified and then manually delete the source
file.
You can check the status of your transfers in the IBM MQ Explorer. If any transfers appear as Stalled,
you might need to take corrective action because the stalled status denotes an issue either with the agent
or between the two agents involved in the transfer.
Setting the recovery retry timeout for all the transfers for one source agent
To set a recovery timeout that applies to all the transfers for a source agent, add the parameter and value
pair to the agent.properties file.
In this example, setting a transfer recovery timeout value as -1 means that the agent continues to try to
recover the stalled transfer until it completes successfully:
transferRecoveryTimeout=-1
Setting a transfer recovery timeout value as 0 means the agent marks transfer as failed immediately upon
entering recovery:
transferRecoveryTimeout=0
Setting a transfer recovery timeout value of 21600 means the agent keeps retrying a stalled transfer for 6
hours before the transfer is marked as failed:
transferRecoveryTimeout=21600
For more information about using the transfer recovery timeout parameter while creating a new transfer,
see fteCreateTransfer command .
Setting the -rt parameter value to 0 indicates that if the transfer initiated by using this template is
stalled, it fails immediately and no recovery is attempted, for example
fteCreateTemplate -tn "payroll accounts monthly report template" -rt 0 -sa PAYROLL -sm
QM_PAYROLL1 -da ACCOUNTS
-dm QM_ACCOUNTS -df C:\payroll_reports\*.xls C:\out\*.xls
For more information about using the transfer recovery timeout parameter while creating a new transfer
template, see fteCreateTemplate command.
You can use IBM MQ Explorer to set the recovery timeout parameter and value for transfers. For more
information on using IBM MQ Explorer to configure transfers, see “Starting a new file transfer” on page
166 and “Creating a file transfer template using IBM MQ Explorer” on page 200.
You can also set the recovery timeout by including the transferRecoveryTimeout option and value,
with the fte:filecopy or fte:filemove elements for moving or copying files by using Ant tasks, for
example
<fte:filecopy cmdqm="qm0@localhost@1414@SYSTEM.DEF.SVRCONN"
src="agent1@qm1" dst="agent2@qm2"
rcproperty="copy.result" transferRecoveryTimeout="0">
</fte:filecopy>
When the file copy task is initiated and the transfer enters recovery, the transfer stops immediately
without attempting recovery. Setting the transferRecoveryTimeout option with fte:filecopy or
fte:filemove, overrides the value set in agent.properties file. If the transferRecoveryTimeout
value is not set with fte:filecopy or fte:filemove, the value of transferRecoveryTimeout
parameter from the agent.properties file is used. For more information, see “fte:filecopy Ant task” on
page 831 and “fte:filemove Ant task” on page 834.
that is started without the -rt parameter and value pair, the source agent AGENT1 checks the
agent.properties file for a transferRecoveryTimeout value to determine the recovery timeout
behavior.
If in the agent.properties file, the transferRecoveryTimeout is not set or is set to -1, the agent
follows the default behavior and tries to recover the transfer until it is successful.
fteCreateTransfer -sa AGENT1 -da AGENT2 -rt 21600 -df C:\import\transferredfile.txt C:\export
\originalfile.txt
- SourceTransferStartExit(onSourceTransferStart).
- PRE_SOURCE Command.
- DestinationTransferStartExits(onDestinationTransferStart).
- PRE_DESTINATION Command.
- The Transfer request is performed.
- DestinationTransferEndExits(onDestinationTransferENd).
- POST_DESTINATION Command.
- SourceTransferEndExits(onSourceTransferEnd.
- POST_SOURCE Command.
Notes:
1. The DestinationTransferStartExits is run only when the transfer completes, either
successfully or partially successfully.
2. The postDestinationCall is run only when the transfer completes, either successfully or partially
successfully.
3. The SourceTransferEndExits is run for successful, partially successful, or failed transfers.
4. The postSourceCall is called only if:
• The transfer was not canceled.
• There is a successful or partially successful outcome.
• Any post-destination transfer programs ran successfully.
There are several ways to specify a program that you want to run. These options are as follows:
You can use the fteAnt command to run Ant tasks in a Managed File Transfer environment that you have
already configured. You can use file transfer Ant tasks from your Ant scripts to coordinate complex file
transfer operations from an interpreted scripting language.
For more information about Apache Ant, see the Apache Ant project web page: https://ant.apache.org/
Related concepts
“Getting started using Ant scripts with MFT” on page 255
Using Ant scripts with Managed File Transfer allows you to coordinate complex file transfer operations
from an interpreted scripting language.
Related reference
“Ant tasks provided by MFT” on page 826
Managed File Transfer provides a number of Ant tasks that you can use to access file transfer capabilities.
“fteAnt: run Ant tasks in MFT” on page 373
The fteAnt command runs Ant scripts in an environment that has Managed File Transfer Ant tasks
available.
“Sample Ant tasks for MFT” on page 256
There are a number of sample Ant scripts provided with your installation of Managed File Transfer. These
samples are located in the directory MQ_INSTALLATION_PATH/mqft/samples/fteant. Each sample
Ant scripts
Ant scripts (or build files) are XML documents defining one or more targets. These targets contain task
elements to run. Managed File Transfer provides tasks which you can use to integrate file transfer function
into Apache Ant. To learn about Ant scripts, see the Apache Ant project web page: https://ant.apache.org/
Examples of Ant scripts that use Managed File Transfer tasks are provided with your product installation
in the directory MQ_INSTALLATION_PATH/mqft/samples/fteant
On protocol bridge agents, Ant scripts are run on the protocol bridge agent system. These Ant scripts do
not have direct access to the files on the FTP or SFTP server.
Namespace
A namespace is used to differentiate the file transfer Ant tasks from other Ant tasks that might share the
same name. You define the namespace in the project tag of your Ant script.
<target name="do_ping">
<fte:ping cmdqm="qm@localhost@1414@SYSTEM.DEF.SVRCONN" agent="agent1@qm1"
rcproperty="ping.rc" timeout="15"/>
</target>
</project>
For more information, see “fteAnt: run Ant tasks in MFT” on page 373.
Return codes
The file transfer Ant tasks return the same return codes as the Managed File Transfer commands. For
more information, see “Return codes for MFT” on page 334.
Related reference
“Ant tasks provided by MFT” on page 826
Managed File Transfer provides a number of Ant tasks that you can use to access file transfer capabilities.
“fteAnt: run Ant tasks in MFT” on page 373
The fteAnt command runs Ant scripts in an environment that has Managed File Transfer Ant tasks
available.
“Sample Ant tasks for MFT” on page 256
email
The email sample demonstrates how to use Ant tasks to transfer a file and send an email to a specified
email address if the transfer fails. The script checks that the source and destination agents are active and
able to process transfers by using the Managed File Transfer ping task. If both agents are active, the script
uses the Managed File Transfer filecopy task to transfer a file between the source and destination agents,
without deleting the original file. If the transfer fails the script sends an email containing information
about the failure by using the standard Ant email task.
hub
The hub sample is made up of two scripts: hubcopy.xml and hubprocess.xml. The hubcopy.xml
script shows how you can use Ant scripting to build 'hub and spoke' style topologies. In this sample, two
files are transferred from agents running on spoke machines to an agent running on the hub machine.
Both files are transferred at the same time, and when the transfers are complete the hubprocess.xml
Ant script is run on the hub machine to process the files. If both files transfer correctly, the Ant script
concatenates the contents of the files. If the files do not transfer correctly, the Ant script cleans up by
deleting any file data that was transferred. For this example to work correctly, you must put the
hubprocess.xml script on the command path of the hub agent. For more information about setting the
command path of an agent, see commandPath.
The librarytransfer sample demonstrates how to use Ant tasks to transfer an IBM i library on
one IBM i system to a second IBM i system.
IBM WebSphere MQ File Transfer Edition 7.0.2 on IBM i does not include direct support for
transfers of native IBM i library objects. The librarytransfer sample uses the native save file support on
IBM i with predefined Ant Tasks available in Managed File Transfer to transfer native library objects
between two IBM i systems. The sample uses a <presrc> nested element in a Managed File Transfer
filecopy task to invoke an executable script librarysave.sh that saves the requested library on the
source agent system into a temporary save file. The save file is moved by the filecopy ant task to the
destination agent system where a <postdst> nested element is used to invoke the executable script
libraryrestore.sh to restore the library saved in the save file to the destination system.
Before you run this sample, you need to complete some configuration as described in the
librarytransfer.xml file. You must also have a working Managed File Transfer environment on two
IBM i machines. The setup must consist of a source agent running on the first IBM i machine and a
destination agent running on the second IBM i machine. The two agents must be able to communicate
with each other.
To run this sample the user must complete the following steps:
1. Start a Qshell session. At an IBM i command window type: STRQSH
2. Change directory to the bin directory as follows:
cd /QIBM/ProdData/WMQFTE/V7/bin
3. After completing the required configuration, run the sample by using the following command:
fteant -f /QIBM/ProdData/WMQFTE/V7/samples/fteant/ibmi/librarytransfer/librarytransfer.xml
IBM WebSphere MQ File Transfer Edition 7.0.2 on IBM i does not include direct support for
transfers of native Source Physical or Database files on IBM i . The physicalfiletransfer sample uses the
native save file support on IBM i with predefined Ant Tasks available in Managed File Transfer to transfer
complete Source Physical and Database files between two IBM i systems. The sample uses a <presrc>
nested element within a Managed File Transfer filecopy task to invoke an executable script
physicalfilesave.sh to save the requested Source Physical or Database file from a library on the
source agent system into a temporary save file. The save file is moved by the filecopy ant task to the
destination agent system where a <postdst> nested element is used to invoke the executable script
physicalfilerestore.sh then restores the file object inside the save file into a specified library on
the destination system.
Before you run this sample, you must complete some configuration as described in the
physicalfiletransfer.xml file. You must also have a working Managed File Transfer environment on
two IBM i systems. The setup must consist of a source agent running on the first IBM i system and a
destination agent running on the second IBM i system. The two agents must be able to communicate with
each other.
To run this sample the user must complete the following steps:
1. Start a Qshell session. At an IBM i command window type: STRQSH
2. Change directory to the bin directory as follows:
cd /QIBM/ProdData/WMQFTE/V7/bin
3. After completing the required configuration, run the sample by using the following command:
timeout
The timeout sample demonstrates how to use Ant tasks to attempt a file transfer and to cancel the
transfer if it takes longer than a specified timeout value. The script initiates a file transfer by using the
Managed File Transfer filecopy task. The outcome of this transfer is deferred. The script uses the Managed
File Transfer “fte:awaitoutcome Ant task” on page 827 task to wait a given number of seconds for the
transfer to complete. If the transfer does not complete in the given time, the Managed File Transfer
“fte:cancel Ant task” on page 830 task is used to cancel the file transfer.
vsamtransfer
The vsamtransfer sample demonstrates how to use Ant tasks to transfer from a VSAM data
set to another VSAM data set by using Managed File Transfer. Managed File Transfer currently does not
support transferring VSAM data sets. The sample script unloads the VSAM data records to a sequential
data set by using the presrc nested element to call the executable file datasetcopy.sh. The script
uses the Managed File Transfer “fte:filemove Ant task” on page 834 task to transfer the sequential data
set from the source agent to the destination agent. The script then uses the postdst nested element to
call the loadvsam.jcl script. This JCL script loads the transferred data set records into a destination
VSAM data set. This sample uses JCL for the destination call to demonstrate this language option. The
same result can also be achieved by using a second shell script instead.
This sample does not require the source and destination data sets to be VSAM. The sample
works for any data sets if the source and destination data sets are of the same type.
For this sample to work correctly, you must put the datasetcopy.sh script on the
command path of the source agent and the loadvsam.jcl script on the command path of the
destination agent. For more information about setting the command path of an agent, see commandPath.
zip
The zip sample is made up of two scripts: zip.xml and zipfiles.xml. The sample demonstrates how
to use the presrc nested element inside the Managed File Transfer “fte:filemove Ant task” on page 834
task to run an Ant script before performing a file transfer move operation. The zipfiles.xml script
called by the presrc nested element in the zip.xml script compresses the contents of a directory. The
zip.xml script transfers the compressed file. This sample requires that the zipfiles.xml Ant script is
present on the command path of the source agent. This is because the zipfiles.xml Ant script
contains the target used to compress the contents of the directory at the source agent. For more
information about setting the command path of an agent, see commandPath.
Table 19. Summary of source-side and destination-side exit points and Java interfaces
Exit point Java interface to implement
Source-side exit points:
Before the entire file transfer starts SourceTransferStartExit.java
After the entire file transfer is complete SourceTransferEndExit.java
Destination-side exit points:
Before the entire file transfer starts DestinationTransferStartExit.java
After the entire file transfer is complete DestinationTransferEndExit.java
- SourceTransferStartExit(onSourceTransferStart).
- PRE_SOURCE Command.
- DestinationTransferStartExits(onDestinationTransferStart).
- PRE_DESTINATION Command.
- The Transfer request is performed.
- DestinationTransferEndExits(onDestinationTransferENd).
- POST_DESTINATION Command.
- SourceTransferEndExits(onSourceTransferEnd.
- POST_SOURCE Command.
Notes:
1. The DestinationTransferStartExits is run only when the transfer completes, either
successfully or partially successfully.
2. The postDestinationCall is run only when the transfer completes, either successfully or partially
successfully.
3. The SourceTransferEndExits is run for successful, partially successful, or failed transfers.
4. The postSourceCall is called only if:
• The transfer was not canceled.
• There is a successful or partially successful outcome.
• Any post-destination transfer programs ran successfully.
"<file server identifier>:<fully-qualified file name of the file on the remote file server>"
For each entry in the list, the exit needs to connect to the file server first (using either the FTP. FTPS or
SFTP protocols), download the file, encrypt it locally and then upload the encrypted file back to the file
server.
Directory separators
Directory separators in source file specifications are always represented using forward slash (/)
characters, regardless of how you have specified directory separators in the fteCreateTransfer
command or in the IBM MQ Explorer. You must take this into account when you write an exit. For
example, if you want to check that the following source file exists: c:\a\b.txt and you have specified
this source file using the fteCreateTransfer command or the IBM MQ Explorer, note the file name is
actually stored as: c:/a/b.txt So if you search for the original string of c:\a\b.txt, you will not find a
match.
Usually for MFT transfers, an agent selects from one of the built-in I/O providers to interact with the
appropriate file systems for the transfer. Built-in I/O providers support the following types of file system:
• Regular UNIX-type and Windows-type file systems
IOExitClasses=testExits.TestExit1,testExits.testExit2
The Java interfaces for the transfer I/O user exits are as follows:
IOExit
The main entry point used to determine if the I/O exit is used. This instance is responsible for making
IOExitPath instances.
IOExitChannel
Enables data to be read from or written to an IOExitPath resource.
IOExitRecordChannel
Extends the IOExitChannel interface for record-oriented IOExitPath resources, which enables data to
be read from or written to an IOExitPath resource in multiples of records.
IOExitLock
Represents a lock on an IOExitPath resource for shared or exclusive access.
IOExitRecordResourcePath
Extends the IOExitResourcePath interface to represent a data container for a record-oriented file; for
example, a z/OS data set. You can use the interface to locate data and to create IOExitRecordChannel
instances for read or write operations.
IOExitResourcePath
Extends the IOExitPath interface to represent a data container; for example, a file or directory. You
can use the interface to locate data. If the interface represents a directory, you can use the listPaths
method to return a list of paths.
IOExitWildcardPath
Extends the IOExitPath interface to represent a path that denotes a wildcard. You can use this
interface to match multiple IOExitResourcePaths.
IOExitProperties
Specifies properties that determine how Managed File Transfer handles IOExitPath for certain aspects
of I/O. For example, whether to use intermediate files or whether to reread a resource from the
beginning if a transfer is restarted.
com.ibm.wmqfte.exit.io.ibmi.qdls.FTEQDLSExit
The com.ibm.wmqfte.exit.io.ibmi.qdls.FTEQDLSExit sample user exit transfers files in the QDLS file
system on IBM i. After the exit is installed, any transfers to files that begin with /QDLS automatically
use the exit.
To install this exit, complete the following steps:
1. Copy the com.ibm.wmqfte.samples.ibmi.ioexits.jar file from the
WMQFTE_install_dir/samples/ioexit-IBMi directory to the agent's exits directory.
2. Add com.ibm.wmqfte.exit.io.ibmi.qdls.FTEQDLSExit to the IOExitClasses property.
3. Restart the agent.
Because exits run inside the Java virtual machine that runs the agent, you cannot use the direct
debugging support that is typically included in an integrated development environment. However, you can
enable remote debugging of the JVM and then connect a suitable remote debugger.
The agent does not start until the debugger connects. Use the set command on Windows instead of the
export command.
You can also use other communication methods between the debugger and JVM. For example, the JVM
can open the connection to the debugger instead of vice versa, or you can use shared memory instead of
TCP. See the Java Platform Debugger Architecture documentation for further details.
You must use the -F (foreground) parameter when you start the agent in remote debug mode.
/*
* A Sample Source Transfer End Exit that prints information about a transfer to standard
output.
* If the agent is run in the background the output will be sent to the agent's event log file.
If
* the agent is started in the foreground by specifying the -F parameter on the fteStartAgent
* command the output will be sent to the console.
*
* To run the exit execute the following steps:
*
* Compile and build the exit into a jar file. You need the following in the class path:
* {MQ_INSTALLATION_PATH}\mqft\lib\com.ibm.wmqfte.exitroutines.api.jar
*
* Put the jar in your agent's exits directory:
* {MQ_DATA_PATH}\config\coordQmgrName\agents\agentName\exits\
*
* Update the agent's properties file:
* {MQ_DATA_PATH}\config\coordQmgrName\agents\agentName\agent.properties
* to include the following property:
* sourceTransferEndExitClasses=[packageName.]SampleEndExit
*
* Restart agent to pick up the exit
*
* Send the agent a transfer request:
* For example: fteCreateTransfer -sa myAgent -da YourAgent -df output.txt input.txt
*/
import java.util.List;
import java.util.Map;
import java.util.Iterator;
import com.ibm.wmqfte.exitroutine.api.SourceTransferEndExit;
import com.ibm.wmqfte.exitroutine.api.TransferExitResult;
import com.ibm.wmqfte.exitroutine.api.FileTransferResult;
if (fileResults.isEmpty()) {
System.out.println("No files in the list");
return "No files";
}
else {
while (iterator.hasNext()){
final FileTransferResult thisFileSpec = iterator.next();
System.out.println("Source file spec: " +
thisFileSpec.getSourceFileSpecification() +
", Destination file spec: " +
thisFileSpec.getDestinationFileSpecification());
}
}
return "Done";
}
}
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import java.util.StringTokenizer;
import com.ibm.wmqfte.exitroutine.api.CredentialExitResult;
import com.ibm.wmqfte.exitroutine.api.CredentialExitResultCode;
import com.ibm.wmqfte.exitroutine.api.CredentialPassword;
import com.ibm.wmqfte.exitroutine.api.CredentialUserId;
import com.ibm.wmqfte.exitroutine.api.Credentials;
import com.ibm.wmqfte.exitroutine.api.ProtocolBridgeCredentialExit;
/**
* A sample protocol bridge credential exit
*
* This exit reads a properties file that maps mq user ids to server user ids
* and server passwords. The format of each entry in the properties file is:
*
* mqUserId=serverUserId,serverPassword
*
* The location of the properties file is taken from the protocol bridge agent
* property protocolBridgeCredentialConfiguration.
*
* To install the sample exit compile the class and export to a jar file.
* Place the jar file in the exits subdirectory of the agent data directory
* of the protocol bridge agent on which the exit is to be installed.
* In the agent.properties file of the protocol bridge agent set the
/* (non-Javadoc)
* @see com.ibm.wmqfte.exitroutine.api.ProtocolBridgeCredentialExit#initialize(java.util.Map)
*/
public synchronized boolean initialize(Map<String, String> bridgeProperties) {
// Flag to indicate whether the exit has been successfully initialized or not
boolean initialisationResult = true;
if (initialisationResult) {
if (initialisationResult) {
// Populate the map of mqUserId to server credentials from the properties
final Enumeration<?> propertyNames = mappingProperties.propertyNames();
}
}
return initialisationResult;
}
/* (non-Javadoc)
* @see com.ibm.wmqfte.exitroutine.api.ProtocolBridgeCredentialExit#mapMQUserId(java.lang.String)
*/
public synchronized CredentialExitResult mapMQUserId(String mqUserId) {
CredentialExitResult result = null;
// Attempt to get the server credentials for the given mq user id
final Credentials credentials = credentialsMap.get(mqUserId.trim());
if ( credentials == null) {
// No entry has been found so return no mapping found with no credentials
result = new CredentialExitResult(CredentialExitResultCode.NO_MAPPING_FOUND, null);
}
else {
// Some credentials have been found so return success to the user along with the credentials
result = new CredentialExitResult(CredentialExitResultCode.USER_SUCCESSFULLY_MAPPED,
credentials);
}
return result;
}
/* (non-Javadoc)
* @see com.ibm.wmqfte.exitroutine.api.ProtocolBridgeCredentialExit#shutdown(java.util.Map)
*/
public void shutdown(Map<String, String> bridgeProperties) {
// Nothing to do in this method because there are no resources that need to be released
}
}
SamplePropertiesExit2.java
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Properties;
import com.ibm.wmqfte.exitroutine.api.ProtocolBridgePropertiesExit2;
import com.ibm.wmqfte.exitroutine.api.ProtocolServerPropertyConstants;
/**
* A sample protocol bridge properties exit. This exit reads a properties file
* that contains properties for protocol servers.
/**
* Helper class to encapsulate protocol server information.
*/
private static class ServerInformation {
private final String type;
private final String host;
private final int port;
/** A {@code Map} that holds information for each configured protocol server */
final private Map<String, ServerInformation> servers = new HashMap<String, ServerInformation>();
/* (non-Javadoc)
* @see
com.ibm.wmqfte.exitroutine.api.ProtocolBridgePropertiesExit#getProtocolServerProperties(java.lang.String)
*/
// Build the return set of properties from the collected protocol server information, when
available.
// The properties set here is the minimal set of properties to be a valid set.
final Properties result;
if (info != null) {
result = new Properties();
result.setProperty(ProtocolServerPropertyConstants.SERVER_NAME, protocolServerName);
result.setProperty(ProtocolServerPropertyConstants.SERVER_TYPE, info.getType());
result.setProperty(ProtocolServerPropertyConstants.SERVER_HOST_NAME, info.getHost());
if (info.getPort() != -1)
result.setProperty(ProtocolServerPropertyConstants.SERVER_PORT_VALUE, ""+info.getPort());
result.setProperty(ProtocolServerPropertyConstants.SERVER_PLATFORM, "UNIX");
if (info.getType().toUpperCase().startsWith("FTP")) { // FTP & FTPS
result.setProperty(ProtocolServerPropertyConstants.SERVER_TIMEZONE, "Europe/London");
result.setProperty(ProtocolServerPropertyConstants.SERVER_LOCALE, "en-GB");
}
result.setProperty(ProtocolServerPropertyConstants.SERVER_FILE_ENCODING, "UTF-8");
} else {
System.err.println("Error no default protocol file server entry has been supplied");
result = null;
}
return result;
}
/* (non-Javadoc)
* @see com.ibm.wmqfte.exitroutine.api.ProtocolBridgePropertiesExit#initialize(java.util.Map)
*/
public boolean initialize(Map<String, String> bridgeProperties) {
// Flag to indicate whether the exit has been successfully initialized or not
boolean initialisationResult = true;
if (initialisationResult) {
// The Properties object that holds protocol server information
final Properties mappingProperties = new Properties();
if (initialisationResult) {
// Populate the map of protocol servers from the properties
for (Entry<Object, Object> entry : mappingProperties.entrySet()) {
final String serverName = (String)entry.getKey();
final ServerInformation info = new ServerInformation((String)entry.getValue());
servers.put(serverName, info);
}
}
}
return initialisationResult;
}
/* (non-Javadoc)
* @see com.ibm.wmqfte.exitroutine.api.ProtocolBridgePropertiesExit#shutdown(java.util.Map)
*/
public void shutdown(Map<String, String> bridgeProperties) {
// Nothing to do in this method because there are no resources that need to be released
}
/* (non-Javadoc)
* @see com.ibm.wmqfte.exitroutine.api.ProtocolBridgePropertiesExit2#getCredentialLocation()
*/
public String getCredentialLocation() {
String envLocationPath;
if (System.getProperty("os.name").toLowerCase().contains("win")) {
// Windows style
envLocationPath = "%CREDENTIALSHOME%\\ProtocolBridgeCredentials.xml";
}
else {
// Unix style
envLocationPath = "$CREDENTIALSHOME/ProtocolBridgeCredentials.xml";
}
return envLocationPath;
}
Troubleshooting MFT
Use the following reference information to help you to diagnose errors in Managed File Transfer:
– For UNIX platforms: run the command: ulimit -m 1048576 (or approximately 1 GB).
This maximum resident set size is enough to allow a maximum of 25 concurrent transfers (25
concurrent transfers is the default for the maximum number of transfers for an agent).
– For all platforms: set the BFG_JVM_PROPERTIES environment variable as follows:
BFG_JVM_PROPERTIES="-Xmx1024M"
If you want to allow numbers of concurrent transfers greater than the maximum default of 25, use
larger sizes for ulimit and BFG_JVM_PROPERTIES than those suggested.
Note: For Connect:Direct bridge agents the default for the maximum number of concurrent transfers is
5.
• When you use Managed File Transfer to transfer files in text mode between different platforms, the
default file encoding of the source platform might not be supported by the destination platform. This
causes a transfer to fail with the following error:
BFGIO0058E: The transfer source encoding xxx is illegal or for an unsupported character set.
You can resolve this error by setting the source encoding to one that is supported by the destination
platform using an environment variable. Set the BFG_JVM_PROPERTIES system environment variable
on the source system as follows: BFG_JVM_PROPERTIES="-Dfile.encoding=xxx", where xxx is an
encoding supported by the destination platform. For example, if you are transferring files in text mode
from a Solaris platform to a different platform and the source locale is set to "ja", set
BFG_JVM_PROPERTIES as follows: BFG_JVM_PROPERTIES="-Dfile.encoding=EUC-JP". If the
source locale is set to "ja_JP.PCK", set BFG_JVM_PROPERTIES as follows: BFG_JVM_PROPERTIES="-
Dfile.encoding=Shift_JIS".
You can also resolve this error for an individual transfer by using the -sce parameter when you start a
new transfer. For more information, see “fteCreateTransfer: start a new file transfer” on page 428.
Purpose
Use this command to switch agent trace on and off or to change the level of agent trace that is set. When
you use the fteSetAgentTraceLevel command, you do not have to shut down and restart an agent to
modify the trace level. The trace files produced are located in MQ_DATA_PATH/mqft/logs/
coordination_qmgr_name/agents/agent_name/logs/trace%PID%/trace%PID%.txt, where
%PID% is the process ID for the agent instance.
Attention:
When using IBM WebSphere MQ 7.5 or later on Multiplatforms, only the user that the
agent process is running under can run the fteSetAgentTraceLevel command.
This also applies to the Long Term Support release from IBM MQ 9.0.0 Fix Pack 1.
For more information, see the adminGroup property in “The MFT agent.properties file” on page
537.
In IBM WebSphere MQ 7.5, and later, the fteSetAgentTraceLevel command also writes a trace for
the agent process controller. The trace files produced are located in MQ_DATA_PATH/mqft/logs/
coordination_qmgr_name/agents/agent_name/logs/pctrace%PID%/pctrace%PID%.txt,
where %PID% is the process ID for the agent instance.
You can also use the command to cause the agent process to generate a Javacore. The agent generates a
Javacore file in the following directory: MQ_DATA_PATH/mqft/logs/coordination_qmgr_name/
agents/agent_name.
Because running trace can affect your performance significantly and can produce a large amount of trace
data, run trace with care and only when necessary. Typically, enable trace only when asked to do so by
your IBM service representative.
You can set further trace properties, for example trace file size and the number of trace files to keep, in
the agent.properties file. These properties are described in Advanced agent properties.
Specify the optional -p parameter for this command only if you want to use a set of configuration options
different from your default set. See “The MFT agent.properties file” on page 537 for more information.
Syntax
fteSetAgentTraceLevel
fteSetAgentTraceLevel -traceAgent classes=level
-disableOnAnyFFDC -jc
-disableOnFFDC FFDC_specification
agent_name
-p configuration_options
From IBM MQ 9.0.5, you can specify a colon-separated list of class specifications. This
option enables you to set tracing of different classes, and at different levels. For example:
You can still specify a comma-separated list of class specifications that you want the level of trace to
apply to. If you do not specify this parameter, the trace level is applied to all agent classes. Use the
following format:
classes=level
For example:
com.ibm.wmqfte=all
You can substitute classes with a Managed File Transfer package name to trace a specific package
only. However, because this option captures just a subset of the agent's behavior, you are generally
not recommended to use package filtering.
If (classes) start with a plus sign (+), the list of trace classes following the plus sign are added to any
existing trace classes currently being traced.
The valid trace level options are as follows and are listed in ascending order of trace file size and
detail:
off
Switches the agent trace off but continues to write information to the log files. This is the default
option.
flow
Captures data for trace points associated with processing flow in the agent.
moderate
Captures a moderate amount of diagnostic information in the trace.
verbose
Captures a verbose amount of diagnostic information in the trace.
all
Sets agent trace to run on all agent classes.
To start full tracing for the agent, run the following command:
To stop full tracing for the agent, run the following command:
-disableOnAnyFFDC
Optional. If this parameter is specified, trace is disabled on the agent when it generates a First Failure
Data Capture (FFDC) file.
You can specify only one of the -disableOnAnyFFDC and -disableOnFFDC parameters.
-jc
Optional. Requests that the agent generates a Javacore file. The IBM service team may request that
you run the command with this parameter to assist with problem diagnosis. This parameter cannot be
used with any other parameter.
-p configuration_options
Optional. This parameter determines the set of configuration options that is used to set the agent
trace level. Use the name of a non-default coordination queue manager as the input for this
parameter. The command then uses the set of properties files associated with this non-default
coordination queue manager.
If you do not specify this parameter, the set of configuration options based on the default coordination
queue manager is used.
agent_name
Required. The name of the Managed File Transfer Agent that you want to set the trace level for.
-? or -h
Optional. Displays command syntax.
Example
In this example, the trace level is set to all for all classes for AGENT1:
In this example, the trace level is set to all for the classes com.ibm.wmqfte.agent.Agent and
com.ibm.wmqfte.cmdhandler for AGENT1:
In this example, subclasses are excluded from the trace because the -traceLevel parameter is set to
off. All classes starting with com.ibm.outer are traced at verbose level except classes starting with
com.ibm.outer.inner:
Return codes
0
Command completed successfully.
1
Command ended unsuccessfully.
Procedure
• If it is possible for you to stop an agent for a short period of time, collect a trace of the agent from
startup.
For more information, see “Collecting a Managed File Transfer agent trace from startup” on page 278.
• If it is not possible for you to stop an agent, then collect a trace dynamically using the
fteSetAgentTraceLevel command.
For more information, see “Collecting a Managed File Transfer agent trace dynamically” on page 279.
Procedure
1. Locate the agent.properties file for the agent that needs to be traced.
The agent.properties file can be found in the MQ_DATA_PATH/mqft/config/
coordination_qmgr_name/agents/agent_name directory.
2. Edit the files and add entries for the following properties:
• trace=trace specification
trace=com.ibm.wmqfte=all
traceFiles=5
traceSize=200
This results in the agent writing trace data to a maximum of 5 files, where each file has a size of
200MB.
For more information on these agent properties, see The MFT agent.properties file.
3. Stop the agent that needs to be traced, using the fteStopAgent command.
4. Start the agent, by running the fteStartAgent command.
5. Reproduce the issue.
6. Stop the agent.
7. Edit the agent.properties file for the agent, and remove the entries for the trace, traceFiles,
and traceSize properties that you added in step “2” on page 278.
This ensures that trace is not enabled the next time you restart the agent.
Results
The resultant trace files are written to the MQ_DATA_PATH/mqft/logs/coordination_qmgr_name/
agents/agent_name/logs/trace%PID% directory, where %PID% is the process identifier for the
agent.
Procedure
1. Turn on trace for the agent by running the following command:
The -traceAgent parameter determines the internal classes and packages that are to be traced.
Unless otherwise specified by your IBM Support representative, set this property to the value
com.ibm.wmqfte=all.
2. Reproduce the issue.
3. Turn trace off, using the command:
4. If an agent is busy, then it is possible that the trace files will wrap quickly and overwrite the
information needed to investigate the issue.
traceFiles=5
traceSize=200
This results in the agent writing trace data to a maximum of 5 files, where each file has a size
of 200MB.
For more information on these agent properties, see The MFT agent.properties file.
4) Stop the agent, using the fteStopAgent command.
5) Start the agent, by running the fteStartAgent command.
6) Run the command:
b) The second option is to contact your IBM Support representative, if it is not possible to stop the
agent for a short period of time.
You can then discuss alternative trace specifications to use, in order to reduce the amount of trace
data that is being generated.
Results
The resultant trace files are written to the MQ_DATA_PATH/mqft/logs/coordination_qmgr_name/
agents/agent_name/logs/trace%PID% directory, where %PID% is the process identifier for the
agent.
Procedure
1. Bring up a command prompt, and navigate to the MQ_INSTALLATION_PATH\bin directory.
2. Run the command:
where
• command_name is the name of the command to be traced.
• classes=level is the trace level to use, and which classes to enable trace for. Unless otherwise
specified by your IBM Support Representative, set this to com.ibm.wmqfte=all.
• directory_path is the directory where the trace files will be written to.
• command_arguments are the arguments that need to be passed to the command, for example, the
name of the agent for the ftePingAgent command.
Results
The resultant trace files are written to the directory specified by the -tracePath parameter.
The trace files are called trace%PID%.txt.number, where:
• %PID% is the process identifier for the command.
• number is a sequence number for the trace file. Typically, the trace information generated by a
command is contained within a single trace file that has a sequence number of 0.
However, it is possible that a command will generate a lot of trace information. In this situation, the
trace will be written to multiple files. The current trace file has a sequence number of 0, the next oldest
trace file has a sequence number of 1, and so on.
Trace output for commands are written to a maximum of five wrapping trace files. The maximum size of
each trace file is 20MB.
Note: If the user running the command does not have permission to write to the directory specified by the
-tracePath parameter, the trace output is written to standard error.
Example
In this example, the fteListAgents command is traced, and the trace is written to the C:\trace
directory:
The trace file written to /tmp only contains information about the processing performed by the
fteCreateTransfer command, such as, how the command builds the transfer request message that is
sent to the agent, and how long it waits for the agent to send back an acknowledgment indicating that it
has received the request. The trace file does not contain any information about the transfer itself.
Procedure
• If it is possible for you to stop a logger for a short period of time, collect a trace of the logger from
startup.
For more information, see “Collecting a Managed File Transfer standalone logger trace from startup”
on page 282.
• If it is not possible for you to stop a logger, then collect a trace dynamically using the
fteSetLoggerTraceLevel command.
For more information, see “Collecting a Managed File Transfer standalone logger trace dynamically” on
page 283.
Procedure
1. Locate the logger.properties file for the logger that needs to be traced.
The logger.properties file can be found in the MQ_DATA_PATH/mqft/config/
coordination_qmgr_name/loggers/logger_name directory.
2. Edit the file and add entries for the following properties:
• trace=trace specification
The trace property determines the internal classes and packages that are to be traced. Unless
otherwise specified by your IBM Support representative, set this property to the value
com.ibm.wmqfte=all.
trace=com.ibm.wmqfte=all
traceFiles=5
traceSize=200
This results in the logger writing trace data to a maximum of 5 files, where each file has a size of
200MB.
For more information on these logger properties, see The MFT logger.properties file.
3. Stop the logger that needs to be traced, using the fteStopLogger command.
4. Start the logger, by running the fteStartLogger command.
5. Reproduce the issue.
6. Stop the logger.
7. Edit the logger.properties file for the logger, and remove the entries for the trace, traceFiles,
and traceSize properties that you added in step “2” on page 282.
This ensures that trace is not enabled the next time you restart the logger.
Results
The resultant trace files are written to the MQ_DATA_PATH/mqft/logs/coordination_qmgr_name/
loggers/logger_name/logs/trace%PID% directory, where %PID% is the process identifier for the
logger.
Procedure
1. Turn on trace for the logger by running the following command:
The -traceLogger parameter determines the internal classes and packages that are to be traced.
Unless otherwise specified by your IBM Support representative, set this property to the value
com.ibm.wmqfte=all.
2. Reproduce the issue.
3. Turn trace off, using the command:
4. If a logger is busy, then it is possible that the trace files will wrap quickly and overwrite the information
needed to investigate the issue.
In this situation there are two options:
a) The first option is to:
traceFiles=5
traceSize=200
This results in the logger writing trace data to a maximum of 5 files, where each file has a size
of 200MB.
For more information on these logger properties, see The MFT logger.properties file.
4) Stop the logger, using the fteStopLogger command.
5) Start the logger, by running the fteStartLogger command.
6) Run the command:
b) The second option is to contact your IBM Support representative, if it is not possible to stop the
logger for a short period of time.
You can then discuss alternative trace specifications to use, in order to reduce the amount of trace
data that is being generated.
Results
The resultant trace files are written to the MQ_DATA_PATH/mqft/logs/coordination_qmgr_name/
loggers/logger_name/logs/trace%PID% directory, where %PID% is the process identifier for the
logger.
Procedure
• If it is possible for you to stop an agent for a short period of time, collect a trace of the agent from
startup.
For more information, see “Collecting a Managed File Transfer for z/OS agent trace from startup” on
page 285.
• If it is not possible for you to stop an agent, then collect a trace dynamically using the
fteSetAgentTraceLevel command.
For more information, see “Collecting a Managed File Transfer for z/OS agent trace dynamically” on
page 288.
Collecting a Managed File Transfer for z/OS agent trace from startup
Where it is possible for you to stop an agent for a short period of time, you should collect IBM MQ
Managed File Transfer agent trace from startup.
Procedure
• If you are using:
– Unix System Services (USS), see “Collecting an agent trace from startup using USS” on page 286.
– JCL, see “Collecting an agent trace from startup using JCL” on page 287.
Procedure
1. Locate the agent.properties file for the agent that needs to be traced.
The agent.properties file can be found in the BFG_DATA/mqft/config/
coordination_qmgr_name/agents/agent_name directory.
2. Edit the files and add entries for the following properties:
• trace=trace specification
The trace property determines the internal classes and packages that are to be traced. Unless
otherwise specified by your IBM Support representative, set this property to the value
com.ibm.wmqfte=all.
• traceFiles=number of trace files to use
• traceSize=size of each trace file, in MB
The traceFiles and traceSize properties are used to control the amount of trace data that is
collected. You should set these properties to large values, to collect as much trace data as possible.
For example, to collect 1GB of wrapping trace using the trace specification com.ibm.wmqfte=all,
add the following lines to the agent.properties file:
trace=com.ibm.wmqfte=all
traceFiles=5
traceSize=200
This results in the agent writing trace data to a maximum of 5 files, where each file has a size of
200MB.
For more information on these agent properties, see The MFT agent.properties file.
3. Stop the agent that needs to be traced, using the fteStopAgent command.
4. Start the agent, by running the fteStartAgent command.
5. Reproduce the issue.
6. Stop the agent.
7. Edit the agent.properties file for the agent, and remove the entries for the trace, traceFiles,
and traceSize properties that you added in step “2” on page 286.
This ensures that trace is not enabled the next time you restart the agent.
Results
The resultant trace files are written to the BFG_DATA/mqft/logs/coordination_qmgr_name/
agents/agent_name/logs/trace%PID% directory, where %PID% is the process identifier for the
agent.
Procedure
1. Locate the agent.properties file for the agent that needs to be traced.
The agent.properties file can be found in the BFG_DATA/mqft/config/
coordination_qmgr_name/agents/agent_name directory.
2. Edit the files and add entries for the following properties:
• trace=trace specification
The trace property determines the internal classes and packages that are to be traced. Unless
otherwise specified by your IBM Support representative, set this property to the value
com.ibm.wmqfte=all.
• traceFiles=number of trace files to use
• traceSize=size of each trace file, in MB
The traceFiles and traceSize properties are used to control the amount of trace data that is
collected. You should set these properties to large values, to collect as much trace data as possible.
For example, to collect 1GB of wrapping trace using the trace specification com.ibm.wmqfte=all,
add the following lines to the agent.properties file:
trace=com.ibm.wmqfte=all
traceFiles=5
traceSize=200
This results in the agent writing trace data to a maximum of 5 files, where each file has a size of
200MB.
For more information on these agent properties, see The MFT agent.properties file.
3. Locate the data set containing the JCL for the agent that needs to be traced.
4. Submit the BFGAGSP member within the data set to stop the agent.
5. Restart the agent, by submitting the BFGAGST member in the data set .
6. Reproduce the issue.
7. Submit the BFGAGSP member in the data set to stop the agent again.
8. Edit the agent.properties file for the agent, and remove the entries for the trace, traceFiles,
and traceSize properties that you added in step “2” on page 287.
This ensures that trace is not enabled the next time you restart the agent.
Results
The resultant trace files are written to the BFG_DATA/mqft/logs/coordination_qmgr_name/
agents/agent_name/logs/trace%PID% directory, where %PID% is the process identifier for the
agent.
Procedure
• If you are using:
– Unix System Services (USS), see “Collecting an agent trace dynamically using USS” on page 288.
– JCL, see “Collecting an agent trace dynamically using JCL” on page 289.
Procedure
1. Turn on trace for the agent by running the following command:
The -traceAgent parameter determines the internal classes and packages that are to be traced.
Unless otherwise specified by your IBM Support representative, set this property to the value
com.ibm.wmqfte=all.
2. Reproduce the issue.
3. Turn trace off, using the command:
4. If an agent is busy, then it is possible that the trace files will wrap quickly and overwrite the
information needed to investigate the issue.
In this situation there are two options:
a) The first option is to:
1) Schedule some time to stop the agent.
2) Locate the agent.properties file for the agent that needs to be traced. The
agent.properties file can be found in the BFG_DATA/mqft/config/
coordination_qmgr_name/agents/agent_name directory.
3) Edit the files and add entries for the following properties:
• traceFiles=number of trace files to use
• traceSize=size of each trace file, in MB
The traceFiles and traceSize properties are used to control the amount of trace data
that is collected.
traceFiles=5
traceSize=200
This results in the agent writing trace data to a maximum of 5 files, where each file has a size
of 200MB.
For more information on these agent properties, see The MFT agent.properties file.
4) Stop the agent, using the fteStopAgent command.
5) Start the agent, by running the fteStartAgent command.
6) Run the command:
b) The second option is to contact your IBM Support representative, if it is not possible to stop the
agent for a short period of time.
You can then discuss alternative trace specifications to use, in order to reduce the amount of trace
data that is being generated.
Results
The resultant trace files are written to the BFG_DATA/mqft/logs/coordination_qmgr_name/
agents/agent_name/logs/trace%PID% directory, where %PID% is the process identifier for the
agent.
Procedure
1. Locate the data set containing the JCL for the agent that needs to be traced.
2. Edit the BFGAGTC member within the data set, and locate the line that contains the text:
-traceAgent
The text following this contains the list of internal classes and packages that are to be traced. By
default, this list is set to:
Unless otherwise specified by your IBM Support representative, leave this value as is.
3. Submit the BFGAGTC member.
4. Reproduce the issue.
5. Edit the BFGAGTC member again, and set the -traceAgent parameter to =off, as shown:
-traceAgent =off +
traceFiles=5
traceSize=200
This results in the agent writing trace data to a maximum of 5 files, where each file has a size
of 200MB.
For more information on these agent properties, see The MFT agent.properties file.
4) Locate the data set containing the JCL for the agent that needs to be traced.
5) Submit the BFGAGSP member within the data set to stop the agent.
6) Restart the agent, by submitting the BFGAGST member in the data set.
7) Edit the BFGAGTC member within the data set, and locate the line that contains the text:
-traceAgent
The text following this contains the list of internal classes and packages that are to be traced.
By default, this list is set to:
com.ibm.wmqfte=all
Unless otherwise specified by your IBM Support representative, leave this value as is.
8) When it is time to enable trace, submit the BFGAGTC member.
-traceAgent =off +
Results
The resultant trace files are written to the BFG_DATA/mqft/logs/coordination_qmgr_name/
agents/agent_name/logs/trace%PID% directory, where %PID% is the process identifier for the
agent.
Procedure
• If you are using:
– Unix System Services (USS), see “Collecting a trace of a command using USS” on page 291.
– JCL, see “Collecting a trace of a command using JCL” on page 292.
Procedure
1. Bring up a command prompt, and navigate to the BFG_PROD/bin directory.
2. Run the command:
where
• command_name is the name of the command to be traced.
• classes=level is the trace level to use, and which classes to enable trace for. Unless otherwise
specified by your IBM Support Representative, set this to com.ibm.wmqfte=all.
• directory_path is the directory where the trace files will be written to.
Results
The resultant trace files are written to the directory specified by the -tracePath parameter.
The trace files are called trace%PID%.txt.number, where:
• %PID% is the process identifier for the command.
• number is a sequence number for the trace file. Typically, the trace information generated by a
command is contained within a single trace file that has a sequence number of 0.
However, it is possible that a command will generate a lot of trace information. In this situation, the
trace will be written to multiple files. The current trace file has a sequence number of 0, the next oldest
trace file has a sequence number of 1, and so on.
Trace output for commands are written to a maximum of five wrapping trace files. The maximum size of
each trace file is 20MB.
Note: If the user running the command does not have permission to write to the directory specified by the
-tracePath parameter, the trace output is written to standard error.
Example
In this example, the fteListAgents command is traced, and the trace is written to the /u/fteuser
directory:
In this example, the fteCreateTransfer command is traced, and the trace is written to the /tmp
directory:
The trace file written to /tmp only contains information about the processing performed by the
fteCreateTransfer command, such as, how the command builds the transfer request message that is
sent to the agent, and how long it waits for the agent to send back an acknowledgment indicating that it
has received the request. The trace file does not contain any information about the transfer itself.
Procedure
1. Locate the data set containing the JCL for the command that needs to be traced.
2. Within the data set, locate the member for that command.
3. Edit the member, and locate the line that contains the name of the command that needs to be traced.
Modify this line so that it includes the text after the command name and before the + sign:
where:
• classes=level is the trace level to use, and which classes to enable trace for. Unless otherwise
specified by your IBM Support Representative, set this to com.ibm.wmqfte=all.
• directory_path is the USS directory where the trace files will be written to.
4. Submit the member.
Results
The resultant trace files are written to the directory specified by the -tracePath parameter.
The trace files are called trace%PID%.txt.number, where:
• %PID% is the process identifier for the command.
• number is a sequence number for the trace file. Typically, the trace information generated by a
command is contained within a single trace file that has a sequence number of 0.
However, it is possible that a command will generate a lot of trace information. In this situation, the
trace will be written to multiple files. The current trace file has a sequence number of 0, the next oldest
trace file has a sequence number of 1, and so on.
Trace output for commands are written to a maximum of five wrapping trace files. The maximum size of
each trace file is 20MB.
Note: If the user running the command does not have permission to write to the directory specified by the
-tracePath parameter, the trace output is written to standard error.
Example
In this example, the member BFGMNLI has been modified to trace the fteListMonitors command:
//********************************************************************
//* <copyright
//* notice="lm-source"
//* pids="5655-MF9"
//* years="2013,2016"
//* crc="3927276320" >
//* Licensed Materials - Property of IBM
//*
//* 5655-MF9
//*
//* (C) Copyright IBM Corp. 2013, 2020 All Rights Reserved.
//* </copyright>
//********************************************************************
//* fteListMonitors
//********************************************************************
//BFGCMD EXEC PGM=IKJEFT01,REGION=0M
//SYSEXEC DD DSN=++LIBRARY++,DISP=SHR
//SYSTSPRT DD SYSOUT=*
//STDOUT DD SYSOUT=*
//STDERR DD SYSOUT=*
//SYSTSIN DD *
%BFGCMD CMD=fteListMonitors -trace com.ibm.wmqfte=all -tracePath /u/trace +
-v -p QM1
/*
//
When the member is submitted, the fteListMonitors command writes trace to the USS directory /u/
trace.
Procedure
• If it is possible for you to stop a logger for a short period of time, collect a trace of the logger from
startup.
For more information, see “Collecting a Managed File Transfer for z/OS standalone database logger
trace from startup” on page 294.
• If it is not possible for you to stop a logger, then collect a trace dynamically using the
fteSetLoggerTraceLevel command.
For more information, see “Collecting a Managed File Transfer for z/OS standalone database logger
trace dynamically” on page 296.
Collecting a Managed File Transfer for z/OS standalone database logger trace from startup
Where it is possible for you to stop a logger for a short period of time, you should collect IBM MQ Managed
File Transfer logger trace from startup.
Procedure
• If you are using:
– UNIX System Services (USS), see “Collecting a standalone database logger trace from startup using
USS” on page 294.
– JCL, see “Collecting a standalone database logger trace from startup using JCL” on page 295.
Procedure
1. Locate the logger.properties file for the logger that needs to be traced.
The logger.properties file can be found in the BFG_DATA/mqft/config/
coordination_qmgr_name/loggers/logger_name directory.
2. Edit the file and add entries for the following properties:
• trace=trace specification
The trace property determines the internal classes and packages that are to be traced. Unless
otherwise specified by your IBM Support representative, set this property to the value
com.ibm.wmqfte=all.
• traceFiles=number of trace files to use
• traceSize=size of each trace file, in MB
trace=com.ibm.wmqfte=all
traceFiles=5
traceSize=200
This results in the logger writing trace data to a maximum of 5 files, where each file has a size of
200MB.
For more information on these logger properties, see The MFT logger.properties file.
3. Stop the logger that needs to be traced, using the fteStopLogger command.
4. Start the logger, by running the fteStartLogger command.
5. Reproduce the issue.
6. Stop the logger.
7. Edit the logger.properties file for the logger, and remove the entries for the trace, traceFiles,
and traceSize properties that you added in step “2” on page 294.
This ensures that trace is not enabled the next time you restart the logger.
Results
The resultant trace files are written to the BFG_DATA/mqft/logs/coordination_qmgr_name/
loggers/logger_name/logs/trace%PID% directory, where %PID% is the process identifier for the
logger.
Procedure
1. Locate the logger.properties file for the logger that needs to be traced.
The logger.properties file can be found in the BFG_DATA/mqft/config/
coordination_qmgr_name/loggers/logger_name directory.
2. Edit the file and add entries for the following properties:
• trace=trace specification
The trace property determines the internal classes and packages that are to be traced. Unless
otherwise specified by your IBM Support representative, set this property to the value
com.ibm.wmqfte=all.
• traceFiles=number of trace files to use
• traceSize=size of each trace file, in MB
The traceFiles and traceSize properties are used to control the amount of trace data that is
collected. You should set these properties to large values, to collect as much trace data as possible.
trace=com.ibm.wmqfte=all
traceFiles=5
traceSize=200
This results in the logger writing trace data to a maximum of 5 files, where each file has a size of
200MB.
For more information on these logger properties, see The MFT logger.properties file.
3. Locate the data set containing the JCL for the logger that needs to be traced.
4. Submit the BFGLGSP member within the data set to stop the logger.
5. Restart the logger, by submitting the BFGLGST member in the data set.
6. Reproduce the issue.
7. Submit the BFGLGSP member in the data set to stop the logger again.
8. Edit the logger.properties file for the logger, and remove the entries for the trace, traceFiles,
and traceSize properties that you added in step “2” on page 295.
This ensures that trace is not enabled the next time you restart the logger.
Results
The resultant trace files are written to the BFG_DATA/mqft/logs/coordination_qmgr_name/
loggers/logger_name/logs/trace%PID% directory, where %PID% is the process identifier for the
logger.
Collecting a Managed File Transfer for z/OS standalone database logger trace dynamically
Where it is not possible for you to stop a logger for a short period of time, you should collect Managed File
Transfer for z/OS logger trace dynamically.
Procedure
• If you are using:
– Unix System Services (USS), see “Collecting a standalone database logger trace dynamically using
USS” on page 296.
– JCL, see “Collecting a standalone database logger trace dynamically using JCL” on page 298.
Procedure
1. Turn on trace for the loger by running the following command:
The -traceLogger parameter determines the internal classes and packages that are to be traced.
Unless otherwise specified by your IBM Support representative, set this property to the value
com.ibm.wmqfte=all.
2. Reproduce the issue.
3. Turn trace off, using the command:
4. If a logger is busy, then it is possible that the trace files will wrap quickly and overwrite the information
needed to investigate the issue.
In this situation there are two options:
a) The first option is to:
1) Schedule some time to stop the logger.
2) Locate the logger.properties file for the logger that needs to be traced. The
logger.properties file can be found in the BFG_DATA/mqft/config/
coordination_qmgr_name/loggers/logger_name directory.
3) Edit the file and add entries for the following properties:
• traceFiles=number of trace files to use
• traceSize=size of each trace file, in MB
The traceFiles and traceSize properties are used to control the amount of trace data
that is collected.
The default value of the traceFiles property is 5, and the traceSize property has the
default value of 20MB. This means that if you turn on trace dynamically, and you have not set
the properties, the logger writes trace information to 5 wrapping trace files, each with a
maximum size of 20MB.
You should set these properties to large values, to collect as much trace data as possible.
For example, to collect 1GB of wrapping trace, add the following lines to the
logger.properties file:
traceFiles=5
traceSize=200
This results in the logger writing trace data to a maximum of 5 files, where each file has a size
of 200MB.
For more information on these logger properties, see The MFT logger.properties file.
4) Stop the logger, using the fteStopLogger command.
5) Start the logger, by running the fteStartLogger command.
6) Run the command:
b) The second option is to contact your IBM Support representative, if it is not possible to stop the
logger for a short period of time.
Results
The resultant trace files are written to the BFG_DATA/mqft/logs/coordination_qmgr_name/
loggers/logger_name/logs/trace%PID% directory, where %PID% is the process identifier for the
logger.
Procedure
1. Locate the dataset containing the JCL for the logger that needs to be traced.
2. Edit the BFGLGTC member within the dataset, and locate the line that contains the text:
-traceLogger
The text following this contains the list of internal classes and packages that are to be traced. By
default, this list is set to:
com.ibm.wmqfte=all
Unless otherwise specified by your IBM Support representative, leave this value as is.
3. Submit the BFGLGTC member.
4. Reproduce the issue.
5. Edit the BFGLGTC member again, and set the -traceLogger parameter to =off, as shown:
-traceLogger =off +
traceFiles=5
traceSize=200
This results in the logger writing trace data to a maximum of 5 files, where each file has a size
of 200MB.
For more information on these logger properties, see The MFT logger.properties file.
4) Locate the data set containing the JCL for the logger that needs to be traced.
5) Submit the BFGLGSP member within the data set to stop the logger.
6) Restart the logger, by submitting the BFGLGST member in the data set.
7) Edit the BFGLGTC member within the data set, and locate the line that contains the text:
-traceLogger
The text following this contains the list of internal classes and packages that are to be traced.
By default, this list is set to:
com.ibm.wmqfte=all
Unless otherwise specified by your IBM Support representative, leave this value as is.
8) When it is time to enable trace, submit the BFGLGTC member.
9) Reproduce the issue.
10) Edit the BFGLGTC member again, and set the -traceLogger parameter to =off, as shown:
-traceLogger =off +
Results
The resultant trace files are written to the BFG_DATA/mqft/logs/coordination_qmgr_name/
loggers/logger_name/logs/trace%PID% directory, where %PID% is the process identifier for the
logger.
– On Windows:
set BFG_JVM_PROPERTIES="-Dsun.net.inetaddr.ttl=value"
– On UNIX:
export BFG_JVM_PROPERTIES="-Dsun.net.inetaddr.ttl=value"
where value is the time interval in seconds between each flush of the cached DNS values of the JVM. If
the IP address of the queue manager system is reassigned for any reason (for example, because of a
network outage, an IP lease expiry, or a system reboot), the agent reports its lost connection to the
queue manager. After the JVM DNS cache is flushed, the agent can successfully reconnect. If this
environment variable is not set, the agent cannot reconnect in this scenario without a JVM restart. This
behavior is because the JVM internally caches the IP addresses of host names and does not refresh
them by default.
• If you run the fteStartAgent command and see the following error message, your environment
probably has additional library paths that conflict with Managed File Transfer:
BFGCL0001E: An internal error has occurred. The exception was: 'CC=2;RC=2495;AMQ8568:
The native JNI library 'mqjbnd' was not found. [3=mqjbnd]
If the LD_LIBRARY_PATH or LIBPATH environment variable is set to reference a 64-bit version of the
library before the 32-bit version when the agent is running with a 32-bit version of Java (as is currently
the case for most platforms), this error occurs.
z/OS
• If you are using the agent on z/OS to transfer to a PDS or PDSE data set and an abend
occurs, your system might have limited disk space. The abend is likely to have a system completion
code of B14 with a return code of 0C, indicating there is no space left.
If you are transferring to a sequential data set, the transfer fails and indicates the out-of-space
condition, but the agent remains operational.
• If you are using the agent on z/OS, and the WMQFTEP task generates some Java core
dumps before becoming unresponsive, apply OMVS system services APAR OA43472.
• If you see the following output when running a configuration or administration script on
z/OS:
ls -ltr HMF8800/bin/fteBatch
2. Check this file exists, and that the batch job has read permission to the file.
3. Resolve any problems.,
• If the JCL still fails to process correctly:
1. Create a file in USS, for example, myenv and use an editor to copy information from the environment
file into this myenv file.
2. Save this file.
3. From the command line, use the command chmod +x myenv, to allow the file to be run.
4. Issue the command . myenv. Note, that is (period blank filename).
Running this command reports any errors in the myenv file.
5. Correct any errors in both the myenv and environment files.
Use the following flowchart to help you to diagnose problems and decide what action to take next:
AMQ8075: Authorization failed because the SID for entity 'administrato' cannot be obtained.
2. For more information about the authority needed for the SYSTEM.FTE queue, see “Authority to publish
MFT Agents log and status messages” on page 358.
You can check for agent diagnostic information in the following ways:
• Check whether the agent's log files state that the agent has been stopped.
• Check whether the agent lock file agent.lck still exists.
If you start the agent from a shell script for example, all child processes associated with that script are
removed when the script completes (including the agent process). To keep the agent running past the
duration of the script that called the agent, complete the following step:
1. Prefix the fteStartAgent command with the nohup command to disassociate the fteStartAgent
process (and any child processes) from the script.
In future when the script terminates, the agent now continues to run.
Figure 13. The pingAgent request goes to the SYSTEM.FTE.COMMAND.agent_name queue on the agent
queue manger, through the command queue manager
Figure 14. The pingAgent reply comes back through the agent queue manager to the command queue
manager.
ftePingAgent -w 60 AGENT1
• If the command still times out, check the sender and receiver channels between the command queue
manager and the queue manager of the agent. If the channels have failed, the message containing the
PingAgent request will be stuck on the transmission queue on the command queue manager.
If the channels are up and running, and increasing the wait interval used by the command does not help,
the message needs to be tracked through the configuration to see:
• Whether the message ever reaches the SYSTEM.FTE.COMMAND.agent_name queue.
• If the agent ever picked the message up from this queue.
If you need help to do this:
• Enable queue manager traces on both the command and agent queue managers.
• Enable trace on the agent, using the trace specification com.ibm.wmqfte=all.
• Run the ftePingAgent command, specifying the extra command line options:
-trace com.ibm.wmqfte=all
-tracePath directory_name
This traces the command, and generates a trace file in the directory specified by the -tracePath
argument.
When the command times out, stop all the traces and make them available to IBM support for analysis.
Example
In this example of an error message, a database logger is failing to start:
BFGDB0066E: The logger encountered a problem accessing its credentials file and will stop.
Reported error: BFGNV0145E: The 'Everyone' group has access to the file 'C:\mqmftcredentials.xml'.
Related reference
“MFT permissions to access sensitive configuration information” on page 358
Any file used to store sensitive configuration information, meaning any file referenced from the IBM MQ
configuration tree, must not have system-wide read, write, or (where applicable), delete permissions.
These restrictions also apply to truststore and keystore files.
Use the following flowchart to help you to diagnose problems and decide what action to take next:
What to do if your protocol bridge agent reports that a file is not found
When the protocol bridge agent reports that the SFTP or FTP server that the protocol bridge connects to
returns a File not found error message, this message can mean that one of a number of different
error cases has occurred.
The following possible scenarios can result in a File not found error being returned by the SFTP or
FTP server.
• The file does not exist. Check that the file you are attempting to transfer exists on the system hosting
the SFTP or FTP server.
• The file path does not exist. Check that the file path exists on the system hosting the SFTP or FTP server.
Check that you have entered the file path correctly into the transfer request. If necessary, correct the
file path and submit the transfer request again.
• The file is locked by another application. Check whether the file is locked by another application. Wait
until the file is no longer locked then submit the transfer request again.
• The file permissions do not allow the file to be read. Check whether the file has the correct file
permissions. If necessary, change the file permissions and submit the transfer request again.
• The SFTP or FTP server uses a virtualized root path. If a relative file path is specified in a transfer
request, the protocol bridge agent will attempt to convert the relative path into an absolute file path
based on the home directory used to login to the protocol server.The Managed File Transfer protocol
bridge agent can support only SFTP or FTP servers that allow files to be accessed by their absolute file
path. Those protocol servers that allow access to files based only on the current directory are not
supported by the protocol bridge agent.
Related concepts
“The protocol bridge” on page 217
The protocol bridge enables your Managed File Transfer (MFT) network to access files stored on a file
server outside your MFT network, either in your local domain or a remote location. This file server can use
the FTP, FTPS, or SFTP network protocols. Each file server needs at least one dedicated agent. The
dedicated agent is known as the protocol bridge agent. A bridge agent can interact with multiple file
servers.
Command to set info level output for all resource monitors of an agent
In this example, all resource monitors are being monitored because you have not specified a name, or
names, of specific resource monitors. The name of the agent is AGENT1.
fteSetAgentLogLevel -logMonitor=info AGENT1
See fteSetAgentLogLevel for details of the logMonitor parameter, and examples of how you use the
different options.
================================================================================================================================
==================================
[21/04/2017 11:08:49:367 IST] BFGUT0036I: Resource monitor event log level has changed to "info" for all resource monitors of
this agent.
================================================================================================================================
==================================
================================================================================================================================
==================================
Date Time Thread ID Monitor Name Event
Description
================================================================================================================================
==================================
[21/04/2017 11:08:51:842 IST] 00000023 QMON Monitor Started Resource Monitor Started
[21/04/2017 11:08:51:844 IST] 00000025 QMON Start Poll New poll cycle started
[21/04/2017 11:08:51:924 IST] 00000023 MON1 Monitor Started Resource Monitor Started
[21/04/2017 11:08:51:925 IST] 00000026 MON1 Start Poll New poll cycle started
[21/04/2017 11:08:52:029 IST] 00000026 MON1 End Poll Poll cycle completed in 105
milli seconds. Trigger items matched [ 0 ]
[21/04/2017 11:08:52:055 IST] 00000025 QMON End Poll Poll cycle completed in 212
milli seconds. Trigger items matched [ 0 ]
[21/04/2017 11:09:51:840 IST] 00000025 QMON Start Poll New poll cycle started
[21/04/2017 11:09:51:875 IST] 00000025 QMON End Poll Poll cycle completed in 34
milli seconds. Trigger items matched [ 0 ]
[21/04/2017 11:09:51:924 IST] 00000026 MON1 Start Poll New poll cycle started
[21/04/2017 11:09:51:969 IST] 00000026 MON1 End Poll Poll cycle completed in 45
milli seconds. Trigger items matched [ 0 ]
[21/04/2017 11:10:51:840 IST] 00000025 QMON Start Poll New poll cycle started
[21/04/2017 11:10:51:924 IST] 00000026 MON1 Start Poll New poll cycle started
[21/04/2017 11:10:51:962 IST] 00000025 QMON End Poll Poll cycle completed in 121
milli seconds. Trigger items matched [ 0 ]
[21/04/2017 11:10:51:963 IST] 00000026 MON1 End Poll Poll cycle completed in 39
milli seconds. Trigger items matched [ 0 ]
[21/04/2017 11:10:55:063 IST] 00000041 MON1 Monitor Stopped Resource Monitor Stopped
[21/04/2017 11:10:55:079 IST] 00000041 QMON Monitor Stopped Resource Monitor Stopped
Related reference
“fteSetAgentLogLevel: set MFT protocol bridge agent log level” on page 489
Example
In this example: the source agent, which is also the monitoring agent, is called AGENT_MON; the
destination agent is called AGENT_DEST; the destination file name is /out/files/$
{WMQFTEFileName}. This example requires that the message has the MQMD message descriptor
WMQFTEFileName set. The queue being monitored is LIVE_QUEUE.
1. Create a transfer definition file by running the following command:
<queue useGroups="true">LIVE_QUEUE</queue>
to
This attribute is required so that the transfer reads the group or message that triggered the transfer
from the queue instead of the first group or message on the queue.
3. Create the monitor by running the following command:
Example
This example uses a remote queue definition.
Configuration:
• Source Agent: SAGENT
• Source Agent Queue Manager: SQM
• Destination Agent: DAGENT
• Destination Agent Queue Manager: DQM
• The destination queue of the transfer is CQ6 on queue manager SQM
To define remote queue definition Q6_SQM on DQM to clustered queue CQ6 in SQM (assuming that the
clustered queue CQ6 is already defined in SQM), issue the MQSC command on the DQM queue manager:
fteCreateTransfer -sa SAGENT -sm SQM -da DAGENT -dm DQM -dq Q6_SQM /tmp/single_record.txt
You can avoid the build up of messages on durable queues in one of the following ways:
• Specify that the IBM MQ Explorer plug-in uses a non-durable subscription to the coordination queue
manager. Perform the following steps in your IBM MQ Explorer:
1. Select Window > Preferences > IBM MQ Explorer > Managed File Transfer
2. From the Transfer Log subscription type list, choose NON_DURABLE.
• Clear durable subscriptions from the coordination queue manager that are created by the IBM MQ
Explorer MFT plugin.
The name of the durable subscription is prefixed to show that the subscription was created by the IBM
MQ Explorer MFT plugin, the host name, and the name of the user, for example
MQExplorer_MFT_Plugin_HOST_TJWatson.
Related reference
“Retaining MFT log messages” on page 112
Managed File Transfer sends file transfer progress and log information to the coordination queue
manager. The coordination queue manager publishes this information to any matching subscriptions to
the SYSTEM.FTE topic. If there are no subscriptions, this information is not retained.
You can either complete this step using the IBM MQ Explorer or using MQSC commands. Be aware that
this temporarily stops all publish/subscribe activity on the queue manager, including activity unrelated
to Managed File Transfer if your coordination queue manager is also used for other purposes.
IBM MQ Explorer:
a. In the Navigator view, right-click the coordination queue manager and select Properties.
b. From the Properties pane, select Publish/Subscribe.
c. Select Compatibility from the Publish/Subscribe mode list.
MQSC:
Perform the Managed File Transfer action that has publication problems. For example, for agent
registration, a message is sent whenever the agent is started (you do not need to repeatedly delete
and create the agent to generate registration messages). Because the publish/subscribe engine is
disabled, no publication takes place.
3. Browse the SYSTEM.FTE queue on the coordination queue manager.
A RTM MQ24
A USR JOHNDOE
A ACC 1A0FD4D8F2F4C3C8C9D5F1F9C6F7C1C3F3F00019F7AC30000000000000000000
The second line in the example is the message descriptor user ID for that message.
4. Re-enable the coordination queue manager publish/subscribe engine.
You can either complete this step using the IBM MQ Explorer or using MQSC commands. After you
have re-enabled the publish/subscribe engine in the coordination queue manager, any messages on
the SYSTEM.FTE queue are processed immediately.
IBM MQ Explorer:
a. In the Navigator view, right-click the coordination queue manager and select Properties.
b. From the Properties pane, select Publish/Subscribe.
c. Select Enabled from the Publish/Subscribe mode list.
MQSC:
•
BFGII0003E: Unable to open file "/qsys.lib/library.lib/SAVF.FILE"
for reading
•
BFGII0082E: A file open for read failed due to a Java IOException
with message text "Sharing violation occurred"
These errors can occur if you issue several concurrent requests for an MFT agent to transfer the same IBM
i save file. If you want to concurrently transfer the same save file several times, you must use several
source agents. Use a different source agent for each concurrent transfer.
• BFGCL0043I: Specify the '-h' command line parameter to see more usage information.
Check that the Microsoft libraries are installed. If the libraries are not installed, install them and run the
command again.
• BFGCL0408E: Unable to obtain IBM MQ installation information for queue manager 'queue manager
name'.
Reason Cannot run program "../bin/dspmq": error=2, No such file or directory
When you are issuing commands, you must provide the queue manager host, port, name, and channel
name.
(This calculation is derived from the fact that three checkpoints can be stored in a state message and
each checkpoint might have to buffer up to the maximum size of a message amount of data.)
• If the queue that the agent is writing to is a remote queue, you might have to change the IBM MQ queue
manager, queue, and channel MAXMSGL attributes.
Ensure that the value of each of the following IBM MQ attributes is greater than or equal to the value of
the maxInputOutputMessageLength agent property:
– The maximum message size of the remote queue manager transmission queue on the agent queue
manager
– The maximum message size of the channel from the agent queue manager to the remote queue
manager
– The maximum message size of the destination queue on the remote queue manager
– The maximum message size of the remote queue manager
Ensure that the value of each of the following IBM MQ attributes, in bytes:
– The maximum message size of the agent queue manager
– The maximum message size of the SYSTEM.FTE.STATE.agent_name queue
– The client channel maximum message size, if your agent connects to the queue manager in client
mode
is greater than or equal to the result of the following calculation:
For a file-to-message transfer (which supports a file size of up to 100 MB):
The value of maxInputOutputMessageLength
(This calculation is derived from the fact that three checkpoints can be stored in a state message and
each checkpoint might have to buffer up to the maximum size of a message amount of data.)
If you exceed the value of one of these properties, the agent stops with the following error in the agent
event log:
BFGUT0002E: An internal error has occurred. Product failure data was captured in file
"FFDC.FTE.20100928170828514.8172766022149157013.log".
BFGSS0025E: An internal error has occurred. The exception is: cc=2 rc=2010 op=put - MQPUT to
SYSTEM.FTE.STATE.agent_name
BFGAG0061E: The agent ended abnormally
The following IBM MQ reason codes might be included in this message in the agent event log:
• rc=2010 This reason code maps to MQRC_DATA_LENGTH_ERROR and indicates that the value of the
client channel maximum message size was exceeded. To resolve this problem ensure that the client
3 * (maxInputOutputMessageLength) + 1048576
• rc=2030 This reason code maps to MQRC_MSG_TOO_BIG_FOR_Q and indicates that the value of the
maximum message size of the SYSTEM.FTE.STATE.agent_name queue was exceeded. To resolve this
problem ensure that the maximum message size of the SYSTEM.FTE.STATE.agent_name queue is
greater than or equal to the result of the following calculation:
3 * (maxInputOutputMessageLength) + 1048576
• rc=2031 This reason code maps to MQRC_MSG_TOO_BIG_FOR_Q_MGR and indicates that the value of
the maximum message size of the agent queue manager was exceeded. To resolve this problem ensure
that the maximum message size of the agent queue manager is greater than or equal to the result of the
following calculation:
3 * (maxInputOutputMessageLength) + 1048576
The default checkpoint data size is 1 * 5 * 10 * 262144 bytes = 13107200 bytes (12.5MB). The maximum
number of uncommitted messages in a transaction that a queue manager supports is controlled by the
MaxUncommittedMsgs queue manager attribute. The default value of this attribute is 10000 messages.
If the average message size is less than approximately 1310 bytes the default maximum number of
uncommitted messages is exceeded if there are more than 10000 messages to be written.
If you exceed the MaxUncommittedMsgs limit, the agent stops with the following error in the agent event
log:
BFGSS0024E: The agent has received a reason code of '2024' from the message queue interface (MQI).
The agent cannot continue processing and will now end.
BFGAG0139I: The agent has suspended its current transfers and is now stopping.
BFGSS0024E: The agent has received a reason code of '2102' from the message queue interface (MQI).
The agent cannot continue processing and will now end.
BFGAG0062E: The agent has received MQI reason code '2102'. The agent cannot continue processing and
will now end.
BFGAG0061E: The agent ended abnormally
If only the Managed File Transfer tools are used to manage the data structures, Managed File Transfer is
not affected by UAC and virtual store. However, if the directory structure is changed or rebuilt using
standard operating system tools by a non-IBM MQ administrator, it is possible the new structure will be
diverted into a virtual store. This can cause one or more of the following situations:
• Users, including the IBM MQ administrator, can no longer see files in their expected location.
• An agent might fail to start, reporting message BFGCL0315 but give no supporting reason code.
• The log files cannot be found at the location reported by the agent.
• An agent when started with the -F parameter might fail to start, reporting message:
.
To correct all of these situations:
• As an IBM MQ administrator, use the fteDeleteAgent and fteCreateAgent commands to rebuild
the agent structure.
• As an operating system administrator, remove the IBM MQ entries in the virtual store of the affected
users. For example, on Windows the location of the virtual store is as follows: %USERPROFILE%
\AppData\Local\VirtualStore\
Related reference
“fteDeleteAgent” on page 452
The fteDeleteAgent command deletes a Managed File Transfer Agent and its configuration. If the
agent is a protocol bridge agent, the user credentials file is left on the file system.
“fteCreateAgent: create an MFT agent” on page 383
In this message, AGENT is your agent name and QMGR is your agent queue manager name. If you are
trying to run a stand-alone logger as a service, a similar message is produced, which refers to the logger
rather than an agent.
In this example, the Windows service runs with a user name of fteuser, which has an associated
password ftepassword. When you run the fteCreateAgent command, or one of the other commands
that accepts the -s parameter, you specify the password for the Windows account in plain text. If you
prefer not to display your password, carry out the following steps:
1. Run the command (fteCreateAgent, fteCreateCDAgent, fteCreateBridgeAgent,
fteModifyAgent, fteCreateLoggeror fteModifyLogger) without specifying the -sp parameter.
For example:
Note: The command produces a message that warns you that you must set the password by using the
Windows Services tool before the service starts successfully.
2. Open the Windows Services window.
3. In the list of services, right-click the agent or stand-alone logger service and select Properties. The
agent service display name is Managed File Transfer Agent AGENT @ QMGR, where AGENT is
the agent name and QMGR is your agent queue manager name. The logger service display name is
Managed File Transfer Logger for property set coordination_qmgr_name, where
coordination_qmgr_name is the coordination queue manager that you specified for the stand-alone
logger to use as its property set. For more information about the property set, see “fteStartLogger” on
page 518 and “fteModifyLogger: run an MFT logger as a Windows service” on page 481.
4. In the Properties window, select the Log On tab.
5. Enter the password for the user account that runs the service in the Password and Confirm password
fields. The password characters are hidden as you enter them.
6. Click OK.
Known issues
Problem using the JAVA_HOME system environment variable (applies to Managed File Transfer in
IBM WebSphere MQ 7.5.0 Fix Pack 1 or earlier only).
The JAVA_HOME system environment variable must not be set, otherwise the agent or logger
Windows Service is unlikely to start. The agent or logger Windows Service must be run with the IBM
MQ Java runtime.
Related concepts
“Customizing MFT tasks with variable substitution” on page 185
When the trigger conditions of an active resource monitor are satisfied, the defined task is called. In
addition to calling the transfer or command task with the same destination agent or the same destination
file name every time, you can also modify the task definition at run time. You do this by inserting variable
names into the task definition XML. When the monitor determines that the trigger conditions are satisfied,
and that the task definition contains variable names, it substitutes the variable names with the variable
values, and then calls the task.
“Examples: Variable substitution” on page 187
What to do if you receive an error when updating your MFT database schema
on an Oracle database
You might receive the following error message when updating your database schema to the latest level by
using the ftelog_tables_oracle_702_703.sql file: ERROR at line 1: ORA-02289: sequence
does not exist. This error occurs because the sequences and triggers used by the tables are not in the
same schema as the tables.
Procedure
1. Find out which schema the sequences and triggers used by the Managed File Transfer database logger
tables are located in.
• On Db2, you can use the Control Center to view the tables and schema.
• On Oracle, you can use the Enterprise Manager to view the tables and schema.
2. Open the ftelog_tables_oracle_702_703.sql file in a text editor.
3. In each occurrence of the text SELECT FTELOG.sequence_name.nextval replace the text FTELOG
with the name of the schema where your existing sequences are located.
4. Before each occurrence of the text CREATE OR REPLACE TRIGGER FTELOG.trigger_name, insert
the text DROP TRIGGER schema_name.trigger_name, where schema_name is the name of the
schema where your existing triggers are located.
5. Use the edited ftelog_tables_oracle_702_703.sql file to update the database tables.
One way of moving messages between queues is to use the MA01 SupportPac, for example:
q -IFTE.REJECT -oSYSTEM.MANAGED.DURABLE.49998CFF20006204
The reject queue might contain messages rejected for various reasons, only some of which have been
resolved. In this case you can still reprocess all the messages; those messages that can now be accepted
are consumed, and those messages that cannot are again moved to the reject queue.
Malformed log messages in the transfer log are not logged by the logger. These messages are not viewed
as being significant and so these messages are sent to the reject queue. For more information about
transfer log messages, see “File transfer log message formats” on page 727.
The SQLSTATE value of 42704 indicates that a table that the logger expected to exist, in this case
FTELOG.TRANSFER_EVENT, does not exist.
To fix this problem perform the following steps:
1. Check that the table exists and is complete. For information about the tables that the logger uses and
their columns, see “MFT database logger tables” on page 646.
2. If the table does not exist or is incomplete, check the page size of the database.
3. If the database size is less than 8 KB, increase the page size of your database.
• If your database is on a test system or has no data in it, you can drop the tables and re-create the
database with a page size greater than 8 KB.
• For information about how to increase the page size, see “Increasing the page size of the log
database on Db2 on Windows, UNIX or Linux” on page 33 or “Migrating the database
tables on Db2 on z/OS to IBM MQ 8.0” on page 35.
What to do if MFT does not read keystore properties from the keystore
configuration file in AMS
The keystore configuration file location, if not present in the default location, must be specified by the
MQS_KEYSTORE_CONF variable in order for the Java AMS to run in client mode. If the location is not
specified, the Managed File Transfer Agent logs will show the error message: "Failed to read keystore
properties from the keystore configuration file."
Filename: C:\ProgramData\IBM\MQ\mqft\logs\COORDQM\agents\AGENT1\logs\ffdc
\ABEND.FTE.20200109113518046.1764802189777906538.log
Level: p900-005-180821
Time: 09/01/2020 11:35:18:046 GMT
Thread: 96 (TransferSender[414d51204d44424b525030372020202045fbd6532ebfaa02])
Class: com.ibm.wmqfte.thread.FTEThread
Instance: 55b455b4
Method: uncaughtException
Probe: ABEND_001
Cause: java.lang.OutOfMemoryError: native memory exhausted
Javacore file
NULL ------------------------------------------------------------------------
0SECTION TITLE subcomponent dump routine
NULL ===============================
1TISIGINFO Dump Event "systhrow" (00040000) Detail "java/lang/OutOfMemoryError" "native memory
exhausted" received
1TIDATETIME Date: 2020/01/09 at 11:35:18
1TIFILENAME Javacore filename: C:\ProgramData\IBM\MQ\mqft\logs\COORDQM\agents
\AGENT1\javacore.20200109.113518.14148.0002.txt
Filename: C:\ProgramData\IBM\MQ\mqft\logs\COORDQM\agents\AGENT1\logs\ffdc
\ABEND.FTE.20200109143700286.3177895731698464509.log
Level: p900-005-180821
Time: 09/01/2020 14:37:00:286 GMT
Thread: 918 (AgentStatusPublisher)
Class: com.ibm.wmqfte.thread.FTEThread
Instance: bc10bc1
Method: uncaughtException
Probe: ABEND_001
Cause: java.lang.OutOfMemoryError: Failed to create a thread: retVal -1073741830, errno 12
Javacore file
NULL ------------------------------------------------------------------------
0SECTION TITLE subcomponent dump routine
NULL ===============================
1TISIGINFO Dump Event "systhrow" (00040000) Detail "java/lang/OutOfMemoryError" "Failed to create a
thread: retVal -1073741830, errno 12" received
1TIDATETIME Date: 2020/01/09 at 14:37:00
1TIFILENAME Javacore filename: C C:\ProgramData\IBM\MQ\mqft\logs\COORDQM\agents
\AGENT1\javacore.20200109.143700.2652.0003.txt
set BFG_JVM_PROPERTIES="-Xmx1024M"
For more information about how to set Java system properties using the BFG_JVM_PROPERTIES
environment variable, see Java system properties for MFT.
• To lower or change the Java heap when running the agent as a Windows service:
To pass options to the JVM running the agent as a Windows service, modify the agent using the -sj
parameter specified on the fteModifyAgent command.
You can check this has been successfully set, by reviewing the output0.log file of the agent, after
the agent has been restarted. In the Start Display Current Environment section, a value of 1024 MB
will be reported, as follows:
The maximum amount of memory that the Java virtual machine will attempt to use is: '1024'MB
For example, if an IBM MQ 8.0.0 Fix Pack 5 agent has some in-flight transfers running when it is stopped
and then downgraded to the IBM MQ 8.0.0 Fix Pack 4 level, the next time the agent is started, it checks
the messages on its SYSTEM.FTE.STATE.agent_name queue and finds that they were written when it was
using IBM MQ 8.0.0 Fix Pack 5. As it is now using IBM MQ 8.0.0 Fix Pack 4, the agent reports the
BFGSS0023E error described in the previous paragraph and shuts itself down.
As a general rule, if you want to remove a Fix Pack to either the Managed File Transfer component
completing the following steps should prevent the BFGSS0023E messages from appearing when the
agents are restarted:
1. Ensure that all of their agents have completed their managed transfers.
2. Stop the agents.
3. Remove the Fix Pack.
4. Restart the agents.
Related tasks
“Starting an MFT agent” on page 160
Before you can use a Managed File Transfer agent for a file transfer, you must first start the agent.
Related reference
“MFT Agent queue settings” on page 606
The MQSC command scripts generated by the fteCreateAgent command create the agent queues with
parameters set to the following values. If you do not use the MQSC scripts provided to create the queues,
but create the queues manually, ensure you set the following parameters to the values given.
Related information
BFGSS0001 - BFGSS9999
Reverting a queue manager to a previous version on UNIX
Reverting a queue manager to a previous version on Windows
The following table lists the product intermediate reply codes with their meanings:
Note:
Reply codes are only present if the process that generates the request supplies a reply queue. These are
intermediate replies and Managed File Transfer commands return the final reply code only.
Related reference
“Return codes for files in a transfer” on page 340
Individual files within a transfer have their own result codes which have different meanings to the overall
return code from a command.
<action time="2009-11-23T21:28:09.593Z">progress</action>
...
<status resultCode="1">
<supplement>BFGIO0006E: File "C:\destinationfiles\dest1.doc"
already exists.</supplement>
</status>
• “Connect:Direct file paths specified with a double forward slash” on page 343
• “Increasing the number of concurrent transfers for the Connect:Direct bridge” on page 344
• “Debugging a Connect:Direct process that is called by a file transfer” on page 345
Procedure
1. Stop the Connect:Direct bridge agent.
2. Edit the Connect:Direct bridge agent properties file to include the line:
cdTrace=true
Results
The trace information is written to the output0.log file in the Connect:Direct bridge agent configuration
directory.
Related reference
“The MFT agent.properties file” on page 537
Each Managed File Transfer Agent has its own properties file, agent.properties, that must contain the
information that an agent uses to connect to its queue manager. The agent.properties file can also
contain properties that alter the behavior of the agent.
•
BFGCD0001E: This task was rejected by the Connect:Direct API with the
following error message: Connect:Direct Node detected error.
LCCA000I The user has no functional authority to issue the selp command
•
BFGCD0026I: Connect:Direct messages: The submit of the process
succeeded. Process number 1092 (name F35079AE, SNODE MYNODE)
executing. User fteuser does not have permission to override SNODEID.
User fteuser does not have permission to override SNODEID. User
fteuser does not have permission to override SNODEID.
If you see either of these errors, determine which Connect:Direct user ID is associated with the MQMD
user ID that was used for the transfer request. This Connect:Direct user ID must have authority to perform
the Connect:Direct operations required by the Connect:Direct bridge. For the list of functional authorities
needed, and guidance on how to grant these authorities, see “Mapping credentials for Connect:Direct by
using the ConnectDirectCredentials.xml file” on page 152.
Procedure
1. Change the command that you submitted to include -de overwrite.
2. Submit the command again.
Procedure
1. Specify the source and destination information in the Create New Managed File Transfer wizard.
2. Select Overwrite files on the destination file system that have the same name.
3. Submit the command again.
maxDestinationTransfers
Set this property to a value that is larger than 5, but smaller than or equal to 25. If you choose a value
that is larger than 25, the agent might run out of memory unless you increase the amount of memory
that is available to the JVM used by the agent.
ioThreadPoolSize
The default value of ioThreadPoolSize is 10. This property restricts the number of Connect:Direct
node API connections for transfers where the Connect:Direct bridge agent is the source agent. These
transfers are from Connect:Direct to Managed File Transfer. Use the following guidance to set the
value of this property:
• If the value of maxSourceTransfers is smaller than the value of maxDestinationTransfers,
set ioThreadPoolSize to double the value of maxSourceTransfers or 10, whichever is the
larger
• If the value of maxSourceTransfers is larger than the value of maxDestinationTransfers, set
ioThreadPoolSize to the sum of maxSourceTransfers and maxDestinationTransfers
In addition to these agent properties, you must also change the maximum number of concurrent API
connections for the Connect:Direct node that is part of the Connect:Direct bridge. The Connect:Direct
parameter that controls this number is api.max.connects if your node is on UNIX, or
max.api.connects if your node is on Windows. Make the following changes to the appropriate
parameter:
Related tasks
“Configuring the Connect:Direct bridge” on page 149
Configure the Connect:Direct bridge to transfer files between a Managed File Transfer network and a
Connect:Direct network. The components of the Connect:Direct bridge are a Connect:Direct node and a
Managed File Transfer agent that is dedicated to communicating with that node. This agent is referred to
as the Connect:Direct bridge agent.
Related reference
“The MFT agent.properties file” on page 537
Each Managed File Transfer Agent has its own properties file, agent.properties, that must contain the
information that an agent uses to connect to its queue manager. The agent.properties file can also
contain properties that alter the behavior of the agent.
Procedure
1. Stop the Connect:Direct bridge agent.
2. Edit the agent.properties file in the MQ_DATA_PATH/mqft/config/
coordination_queue_manager/agents/bridge_agent_name directory to include the property
logCDProcess.
The logCDProcess property can have one of the following values:
• None - No information is logged. This is the default.
• Failures - Information about failed Connect:Direct processes is logged.
• All - Information about all Connect:Direct processes is logged.
3. Start the Connect:Direct bridge agent.
Results
Information about Connect:Direct processes is logged to the Connect:Direct bridge agent's output0.log
file. The information that is logged comprises:
• MFT transfer ID
• Connect:Direct process name
• Connect:Direct process number
• Generated process definition
• File name of the process template, if the Connect:Direct process is user-defined
MFT reference
MFT security reference
File system permissions for MFT in IBM MQ
When you install and configure the Managed File Transfer component of IBM MQ, the configuration,
installations, and logs directories are created with the following permissions.
Windows
z/OS
Commands are issued by users, who might be in an operational role where they typically start a file
transfer. Alternatively, they might be in an administrative role where they can additionally control when
agents are created, started, deleted, or cleaned (that is, when messages from all agent system queues are
The agent process also publishes messages to the SYSTEM.FTE topic on the coordination queue manager
using the SYSTEM.FTE queue. Depending on whether the agent process is in the role of the source agent
or destination agent, the agent process might require authority to read, write, update, and delete files.
You can create and modify authority records for IBM MQ objects using the IBM MQ Explorer. Right-click
the object and then click Object Authorities > Manage Authority Records. You can also create authority
records using the setmqaut command, which is described at setmqaut (grant or revoke authority)
command.
Related reference
“Restricting group authorities for MFT-specific resources” on page 349
Instead of granting authority to individual users for all of the various objects that might be involved,
configure two security groups for the purposes of administering Managed File Transfer access control:
FTEUSER and FTEAGENT. It is the responsibility of the IBM MQ administrator to create and populate
these groups. The administrator can choose to extend or modify the proposed configuration described
here.
“Restricting user authorities on MFT agent actions” on page 354
In addition to using groups to manage access to resources, you can enable an additional level of security
to restrict the Managed File Transfer agent actions that a user can take. Grant authorities on an agent
authority queue to a user to give the user permission to perform specific agent actions.
“Authorities for the MFT logger” on page 357
For IBM i:
For z/OS:
• Grant the FTEAGENT group connect and inquire authority to the agent queue manager. For example:
For IBM i:
For z/OS:
For information about which command directly connects to which queue manager, see “Which MFT
commands and processes connect to which queue manager” on page 361
Authority to put a message on the COMMAND queue that belongs to the agent
The agent command queue must be available to any user who is authorized to request that the agent
performs an action. To satisfy this requirement,
• Grant the FTEUSER group only put access to the SYSTEM.FTE.COMMAND.agent_name queue. For
example:
For IBM i:
For z/OS:
• Grant the FTEAGENT group put, get, and setid access to the SYSTEM.FTE.COMMAND.agent_name
queue. For example:
For IBM i:
For z/OS:
Agents need access to put messages to other agents' command queues. If there are agents connected to
remote queue managers, you might need to grant additional authorization to allow the channel to put
messages to this queue.
Authority to put messages on the DATA, STATE, EVENT, and REPLY queues that
belong to the agent
Only Managed File Transfer agents need to be able to use these system queues, therefore grant the group
FTEAGENT put, get and inquire access. The names of these system queues are as follows:
• DATA - SYSTEM.FTE.DATA.agent_name
• STATE - SYSTEM.FTE.STATE.agent_name
• EVENT - SYSTEM.FTE.EVENT.agent_name
• REPLY - SYSTEM.FTE.REPLY.agent_name
For example, for the SYSTEM.FTE.DATA.agent_name queue, use a command like the following:
For z/OS:
Agents need access to put messages to other agents' data and reply queues. If there are agents
connected to remote queue managers, you might need to grant additional authorization to allow the
channel to put messages to these queues.
For IBM i:
For z/OS:
If there are agents connected to remote queue managers, additional authorization might also need to be
granted to allow the channel to put messages to the SYSTEM.FTE queue.
For IBM i:
For z/OS:
For IBM i:
For z/OS:
By default, this queue is SYSTEM.DEFAULT.MODEL.QUEUE, but you can configure the name by setting
values for the properties 'modelQueueName' and 'dynamicQueuePrefix' in the command.properties
file.
By default the name of each temporary queue on z/OS starts with WMQFTE.
The following table summarizes the access control configuration for FTEUSER and FTEAGENT in the
security scheme described:
Table 26. Summary of access control configuration for FTEUSER and FTEAGENT
Object Object type FTEUSER FTEAGENT
Agent queue manager Queue manager CONNECT, INQ, and
SETID. ALT_USER is
also required to
enable user
authority checking.
Coordination queue manager Queue manager
Command queue manager Queue manager CONNECT CONNECT
SYSTEM.FTE Local queue GET and PUT
SYSTEM.FTE.COMMAND.agent_name Local queue PUT BROWSE, GET, PUT,
and SETID
SYSTEM.FTE.DATA.agent_name Local queue GET and PUT
SYSTEM.FTE.EVENT.agent_name Local queue BROWSE, GET and
PUT
SYSTEM.FTE.REPLY.agent_name Local queue GET and PUT
SYSTEM.FTE.STATE.agent_name Local queue BROWSE, GET, INQ,
and PUT
SYSTEM.FTE Local topic SUBSCRIBE PUBLISH and
SUBSCRIBE
SYSTEM.DEFAULT.MODEL.QUEUE Model queue BROWSE, DISPLAY, BROWSE, DISPLAY,
GET, and PUT GET, and PUT
(or the model queue defined in Managed
File Transfer that is used to create a
temporary reply queue.)
On the z/OS platform, the user that runs the agent must have ALT_USER authority to the
user IDs that can request permission to perform an agent action.
Both agents involved in a transfer must have the same level of security enabled, that is,
authorityChecking must be set to the same value in the property files of both agents. Transfers
between agents that have different values for the authorityChecking property will fail.
Important: From IBM MQ 9.0.0 Fix Pack 3 and IBM MQ 9.0.4, inquire is a
required permission on all of the agent authority queues.
The following table summarizes the IBM MQ access authorities that users or groups require in addition to
inquire permission on an agent authority queue to perform specific actions.
IBM MQ access
Managed File authority RACF access level
Transfer access
User action authority Authority queues (Multiplatforms) (z/OS only)
Cancel a transfer of
files from this agent
started by the same
user
Cancel a transfer of
files to this agent
started by the same
user
Delete a resource
monitor created by
the same user
Delete a schedule
created by the
same user
Note: To give a user or group permission to set up a resource monitor or schedule that starts a transfer
the user needs both the Monitor or Schedule authority and Transfer source and Transfer
destination authorities.
From IBM MQ 9.0.0 Fix Pack 3 and IBM MQ 9.0.4, the order in which authority
checks are performed when an agent receives a request to cancel a file transfer is changed so that the
agent first checks whether the user requesting the cancellation is the same user who started the transfer.
If the user canceling the transfer is not the same as the user that requested it, the agent then checks if
the canceling user has browse permission on SYSTEM.FTE.AUTHOPS1.agent_name queues. The change
to the order of checking avoids unexpected errors in agent and queue manager error logs when the user
who requested the file transfer and the user who requested the cancellation are the same.
A user can start one agent and want it to interact with another agent. How the two agents can interact
depends on the level of access authority that the user has on the other agent authority queue.
IBM MQ access
Managed File authority RACF access level
Transfer access
Agent action authority Authority queues (Multiplatforms) (z/OS only)
Example
The setmqaut command is not used on z/OS systems. For z/OS, instead use RACF. See
Setting up security on z/OS for more information.
The setmqaut command is not used on IBM i systems. For IBM i, see Access authorities for
IBM MQ objects, which describes how authorization for IBM MQ objects is done. There are three relevant
CL commands available on IBM i: Grant MQ Object Authority (GRTMQMAUT), Revoke MQ Object
Authority (RVKMQMAUT), and Refresh MQ Authority (RFRMQMAUT).
A user, who is a member of the group requestor_group, wants to set up a resource monitor on AGENT1
that transfers a file from AGENT1, which is running under the user user1, who is a member of the group
user1_group, to AGENT2, which is running under the user user2, who is a member of the group
user2_group. AGENT1 connects to QM1; AGENT2 connects to QM2. Both agents have authority
checking enabled. To make this possible take the following steps:
1. requestor must have Monitor authority on AGENT1. Set this authority by running the following
command on the system where QM1 is running:
2. requestor must have Transfer source authority on AGENT1. Set this authority by running the
following command on the system where QM1 is running:
3. requestor must have Transfer destination authority on AGENT2. Set this authority by running the
following command On the system where QM2 is running:
5. user1 must have Agent destination authority on AGENT2. Set this authority by running the following
command on the system where QM2 is running:
Logging
If user authority checking is enabled, failed authority checks cause a not authorized log message to be
published to the coordination queue manager. See “MFT message formats for security” on page 787 for
more information.
Messages about user authority can be written to the agent event log. You can configure the amount of
information written to the agent event log by setting the logAuthorityChecks property in the agent
property file. By default the level of authority check logging is None. You can also set the value of
logAuthorityChecks to Failures, which specifies that only failed authorization checks are reported,
or All which specifies that failed and successful authorization checks are reported.
For more information, see “The MFT agent.properties file” on page 537.
Related reference
“Restricting group authorities for MFT-specific resources” on page 349
Instead of granting authority to individual users for all of the various objects that might be involved,
configure two security groups for the purposes of administering Managed File Transfer access control:
FTEUSER and FTEAGENT. It is the responsibility of the IBM MQ administrator to create and populate
these groups. The administrator can choose to extend or modify the proposed configuration described
here.
“Authorities for the MFT logger” on page 357
The operating system user who runs the logger requires certain IBM MQ authorities on the logger queues
and the SYSTEM.FTE topic.
“fteStopAgent” on page 519
Use the fteStopAgent command to either stop a Managed File Transfer agent in a controlled way or to
stop an agent immediately if necessary using the -i parameter.
On Windows systems
The criteria for determining that a file has unacceptable system-wide permissions are:
• Any of the Everyone, Guests, or Users groups have any of the following permissions:
– Read data permission on the file
– Append data permission on the file
– Write data permission on the file
• Any of the Everyone, Guests, or Users groups has Create files permission on the folder containing the
file and they also have any of the following permissions:
– Delete subfolders and files permission on the folder containing the file
– Delete permission on the file
For more information about IBM MQ security, see the section starting with Securing.
Managed File Transfer agents flow messages for publication to the SYSTEM.FTE queue on the
coordination queue manager. Each message carries a user ID in its message descriptor (MQMD).
Messages are published using a topic object that is also called SYSTEM.FTE. For the publication of a given
message to take place, the authority records of the SYSTEM.FTE topic must permit publication by the user
ID contained in the MQMD of the message.
On z/OS, the channel initiator user ID needs access to publish to the SYSTEM.FTE topic. The user ID in the
MQMD of the message also needs access to publish to this topic if the RESLEVEL security profile causes
two user IDs to be checked for the channel initiator connection.
commandPath=command_directory_name
separator...command_directory_name
commandPath=command_directory_name_or_data_set_name_prefix
separator...command_directory_name_or_data_set_name_prefix
where:
• command_directory_name is a directory path for commands that can be run.
For example, on a UNIX system if you want to run commands that are located in the
directories /home/user/cmds1 and /home/user/cmds2, set the commandPath agent property as
follows:
commandPath=/home/user/cmds1:/home/user/cmds2
For example, on a Windows system if you want to run commands that are located in the
directories C:\File Transfer\commands and C:\File Transfer\agent commands, set the
commandPath agent property as follows:
On a Windows system the separator character, backslash (\), must be escaped and be entered as a double
backslash (\\). The backslash character (\) can also be replaced with a forward slash (/).
commandPath=/home/user/cmds1:/home/user/cmds2://'USER.CMD1'://CMD2://'USER.CMDS()'
Important: Extreme care must be taken when you set this property, because any command in one of the
specified commandPaths can be called from a remote client system that is able to send commands to the
agent. For this reason, by default, when you specify a commandPath, sandboxing is configured so that all
commandPath directories (and their subdirectories) are automatically denied access for a transfer:
• If the agent is configured to use an agent sandbox, the commandPath directories are automatically
added to the list of denied directories when the agent starts.
• If the agent is configured with one or more user sandboxes, the commandPath directories are added as
<exclude> elements to the <read> and <write> elements for each user sandbox when the agent
starts up.
You can override this behavior for compatibility with the following releases:
• IBM WebSphere MQ File Transfer Edition.
• The IBM WebSphere MQ 7.5.0 Fix Pack 1Managed File Transfer component (or earlier).
• The IBM WebSphere MQ 7.5.0 Fix Pack 2 Managed File Transfer component (or later) on an installation
that does not have the installation property enableFunctionalFixPack=7502 set.
You can override this behavior by adding the following property to the agent.properties file:
addCommandPathToSandbox=false
When the addCommandPathToSandbox property is present and set to false, the following
behavior occurs:
• If the agent is configured to use an agent sandbox, and the sandbox does not have any allowed
directories specified, the commandPath directories are automatically added to the list of denied
directories when the agent starts.
• If the agent is configured to use an agent sandbox, and the sandbox has one or more allowed directories
specified, the commandPath directories are not added to the list of denied directories when the agent
starts.
• If the agent is configured with one or more user sandboxes, the user sandboxes are not changed, and
the commandPath directories are not added as <exclude> elements to the <read> and <write>
elements for each user sandbox.
• If the agent is not configured to use either an agent sandbox, or user sandboxes, then a new agent
sandbox is created when the agent starts up that has the commandPath directories specified as denied
directories.
Related reference
“The MFT agent.properties file” on page 537
Each Managed File Transfer Agent has its own properties file, agent.properties, that must contain the
information that an agent uses to connect to its queue manager. The agent.properties file can also
contain properties that alter the behavior of the agent.
fteAnt
fteCancelTransfer X
fteChangeDefaultConfigurationOptions
fteCleanAgent X
fteCreateAgent X
fteCreateBridgeAgent X
fteCreateCDAgent X
fteCreateEnvironment
fteCreateLogger
fteCreateMonitor X
fteCreateTemplate X
fteCreateTransfer X
fteDefine
fteDelete
fteDeleteAgent X
fteDeleteLogger
fteDeleteMonitor X
fteDeleteScheduledTransfer X
fteDeleteTemplates X
fteDisplayVersion
fteListAgents X
fteListMonitors X
fteListScheduledTransfers X
fteListTemplates X
fteMigrateAgent
fteMigrateConfigurationOptions
fteMigrateLogger
fteModifyAgent
fteModifyLogger
fteObfuscate
ftePingAgent X
fteRAS
fteSetAgentLogLevel
fteSetAgentTraceLevel
fteSetLoggerTraceLevel
fteSetProductID
fteSetupCommands
fteSetupCoordination
fteShowAgentDetails X
fteShowLoggerDetails
fteStartAgent
fteStartLogger
fteStopAgent X
fteStopLogger X
Table 30. Summary of which Managed File Transfer processes connect to which queue manager
The file that contains the credentials information that is required to connect to each type of queue
manager, that is, agent, command, and coordination queue managers, can be specified in the associated
properties file. For example, the coordination queue manager has a coordination.properties file. In
this file, you can set the coordinationQMgrAuthenticationCredentialsFile property to point to
the credentials file.
The commands that connect to the coordination queue manager use the credentials information that is
specified in that file. If security is enabled on a queue manager and this property is incorrectly set, MFT
commands do not successfully complete. For more information, see MFT and IBM MQ connection
authentication.
Related information
Installed MFT command sets
Figure 15. Agents publish status information or store transfer templates on the coordination queue
manager
When any of the preceding commands that connect to the coordination queue manager are run, they
connect directly to the coordination queue manager and either:
• Create or delete a transfer template.
• Query state information about agents, monitors, or scheduled transfers, and display that information to
the user.
Attention: fteCleanAgent connects to the agent queue manager, and removes any state
information for that agent from its system queues.
Running this command could have an impact on the whole topology. As such, you should only run
this command under guidance from IBM.
Figure 19. The fteCleanAgent command connects directly to the agent queue manager, and removes
state information from the system queues of the agent
Related information
Installed MFT command sets
fteMigrateAgent Migrate an agent and its configuration from IBM WebSphere MQ File
Transfer Edition 7.0.4 to Managed File Transfer 7.5 or later
fteChangeDefaultConfigurationOptions Change the default configuration options that you want Managed
File Transfer to use
fteSetupCommands Specify the details of the queue manager that connects to the IBM
MQ network when you issue commands
fteAnt Run an Ant script in an environment with file transfer Ant tasks
available.
fteDeleteScheduledTransfer Delete a particular file transfer that you have previously scheduled
fteListScheduledTransfers List all of the Managed File Transfer transfers that you previously
created using the command line or the IBM MQ Explorer.
fteListTemplates List all the file transfer templates for a coordination queue manager
ftePingAgent Pings an agent to determine whether the agent is active and able to
process transfers.
See Installed MFT command sets for a table showing which commands are installed with which Managed
File Transfer offering.
The syntax for each command and its parameters is presented in the form of a syntax diagram called a
railroad diagram. For information about how to interpret railroad diagrams, see How to read railroad
diagrams.
For more information about defining an alternative group to mqm on z/OS, see Issuing
commands to IBM MQ for z/OS
For more information about authorization, see Authority to administer IBM MQ. If you are
using IBM i, start with the following topic: IBM MQ authorities.
A subset of the Managed File Transfer commands can be issued using the IBM MQ Explorer.
The Managed File Transfer commands are installed in the bin subdirectory of the location chosen when
the product was installed. The commands can be run from either of the following options:
• Directly from the USS environment by specifying the path to the command or including the bin
subdirectory in the user command path.
• From a PDSE data set of commands configured from the PDSE command template library, for a
particular agent or logger. For more information, see “Creating an MFT Agent or Logger command data
set” on page 76.
, You might specify one or more of the values A, B, and C. Any required separator
for multiple or repeated values (in this example, the comma (,)) is shown on the
arrow.
A
You might specify value A multiple times. The separator in this example is
, optional.
Values A, B, and C are alternatives, one of which you might specify. If you specify
A
none of the values shown, the default A (the value shown above the main line) is
used.
B
The railroad fragment Name is shown separately from the main railroad diagram.
Name
Name
A
B
Purpose
Use the -trace parameter for any MFT command to enable trace at a specified level. The trace files
produced are located in your current working directory unless the -tracePath parameter is included to
identify a different directory.
Because running trace can affect your performance significantly and can produce a large amount of trace
data, run trace with care and only when necessary. Typically, enable trace only when asked to do so by
your IBM service representative.
You can set further trace properties, for example trace file size and the number of trace files to keep, in
the agent.properties file. These properties are described in Advanced agent properties.
Syntax
Parameters
-trace (classes=level)
Required. Level to set the trace and which classes to apply the trace to. Specify the following format:
classes=level
For example:
com.ibm.wmqfte=all
If you do not specify this parameter, the value is the directory that the command was
issued from. For example, on z/OS:
/u/smith/fte/wmqmft/mqft/logs/MQPV/loggers/BFGLG1/logs/
Example
In this example the trace level is set to all, meaning that all of the classes belonging to AGENT.NAME are
traced for the fteStartAgent command:
Note: When the agent is started, the trace goes to mft_config/logscoordination_qmgr/agents/
agent
In this example the trace level is set to moderate for the com.ibm.wmqfte.common classes for the agent
AGENT.NAME. A moderate amount of trace is captured for the ftePingAgent command:
In this example the trace level is set to moderate for the com.ibm.wmqfte.common classes for the agent
AGENT.NAME, and the trace is written to the c\$user directory. A moderate amount of trace is captured
for the ftePingAgent command:
Related reference
“Troubleshooting MFT” on page 272
Use the following reference information to help you to diagnose errors in Managed File Transfer:
Purpose
Use the fteAnt command to run an Ant script in an environment with Managed File Transfer. Unlike the
standard ant command, fteAnt requires that you define a script file.
fteAnt
fteAnt
-d -q -v
-keep-going
-f (Ant script)
Parameters
-debug or -d
Optional. Generate debugging output.
-quiet or -q
Optional. Generate minimal output.
-verbose or -v
Optional. Generate verbose output.
-keep-going or -k
Optional. Execute all targets that do not depend on failed targets.
-D property=value
Optional. Use value for a given property. Properties that are set with -D take precedence over those
set in a properties file.
Use the property com.ibm.wmqfte.propertyset to specify the set of configuration options that
are used for Ant tasks. Use the name of a non-default coordination queue manager as the value for
this property. Ant tasks then use the set of configuration options that are associated with this non-
default coordination queue manager. If you do not specify this property, the default set of
configuration options that are based on the default coordination queue manager is used. If you specify
the cmdqm attribute for an Ant task, this attribute takes precedence over the set of configuration
options that are specified for the fteAnt command. This behavior applies regardless of whether you
are using the default set of configuration options or specifying a set with the
com.ibm.wmqfte.propertyset property.
-propertyfile (name)
Optional. Load all properties from a file with -D properties taking precedence.
targets
Optional. The name of one or more targets to run from the Ant script. If you do not specify a value for
this parameter, the default target for the script is run.
-? or -h
Optional. Displays command syntax.
Example
In this example, the target copy in Ant script fte_script.xml is run and the command writes
debugging output to standard out.
Return codes
0
Command completed successfully.
1
Command ended unsuccessfully.
Other status return codes can also be specified from Ant scripts, for example by using the Ant fail task.
fteBatch is a helper script for running Managed File Transfer from the JZOS Batch Launcher. fteBatch is
installed on z/OS only. Typically Managed File Transfer is started using the supplied command shell
scripts, which perform some environment configuration before starting the Java class appropriate to that
function. When Managed File Transfer is started using the JZOS Batch Launcher, the Java class is started
directly from the Launcher. fteBatch can be called as part of the launcher setup to place the required class
name into an environment variable and performs the setup work that the normal command shell scripts
perform before starting Java. This provides a level of isolation between your jobs and the internal class
names used by Managed File Transfer.
The fteBatch command is deprecated for Managed File Transfer 8.0, as you can run Managed File Transfer
through the new PDSE data set of commands. For more information, see “Creating an MFT Agent or
Logger command data set” on page 76.
fteCommon
fteCommon is a helper script started by the other Managed File Transfer command scripts to perform
common setup processing before starting Java.
ftePlatform
ftePlatform is a helper script started by the fteCommon script to perform platform-specific setup
processing.
Purpose
If you issue the fteCancelTransfer command while that transfer is currently in progress, any files
already transferred as part of that transfer remain on the destination system and are not deleted. Any files
partially transferred as part of that transfer are deleted from the destination system. The destination side
of the transfer logs that transfer as "cancelled".
If a transfer to a Connect:Direct node is canceled, any files partially transferred as part of the canceled
transfer remain on the destination system and are not deleted.
You can run the fteCancelTransfer command from any system that can connect to the IBM MQ
network and then route to the agent queue manager. Specifically for the command to run, you must have
installed Managed File Transfer on this system and you must have configured Managed File Transfer on
this system to communicate with the IBM MQ network. If no connectivity details are available, the agent
queue manager details are used for connection instead, provided these details are available.
Specify the optional -p parameter for this command only if you want to use a set of configuration options
different from your default set. See Configuration options for more information.
Syntax
fteCancelTransfer
fteCancelTransfer
-m (agent_qmgr_name)
-a agent_name
-p (configuration_options)
transfer_ID
-mquserid (userID) -mqpassword (password)
Parameters
-m (agent_qmgr_name)
Optional. The name of the agent queue manager. This agent must be either the source or destination
agent for the transfer you want to cancel. If you do not specify this parameter, the cancel request is
sent to the queue manager identified by the set of configuration options you are using.
-p (configuration_options)
Optional. This parameter determines the set of configuration options to use to cancel the transfer. By
convention use the name of a non-default coordination queue manager as the input for this
parameter. The command then uses the set of properties files associated with this non-default
coordination queue manager.
If you do not specify this parameter, the set of configuration options based on the default coordination
queue manager is used.
-a (agent_name)
Required. The name of either the source or destination agent of the transfer that you want to cancel.
-mquserid (userID)
Optional. Specifies the user ID to authenticate with the command queue manager.
transfer_ID
Required. The ID of the transfer you want to cancel. The transfer ID (also known as the request ID) is
displayed at the command line after you issue the fteCreateTransfer command. Transfer IDs are
also included in file transfer log messages or are displayed in the IBM MQ Explorer Transfer Log panel.
-? or -h
Optional. Displays command syntax.
Example
In this example AGENT1 is the source agent for the transfer to be canceled.
Return codes
0
Either the command completed successfully or the specified transfer ID is unknown to the agent. If
the transfer ID is unknown to the agent, the most likely reason is that the transfer has already
completed or has been canceled.
1
Command ended unsuccessfully.
Related reference
“fteCreateTransfer: start a new file transfer” on page 428
The fteCreateTransfer command creates and starts a new file transfer from the command line. This
command can start a file transfer immediately, schedule a file transfer for a future time and date, repeat a
scheduled transfer one or more times, and trigger a file transfer based on certain conditions.
fteChangeDefaultConfigurationOptions
Use the fteChangeDefaultConfigurationOptions command to change the default configuration
options that you want Managed File Transfer to use. The value of the configuration options defines the
group of properties files that Managed File Transfer uses.
Important: On IBM MQ for UNIX, Linux, and Windows, only users who are IBM MQ
administrators (and members of the mqm group) can run this command. If you try to run this command as
a user who is not an IBM MQ administrator, you will receive the error message BFGCL0502E: You are
not authorized to perform the requested operation. and the command will not run.
On z/OS systems, the user must satisfy (at least) one of these conditions in order to run the
migrate command:
• Be a member of the mqm group (if the mqm group is defined on the system).
• Be a member of the group named in the BFG_GROUP_NAME environment variable (if one
is named).
• Have no value set in the BFG_GROUP_NAME environment variable when the command is
run.
Syntax
fteChangeDefaultConfigurationOptions
fteChangeDefaultConfigurationOptions configuration_options
Parameters
configuration_options
Required. This parameter specifies the default configuration options that you want to change to. Use
the name of a non-default coordination queue manager as the input for this parameter.
-? or -h
Optional. Displays command syntax.
Example
In this example, the default configuration options are changed to QM_COORD2:
fteChangeDefaultConfigurationOptions QM_COORD2
Return codes
0
Command completed successfully.
1
Command ended unsuccessfully.
Related concepts
“MFT configuration options on Multiplatforms” on page 68
Managed File Transfer provides a set of properties files that contain key information about your setup and
are required for operation. These properties files are in the configuration directory that you defined when
you installed the product.
Purpose
Use the fteCleanAgent command to delete messages from the persistent and non-persistent queues
used by the agent. Specifically, this command can carry out the following actions:
• Remove any transfers that were in progress to this agent or from this agent before the transfer was
stopped. These transfers are not resumed when the agent restarts
• Remove any commands that have already been submitted to the agent, but have not yet been carried
out
• Delete all resource monitors stored on the agent
• Delete all scheduled transfers stored on the agent
• Delete all invalid messages stored on the agent
If the agent is a Connect:Direct bridge agent, the -ms, -ss, and -ims parameters are not valid. For
Connect:Direct bridge agents the command also carries out the following actions:
• Deletes all files from the directory where the Connect:Direct bridge agent temporarily stores files while
they are being transferred. The location of this directory is defined by the cdTmpDir parameter
• Displays information about the Connect:Direct processes that are associated with any ongoing transfers
Before IBM MQ 9.0.3 and IBM MQ 9.0.0 Fix Pack 2, if you run the fteCleanAgent command with just
the agent_name parameter, by default the command runs as if the -all parameter has been supplied,
which results in all the scheduled transfers, the resource monitor and scheduled transfer definitions on
the agent being cleared.
From IBM MQ 9.0.3 and IBM MQ 9.0.0 Fix Pack 2, you must, by default,
specify which Managed File Transfer state to clear by passing the appropriate parameters to the
fteCleanAgent command, as well as providing an agent name. This means that, by default,
fteCleanAgent does not clear all in-progress and pending transfers, resource monitor definitions and
scheduled transfer definitions for the agent specified. You can enable or disable this behavior by setting
the failCleanAgentWithNoArguments property in the command.properties file to the appropriate
value:
• By default, the value of failCleanAgentWithNoArguments is true, which means that the
fteCleanAgent command fails to run if only the agent_name parameter is specified.
• If failCleanAgentWithNoArguments is set to false and only the agent_name parameter is
specified, fteCleanAgent behaves in the same way as it does when you specify the -all parameter.
You must run the fteCleanAgent command on an agent that has been stopped. If you try to run the
command on an agent that is currently running, you receive an error. This command does not start the
agent. The fteCleanAgent command cleans up an agent on the system where you issue the command.
You cannot clean up an agent on a remote system. To run the fteCleanAgent command you must have
write access to the agent lock file, which is located at MQ_DATA_PATH\mqft\logs
\coordination_QMgr_name\agents\agent_name\agent.lck
The FTEAGENT group must have BROWSE authority on the following queues to run fteCleanAgent
successfully:
• SYSTEM.FTE.COMMAND.agent_name
• SYSTEM.FTE.EVENT.agent_name
• SYSTEM.FTE.STATE.agent_name
If you are running the fteCleanAgent command on an agent that is connected to its queue manager in
bindings mode, and the agent has recently stopped running, the fteCleanAgent command might report
messaging problem: MQRC 2042. This MQRC occurs because a queue handle for the agent still exists in
Syntax
fteCleanAgent
fteCleanAgent
-trs -ms -ss
-all -ims
-allAgentConfiguration -invalidMessages
agent_name
Parameters
You can use the fteCleanAgent command to delete specific artifacts. For example, you can specify the
-trs command to delete pending transfers but not change any resource monitors and scheduled
transfers.
-trs or -transfers
Optional. Specifies that in-progress and pending transfers are to be deleted from the agent. You
cannot specify this parameter with -all or -ims parameters.
-ms or -monitors
Optional. Specifies that all resource monitor definitions are to be deleted from the agent. You cannot
specify this parameter with -all or -ims parameters.
-ss or -schedules
Optional. Specifies that all scheduled transfer definitions are to be deleted from the agent. You cannot
specify this parameter with the -all or -ims parameters.
-all or -allAgentConfiguration
Optional. Specifies that all transfers, resource monitor definitions and scheduled transfer definitions
are to be deleted from the agent. You cannot specify this parameter with the -trs,-ss, -ms, or -ims
parameters.
-ims or -invalidMessages
Optional. Specifies that all invalid messages are to be deleted from the agent. You cannot specify this
parameter with the -trs,-ss,-ms, or -all parameters.
-cdp password
Optional. Valid only if the agent being cleaned is a Connect:Direct bridge agent and you have specified
the -cdu parameter. If you specify the -cdp parameter, the command uses the password provided to
make a connection to the Connect:Direct bridge node and retrieve additional information about
existing Connect:Direct processes. If you do not specify this parameter, and the -cdu parameter has
been specified, you are asked to provide the password interactively.
-mquserid (userID)
Optional. Specifies the user ID to authenticate with the agent queue manager.
-mqpassword (password)
Optional. Specifies the password to authenticate with the agent queue manager. You must also
specify the -mquserid parameter. If you specify -mquserid, but do not specify -mqpassword, you
will be prompted to supply the associated password. The password will not be displayed.
-p (configuration_options)
Optional. This parameter determines the set of configuration options that is used to clean up an agent.
By convention use the name of a non-default coordination queue manager as the input for this
parameter. The command then uses the set of properties files associated with this non-default
coordination queue manager.
If you do not specify this parameter, the set of configuration options based on the default coordination
queue manager is used.
agent_name
Required. The name of the Managed File Transfer agent that you want to clean up.
-? or -h
Optional. Displays command syntax.
Examples
In this basic example, all the queues used by AGENT2 are cleaned up:
Directory Monitor Configuration for "MONITOR1" has been cleared from the Agent.
Schedule Identifier: 1
Source Agent Name: AGENT2
In this example, the invalid messages queue used by AGENT2 are cleaned up:
In this example, the transfers queue used by the Connect:Direct bridge agent, AGENT_CD_BRIDGE, is
cleaned up:
All messages will be deleted from the state and command queues
Return codes
0
Command completed successfully.
1
Command ended unsuccessfully.
Related reference
“fteStopAgent” on page 519
Use the fteStopAgent command to either stop a Managed File Transfer agent in a controlled way or to
stop an agent immediately if necessary using the -i parameter.
“fteDeleteAgent” on page 452
The fteDeleteAgent command deletes a Managed File Transfer Agent and its configuration. If the
agent is a protocol bridge agent, the user credentials file is left on the file system.
“The MFT command.properties file” on page 533
Important: On IBM MQ for UNIX, Linux, and Windows, only users who are IBM MQ
administrators (and members of the mqm group) can run this command. If you try to run this command as
a user who is not an IBM MQ administrator, you will receive the error message BFGCL0502E: You are
not authorized to perform the requested operation. and the command will not run.
On z/OS systems, the user must satisfy (at least) one of these conditions in order to run the
migrate command:
• Be a member of the mqm group (if the mqm group is defined on the system).
• Be a member of the group named in the BFG_GROUP_NAME environment variable (if one
is named).
• Have no value set in the BFG_GROUP_NAME environment variable when the command is
run.
Purpose
Use the fteCreateAgent command to create an agent. This command provides you with the MQSC
commands that you must run against your agent queue manager to create the following agent queues:
• SYSTEM.FTE.AUTHADM1.agent_name
• SYSTEM.FTE.AUTHAGT1.agent_name
• SYSTEM.FTE.AUTHMON1.agent_name
• SYSTEM.FTE.AUTHOPS1.agent_name
• SYSTEM.FTE.AUTHSCH1.agent_name
• SYSTEM.FTE.AUTHTRN1.agent_name
• SYSTEM.FTE.COMMAND.agent_name
• SYSTEM.FTE.DATA.agent_name
• SYSTEM.FTE.EVENT.agent_name
• SYSTEM.FTE.REPLY.agent_name
• SYSTEM.FTE.STATE.agent_name
These queues are internal system queues that you must not modify, delete, or read messages from unless
you are deleting the agent. The MQSC commands to run are also supplied in a file in the following
location: MQ_DATA_PATH\mqft\config\coordination_qmgr_name\agents\agent_name
\agent_name_create.mqsc.
If you later want to delete the agent, this command also provides you with the MQSC commands you must
run to clear then delete the queues used by the agent. The MQSC commands are in a file in the following
location: MQ_DATA_PATH\mqft\config\coordination_qmgr_name\agents\agent_name
\agent_name_delete.mqsc.
Managed File Transfer provides advanced agent properties that help you configure agents. These
properties are described in The agent.properties file.
You might need to create a MQMFTCredentials.xml credentials file in order to work with your agent. A
sample of this file is located in MQ_INSTALLATION_PATH/mqft/samples/credentials/. For more
information and examples, see “MFT credentials file format” on page 789.
Syntax
fteCreateAgent
fteCreateAgent -agentName agent_name -agentQMgr agent_qmgr_name
-agentQMgrHost agent_qmgr_host
-agentQMgrPort agent_qmgr_port
-agentQMgrChannel agent_qmgr_channel
-authorityChecking
-s -su user_name
service_name -sp password -sj options -sl options
-n
Parameters
-agentName (agent_name)
Required. The name of the agent you want to create. The agent name must be unique to its
coordination queue manager.
For more information about naming agents, see Object naming conventions.
-agentQMgr (agent_qmgr_name)
Required. The name of the agent queue manager.
-agentQMgrHost (agent_qmgr_host)
Optional. The host name or IP address of the agent queue manager.
-agentQMgrPort (agent_qmgr_port)
Optional. The port number used for client connections to the agent queue manager.
-agentQMgrChannel (agent_qmgr_channel)
Optional. The channel name used to connect to the agent queue manager.
-agentDesc (agent_description)
Optional. A description of the agent, which is displayed in IBM MQ Explorer.
-s (service_name)
Optional (Windows only). Indicates that the agent is to run as a Windows service, the command must
be run from a Windows administrator user ID. If you do not specify service_name, the service is
named mqmftAgentAGENTQMGR, where AGENT is the agent name and QMGR is your agent queue
manager name.
The display name for the service, which is shown in the Windows Services window in the Name
column, is always Managed File Transfer Agent AGENT@QMGR.
Note: If the redistributable agent is going to run as a Windows service, then the BFG_DATA
environment variable needs to be set in the system environment for the service to work.
-su (user_name)
Optional (Windows only). When the agent is to run as a Windows service, this parameter specifies the
name of the account under which the service runs. To run the agent using a Windows domain user
account specify the value in the form DomainName\UserName. To run the service using an account
from the local built-in domain specify the value in the form UserName.
The Windows user account that you specify using the -su parameter must have the Log on as a
service right. For information about how to grant this right, see “Guidance for running an MFT agent
or logger as a Windows service” on page 322.
Required when -s specified. Equivalent to -serviceUser.
-sp (password)
Optional (Windows only). Password for the user account set by -su or -serviceUser parameter.
This parameter is only valid when -s is specified. Equivalent to -servicePassword. If you do not
specify this parameter when you specify the -s parameter, a warning message is produced. This
message warns you that you must set the password using the Windows Services tool before the
service starts successfully.
-sj (options)
Optional (Windows only). When the agent is started as a Windows service, defines a list of options in
the form of -D or -X that are passed to the JVM. The options are separated using a number sign (#) or
semicolon (;) character. If you must embed any # or semicolon (;) characters, put them inside single
quotation marks.
This parameter is only valid when -s is specified. Equivalent to -serviceJVMOptions.
-sl (options)
Optional (Windows only). Sets the Windows service log level. Valid options are: error, info, warn,
debug. The default is info. This option can be useful if you are having problems with the Windows
service. Setting it to debug gives more detailed information in the service log file.
This parameter is only valid when -s is specified. Equivalent to -serviceLogLevel.
-n
Optional (Windows only). Indicates that the agent is to be run as a normal process. This is mutually
exclusive with the -s option. If neither one of the -s parameter and the -n parameter is specified,
then the agent is configured as a normal Windows process.
Equivalent to -normal.
-p (configuration_options)
Optional. This parameter determines the set of configuration options that is used to create an agent.
By convention use the name of a non-default coordination queue manager as the input for this
parameter. The fteCreateAgent command then uses the set of properties files associated with this
non-default coordination queue manager.
-? or -h
Optional. Displays command syntax.
Example
In this example, AGENT3 is created with an agent queue manager QM_NEPTUNE and uses the default
coordination queue manager:
Return codes
0
Command completed successfully.
1
Command ended unsuccessfully.
Important: On IBM MQ for UNIX, Linux, and Windows, only users who are IBM MQ
administrators (and members of the mqm group) can run this command. If you try to run this command as
a user who is not an IBM MQ administrator, you will receive the error message BFGCL0502E: You are
not authorized to perform the requested operation. and the command will not run.
• Be a member of the group named in the BFG_GROUP_NAME environment variable (if one
is named).
• Have no value set in the BFG_GROUP_NAME environment variable when the command is
run.
Purpose
Use the fteCreateBridgeAgent command to create a protocol bridge agent. For an overview of how to
use the protocol bridge, see “The protocol bridge” on page 217. This fteCreateBridgeAgent
command provides you with the MQSC commands that you must run against your agent queue manager
to create the following agent queues:
• SYSTEM.FTE.AUTHADM1.agent_name
• SYSTEM.FTE.AUTHAGT1.agent_name
• SYSTEM.FTE.AUTHMON1.agent_name
• SYSTEM.FTE.AUTHOPS1.agent_name
• SYSTEM.FTE.AUTHSCH1.agent_name
• SYSTEM.FTE.AUTHTRN1.agent_name
• SYSTEM.FTE.COMMAND.agent_name
• SYSTEM.FTE.DATA.agent_name
• SYSTEM.FTE.EVENT.agent_name
• SYSTEM.FTE.REPLY.agent_name
• SYSTEM.FTE.STATE.agent_name
These queues are internal system queues that you must not modify, delete, or read messages from unless
you are deleting the agent. The MQSC commands to run are also supplied in a file in the following
location: MQ_DATA_PATH\mqft\config\coordination_qmgr_name\agents\agent_name
\agent_name_create.mqsc
If you later want to delete the agent, this command also provides you with the MQSC commands you must
run to clear then delete the queues use by the agent. The MQSC commands are in a file in the following
location: MQ_DATA_PATH\mqft\config\coordination_qmgr_name\agents\agent_name
\agent_name_delete.mqsc.
The fteCreateBridgeAgent command creates a ProtocolBridgeProperties.xml XML file in the
following directory: MQ_DATA_PATH\mqft\config\coordination_qmgr_name\agents
\agent_name.
Users are responsible for manually creating the ProtocolBridgeCredentials.xml file, it is no longer
created by the fteCreateBridgeAgent command.
The ProtocolBridgeCredentials.xml file allows you to define user names and credential
information that the protocol bridge agent uses to authorize itself with the protocol server and the
ProtocolBridgeProperties.xml file allows you to define multiple protocol file servers so you can
transfer to multiple endpoints.
There is a sample ProtocolBridgeCredentials.xml in the MQ_INSTALLATION_PATH/mqft/
samples/credentials/ directory. For more information, see “Protocol bridge credentials file format”
on page 560 and “Protocol bridge properties file format” on page 564.
If you run the fteCreateBridgeAgent command and specify a default protocol file server (parameter -
bt), this default server is contained in the ProtocolBridgeProperties.xml file and its host name is
used for the server name. With the -bt parameter, you need to specify the following parameters:
BFGMQ1007I: The coordination queue manager cannot be contacted or has refused a connection attempt.
The WebSphere MQ reason code was 2058. The agent's presence will not be published.
it indicates that the coordination queue manager can not be contacted and provides the IBM MQ reason
code for why. This information message can indicate that the coordination queue manager is currently
unavailable or that you have defined the configuration incorrectly.
Special characters
Take care when you use parameter values that contain special characters so that you avoid the command
shell interpreting the characters in a way you do not expect. For example, fully qualified file paths and
names that contains such characters as space, quotation mark (single or double), forward-slash or back-
slash characters, might be interpreted by the command shell rather than being passed through directly to
the command itself. To avoid characters being interpreted by the command shell, enclose the entire
parameter in double/single quotation marks or escape the special characters by using the escape
sequence of the command shell.
fteCreateBridgeAgent
fteCreateBridgeAgent -agentName agent_name -agentQMgr agent_qmgr_name
-btstruststore_file
-bp server_port_number -blw
-agentQMgrHost agent_qmgr_host_name
-agentQMgrPort agent_qmgr_port
-agentQMgrChannel agent_qmgr_channel
-authorityChecking
-s -su user_name
service_name -sp password -sj options -sl options
-n
-p configuration-options -f
Parameters
-agentName (agent_name)
Required. The name of the agent you want to create. The agent name must be unique in its
administrative domain.
For more information about naming agents, see Object naming conventions.
-agentQMgr (agent_qmgr_name)
Required. The name of the agent queue manager.
-bt (protocol_file_server_type)
Optional. Specifies that you want to define a default protocol file server. Specify one of the following
options:
-bh (server_host_name)
Required only if you also specify a default protocol file server using the -bt parameter. The IP host
name or IP address of the protocol file server.
-btz (server_time_zone)
Required only if you also specify the -bt parameter (FTP and FTPS servers only). The time zone of the
protocol file server. Specify the time zone in the following format: Area/Location. For example:
Europe/London.
You can use the -htz parameter to list the possible values for -btz. For example:
fteCreateBridgeAgent -htz
-bm (server_platform)
Required only if you also specify a default protocol file server using the -bt parameter. The platform
type of the protocol file server. Specify one of the following options:
UNIX
Generic UNIX platform
WINDOWS
Generic Windows platform
-bsl (server_locale)
Required only if you also specify the -bt parameter (FTP and FTPS servers only). The locale of the
protocol file server. Specify the locale in the following format: xx_XX. For example: en_GB.
• xx is the ISO Language Code. For a list of valid values, see Codes for the Representation of Names of
Languages
• XX is the ISO Country Code. For a list of valid values, see Country names and code elements
-bfe (server_file_encoding)
Required only if you also specify a default protocol file server using the -bt parameter. The character
encoding format of the files stored on the protocol file server. For example: UTF-8.
You can use the -hcs parameter to list the possible values for -bfe. For example:
fteCreateBridgeAgent -hcs
-bts (truststore_file)
Required when you specify the -bt parameter (FTPS servers only). Specifies the path to a truststore
that is used to validate the certificate presented by the FTPS server.
You can specify the -bts parameter only if you have also specified the FTPS option on the -bt
parameter.
-bp (server_port)
Optional. The IP port that the protocol file server is connected to. Specify this parameter only if your
protocol file server does not use the default port for that protocol. If you do not specify this
parameter, Managed File Transfer uses the default port for the protocol type of file server.
-blw
Optional. Defines the protocol file server as having limited write abilities. By default, a protocol bridge
agent expects the protocol file server to permit file deletion, file renaming, and file opening for append
437,909 filename
-agentQMgrHost (agent_qmgr_host)
Optional. The host name or IP address of the agent queue manager.
-agentQMgrPort (agent_qmgr_port)
Optional. The port number used for client connections to the agent queue manager.
-agentQMgrChannel (agent_qmgr_channel)
Optional. The channel name used to connect to the agent queue manager.
-agentDesc (agent_description)
Optional. A description of the agent, which is displayed in the IBM MQ Explorer.
-ac or -authorityChecking
Optional. This parameter enables authority checking. If you specify this parameter, the agent checks
that users who are submitting requests are authorized to perform the requested action. For more
information, see “Restricting user authorities on MFT agent actions” on page 354.
-s (service_name)
Optional (Windows only). Indicates that the agent is to run as a Windows service. If you do not specify
service_name, the service is named mqmftAgentAGENTQMGR, where AGENT is the agent name and
QMGR is your agent queue manager name.
The display name for the service, which is shown in the Windows Services window in the Name
column, is always Managed File Transfer Agent AGENT@QMGR.
-su (user_name)
Optional (Windows only). When the agent is to run as a Windows service, this parameter specifies the
name of the account under which the service runs. To run the agent using a Windows domain user
account specify the value in the form DomainName\UserName. To run the service using an account
from the local built-in domain specify the value in the form UserName.
-f
Optional. Forces the command to overwrite the existing configuration.
-htz
Optional. Displays a list of supported time zones that you can use as input for the -btz parameter.
-hcs
Optional. Displays a list of supported character sets that you can use as input for the -bfe parameter.
Run the fteCreateBridgeAgent -hcs command to list the known code pages for the JVM. This
information is not available from an external source because the known code pages vary between
JVMs.
-mquserid (userID)
Optional. Specifies the user ID to authenticate with the command queue manager.
Deprecated parameters
The following parameters have been deprecated and are not supported on IBM MQ 7.5 or on IBM
WebSphere MQ File Transfer Edition 7.0.2 or later.
-brd (reconnect_delay)
Deprecated. Optional. Specifies in seconds the delay period between attempts to re-establish a lost
connection with the protocol file server. The default value is 10 seconds.
-brr (reconnect_retries)
Deprecated. Optional. Specifies the maximum number of times to try again when attempting to re-
establish a lost connection with the default protocol file server. When this maximum number is
reached, the current file transfer is classed as failed. The default value is 2.
Example
In this example, a new protocol bridge agent ACCOUNTS1 is created with an agent queue manager
QM_ACCOUNTS and uses the default coordination queue manager. ACCOUNTS1 connects to the FTP
server accountshost.ibm.com. This FTP server runs on Windows using a time zone of Europe/Berlin, a
locale of de_DE, and a file encoding of UTF-8. The number of reconnect retries is 4:
In this example, a new protocol bridge agent ACCOUNTS2 is created with an agent queue manager
QM_ACCOUNTS and uses the default coordination manager. ACCOUNTS2 is created without a default
protocol file server.
Note: The above does not apply to Managed File Transfer Agent redistributable.
Additional customizing
If you used the -bt parameter (and the additional parameters that are required) there will be a default
server name in the ProtocolBridgeProperties.xml file.
If you want to add additional ftp servers, or change the location of the credentials file, see “Defining
properties for protocol file servers using the ProtocolBridgeProperties.xml file” on page 220.
Purpose
Use the fteCreateEnvironment command to set up the environment for using the Redistributable
Managed File Transfer Agent. You can run this command with the -d parameter to specify the location for
the MFT Agent data files. If you do not specify the -d parameter, the command creates the data files in the
Redistributable Managed File Transfer Agent download location and sets the data path.
Syntax
fteCreateEnvironment
fteCreateEnvironment
-d data_location -? or -h
Parameters
-d (data_location)
Optional. This parameter is used for specifying the location of the data files at the time when the
environment is set up.
If you do not specify this parameter, the data directory (if it does not already exist) is created in the
location where the Redistributable Managed File Transfer Agent is extracted and the environment
variable (BFG_DATA) is set for this location.
Example
In this example, on Windows, the -d parameter specifies the location where the data folders are created:
fteCreateEnvironment -d C:\mftRedistributable\mftData
On Linux, as a prerequisite, the command has to be run on a bash shell. In a bash shell, the command can
be run in various ways, and the command file needs to be sourced:
source Path_of_MFTZipBin/fteCreateEnvironment
. Path_of_MFTZipBin/fteCreateEnvironment
or, if running from the directory where the command file is present:
. ./fteCreateEnvironment
Attention: Note the space following the first period character (.)
Return codes
0
Command completed successfully.
1
Command ended unsuccessfully.
Important: On IBM MQ for UNIX, Linux, and Windows, only users who are IBM MQ
administrators (and members of the mqm group) can run this command. If you try to run this command as
a user who is not an IBM MQ administrator, you will receive the error message BFGCL0502E: You are
not authorized to perform the requested operation. and the command will not run.
On z/OS systems, the user must satisfy (at least) one of these conditions in order to run the
migrate command:
• Be a member of the mqm group (if the mqm group is defined on the system).
• Be a member of the group named in the BFG_GROUP_NAME environment variable (if one
is named).
• Have no value set in the BFG_GROUP_NAME environment variable when the command is
run.
Purpose
Use the fteCreateCDAgent command to create a Connect:Direct bridge agent. This type of agent is
dedicated to transferring files to and from Connect:Direct nodes. For more information, see “The
Connect:Direct bridge” on page 234. For details of the supported operating system versions for the
Connect:Direct bridge, see the web page IBM MQ System Requirements.
Special characters
Take care when you use parameter values that contain special characters so that you avoid the command
shell interpreting the characters in a way you do not expect. For example, fully qualified file paths and
names that contains such characters as space, quotation mark (single or double), forward-slash or back-
slash characters, might be interpreted by the command shell rather than being passed through directly to
the command itself. To avoid characters being interpreted by the command shell, enclose the entire
parameter in double/single quotation marks or escape the special characters by using the escape
sequence of the command shell.
-cdNode cd_node_name
-agentQMgrHost agent_qmgr_host
-agentQMgrPort agent_qmgr_port
-agentQMgrChannel agent_qmgr_channel
-authorityChecking
-p configuration_options -f
-cdTmpDir cd_tmp_dir
-s -su user_name
service_name -sp password -sj options -sl options
-n
Parameters
-agentName (agent_name)
Required. The name of the agent you want to create. The agent name must be unique to its
coordination queue manager.
For more information about naming agents, see Object naming conventions.
-agentQMgr (agent_qmgr_name)
Required. The name of the agent queue manager.
-cdNode cd_node_name
Required. The name of the Connect:Direct node to use to transfer messages from this agent to
destination Connect:Direct nodes. The value of this parameter is used for logging and not to specify to
the Connect:Direct bridge agent which node to connect to. The values of the -cdNodeHost and -
cdNodePort specify the Connect:Direct node that is part of the Connect:Direct bridge.
-agentQMgrHost (agent_qmgr_host)
Optional. The host name or IP address of the agent queue manager.
-agentQMgrPort (agent_qmgr_port)
Optional. The port number used for client connections to the agent queue manager.
-agentQMgrChannel (agent_qmgr_channel)
Optional. The channel name used to connect to the agent queue manager.
-agentDesc (agent_description)
Optional. A description of the agent, which is displayed in IBM MQ Explorer.
-p (configuration_options)
Optional. This parameter determines the set of configuration options that is used to create an agent.
By convention use the name of a non-default coordination queue manager as the input for this
parameter. The fteCreateCDAgent command then uses the set of properties files associated with
this non-default coordination queue manager.
Specify the optional -p parameter only if you want to use configuration options different from your
defaults. If you do not specify this parameter, the set of configuration options based on the default
coordination queue manager is used.
-f
Optional. Forces the command to overwrite non-matching existing parameters. Specifying this
parameter does not force the replacement of an existing Windows service agent.
-cdNodeHost cd_node_host_name
Optional. The host name or IP address of the system where the Connect:Direct node, specified by the
-cdNode parameter, is located. If you do not specify the -cdNodeHost parameter, a default of the
host name or IP address of the local system is used.
In most cases, the Connect:Direct node is on the same system as the Connect:Direct bridge agent. In
these cases, the default value of this property, which is the IP address of the local system, is correct.
If your system has multiple IP addresses, or your Connect:Direct node is on a different system to your
Connect:Direct bridge agent and their systems share a file system, use this property to specify the
correct host name for the Connect:Direct node.
-cdNodePort cd_node_port_name
Optional. The port number of the Connect:Direct node that client applications use to communicate
with the node that is specified by the -cdNode parameter. In Connect:Direct product documentation,
this port is referred to as the API port. If you do not specify the -cdNodePort parameter, a default
port number of 1363 is assumed.
-cdTmpDir cd_tmp_directory
Optional. The directory to be used by this agent to store files temporarily before they are transferred
to the destination Connect:Direct node. This parameter specifies the full path of the directory where
files are temporarily stored. For example, if cdTmpDir is set to /tmp then the files are temporarily
placed in the /tmp directory. If you do not specify the -cdTmpDir parameter, the files are stored
temporarily in a directory named cdbridge-agent_name. This default directory is created in the
location that is defined by the value of the java.io.tmpdir property.
The Connect:Direct bridge agent and the Connect:Direct bridge node must be able to access the
directory specified by this parameter using the same path name. Consider this when planning the
installation of your Connect:Direct bridge. If possible, create the agent on the system where the
Connect:Direct node that is part of the Connect:Direct bridge is located. If your agent and node are on
separate systems, the directory must be on a shared file system and be accessible from both systems
using the same path name. For more information about the supported configurations, see “The
Connect:Direct bridge” on page 234.
Note: If you run the fteCleanAgent command, all files in this directory are deleted.
-s (service_name)
Optional (Windows only). Indicates that the agent is to run as a Windows service, the command must
be run from a Windows administrator user ID. If you do not specify service_name, the service is
named mqmftAgentAGENTQMGR, where AGENT is the agent name and QMGR is your agent queue
manager name.
Example
In this example, a new Connect:Direct bridge agent CD_BRIDGE is created with an agent queue manager
QM_NEPTUNE. The agent uses the Connect:Direct node BRIDGE_NODE to transfer files to other
Connect:Direct nodes. The BRIDGE_NODE node is located on the same system as the agent and uses the
default port for client connections. Files that are transferred to or from Connect:Direct are temporarily
stored in the directory /tmp/cd-bridge.
Return codes
0
Command completed successfully.
1
Command ended unsuccessfully.
Important: On IBM MQ for UNIX, Linux, and Windows, only users who are IBM MQ
administrators (and members of the mqm group) can run this command. If you try to run this command as
a user who is not an IBM MQ administrator, you will receive the error message BFGCL0502E: You are
not authorized to perform the requested operation. and the command will not run.
On z/OS systems, the user must satisfy (at least) one of these conditions in order to run the
migrate command:
• Be a member of the mqm group (if the mqm group is defined on the system).
• Be a member of the group named in the BFG_GROUP_NAME environment variable (if one
is named).
• Have no value set in the BFG_GROUP_NAME environment variable when the command is
run.
Purpose
The fteCreateLogger command provides you with the MQSC commands that you must run against
your logger command queue manager to create the following logger queues:
• SYSTEM.FTE.LOG.CMD.logger_name
• SYSTEM.FTE.LOG.RJCT.logger_name
These queues are internal system queues that you must not modify, delete, or read messages from unless
you are deleting the logger. The MQSC commands to run are also supplied in a file in the following
location: MQ_DATA_PATH\mqft\config\coordination_qmgr\loggers\logger_name
\logger_name_create.mqsc
If you later want to delete the logger, use the fteDeleteLogger command.
Managed File Transfer provides advanced logger properties that help you configure loggers. See, “MFT
logger configuration properties” on page 125
Special characters
Take care when you use parameter values that contain special characters so that you avoid the command
shell interpreting the characters in a way you do not expect. For example, fully qualified file paths and
names that contains such characters as space, quotation mark (single or double), forward-slash or back-
slash characters, might be interpreted by the command shell rather than being passed through directly to
the command itself. To avoid characters being interpreted by the command shell, enclose the entire
parameter in double/single quotation marks or escape the special characters by using the escape
sequence of the command shell.
Syntax
fteCreateLogger
fteCreateLogger -loggerType DATABASE DATABASE options
DATABASE options
-dbType database_type -dbName database_ name -dbDriver driver
-dbLib path
FILE options
-fileLoggerMode CIRCULAR -fileSize size -fileCount number
LINEAR
-loggerQMgrChannel string
Parameters
-loggerType (type)
Required. Specifies where managed file transfer information will be logged. The options for type are
either DATABASE, if transfer information will be logged to a database, or FILE, if the information will
be logged to a file.
-loggerQMgr (qmgr_name)
Optional. Determines the queue manager to connect to in order to receive messages containing
information about managed file transfers. The queue manager must be on the same system as the
logger. If you do not specify the -loggerQMgr parameter then the coordination queue manager that
is associated with the configuration options set for this logger is used as the default.
From IBM MQ 9.0.4, if the coordination queue manager connects using a clients mode
connection, the logger uses clients mode.
Attention: The loggerQmgrHost, loggerQmgrPort, and loggerQmgrChannel parameters
are valid on a File logger only.
If you attempt to use any one, or more, of these parameters on a Database logger, you receive
the following message:
-dbType (database_type)
Required when -loggerType is DATABASE. Specifies the type of database management system in use
for storing managed file transfer information. The options are db2 or oracle
Note: You need to create tables by using SQL files. The .sql files are available from
MQ_INSTALLATION_PATH_/mqft/sql:
• For Db2 databases: ftelog_tables_db2.sql
• For Oracle databases: ftelog_tables_oracle.sql
-dbName (database_name)
Required when -loggerType is DATABASE. The name of the database where managed file transfer
information is stored. The database must be configured with the Managed File Transfer log tables.
-dbDriver (driver)
Required when -loggerType is DATABASE. The location of the JDBC driver classes for the database.
This is typically the path and file name of a JAR file.
-dbLib (path)
Optional when -loggerType is DATABASE. The location of any native libraries needed by your chosen
database driver.
-fileLoggerMode (mode)
Required when -loggerType is FILE. Specifies the type of file system in use for storing managed file
transfer information. The options are LINEAR or CIRCULAR.
Option LINEAR means the file logger will write information to a file until that file reaches its maximum
size as defined by -filesize. When the maximum size is reached the file logger will start a new file.
Previously written files will not be deleted which allows them to be kept as a historical record of log
messages. Files are not deleted when running in this mode, so the -fileCount will be ignored as there
-fileSize (size)
Required when -loggerType is FILE. The maximum size that a log file is allowed to grow to. The value
is a positive integer, greater than zero, followed by one of the following units: KB, MB, GB, m
(minutes), h (hours), d (days), w (weeks). For example: -fileSize 5MB (specifies a maximum size of
5MB) , -fileSize 2d (specifies a maximum of 2 days worth of data).
-fileCount (number)
Required when -loggerType is FILE and -fileLoggerMode is CIRCULAR. The maximum number of log
files to create. When the amount of data exceeds the maximum amount that can be stored in this
number of files, the oldest file is deleted so that the number of log files never exceeds the value
specified in this parameter.
-loggerQMgrHost
Host name, or IP address, of the machine where the logger queue manager is running.
The default value is None.
If you do not specify the -loggerQMgrHost parameter, the logger is created in bindings mode.
-loggerQMgrPort
Port number where the logger queue manager is listening.
The default value is 1414.
-loggerQMgrChannel
Name of the channel used for connecting to the logger queue manager.
The default value is SYSTEM.DEF.SVRCONN.
-s (service_name)
Optional (Windows systems only). Indicates that the logger is to run as a Windows service. If you do
not specify service_name, the service is named mqmftLoggerLOGGERQMGR, where LOGGER is the
logger name and QMGR is your logger queue manager name.
The display name for the service, which is shown in the Windows Services window in the Name
column, is always Managed File Transfer Logger LOGGER@QMGR.
-su (user_name)
Optional (Windows only). When the logger is to run as a Windows service, this parameter specifies the
name of the account under which the service runs. To run the logger using a Windows domain user
account specify the value in the form DomainName\UserName. To run the service using an account
from the local built-in domain specify the value in the form UserName.
-f
Optional. Forces the command to overwrite the existing configuration.
(logger_name)
Required. Name of the logger to create. This is incorporated into Managed File Transfer queue names,
and so must contain only letters, numbers, and the periods (.) and underscore characters (_). It is also
limited to a maximum length of 28 characters.
-credentialsFile (filePath)
Optional. The full file path of an existing or new credentials file, to which the IBM MQauthentication
details are added.
This command supports the addition of a set of IBM MQ authentication details, to a named Managed
File Transfer credentials file. Use this command when IBM MQ connection authentication has been
enabled. If you update the existing details, you must use the -f force parameter.
-userid (username)
Optional. The user ID used to associate the credential details. If you do not specify a user ID, the
credential details will apply to all users. You must also specify the -credentialsFile parameter.
-? or -h
Optional. Displays command syntax.
Examples
In this example, a circular file logger is created called filelogger1. The file logger will create a maximum of
10 files, each file being 10MB in size, using a maximum of 100MB of disk space in total:
In this example, a database logger is created called dblogger1. The database logger connects to a an
Oracle database called FTEDB:
In this example, a client mode file logger is created, using the host name and default port
and channel:
In this example, a client mode file logger is created, using the host name, port, and channel:
Return codes
0
Command completed successfully.
1
Command ended unsuccessfully.
Purpose
Use the fteCreateMonitor command to create and then start a new resource monitor by using a
Managed File Transfer agent. For example, you can use a resource monitor in the following way: An
external application puts one or more files in a known directory and when processing is complete, the
external application places a trigger file in a monitored directory. The trigger file is then detected and a
defined file transfer starts and copies the files from the known directory to a destination agent.
You can use the -ox and -ix parameters to export and import a resource monitor configuration to an XML
file. Importing this file with the fteCreateMonitor command creates a new resource monitor with the
same parameters as the resource monitor given in the fteCreateMonitor command to export to the
XML file. Additionally, you can use the -f and -c parameters to overwrite a monitor configuration
dynamically.
The fteCreateMonitor command is not supported on protocol bridge agents.
Tip: You can also use the fteListMonitors command to export resource monitor configurations to an
XML file:
• Using the fteListMonitors command with the -ox exports the definition for a single resource
monitor.
Special characters
Take care when you use parameter values that contain special characters so that you avoid the command
shell interpreting the characters in a way you do not expect. For example, fully qualified file paths and
names that contains such characters as space, quotation mark (single or double), forward-slash or back-
slash characters, might be interpreted by the command shell rather than being passed through directly to
the command itself. To avoid characters being interpreted by the command shell, enclose the entire
parameter in double/single quotation marks or escape the special characters by using the escape
sequence of the command shell.
fteCreateMonitor
fteCreateMonitor
-ix monitor_definition_file
-ox monitor_definition_file
-ma monitoring_agent_name
-mn monitor_name
-mm monitoring_agent_qmgr_name -f
-c
-mt task_definition_file_name
-md directory_path
-mq queue_name
-pu units
-tr condition
, pattern
-tc
-tcr pattern
-tcc srcDest
destSrc
Parameters
-ix (xml_filename)
Optional. Imports the resource monitor configuration from an XML file.
-ox (xml_filename)
Optional. This parameter must be specified with the -ma and -mn parameters. Exports the resource
monitor configuration to an XML file.
-md (directory_path)
Optional. The absolute name of the directory path that you want to monitor. Unless you are using the -
ix or -ox parameters you must specify one of the -md or -mq parameters.
-mq (queue_name)
Optional. The name of the queue that you want to monitor. This queue must be on the monitoring
agent queue manager. Unless you are using the -ix or -ox parameters you must specify one of the -
md or -mq parameters.
-mt (task_definition_file_name)
Required. The name of the XML document that contains the task definition that you want to carry out
when the trigger condition is satisfied. For more information, see “Using transfer definition files” on
page 166. The path to the transfer definition XML document must be on the local file system that you
run the fteCreateMonitor command from. If you do not specify a path to the file, the command
looks for it in the current working directory. Unless you are using the -ix or -ox parameters, -mt is a
required parameter.
You can use the -gt parameter on the fteCreateTransfer command to generate a template XML
document that contains your file transfer request. The monitor uses the transfer template as its task
definition.
You can also use the transfer recovery timeout, -rt parameter, along with the -gt
parameter, when you run the fteCreateMonitor command. You can set the amount of time in
seconds during which the source agent keeps retying to recover a transfer that is stalled. The recovery
timeout parameter is then included in the XML document with the transfer definition that the monitor
uses. For more information on how to set this parameter, see fteCreateTransfer command.
On IBM i, you must store the task definition document in the integrated file system.
-rl (number_of_recursion_levels)
Optional. The level of monitoring recursion of the root monitoring directory that is how many levels of
subdirectory to go down into. For example, in a directory structure like the following example with
C:\wmqfte\monitor set as the root monitoring directory
C:\wmqfte\monitor
C:\wmqfte\monitor\reports
C:\wmqfte\monitor\reports\2009
C:\wmqfte\monitor\reports\2009\April
If you specify -rl 2, Managed File Transfer searches only as far down as the C:\wmqfte\monitor
\reports\2009 directory and its sibling directories. The C:\wmqfte\monitor\reports
\2009\April directory is ignored. By default, recursion is set to none.
-pi (interval_period)
Optional. The interval period between each monitor of a directory. The poll interval must be a positive
integer value. The default value for -pi is 1.
-pu (units)
Optional. The time units for the monitor poll interval. If you specify the -pu parameter, you must also
specify the -pi parameter. The default value for -pu is minutes. Specify one of the following
options:
seconds
minutes
hours
days
-tr
Optional. Specifies the trigger condition that must be satisfied for the defined task to take place. If the
condition is not satisfied, according to the source agent, the monitor task (for example the file
transfer) is not started. A trigger condition consists of two optional parts, condition and pattern,
separated by a comma. Specify one of the following formats:
•
condition,pattern
-tr match,*.go
The following trigger condition is satisfied when there are no files in the monitored directory that
have the suffix .stop.
-tr noMatch,*.stop
You can specify condition,pattern only if you also specify the -md parameter.
•
condition
-pt (pattern_type)
Optional. The type of pattern that is used by the -tr and -x parameters. Valid values are:
wildcard
The patterns are evaluated as wildcard patterns. An asterisk (*) matches zero or more characters
and a question mark (?) matches exactly one character. This is the default.
regex
The patterns are evaluated as Java regular expressions. For more information, see “Regular
expressions used by MFT” on page 639.
-bs (matches_per_task)
Optional. The maximum number of trigger matches to include in a single task. For example, if a value
of 5 is specified for matches_per_task and nine trigger matches occur in a single poll interval, two
tasks are performed. The first task corresponds to triggers 1-5 inclusive, and the second task
corresponds to triggers 6-9. The default value of matches_per_task is 1.
The -bs parameter is supported only when the task definition XML that you supply to the -mt
parameter is a managedTransfer. A managedCall is not supported with the -bs parameter.
-mquserid (userID)
Optional. Specifies the user ID to authenticate with the command queue manager.
-mqpassword (password)
Optional. Specifies the password to authenticate with the command queue manager. You must also
specify the -mquserid parameter. If you specify -mquserid, but do not specify -mqpassword, you
are prompted to supply the associated password. The password is not displayed.
-dv (default_variables)
Optional. A comma-separated list of default variables that can be used in variable substitution when
monitoring a queue. The values are in the format of a key-value pair. For example:
-dv size=medium,color=blue
For more information about variable substitution, see “Customizing MFT tasks with variable
substitution” on page 185. You can only specify the -dv parameter if you have also specified the -mq
parameter.
-? or -h
Optional. Displays command syntax.
-p (configuration_options)
Optional. This parameter determines the set of configuration options to use to cancel the transfer. By
convention use the name of a nondefault coordination queue manager as the input for this parameter.
Examples
In this example, a new resource monitor is created called MYMONITOR using the monitoring agent
MYAGENT. Provided the trigger condition that a file larger than 5 MB is present in the directory
C:\wmqfte\monitors, the file transfer that is defined in the file C:\templates
\transfer_reports.xml is started. MYAGENT is also the source agent for the file transfer that is
defined in C:\templates\transfer_reports.xml:
In this example, a resource monitor called MONITOR1 using the agent AGENT1 is created to transfer files
greater than 5 MB and is exported to the XML file monitor.xml.
fteCreateMonitor -ox monitor.xml -ma AGENT1 -mn MONITOR1 -mt task.xml -tr "fileSize>=5MB,*.zip"
Then the XML file is imported and changed to exclude any files greater than 10MB.
In this example, a new resource monitor is created called MYMONITOR using the agent MYAGENT.
fteCreateMonitor -ma MYAGENT -md c:\wmqfte -mn MYMONITOR -mt c:\templates\transfer_reports.xml -tr
"fileSize>=5MB,*.go"
However the trigger is initially incorrectly set to monitor c:\wmqfte rather than c:\wmqfte\monitors.
The fteCreateMonitor request is immediately reissued with the monitor directory corrected and the -
f (overwrite) and -c (clear history) parameters used to update the monitor.
Return codes
Return
code Description
0 Command completed successfully.
1 Command ended unsuccessfully.
Purpose
Use the fteCreateTemplate command to create a file transfer template that stores your transfer
details until you want to use them at a later date. Use transfer templates to store common file transfer
settings for repeated or complex transfers. After you have created a transfer template, submit the
template using the IBM MQ Explorer. You cannot submit a transfer template from the command line.
Special characters
Take care when you use parameters that contain special characters so that you avoid the command shell
interpreting the characters in a way you do not expect. For example, fully qualified data set
names that contain single quotation marks and source specifications that contain asterisk characters
might be interpreted by the command shell rather than being passed through in the transfer request.To
avoid characters being interpreted by the command shell, enclose the entire parameter in double
quotation marks as shown in the final two examples “Examples” on page 427, or escape the special
characters using the escape sequence of the command shell.
Relative paths
The fteCreateTemplate command supports the use of relative file paths. On distributed systems
and z/OS UNIX System Services by default paths are considered to be relative to the home
directory of the user that the agent is running as. To change the directory that path names are evaluated
relative to, set the transferRoot property in the agent.properties file. This file is located in the
MQ_DATA_PATH/mqft/config/coordination_qmgr/agents/agent_name directory. Add the
following line to the file:
transferRoot=directory_name
You must escape Windows paths or write them in UNIX format. For example, specify C:\TransferRoot
as C:\\TransferRoot or C:/TransferRoot.
On z/OS, by default the user name that the agent is currently running under is added as a
high-level qualifier prefix to data set specifications that have not been fully qualified. For example: //
ABC.DEF. To change the value that is added as a prefix to the data set name, set the transferRootHLQ
property in the agent.properties file. This file is located in the MQ_DATA_PATH/mqft/config/
coordination_qmgr/agents/agent_name directory. Add the following line to the file:
transferRootHLQ=prepend_value
fteCreateTemplate
fteCreateTemplate
-sa source_agent_name
-dm destination_agent_qmgr_name
-td transfer_definition_file
-df destination_file
-dd destination-directory
-ds destination_sequential_data_set
-dp destination_partitioned_data_set
-du destination_user
-p configuration_options -t binary
text
no
SOURCE
UTC
weeks
months
years
-tn template_name
-sqgi
-sqdt text_delimiter
-sqdp prefix
postfix
-sqdb hexadecimal_delimiter
-sqdp prefix
postfix
-dqdb hexadecimal_delimiter
-qi -dqdp prefix
postfix
-dqdt pattern_delimiter
-qi -dqdp prefix
postfix
source_specification
Parameters
-sa source_agent_name
Optional. The name of the agent that the source file is transferred from. If you do not specify this
agent name when you create the template, you must specify the source agent name when you use the
template.
-sm source_agent_qmgr_name
Optional. The name of the queue manager that the source agent is connected to.
If you do not specify the -sm parameter, the queue manager used is determined by the set of
configuration options in use, based on the source agent name. If the queue manager name cannot be
determined using these options, the transfer template creation fails. For example, the template
creation fails if the agent.properties file for the source agent cannot be found.
-da destination_agent_name
Optional. The name of the agent that the file is transferred to. If you do not specify the destination
agent name when you create the template, you must specify the destination agent name when you
use the template.
-dm destination_agent_qmgr_name
Optional. The name of the queue manager that the destination agent is connected to.
If you do not specify the -dm parameter, the queue manager used is determined by the set of
configuration options in use, based on the destination agent name. If the queue manager name
cannot be determined using these options, the transfer template creation fails. For example, the
template creation fails if the agent.properties file for the destination agent cannot be found.
-td transfer_definition_file
Optional. The name of the XML document that defines one or more source and destination file
specifications for the transfer.
One of the -td, -df, -dd, -ds, -dq, -du, and -dp parameters is required. If you specify the -td
parameter, you cannot specify source files, or specify the -df, -dd, -ds, -dp, -dq, -du, -sd, -r, -de,
-t, or -cs parameters.
On z/OS, you must store the transfer definition file in a UNIX file on z/OS UNIX System
Services. You cannot store transfer definition files in z/OS sequential files or PDS members.
On IBM i, you must store the transfer definition file in the integrated file system.
For more information, see Using transfer definition files.
-df destination_file
Optional. The name of the destination file. Specify a file name that is valid on the system where the
destination agent is running.
If the destination agent is a Connect:Direct bridge agent, the destination file is specified in the format
connect_direct_node_name:file_path. The Connect:Direct bridge agent accepts only file paths
that are specified in this format. If the destination agent is a Connect:Direct bridge agent
and the destination is a PDS member, you must also specify the -de parameter with a value of
overwrite.
One of the -td, -df, -dd, -ds, -dq,-du, and -dp parameters is required. If you specify the -df
parameter, you cannot specify the -td, -dd, -dp, -dq, -du, or -ds parameters because these
parameters are mutually exclusive.
-dd destination_directory
Optional. The name of the directory the file is transferred to. Specify a directory name that is valid on
the system where the destination agent is running.
If the destination agent is a Connect:Direct bridge agent, the destination directory is specified in the
format connect_direct_node_name:directory_path. If the destination agent is a
Connect:Direct bridge agent and the destination is a PDS, you must also specify the -de parameter
with a value of overwrite.
One of the -td, -df, -dd, -ds, -dq, -du, and -dp parameters is required. If you specify the -dd
parameter, you cannot specify the -td, -df, -dp, -dq, -du, or -ds parameters because these
parameters are mutually exclusive.
-ds destination_sequential_data_set
z/OS only. Optional. The name of the sequential data set or PDS member that files are transferred into.
Specify a sequential data set name or a partitioned data set member.
One of the -td, -df, -dd, -ds, -dq, -du, and -dp parameters is required. If you specify the -ds
parameter, you cannot specify the -td, -dd, -df, -dq, -du, or -dp parameters because these
parameters are mutually exclusive.
The syntax for the data set name is as follows:
//data_set_name{;attribute;..;attribute}
or
//pds_data_set_name(member_name){;attribute;..;attribute}
That is, a data set name specifier prefixed with // and optionally followed by a number of attributes
separated by semicolons.
If the data set is located at a Connect:Direct node, you must prefix the data set name with the node
name. For example:
CD_NODE1://'OBJECT.LIB';RECFM(F,B);BLKSIZE(800);LRECL(80)
Note: However, for transfers that involve a Connect:Direct node on a z/OS system, the
data set specification is interpreted as a fully qualified name. No high-level qualifier is added to the
data set name. This is the case even if the data set name is enclosed by single quotation mark
characters.
The data set attributes are used either to create a data set or to ensure that an existing data set is
compatible. The specification of data set attributes is in a form suitable for BPXWDYN (see Requesting
dynamic allocation for more information). When the agent is to create a destination data set, the
following BPXWDYN attributes are automatically specified: DSN(data_set_name) NEW CATALOG
MSG(numeric_file_descriptor), where numeric_file_descriptor is a file descriptor generated by
Managed File Transfer. For a data set to data set transfer, the attributes of RECFM, LRECL, and
BLKSIZE from the source are selected for a new destination data set. Note the SPACE setting for a
new destination data set is not set by Managed File Transfer and system defaults are used. Therefore,
you are recommended to specify the SPACE attribute when a new data set is to be created. You can
use the bpxwdynAllocAdditionalProperties property in the agent.properties file to set
BPXWDYN options that apply to all transfers. For more information, see “The MFT agent.properties
file” on page 537.
Some BPXWDYN options must not be specified when using the fteCreateTemplate command, the
fteCreateTransfer command or the bpxwdynAllocAdditionalOptions property in the
agent.properties file. For a list of these properties, see “BPXWDYN properties you must not use
with MFT” on page 625.
When you transfer a file or data set to tape, any existing data set that is already on the tape is
replaced. The attributes for the new data set are set from attributes passed in the transfer definition.
If no attributes are specified, attributes are set to the same as the source data set or to the default
values when the source is a file. The attributes of an existing tape data set are ignored.
The -ds parameter is not supported when the destination agent is a protocol bridge agent.
-dp destination_partitioned_data_set
z/OS only. Optional. The name of the destination PDS that files are transferred into. Specify a
partitioned data set name. If a PDS is created as a result of the transfer, this PDS is created as a PDSE
by default. You can override the default by specifying DSNTYPE=PDS.
One of the -td, -df, -dd, -ds, -dq, -du, and -dp parameters is required. If you specify the -dp
parameter, you cannot specify the -td, -dd, -df, -dq, -du, or -ds parameters because these
parameters are mutually exclusive.
The syntax for the PDS data set name is as follows:
//pds_data_set_name{;attribute;..;attribute}
The syntax for the data set name is the same as described for the -ds
(destination_sequential_data_set) parameter. All the syntax details for specifying data sets that are
located on Connect:Direct nodes also apply to the -dp parameter. If the destination agent is a
Connect:Direct bridge agent, you must also specify the -de parameter with a value of overwrite.
The -dp parameter is not supported when the destination agent is a protocol bridge agent.
-dqp persistent
Optional. Specifies whether messages written to the destination queue are persistent. The valid
options are as follows:
true
Writes persistent messages to the destination queue. This is the default value.
false
Writes non-persistent messages to the destination queue.
qdef
The persistence value is take from the DefPersistence attribute of the destination queue.
You can only specify the -dqp parameter if you have also specified the -dq parameter.
-qmp boolean
Optional. Specifies whether the first message written to the destination queue by the transfer has IBM
MQ message properties set. The valid options are as follows:
true
Sets message properties on the first message created by the transfer.
false
Does not set message properties on the first message created by the transfer. This is the default
value.
You can only specify the -qmp parameter if you have also specified the -dq parameter. For more
information, see “MQ message properties set by MFT on messages written to destination queues” on
page 656
-qs message_size
Optional. Specifies whether to split the file into multiple fixed-length messages. All the messages
have the same IBM MQ group ID; the last message in the group has the IBM MQ
LAST_MSG_IN_GROUP flag set. The size of the messages is specified by the value of message_size.
The format of message_size is lengthunits, where length is a positive integer value and units is one of
the following values:
-sd source_file_disposition
Optional. Specifies the action that is taken on a source file when that source file has successfully been
transferred to its destination. The valid options are as follows:
leave
The source files are left unchanged. This is the default value.
delete
The source file is deleted from the source system after the source file is successfully transferred.
On z/OS, if the source is a tape data set and you specify the delete option, the tape is
remounted to delete the data set. This behavior is because of the behavior of the system environment.
If the source is a queue and you specify the leave option, the command returns an error and a
transfer is not requested.
If the source agent is a Connect:Direct bridge agent and you specify the delete option, the behavior
is different to the usual source disposition behavior. One of the following cases occurs:
• If Connect:Direct uses a process that is generated by Managed File Transfer to move the file or data
set from the source, specifying the delete option causes the transfer to fail. To specify that the
source file is deleted, you must submit a user-defined Connect:Direct process. For more
information, see “Submitting a user-defined Connect:Direct process from a file transfer request” on
page 242.
• If Connect:Direct uses a user-defined process to move the file or data set from the source, this
parameter is passed to the process through the %FTEFDISP intrinsic symbolic variable. The user-
defined process determines whether the source is deleted. The result that the transfer returns
depends on the result that is returned by the user-defined process.
If you specify the -sd parameter, you cannot specify the -td parameter because these parameters
are mutually exclusive. However, you can specify source disposition behavior in the transfer definition
file.
-pr transfer_priority
Optional. Specifies the priority level of the transfer. Priority is a value in the range 0-9, where 0 is the
lowest priority. The default priority level is 0 and by default the transfer uses the priority level of the
source agent.
This value matches the message priority value used by IBM MQ, see Getting messages from a queue:
priority for more information. Message traffic for file transfer data defaults to a priority level of 0,
which allows your IBM MQ message traffic to take priority.
-rt recovery_timeout
Optional. Sets the amount of time, in seconds, during which a source agent keeps trying to recover a
stalled file transfer. Specify one of the following options:
-1
The agent continues to attempt to recover the stalled transfer until the transfer is complete. Using
this option is the equivalent of the default behavior of the agent when the property is not set.
-rt 21600
indicates that the agent keeps trying to recover the transfer for 6 hours from when it enters
recovery. Maximum value for this parameter is 999999999.
Specifying the transfer recovery timeout value in this way sets it on a per transfer basis. To set a global
value for all transfers in a Managed File Transfer network, you can add a property to the The
agent.properties file.
-p configuration_options
Optional. This parameter determines the set of configuration options that is used to create the
transfer template. Use the name of a non-default coordination queue manager as the input for this
parameter. The command then uses the set of properties files associated with this non-default
coordination queue manager.
If you do not specify this parameter, the set of configuration options based on the default coordination
queue manager is used.
-r
Optional. Recursively transfer files in subdirectories when source_specification contains wildcard
characters. When Managed File Transfer is presented with a wildcard character as a
source_specification, any directories that match the wildcard character are transferred only if you have
specified the -r parameter. When source_specification matches a subdirectory, all files in that
directory and its subdirectories (including hidden files) are always transferred.
For more information about how Managed File Transfer handles wildcard characters, see Using
wildcard characters
If you specify the -r parameter, you cannot specify the -td parameter because these parameters are
mutually exclusive. However, you can specify recursive behavior in the transfer definition file.
-t
Optional. Specifies the type of file transfer: binary mode or text mode.
binary
The data in the file is transferred without any conversion. This is the default value.
text
The code page and end-of-line characters of the file are converted. The exact conversions
performed depend on the operating systems of the source agent and destination agent.
For example, a file transferred from Windows to z/OS has its code page converted
from ASCII to EBCDIC. When a file is converted from ASCII to EBCDIC, the end-of-line characters
are converted from ASCII carriage return (CR) and line feed (LF) character pairs to an EBCDIC new
line (NL) character.
For more information about how z/OS data sets are transferred, see Transferring
files and data sets between z/OS and distributed systems and Transferring between data sets.
If you specify the -t parameter, you cannot specify the -td parameter because these parameters are
mutually exclusive. However, you can specify transfer mode behavior in the transfer definition file.
-cs
Optional. Specifies whether a checksum algorithm is run on the file transfer data to check the integrity
of the transferred files. Specify one of the following options:
<checksum method="none"></checksum>
If you use the none option, you might improve file transfer performance, depending on your
environment. However, selecting this option means that there is no validation of the source or
destination files.
If you specify the -cs parameter, you cannot specify the -td parameter because these parameters
are mutually exclusive. However, you can specify checksum behavior in the transfer definition file.
-tr
Optional. Specifies a condition that must be true for this file transfer to take place. If the condition is
not true, according to the source agent, the file transfer is discarded and no transfer takes place.
Specify the following format:
condition,namelist
fteCreateTemplate -tn JUPITER_AGENT_TRIGGER_TEST_TEMPLATE -sa AGENT1 -sm QM_JUPITER -da AGENT2 -dm
QM_NEPTUNE
-tr file=exist,C:\export\A.txt,C:\export\B.txt
-tr filesize">"=1GB,C:\export\A.txt,C:\export\B.txt
-df C:\import\file1.doc C:\export\file1.doc
-tl
Optional. Specifies whether trigger failures are logged. Specify one of the following options:
yes
Log entries are created for failed triggered transfers. This is the default behavior even if you do not
specify the -tl parameter.
no
No log entries are created for failed triggered transfers.
-md
Optional. Specifies the user-defined metadata that is passed to the exit points of the agent. The -md
parameter can take one or more name-value pairs separated by commas. Each name pair consists of
name=value. You can use the -md parameter more than once in a command.
On z/OS, spaces represent delimiters so you must use underscores to separate values.
For example, use kw=text1_text2_text3 rather than kw="text1 text2 text3"
-tb
Optional. Specifies the time base you want to use for the scheduled file transfer. That is, whether you
want to use a system time or Coordinated Universal Time (UTC). You must use this parameter with the
-ss parameter only. Specify one of the following options:
admin
The start and end times used for the scheduled transfer are based on the time and date of the
system used by the administrator. This is the default value.
source
The start and end times used for the scheduled transfer are based on the time and date of the
system where the source agent is located.
UTC
The start and end times used for the scheduled transfer are based on Coordinated Universal Time
(UTC).
-jn job_name
Optional. A user-defined job name identifier that is added to the log message when the transfer has
started.
-ss schedule_start_time
Optional. Specifies the time and date that you want the scheduled transfer to take place. Use one of
the following formats to specify the time and date. Specify the time using the 24-hour clock:
yyyy-MM-ddThh:mm
hh:mm
Scheduled file transfers start within a minute of the schedule start time, if there are no problems that
might affect the transfer. For example, there might be issues with your network or agent that prevent
the scheduled transfer starting.
-oi
Optional. Specifies the interval that the scheduled transfer occurs at. You must use this parameter
with the -ss parameter only. Specify one of the following options:
minutes
hours
-of occurrence_frequency
Optional. Specifies the frequency that the scheduled transfer occurs at. For example, every 5 weeks or
every 2 months. You must specify this parameter with the -oi and -ss parameters only. If you do not
specify this parameter, a default value of 1 is used.
-oc occurrence_count
Optional. Specifies how many times you want this scheduled transfer to occur. After the occurrence
count has been met, the scheduled transfer is deleted.
Specify this parameter with the -oi and -ss parameters only.
If you specify the -oc parameter, you cannot specify the -es parameter because these parameters
are mutually exclusive.
You can omit both the -oc and -es parameters to create a transfer that repeats indefinitely.
-es schedule_end_time
Optional. The time and date that a repeating scheduled transfer ends.
You must specify this parameter with the -oi and -ss parameters only.
If you specify the -es parameter, you cannot specify the -oc parameter because these parameters
are mutually exclusive.
You can omit both the -es and -oc parameters to create a transfer that repeats indefinitely.
Use one of the following formats to specify the end time and date. Specify the time using the 24-hour
clock:
yyyy-MM-ddThh:mm
hh:mm
-tn template_name
Required. The name of the template that you want to create. Use a descriptive string that allows you
to select the correct template for transfers at a later date. There is no specific limit to the length of
this string, but be aware that excessively long names might not be displayed properly in some user
interfaces.
Do not create multiple templates with the same name.
-sqgi
Optional. Specifies that the messages are grouped by IBM MQ group ID. The first complete group is
written to the destination file. If this parameter is not specified, all messages on the source queue are
written to the destination file.
You can only specify the -sqgi parameter if you have also specified the -sq parameter.
-sqdt text_delimiter
Optional. Specifies a sequence of text to insert as the delimiter when appending multiple messages to
a text file. You can include Java escape sequences for String literals in the delimiter. For example, -
sqdt \u007d\n.
You can only specify the -sqdt parameter if you have also specified the -sq parameter and the value
text for the -t parameter.
QUEUE_NAME
The queue manager name is not included in the source queue specification, because the queue
manager must be the same as the source agent queue manager.
-? or -h
Optional. Displays command syntax.
Examples
In this example, a transfer template called payroll accounts monthly report template is
created. When submitted, this template transfers any file with the extension .xls from the agent
PAYROLL1 to the agent ACCOUNTS in the directories specified:
fteCreateTemplate -tn "payroll accounts monthly report template" -sa PAYROLL -sm QM_PAYROLL1 -da
ACCOUNTS
-dm QM_ACCOUNTS -df C:\payroll_reports\*.xls C:\out\*.xls
fteCreateTemplate -tn jupiter_neptune_sched_template -sa AGENT1 -sm QM_JUPITER -da AGENT2 -dm QM_NEPTUNE
-tb source -ss 09:00 -oi hours -of 2 -oc 4
-df C:\import\transferredfile.txt C:\export\originalfile.txt
In this example, a transfer template called jupiter neptune trigger template is created. When
the template is submitted, the file originalfile.txt is transferred from AGENT1 to AGENT2, on
condition that the file A.txt exists on AGENT1:
fteCreateTemplate -tn "jupiter neptune trigger template" -sa AGENT1 -sm QM_JUPITER -da AGENT2 -dm
QM_NEPTUNE
-tr file=exist,C:\export\A.txt -df C:\import\transferredfile.txt C:\export\originalfile.txt
fteCreateTemplate -tn ebcidic_ascii_template -t text -sa AGENT1 -da AGENT2 -df /tmp/IEEUJV.txt
"//'SYS1.SAMPLIB(IEEUJV)'"
Return codes
Return
code Description
0 Command completed successfully.
1 Command ended unsuccessfully.
Purpose
Use the fteCreateTransfer command to create and then start a new file transfer from a Managed File
Transfer agent.
For guidance about how to transfer files, see “Guidelines for transferring files” on page 613. For the z/OS
platform, you can transfer text files, data sets, and generation data groups (GDGs).
You can run the fteCreateTransfer command from any system that can connect to the IBM MQ
network and then route to the source agent queue manager. Specifically, for the command to run, you
must install a Managed File Transfer component (either Service or Agent) on this system and configure the
Managed File Transfer component on this system to communicate with the IBM MQ network.
Special characters
Take care when you use parameters that contain special characters so that you avoid the command shell
interpreting the characters in a way you do not expect. For example, fully qualified data set names that
contain single quotation marks, and source specifications that contain asterisk characters, might be
interpreted by the command shell rather than being passed through in the transfer request. To avoid
characters being interpreted by the command shell, enclose the entire parameter in double quotation
marks or escape the special characters by using the escape sequence of the command shell.
Relative paths
The fteCreateTransfer command supports the use of relative file paths. For the following platforms,
by default, paths are considered to be relative to the home directory of the user that the agent is running
as:
• Multiplatforms
transferRoot=directory_name
On z/OS, by default the user name that the agent is running under is added as a high-level
qualifier prefix to data set specifications that have not been fully qualified. For example: //ABC.DEF. To
change the value that is added as a prefix to the data set name, set the transferRootHLQ property in the
agent.properties file. This file is located in the MQ_DATA_PATH/mqft/config/
coordination_qmgr/agents/agent_name directory. Add the following line to the file:
transferRootHLQ=prepend_value
However, for transfers that involve a Connect:Direct node on a z/OS system, the data set
specification is interpreted as a fully qualified name. No high-level qualifier is added to the data set name.
fteCreateTransfer
fteCreateTransfer -sa source_agent_name
-da destination_agent_name
-sm source_agent_qmgr_name
-dm destination_agent_qmgr_name
-gt transfer_template_file_path
months
years
no
-cs MD5
none
-md name-value_pairs
-w -rt recovery_timeout
timeout
-p configuration_options
-td transfer_definition_file
-df destination_file
-dd destination_directory
-ds destination_sequential_data_set
-dp destination_partitioned_data_set
text
-dce destination_character_encoding
,noswaplfnl
-sd source_file_disposition -r
-dfa attributes
-sce source_character_encoding
,noswaplfnl
postfix
-sq
-sqgi -sqdt text_delimiter -sqwt wait_time
-sqdp prefix
postfix
postfix
-dqdb hexadecimal_delimiter
-qi -dqdp prefix
postfix
-dqdt pattern_delimiter
-qi -dqdp prefix
postfix
source_specification
If you specify a protocol bridge agent as your source agent, you cannot then specify a
data set as the source file specification.
If you specify the -td parameter and the transfer definition file contains the source agent that you
want to use for the transfer, do not specify the -sa parameter.
-sm source_agent_qmgr_name
Optional. The name of the queue manager that the source agent is connected to.
If you do not specify the -sm parameter, the queue manager that is used is determined by the set of
configuration options in use, which is based on the source agent name. If the agent.properties file
for the source agent cannot be found, the file transfer fails.
-da destination_agent_name
Required. The name of the agent that the files are transferred to.
If you specify the -td parameter and the transfer definition file contains the destination agent that
you want to use for the transfer, do not specify the -da parameter.
-dm destination_agent_qmgr_name
Optional. The name of the queue manager that the destination agent is connected to.
If you do not specify the -dm parameter, the queue manager that is used is determined by the set of
configuration options in use, which is based on the destination agent name. If the
agent.properties file for the destination agent cannot be found, the file transfer fails.
On z/OS, you must store the transfer template document in a UNIX file on z/OS UNIX
System Services. You cannot store transfer template documents in z/OS sequential files or PDS
members.
On IBM i, you must store the transfer template document in the integrated file system.
The transfer template XML message that you create by using the -gt parameter is not the same as
the transfer you create by using the fteCreateTemplate command, which means you cannot use
the two different types of template interchangeably.
yyyy-MM-ddThh:mm
hh:mm
Scheduled file transfers start within a minute of the schedule start time, if there are no problems that
might affect the transfer. For example, there might be issues with your network or agent that prevent
the scheduled transfer starting.
-tb
Optional. Specifies the time base you want to use for the scheduled file transfer. That is, whether you
want to use a system time or Coordinated Universal Time (UTC). You must use this parameter with the
-ss parameter only. Specify one of the following options:
admin
The start and end times used for the scheduled transfer are based on the time and date of the
system used by the local administrator. This is the default value.
source
The start and end times used for the scheduled transfer are based on the time and date of the
system where the source agent is located.
UTC
The start and end times used for the scheduled transfer are based on Coordinated Universal Time
(UTC).
-oi
Optional. Specifies the interval that the scheduled transfer occurs at. You must use this parameter
with the -ss parameter only. Specify one of the following options:
minutes
hours
days
weeks
months
years
-of occurrence_frequency
Optional. Specifies the frequency that the scheduled transfer occurs at. For example, every 5 weeks or
every 2 months. You must specify this parameter with the -oi and -ss parameters only. If you do not
specify this parameter, a default value of 1 is used.
-es schedule_end_time
Optional. The time and date that a repeating scheduled transfer ends.
You must specify this parameter with the -oi and -ss parameters only.
If you specify the -es parameter, you cannot specify the -oc parameter because these parameters
are mutually exclusive.
You can omit both the -es and -oc parameters to create a transfer that repeats indefinitely.
Use one of the following formats to specify the end time and date. Specify the time by using the 24-
hour clock:
yyyy-MM-ddThh:mm
hh:mm
condition,namelist
You can combine triggering parameters with scheduling parameters. If you do specify both types of
parameters, the trigger conditions are applied to the file transfer created by the scheduling
parameters.
The -tr parameter is not supported on protocol bridge agents.
-tl
Optional. Specifies whether trigger failures are written to the transfer log. Specify one of the following
options:
yes
Transfer log entries are created for failed triggered transfers. This is the default behavior even if
you do not specify the -tl parameter.
no
No transfer log entries are created for failed triggered transfers.
-md
Optional. Specifies the user-defined metadata that is passed to the exit points run by the agent. The -
md parameter can take one or more name-value pairs that are separated by commas. Each name pair
consists of name=value. You can use the -md parameter more than once in a command.
When the agent property enableUserMetadataOptions is set to a value of true, certain user-defined
metadata keys provide more options to the transfer. For more information about the user-defined
metadata keys that are currently supported, see “enableUserMetadataOptions: Supported MFT user-
defined metadata keys” on page 559. When the enableUserMetadataOptions property is set to true,
key names starting with com.ibm.wmqfte. are not supported for user-defined use.
-cs
Optional. Specifies whether a checksum algorithm is run on the file transfer data to check the integrity
of the transferred files. Specify one of the following options:
MD5
Computes an MD5 checksum for the data. The resulting checksum for the source and destination
files is written to the transfer log for validation purposes. By default, Managed File Transfer
computes MD5 checksums for all file transfers.
none
No MD5 checksum is computed for the file transfer data. The transfer log records that checksum
was set to none and the value for the checksum is blank. For example:
<checksum method="none"></checksum>
-pr transfer_priority
Optional. Specifies the priority level of the transfer. Priority is a value in the range 0-9, where 0 is the
lowest priority. The default priority level is the priority level of the source agent.
This value matches the message priority value of IBM MQ, see Getting messages from a queue:
priority for more information. Message traffic for file transfer data defaults to a priority level of 0,
which allows your IBM MQ message traffic to take priority.
-qmp boolean
Optional. Specifies whether the first message written to the destination queue by the transfer has IBM
MQ message properties set. The valid options are as follows:
true
Sets message properties on the first message that is created by the transfer.
false
Does not set message properties on the first message that is created by the transfer. This is the
default value.
You can specify the -qmp parameter only if you also specify the -dq parameter. For more information,
see “MQ message properties set by MFT on messages written to destination queues” on page 656
-qs message_size
Optional. Specifies whether to split the file into multiple fixed-length messages. All the messages
have the same IBM MQ group ID; the last message in the group has the IBM MQ
LAST_MSG_IN_GROUP flag set. The size of the messages is specified by the value of message_size.
The format of message_size is lengthunits, where length is a positive integer value and units is one of
the following values:
B
Bytes. The minimum value that is allowed is two times the maximum bytes-per-character value of
the code page of the destination messages.
K
This is equivalent to 1024 bytes.
M
This is equivalent to 1048576 bytes.
If the file is transferred in text mode, and is in a double-byte character set or multibyte character set,
the file is split into messages on the closest character boundary to the specified message size.
You can specify the -qs parameter only if you also specify the -dq parameter. You can specify only
one of the -qs, -dqdb, and -dqdt parameters.
-qi
Optional. Specifies whether to include the delimiter that is used to split the file into multiple
messages in the messages. The delimiter is included at the beginning or at the end of the message,
depending on the -dqdp parameter (which specifies prefix or postfix). By default the delimiter is not
included in the messages.
You can specify the -qi parameter only if you also specify one of the -dqdt and -dqdb parameters.
-p configuration_options
Optional. This parameter determines the set of configuration options that is used to create the file
transfer. Use the name of a non-default coordination queue manager as the input for this parameter.
The timeout argument is optional. If you specify timeout, the fteCreateTransfer command waits
for up to timeout seconds for the agent to respond. If the agent does not respond before the time limit
is reached, the command produces a warning and ends with a return code of 2. If you do not specify a
timeout value, or you specify a timeout value of -1, then the command waits until the agent responds.
-rt recovery_timeout
Optional. Sets the amount of time, in seconds, during which a source agent keeps trying to recover a
stalled file transfer. Specify one of the following options:
-1
The agent continues to attempt to recover the stalled transfer until the transfer is complete. Using
this option is the equivalent of the default behavior of the agent when the property is not set.
0
The agent stops the file transfer as soon as it enters recovery.
>0
The agent continues to attempt to recover the stalled transfer for the amount of time in seconds
as set by the positive integer value specified. For example,
-rt 21600
indicates that the agent keeps trying to recover the transfer for 6 hours from when it enters
recovery. Maximum value for this parameter is 999999999.
Specifying the transfer recovery timeout value in this way sets it on a per transfer basis. To set a global
value for all transfers in a Managed File Transfer network, you can add a property to the The
agent.properties file.
[type:]commandspec[,[retrycount][,[retrywait][,successrc]]]
commandspec
Required. The command specification. Use one of the following formats:
• Type executable: command[(arg1,arg2,...)]
• Type antscript: command[(name1=var1|target1,name2=var2|target2,...)]
• Type jcl: command
where:
command
Required. The name of the program to call.
The jcl value is only applicable when targeted at an agent in a z/OS environment.
Arguments in brackets ([ ]) are optional and syntax depends on command type. Parentheses,
commas (,), and backslash (\) characters that are within the command or parameters must be
escaped with a back slash (\) character.
retrycount
Optional. The number of times to retry calling the program if the program does not return a
successful return code. Default value is 0.
retrywait
Optional. The time to wait, in seconds, before trying the program invocation again. Default value is
0 (no wait between retries).
successrc
Optional. Expression that is used to determine when the program invocation successfully runs.
This expression can be composed of one or more expressions. Combine these expressions with a
vertical bar character (|) to represent Boolean OR, or an ampersand (&) character to represent
Boolean AND. Each expression is of the following form:
[>|<|!]value
where
>
Optional. A greater than test of the value.
<
Optional. A less than test of the value.
!
Optional. A not equal to test of the value.
value
Required. A valid integer.
-predst pre_destination_call
Optional. Specifies a program to invoke at the destination agent before the transfer starts.
pre_destination_call has the same format as pre_source_call.
-postsrc post_source_call
Optional. Specifies a program to invoke at the source agent after the transfer has completed.
post_source_call has the same format as pre_source_call.
On z/OS, you must store the transfer definition file in a UNIX file on z/OS UNIX System
Services. You cannot store transfer definition files in z/OS sequential files or PDS members.
On IBM i, you must store the transfer definition file in the integrated file system.
For more information, see Using transfer definition files.
-df destination_file
Optional. The name of the destination file.
If the destination agent is a Connect:Direct bridge agent, the destination file is specified in the format
connect_direct_node_name:file_path. The Connect:Direct bridge agent accepts only file paths
that are specified in this format. If the destination agent is a Connect:Direct bridge agent
and the destination is a PDS member, you must also specify the -de parameter with a value of
overwrite.
Note the following information:
• If the destination agent is a protocol bridge agent and you want to specify an endpoint for a file, use
the following format:
protocol_server:file_path
where protocol_server is the name of the protocol server (which is optional) and where file_path is
the path to the file on the protocol server system. If you do not specify a protocol server, the default
protocol server is used.
• If you want to invoke any of the Managed File Transfer transfer I/O user exits that you have defined
against the destination agent, you can use the -df parameter in a transfer.
• When the destination agent is on z/OS, if the file specified starts with //, it is assumed
to be a partitioned z/OS data set.
-dd destination_directory
Optional. The name of the directory the file is transferred to. Specify a valid directory name on the
system where the destination agent is running.
If the destination agent is a Connect:Direct bridge agent, the destination directory is specified in the
format connect_direct_node_name:directory_path. If the destination agent is a
Connect:Direct bridge agent and the destination is a PDS, you must also specify the -de parameter
with a value of overwrite.
protocol_server:directory_path
where protocol_server is the name of the protocol server (which is optional) and where
directory_path is the path to the directory on the protocol server system. If you do not specify a
protocol server, the default protocol server is used.
• If you want to invoke any of the Managed File Transfer transfer I/O user exits that you have defined
against the destination agent, you can use the -dd parameter in a transfer.
• When the destination agent is on z/OS, if the file specified starts with //, it is assumed
to be a z/OS partitioned data set.
-ds destination_sequential_data_set
z/OS only. Optional. The name of the sequential data set or PDS member that files are transferred into.
Specify a sequential data set name or a partitioned data set member. For information about
transferring data sets, see “Guidelines for transferring files” on page 613.
The syntax for the data set name is as follows:
//data_set_name{;attribute(value);..;attribute(value)}
or
//pds_data_set_name(member_name){;attribute(value);..;attribute(value)}
That is, a data set name specifier prefixed with // and optionally followed by a number of attributes
that are separated by semicolons.
For example:
//'TEST.FILE.NAME';DSNTYPE(PDS);RECFM(F,B);BLKSIZE(800);LRECL(80);CYL;SPACE(2,2)
If the data set is located at a Connect:Direct node, you must prefix the data set name with the node
name. For example:
CD_NODE1://'OBJECT.LIB';RECFM(F,B);BLKSIZE(800);LRECL(80)
If the destination agent is a Connect:Direct bridge agent and the destination is a PDS member, you
must also specify the -de parameter with a value of overwrite. For more information about data set
transfers to or from Connect:Direct nodes, see “Transferring data sets to and from Connect:Direct
nodes” on page 618.
For transfers that only involve Managed File Transfer agents, if the data set name part is enclosed by
single quotation mark characters, it specifies a fully qualified data set name. If the data set name is
not enclosed by single quotation mark characters, the system adds the default high-level qualifier for
the destination agent (either the value for the transferRootHLQ agent property or the user ID that the
agent runs under, if you have not set transferRootHLQ).
Note: However, for transfers that involve a Connect:Direct node on a z/OS system, the
data set specification is interpreted as a fully qualified name. No high-level qualifier is added to the
data set name. This is the case even if the data set name is enclosed by single quotation mark
characters.
When you transfer a file or data set to tape, any existing data set that is already on the tape is
replaced. The attributes for the new data set are set from attributes that are passed in the transfer
Some BPXWDYN options must not be specified when using the fteCreateTemplate
command, the fteCreateTransfer command or the bpxwdynAllocAdditionalProperties
property in the agent.properties file. For a list of these properties, see “BPXWDYN properties you
must not use with MFT” on page 625.
The -ds parameter is not supported when the destination agent is a protocol bridge agent.
If you want to invoke any of the Managed File Transfer transfer I/O user exits that you have defined
against an agent, do not specify the-ds parameter in a transfer. Using the -ds parameter prevents the
transfer I/O user exits from being invoked for the destination and means that the standard Managed
File Transfer I/O is used instead.
-dp destination_partitioned_data_set
z/OS only. Optional. The name of the destination PDS that files are transferred into. Specify a
partitioned data set name. If a PDS is created as a result of the transfer, this PDS is created as a PDSE
by default. You can override the default by specifying DSNTYPE=PDS.
The syntax for the PDS data set name is as follows:
//pds_data_set_name{;attribute;..;attribute}
The syntax for the data set name is the same as described for the -ds
(destination_sequential_data_set) parameter. All the syntax details for specifying data sets that are
located on Connect:Direct nodes also apply to the -dp parameter. If the destination agent is a
Connect:Direct bridge agent, you must also specify the -de parameter with a value of overwrite.
The -dp parameter is not supported when the destination agent is a protocol bridge agent.
If you want to invoke any of the Managed File Transfer transfer I/O user exits that you have defined
against an agent, do not specify the-dp parameter in a transfer. Using the -dp parameter prevents the
transfer I/O user exits from being invoked for the destination and means that the standard Managed
File Transfer I/O is used instead.
-dq destination_queue
Optional. The name of a destination queue that files are transferred onto. You can optionally include a
queue manager name in this specification, by using the format QUEUE@QUEUEMANAGER. If you do
not specify a queue manager name the destination agent queue manager name is used. You must
specify a valid queue name that exists on the queue manager.
The -dq parameter is not supported when the destination agent is a protocol bridge agent or a
Connect:Direct bridge agent, or when the source specification is a queue.
If you want to invoke any of the Managed File Transfer transfer I/O user exits that you have defined
against an agent, do not specify the-dq parameter in a transfer. Using the -dq parameter prevents the
-t
Optional. Specifies the type of file transfer: binary mode or text mode.
binary
The data in the file is transferred without any conversion. This is the default value.
text
The code page and end-of-line characters of the file are converted. You can specify which code
page and line ending to use for the conversion with the -sce, -dce or -dle parameters. If you do
not specify the -sce, -dce or -dle parameters, the exact conversions performed depend on the
operating system of the source agent and destination agent.
For example, a file that is transferred from Windows to z/OS has its code page
converted from ASCII to EBCDIC. When a file is converted from ASCII to EBCDIC, the end-of-line
characters are converted from ASCII carriage return (CR) and line feed (LF) character pairs to an
EBCDIC new line (NL) character.
For more information about how z/OS data sets are transferred, see Transferring
files and data sets between z/OS and distributed systems and Transferring between data sets.
If you specify the -t parameter, you cannot specify the -td parameter because these parameters are
mutually exclusive. However, you can specify transfer mode behavior in the transfer definition file.
-dce destination_character_encoding
Optional. Specifies which character encoding to use to write the file at the destination. This option is
only applicable to text files and so -t text must also be specified. The code pages available for
conversion depend on the platform of the destination agent. For a list of available code pages, see the
topic “Available code pages for MFT” on page 662.
noswaplfnl
By default Managed File Transfer uses swaplfnl with supported EBCDIC character sets. Using
swaplfnl changes the behavior of the character set mapping from and to the EBCIDIC LF 0x25
character. However, this can sometimes result in a mapping that is not what you want. Use
noswaplfnl to override this behavior.
-dle destination_line_ending
Optional. Specifies the end-of-line characters that are used when the file is written at the destination.
This option is applicable to text files only and so you must also specify the -t text parameter. The
valid options are:
LF
Line feed. This is the default for the following platforms:
• UNIX platforms
If the destination of the transfer is a z/OS data set, this option is ignored.
-dfa ATTRIBUTE1;ATTRIBUTE2
-dfa ATTRIBUTE1(VALUE);ATTRIBUTE2(VALUE)
-dfa ATTRIBUTE1;ATTRIBUTE2(VALUE)
You can use the -dfa parameter more than once in a command.
For more information about file attributes on 4690, see File distribution attributes in the IBM MQ 8.0
Knowledge Center.
On z/OS, if the source is a tape data set and you specify the delete option, the tape is
remounted to delete the data set. This behavior is because of the behavior of the system environment.
If the source is a queue and you specify the leave option, the command returns an error and a
transfer is not requested.
If the source agent is a Connect:Direct bridge agent and you specify the delete option, the behavior
is different to the usual source disposition behavior. One of the following cases occurs:
-r
Optional. Recursively transfer files in subdirectories when source_specification contains wildcard
characters. When Managed File Transfer is presented with a wildcard character as a
source_specification, any subdirectories that match the wildcard character are transferred only if you
specify the -r parameter. When source_specification matches a subdirectory, all files in that directory
and its subdirectories (including hidden files) are always transferred.
For more information about how Managed File Transfer handles wildcard characters, see Using
wildcard characters
If you specify the -r parameter, you cannot specify the -td parameter because these parameters are
mutually exclusive. However, you can specify recursive behavior in the transfer definition file.
-sce source_character_encoding
Optional. Specifies which character encoding to use to read the source file when performing character
conversion. This option is only applicable to text files and so -t text must also be specified. The
code pages available for conversion depend on the platform of the destination agent, because the
conversion is performed on the destination system. For a list of available code pages, see the topic
“Available code pages for MFT” on page 662.
noswaplfnl
By default Managed File Transfer uses swaplfnl with supported EBCDIC character sets. Using
swaplfnl changes the behavior of the character set mapping from and to the EBCIDIC LF 0x25
character. However, this can sometimes result in a mapping that is not what you want. Use
noswaplfnl to override this behavior.
-skeep
Optional. Specifies that trailing spaces are kept on source records that are read from a fixed-length-
format record-oriented file (for example, a z/OS data set) as part of a text mode transfer. If you do not
specify this parameter, trailing spaces are stripped from source records.
-srdb delimiter
Optional. For source files that are record oriented (for example, z/OS data sets), specifies one or more
byte values to insert as the delimiter when appending records into a binary file. You must specify each
value as two hexadecimal digits in the range 00-FF, prefixed by x. Separate multiple bytes with
commas. For example:
-srdb x0A
or
-srdb x0D,x0A
QUEUE_NAME
The queue manager name is not included in the source queue specification, because the queue
manager must be the same as the source agent queue manager.
• If the source agent is on z/OS, source files that start with // are assumed to be z/OS
partitioned data sets.
Other parameters
-? or -h
Optional. Displays command syntax.
Examples
In this basic example, the file originalfile.txt is transferred from AGENT1 to AGENT2 on the same
system and renamed to transferredfile.txt
In this example, the files originalfile.txt and originalfile2.txt are transferred from AGENT1
to AGENT2 on the same system, to the directory C:\import
In this example, the file originalfile.txt is transferred from AGENT1's system to AGENT2's system.
The file transfer is scheduled to take place at 09:00 based on the system time of the source agent's
system and occurs every two hours four times:
In this example, the file originalfile.txt is transferred from AGENT1's system to a data
set //'USERID.TRANS.FILE.TXT' on AGENT2's system. Text mode is selected to convert data from ASCII to
EBCDIC.
In this example, a member of a fully qualified data set on AGENT1's system is transferred to
a file on AGENT2's system. Text mode is selected to convert the file from EBCDIC to the default code page
of AGENT2's system.
In this example, a file that is called file.bin on agent AGENT1 is transferred to a destination file called
file.bin on the protocol file server accountshost.ibm.com by using the destination agent BRIDGE1.
In this example, a wildcard is used without quotation marks. All files in AGENT1's current working
directory that end in .txt are transferred to directory C:\import on AGENT2. The file names remain
unchanged.
In this example, a wildcard is used with double quotation marks. All files in AGENT1's transfer root
directory that end in .txt are transferred to directory C:\import on AGENT2. The file names remain
unchanged.
Return codes
Return
code Description
0 Command completed successfully.
1 Command ended unsuccessfully.
2 Command ended with a timeout. The command sent a message to the agent, but the agent
did not respond within the time specified.
20 Command completed with partial success and some files were transferred.
21 The queue manager that the fteCreateTransfer command was connected to was stopped
before the transfer result was determined.
40 Failed. None of the files specified were transferred.
41 The transfer was canceled.
Purpose
You would expect to use the fteDefine command when some configuration steps need to be run on a
system that is remote to the one containing the configuration data. For example, configuring the queues
for an agent on a queue manager to be accessed over a client connection.
Syntax
fteDefine
fteDefine -t type name
-d outputDir
Parameters
-t type
Required. The type of object to be defined. The options for type are agent.
-d outputDir
Optional. A directory path in which the scripts are written. If not provided, the scripts are written to
the standard output stream.
name
Required. One or more names of the objects to be defined. To specify names for more than one object,
separate them with a space. For example, name1 name2...
-? or -h
Optional. Displays command syntax.
Examples
In this example, the fteDefine command is specified with the -t agent parameter and a single agent
name.
The output that is generated from this command are the MQSC command scripts to be run against the
agent queue manager to create the necessary agent queues:
In this example, the fteDefine command is specified with the -d outputDir parameter and several
agent names.
The output that is generated from this command are the absolute file paths to the locations of the MQSC
command scripts:
Return codes
0
Command completed successfully.
1
Command ended unsuccessfully.
Purpose
You would expect to use the fteDelete command when some configuration steps need to be run on a
system that is remote to the one containing the configuration data. For example, removing the queues for
a remote client agent on a local queue manager.
Syntax
fteDelete
fteDelete -t type name
-d outputDir
Parameters
-t type
Required. The type of object to be delete. The options for type are agent.
-d outputDir
Optional. A directory path in which the scripts are written. If not provided, the scripts are written to
the standard output stream.
name
Required. One or more names of the objects to be delete. To specify names for more than one object,
separate them with a space. For example, name1 name2...
-? or -h
Optional. Displays command syntax.
Examples
In this example, the fteDelete command is specified with the -t agent parameter and a single agent
name.
The output that is generated from this command are the MQSC command scripts to be run against the
agent queue manager to delete the agent queues:
The output that is generated from this command are the absolute file paths to the locations of the MQSC
command scripts:
Return codes
0
Command completed successfully.
1
Command ended unsuccessfully.
fteDeleteAgent
The fteDeleteAgent command deletes a Managed File Transfer Agent and its configuration. If the
agent is a protocol bridge agent, the user credentials file is left on the file system.
Purpose
Stop the agent with the fteStopAgentcommand before running the fteDeleteAgent command.
If you have configured your agent to run as a Windows service, running the fteDeleteAgent command
deletes the service definition.
From IBM MQ 9.0.4, any resource monitor and scheduled transfers are removed when the
agent is deleted.
Only users who are IBM MQ administrators (and members of the mqm group) can run this command. If
you try to run this command as a user who is not an IBM MQ administrator, you will receive an error
message and the command will not run.
The fteDeleteAgent command provides you with the MQSC commands that you must run against your
agent's queue manager to clear and delete the agent's system queues. These queues are as follows:
• SYSTEM.FTE.AUTHADM1.agent_name
• SYSTEM.FTE.AUTHAGT1.agent_name
• SYSTEM.FTE.AUTHMON1.agent_name
• SYSTEM.FTE.AUTHOPS1.agent_name
• SYSTEM.FTE.AUTHSCH1.agent_name
• SYSTEM.FTE.AUTHTRN1.agent_name
• SYSTEM.FTE.COMMAND.agent_name
• SYSTEM.FTE.DATA.agent_name
• SYSTEM.FTE.EVENT.agent_name
• SYSTEM.FTE.REPLY.agent_name
MQ_DATA_PATH/mqft/config/coordination_qmgr_name/agents/agent_name/agent_name_delete.mqsc
Syntax
fteDeleteAgent
fteDeleteAgent
-p configuration_options -f
agent_name
-mquserid userID -mqpassword password
Parameters
-p (configuration_ options)
Optional. If you have more than one coordination queue manager, use this parameter to explicitly
specify which agent configuration you want to delete. Use the name of a non-default coordination
queue manager as the input for this parameter. The command then uses the configuration options
associated with this non-default coordination queue manager.
Specify the optional -p parameter only if you want to use configuration options different from your
defaults. If you do not specify -p, the configuration options defined in the
installation.properties file are used. See “MFT configuration options on Multiplatforms” on
page 68 for more information.
-f
Optional. Forces the command to deregister the agent from the coordination queue manager even if
the agent's configuration files cannot be found. Because information about the agent's queue
manager is not available in this situation, the command will connect directly to the coordination queue
manager instead of using the agent queue manager as it normally would.
-mquserid (userID)
Optional. Specifies the user ID to authenticate with the agent queue manager, unless the force -f
parameter is present. If the -f parameter is present, it specifies the user ID to authenticate with the
coordination queue manager.
-mqpassword (password)
Optional. Specifies the password to authenticate with the agent queue manager, unless the force -f
parameter is present. If the -f parameter is present, it specifies the password to authenticate with
the coordination queue manager. You must also specify the -mquserid parameter. If you specify -
mquserid, but do not specify -mqpassword, you will be prompted to supply the associated
password. The password will not be displayed.
agent_name
Required. The name of the agent that you want to delete.
-? or -h
Optional. Displays command syntax.
Example
In this example, AGENT3 and its configuration on coordination queue manager QM_COORD1 are deleted:
CLEAR QLOCAL(SYSTEM.FTE.COMMAND.AGENT3)
DELETE QLOCAL(SYSTEM.FTE.COMMAND.AGENT3)
CLEAR QLOCAL(SYSTEM.FTE.DATA.AGENT3)
DELETE QLOCAL(SYSTEM.FTE.DATA.AGENT3)
CLEAR QLOCAL(SYSTEM.FTE.REPLY.AGENT3)
DELETE QLOCAL(SYSTEM.FTE.REPLY.AGENT3)
CLEAR QLOCAL(SYSTEM.FTE.STATE.AGENT3)
DELETE QLOCAL(SYSTEM.FTE.STATE.AGENT3)
CLEAR QLOCAL(SYSTEM.FTE.EVENT.AGENT3)
DELETE QLOCAL(SYSTEM.FTE.EVENT.AGENT3)
CLEAR QLOCAL(SYSTEM.FTE.AUTHADM1.AGENT3)
DELETE QLOCAL(SYSTEM.FTE.AUTHADM1.AGENT3)
CLEAR QLOCAL(SYSTEM.FTE.AUTHAGT1.AGENT3)
DELETE QLOCAL(SYSTEM.FTE.AUTHAGT1.AGENT3)
CLEAR QLOCAL(SYSTEM.FTE.AUTHTRN1.AGENT3)
DELETE QLOCAL(SYSTEM.FTE.AUTHTRN1.AGENT3)
CLEAR QLOCAL(SYSTEM.FTE.AUTHOPS1.AGENT3)
DELETE QLOCAL(SYSTEM.FTE.AUTHOPS1.AGENT3)
CLEAR QLOCAL(SYSTEM.FTE.AUTHSCH1.AGENT3)
DELETE QLOCAL(SYSTEM.FTE.AUTHSCH1.AGENT3)
CLEAR QLOCAL(SYSTEM.FTE.AUTHMON1.AGENT3)
DELETE QLOCAL(SYSTEM.FTE.AUTHMON1.AGENT3)
Return codes
0
Command completed successfully.
1
Command ended unsuccessfully.
Related reference
“fteStopAgent” on page 519
Use the fteStopAgent command to either stop a Managed File Transfer agent in a controlled way or to
stop an agent immediately if necessary using the -i parameter.
“fteCleanAgent: clean up an MFT Agent” on page 378
Use the fteCleanAgent command to clean up the queues that a Managed File Transfer Agent uses, by
deleting messages from the persistent and non-persistent queues used by the agent. Use the
fteCleanAgent command if you are having problems starting an agent, which might be caused by
information remaining on the queues used by the agent.
“fteCreateAgent: create an MFT agent” on page 383
The fteCreateAgent command creates a Managed File Transfer Agent and its associated configuration.
“fteStartAgent” on page 516
The fteStartAgent command starts a Managed File Transfer agent from the command line.
fteDeleteLogger
Use the fteDeleteLogger command to delete a Managed File Transfer logger and its configuration.
Existing log files associated with the logger can either be retained or deleted.
Important: On IBM MQ for UNIX, Linux, and Windows, only users who are IBM MQ
administrators (and members of the mqm group) can run this command. If you try to run this command as
a user who is not an IBM MQ administrator, you will receive the error message BFGCL0502E: You are
not authorized to perform the requested operation. and the command will not run.
On z/OS systems, the user must satisfy (at least) one of these conditions in order to run the
migrate command:
• Be a member of the mqm group (if the mqm group is defined on the system).
• Be a member of the group named in the BFG_GROUP_NAME environment variable (if one
is named).
Purpose
Stop the logger with the fteStopLogger command before running the fteDeleteLogger command.
If you have configured your logger to run as a Windows service, running the fteDeleteLogger
command deletes the service definition.
The logger configuration directory contains a MQSC script to delete the queues and the subscription for
the logger. These queues are as follows:
• SYSTEM.FTE.LOG.CMD.logger_name
• SYSTEM.FTE.LOG.RJCT.logger_name
The subscription name is as follows:
• SYSTEM.FTE.AUTO.SUB.logger_name
The MQSC script can be found at MQ_DATA_PATH\mqft\config\coordination_qmgr\loggers
\logger_name\logger_name_delete.mqsc
Syntax
fteDeleteLogger
fteDeleteLogger loggerName
-p configuration options -f
Parameters
-p (configuration_ options)
Optional. Determines the set of configuration options that is used to start the stand-alone database
logger. Use the name of a set of configuration options as the value for the -p parameter. By
convention this value is the name of a coordination queue manager. If you do not specify this
parameter, the default set of configuration options is used.
-f
Optional. Forces the removal of any log files created by this logger. If this parameter is omitted, any
log files created by the logger will be retained, and must be manually removed when they are no
longer required.
logger_name
Required. The name of the logger that you want to delete.
-? or -h
Optional. Displays command syntax.
Example
In this example, a logger called logger1 is deleted. The -f parameter has been specified, which causes
the logger's log files to be removed as well as the logger's configuration files.
fteDeleteLogger -f logger1
Purpose
Use the fteDeleteMonitor command to stop monitoring a resource and remove the monitor's
definition from the monitoring agent. When you run this command, no more polls of the resource occur
and no further tasks are started.
You can run the fteDeleteMonitor command from any system that can connect to the IBM MQ
network and subsequently route to the agent's queue manager. Specifically for the command to run, you
must have installed a Managed File Transfer component (either Service or Agent) on this system and you
must have configured this system's Managed File Transfer to communicate with the IBM MQ network. If
no connectivity details are available, the agent queue manager details are used for connection instead,
provided these details are available.
Specify the optional -p parameter for this command only if you want to use a set of configuration options
different from your default set. See Configuration options for more information.
Syntax
fteDeleteMonitor
fteDeleteMonitor -ma (monitoring_agent_name) -mn (monitor_name)
Parameters
-ma (monitoring_agent_name
Required. The name of the agent that performs the resource monitoring. This monitoring agent must
also have been the source agent for the file transfer that you wanted to trigger.
-mm (monitoring_agent_qmgr_name)
Optional. The name of the monitoring agent's queue manager. Because the monitoring agent and the
source agent of the transfer the monitor triggered must be same, this queue manager is also your
source agent's queue manager.
-mquserid (userID)
Optional. Specifies the user ID to authenticate with the command queue manager.
-mqpassword (password)
Optional. Specifies the password to authenticate with the command queue manager. You must also
specify the -mquserid parameter. If you specify -mquserid, but do not specify -mqpassword, you
will be prompted to supply the associated password. The password will not be displayed.
-p (configuration_options)
Optional. This parameter determines the set of configuration options to use to cancel the transfer. By
convention use the name of a non-default coordination queue manager as the input for this
parameter. The command then uses the set of properties files associated with this non-default
coordination queue manager.
If you do not specify this parameter, the set of configuration options based on the default coordination
queue manager is used.
-? or -h
Optional. Displays command syntax.
Example
In this example, the resource monitor MONITOR1 with a monitoring (and file transfer source agent)
AGENT1 is deleted:
Return codes
0
Command completed successfully.
1
Command ended unsuccessfully.
Related tasks
“Monitoring MFT resources” on page 176
You can monitor Managed File Transfer resources; for example, a queue or a directory. When a condition
on this resource is satisfied, the resource monitor starts a task, such as a file transfer. You can create a
resource monitor by using the fteCreateMonitor command or the Monitors view in the Managed File
Transfer plug-in for IBM MQ Explorer.
Related reference
“fteCreateMonitor: create an MFT resource monitor” on page 405
The fteCreateMonitor command creates and starts a new resource monitor from the command line.
You can monitor a resource (for example, the contents of a directory) by using Managed File Transfer so
that when a trigger condition is satisfied, a specified task, such as a file transfer, is started.
“fteListMonitors: list MFT resource monitors” on page 465
fteDeleteScheduledTransfer
Purpose
Use the fteDeleteScheduledTransfer command to delete a Managed File Transfer scheduled
transfer that you have previously created either using the command line or the IBM MQ Explorer.
Specify the optional -p parameter for this command only if you want to use configuration options
different from your defaults. If you do not specify -p, the configuration options defined in
installation.properties are used. See “MFT configuration options on Multiplatforms” on page 68
for more information.
Syntax
fteDeleteScheduledTransfer
fteDeleteScheduledTransfer
-p (configuration_options)
-agentName (agent_name)
-m (agent_qmgr_name)
schedule_ID
-mquserid userID -mqpassword password
Parameters
-p (configuration_options)
Optional. If you have more than one coordination queue manager, use this parameter to explicitly
specify which scheduled transfer you want to delete. Use the name of a non-default coordination
queue manager as the input for this parameter. The command then uses the configuration options
associated with this non-default coordination queue manager.
If you do not specify this parameter, the configuration options based on the default coordination
queue manager are used.
-m (agent_qmgr_name)
Optional. The name of the queue manager that the source agent is connected to. If you do not specify
this parameter, the agent's queue manager is determined from the configuration options in use.
-agentName (agent_name)
Required. The name of the source agent that you want to delete the scheduled transfer from.
-mquserid (userID)
Optional. Specifies the user ID to authenticate with the command queue manager.
-mqpassword (password)
Optional. Specifies the password to authenticate with the command queue manager. You must also
specify the -mquserid parameter. If you specify -mquserid, but do not specify -mqpassword, you
will be prompted to supply the associated password. The password will not be displayed.
schedule_ID
Required. The ID of the scheduled transfer that you want to delete.
You can find the schedule ID by running the fteListScheduledTransfers command against the name of
the source agent.
Example
In this example, a scheduled transfer on source agent AGENT2 with the ID 27 is deleted:
Return codes
0
Command completed successfully.
1
Command ended unsuccessfully.
Related tasks
“Creating a scheduled file transfer” on page 169
You can schedule a new file transfer either from the IBM MQ Explorer Explorer or from the command line.
The scheduled transfer can contain single files or multiple files in a group. You can perform a scheduled
file transfer once or repeat the transfer multiple times.
Related reference
“fteListScheduledTransfers” on page 468
Use the fteListScheduledTransfers command to list all of the Managed File Transfer transfers that
you previously created using the command line or the IBM MQ Explorer.
fteDeleteTemplates
Use the fteDeleteTemplates command to delete an existing Managed File Transfer template from a
coordination queue manager.
Purpose
The fteDeleteTemplates command removes one or more file transfer templates from a coordination
queue manager. When you run this command a request is passed to the IBM MQ system to remove the
templates from the coordination queue manager so that the templates are no longer available to the IBM
MQ Explorer or the command line. The templates you are deleting might continue to be accessed for a
brief interval after the command completes until the IBM MQ system actions the request.
You can run the fteDeleteTemplates command from any system that can connect to the IBM MQ
network and subsequently route to the coordination queue manager. Specifically for the command to run,
you must have installed Managed File Transfer on this system and you must have configured this system's
Managed File Transfer to communicate with the IBM MQ network. If no connectivity details are available,
the agent queue manager details are used for connection instead, provided these details are available.
Specify the optional -p parameter for this command only if you want to use a set of configuration options
different from your default set. See Configuration options for more information.
fteDeleteTemplates
fteDeleteTemplates
-p configuration_options -mquserid userID
template_names
-mqpassword password
Parameters
-p (configuration_options)
Optional. This parameter determines the set of configuration options to use to delete the template. By
convention use the name of a non-default coordination queue manager as the input for this
parameter. The command then uses the set of properties files associated with this non-default
coordination queue manager.
If you do not specify this parameter, the set of configuration options based on the default coordination
queue manager is used.
-mquserid (userID)
Optional. Specifies the user ID to authenticate with the coordination queue manager.
-mqpassword (password)
Optional. Specifies the password to authenticate with the coordination queue manager. You must also
specify the -mquserid parameter. If you specify -mquserid, but do not specify -mqpassword, you
will be prompted to supply the associated password. The password will not be displayed.
(template_names)
Required. Specify one or more template names that you want to delete. Specify the name as displayed
by the fteListTemplates command.
-? or -h
Optional. Displays command syntax.
Example
In this example, the template STANDBY is deleted:
fteDeleteTemplates STANDBY
Return codes
0
Command completed successfully.
1
Command ended unsuccessfully.
Related tasks
“Working with file transfer templates” on page 199
You can use file transfer templates to store common file transfer settings for repeated or complex
transfers. Either create a transfer template from the command line by using the fteCreateTemplate
command or use the IBM MQ Explorer to create a transfer template by using the Create New Template
for Managed File Transfer wizard, or save a template while you are creating a file transfer by selecting
the Save transfer settings as a template check box. The Transfer Templates window displays all of the
transfer templates that you have created in your Managed File Transfer network.
“Creating a file transfer template using IBM MQ Explorer” on page 200
fteDisplayVersion
Use the fteDisplayVersion command to display the version of Managed File Transfer that you have
installed.
Purpose
You might be asked to run the fteDisplayVersion command by an IBM Service Representative to help
with problem determination.
Syntax
fteDisplayVersion
fteDisplayVersion
-v
Parameters
-v
Optional. Displays a verbose amount of information about the product version.
The precise details that are displayed when you specify the -v parameter might vary between product
releases. You are not recommended to rely on specific information being available in the output from
the fteDisplayVersion -v command.
Example
In this example, the fteDisplayVersion command is specified with no parameters.
fteDisplayVersion
The output from this command is the product version level. For example, 7.5, as follows:
fteDisplayVersion -v
The output from this command is the following more detailed information about the product version:
C:\Program Files\IBM\MQ\bin>fteDisplayVersion.cmd -v
5724-H72 Copyright IBM Corp. 2008, 2020. ALL RIGHTS RESERVED
Name: WebSphere MQ Managed File Transfer
Version: 7.5
Level: f000-20120518-1027
Platform: Windows 7 (6.1 build 7601 Service Pack 1)
Architecture: x86
JVM: JRE 1.6.0 IBM J9 2.4 Windows 7 x86-32 jvmwi3260sr10fp1-20120202_101568 (JIT enabled, AOT
enabled)
J9VM - 20120202_101568
JIT - r9_20111107_21307ifix1
GC - 20120202_AA
Product: C:\Program Files\IBM\MQ
Configuration: C:\Program Files\IBM\MQ\mqft
WebSphere MQ Components:
Return codes
0
Command completed successfully.
1
Command ended unsuccessfully.
Purpose
You can run the fteListAgents command from any system that can connect to the coordination queue
manager. The following details for each agent are directed to the standard output device (STDOUT):
• Agent name
• Agent queue manager
• If the agent is a protocol bridge agent, the agent name is appended with either (FTP bridge) or
(SFTP bridge)
• If the agent is a Connect:Direct bridge agent, the agent name is appended with (Connect:Direct
bridge)
• Agent status
This command uses the coordination.properties file to connect to the coordination queue
manager. For more information, see “The MFT coordination.properties file” on page 528.
Syntax
fteListAgents
fteListAgents
-t -v pattern
Parameters
-p (configuration_options)
Optional. This parameter determines the set of configuration options that is used to issue the request
to list agents. Use the name of a non-default coordination queue manager as the input for this
parameter. The command then uses the set of properties files associated with this non-default
coordination queue manager.
If you do not specify this parameter, the set of configuration options based on the default coordination
queue manager is used.
-mquserid (userID)
Optional. Specifies the user ID to authenticate with the coordination queue manager.
-mqpassword (password)
Optional. Specifies the password to authenticate with the coordination queue manager. You must also
specify the -mquserid parameter. If you specify -mquserid, but do not specify -mqpassword, you
will be prompted to supply the associated password. The password will not be displayed.
-v
Optional. Specifies verbose mode. Verbose mode generates additional output for each agent,
including the current number of transfers in the form Source/Destination, where Source is the
current number of source transfers and Destination is the current number of destination transfers.
The current transfer information is obtained from the agent status publication, which is described in
the following topic: “MFT agent status message format” on page 713. As a result, this transfer
information is only accurate to within the setting for the agentStatusPublishRateLimit agent property
value (which defaults to 30 seconds).
-t
Optional. Specifies terse mode. At IBM MQ 9.0.2, the output includes the Status Age column by
default. If you do not want to see the Status Age information, you can issue the command with the
pattern
Optional. The pattern to use to filter the list of Managed File Transfer agents. This pattern is matched
against the agent name. Asterisk (*) characters are interpreted as wildcards, that match any value,
including zero characters.
On UNIX and Linux systems, you must escape special characters like the asterisk (*) and the number
sign (#) with quotation marks (' ') or double quotation marks (" ") if you want them to be handled as
literals. If you do not escape these characters, they are interpreted according to their meaning on the
specific UNIX or Linux system.
If you do not specify this parameter, all agents registered with the coordination queue manager are
listed.
-? or -h
Optional. Displays command syntax.
Example
In this example, all of the agents registered on the queue manager detailed in the configuration options
with names beginning with B are listed:
fteListAgents "B*"
In this example, agents that are registered with the coordination queue manager QM_EUROPE (the non-
default coordination queue manager) are listed in verbose mode:
fteListAgents -p QM_EUROPE -v
For a list of the possible agent status values and their meanings, see the topic “MFT agent status values”
on page 609.
In this example, all agents that are registered with the coordination queue manager and that have names
beginning with BRIDGE are listed in verbose mode:
fteListAgents -v "BRIDGE*"
C:\Program Files\IBM\WMQFTE\bin>fteListAgents -v
5724-H72 Copyright IBM Corp. 2008, 2020. ALL RIGHTS RESERVED
Agent Name: Queue Manager Name: Transfers: Status:
(Source/Destination)
BRIDGE_FTP (FTP bridge) QM_JUPITER 0/0 STOPPED
BRIDGE_CD1 (Connect:Direct bridge) QM_JUPITER 0/0 STOPPED
Return codes
0
Command completed successfully.
Purpose
The fteListMonitors command lists existing resource monitors. You can filter the command output by
specifying an agent name and a resource monitor name.
This command uses the coordination.properties file to connect to the coordination queue
manager. For more information, see “The MFT coordination.properties file” on page 528.
You can use the -ox parameter to export a resource monitor to an XML file. For more information on how
to use this XML file, see “fteCreateMonitor: create an MFT resource monitor” on page 405.
Specify the optional -p parameter for this command only if you want to use a set of configuration options
different from your default set. For more information, see Configuration options.
Syntax
fteListMonitors
fteListMonitors
-p configuration_options
The -ox parameter must not be combined with the -od parameter.
-od (directory_name)
Optional. Exports multiple resource monitor definitions to the specified directory. Each resource
monitor definition is saved to a separate XML file with a name in the format agent name.monitor
name.xml. You must specify a valid target directory for the XML files, otherwise an error message is
displayed. This parameter must not be combined with the -ox parameter.
-? or -h
Optional. Displays command syntax.
In this example, a single resource monitor, MONITOR1, on AGENT1 is exported to the directory that is
specified by the -od parameter. Except for the difference in the XML file name format, this example is
similar to using the -ox parameter.
In all of the following examples, the resource monitors are exported to the directory that is specified by
the -od parameter. Each resource monitor definition is saved to separate XML file with a name in the
format agent name.monitor name.xml.
In this example, all resource monitors are exported to the specified directory:
In this example, all resource monitors on AGENT1 are exported to the specified directory:
You can use wildcard matching to define which resource monitors to export by using an asterisk character
(*) when you specify a pattern to match to agent names, or monitor names, or both.
In this example, all resource monitors on AGENT1 with names that match the pattern MON* are exported
to the specified directory:
In this example, all resource monitors on agents with names that match the pattern AGEN* are exported
to the specified directory:
In this example, all resource monitors with names that match the pattern MON* on agents with names
that match the pattern AGENT* are exported to the specified directory:
Return codes
0
Command completed successfully.
1
Command ended unsuccessfully.
Related tasks
“Monitoring MFT resources” on page 176
fteListScheduledTransfers
Use the fteListScheduledTransfers command to list all of the Managed File Transfer transfers that
you previously created using the command line or the IBM MQ Explorer.
Purpose
You can either list all scheduled transfers based on source agent names or based on the coordination
queue manager.
Specify the optional -p parameter for this command only if you want to use configuration options
different from your defaults. If you do not specify -p, the configuration options defined in
installation.properties are used. See “MFT configuration options on Multiplatforms” on page 68
for more information.
Syntax
fteListScheduledTransfers
fteListScheduledTransfers
-p configuration_options
Parameters
-p (configuration_options)
Optional. If you have more than one coordination queue manager, use this parameter to explicitly
specify which agents you want to list scheduled transfers for. Use the name of a non-default
coordination queue manager as the input for this parameter. The command then uses the
configuration options associated with this non-default coordination queue manager.
If you do not specify this parameter, the configuration options based on the default coordination
queue manager are used.
-mquserid (userID)
Optional. Specifies the user ID to authenticate with the coordination queue manager.
Example
In this example, all of the scheduled transfers with source agents that match the pattern *2 are listed:
fteListScheduledTransfers "*2"
This example command produces the following output. The schedule start time and next transfer time are
displayed in Coordinated Universal Time (UTC):
Schedule Identifier: 1
Source Agent Name: AGENT2
Source File Name: C:/export/Test/workspace/A.exe
Conversion Type: binary
Destination File Name: C:/import/Test/workspace/B001.zzx
Destination Agent Name: AGENT1
Schedule Start Time: 2008-10-23T16:08+0100
Next Transfer: 2008-10-23T16:08+0100
Schedule Time Base: source
Repeat Interval: minutes
Repeat Frequency: 1
Repeat Count: 30
Return codes
0
Command completed successfully.
1
Command ended unsuccessfully.
Related tasks
“Creating a scheduled file transfer” on page 169
You can schedule a new file transfer either from the IBM MQ Explorer Explorer or from the command line.
The scheduled transfer can contain single files or multiple files in a group. You can perform a scheduled
file transfer once or repeat the transfer multiple times.
Related reference
“fteDeleteScheduledTransfer” on page 458
fteListTemplates
Use the fteListTemplates command to list the available Managed File Transfer transfer templates on
a coordination queue manager.
Purpose
This command lists either all template names or a filtered selection of template names. The output format
of the list can be any of the following:
Syntax
fteListTemplates
fteListTemplates
-p configuration_options -v -x
Parameters
-p
Optional. This parameter determines the set of configuration options to use to delete the template. By
convention use the name of a non-default coordination queue manager as the input for this
parameter. The command then uses the set of properties files associated with this non-default
coordination queue manager.
If you do not specify this parameter, the set of configuration options based on the default coordination
queue manager is used.
-v
Optional. Specifies verbose mode and provides a short summary of each matching template. This
parameter is ignored if you have also specified the -x parameter.
The -v parameter includes a summary of each template. For example:
If you do not specify the -v parameter, the default output mode is to list the matching templates
names.
-o (directory_name)
Optional. Sends the XML formatted-message to files in the named directory. One file for each
template is created and each file has the same name as the template with an .xml suffix. This
parameter is ignored unless you also specify the -x parameter.
-f
Optional. Forces any existing output file to be overwritten. This parameter is ignored unless you also
specify the -o parameter. If you do not specify -f but you do specify the name of an existing output
file, the default behavior is to report an error and continue.
-mquserid (userID)
Optional. Specifies the user ID to authenticate with the coordination queue manager.
-mqpassword (password)
Optional. Specifies the password to authenticate with the coordination queue manager. You must also
specify the -mquserid parameter. If you specify -mquserid, but do not specify -mqpassword, you
will be prompted to supply the associated password. The password will not be displayed.
(template_names)
Optional. A list of one or more template names to be listed. A template name can include an asterisk
as a wildcard that matches zero or more characters. Depending on your operating system, you might
need to enclose any template names that include wildcard character in quotation marks (" ") or single
quotation marks (' ') to avoid shell expansion. Shell expansion can cause unexpected behavior.
If you do not specify anything for template_names, the default is to list all templates.
-? or -h
Optional. Displays command syntax.
Example
In this example, all the templates with names starting with ST are listed:
fteListTemplates "ST*"
This example creates the template STANDBY as an XML-formatted message to the file STANDBY.xml in
the current directory:
fteListTemplates -x -o . STANDBY
Return codes
0
Command completed successfully.
1
Command ended unsuccessfully.
From IBM MQ 9.0, Managed File Transfer does not support web agents. If you attempt to
use the fteMigrateAgent command to migrate a web agent from an earlier release to IBM MQ 9.0, an
error message is displayed to explain that the migration of a web agent is not supported.
Note: If you are migrating from IBM WebSphere MQ File Transfer Edition 7.0 or later, and want to continue
using the FTE_CONFIG environment variable, you can do so without changing the FTE_CONFIG value. You
can perform a standard migrate, but BFG_DATA must not be set, and FTE_CONFIG must be set as used in
IBM WebSphere MQ 7.0.
Important: On IBM MQ for UNIX, Linux, and Windows, only users who are IBM MQ
administrators (and members of the mqm group) can run this command. If you try to run this command as
a user who is not an IBM MQ administrator, you will receive the error message BFGCL0502E: You are
not authorized to perform the requested operation. and the command will not run.
On z/OS systems, the user must satisfy (at least) one of these conditions in order to run the
migrate command:
• Be a member of the mqm group (if the mqm group is defined on the system).
• Be a member of the group named in the BFG_GROUP_NAME environment variable (if one
is named).
• Have no value set in the BFG_GROUP_NAME environment variable when the command is
run.
If your agent is configured to run as a Windows service, use the fteModifyAgent command to
reconfigure the agent so that it is no longer a Windows service. After the migration is complete, use the
fteModifyAgent command again to configure the new agent to be a Windows service. Alternatively, if
you include the -f parameter, the command completes but produces a warning.
Before you can run the fteMigrateAgent command, you must stop the agent you want to migrate using
the fteStopAgent command.
If you run the command with the -f parameter, only the information about the agent is refreshed. If a
required file is missing, the command fails.
Specifically, the following properties files, XML files, and directory associated with the agent are migrated:
The fteMigrateAgent command migrates the files for the installation, coordination, and command
queue managers and copies them to IBM WebSphere MQ 7.5 or later if the files do not already exist on
IBM WebSphere MQ 7.5 or later. If the files already exist, they are not copied as part of the command.
Syntax
fteMigrateAgent
fteMigrateAgent -agentName agent_name -config configuration_directory
-credentialPath credentials_path
-f -p configuration_options
Parameters
-agentName agent_name
Required. The name of the agent that you want to migrate to IBM WebSphere MQ 7.5 or later.
-config configuration_directory
Required. The path to the configuration directory for the installation that you are migrating the agent
from. For example, C:\Documents and Settings\All Users\Application Data\IBM
\WMQFTE\config
Examples
In this example, AGENT3 and its configuration in /var/ibm/WMQFTE/config is migrated to IBM
WebSphere MQ 7.5 or later:
In this example, all agents and their configurations in C:\Documents and Settings\All Users
\Application Data\IBM\WMQFTE\config are migrated to IBM WebSphere MQ 7.5 or later. The
Windows file path is enclosed in double quotation marks (" "). The -f parameter is specified to force
migration and ignore any property file mismatches:
Return codes
0
Command completed successfully.
1
Command ended unsuccessfully.
For more information about return codes, see “Return codes for MFT” on page 334.
On z/OS systems, the user must satisfy (at least) one of these conditions in order to run the
migrate command:
• Be a member of the mqm group (if the mqm group is defined on the system).
• Be a member of the group named in the BFG_GROUP_NAME environment variable (if one
is named).
• Have no value set in the BFG_GROUP_NAME environment variable when the command is
run.
Syntax
fteMigrateConfigurationOptions
fteMigrateConfigurationOptions -config configuration_directory -credentialPath
Parameters
-config (configuration_directory)
Required. The path to the configuration directory for the installation that you are migrating from. For
example, C:\Documents and Settings\All Users\Application Data\IBM\WMQFTE
\config
-credentialPath (credentials_path)
Required. Defines the location to migrate the credential information to. This parameter can either be a
directory path where existing credential files are present or a new location to receive a new credential
file.
This parameter is used for migrating password properties for the SSL/TLS key store and trust store
properties that are present in the agent.properties, coordination.properties, and
command.properties files from a version of the product earlier than IBM WebSphere MQ 7.5 to 7.5
or later.
Before IBM WebSphere MQ 7.5, the password property, for example
coordinationSslTrustStorePassword, used to be present in the coordination.properties
file, but was moved to the MQMFTCredentials.xml file in IBM WebSphere MQ 7.5. To move the
password property from the coordination.properties file to the MQMFTCredentials.xml file,
the -credentialsPath is used. When this option is used the
fteMigrateConfigurationOptions command looks in the coordination.properties file for
"coordinationSslTrustStorePassword" and, if it is present, migrates the property to the
MQMFTCredentials.xml file.
For z/OS platforms this can be a pre-existing partitioned data set extended (PDSE),
either with existing members to be updated, or without existing members to include a new member
for these credentials.
Note: If a PDSE is used, it must be variable block.
-configurationOptionsName (configuration_options_name)
Required. The name of the set of configuration options that you want to migrate. You can migrate
multiple sets of configuration options by using the asterisk character (*) to represent zero or more
Examples
In this example, all configurations in the directory C:\Documents and Settings\All Users
\Application Data\IBM\WMQFTE\config are migrated. The directory path is enclosed in double
quotation marks:
Return codes
0
Command completed successfully.
1
Command ended unsuccessfully.
Related reference
“Changes between FTE and MFT” on page 26
If you are planning to move from IBM WebSphere MQ File Transfer Edition 7.0.4 or earlier, to Managed
File Transfer in IBM WebSphere MQ 7.5 or later, review the following information that summarizes the
changes between versions.
“fteMigrateAgent: migrate an FTE 7.0 agent to MQ 7.5 or later” on page 472
If you want to migrate an existing agent and its associated configuration from IBM WebSphere MQ File
Transfer Edition 7.0 to IBM WebSphere MQ 7.5 or later, use the fteMigrateAgent command to migrate.
This command can be used to migrate a standard agent, a Connect:Direct agent, or a protocol bridge
agent. The command can also be used to migrate multiple agents in a single request.
“fteMigrateLogger: migrate an FTE 7.0 database logger to MQ 7.5 or later” on page 476
If you want to migrate the configuration of an existing stand-alone database logger from IBM WebSphere
MQ File Transfer Edition 7.0.1 or later to IBM WebSphere MQ 7.5 or later, use the fteMigrateLogger
command.
Important: On IBM MQ for UNIX, Linux, and Windows, only users who are IBM MQ
administrators (and members of the mqm group) can run this command. If you try to run this command as
a user who is not an IBM MQ administrator, you will receive the error message BFGCL0502E: You are
not authorized to perform the requested operation. and the command will not run.
On z/OS systems, the user must satisfy (at least) one of these conditions in order to run the
migrate command:
• Be a member of the mqm group (if the mqm group is defined on the system).
• Have no value set in the BFG_GROUP_NAME environment variable when the command is
run.
If you have configured a stand-alone database logger to run as a Windows service, you cannot migrate
that logger's configuration using the fteMigrateLogger command. If you run the fteMigrateLogger
command on a logger configured to run as a Windows service, the command produces an error and does
not continue. Alternatively, if you include the -f parameter, the command completes but produces a
warning.
Before you run the fteMigrateLogger command, stop the database logger whose configuration you
want to migrate on IBM WebSphere MQ File Transfer Edition 7.0.
If you run the command with the -f parameter, only the information about the logger is refreshed. If a
required file is missing, the command fails. Specifically, the following properties files and .mqsc file
associated with the logger configuration are migrated:
The fteMigrateLogger command migrates the files for the installation, coordination, and command
queue managers and copies them to IBM WebSphere MQ 7.5 or later provided that the files do not
already exist on the target version. If the files already exist, they are not copied as part of the command.
Syntax
fteMigrateLogger
fteMigrateLogger -loggerName logger_name -config configuration_directory
-credentialPath credentials_path
-file properties_file -f
-p configuration_options
Parameters
-loggerName logger_name
Required. The name that you want to give to the migrated logger configuration in IBM WebSphere MQ
7.5 or later. For more information about logger names, which are new for IBM WebSphere MQ 7.5 see
logger_name parameter.
-credentialPath credentials_path
Required. Defines the location to migrate the credential information to. This parameter can either be a
directory path where existing credential files are present or a new location to receive a new credential
file. For z/OS platforms this can be a pre-existing partitioned data set extended (PDSE), either with
existing members to be updated, or without existing members to include a new member for these
credentials.
Note: If a PDSE is used, it must be variable block.
-file properties_file
Optional. Specifies the database logger properties file to migrate. This parameter is required only if
the properties file does not use the following default name and path: configuration_directory/
coordination_qmgr_name/databaselogger.properties
-f
Optional. Forces migration even if some of the configuration files that are typically migrated conflict
with the existing configuration. For example, if there is a mismatch a between the database logger
properties files on IBM WebSphere MQ File Transfer Edition and the properties files on IBM
WebSphere MQ 7.5 or later, specifying the -f parameter means this mismatch is ignored.
-p configuration_options
Optional. This parameter determines the set of configuration options that is used to locate the logger
configuration to migrate. Use the name of a set of configuration options as the value of the -p
parameter. By convention, this is the name of a coordination queue manager. If you do not specify this
parameter, the default set of configuration options is used. For more information, see “MFT
configuration options on Multiplatforms” on page 68.
-? or -h
Optional. Displays command syntax.
Example
In this example, the configuration of a stand-alone database logger located in /var/ibm/WMQFTE/
config is migrated to IBM WebSphere MQ 7.5 and is named FTELOGGER1:
Return codes
0
Command completed successfully.
1
Command ended unsuccessfully.
For more information about return codes, see “Return codes for MFT” on page 334.
Important: On IBM MQ for UNIX, Linux, and Windows, only users who are IBM MQ
administrators (and members of the mqm group) can run this command. If you try to run this command as
a user who is not an IBM MQ administrator, you will receive the error message BFGCL0502E: You are
not authorized to perform the requested operation. and the command will not run.
On z/OS systems, the user must satisfy (at least) one of these conditions in order to run the
migrate command:
• Be a member of the mqm group (if the mqm group is defined on the system).
• Be a member of the group named in the BFG_GROUP_NAME environment variable (if one
is named).
• Have no value set in the BFG_GROUP_NAME environment variable when the command is
run.
Syntax
fteModifyAgent
fteModifyAgent -agentName agent_name
-p configuration_options
-n
Parameters
-agentName agent_name
Required. The name of the agent you want to modify.
-p configuration_options
Optional. This parameter determines the set of configuration options that is used to modify the agent.
By convention use the name of a non-default coordination queue manager as the input for this
parameter. The fteModifyAgent command then uses the set of properties files associated with this
non-default coordination queue manager.
-s service_name
Optional. Indicates that the agent is to run as a Windows service. If you do not specify service_name,
the service is named mqmftAgentAGENTQMGR, where AGENT is the agent name and QMGR is your
agent queue manager name.
The display name for the service, which is shown in the Windows Services window in the Name
column, is always Managed File Transfer Agent AGENT@QMGR.
Note: If the redistributable agent is going to run as a Windows service, then the BFG_DATA
environment variable needs to be set in the system environment for the service to work.
-su user_name
Optional. When the agent is to run as a Windows service, this parameter specifies the name of the
account under which the service should run. To run the agent using a Windows domain user account
specify the value in the form DomainName\UserName. To run the service using an account from the
local built-in domain specify the value in the form UserName.
The Windows user account that you specify using the -su parameter must have the Log on as a
service right. For information about how to grant this right, see “Guidance for running an MFT agent
or logger as a Windows service” on page 322.
This parameter is required when -s is specified. Equivalent to -serviceUser.
-sp password
Optional. Password for the user account set by the -su or -serviceUser parameter.
This parameter is only valid when -s is specified. Equivalent to -servicePassword. If you do not
specify this parameter when you specify the -s parameter, a warning message is produced. This
message warns you that you must set the password using the Windows Services tool before the
service will start successfully.
-sj options
Optional. When the agent is started as a Windows service, this parameter defines a list of options in
the form of -D or -X that will be passed to the Java Virtual Machine (JVM). The options are separated
using the number sign (#) or semicolon (;) character. If you need to embed any # or ; characters, put
them inside single quotation marks.
For more information about the way in which the fteModifyAgent command handles
the validation of updates to the JVM options that are specified with the -serviceJVMOptions
parameter, see Guidance for updating agent or logger JVM options.
This parameter is only valid when -s is specified. Equivalent to -serviceJVMOptions.
-sl options
Optional. Sets the Windows service log level. Valid options are: error, info, warn, debug. The default is
info. This option can be useful if you are having problems with the Windows service. Setting it to
debug gives more detailed information in the service log file.
This parameter is only valid when -s is specified. Equivalent to -serviceLogLevel.
-n
Optional. Indicates that the agent is to be run as a normal process. This is mutually exclusive with the
-s option. If neither the -s nor the -n option is specified, then the agent is configured as a normal
Windows process.
Equivalent to -normal.
-? or -h
Optional. Displays command syntax.
You must stop the agent you want to modify, using the fteStopAgent command, before you can run the
fteModifyAgent command.
Return codes
0
Command completed successfully.
1
Command ended unsuccessfully.
Related concepts
“Guidance for running an MFT agent or logger as a Windows service” on page 322
You can run a Managed File Transfer agent, a stand-alone database logger, and a stand-alone file logger,
as Windows services. If you are having a problem with these Windows services, you can use the service
log files and the information in this topic to diagnose the issue.
Related tasks
“Starting an MFT agent as a Windows service” on page 161
You can start an agent as a Windows service so that when you log off Windows, your agent continues
running and can receive file transfers.
Related reference
“fteCreateAgent: create an MFT agent” on page 383
The fteCreateAgent command creates a Managed File Transfer Agent and its associated configuration.
“fteModifyLogger: run an MFT logger as a Windows service” on page 481
Use the fteModifyLogger command to modify a Managed File Transfer logger so that it can be run as a
Windows service. You can use this command only on Windows platforms, and you must first stop the
logger by using the fteStopLogger command.
Important: On IBM MQ for UNIX, Linux, and Windows, only users who are IBM MQ
administrators (and members of the mqm group) can run this command. If you try to run this command as
a user who is not an IBM MQ administrator, you will receive the error message BFGCL0502E: You are
not authorized to perform the requested operation. and the command will not run.
On z/OS systems, the user must satisfy (at least) one of these conditions in order to run the
migrate command:
• Be a member of the mqm group (if the mqm group is defined on the system).
• Be a member of the group named in the BFG_GROUP_NAME environment variable (if one
is named).
Purpose
A stand-alone logger, whether for a file or for a database, is shown as "Managed File Transfer logger for
property set logger_name@logger_qm" in the Name column of the Services application. The value of
logger_qm is the name of the command queue manager of the logger.
Syntax
fteModifyLogger
fteModifyLogger -loggerName (logger_name)
-p configuration_ options
-n
-sl options
Parameters
-loggerName (logger_name)
Required. The name of the Managed File Transfer logger you want to modify.
-p configuration_options
Optional. This parameter determines the set of configuration options that is used to modify the logger.
By convention use the name of a non-default coordination queue manager as the input for this
parameter. The fteModifyLogger command then uses the set of properties files associated with
this non-default coordination queue manager.
Specify the optional -p parameter only if you want to use configuration options different from your
defaults. If you do not specify this parameter, the set of configuration options based on the default
coordination queue manager is used.
-s service_name
Optional. Indicates that the logger is to run as a Windows service. If you do not specify service_name,
the service is named mqmftLoggerLOGGERQMGR, where LOGGER is the logger name and QMGR is
your logger queue manager name.
The display name for the service, which is shown in the Windows Services window in the Name
column, is always Managed File Transfer Logger LOGGER@QMGR.
For more information about the way in which the fteModifyLogger command handles
the validation of updates to the JVM options that are specified with the -serviceJVMOptions
parameter, see Guidance for updating agent or logger JVM options.
-sl or -serviceLogLevel options
Optional. Only valid when -s is specified. Sets the Windows service log level. Valid options are:
error, info, warn, debug. The default is info. This option can be useful if you are having problems
with the Windows service. Setting it to debug gives more detailed information in the service log file.
-n or -normal
Optional. Indicates that the logger is to be run as a normal process. This is mutually exclusive with the
-s option. If neither the -s nor the -n option is specified, then the logger is configured as a normal
Windows process.
-? or -h
Optional. Displays command syntax.
Example
You must stop the logger by using the fteStopLogger command, before running the fteModifyLogger
command.
In this example, a logger named logger1 has previously been created. This command shows how the
logger can be changed to run as a Windows service:
Return codes
0
Command completed successfully.
1
Command ended unsuccessfully.
Related concepts
“Guidance for running an MFT agent or logger as a Windows service” on page 322
You can run a Managed File Transfer agent, a stand-alone database logger, and a stand-alone file logger,
as Windows services. If you are having a problem with these Windows services, you can use the service
log files and the information in this topic to diagnose the issue.
Related tasks
“Starting an MFT agent as a Windows service” on page 161
Purpose
User name and password properties in credentials files can be obfuscated. These properties are
transformed to a new related property, with a Cipher suffix. For example:
<!--
MQMFTCredentials properties before
-->
<tns:logger name="logger1" user="user1" password="passw0rd"/>
<tns:file path="$HOME/trust.jks" password="passw0rd"/>
<!--
MQMFTCredentials properties after
-->
<tns:logger name="logger1" userCipher="e71vKCg2pf" passwordCipher="se71vKCg"/>
<tns:file path="$HOME/trust.jks" passwordCipher="e71vKCg2pf"/>
<!--
ProtocolBridgeCredentials Properties before
-->
<tns:user name="Fred" serverUserId="fred" serverPassword="passw0rd"/>
<!--
ProtocolBridgeCredentials properties after
-->
<tns:user name="Fred" serverUserIdCipher="e51vVCg2pf" serverPasswordCipher="se51vBCg"/>
<!--
ConnectDirectCredentials properties before
-->
<tns:user name="fteuser" ignorecase="true" pattern="wildcard"
cdUserId="cdUser" cdPassword="cdPassword" pnodeUserId="pnodeUser"
pnodePassword="pnodePassword">
<tns:snode name="snode1" pattern="wildcard" userId="snodeUser" password="snodePassword"/>
</tns:user>
<!--
ConnectDirectCredentials properties after
-->
<tns:user name="fteuser" ignorecase="true" pattern="wildcard"
cdUserIdCipher="e71vKCg2pf" cdPasswordCipher="se71vKCg"
pnodeUserIdCipher="2f1vgCg6df" pnodePasswordCipher="e71vKCg2pf">
<tns:snode name="snode1" pattern="wildcard" userIdCipher="e51vVCg2pf" passwordCipher="se51vBCg"/>
</tns:user>
Syntax
fteObfuscate
fteObfuscate -credentialsFile credentials_file_name
Example
In this example, the MQMFTCredentials.xml contents are obfuscated.
Return codes
0
Command completed successfully.
1
Command ended unsuccessfully.
Related reference
“MFT and IBM MQ connection authentication” on page 53
Managed File Transfer in IBM MQ 8.0 or later supports the IBM MQ 8.0 or later security features, with the
default mode of disabled. If the associated queue manager has security enabled, and requires credential
details (user ID and password), this feature must enabled before a successful connection to a queue
manager can be made.
“MFT credentials file format” on page 789
The MQMFTCredentials.xml file contains sensitive user ID and password information. The elements in
the MQMFTCredentials.xml file must conform to the MQMFTCredentials.xsd schema. The security
of credentials files is the responsibility of the user.
Purpose
Use the ftePingAgent command to check whether a Managed File Transfer agent is reachable and, if
so, whether it is able to respond to a simple query along the lines of are you there?. An example
output of this command is as follows:
C:\> ftePingAgent AGENT86
5724-H72 Copyright IBM Corp. 2008, 2020. ALL RIGHTS RESERVED
BFGPR0127W: No credentials file has been specified to connect to IBM MQ. Therefore, the
assumption is that IBM MQ authentication has been disabled.
BFGCL0212I: Issuing ping request to agent AGENT86
BFGCL0213I: agent AGENT86 responded to ping in 0.094 seconds.
Specify the optional -p parameter for this command only if you want to use a set of configuration options
different from your default set. See Configuration options for more information.
ftePingAgent
ftePingAgent
-pconfiguration options -magent queue manager
-w -mquserid userID
timeout
agent_name
-mqpassword password
Parameters
-p (configuration options)
Optional. This parameter determines the set of configuration options that is used to issue the request
to ping an agent. Use the name of a non-default coordination queue manager as the input for this
parameter. The command then uses the set of properties files associated with this non-default
coordination queue manager. If you do not specify this parameter, the set of configuration options
based on the default coordination queue manager is used. See Configuration options for more
information.
-m (queue manager)
Optional. The name of the queue manager that the agent you want to ping is connected to. If you do
not specify the -m parameter the queue manager used is determined from the set of configuration
options in use.
-w (timeout)
Optional. Specifies that the command should wait for up to timeout seconds for the agent to respond.
If you do not specify a timeout, or specify a timeout value of -1, then the command waits indefinitely
until the agent responds. If you do not specify this option then the default is to wait up to five seconds
for the agent to respond.
If timeout has been specified, ftePingAgent command messages will time out after double the
value of timeout rather than going to the designated dead letter queue. The command messages will
not time out if the command has been set to wait indefinitely.
-mquserid (user ID)
Optional. Specifies the user ID to authenticate with the command queue manager.
-mqpassword (password)
Optional. Specifies the password to authenticate with the command queue manager. You must also
specify the -mquserid parameter. If you specify -mquserid, but do not specify -mqpassword, you
will be prompted to supply the associated password. The password will not be displayed.
(agent name)
Required. The name of the Managed File Transfer agent that you want to ping.
-? or -h
Optional. Displays command syntax.
Return codes
0
Command completed successfully. The agent is active and able to process transfers.
1
Command ended unsuccessfully. The command was not able to send a message to the agent.
2
Command ended with a timeout. The command sent a message to the agent, but the agent did not
respond within the time.
Related reference
“fteListAgents: list the MFT agents for a coordination queue manager” on page 462
Use the fteListAgents command to list all of the Managed File Transfer agents that are registered with
a particular coordination queue manager.
“fteShowAgentDetails” on page 506
Use the fteShowAgentDetails command to display the details of a particular Managed File Transfer
Agent. These are the details that are stored by the agent's Managed File Transfer coordination queue
manager.
“What to do if you think that your file transfer is stuck” on page 311
On a heavily loaded system or when there are network problems between the source and destination
agents, transfers can occasionally appear to be stuck in a queued or recovering state. There are a number
of factors that can cause this.
Purpose
Use the fteRAS command to run the RAS gathering tool if you need to collect MustGather data to use to
help find a solution when a Managed File Transfer agent, database logger or other command is reporting a
problem or failing to work properly.
When you run the fteRAS command, the output directory in which the resulting archive (.zip) file is
placed can be either the default location, or a directory of your choosing.
Syntax
fteRAS
fteRAS
-p configuration_options -l PDSLibraryName
Security
Parameters
-p configuration_options
Optional. Determines the set of configuration options that is used to gather RAS, for example, the list
of agents. Use the name of a set of configuration options as the value for the -p parameter. By
convention, this name is the name of a coordination queue manager. If you do not specify this
parameter, the default set of configuration options is used.
-l
Optional. z/OS only. Specifies the name of a PDS library that contains JCL scripts that invoke MQMFT
commands for a particular agent or logger. This option is always set when the command is run from a
command PDS library's BFGRAS JCL script, such that all members of the PDS library are captured in
the output directory.
-mquserid user id
Optional. Specifies the user ID to authenticate with the command queue manager.
-mqpassword password
Optional. Specifies the password to authenticate with the command queue manager. You must also
specify the -mquserid parameter. If you specify -mquserid but do not also specify -mqpassword,
you are prompted to supply the associated password. The password is not displayed on the screen.
OutputDirectory
Optional. A directory to use when you are gathering the RAS data, and where the output .zip file is
stored after the data is gathered successfully. If the directory does not exist, it is created. The default
location is the mqft logs directory.
-? or -h
Optional. Displays command syntax.
Examples
On UNIX and Linux, to store the output file fteRAS.zip in the /var/mqm/
errors directory, run fteRAS as shown in the following example:
fteRAS /var/mqm/errors
The following message confirms that the command has completed successfully:
BFGCL0604I: fteRAS command completed successfully. Output is stored in /var/mqm/errors/fteRAS.zip
On Windows, to store the output file fteRAS.zip in the default errors directory for a new
installation of IBM MQ, run fteRAS as shown in the following example:
fteRAS "C:\ProgramData\IBM\MQ\errors"
The following message confirms that the command has completed successfully:
BFGCL0604I: fteRAS command completed successfully. Output is stored in C:\ProgramData\IBM\MQ
\errors\fteRAS.zip
Note: For IBM MQ 8.0 or later, if this is not a new installation of that version of the product, the location of
the errors directory might be different on your system. For more information, see Program and data
directory locations on Windows.
/QIBM/ProdData/mqm/bin/fteRAS /QIBM/UserData/mqm/errors
The following message confirms that the command has completed successfully:
BFGCL0604I: fteRAS command completed successfully. Output is stored in /QIBM/UserData/mqm/errors/
fteRAS.zip
Related reference
“Troubleshooting MFT” on page 272
Use the following reference information to help you to diagnose errors in Managed File Transfer:
Purpose
Use this command to enable or disable logging for collection of diagnostic information about the transfer
of files between a Managed File Transfer protocol bridge agent and FTP/SFTP/FTPS file servers. Managed
File Transfer protocol bridge agent logging is more lightweight, separate from, but can be run in parallel
with trace.
Commands that are sent by the protocol bridge agent to FTP/SFTP/FTPS file servers, and the responses
that are received, are written to a log file for simple diagnosing of problems that might occur during file
transfers.
You can enable, disable, and set the level of logging that you require, in two ways:
• Use the fteSetAgentLogLevel command to enable or disable logging while the protocol bridge agent
is running. You do not need to restart the protocol bridge agent for the logging to begin.
• Use the agent.properties file to enable or disable logging at agent start. If you use this method to
enable or disable logging, and the agent is running, you must restart the agent for the logging to begin.
For more information, see The agent.properties file.
An interaction between a protocol bridge agent and a file server is treated as an event and each event is
written to an agentevent?.log file. The ‘?’ in the log name represents a numeric value. The file that
contains 0 (zero) in its name, contains the newest set of captured messages. The log file is stored in
MQ_DATA_PATH/mqft/logs/coordination_qmgr_name/agents/agent_name/ folder.
You can set further logging properties, for example, to limit the log file size and the number of log files
kept, in the The agent.properties file.
fteSetAgentLogLevel
fteSetAgentLogLevel -logAgent
-p configurationOptions
=on
ftp =off
ftps
sftp
-logMonitor
-logfilter host= value
metadata= value
=info
=verbose
=off
Parameters
-logAgent component=operation
Required.
Important: You must select only one of logAgent and logMonitor. If you attempt to select both
options you receive an error message.
Name of the protocol bridge agent for which the logging is enabled or disabled. Protocol bridge agent
logging can be enabled or disabled for three components: ftp, ftps, and sftp servers. Specify one of the
three possible server types and add an operation value to turn the logging off or on, for the protocol
bridge agent they are connecting to.
If a component starts with a plus sign (+), the list of components following the plus sign
are added to any existing log component currently being logged.
The valid log level operation options are as follows:
off
Disable all logging for a protocol bridge agent. This option is the default.
To disable logging for a specified component that the protocol bridge agent is connecting to, use
these commands:
on
To enable logging for all three possible file server components that the protocol bridge agent is
connecting to, use this command:
To enable logging for a specified component that a protocol bridge agent is connecting to, use
these commands:
For further configuration options, see “Example 1” on page 493 and “Example 2” on page 493.
-agentName
Required. Name of the protocol bridge agent for which the logging is enabled or disabled.
-logFilter filter=value
Optional. Use to limit logging to the specified filter criteria. You must specify a value for either host or
the user specified file transfer metadata.
host
Specify one of three values to filter by: host name, a list of comma separated host names or IP
addresses. To log commands for, and responses from FTP server ftpprod.ibm.com, use this
command:
To log commands and responses from all SFTP servers with IP addresses starting with 9.182.*,
use this command:
metadata
Specify any text, as defined by the user during the transfer creation, in a key=value format. For
example metadata="BANK=WORLD BANK". To enable logging for any FTP server that connects to
the protocol bridge agent PBA1 and filter the file transfers to include them only if they contain the
metadata as key and "BANK=WORLD BANK" as value, use this command:
Note: In order to filter by metadata, the value you are filtering by, must be specified under the -md
parameter as a part of a file transfer. For more information, see “fteCreateTransfer: start a new file
transfer” on page 428.
moderate
Turn on moderate level logging.
To enable moderate level logging for monitors MON1 and MON2 of agent AGENT1:
fteSetAgentLogLevel -logMonitor MON1, MON2=moderate AGENT1
verbose
To turn on verbose level logging.
Enable verbose level logging for all monitors of agent AGENT1:
fteSetAgentLogLevel -logMonitor =verbose AGENT1
off
Turn off logging.
To turn off logging for monitors MON1 and MON2 of agent AGENT1:
fteSetAgentLogLevel -logMonitor MON1, MON2=off AGENT1
To turn off logging for monitor MON1 and enable info level logging for monitor MON2 of agent
AGENT1:
fteSetAgentLogLevel -logMonitor MON1=off, MON2=info AGENT1
-p configurationOptions
Optional. Determines the set of configuration options that is used to set the agent log level. Use the
name of a set of configuration options as the value for the -p parameter.
By convention, this is the name of a coordination queue manager. If you do not specify this parameter,
the default set of configuration options is used.
-? or -h
Optional. Displays the command syntax.
If the same resource monitor name is repeated in a command, then the last occurrence of a
component is considered as valid. For example:
Attention: If you have specified non-existent resource monitor names in the command, no error is
displayed on the console.
Example 1
In this example, multiple components are specified in one command, by using a command delimited
group. Logging is enabled for FTP and SFTP servers but disabled for FTPS servers that the PBA1 protocol
bridge agent is connecting to.
You can also separate the components with a comma to achieve the same result, for example;
Example 2
In this example, the same component is repeated in a command. The last instance of a
component=operation pair is considered as valid. This example disables logging for FTP servers that the
PBA1 protocol bridge agent is connecting to.
Return codes
0
Command completed successfully.
1
Command ended unsuccessfully.
Related concepts
“The protocol bridge” on page 217
The protocol bridge enables your Managed File Transfer (MFT) network to access files stored on a file
server outside your MFT network, either in your local domain or a remote location. This file server can use
the FTP, FTPS, or SFTP network protocols. Each file server needs at least one dedicated agent. The
dedicated agent is known as the protocol bridge agent. A bridge agent can interact with multiple file
servers.
Related reference
“The MFT agent.properties file” on page 537
Each Managed File Transfer Agent has its own properties file, agent.properties, that must contain the
information that an agent uses to connect to its queue manager. The agent.properties file can also
contain properties that alter the behavior of the agent.
“fteCreateTransfer: start a new file transfer” on page 428
fteSetAgentTraceLevel
Use the fteSetAgentTraceLevel command to modify the current trace level for an agent dynamically.
Purpose
Use this command to switch agent trace on and off or to change the level of agent trace that is set. When
you use the fteSetAgentTraceLevel command, you do not have to shut down and restart an agent to
modify the trace level. The trace files produced are located in MQ_DATA_PATH/mqft/logs/
coordination_qmgr_name/agents/agent_name/logs/trace%PID%/trace%PID%.txt, where
%PID% is the process ID for the agent instance.
Attention:
When using IBM WebSphere MQ 7.5 or later on Multiplatforms, only the user that the
agent process is running under can run the fteSetAgentTraceLevel command.
This also applies to the Long Term Support release from IBM MQ 9.0.0 Fix Pack 1.
For more information, see the adminGroup property in “The MFT agent.properties file” on page
537.
In IBM WebSphere MQ 7.5, and later, the fteSetAgentTraceLevel command also writes a trace for
the agent process controller. The trace files produced are located in MQ_DATA_PATH/mqft/logs/
coordination_qmgr_name/agents/agent_name/logs/pctrace%PID%/pctrace%PID%.txt,
where %PID% is the process ID for the agent instance.
You can also use the command to cause the agent process to generate a Javacore. The agent generates a
Javacore file in the following directory: MQ_DATA_PATH/mqft/logs/coordination_qmgr_name/
agents/agent_name.
Because running trace can affect your performance significantly and can produce a large amount of trace
data, run trace with care and only when necessary. Typically, enable trace only when asked to do so by
your IBM service representative.
You can set further trace properties, for example trace file size and the number of trace files to keep, in
the agent.properties file. These properties are described in Advanced agent properties.
Specify the optional -p parameter for this command only if you want to use a set of configuration options
different from your default set. See “The MFT agent.properties file” on page 537 for more information.
fteSetAgentTraceLevel
fteSetAgentTraceLevel -traceAgent classes=level
-disableOnAnyFFDC -jc
-disableOnFFDC FFDC_specification
agent_name
-p configuration_options
Parameters
-traceAgent classes=level
Required. Level to set the agent trace and which classes to apply the trace to.
From IBM MQ 9.0.5, you can specify a colon-separated list of class specifications. This
option enables you to set tracing of different classes, and at different levels. For example:
You can still specify a comma-separated list of class specifications that you want the level of trace to
apply to. If you do not specify this parameter, the trace level is applied to all agent classes. Use the
following format:
classes=level
For example:
com.ibm.wmqfte=all
You can substitute classes with a Managed File Transfer package name to trace a specific package
only. However, because this option captures just a subset of the agent's behavior, you are generally
not recommended to use package filtering.
If (classes) start with a plus sign (+), the list of trace classes following the plus sign are added to any
existing trace classes currently being traced.
The valid trace level options are as follows and are listed in ascending order of trace file size and
detail:
off
Switches the agent trace off but continues to write information to the log files. This is the default
option.
flow
Captures data for trace points associated with processing flow in the agent.
moderate
Captures a moderate amount of diagnostic information in the trace.
verbose
Captures a verbose amount of diagnostic information in the trace.
all
Sets agent trace to run on all agent classes.
To start full tracing for the agent, run the following command:
To stop full tracing for the agent, run the following command:
-disableOnAnyFFDC
Optional. If this parameter is specified, trace is disabled on the agent when it generates a First Failure
Data Capture (FFDC) file.
You can specify only one of the -disableOnAnyFFDC and -disableOnFFDC parameters.
-disableOnFFDC FFDC_specification
Optional. If this parameter is specified, trace is disabled on the agent when it generates a First Failure
Data Capture (FFDC) file that matches the FFDC_specification. FFDC_specification is a comma-
separated list of values. The format of the values can be either:
class_name
The name of the class where the FFDC originated. For example, com.ibm.wmqfte.classA.
class_name:probe_ID
The name of the class and the probe ID of the location in the class that the FFDC originated from.
For example, com.ibm.wmqfte.classB:1.
You can specify only one of the -disableOnAnyFFDC and -disableOnFFDC parameters.
-jc
Optional. Requests that the agent generates a Javacore file. The IBM service team may request that
you run the command with this parameter to assist with problem diagnosis. This parameter cannot be
used with any other parameter.
-p configuration_options
Optional. This parameter determines the set of configuration options that is used to set the agent
trace level. Use the name of a non-default coordination queue manager as the input for this
parameter. The command then uses the set of properties files associated with this non-default
coordination queue manager.
If you do not specify this parameter, the set of configuration options based on the default coordination
queue manager is used.
agent_name
Required. The name of the Managed File Transfer Agent that you want to set the trace level for.
-? or -h
Optional. Displays command syntax.
Example
In this example, the trace level is set to all for all classes for AGENT1:
In this example, the trace level is set to all for the classes com.ibm.wmqfte.agent.Agent and
com.ibm.wmqfte.cmdhandler for AGENT1:
Return codes
0
Command completed successfully.
1
Command ended unsuccessfully.
fteSetLoggerTraceLevel
Use the fteSetLoggerTraceLevel command to modify the current trace level for a Managed File
Transfer logger dynamically.
Purpose
Use this command to switch logger trace on and off or change the level of logger trace that is set. When
you use the fteSetLoggerTraceLevel command, you do not have to shut down and restart a logger to
modify the trace level. The trace files that are produced are located in MQ_DATA_PATH/mqft/logs/
coordination_qmgr_name/loggers/logger_name/logs/trace%PID%/trace%PID%.txt, where
%PID% is the process ID for the logger instance.
In IBM WebSphere MQ 7.5 and later, the fteSetLoggerTraceLevel command also writes a trace for
the logger process controller. The trace files that are produced are located in MQ_DATA_PATH/mqft/
logs/coordination_qmgr_name/loggers/logger_name/logs/pctrace%PID%/pctrace%PID
%.txt, where %PID% is the process ID for the logger instance.
The command can also be used to cause the logger process to generate a Javacore. The logger generates
a Javacore file in the following directory: MQ_DATA_PATH/mqft/logs/coordination_qmgr_name/
loggers/logger_name.
Because running trace can affect your performance significantly and can produce a large amount of trace
data, run trace with care and only when necessary. Typically, enable trace only when asked to do so by
your IBM service representative.
You can set further trace properties, for example trace file size and the number of trace files to keep, in
the logger.properties file. These properties are described in Logger properties.
Specify the optional -p parameter for this command only if you want to use a set of configuration options
different from your default set. For more information, see “MFT logger configuration properties” on page
125.
fteSetLoggerTraceLevel
fteSetLoggerTraceLevel -traceLogger classes=level
-disableOnAnyFFDC -jc
-disableOnFFDC FFDC_specification
logger_name
-p configuration_options
Parameters
-traceLogger classes=level
Required. Level to set the logger trace and which classes to apply the trace to.
From IBM MQ 9.0.5, you can specify a colon-separated list of class specifications. This
option enables you to set tracing of different classes, and at different levels. For example:
You can still specify a comma-separated list of class specifications that you want the level of trace to
apply to. If you do not specify this parameter, the trace level is applied to all agent classes. Use the
following format:
classes=level
For example:
com.ibm.wmqfte=all
Specify a comma-separated list of class specifications that you want the level of trace to apply to. If
you do not specify this parameter, the trace level is applied to all logger classes.
If (classes) start with a plus sign (+), the list of trace classes that follow the plus sign are added to any
existing trace classes currently being traced.
The valid trace level options are as follows and are listed in ascending order of trace file size and
detail:
off
Switches off the logger trace but continues to write information to the log files. This is the default
option.
flow
Captures data for trace points associated with processing flow in the logger.
moderate
Captures a moderate amount of diagnostic information in the trace.
verbose
Captures a verbose amount of diagnostic information in the trace.
all
Sets logger trace to run on all logger classes.
-disableOnFFDC FFDC_specification
Optional. If this parameter is specified, trace is disabled on the logger when it generates a First Failure
Data Capture (FFDC) file that matches the FFDC_specification. FFDC_specification is a comma-
separated list of values. The value can be one of the following formats:
class_name
The name of the class where the FFDC originated. For example, com.ibm.wmqfte.classA.
class_name:probe_ID
The name of the class and the probe ID of the location in the class that the FFDC originated from.
For example, com.ibm.wmqfte.classB:1.
You can specify only one of the -disableOnAnyFFDC and -disableOnFFDC parameters.
-jc
Optional. Requests that the logger generates a Javacore file. The IBM service team might request that
you run the command with this parameter to assist with problem diagnosis. You cannot use the -jc
parameter with any other parameter.
-p configuration_options
Optional. This parameter determines the set of configuration options that is used to set the logger
trace level. Use the name of a non-default coordination queue manager as the input for this
parameter. The command then uses the set of properties files associated with this non-default
coordination queue manager.
If you do not specify this parameter, the set of configuration options based on the default coordination
queue manager is used.
logger_name
Required. The name of the Managed File Transfer Logger that you want to set the trace level for.
-? or -h
Optional. Displays command syntax.
Example
In this example, the trace level is set to all for all classes for LOGGER1:
In this example, the trace level is set to all for the classes com.ibm.wmqfte.logger.logger and
com.ibm.wmqfte.cmdhandler for LOGGER1:
In this example, subclasses are excluded from the trace because the -traceLevel parameter is set to
off. All classes that start with com.ibm.outer are traced at verbose level except classes that start with
com.ibm.outer.inner:
Purpose
This command can be run at any time, after at least one coordination queue manager has been defined, or
the installation.properties file, for the installation, has been created.
See z/OS MVS Product Management for more information on product usage recording.
Syntax
fteSetProductId
MFT
fteSetProductId ADVANCED
ADVANCEDVUE
Parameters
The product type for usage recording:
Specify one of:
MFT
Usage is recorded as a stand-alone Managed File Transfer product, with product ID 5655‑MF9.
ADVANCED
Usage is recorded as part of an IBM MQ Advanced for z/OS product, with product ID 5655‑AV9.
ADVANCEDVUE
Usage is recorded as part of an IBM MQ Advanced for z/OS, Value Unit Edition product, with
product ID 5655‑AV1.
Return codes
0
Command completed successfully.
1
Command ended unsuccessfully, or if the product type has not been set to the requested value.
Related tasks
“Configuring the coordination queue manager for MFT” on page 106
After running the fteSetupCoordination command, run the coordination_qmgr_name.mqsc
script in the MQ_DATA_PATH/mqft/config/coordination_qmgr_name directory to perform the
Important: On IBM MQ for UNIX, Linux, and Windows, only users who are IBM MQ
administrators (and members of the mqm group) can run this command. If you try to run this command as
a user who is not an IBM MQ administrator, you will receive the error message BFGCL0502E: You are
not authorized to perform the requested operation. and the command will not run.
On z/OS systems, the user must satisfy (at least) one of these conditions in order to run the
migrate command:
• Be a member of the mqm group (if the mqm group is defined on the system).
• Be a member of the group named in the BFG_GROUP_NAME environment variable (if one
is named).
• Have no value set in the BFG_GROUP_NAME environment variable when the command is
run.
Purpose
Use the fteSetupCommands command to create a command.properties file in the coordination queue
manager configuration directory. The command uses the MQ_DATA_PATH environment variable and the
installation.properties file to determine where to locate the command.properties file. Ensure
that you have already created and configured a coordination queue manager before you issue the
fteSetupCommands command.
For more information about properties files, see “The MFT command.properties file” on page 533.
Syntax
fteSetupCommands
fteSetupCommands -connectionQMgr connection_qmgr_name
-connectionQMgrHost connection_qmgr_host
-connectionQMgrPort connection_qmgr_port
-connectionQMgrChannel connection_qmgr_channel
-p configuration_options -f
-connectionQMgrHost (connection_qmgr_host)
Optional. The host name or IP address of the connection queue manager.
If you do not specify the -connectionQMgrHost parameter, a bindings mode connection is
assumed. Therefore, this parameter is required if you are using a client mode connection.
If you specify a value for the -connectionQMgrHost parameter but do not specify values for the -
connectionQMgrPort and -connectionQMgrChannel properties, a port number of 1414 and a
channel of SYSTEM.DEF.SVRCONN are used by default.
-connectionQMgrPort (connection_qmgr_port)
Optional. The port number used to connect to the connection queue manager in client mode. If you
specify the -connectionQMgrPort parameter, you must also specify the -connectionQMgrHost
parameter.
-connectionQMgrChannel (connection_qmgr_channel)
Optional. The channel name used to connect to the connection queue manager. If you specify the -
connectionQMgrChannel parameter, you must also specify the -connectionQMgrHost
parameter.
-p (configuration_options)
Optional. This parameter determines the set of configuration options that is used to set up a
command queue manager. Use the name of a non-default coordination queue manager as the input
for this parameter. The fteSetupCommands command then uses the set of properties files
associated with this non-default coordination queue manager.
If you do not specify this parameter, the set of configuration options based on the default coordination
queue manager is used.
-credentialsFile (filePath)
Optional. The full file path of an existing or new credentials file, to which the IBM MQ authentication
details are added.
This command supports the addition of a set of IBM MQ authentication details, to a named Managed
File Transfer credentials file. Use this command when IBM MQ connection authentication has been
enabled. If you update the existing details, you must use the -f force parameter.
-userid (username)
Optional. The user ID used to associate the credential details. If you do not specify a user ID, the
credential details will apply to all users. You must also specify the -credentialsFile parameter.
-f
Optional. Forces an overwrite of the existing command.properties file with the details specified in
this command.
-? or -h
Optional. Displays command syntax.
Example
fteSetupCoordination
The fteSetupCoordination command creates properties files and the coordination queue manager
directory for Managed File Transfer.
Important: On IBM MQ for UNIX, Linux, and Windows, only users who are IBM MQ
administrators (and members of the mqm group) can run this command. If you try to run this command as
a user who is not an IBM MQ administrator, you will receive the error message BFGCL0502E: You are
not authorized to perform the requested operation. and the command will not run.
On z/OS systems, the user must satisfy (at least) one of these conditions in order to run the
migrate command:
• Be a member of the mqm group (if the mqm group is defined on the system).
• Be a member of the group named in the BFG_GROUP_NAME environment variable (if one
is named).
• Have no value set in the BFG_GROUP_NAME environment variable when the command is
run.
Purpose
Use the fteSetupCoordination command to create the following Managed File Transfer objects:
• Coordination queue manager directory
• Data directory (if this does not exist)
• installation.properties file
• coordination.properties file
This command also provides you with the following MQSC commands that you must run against your
coordination queue manager to configure Managed File Transfer. The MQSC commands create a topic, a
topic string, the SYSTEM.FTE queue, and the default database logger queues. These commands also
update a namelist and set the PSMODE attribute of the coordination queue manager to ENABLED.
If the coordination queue manager is on z/OS, before you run these MQSC commands, you
must ensure that the following required objects already exist:
• SYSTEM.BROKER.DEFAULT.STREAM queue
• SYSTEM.QPUBSUB.QUEUE.NAMELIST namelist
• SYSTEM.BROKER.DEFAULT.STREAM and SYSTEM.BROKER.ADMIN.STREAM streams
If you are using z/OS, you can issue the fteSetupCoordination command and other
commands from JCL with scripts generated from the Managed File Transfer command template PDSE
library data set. For more information, see “Creating an MFT Agent or Logger command data set” on page
76.
Syntax
fteSetupCoordination
fteSetupCoordination -coordinationQMgr coordination_qmgr_name
-coordinationQMgrHost coordination_qmgr_host
-coordinationQMgrPort coordination_qmgr_port
-coordinationQMgrChannel coordination_qmgr_channel
-default
Parameters
-coordinationQMgr (coordination_qmgr_name)
Required. The name of the coordination queue manager. This queue manager must be an IBM
WebSphere MQ 7.0 or later queue manager.
-coordinationQMgrHost (coordination_qmgr_host)
Optional. The host name or IP address of the coordination queue manager.
If you do not specify the -coordinationQMgrHost parameter, a bindings mode connection is
assumed.
If you specify a value for the -coordinationQMgrHost parameter but do not specify values for the
-coordinationQMgrPort and -coordinationQMgrChannel parameters, a port number of 1414
and a channel of SYSTEM.DEF.SVRCONN are used by default.
-coordinationQMgrPort (coordination_qmgr_port)
Optional. The port number used for client connections to the coordination queue manager. If you
specify the -coordinationQMgrPort parameter, you must also specify the -
coordinationQMgrHost parameter.
-credentialsFile (filePath)
Optional. The full file path of an existing or new credentials file, to which the IBM MQ authentication
details are added.
This command supports the addition of a set of IBM MQ authentication details, to a named Managed
File Transfer credentials file. Use this command when IBM MQ connection authentication has been
enabled. If you update the existing details, you must use the -f force parameter.
-userid (username)
Optional. The user ID used to associate the credential details. If you do not specify a user ID, the
credential details will apply to all users. You must also specify the -credentialsFile parameter.
-f
Optional. Forces an overwrite of the existing coordination queue manager configuration with the
details specified in this command.
-default
Optional. Updates the default configuration options to the options associated with the coordination
queue manager specified in this command.
-? or -h
Optional. Displays command syntax.
Example
In this example, the required objects are set up for a coordination queue manager called QM_SATURN,
which is connected to in client mode:
Return codes
0
Command completed successfully.
1
Command ended unsuccessfully.
Related concepts
“MFT configuration options on Multiplatforms” on page 68
Managed File Transfer provides a set of properties files that contain key information about your setup and
are required for operation. These properties files are in the configuration directory that you defined when
you installed the product.
Related tasks
“Configuring the coordination queue manager for MFT” on page 106
After running the fteSetupCoordination command, run the coordination_qmgr_name.mqsc
script in the MQ_DATA_PATH/mqft/config/coordination_qmgr_name directory to perform the
necessary configuration for the coordination queue manager. However, if you want to do this configuration
manually, complete the following steps on the coordination queue manager.
Related reference
“The MFT agent.properties file” on page 537
fteShowAgentDetails
Use the fteShowAgentDetails command to display the details of a particular Managed File Transfer
Agent. These are the details that are stored by the agent's Managed File Transfer coordination queue
manager.
Purpose
You can run the fteShowAgentDetails command from any system that can connect to the coordination
queue manager. This command uses the coordination.properties file to connect to the
coordination queue manager.
Specify the optional -p parameter for this command only if you want to use a set of configuration options
different from your default set. For more information, see “MFT configuration options on Multiplatforms”
on page 68.
The agent status information that is produced by this command is generated from the status messages
that the agent publishes to the SYSTEM.FTE topic. These messages are described in “MFT agent status
message format” on page 713. The status information that is produced by the fteShowAgentDetails
command gives the agent status at the time when the last status message was published. The frequency
of these status messages depends on the value of the agentStatusPublishRateLimit property. For
more information, see “The MFT agent.properties file” on page 537.
For IBM WebSphere MQ 7.5.0 Fix Pack 1 or later, specify the optional -d parameter for this command if
you want to see diagnostic information about a local agent. This information includes current transfers,
scheduled transfers, monitors, and agent queue depths. You can use this information to determine the
health and status of a local agent.
For z/OS, from IBM MQ 9.0.2 and IBM MQ 9.0.0 Fix Pack 1, the -
d parameter can only be specified if the fteShowAgentDetails command is run by:
• The same userid that the agent process is running as.
• Members of the group that is specified by the agent property adminGroup.
For more information, see the adminGroup property in “The MFT agent.properties file” on page 537.
For IBM WebSphere MQ 7.5, or later, the status of the agent process controller and queue manager is
available if you run the command on the same system as the agent. You can use this information to help
with problem determination. Also, when you run the command on the same system as the agent, more
detailed agent status information is available for the case where the agent ended unexpectedly.
For a list of the possible agent status values and their meanings, see “MFT agent status values” on page
609.
For a list of the possible status values for the agent process controller and their meanings, see “MFT agent
process controller status values” on page 610.
For a list of agent trace values and FFDC specifications and their meanings, see “fteSetAgentTraceLevel”
on page 275
fteShowAgentDetails
fteShowAgentDetails
agent_name
-bl -p configuration_options -d -t -v
Parameter
-bl
Optional. Additionally outputs the product build level for the agent.
-p (configuration_options)
Optional. This parameter determines the set of configuration options that is used to issue the request
to display the details of an agent. Use the name of a non-default coordination queue manager as the
input for this parameter. The command then uses the set of properties files associated with this non-
default coordination queue manager.
If you do not specify this parameter, the set of configuration options based on the default coordination
queue manager is used.
-d
Optional. Specifies that diagnostic information is collected for agent_name.
The diagnostic information is output to the console, and written to a file called
diagnostics.<yyyyMMdd>.<HHmmss>.<ssss>.<number>.properties in the directory
MQ_DATA_PATH\mqft\logs\coordination_qmgr_name\agents\agent_name\logs. A
maximum of five historical files containing diagnostic information about an agent will be created. If
five historical files have been created for an agent when the fteShowAgentDetails command is run
with the -d parameter specified, the oldest historical file will be deleted and replaced with a new file
containing the latest diagnostic information about the agent.
You can use this parameter only when the agent is running, and on the local system.
-t
Optional. Specifies terse mode. At IBM MQ 9.0.2, the output includes the Status Age information by
default. If you do not want to see this information, you can issue the command with the -t parameter.
For more information, see “What to do if the fteListAgents command shows an agent status of
UNKNOWN” on page 305.
-v
Optional. Specifies verbose mode, which generates additional output for the agent. These include host
name, product version, product build level, trace level, and First Failure Data Capture (FFDC)
specification, and a list of transfer states for each of the current source and destination transfers.
The current transfer information is obtained from the agent status publication, which is described in
“MFT agent status message format” on page 713. Therefore this transfer information is only
accurate to within the value of the agentStatusPublishRateLimit property. For more details about this
property, see “The MFT agent.properties file” on page 537.
agent_name
Required. The name of the Managed File Transfer Agent that you want to display.
-mquserid (userID)
Optional. Specifies the user ID to authenticate with the coordination queue manager.
Example
In the following example, running bindings agent, issuing the fteShowAgentDetails command locally
to the agent:
fteShowAgentDetails -v AGENT1
In the following example, QMGR1 is the non-default coordination queue manager used as input for the
configuration options, and diagnostic information is requested with the -d parameter. The
fteShowAgentDetails command is issued on an IBM WebSphere MQ 7.5.0 Fix Pack 1 system with a
local agent:
Monitor 0 Diagnostics:
Name: MONITOR1
Status: STARTED
Resource Type: directory
Resource: /tmp/monitor
Poll Interval: 1 minutes
Batch Size: 2
Condition Match
Pattern: * (wildcard)
Executing: false
Last Execute Start Time: 2012-04-04T16:19:01.852Z
Last Execute End Time: 2012-04-04T16:19:01.852Z
Last Execute Match Count: 0
Schedule 1 Diagnostics:
Id: 1
Next Trigger Time: 2012-07-17T16:00+0100
Occurrences So Far: 14
Repeat Interval: hours
Repeat Frequency: 5
Source Agent: AGCANDE
Destination Agent: AGCANDE
Source File: /tmp/source/a.txt, ...
Destination File: /tmp/dest/a.txt, ...
In the following example, stopped bindings agent, issuing the fteShowAgentDetails command
remotely from the agent:
fteShowAgentDetails AGENT2
5724-H72 Copyright IBM Corp. 2008, 2020. ALL RIGHTS RESERVED
Agent Information:
Name: AGENT2
Type: Standard
Description:
Operating System: Linux
Time Zone: Greenwich Mean Time
In the following example, bindings agent is waiting to restart with the agent queue manager stopped. The
agent has already been restarted once before Total Agent Restart Count: 1, possibly due to a
previous agent queue manager restart:
fteShowAgentDetails AGENT1
5724-H72 Copyright IBM Corp. 2008, 2020. ALL RIGHTS RESERVED
Agent Information:
Name: AGENT1
Type: Standard
Description:
Operating System: Windows Server 2003
Time Zone: Greenwich Mean Time
In the following example, the client mode agent has just ended unexpectedly and the agent process
controller tries to recover the situation by restarting it after a delay, specified by the maxRestartDelay
agent property value. The default maxRestartDelay agent property value is -1, and this causes the
agent process controller to terminate; hence in this example the maxRestartDelay property value must
have been set to a value greater than 0. The Current Agent Restart Count: 4 implies that there
have been 4 restarts within the maxRestartInterval agent property time period. If the
maxRestartCount agent property is 4 then after 4 restarts within the maxRestartInterval, the agent
process controller will wait for maxRestartDelay seconds before restarting the agent, which is the case
here. The Total Agent restart Count: 8 suggests that this has occurred before. This example is
not typical and you would only expect to see the agent ending unexpectedly if the agent runs out of
memory, or a custom user exit has caused some sort of runtime error. Full details as to why the agent
ended unexpectedly are in the agent's output0.log file:
fteShowAgentDetails AGENT3
5724-H72 Copyright IBM Corp. 2008, 2020. ALL RIGHTS RESERVED
Agent Information:
Name: AGENT3
Type: Standard
Description:
Operating System: Windows Server 2003
Time Zone: Greenwich Mean Time
In the following example, the results for a Connect:Direct bridge agent are displayed:
fteShowAgentDetails AG_CD1
5724-H72 Copyright IBM Corp. 2008, 2020. ALL RIGHTS RESERVED
Agent Information:
Name: AG_CD1
Type: Connect:Direct bridge
Description:
Connect:Direct Node Name: CDNODE
Connect:Direct Node Host: localhost:1363
Operating System: Windows Server 2003
Time Zone: Greenwich Mean Time
In the following example, an agent running on z/OS is registered with the Automatic Restart
Manager (ARM):
fteShowAgentDetails AGENTZ
5724-H72 Copyright IBM Corp. 2008, 2020. ALL RIGHTS RESERVED
Agent Information:
Name: AGENTZ
Type: Standard
Description:
Operating System: z/OS
Time Zone: Greenwich Mean Time
fteShowLoggerDetails
Use the fteShowLoggerDetails command to display the details of a particular Managed File Transfer
logger.
Purpose
You must run the fteShowLoggerDetails command on the same system as the logger. It displays the
status of the logger process controller and the logger queue manager, which you can use to help with
problem determination. The fteShowLoggerDetails command lists the following details for a
particular Managed File Transfer logger:
• Logger controller status.
• Logger restarts within interval
• Total logger restart count
• Logger availability status
• Logger queue manager name
• Logger queue manager transport type
• Logger queue manager last status reported (applies to binding transport mode only)
Specify the optional -p parameter for this command only if you want to use a set of configuration options
different from your default set. See “MFT configuration options on Multiplatforms” on page 68 for more
information.
For a list of the possible logger status values and their meanings, see “MFT logger status values” on page
611.
For a list of the possible status values for the logger process controller and their meanings, see “MFT
logger process controller status values” on page 612.
From IBM MQ 9.0.4, the output of the command displays connection information that the
logger is using to connect to the queue manager.
fteShowLoggerDetails
fteShowLoggerDetails logger_name
-p configuration_options
Parameter
-p configuration_options
Optional. This parameter determines the set of configuration options that is used to issue the request
to display the details of an logger. Use the name of a non-default coordination queue manager as the
input for this parameter. The command then uses the set of properties files associated with this non-
default coordination queue manager.
If you do not specify this parameter, the set of configuration options based on the default coordination
queue manager is used.
logger_name
Required. The name of the Managed File Transfer logger that you want to display.
-? or -h
Optional. Displays command syntax.
Example
In this example, a started logger, issuing the fteShowLoggerDetails command locally to the logger:
fteShowLoggerDetails LOGGER1
In this example, a logger waiting due to an unavailable queue manager, issuing the
fteShowLoggerDetails command locally to the logger:
fteShowLoggerDetails LOGGER2
fteShowLoggerDetails loggerv8
5655-MFT, 5724-H72 Copyright IBM Corp. 2008, 2020. ALL RIGHTS RESERVED
Logger Controller Information:
Controller Type: z/OS Automatic Restart Manager (ARM)
Registered with ARM: No
Restarted: n/a
In this example on z/OS, a logger that is not running, or running on a different system:
fteShowLoggerDetails loggerv8
5655-MFT, 5724-H72 Copyright IBM Corp. 2008, 2020. ALL RIGHTS RESERVED
Logger Controller Information:
Controller Type: UNKNOWN
Return codes
0
Command completed successfully.
1
Command ended unsuccessfully.
Related reference
“MFT logger status values” on page 611
The fteShowLoggerDetails commands produce logger status information. There are several possible
values for this status.
“MFT logger process controller status values” on page 612
fteStartAgent
The fteStartAgent command starts a Managed File Transfer agent from the command line.
Purpose
Use the fteStartAgent command to start a Managed File Transfer agent. You must start an agent
before you can use it to perform file transfers. The fteStartAgent command starts an agent on the
system where you issue the command: you cannot start an agent on a remote system.
For IBM WebSphere MQ 7.5 or later, the agent process controller manages starting the agent. However,
the agent process controller may wait for a period of time, for example where there have been a high rate
of agent failures, before attempting to start the agent again. As an IBM MQ administrator you can use
fteStartAgent command to override this wait and initiate a start of the agent. If the agent process
controller was waiting for the queue manager to become available this command will also initiate the
agent process controller attempting to reconnect to the queue manager.
If you have configured the agent to run as a Windows service by using the fteCreateAgent or
fteModifyAgent command, running the fteStartAgent command starts the Windows service.
This command returns an error if the agent does not start or is already started. The agent communicates
with its queue manager based on the values defined in the agent.properties file.
Specify the optional -p parameter for this command only if you want to use a different set of configuration
options than your default set. See “The MFT agent.properties file” on page 537 for more information.
Syntax
fteStartAgent
fteStartAgent agent_name
-F -p configuration_options
Parameter
-F
Optional. This parameter runs the agent daemon as a foreground process. The default is for the agent
daemon to run in the background.
If you are running on Windows, and you have configured the agent to run as a Windows service by
using the fteCreateAgent or fteModifyAgent commands, the -F parameter overrides this
configuration.
-p configuration_options
Optional. This parameter determines the set of configuration options that is used to issue the request
to start an agent. Use the name of a non-default coordination queue manager as the input for this
parameter. The command then uses the set of properties files associated with this non-default
coordination queue manager.
If you do not specify this parameter, the set of configuration options based on the default coordination
queue manager is used.
agent_name
Required. The name of the Managed File Transfer agent that you want to start.
-? or -h
Optional. Displays command syntax.
fteStartAgent -F AGENT2
In the following example (for UNIX and Linux systems), AGENT2 is started with a non-default coordination
queue manager, QM_SATURN:
You can also run the command by specifying the path to fteStartAgent as follows:
path/fteStartAgent agentname
Return codes
0
Command completed successfully.
1
Command ended unsuccessfully.
Responses
In some circumstances, you might see error messages after running the fteStartAgent command:
• If you run the fteStartAgent command and see the following error message, your environment
probably has additional library paths that conflict with Managed File Transfer:
BFGCL0001E: An internal error has occurred. The exception was: 'CC=2;RC=2495;AMQ8568:
The native JNI library 'mqjbnd' was not found. [3=mqjbnd]
If the LD_LIBRARY_PATH or LIBPATH environment variable is set to reference a 64-bit version of the
library before the 32-bit version when the agent is running with a 32-bit version of Java (as is currently
the case for most platforms), this error occurs.
To resolve this issue, set the Managed File Transfer agent property javaLibraryPath to reference the
correct location for the library. For example, for mqjbnd on AIX, set to: /usr/mqm/java/lib. For
mqjbnd on Linux, set to: /opt/mqm/java/lib
Related tasks
“Starting an MFT agent as a Windows service” on page 161
You can start an agent as a Windows service so that when you log off Windows, your agent continues
running and can receive file transfers.
“Listing MFT agents” on page 215
You can list the Managed File Transfer agents registered with a particular queue manager using the
command line or the IBM MQ Explorer.
“Stopping an MFT agent” on page 215
You can stop a Managed File Transfer agent from the command line. When you stop an agent, you are
quiescing the agent and allowing the agent to complete its current file transfer before stopping. You can
also specify the -i parameter at the command line to stop an agent immediately. When the agent has
stopped, you cannot use that agent to transfer files until you restart it.
Related reference
“Starting an MFT agent on z/OS” on page 164
fteStartLogger
The fteStartLogger command starts a Managed File Transfer logging application.
Purpose
Use the fteStartLogger command to start a logger. The logger can be either a file or database
application that runs on the same system as the coordination queue manager. For more information, see
the topic “Configuring an MFT logger” on page 114. For IBM WebSphere MQ 7.5, or later, the logger
process controller manages starting the logger. However, the logger process controller may wait for a
period of time, for example where there have been a high rate of logger failures, before attempting to start
the logger again. As an IBM MQ administrator you can use the fteStartLogger command to override
this wait and initiate a start of the logger. If the logger process controller was waiting for the queue
manager to become available this command will also initiate the logger process controller attempting to
reconnect to the queue manager.
If you have configured a logger to run as a Windows service by using the fteModifyLogger command,
running the fteStartLogger command starts the Windows service.
This command returns an error if the logger does not start or is already started. The logger communicates
with its queue manager based on the values defined in the logger.properties file.
Specify the -p parameter for this command only if you want to use a set of configuration options different
from the default. For more information on logger properties, see “MFT logger configuration properties” on
page 125
Syntax
fteStartLogger
fteStartLogger logger_name
-p configuration_options -F
Parameters
logger_name
Required. The name of the Managed File Transfer logger you want to start.
-p configuration_options
Optional. This parameter determines the set of configuration options that is used to issue the request
to start a logger. Use the name of a non-default coordination queue manager as the input for this
parameter. fteStartLogger then uses the set of properties files associated with this non-default
coordination queue manager.
If you do not specify this parameter, the set of configuration options based on the default coordination
queue manager is used.
-F
Optional. Runs the logger as a foreground process (rather than as the default background process). If
you have configured the logger to run as a Windows service by using the fteModifyLogger
command, the -F parameter overrides this configuration.
-? or -h
Optional. Displays command syntax.
fteStartLogger -F logger1
Return codes
0
Command completed successfully.
1
Command ended unsuccessfully.
Related concepts
“Configuring an MFT logger” on page 114
Related reference
“fteModifyLogger: run an MFT logger as a Windows service” on page 481
Use the fteModifyLogger command to modify a Managed File Transfer logger so that it can be run as a
Windows service. You can use this command only on Windows platforms, and you must first stop the
logger by using the fteStopLogger command.
“fteStopLogger” on page 521
The fteStopLogger command stops a Managed File Transfer logger.
“MFT logger error handling and rejection” on page 327
The Managed File Transfer logger identifies two types of error: per-message errors and general errors.
fteStopAgent
Use the fteStopAgent command to either stop a Managed File Transfer agent in a controlled way or to
stop an agent immediately if necessary using the -i parameter.
Purpose
When you stop an agent by using the fteStopAgent command, you can either allow the agent to
complete its current file transfer before stopping, or stop the agent immediately even if the agent is
currently transferring a file. When the agent has stopped, you cannot use that agent to transfer files until
you restart the agent.
If the agent you want to stop is connected to the IBM MQ network, you can run the fteStopAgent
command from any system that can connect to the IBM MQ network and route to the agent queue
manager. Specifically for the command to run, you must have installed and configured a Managed File
Transfer component (either Service or Agent) on this system to communicate with the IBM MQ network. If
no connectivity details are available, a bindings mode connection is made to the default queue manager
on the local system. If command.properties does not exist then an error is generated.
If the agent you want to stop is not connected to the IBM MQ network, for example if the IBM MQ network
is not currently available, you can only run the fteStopAgent command from the system that the agent
is running on. In order to stop an agent that is not connected to the IBM MQ network you must run the
fteStopAgent command from the same user the agent is running as. Alternatively, if the agent is
running on a Windows system you can run the command as an administrator.
Specify the optional -p parameter for this command only if you want to use a set of configuration options
different from your default set. See “The MFT agent.properties file” on page 537 for more information.
If your agent is running as a Windows service, running the fteStopAgent command stops the Windows
service. For more information, see “Starting an MFT agent as a Windows service” on page 161.
fteStopAgent
fteStopAgent
-m agent_qmgr_name -p configuration_options
agent_name
Parameters
-m (agent_qmgr_name)
Optional. The name of the queue manager that the agent that you want to stop is connected to.
If the agent is on a remote system, or if the agent is on the local system but you are not the user that
started it, you must use the -m parameter, and have the appropriate authorities. For more information
about authorities, see “Restricting group authorities for MFT-specific resources” on page 349.
-p (configuration_options)
Optional. This parameter determines the set of configuration options that is used to issue the request
to stop an agent. Use the name of a non-default coordination queue manager as the input for this
parameter. The command then uses the set of properties files associated with this non-default
coordination queue manager.
If you do not specify this parameter, the set of configuration options based on the default coordination
queue manager is used.
-i
Optional. Immediately stops the agent. The agent does not complete any transfers that are currently
in progress.
If you do not specify the -i parameter, the agent completes any transfers currently in progress but
the agent does not start any new transfers.
-mquserid (userID)
Optional. Specifies the user ID to authenticate with the command queue manager.
-mqpassword (password)
Optional. Specifies the password to authenticate with the command queue manager. You must also
specify the -mquserid parameter. If you specify -mquserid, but do not specify -mqpassword, you
will be prompted to supply the associated password. The password will not be displayed.
agent_name
Required. The name of the Managed File Transfer agent that you want to stop.
-? or -h
Optional. Displays command syntax.
Example
In this example the agent AGENT2 on queue manager QM_JUPITER is stopped. The -m parameter is used
because this queue manager that AGENT2 is connected to differs from the queue manager specified by
the set of configuration options.
fteStopLogger
The fteStopLogger command stops a Managed File Transfer logger.
Purpose
Use the fteStopLogger command to stop a logger. The logger can be either a file logger, which records
a history of managed file transfer activity to a file, or a database logger which records the history to a
database.
Syntax
fteStopLogger
fteStopLogger
-p configuration_options
logger_name
-mquserid userID -mqpassword password
Parameters
-p (configuration_options)
Optional. Determines the set of configuration options that is used to stop the logger. Use the name of
a set of configuration options as the value for the -p parameter. By convention this value is the name
of a coordination queue manager. If you do not specify this parameter, the default set of configuration
options is used.
-cq (command_queue_name)
Optional. Specifies the command queue to send the stop message to. In most cases, loggers use the
default queue name meaning this parameter is not necessary.
-mquserid (userID)
Optional. Specifies the user ID to authenticate with the command queue manager.
-mqpassword (password)
Optional. Specifies the password to authenticate with the command queue manager. You must also
specify the -mquserid parameter. If you specify -mquserid, but do not specify -mqpassword, you
will be prompted to supply the associated password. The password will not be displayed.
logger_name
Required. The name of the Managed File Transfer logger you want to stop.
-? or -h
Optional. Displays command syntax.
Example
In this example, a logger has previously been created named logger1 and is currently running. This
command shows how the logger can be stopped:
fteStopLogger logger1
Return codes
0
Command completed successfully.
1
Command ended unsuccessfully.
Related concepts
“Configuring an MFT logger” on page 114
Related reference
“fteModifyLogger: run an MFT logger as a Windows service” on page 481
Use the fteModifyLogger command to modify a Managed File Transfer logger so that it can be run as a
Windows service. You can use this command only on Windows platforms, and you must first stop the
logger by using the fteStopLogger command.
“fteStartLogger” on page 518
The fteStartLogger command starts a Managed File Transfer logging application.
Example
In this example on a Windows system, a user fteuser using an environment variable of USERPROFILE:
wmqfte.database.credentials.file=%USERPROFILE%\\logger\\mqmftcredentials.xml
C:\Users\fteuser\logger\mqmftcredentials.xml
In this example on a UNIX system, a user fteuser using an environment variable of HOME:
transferRoot=$HOME/fte/
/home/fteuser/fte/
For the Redistributable Managed File Transfer Agent, the data path is set when you run the
fteCreateEnvironment command. If you run the command and specify your chosen location with the
-d parameter, the data path is set for this location. If you do not specify the location with the
fteCreateEnvironment command, a directory mftdata is created under the root directory where the
Redistributable Managed File Transfer Agent is extracted. The installation.properties file for the
Redistributable Managed File Transfer Agent is located in the MQ_DATA_PATH\mqft\installations
\MFTZipInstall directory.
The installation.properties file contains the following values:
There is a coding
error in IBM MQ 9.0.2. In that
version, when you specify
messagePublicationFormat=
mixed the effect is the same as
specifying
messagePublicationFormat=
MQFMT_NONE. The
error is fixed in IBM MQ 9.0.3.
Before IBM MQ 8.0, MFT agents
published XML status messages
to the SYSTEM.FTE topic in a
string format (MQFMT_STRING).
If possible, applications that
previously used IBM WebSphere
MQ 7.5 must be updated to
process messages in the IBM MQ
8.0 or later format. If it is not
possible to change an
application, set the
messagePublicationFormat
property to MQFMT_STRING to
revert to the IBM WebSphere MQ
7.5 behavior.
z/OS-specific:
This property is
ignored on Multiplatforms.
defaultProperties=ERIS
ERIS is the name of a directory that is located in the same directory as the installation.properties
file. The directory ERIS contains directories and properties files that describe a set of configuration
options.
Related concepts
“MFT configuration options on Multiplatforms” on page 68
Managed File Transfer provides a set of properties files that contain key information about your setup and
are required for operation. These properties files are in the configuration directory that you defined when
you installed the product.
Related reference
“fteChangeDefaultConfigurationOptions” on page 377
Use the fteChangeDefaultConfigurationOptions command to change the default configuration
options that you want Managed File Transfer to use. The value of the configuration options defines the
group of properties files that Managed File Transfer uses.
If you do not specify a value for the coordinationQMgrHost property, bindings mode is used by default.
If you specify a value for the coordinationQMgrHost property but do not specify values for the
coordinationQMgrPort and coordinationQMgrChannel properties, a port number of 1414 and a channel of
SYSTEM.DEF.SVRCONN are used by default.
Security properties:
userIdForClientConnect The user ID that gets flowed None
through the client connections
to IBM MQ. If java is specified
the user name reported by the
JVM is flowed as part of the
IBM MQ connection request.
The value of this property can
be None or java.
coordinationQMgrAuthenticationCredential The path to the file that
sFile contains the MQ connection For details on
credentials for connection to creating the Authentication
the coordination queue Credentials File see Creating an
manager. MFT credentials file
See Configuring
MQMFTCredentials.xml for
information on the location and
permissions of this file.
Further details on
creating the Authentication
Credentials File are in MFT and
IBM MQ connection
authentication
Subscription properties:
coordinationQMgr=ERIS
coordinationQMgrHost=kuiper.example.com
coordinationQMgrPort=2005
coordinationQMgrChannel=SYSTEM.DEF.SVRCONN
ERIS is the name of a IBM MQ queue manager that is located on the system kuiper.example.com. The
queue manager ERIS is the queue manager that Managed File Transfer sends log information to.
Related concepts
“MFT configuration options on Multiplatforms” on page 68
Managed File Transfer provides a set of properties files that contain key information about your setup and
are required for operation. These properties files are in the configuration directory that you defined when
you installed the product.
Related reference
“fteSetupCoordination” on page 503
The fteSetupCoordination command creates properties files and the coordination queue manager
directory for Managed File Transfer.
“SSL properties for MFT” on page 591
Use SSL or TLS withIBM MQ and Managed File Transfer to prevent unauthorized connections between
agents and queue managers, and to encrypt message traffic between agents and queue managers.
If you do not specify a value for the connectionQMgrHost property, bindings mode is used by default.
If you specify a value for the connectionQMgrHost property but do not specify values for the
connectionQMgrPort and connectionQMgrChannel properties, a port number of 1414 and a channel of
SYSTEM.DEF.SVRCONN are used by default.
See Configuring
MQMFTCredentials.xml for
information on the location and
permissions of this file.
Further details on
creating the Authentication
Credentials File are in MFT and IBM
MQ connection authentication
Queue properties:
dynamicQueuePrefix For commands that require a WMQFTE.*
response from the agent, this
property defines the IBM MQ prefix
to use for generating the temporary
reply queue name.
The format of the
dynamicQueuePrefix property
follows the format of the
DynamicQName field of the IBM MQ
MQOD structure. For more
information, see Creating dynamic
queues.
You can also define this property in
the coordination.properties
file if you want to use a specific IBM
MQ prefix for temporary queues
that are generated by WMQFTE.
Connection properties:
javaLibraryPath When connecting to a queue /opt/mqm/java/lib
manager in bindings mode
Managed File Transfer must have
access to the IBM MQ Java bindings
libraries. By default Managed File
Transfer looks for the bindings
libraries in the default location
defined by IBM MQ. If the bindings
libraries are in a different location
use this property to specify the
location of the bindings libraries.
Agent properties
connectionQMgr=PLUTO
connectionQMgrHost=kuiper.example.com
connectionQMgrPort=1930
connectionQMgrChannel=SYSTEM.DEF.SVRCONN
PLUTO is the name of an IBM MQ queue manager that is located on the system kuiper.example.com.
The queue manager PLUTO is the queue manager that the Managed File Transfer commands connect to.
Related concepts
“MFT configuration options on Multiplatforms” on page 68
Managed File Transfer provides a set of properties files that contain key information about your setup and
are required for operation. These properties files are in the configuration directory that you defined when
you installed the product.
Related reference
“Java system properties for MFT” on page 591
A number of Managed File Transfer command and agent properties must be defined as Java system
properties, because they define configuration for early function that is unable to use the command or
agent properties mechanism.
“SSL properties for MFT” on page 591
Use SSL or TLS withIBM MQ and Managed File Transfer to prevent unauthorized connections between
agents and queue managers, and to encrypt message traffic between agents and queue managers.
“fteSetupCommands: create the MFT command.properties file” on page 501
The fteSetupCommands command creates the Managed File Transfer command.properties file. This
properties file specifies the details of the queue manager that connects to the IBM MQ network when you
issue commands.
“fteCleanAgent: clean up an MFT Agent” on page 378
Use the fteCleanAgent command to clean up the queues that a Managed File Transfer Agent uses, by
deleting messages from the persistent and non-persistent queues used by the agent. Use the
fteCleanAgent command if you are having problems starting an agent, which might be caused by
information remaining on the queues used by the agent.
If you do not specify a value for the agentQMgrHost property, bindings mode is used by default.
If you specify a value for the agentQMgrHost property but do not specify values for the agentQMgrPort
and agentQMgrChannel properties, a port number of 1414 and a channel of SYSTEM.DEF.SVRCONN are
used by default.
• z/OS-specific properties
• Other properties
Table 41. Advanced agent properties
agentCheckpointInterval The interval in complete frames of data between which a checkpoint is taken 1
for recovery purposes. This is an advanced property and for most Managed
File Transfer configurations it is not necessary to modify its value.
If there is a problem which causes the transfer to go into recovery, the
transfer can recover only to a checkpoint boundary. Hence, the larger this
value (with large agentChunkSize, agentWindowSize, and agentFrameSize
values), the longer the time that is needed for the agent to recover transfers.
For reliable Managed File Transfer networks where transfers rarely enter a
recovery state, it may be beneficial to increase this value to increase overall
performance.
agentChunkSize The size of each transfer chunk for the transport of file data. Hence, denotes 262144-byte (which is
the maximum size of the IBM MQ messages that are transferred between the equivalent to 256 KB)
source and the destination agents. This is an advanced property and for most
Managed File Transfer configurations it is not necessary to modify its value.
This value is negotiated between the source agent and the destination agent,
and the larger of the two values is used. If you want to change the value of this
property, change the value at both the source agent and at the destination
agent.
agentChunkSize is an integer value. For example: agentChunkSize = 10240
sets the chunk size to 10 KB.
agentFrameSize The number of windows for the transfer frame. This is an advanced property 5
and for most Managed File Transfer configurations it is not necessary to
modify its value.
For networks that have high latency, increasing this value may improve overall
performance as it causes the agent to have more message chunks active
concurrently.
The value of this property, multiplied by agentWindowSize, multiplied by
agentChunkSize, denotes the upper limit of the memory consumption of the
agent for each transfer. For example, 262144-byte chunks x 10 x 5 = 12.5 MB
for each transfer.
Note: If the size of the files that is transferred in a single transfer is less than
12.5 MB increasing this property has no effect on the performance of the
transfer.
agentWindowSize The number of chunks for each window. This is an advanced property and for 10
most Managed File Transfer configurations it is not necessary to modify its
value.
For networks that have high latency, increasing this value may improve overall
performance. This is because it causes the agent to have more message
chunks active concurrently and reduces the frequency that acknowledgment
messages are sent back to the source agent.
The value of this property, multiplied by agentFrameSize, multiplied by
agentChunkSize, denotes the upper limit of the memory consumption of the
agent for each transfer, and denotes the upper limit of the IBM MQ message
data on the command queue of the destination agent. For example, 262144-
byte chunks x 10 x 5 = an upper limit of 12.5 MB, for each transfer.
Note: If the size of the files that is transferred in a single transfer is less than
12.5 MB increasing the value of this property has no effect on the
performance of the transfer.
agentCcsid The code page the agent connects to its agent queue manager with. If you 1208
specify a value for agentCcsid, you must also specify a value for
agentCcsidName. For information on how to view the known code pages for
the JVM, see the -hsc parameter in the fteCreateBridgeAgent command.
agentCcsidName The Java representation of the agentCcsid. If you specify a value for UTF8
agentCcsidName, you must also specify a value for agentCcsid.
Command properties:
maxCommandHandlerThreads Controls the number of threads available for the initial parsing and processing 5
of transfer command messages. When active, the threads require a
connection to the queue manager but the threads release the connection
when idle.
maxCommandOutput The maximum number of bytes stored for command output. This property 10240
applies to commands specified for a managed call and preSource, postSource,
preDestination, and postDestination commands for a managed transfer. This
limits the length of command output that is written to the transfer log on the
SYSTEM.FTE topic.
maxCommandRetries The maximum number of retries for a command that the agent permits. This 9
property applies to commands specified for a managed call and the
preSource, postSource, preDestination, and postDestination commands for a
managed transfer.
maxCommandWait The maximum wait, in seconds, between retries that the agent permits. This 60
property applies to commands specified for a managed call and the
preSource, postSource, preDestination, and postDestination commands for a
managed transfer.
immediateShutdownTimeout For an immediate shutdown of an agent, you can use this property to specify 10
the maximum amount of time in seconds an agent waits for its transfers to
complete before forcing a shutdown.
Note: Do not change the value of this property to less than the default of 10
seconds. An immediate shutdown of an agent requires sufficient time to end
any external processes. If the value of this property is too low, processes
might be left running.
If the value 0 is specified for this property, the agent waits for all outstanding
transfers to stop. If an invalid value is specified for this property, the default
value is used.
Connection properties:
javaLibraryPath When connecting to a queue manager in bindings mode, Managed File None
Transfer must have access to the IBM MQ Java bindings libraries. By default
Managed File Transfer looks for the bindings libraries in the default location
that is defined by IBM MQ. If the bindings libraries are in a different location,
use this property to specify the location of the bindings libraries.
cdNode Required property if you want to use the Connect:Direct bridge. No default
The name of the Connect:Direct node to use to transfer messages from the
Connect:Direct bridge agent to destination Connect:Direct nodes. This node is
part of the Connect:Direct bridge, not the remote node that is the source or
destination of the transfer. For more information, see “The Connect:Direct
bridge” on page 234.
cdNodeHost The host name or IP address of the Connect:Direct node to use to transfer The host name or IP address
files from the Connect:Direct bridge agent to destination nodes (the of the local system
Connect:Direct bridge node).
In most cases, the Connect:Direct bridge node is on the same system as the
Connect:Direct bridge agent. In these cases, the default value of this property,
which is the IP address of the local system, is correct. If your system has
multiple IP addresses, or your Connect:Direct bridge node is on a different
system to your Connect:Direct bridge agent and their systems share a file
system, use this property to specify the correct host name for the
Connect:Direct bridge node.
If you have not set the cdNode property, this property is ignored.
cdNodePort The port number of the Connect:Direct bridge node that client applications 1363
use to communicate with the node. In Connect:Direct product documentation,
this port is referred to as the API port.
If you have not set the cdNode property, this property is ignored.
cdTmpDir The location to store files temporarily on the system where the Connect:Direct
bridge agent is running before they are transferred to the destination
Connect:Direct node. value_of_java.io.tm
pdir
This property specifies the full path of the directory where files are /cdbridge-agentName
temporarily stored. For example, if cdTmpDir is set to /tmp then the files are
temporarily placed in the /tmp directory. On Windows,
The Connect:Direct bridge agent and the Connect:Direct bridge node must be
able to access the directory specified by this parameter using the same path
name. Consider this when planning the installation of your Connect:Direct value_of_java.io.tm
pdir
bridge. If possible, create the agent on the system where the Connect:Direct \cdbridge-agentName
node that is part of the Connect:Direct bridge is located. If your agent and
node are on separate systems, the directory must be on a shared file system
and be accessible from both systems using the same path name. For more
information about the supported configurations, see “The Connect:Direct
bridge” on page 234.
If you have not set the cdNode property, this property is ignored.
The value of this property can contain environment variables.
See “The use of environment variables in MFT properties” on page 522 for
more information.
cdTrace Whether the agent traces data that is sent between the Connect:Direct bridge false
agent and its Connect:Direct node. The value of this property can be true or
false.
cdMaxConnectionRetries The maximum number of Connect:Direct connection attempts, for a file -1 (an infinite number of
transfer where a successful connection has not yet been made, before the attempts)
transfer fails.
cdMaxPartialWorkConnectionRetries The maximum number of Connect:Direct connection attempts, for a file -1 (an infinite number of
transfer where a previous connection attempt has been successful and attempts)
transfer work has completed, before the transfer fails.
cdMaxWaitForProcessEndStats The maximum time in milliseconds to wait for Connect:Direct process 60000
completion information to become available within the Connect:Direct node
statistics information, after the process has ended, before the file transfer is
judged to have failed. Typically the information is available immediately, but
under certain failure conditions the information is not published. In these
conditions the file transfer fails after waiting for the amount of time that is
specified by this property.
cdAppName The application name that the Connect:Direct bridge agent uses to connect to Managed File Transfer current
the Connect:Direct node that is part of the bridge. version, where current version
is the version number of the
product.
cdNodeLocalPortRange The range of local ports to use for socket connections between the None
Connect:Direct bridge agent and the Connect:Direct node that is part of the
bridge. The format of this value is a comma-separated list of values or ranges.
By default, the operating system selects the local port numbers.
cdNodeProtocol The protocol that the Connect:Direct bridge agent uses to connect to the TCPIP
Connect:Direct node that is part of the bridge. The following values are valid:
• TCPIP
• SSL
• TLS
cdNodeKeystore The path to the keystore that is used for secure communications between the None
Connect:Direct bridge agent and the Connect:Direct node that is part of the
bridge.
If you have not set the cdNodeProtocol property to SSL or TLS, this property is
ignored.
The value of this property can contain environment variables.
See “The use of environment variables in MFT properties” on page 522 for
more information.
cdNodeKeystoreType The file format of the keystore that is specified by the cdNodeKeystore jks
property. The following values are valid: jks and pkcs12.
If you have not set the cdNodeProtocol property to SSL or TLS, this property is
ignored.
cdNodeKeystoreCredentialsFile The path to the file that contains the cdNodeKeystore credentials.
For
The value of this property can contain environment variables.
details on creating the
See “The use of environment variables in MFT properties” on page 522 for Authentication Credentials
more information. File see Creating an MFT
credentials file
See
Configuring
MQMFTCredentials.xml for
information on the location
and permissions of this file.
Further
details on creating the
Authentication Credentials
File are in MFT and IBM MQ
connection authentication
cdNodeTruststore The path to the truststore that is used for secure communications between None
the Connect:Direct bridge agent and the Connect:Direct node that is part of
the bridge.
If you have not set the cdNodeProtocol property to SSL or TLS, this property is
ignored.
The value of this property can contain environment variables.
See “The use of environment variables in MFT properties” on page 522 for
more information.
cdNodeTruststoreType The file format of the truststore that is specified by the cdNodeTruststore jks
property. The following values are valid: jks and pkcs12.
If you have not set the cdNodeProtocol property to SSL or TLS, this property is
ignored.
cdNodeTruststoreCredentialsFile The path to the file that contains the cdNodeTruststore credentials. See Creating an MFT
credentials file and
The value of this property can contain environment variables.
Configuring
See “The use of environment variables in MFT properties” on page 522 for MQMFTCredentials.xml
more information.
Further
details on creating the
Authentication Credentials
File are also in Creating an
MFT credentials file
Further
details on creating the
Authentication Credentials
File are in MFT and IBM MQ
connection authentication
logCDProcess The level of Connect:Direct process logging that is recorded in the agent event None
log in the output0.log file. The values that this property can have are None
or Failures or All.
deleteTmpFileAfterRenameFailure Setting this property to a value of false ensures that temporary files are not true
deleted from the destination if the rename operation fails. In this case, the
transferred data remains at the destination in a temporary (.part) file. You can
manually rename this file later. By default this property has the value of true.
This property applies to both message-to-file and file-to-file transfers.
enableQueueInputOutput By default, the agent cannot read data from a source queue or write data to a false
destination queue as part of a transfer. Setting this value to true enables the
agent to perform file to message, and message to file transfers. The value of
this property can be true or false.
enableSystemQueueInputOutput Specifies whether the agent can read from or write to IBM MQ system queues. false
System queues are prefixed with the qualifier SYSTEM.
Note: System queues are used by IBM MQ, Managed File Transfer, and other
applications to transmit important information. Changing this property
enables the agent to access these queues. If you enable this property, use
user sandboxing to limit the queues that the agent can access.
enableClusterQueueInputOutput Specifies whether the agent can read from or write to IBM MQ clustered false
queues.
Note: You must specify the enableClusterQueueInputOutput agent property
in addition to the enableQueueInputOutput property.
maxDelimiterMatchLength The maximum number of characters that can be matched by the Java regular 5
expression that is used to split a text file into multiple messages as part of a
file-to-message transfer.
maxInputOutputMessageLength The maximum length, in bytes, of a message that is read from a source queue 1048576
or written to a destination queue by an agent. The
maxInputOutputMessageLength property of the source agent in a transfer
determines how many bytes can be read from a message on the source
queue. The maxInputOutputMessageLength property of the destination agent
in a transfer determines how many bytes can be written to a message on the
destination queue. If the length of the message exceeds the value of this
property the transfer fails with an error. This property does not affect the
Managed File Transfer internal queues. For information about changing this
property, see “Guidance for setting MQ attributes and MFT properties
associated with message size” on page 318.
agentStatusPublishRateLimit The maximum rate in seconds that the agent republishes its status because of 30
a change in file transfer status.
If you set this property to too small a value, the performance of the IBM MQ
network might be negatively affected.
agentStatusPublishRateMin The minimum rate in seconds that the agent publishes its status. This value 300
must be greater than or equal to the value of the agentStatusPublishRateLimit
property.
enableMemoryAllocationChecking Determines whether the Managed File Transfer Agent checks that there is false
sufficient memory available to run a transfer before a transfer is accepted.
The check is made on both the source and destination agents. If there is
insufficient memory available, the transfer is rejected.
When calculating the memory required for a transfer, the maximum memory
that is required by the transfer is used. Therefore, the value might be greater
than the actual memory that is used by the transfer. For this reason, the
number of concurrent transfers that can run might be reduced if the
enableMemoryAllocationChecking property is set to true. You are
recommended to set the property to true only if you are experiencing
problems with Managed File Transfer failing with out-of-memory errors. The
transfers that are likely to consume large amounts of memory are file-to-
message and message-to-file transfers where the sizes of the messages are
large.
enableDetailedReplyMessages Setting this property to true enables managed transfer request replies to true
contain detailed information about the transferred files. The detailed
information and format is the same as that published to the transfer log in the
progress messages, that is, the <transferSet> element. For more information,
see “File transfer log message formats” on page 727.
The detailed reply information is included only when the managed transfer
request specifies that detailed reply information is required. To specify this
requirement, set the detailed attribute of the <reply> element of the
managedTransfer XML request message sent to the source agent. For more
information, see “File transfer request message format” on page 759.
Multiple reply messages can be generated for each transfer request. This
number is equal to the number of transfer log progress messages for the
transfer plus 1 (where the first reply message is a simple ACK reply). Detailed
information is included in all messages, except for the ACK reply messages,
but the overall transfer result is included only in the last detailed reply
message.
enableUserMetadataOptions Determines whether you can use known keys for user-defined metadata in false
new transfer requests to provide more transfer options. These known keys
always start with the following prefix com.ibm.wmqfte.. As a consequence
when the enableUserMetadataOptions property is set true, keys that use this
prefix are not supported for user-defined use. When the
enableUserMetadataOptions property is set to true, the keys that are
supported currently are as follows:
• com.ibm.wmqfte.insertRecordLineSeparator
• com.ibm.wmqfte.newRecordOnLineSeparator
• com.ibm.wmqfte.convertLineSeparators
For information about what these keys mean, see “fteCreateTransfer: start a
new file transfer” on page 428.
The value of this property can be true or false.
itemsPerProgressMessage The number of files that are transferred before an agent publishes its next 50
progress log message. Use this property to control the rate that progress log
messages are published to the coordination queue manager during a transfer.
The maximum value this property can be set to is 1000.
Note: Progress messages include information about every file that is
transferred since the last progress message was published. Increasing this
value increases the size of the progress messages, which might affect
performance.
maxInlineFileSize For single file-to-file, or file-to-message transfers, the maximum file size (in 0
bytes) that can be automatically included in the initial transfer request
message.
You can use this property to improve the speed of your transfers, but if you set
the file size to too large a value, this might degrade performance. A suggested
initial size for this property is 100 KB but you are recommended to thoroughly
test different values until you find the best file size for your system.
Input/output properties:
doNotUseTempOutputFile By default, the agent writes to a temporary file at the destination and renames false
this temporary file to the required file name after the file transfer is complete.
Setting this value to true causes the agent to write directly to the final
destination file.
enableMandatoryLocking When accessing normal files, Managed File Transfer takes a shared lock for false
reading and an exclusive lock for writing.
ioIdleThreadTimeout Time in milliseconds for a file system input/output thread to remain idle 10000
before the thread shuts down.
ioThreadPoolSize Maximum number of file system input/output threads available. Typically each 10
transfer uses its own file system input/output thread, but if the number of
concurrent transfers exceeds this limit, the file system input/output threads
are shared between transfers.
If you think you are likely to regularly have more concurrent transfers in
progress than the ioThreadPoolSize value, you might see an improvement by
increasing this value, so that each transfer has its own file system input/
output thread.
textReplacementCharacterSequence For text mode transfer, if any of the data bytes cannot be converted from the None
source code page to the destination code page, the default behavior is for the
file transfer to fail.
Set this property to allow the transfer to complete successfully by inserting
the specified character value. This property value is a single character.
Typically, a question mark (?) is used for any unmappable characters. For
example, use this format textReplacementCharacterSequence=? where the
question mark (?) is the replacement character. You cannot use a white space
character as a replacement character.
Multi-channel support:
agentMultipleChannelsEnabled Setting this property to true enables a Managed File TransferManaged File false
Transfer Agent to send transfer data messages across multiple IBM MQ
channels. In some scenarios, setting this property might improve
performance. However, only enable multi-channel support only if there is a
demonstrable performance benefit. Only messages that are put to the
SYSTEM.FTE.DATA.destinationAgentName queue are sent across multiple
channels. The behavior for all other messages remains unchanged.
When you set this property to true, you must also complete the IBM MQ
configuration steps in one of the following topics to enable multi-channel
support:
• “Configuring an MFT agent for multiple channels in a cluster” on page 557
• “Configuring an MFT agent for multiple channels: non-clustered” on page
558
Additionally, you must also complete the standard IBM MQ configuration
steps that are required for a Managed File Transfer agent, which are detailed
in “Configuring MFT for first use” on page 104.
The value of this property can be true or false.
agentMessageBatchSize When configured with multiple channels, a source agent sends data messages 5
for a transfer across each channel on a round-robin basis. This property
controls the number of messages that are sent down each channel at a time.
agentQMgrStandby The host name and the port number that are used for client connections, in No default
IBM MQ CONNAME format, for the standby instance of a multi-instance agent
queue manager that is defined by agentQMgr. For example,
host_name(port_number)
agentQMgrRetryInterval The interval, in seconds, between checks on the availability of the queue 30
manager by the agent's process controller.
maxRestartCount The maximum number of restarts that can happen within the time interval 4
that is specified by the value of the maxRestartInterval property. When this
value is exceeded the agent's process controller stops restarting the agent,
and instead makes an action that is based on the value of the
maxRestartDelay property.
maxRestartInterval The interval, in seconds, that the agent's process controller measures agent 120
restarts over. If the number of restarts in this interval exceeds the value of the
maxRestartCount property, the agent's process controller stops restarting the
agent. Instead the agent's process controller makes an action that is based on
the value of the maxRestartDelay property.
maxRestartDelay Determines the behavior of the agent's process controller when the rate of -1
agent restarts exceeds the value of the maxRestartCount and
maxRestartInterval properties. If you specify a value less than or equal to
zero, the agent's process controller is stopped. If you specify a value greater
than zero, it is the number of seconds to wait before the restart history
information held by the agent's process controller is reset and the agent is
restarted.
protocolBridgeCredentialConfiguration The value of this property is passed in as a string to the initialize() method of null
the exit classes that are specified by protocolBridgeCredentialExitClasses.
protocolBridgeCredentialExitClasses Specifies a comma-separated list of classes that implement a protocol bridge No default.
credential user exit routine. For more information, see “Mapping credentials
for a file server by using exit classes” on page 229.
protocolBridgeDataTimeout The timeout in milliseconds that the protocol bridge agent waits to either 0
establish a data connection to an FTP server or to receive data from an FTP
server over a connection that is already established. If you set this property to
a value of 0, the protocol bridge agent waits indefinitely. If the timeout
elapses, the protocol bridge agent closes any existing data connections to the
FTP server and attempts to establish a new data connection before resuming
the current transfer. If the attempt to establish the new data connection fails,
the current transfer also fails.
protocolBridgeLogoutBeforeDisconnect Specifies whether the protocol bridge agent logs the user out of the file server false
before closing the FTP session and disconnecting. If you set this property to
true, the protocol bridge agent issues an FTP QUIT command to the file
server.
protocolBridgePropertiesConfiguration Passed as one of the bridge properties to the initialize() method of the exit No default
classes that are specified by the protocolBridgeServerPropertiesExitClasses
property.
protocolBridgePropertiesExitClasses Specifies a comma-separated list of classes that implement a protocol bridge No default
server properties user exit routine.
For more information, see “ProtocolBridgePropertiesExit2: Looking up
protocol file server properties” on page 223.
Key value pair component and operation to enable or disable logging of FTP No default
commands and responses between the Protocol Bridge Agent and FTP/SFTP/
agentLog FTPS file servers.
For example:
agentLog=on
Turn on logging for all components
agentLog=off
Turn off logging for all components
agentLog=ftp=on, sftp=on, ftps=off
Turn on logging for FTP and SFTP, and turn off for FTPS
Defines the maximum size of a capture file in megabytes. Same as the default 20
for regular trace default file size.
agentLogFileSize
Defines the maximum number of capture files that are retained before the 10
oldest file is discarded.
agentLogFiles
host=ftpprod.ibm.com, ftp2.ibm.com
host=9.182.*
Queue properties:
publicationMDUser The MQMD user ID to associate with messages sent to be published by the No default
coordination queue manager. If you do not set this property, the MQMD user
ID is set based on the IBM MQ rules for setting MQMD user IDs.
monitorFilepathPlatformSeparator Specifies whether to use platform-specific path separators within the true
$FILEPATH variable. A value of true uses platform-specific path separators. A
value of false uses a UNIX style forward slash (/) path separator on all
platforms.
monitorReportTriggerFail Specifies whether failure conditions, in the environment and configuration, true
that are detected in the monitor are reported as a log message to the
SYSTEM.FTE topic. A value of true logs messages. A value of false does not
log messages.
monitorReportTriggerNotSatisfied Specifies whether a non-satisfied trigger sends a log message to the false
SYSTEM.FTE topic that contains the details. A value of true logs messages. A
value of false does not log messages.
monitorReportTriggerSatisfied Specifies whether a satisfied trigger sends a log message to the SYSTEM.FTE false
topic that contains the details. A value of true logs messages. A value of
false does not log messages.
monitorSilenceOnTriggerFailure The number of consecutive failures of the resource monitor trigger before the 5
failures are no longer reported.
monitorStopOnInternalFailure The number of consecutive internal FFDC conditions of the resource monitor 10
before the monitor changes its state to stop.
commandPath Specifies the set of paths that commands can be called by, using one of the None - no commands can be
following methods: called
• Agent Ant call, filecopy, or filemove tasks
• In an XML message passed to an agent, using one of the supported
Managed File Transfer Agent command XML schemas (for example,
managedCall or managedTransfer).
For information about the valid syntax of the value of the commandPath
property, see “commandPath MFT property” on page 359.
Important: Take extreme care when you set this property because any
command in one of the specified commandPaths can effectively be called
from a remote client system that is able to send commands to the agent. For
this reason, by default, when you specify a commandPath:
• Any existing agent sandbox is configured by the agent when it starts up so
that all commandPath directories are automatically added to the list of
directories that have denied access for a transfer.
• Any existing user sandboxes are updated when the agent starts up so that
all the commandPath directories (and their subdirectories) are added as
<exclude> elements to the <read> and <write> elements.
• If the agent is not configured to use either an agent sandbox, or user
sandboxes, then a new agent sandbox is created when the agent starts up
that has the commandPath directories specified as denied directories.
The value of this property can contain environment variables.
See “The use of environment variables in MFT properties” on page 522 for
more information.
Specifies whether additional checks are to be made on wildcard transfers for None
an agent that has been configured with a user or agent sandbox in order to
restrict the locations that the agent can transfer files to and from.
additionalWildcardSandboxChecking When this property is set to true, the additional checking is enabled. If a
transfer request attempts to read a location that is outside of the defined
sandbox for file matching of the wildcard, the transfer fails. If there are
multiple transfers within one transfer request, and one of these requests fails
due to it attempting to read a location outside of the sandbox, the entire
transfer fails. If checking fails, the reason for failure is given in an error
messages (see “Additional checks for wildcard transfers” on page 61).
If the property is omitted or set to false then no additional checks are made
on wildcard transfers.
sandboxRoot Specifies the set of root paths to include and exclude when you use None - no sandbox
sandboxing. See “Working with MFT agent sandboxes” on page 57 for
information about this feature.
Separate paths with a platform-specific path separator. Prefix paths with an
exclamation point (!) character to denote paths as excluded from the sandbox.
This feature is useful if you want to exclude a subdirectory under an included
root path.
The sandboxRoot property is not supported on protocol bridge agents.
You cannot specify the sandboxRoot property and the userSandboxes
property together.
The value of this property can contain environment variables.
See “The use of environment variables in MFT properties” on page 522 for
more information.
transferRoot Default root directory for relative paths that are specified to the agent. The home directory for the
user that started the agent
The value of this property can contain environment variables.
process.
See “The use of environment variables in MFT properties” on page 522 for
more information.
transferRootHLQ Default HLQ (user ID) for non-fully qualified data sets specified to the agent The user name of the user
that started the agent
process.
userSandboxes Restrict the area of the file system that files can be transferred to and from false
based on the MQMD user name of the user that requests the transfer. For
more information, see “Working with MFT user sandboxes” on page 58.
The userSandboxes property is not supported on protocol bridge agents.
You cannot specify the sandboxRoot property and the userSandboxes
property together.
Scheduler property:
maxSchedulerRunDelay The maximum interval, in minutes, that the agent waits to check for -1
scheduled transfers. Specify a positive integer to enable this property. For
more information about why you might want to use this property, see “What
to do if your scheduled file transfer does not run or is delayed” on page 311.
Because the agent might be reading a command from its command queue at
the time that scheduled transfers are due to run, there may be an additional
delay before the scheduled transfers are started. In this case, the scheduler
runs immediately after that command completes.
Security properties:
agentQMgrAuthenticationCredentialsFile The path to the file that contains the MQ connection credentials.
For
details on creating the
Authentication Credentials
File see Creating an MFT
credentials file
See
Configuring
MQMFTCredentials.xml for
information on the location
and permissions of this file.
Further
details on creating the
Authentication Credentials
File are in MFT and IBM MQ
connection authentication
authorityChecking Specifies whether the security features described in “Restricting user false
authorities on MFT agent actions” on page 354 are enabled.
logAuthorityChecks The level of authority check logging that is recorded in the agent event log in None
the output0.log file. The values that this property can have are None or
Failures or All.
userIdForClientConnect The user ID that gets flowed through the client connections to IBM MQ. If java None
is specified, the user name reported by the JVM is flowed as part of the IBM
MQ connection request. The values that this property can have are None or
java.
Timeout properties:
maxTransferNegotiationTime The maximum time in milliseconds that a transfer waits for a destination 30 000
agent to complete negotiation. If negotiation does not complete in this time,
the transfer is put into a resynchronization state and allows another transfer,
when available, to run.
In scenarios where the source or destination agent is under heavy load it is
possible that the default value is too low for the agent to respond quickly
enough to the negotiation request. This is most likely when a source agent has
a large number of resource monitors defined or when its resource monitors
are monitoring directories that contain large numbers of files. However, it can
also occur when a large number of transfer requests is submitted to an agent.
Increasing the value of this property to 200,000 or more may be necessary in
such scenarios.
recoverableTransferRetryInterval The time to wait in milliseconds between detecting a recoverable transfer 60 000
error and attempting to resume the transfer.
senderTransferRetryInterval The time in milliseconds to wait until a rejected transfer is retried because the 30 000
destination is already running the maximum number of transfers. Minimum
value is 1000.
transferAckTimeout Timeout in milliseconds that a transfer waits for acknowledgment or data 60 000
from the other end before a retry is issued. This is an advanced property and
for most Managed File Transfer configurations it is not necessary to modify its
value.
Acknowledgments are sent from the receiving agent to the sending agent
whenever a complete window of data is received. For bandwidth-constrained
or unreliable networks and large agentWindowSize and agentChunkSize
settings, it is possible that the default is not long enough. This can cause
unnecessary retransfer of data between the agents. Therefore increasing this
value might be beneficial and may reduce the likelihood of a transfer going
into recovery mode because of a slow network.
xmlConfigReloadInterval The interval in seconds between the agent reloading XML configuration files 30
during runtime. To prevent the agent from reloading XML configuration files
during runtime set this property to -1. The following XML configuration files
are affected by this property:
• ConnectDirectCredentials.xml
• ConnectDirectNodeProperties.xml
• ConnectDirectProcessDefinitions.xml
• ProtocolBridgeCredentials.xml
• ProtocolBridgeProperties.xml
• UserSandboxes.xml
javaCoreTriggerFile The full path to a file location that the agent monitors. If you create or update None
a file at this location, the agent triggers a Javacore file.
A separate thread polls this file every 30 seconds to check whether the file
has been created or updated. If the file has been created or updated since the
last poll, the agent generates a Javacore file in one of the following
directories:
• UNIX: MQ_DATA_PATH/mqft/logs/coordination_qmgr_name/
agents/agent_name
• Linux: MQ_DATA_PATH/mqft/logs/coordination_qmgr_name/
agents/agent_name
• Windows: MQ_DATA_PATH\mqft\logs\coordination_qmgr_name
\agents\agent_name
When you specify this property, the agent outputs the following message at
startup:
trace Trace specification when agent is to be run with trace enabled at agent start. None
The trace specification is a comma-separated list of classes, the equals
character, and a trace level. For example,
com.ibm.wmqfte.agent.Agent,com.ibm.wmqfte.commandhandler=a
ll. You can specify multiple trace specifications in a colon-separated list. For
example,
com.ibm.wmqfte.agent.Agent=all:com.ibm.wmqfte.commandhandl
er=moderate.
outputLogFiles The total number of output.log files to keep. This value applies to an 5
agent's process controller and the agent itself.
outputLogSize The maximum size in MB of each output.log file before output wraps onto 1
the next file. This value applies to an agent's process controller and the agent
itself.
outputLogEncoding The character encoding that the agent uses when it writes to the output.log The default character
file. encoding of the platform that
the agent is running on.
traceFiles The total number of trace files to keep. This value applies to an agent's 5
process controller as well and the agent itself.
traceSize The maximum size in MB of each trace file before trace wraps onto the next 20
file. This value applies to an agent's process controller and the agent itself.
traceMaxBytes The limit to the amount of message data that is output in the trace file. 4096 bytes
logTransferRecovery When this property is set to a value of true, whenever a transfer enters For IBM MQ 9.0.0.0, the
recovery diagnostic events are reported to the agent's event log in the default value is true
output0.log file.
logCapture Captures transfer request messages that are submitted to this agent and log false
messages that are published by the agent to the coordination queue manager.
These captured messages can be helpful when debugging transfer problems.
Captured messages are stored in files in the agent log directory called
capture?.log. The ? is a numeric value. The file that contains the number 0
holds the newest captured messages.
logCaptureFiles Defines the maximum number of capture files that are retained before the 10
oldest file is discarded.
logCaptureFilter A Java regular expression that the agent uses to match the topic name of the .* (match all)
message. Only those messages that match the regular expression are
captured.
Key value pair of resource monitor and operation to turn on, or turn off, info
logging.
resourceMonitorLog
The possible values are:
• info
• moderate
• verbose
For example:
• resourceMonitorLog=MON1,MON2=info:MON3=off
Turn on logging for MON1 and MON2, and turn off logging for MON3.
• resourceMonitorLog=info
Turn on info level logging for all resource monitors.
The resource monitor logs are written to a file, named resmoneventsN.log,
where N stands for a number; for example, resmonevents0.log.
Attention: All resource monitors of an agent write to the same log
file.
See Logging MFT resource monitors for more information.
resourceMonitorLogFileSize
Defines the maximum number of capture files that are retained before the 10
oldest file is discarded.
resourceMonitorLogFiles
maxDestinationTransfers The maximum number of concurrent transfers that the destination agent 25 (for all agents except
processes at any point in time. Each transfer request that is submitted to an Connect:Direct
agent counts against this total regardless of the number of files that are
5 (for Connect:Direct bridge
transferred to satisfy the request. This means that a transfer request that
agents)
transfers a single file counts in the same way as a transfer request that
transfers 10 files.
The agent queues transfers when the destination agent reaches the limit that
is specified by the maxDestinationTransfers property.
If the sum of the following agent property values: maxSourceTransfers +
maxDestinationTransfers + maxQueuedTransfers exceeds the value of the
MAXDEPTH setting of the state store queue (SYSTEM.FTE.STATE.agent name),
the agent does not start.
maxFilesForTransfer The maximum number of transfer items that are allowed for a single managed 5000
transfer. If a managed transfer contains more items than the value of
maxFilesForTransfer, the managed transfer fails and no transfer items are
processed.
Setting this property prevents you from accidentally transferring too many
files because of a bad transfer request, for example, if a user accidentally
specifies the transfer of the root directory / on a UNIX system.
maxSourceTransfers The maximum number of concurrent transfers that the source agent 25 (for all agents except
processes at any point in time. Each transfer request that is submitted to an Connect:Direct bridge agents)
agent counts against this total regardless of the number of files that are
5 (for Connect:Direct bridge
transferred to satisfy the request. This means that a transfer request that
agents)
transfers a single file counts in the same way as a transfer request that
transfers 10 files.
The source agent queues transfers when the destination agent reaches the
limit that is specified by the maxSourceTransfers property.
If the sum of the following agent property values: maxSourceTransfers +
maxDestinationTransfers + maxQueuedTransfers exceeds the value of the
MAXDEPTH setting of the state store queue (SYSTEM.FTE.STATE.agent name),
the agent does not start.
maxQueuedTransfers The maximum number of pending transfers that can be queued by an agent 1000
until the agent rejects a new transfer request. You can set this property so
that despite of the limits of maxDestinationTransfers and maxSourceTransfers
being met or exceeded, any new transfer requests that you make now are
accepted, queued and then carried out later.
The order that queued transfer requests are processed in is a factor of their
priority and how long they have been queued. Old and high priority pending
transfers are selected first. Transfers with a low priority that have been on the
queue for a long time are selected in preference to newer, higher priority
transfers.
If the sum of the following agent property values: maxSourceTransfers +
maxDestinationTransfers + maxQueuedTransfers exceeds the value of the
MAXDEPTH setting of the state store queue (SYSTEM.FTE.STATE.agent name),
the agent does not start.
Set amount of time, in seconds, during which a source agent keeps trying to -1
recover a stalled file transfer.
transferRecoveryTimeout
When the property is not set, the default behavior of the agent is to keep
retrying until it successfully recovers the transfer. You can set the following
values for the transfer recovery timeout property:
-1
The agent continues to attempt to recover the stalled transfer until the
transfer is complete. Using this option is the equivalent of the default
behavior of the agent when the property is not set.
0
The agent stops the file transfer as soon as it enters recovery.
>0
The agent continues to attempt to recover the stalled transfer for the
amount of time in seconds as set by the positive integer value specified.
For example, transferRecoveryTimeout=21600 indicates that the
agent keeps trying to recover the transfer for 6 hours from when it enters
recovery. Maximum value for this parameter is 999999999.
agentForceConsistentPathDelimiters Force the path delimiter in the source file and destination file information that false
is provided to the transfer exits to be the UNIX style: forward slash (/). Valid
options are true and false.
exitClassPath Specifies a platform-specific, character-delimited list of directories that act as Agent's exits directory
the class path for user exit routines.
The agent exit directory is searched before any entries in this class path.
exitNativeLibraryPath Specifies a platform-specific, character-delimited list of directories that act as Agent's exits directory
the native library path for user exit routines.
ioMaxRecordLength The maximum record length, in bytes, that can be supported for a record- 64 KB
oriented file. Managed File Transfer can support writing to record-oriented
files with any record length. However, large record lengths might cause out-of-
memory errors, so to avoid these errors the maximum record length is
restricted by default to 64 K. When reading from record-oriented files an
entire record must fit into a single transfer chunk, therefore the record length
is additionally limited by the transfer chunk size. This property is used only for
I/O user exit record-oriented files.
monitorExitClasses Specifies a comma-separated list of classes that implement a monitor exit No default
routine. For more information, see “MFT resource monitor user exits” on page
853.
protocolBridgeCredentialExitClasses Specifies a comma-separated list of classes that implement a protocol bridge No default.
credential user exit routine. For more information, see “Mapping credentials
for a file server by using exit classes” on page 229.
sourceTransferEndExitClasses Specifies a comma-separated list of classes that implement a source transfer No default
end exit routine.
sourceTransferStartExitClasses Specifies a comma-separated list of classes that implement a source transfer No default
start exit routine.
IOExitClasses Specifies a comma-separated list of classes that implement an I/O user exit No default.
routine. List only the classes that implement the IOExit interface, that is, do
not list classes that implement the other I/O user exit interfaces, for example
IOExitResourcePath and IOExitChannel. For more information, see “Using
MFT transfer I/O user exits” on page 262.
z/OS-specific:
adminGroup=MFTADMIN
Managed File Transfer uses the BPXWDYN text interface to create and open Default is as follows:
z/OS data sets. When BPXWDYN is used for data set allocation by default
bpxwdynAllocAdditionalOptions • MOUNT for z/OS V1R8 and
Managed File Transfer ensures, when possible, the data device is mounted
later
(not required for disk-based data sets but is required for tape data sets).
Because the options might not be supported for certain environments, use
this property to change this behavior. Also when transferring to a data set it is
also possible to specify options for BPXWDYN on the command line; these
options are in addition to those options specified by this property.
Some BPXWDYN options must not be specified when using the
bpxwdynAllocAdditionalOptions property in the agent.properties
file. For a list of these properties, see “BPXWDYN properties you must not use
with MFT” on page 625.
Optional property. If the agent is configured for restart by the Automatic Not set
Restart Manager (ARM), then set this property to the ARM ELEMTYPE
armELEMTYPE parameter value specified in the associated ARM policy. For an agent, set
ELEMTYPE to SYSBFGAG.
Optional property. If the agent is configured for restart by the Automatic Not set
Restart Manager (ARM), then set this property to the ARM ELEMENT
armELEMENT parameter value specified in the associated ARM policy. You can set the
ELEMENT value to correspond to the agent name.
Other properties:
Managed File Transfer XML messages that are generated by the agent (for false
example, log and transfer progress messages), are now sent to a queue with a
legacyXMLMessageMQMDFormat blank MQMD format field. Previous versions of the product set the MQMD
format field to MQSTR (a text message string). Setting this property to true
enables the Managed File Transfer XML messages generated by the agent to
be sent to a queue with MQMD format field of MQSTR.
Note: Agent reply messages to commands will be sent with a message format
matching the corresponding command request.
If the MQMD format field is set to MQSTR, there is potential for Managed File
Transfer command XML messages to be corrupted if there are channels in the
MQ network with data conversion enabled.
Related concepts
“MFT configuration options on Multiplatforms” on page 68
Managed File Transfer provides a set of properties files that contain key information about your setup and
are required for operation. These properties files are in the configuration directory that you defined when
you installed the product.
“Timeout option for file transfers in recovery” on page 250
You can set the amount of time, in seconds, during which a source agent keeps trying to recover a stalled
file transfer. If the transfer is not successful when the agent reaches the timeout for the retry interval, the
transfer fails.
“MFT sandboxes” on page 57
You can restrict the area of the file system that the agent can access as part of a transfer. The area that
the agent is restricted to is called the sandbox. You can apply restrictions to either the agent or to the user
that requests a transfer.
Related reference
“Java system properties for MFT” on page 591
A number of Managed File Transfer command and agent properties must be defined as Java system
properties, because they define configuration for early function that is unable to use the command or
agent properties mechanism.
“SSL properties for MFT” on page 591
Use SSL or TLS withIBM MQ and Managed File Transfer to prevent unauthorized connections between
agents and queue managers, and to encrypt message traffic between agents and queue managers.
“fteCreateAgent: create an MFT agent” on page 383
The fteCreateAgent command creates a Managed File Transfer Agent and its associated configuration.
“fteCreateBridgeAgent (create and configure an MFT protocol bridge agent)” on page 386
The fteCreateBridgeAgent command creates a Managed File Transfer protocol bridge agent and its
associated configuration. Create a protocol bridge agent for each file server that you want to send files to
and receive files from.
“fteCreateCDAgent: create a Connect:Direct bridge agent” on page 395
The fteCreateCDAgent command creates a Managed File Transfer Agent and its associated configuration
for use with the Connect:Direct bridge.
“The use of environment variables in MFT properties” on page 522
From IBM WebSphere MQ 7.5, it is possible for environment variables to be used in Managed File Transfer
properties that represent file or directory locations. This allows the locations of files or directories used
Procedure
1. Define a cluster-receiver channel for each channel that you want to use. For example, if you are using
two channels:
where:
• DESTQMGRNAME is the name of the queue manager of the destination agent.
• MFTCLUSTER is the name of the IBM MQ cluster.
You are recommended to use the MFTCLUSTER.DESTMGRNAME_n naming convention for channels, but
this convention is not mandatory.
2. Define a queue manager alias corresponding to each channel. For example:
You must use the SYSTEM.FTE.DESTQMGRNAME_n naming convention for queue manager aliases
because the sending agent searches for queue manager aliases of this format. The numbers that you
use for n must start at 1 and be consecutive. You must make the definitions cluster-wide so that they
are available on the source agent's queue manager.
For both the source agent and destination agent to correctly determine the number of queue manager
aliases, do not define a default XMITQ for the queue manager.
Related concepts
“Configuring MFT for first use” on page 104
You must perform some configuration tasks for Managed File Transfer agents and queue managers once,
the first time you want to use them.
Related reference
“The MFT agent.properties file” on page 537
Procedure
1. On the destination agent's queue manager, define a receiver channel for each channel that you want to
use. For example, if you are using two channels:
where: DESTQMGRNAME is the name of the queue manager of the destination agent.
You are recommended to use the TO.DESTMGRNAME_n naming convention for channels, but this
convention is not mandatory. The receiver channel names must match the corresponding sender
channels on the source agent's queue manager.
2. On the source agent's queue manager, define a transmission queue for each channel that you want to
use. For example, if you are using two channels:
You are recommended to use the DESTMGRNAME_n naming convention for transmission queues, but
this convention is not mandatory. The transmission queues you define are referenced from the sender
channel definitions and the queue manager alias definitions in the following steps.
3. On the source agent's queue manager, define a sender channel for each channel that you want to use.
For example, if you are using two channels:
You are recommended to use the TO.DESTMGRNAME_n naming convention for the channels, but this
convention is not mandatory. The sender channel names must match the corresponding receiver
channels on the destination agent's queue manager.
4. On the source agent's queue manager, define a queue manager alias corresponding to each channel.
For example:
Default
Key name Description value
com.ibm.wmqfte.insertRecordLineSeparator For text transfers. When this key is set to true, specifies that when true
reading record-oriented files, such as z/OS data sets, line separators are
to be inserted between records.
When this key is set to false, specifies that when reading record-oriented
files, line separators are not to be inserted between records.
com.ibm.wmqfte.newRecordOnLineSeparator For text transfers. When this key is set to true, specifies that when true
writing to record-oriented files, such as z/OS data sets, that line
separators indicate a new record and are not written as part of the data.
When this key is set to false, specifies that when writing to record-
oriented files that line separators are to be treated like any other
character (that is, no record breaks).
com.ibm.wmqfte.convertLineSeparators For text transfers. Specifies whether the line separator sequences CRLF true
and LF are converted to the required line separator sequence for the
destination. This conversion currently only takes effect for the following
cases:
1. If the user-defined metadata key
com.ibm.wmqfte.newRecordOnLineSeparator is set to false and the
transfer is to a record-oriented file.
2. If the user-defined metadata key
com.ibm.wmqfte.com.ibm.wmqfte.insertRecordLineSeparator is set
to false and the transfer is from a record-oriented file.
Related information
“Table 41” on page 539
fteCreateTransfer -md parameter
Configuration files
The following XML configuration files can be used to specify additional information used by the agent:
<tns:agent name="agent2">
<tns:server name="server*" pattern="wildcard">
<tns:user name="fred" serverPassword="pwd" serverUserId="bill"/>
<tns:user name="jane" serverUserId="june" hostKey="1F:2e:f3">
<tns:privateKey associationName="test" keyPassword="pwd2">
.... private key ...
</tns:privateKey>
</tns:user>
</tns:server>
</tns:agent>
<tns:agent name="agent3">
<tns:serverHost name="ftpsServer"
keyStorePassword="keypass"
trustStorePassword="trustpass">
<tns:user name="fred" serverPassword="pwd" serverUserId="bill"/>
</tns:serverHost>
</tns:agent>
</tns:credentials>
-->
<complexType name="credentialsType">
<sequence>
<element name="agent" type="tns:agentType" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</complexType>
<complexType name="agentType">
<choice minOccurs="0" maxOccurs="1">
<element name="serverHost" type="tns:serverHostType" minOccurs="0" maxOccurs="unbounded"/>
<element name="server" type="tns:serverType" minOccurs="0" maxOccurs="unbounded"/>
</choice>
<attribute name="name" type="string" use="required"/>
</complexType>
<complexType name="serverHostType">
<sequence>
<element ref="tns:user" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
<attribute name="name" type="string" use="required"/>
<attribute name="keyStorePassword" type="string" use="optional"/>
<attribute name="keyStorePasswordCipher" type="string" use="optional"/>
<attribute name="trustStorePassword" type="string" use="optional"/>
<attribute name="trustStorePasswordCipher" type="string" use="optional"/>
</complexType>
<complexType name="serverType">
<sequence>
<element ref="tns:user" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
<attribute name="name" type="string" use="required"/>
<attribute name="pattern" type="tns:patternType" use="optional"/>
<attribute name="keyStorePassword" type="string" use="optional"/>
<attribute name="keyStorePasswordCipher" type="string" use="optional"/>
<attribute name="trustStorePassword" type="string" use="optional"/>
<attribute name="trustStorePasswordCipher" type="string" use="optional"/>
</complexType>
<complexType name="userType">
<sequence>
<complexType name="privateKeyType">
<simpleContent>
<extension base="string">
<attribute name="keyPassword" type="string" use="optional"/>
<attribute name="keyPasswordCipher" type="string" use="optional"/>
<attribute name="associationName" type="string" use="required"/>
</extension>
</simpleContent>
</complexType>
<!--
Determines the type of pattern matching to use.
-->
<simpleType name="patternType">
<restriction base="string">
<enumeration value="regex"/>
<enumeration value="wildcard"/>
</restriction>
</simpleType>
</schema>
Schema - 7.0.4
The schema for 7.0.4.1 and later, and the schema for 7.0.4 and earlier, are available here: Protocol bridge
credentials file format
<agent>
Element containing a <server> or <serverHost> definition for a named agent.
<server>
The protocol server that the protocol bridge connects to.
The <server> element is not supported for 7.0.4 or earlier.
Attribute Description
name The name of the protocol server.
pattern If you have used wildcards or regular expressions to specify the
pattern of a protocol server name, use either wildcard or regex.
<serverHost>
The host name of the protocol server that the protocol bridge connects to.
The ProtocolBridgeCredentials.xml file can either contain <serverHost> elements or <server>
elements but you cannot use a mixture of the two different types. When you use <serverHost>, the
name is matched against the protocol server's host name. When you use <server>, the name is
matched against the protocol server's name (as defined in the ProtocolBridgeProperties.xml
file).
Attribute Description
name The host name or IP address of the protocol server.
trustStorePassword or Required when the <serverHost> element refers to an FTPS
trustStorePasswordCipher server. The password used to access the truststore. If the
fteObfuscate command has been used then the cipher version
of the attribute must be used.
keyStorePassword or Optional. The password used to access the keystore. This property
keyStorePasswordCipher is optional unless you set the keyStore attribute, in which case it is
required. If the fteObfuscate command has been used then the
cipher version of the attribute must be used.
<user>
A user mapping from a Managed File Transfer user name to a protocol server user name.
Attribute Description
name The user name that is used with Managed File Transfer.
serverUserId or The user name that is used with the protocol server. If the
serverUserIdCipher fteObfuscate command has been used then the cipher version of
the attribute must be used.
serverPassword or The password for the user name used on the protocol server. If the
serverPasswordCipher fteObfuscate command has been used then the cipher version of
the attribute must be used.
hostKey The server host SSH fingerprint.
<privateKey>
The private key of a user.
Attribute Description
keyPassword or The password for the private key. If the fteObfuscate
keyStorePasswordCipher command has been used then the cipher version of the attribute
must be used.
associationName A name used for trace and logging.
Schema
The following schema describes the ProtocolBridgeProperties.xml file.
Note: The maxReconnectRetry and reconnectWaitPeriod attributes are not supported on IBM WebSphere
MQ 7.5, or on IBM WebSphere MQ File Transfer Edition 7.0.2, or later.
<!--
Example: ProtocolBridgeProperties.xml
<!--
A container for all protocol bridge server properties
-->
<complexType name="serverPropertiesType">
<sequence>
<element name="credentialsFile" type="tns:credentialsFileName" minOccurs="0" maxOccurs="1"/>
<element name="defaultServer" type="tns:serverName" minOccurs="0" maxOccurs="1"/>
<choice minOccurs="0" maxOccurs="unbounded">
<element name="ftpServer" type="tns:ftpServerType"/>
<element name="sftpServer" type="tns:sftpServerType"/>
<element name="ftpsServer" type="tns:ftpsServerType"/>
<element name="ftpsfgServer" type="tns:ftpsfgServerType"/>
<element name="ftpssfgServer" type="tns:ftpssfgServerType"/>
</choice>
</sequence>
</complexType>
<!--
A container for a server name
-->
<complexType name="serverName">
<attribute name="name" type="tns:serverNameType" use="required"/>
</complexType>
<!--
A container for a credentials file name
-->
<complexType name="credentialsFileName">
<!--
A container for all the information about an FTP server
-->
<complexType name="ftpServerType">
<sequence>
<element name="limits" type="tns:generalLimitsType" minOccurs="0" maxOccurs="1" />
</sequence>
<attributeGroup ref="tns:ftpServerAttributes"/>
<attribute name="passiveMode" type="boolean" use="optional"/>
</complexType>
<!--
A container for all the information about an SFG FTP server
-->
<complexType name="ftpsfgServerType">
<sequence>
<element name="limits" type="tns:generalLimitsType" minOccurs="0" maxOccurs="1" />
</sequence>
<attributeGroup ref="tns:ftpServerAttributes"/>
</complexType>
<!--
A container for all the information about an SFTP server
-->
<complexType name="sftpServerType">
<sequence>
<element name="limits" type="tns:sftpLimitsType" minOccurs="0" maxOccurs="1" />
</sequence>
<attributeGroup ref="tns:sftpServerAttributes"/>
</complexType>
<!--
A container for all the information about a FTPS server
-->
<complexType name="ftpsServerType">
<sequence>
<element name="limits" type="tns:generalLimitsType" minOccurs="0" maxOccurs="1" />
</sequence>
<attributeGroup ref="tns:ftpsServerAttributes"/>
</complexType>
<!--
A container for all the information about a SFG FTPS server
-->
<complexType name="ftpssfgServerType">
<sequence>
<element name="limits" type="tns:generalLimitsType" minOccurs="0" maxOccurs="1" />
</sequence>
<attributeGroup ref="tns:ftpsServerAttributes"/>
</complexType>
<!--
Attributes common to all server types
-->
<attributeGroup name="generalServerAttributes">
<attribute name="name" type="tns:serverNameType" use="required"/>
<attribute name="host" type="string" use="required"/>
<attribute name="port" type="nonNegativeInteger" use="optional"/>
<attribute name="platform" type="tns:platformType" use="required"/>
<attribute name="fileEncoding" type="string" use="required"/>
<attribute name="limitedWrite" type="boolean" use="optional"/>
<attribute name="controlEncoding" type="string" use="optional"/>
</attributeGroup>
<!--
Attributes common to ftp and ftps server types
-->
<attributeGroup name="ftpServerAttributes">
<attributeGroup ref="tns:generalServerAttributes"/>
<attribute name="timeZone" type="string" use="required"/>
<attribute name="locale" type="tns:localeType" use="required"/>
<attribute name="listFormat" type="tns:listFormatType" use="optional"/>
<attribute name="listFileRecentDateFormat" type="tns:dateFormatType" use="optional"/>
<attribute name="listFileOldDateFormat" type="tns:dateFormatType" use="optional"/>
<attribute name="monthShortNames" type="tns:monthShortNamesType" use="optional"/>
</attributeGroup>
<!--
<!--
A container for limit-type attributes for a server. Limit parameters
are optional, and if not specified a system default will be used.
-->
<complexType name="generalLimitsType">
<attributeGroup ref="tns:generalLimitAttributes"/>
</complexType>
<complexType name="sftpLimitsType">
<attributeGroup ref="tns:generalLimitAttributes"/>
<attribute name="connectionTimeout" type="nonNegativeInteger" use="optional"/>
</complexType>
<!--
Attributes for limits common to all server types
-->
<attributeGroup name="generalLimitAttributes">
<attribute name="maxListFileNames" type="positiveInteger" use="optional"/>
<attribute name="maxListDirectoryLevels" type="nonNegativeInteger" use="optional"/>
<attribute name="maxReconnectRetry" type="nonNegativeInteger" use="optional"/>
<attribute name="reconnectWaitPeriod" type="nonNegativeInteger" use="optional"/>
<attribute name="maxSessions" type="positiveInteger" use="optional"/>
<attribute name="socketTimeout" type="nonNegativeInteger" use="optional"/>
</attributeGroup>
<!--
The type for matching valid server names. Server names must be at least 2 characters in length
and
are limited to alphanumeric characters and the following characters: ".", "_", "/" and "%".
-->
<simpleType name="serverNameType">
<restriction base="string">
<pattern value="[0-9a-zA-Z\._/%]{2,}"/>
</restriction>
</simpleType>
<!--
The types of platform supported.
-->
<simpleType name="platformType">
<restriction base="string">
</restriction>
</simpleType>
<!--
The type for matching a locale specification.
-->
<simpleType name="localeType">
<restriction base="string">
<pattern value="(..)[-_](..)"/>
</restriction>
</simpleType>
<!--
The types of list format supported (for FTP servers).
-->
<simpleType name="listFormatType">
<restriction base="string">
</restriction>
</simpleType>
<!--
Date format for FTP client directory listing on an FTP server. This is
the format to be passed to methods setDefaultDateFormatStr and
setRecentDateFormatStr for Java class:
org.apache.commons.net.ftp.FTPClientConfig
<!--
A list of language-defined short month names can be specified. These are
used for translating the directory listing received from the FTP server.
The format is a string of three character month names separated by "|"
-->
<simpleType name="monthShortNamesType">
<restriction base="string">
<pattern value="(...\|){11}(...)"/>
</restriction>
</simpleType>
<!--
The enumerations of the allowed FTPS types: "implicit" & "explicit"
If not specified the default is "explicit"
-->
<simpleType name="ftpsTypeType">
<restriction base="string">
<enumeration value="explicit"/>
<enumeration value="implicit"/>
</restriction>
</simpleType>
<!--
Attribute Group for SFTP Servers
-->
<attributeGroup name="sftpServerAttributes">
<attributeGroup ref="tns:generalServerAttributes"/>
<attribute name="cipherList" type="string" use="optional"/>
</attributeGroup>
</schema>
General server attributes that apply to all types of protocol file server:
Attribute Description
name Required. The name of the protocol file server. Protocol server names must be at
least two characters in length, are not case-sensitive, and are limited to
alphanumeric characters and the following characters:
• period (.)
• underscore (_)
host Required. The host name or IP address of the protocol file server that you want to
send files to or receive files from.
port Optional. The port number of the protocol file server that you want to send files to
or receive files from.
platform Required. The platform of the protocol file server that you want to send files to or
receive files from. Specify either UNIX or WINDOWS.Set this property according to
how you enter paths on your FTP, FTPS, or SFTP server. For example, if you are
running an FTP server on Windows but when you log in to the server, you must
enter UNIX-style paths (that is, with forward slashes), set this value to UNIX and
not WINDOWS. Servers running on Windows often present a UNIX-style file system.
fileEncoding Required. Defines the character encoding that is used by the file server. This
property is used when you transfer files in text mode so that the correct encoding
sequences are changed when the files are moved between platforms. For
example, UTF-8.
limitedWrite Optional. The default mode when writing to a file server is to create a temporary
file and then rename that file when the transfer has completed. For a file server
that is configured as write only, the file is created directly with its final name. The
value of this property can be true or false. The default is false.
controlEncoding Optional. The control encoding value for control messages being sent to the
protocol file server. This property affects the encoding of the file name that is used
and must be compatible with the control encoding of the protocol file server. The
default is UTF-8.
Attribute Description
timeZone Required. The time zone of the protocol file server that you want to send
files to or receive files from. For example: America/New_York or Asia/
Tokyo.
locale Required. The language that is used on the protocol file server that you
want to send files to or receive files from. For example: en_US or ja_JP
listFormat Optional. The listing format that defines the format of the file-listed
information that is returned from the protocol file server. Use either
Windows or UNIX. The default is UNIX.
listFileRecentDateFormat Optional. The recent date format (less than a year) for FTP client
directory listing on an FTP server. This attribute and the
listFileOldDateFormat attribute allow you to redefine the expected date
formats that are returned by the protocol file server. The default is as
defined by the protocol file server.
listFileOldDateFormat Optional. The old date format (more than a year) for FTP client directory
listing on an FTP server. This attribute and the listFileRecentDateFormat
attribute allow you to redefine the expected date formats that are
returned by the protocol file server. The default is as defined by the
protocol file server.
Attribute Description
passiveMode Optional. Controls whether the connection to the FTP server is passive or active.
If you set the value of this property to false, the connection is active. If you set the
value to true, the connection is passive. The default is false.
Attribute Description
ftpsType Optional. Specifies whether the explicit or implicit form of the FTPS protocol is used.
The default is explicit.
trustStore Required. The location of the truststore that is used to determine whether the
certificate presented by the FTPS server is trusted.
trustStoreType Optional. The format of the truststore file. The default is JKS.
keyStore Optional. The location of the keystore that is used to provide certificate information
if challenged by the FTPS server. The default is for the protocol bridge to not be able
to connect to FTPS servers that are configured to require the authentication of
clients.
keyStoreType Optional. The format of the keystore file. The default is JKS.
ccc Optional. Selects whether a clear (unencrypted) command channel is used when
authentication has completed. The default value is false, which means that the
command channel remains encrypted for the entire duration of the FTPS session.
This attribute is applicable only when the ftpsType is set to explicit.
protFirst Optional. Specifies whether the USER/PASS commands are issued to the FTPS
server before or after the PBSZ/PROT commands. The default value is false, which
means USER/PASS commands are sent first followed by PBSZ/PROT commands.
This attribute is applicable only when the ftpsType is set to explicit.
auth Optional. Specifies the protocol that is specified as part of the AUTH command. A
specified protocol will be tried first, then the default is to try TLS, SSL, TLS-C, or
TLS-P until the FTPS server does not reject with a 504 reply code. This attribute is
applicable only when the ftpsType is set to explicit.
<limits>
Container element for attributes that are common to all types of server and for attributes that
are specific to a type of server:
General limit attributes that apply to all types of protocol file server:
Attribute Description
maxListFileNames Optional. The maximum number of names that are collected when
scanning a directory on the protocol file server for file names. The
default is 999999999.
maxSessions Optional. The maximum number of sessions for the protocol server.
This number must be greater than or equal to the sum of the maximum
number of source and destination transfers for the protocol bridge
agent. The default is the sum of the values for the agent properties
maxSourceTransfers, maxDestinationTransfers, and
maxCommandHandlerThreads, plus 1. If these three properties are
using their default values of 25, 25, and 5, the maxSessions default is
then 56.
socketTimeout Optional. The socket timeout in seconds. The value of this attribute is
used during file streaming. The default is 30 seconds.
Attribute Description
connectionTimeout Optional. The time, in seconds, to wait for a response from the protocol file
server to a connection request. A timeout indicates that the protocol file server
is not available. The default value is 30 seconds.
cipherList Optional. Specifies a comma-separated list of ciphers that are used to
communicate between the protocol bridge agent and the SFTP server. The
ciphers are called in the order that they are specified in this list. The cipher
must be available on the server and the client before it can be used.
The ciphers that the protocol bridge agent supports are as follows:
• blowfish-cbc
• 3des-cbc
• aes128-cbc
• aes192-cbc
• aes256-cbc
• aes128-ctr
• aes192-ctr
• aes256-ctr
• 3des-ctr
• arcfour
• arcfour128
• arcfour256
By default, the list of ciphers used by protocol bridge agents is aes128-
cbc,aes192-cbc,aes256-cbc.
Schema
The following schema describes which elements are valid in the ConnectDirectCredentials.xml file.
<!--
This schema defines the format of the XML file that is located in the agent properties
directory of a Connect:Direct bridge agent. The XML file ConnectDirectCredentials.xml
is used by the default credential validation of the Connect:Direct bridge.
For more information, see the WebSphere MQ InfoCenter
-->
<schema targetNamespace="http://wmqfte.ibm.com/ConnectDirectCredentials"
elementFormDefault="qualified"
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://wmqfte.ibm.com/ConnectDirectCredentials"
<!--
<?xml version="1.0" encoding="UTF-8"?>
<tns:credentials xmlns:tns="http://wmqfte.ibm.com/ConnectDirectCredentials"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://wmqfte.ibm.com/ConnectDirectCredentials
ConnectDirectCredentials.xsd">
<tns:agent name="CDAGENT01">
<tns:pnode name="cdnode*" pattern="wildcard">
<tns:user name="MUSR_.*"
ignorecase="true"
pattern="regex"
cdUserId="bob"
cdPassword="passw0rd"
pnodeUserId="bill"
pnodePassword="alacazam">
<tns:snode name="cdnode2" pattern="wildcard" userId="sue" password="foo"/>
</tns:user>
</tns:pnode>
</tns:agent>
</tns:credentials>
-->
<complexType name="credentialsType">
<sequence>
<element name="agent" type="tns:agentType" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
<complexType name="agentType">
<sequence>
<element name="pnode" type="tns:pnodeType" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
<attribute name="name" type="string" use="required"/>
</complexType>
<complexType name="pnodeType">
<sequence>
<element name="user" type="tns:userType" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
<attribute name="name" type="string" use="required"/>
<attribute name="pattern" type="tns:patternType" use="optional"/>
</complexType
<complexType name="userType">
<sequence>
<element name="snode" type="tns:snodeType" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
<attribute name="name" type="string" use="required"/>
<attribute name="ignorecase" type="boolean" use="optional"/>
<attribute name="pattern" type="tns:patternType" use="optional"/>
<attribute name="cdUserId" type="string" use="optional"/>
<attribute name="cdUserIdCipher" type="string" use="optional"/>
<attribute name="cdPassword" type="string" use="optional"/>
<attribute name="cdPasswordCipher" type="string" use="optional"/>
<attribute name="pnodeUserId" type="string" use="optional"/>
<attribute name="pnodeUserIdCipher" type="string" use="optional"/>
<attribute name="pnodePassword" type="string" use="optional"/>
<attribute name="pnodePasswordCipher" type="string" use="optional"/>
</complexType>
<complexType name="snodeType"
<attribute name="name" type="string" use="required"/>
<attribute name="pattern" type="tns:patternType" use="optional"/>
<attribute name="userId" type="string" use="optional"/>
<attribute name="userIdCipher" type="string" use="optional"/>
<attribute name="password" type="string" use="optional"/>
<attribute name="passwordCipher" type="string" use="optional"/>
</complexType>
<simpleType name="patternType">
<restriction base="string">
<enumeration value="regex"/>
<enumeration value="wildcard"/>
</restriction>
</simpleType>
</schema>
Attribute Description
name The name of the Connect:Direct node. The value of this attribute can be a pattern that
matches many node names.
pattern Specifies the type of pattern that is used for the value of the name attribute. Valid values
for the pattern attribute are
<user>
The IBM MQ user that submits the transfer request.
Attribute Description
name The user name that is used with Managed File Transfer. The value of
this attribute can be a pattern that matches many user names.
ignorecase Specifies whether the case of the name is ignored. Valid values for the
ignorecase attribute are
• true - the name is not case sensitive
• false - the name is case sensitive
pattern Specifies the type of pattern that is used for the value of the name
attribute. Valid values for the pattern attribute are
• wildcard - wildcards are used
• regex - Java regular expressions are used
cdUserId or The user name that is used by the Connect:Direct bridge to connect to
cdUserIdCipher its associated Connect:Direct node. If the fteObfuscate command
has been used then the cipher version of the attribute must be used.
cdPassword or The password associated with the user name specified by the cdUserId
cdPasswordCipher attribute. If the fteObfuscate command has been used then the
cipher version of the attribute must be used.
pnodeUserId or The user name that is used by the Connect:Direct primary node. If the
pnodeUserIdCipher fteObfuscate command has been used then the cipher version of
the attribute must be used.
pnodePassword or The password associated with the user name specified by the
pnodePasswordCipher pnodeUserId attribute. If the fteObfuscate command has been used
then the cipher version of the attribute must be used.
<snode>
The Connect:Direct node that performs the role of secondary node (SNODE) during the Connect:Direct
file transfer.
Attribute Description
name The name of the Connect:Direct node. The value of this attribute can be a
pattern that matches many node names.
pattern Specifies the type of pattern that is used for the value of the name attribute.
Valid values for the pattern attribute are
• wildcard - wildcards are used
• regex - Java regular expressions are used
userId or The user name used to connect to this node during a file transfer. If the
userIdCipher fteObfuscate command has been used then the cipher version of the
attribute must be used.
Example
In this example, the Connect:Direct bridge agent connects to the Connect:Direct node pnode1. When an
IBM MQ user with the user name beginning with the prefix fteuser followed by a single character, for
example fteuser2, requests a transfer involving the Connect:Direct bridge, the Connect:Direct bridge
agent will use the user name cduser and the password passw0rd to connect to the Connect:Direct node
pnode1. When the Connect:Direct node pnode1 performs its part of the transfer it uses the user name
pnodeuser and the password passw0rd1.
If the secondary node in the Connect:Direct transfer has a name that begins with the prefix FISH, the
node pnode1 uses the user name fishuser and the password passw0rd2 to connect to the secondary
node. If the secondary node in the Connect:Direct transfer has a name that begins with the prefix CHIPS,
the node pnode1 uses the user name chipsuser and the password passw0rd3 to connect to the
secondary node.
<tns:credentials xmlns:tns="http://wmqfte.ibm.com/ConnectDirectCredentials"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://wmqfte.ibm.com/ConnectDirectCredentials
ConnectDirectCredentials.xsd">
<tns:agent name="CDAGENT01">
<tns:pnode name="pnode1" pattern="wildcard">
<tns:user name="fteuser?" pattern="wildcard" ignorecase="true"
cdUserId="cduser" cdPassword="passw0rd"
pnodeUserId="pnodeuser" pnodePassword="passw0rd1">
<tns:snode name="FISH*" pattern="wildcard"
userId="fishuser" password="passw0rd2"/>
<tns:snode name="CHIPS*" pattern="wildcard"
userId="chipsuser" password="passw0rd3"/>
</tns:user>
</tns:pnode>
</tns:agent>
</tns:credentials>
Schema
The following schema describes which elements are valid in the ConnectDirectNodeProperties.xml
file.
<schema targetNamespace="http://wmqfte.ibm.com/ConnectDirectNodeProperties"
elementFormDefault="qualified"
xmlns="http://www.w3.org/2001/XMLSchema"
<complexType name="nodePropertiesType">
<sequence>
<element name="credentialsFile" type="tns:credentialsFileName" minOccurs="0" maxOccurs="1"/>
<element name="node" type="tns:nodeType" minOccurs="0" maxOccurs="unbounded"></element>
</sequence>
</complexType>
<complexType name="nodeType">
<attribute name="name" type="string" use="required"/>
<attribute name="pattern" type="tns:patternType" use="optional"/>
<attribute name="type" type="string" use="required"/>
</complexType>
<simpleType name="patternType">
<restriction base="string">
<enumeration value="regex"/>
<enumeration value="wildcard"/>
</restriction>
</simpleType>
</schema>
Attribute Description
name A pattern that identifies the names of Connect:Direct nodes that use the definitions
specified by the node element. Pattern matching is not case sensitive.
pattern Specifies the type of pattern that is used for the value of the name attribute. Valid values
for the pattern attribute are:
• wildcard - wildcards are used
• regex - Java regular expressions are used
For information about the types of regular expressions used by MFT, see “Regular
expressions used by MFT” on page 639.
type Specifies the operating system type of the Connect:Direct node or nodes that match the
pattern given by the name attribute. Valid values for the type attribute are:
• Windows - the node runs on Windows
• UNIX - the node runs on UNIX or Linux
Example
In this example, the Connect:Direct credentials filename is specified as
ConnectDirectCredentials.xml. The example code specifies the following platform connections:
<tns:credentialsFile path="ConnectDirectCredentials.xml"/>
<tns:node name="cdnodew*" pattern="wildcard" type="windows"/>
<tns:node name="cdnodeu.*" pattern="regex" type="unix"/>
<tns:node name="cdnodez*" pattern="wildcard" type="zos"
<tns:node name="*" pattern="wildcard" type="unix"/>
</tns:nodeProperties>
Schema
The following schema describes which elements are valid in the
ConnectDirectProcessDefinitions.xml file.
<schema targetNamespace="http://wmqfte.ibm.com/ConnectDirectProcessDefinitions"
elementFormDefault="qualified"
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://wmqfte.ibm.com/ConnectDirectProcessDefinitions">
<complexType name="cdprocessType">
<sequence>
<element name="processSet" type="tns:processSetType"
minOccurs="0" maxOccurs="unbounded"></element>
</sequence>
</complexType>
<complexType name="processSetType">
<sequence>
<element name="condition" type="tns:conditionType"
minOccurs="0" maxOccurs="1"/>
<element name="process" type="tns:processType"
minOccurs="1" maxOccurs="1"/>
</sequence>
</complexType>
<complexType name="conditionType">
<choice minOccurs="0" maxOccurs="unbounded">
<complexType name="matchType">
<attribute name="variable" type="string" use="required"/>
<attribute name="value" type="string" use="required"/>
<attribute name="pattern" type="tns:patternType" use="optional"/>
</complexType>
<complexType name="definedType">
<attribute name="variable" type="string" use="required"/>
</complexType>
<complexType name="processType">
<sequence>
<element name="preTransfer" type="tns:transferType"
minOccurs="0" maxOccurs="1"/>
<element name="transfer" type="tns:transferType"
minOccurs="0" maxOccurs="1"/>
<element name="postTransferSuccess" type="tns:transferType"
minOccurs="0" maxOccurs="1"/>
<element name="postTransferFailure" type="tns:transferType"
minOccurs="0" maxOccurs="1"/>
</sequence>
</complexType>
<complexType name="transferType">
<attribute name="process" type="string" use="required"/>
</complexType>
<simpleType name="patternType">
<restriction base="string">
<enumeration value="regex"/>
<enumeration value="wildcard"/>
</restriction>
</simpleType>
</schema>
Attribute Description
variable Specifies a variable. The value of this variable is compared with the value of the value
attribute. The variable is an intrinsic symbol. For more information, see “Substitution
variables for use with user-defined Connect:Direct processes” on page 639.
value Specifies a pattern to match against the value of the variable specified by the variable
attribute.
pattern Specifies the type of pattern that is used for the value of the value attribute. Valid
values for the pattern attribute are
• wildcard - wildcards are used
defined
A condition that tests whether a variable has been defined.
Attribute Description
variable Specifies a variable. If this variable exists, the match condition is satisfied. The
variable is an intrinsic symbol. For more information, see “Substitution variables for
use with user-defined Connect:Direct processes” on page 639.
process
Group element containing the information about where to locate the Connect:Direct processes to call
when a match is found.
transfer
The Connect:Direct process to call during a transfer request.
Attribute Description
process Optional. Specifies the name of a file that contains a Connect:Direct process to call
during a transfer request. The file path is relative to the Connect:Direct bridge agent
configuration directory. This attribute is optional, the default is to use a process
generated by MFT. For IBM WebSphere MQ 7.5 or later, the value of this property can
contain environment variables. For more information, see “The use of environment
variables in MFT properties” on page 522
Example
In this example, there are three processSet elements.
The first processSet element specifies that if a transfer request has a %FTESNODE variable with a value
that matches the pattern Client* and a %FTESUSER variable with a value of Admin, the Connect:Direct
bridge agent submits the Connect:Direct process located in the agent_configuration_directory/
AdminClient.cdp as part of the transfer.
The second processSet element specifies that if a transfer request has a %FTESNODE variable with a value
that matches the pattern Client*, the Connect:Direct bridge agent submits the Connect:Direct process
located in the agent_configuration_directory/Client.cdp as part of the transfer. The
Connect:Direct bridge agent reads the processSet elements in the order that they are defined, and if it
finds a match, it uses the first match and does not look for another match. For transfer requests that
match the conditions of both the first and second processSet, the Connect:Direct bridge agent calls only
the processes specified by the first processSet.
The third processSet element has no conditions and matches all transfers. If the transfer request does not
match the conditions of the first or second processSet, the Connect:Direct bridge agent submits the
Connect:Direct process specified by the third condition. This process is located in the
agent_configuration_directory/Default.cdp as part of the transfer.
<tns:processSet>
<tns:condition>
<tns:match variable="%FTESNODE" value="Client*" pattern="wildcard"/>
<tns:match variable="%FTESUSER" value="Admin" pattern="wildcard"/>
</tns:condition>
<tns:processSet>
<tns:condition>
<tns:match variable="%FTESNODE" value="Client*" pattern="wildcard"/>
</tns:condition>
<tns:process>
<tns:transfer process="Client.cdp"/>
</tns:process>
</tns:processSet>
<tns:processSet>
<tns:process>
<tns:transfer process="Default.cdp"/>
</tns:process>
</tns:processSet>
</tns:cdprocess>
userSandboxes=true
When this property is present and set to true the agent uses the information in the MQ_DATA_PATH/
mqft/config/coordination_qmgr_name/agents/agent_name/UserSandboxes.xml file to
determine which parts of the file system the user who requests the transfer can access.
The UserSandboxes.xml XML is composed of an <agent> element that contains zero or more
<sandbox> elements. These elements describe which rules are applied to which users. The user
attribute of the <sandbox> element is a pattern that is used to match against the MQMD user of the
request.
The file UserSandboxes.xml is periodically reloaded by the agent and any valid changes to the file will
affect the behavior of the agent. The default reload interval is 30 seconds. This interval can be changed by
specifying the agent property xmlConfigReloadInterval in the agent.properties file.
If you specify the userPattern="regex" attribute or value, the user attribute is interpreted as a Java
regular expression. For more information, see “Regular expressions used by MFT” on page 639.
If you do not specify the userPattern="regex" attribute or value the user attribute is interpreted as a
pattern with the following wildcard characters:
• asterisk (*), which represents zero or more characters
• question mark (?), which represents exactly one character
Matches are performed in the order that the <sandbox> elements are listed in the file. Only the first
match is used, all following potential matches in the file are ignored. If none of the <sandbox> elements
specified in the file match the MQMD user associated with the transfer request message, the transfer
cannot access the file system. When a match has been found between the MQMD user name and a user
attribute, the match identifies a set of rules inside a <sandbox> element that are applied to the transfer.
This set of rules is used to determine which files, or data sets, can be read from or written to as part of the
transfer.
Each set of rules can specify a <read> element, which identifies which files can be read, and a <write>
element which identifies which files can be written. If you omit the <read> or <write> elements from a
<tns:read>
<tns:include name="/home/user/**"/>
<tns:include name="USER.**" type="queue"/>
<tns:exclude name="/home/user/private/**"/>
</tns:read>
The <include> and <exclude> name patterns are used by the agent to determine whether files, data
sets, or queues can be read from or written to. An operation is allowed if the canonical file path, data set,
or queue name matches at least one of the included patterns and exactly zero of the excluded patterns.
The patterns specified by using the name attribute of the <include> and <exclude> elements use the
path separators and conventions appropriate to the platform that the agent is running on. If you specify
relative file paths, the paths are resolved relative to the transferRoot property of the agent.
When specifying a queue restriction, a syntax of QUEUE@QUEUEMANAGER is supported, with the
following rules:
• If the at character (@) is missing from the entry, the pattern is treated as a queue name that can be
accessed on any queue manager. For example, if the pattern is name it is treated the same way as
name@**.
• If the at character (@) is the first character in the entry, the pattern is treated as a queue manager name
and all queues on the queue manager can be accessed. For example, if the pattern is @name it is treated
the same way as **@name..
The following wildcard characters have special meaning when you specify them as part of the name
attribute of the <include> and <exclude> elements:
*
A single asterisk matches zero or more characters in a directory name, or in a qualifier of a data set
name orqueue name.
?
A question mark matches exactly one character in a directory name, or in a qualifier of a data set
name orqueue name.
**
Two asterisk characters match zero or more directory names, or zero or more qualifiers in a data set
name orqueue name. Also, paths that end with a path separator have an implicit "**" added to the end
of the path. So /home/user/ is the same as /home/user/**.
For example:
• /**/test/** matches any file that has a test directory in its path
• /test/file? matches any file inside the /test directory that starts with the string file followed by
any single character
• c:\test\*.txt matches any file inside the c:\test directory with a .txt extension
• c:\test\**\*.txt matches any file inside the 'c:\test directory, or one of its subdirectories that
has a .txt extension
Symbolic links
You must fully resolve any symbolic links that you use in file paths in the UserSandboxes.xml file by
specifying hard links in the <include> and <exclude> elements. For example, if you have a symbolic
link where /var maps to /SYSTEM/var, you must specify this path as <tns:include name="/
SYSTEM/var"/>, otherwise the intended transfer fails with a user sandbox security error.
Example
This example shows how to allow the user with the MQMD user name guest to transfer any file from
the /home/user/public directory or any of its subdirectories on the system where the agent
AGENT_JUPITER is running, by adding the following <sandbox> element to the file
UserSandboxes.xml in AGENT_JUPITER's configuration directory:
Example
This example shows how to allow any user with the MQMD user name account followed by a single digit,
for example account4, to complete the following actions:
• Transfer any file from the /home/account directory or any of its subdirectories, excluding the /home/
account/private directory on the system where the agent AGENT_SATURN is running
• Transfer any file to the /home/account/output directory or any of its subdirectories on the system
where the agent AGENT_SATURN is running
• Read messages from queues on the local queue manager starting with the prefix ACCOUNT. unless it
starts with ACCOUNT.PRIVATE. (that is has PRIVATE at the second level).
• Transfer data onto queues starting with the prefix ACCOUNT.OUTPUT. on any queue manager.
To allow a user with the MQMD user name account to complete these actions, add the following
<sandbox> element to the file UserSandboxes.xml, in AGENT_SATURN's configuration directory:
Related reference
“Additional checks for wildcard transfers” on page 61
From IBM MQ 9.0.1 in Continuous Delivery, and IBM MQ 9.0.0 Fix Pack 1 in Long Term Support, if an
agent has been configured with a user or agent sandbox in order to restrict the locations that the agent
can transfer files to and from, you can specify that additional checks are to be made on wildcard transfers
for that agent.
“Working with MFT user sandboxes” on page 58
You can restrict the area of the file system that files can be transferred into and out of based on the MQMD
user name that requests the transfer.
“The MFT agent.properties file” on page 537
Each Managed File Transfer Agent has its own properties file, agent.properties, that must contain the
information that an agent uses to connect to its queue manager. The agent.properties file can also
contain properties that alter the behavior of the agent.
wmqfte.logger.type The logger type in use: file, or database. Set this No default value
value to FILE, or DATABASE.
wmqfte.command.queue.name The name of a queue that the logger reads command SYSTEM.FTE.LOG.CMD.logger_name
messages controlling its behavior from.
wmqfte.queue.manager The queue manager that the logger connects to. This No default value
parameter is required, and is all that is needed for
bindings mode connections to the queue manager.
(For the properties for connecting to a remote queue
manager, see Table 44 on page 589.)
wmqfte.database.credentials.file The file that contains the user name and password
for connecting to the database. For details on creating the
Authentication Credentials File see
For IBM WebSphere MQ 7.5, or later, the value of this Creating an MFT credentials file
property can contain environment variables.
For more information, see “MFT credentials file See Configuring
format” on page 789. MQMFTCredentials.xml for information on
the location and permissions of this file.
Further details on
creating the Authentication Credentials
File are in MFT and IBM MQ connection
authentication
wmqfte.database.driver The location of the JDBC driver classes for the No default value
database. This is typically the path and file name of a
JAR file. For example, the Type 2 driver for Db2 on
AIX systems requires the file /opt/IBM/db2/
V9.5/java/db2jcc.jar. On Windows systems,
specify the path separator as a forward slash
character (/) for example, C:/Program
Files/IBM/SQLLIB/java/db2jcc.jar.
wmqfte.database.exclude .duplicate. Controls whether entries are stored in the metadata true
metadata table that contains information that can be found in
other tables within the database logger schema. Set
this value to true, or false. These metadata
entries are no longer stored by default as it is
duplication of existing data and a waste of database
storage capacity. The property entries and the tables,
where the same data appears, are as follows:
• com.ibm.wmqfte.SourceAgent TRANSFER_EVENT
or CALL_REQUEST
• com.ibm.wmqfte.DestinationAgent
TRANSFER_EVENT
• com.ibm.wmqfte.MqmdUser TRANSFER_EVENT or
CALL_REQUEST
• com.ibm.wmqfte.OriginatingUser
TRANSFER_EVENT or CALL_REQUEST
• com.ibm.wmqfte.OriginatingHost
TRANSFER_EVENT or CALL_REQUEST
• com.ibm.wmqfte.TransferId TRANSFER or
CALL_REQUEST
• com.ibm.wmqfte.JobName TRANSFER or
CALL_REQUEST
Setting the value of this property to false causes
these metadata entries to be stored in the metadata
table.
wmqfte.database.name The name of the database instance (or subsystem No default value
when using Db2 for z/OS) that contains the Managed
File Transfer log tables.
wmqfte.database.schema The database schema that contains the Managed File FTELOG
Transfer logging tables. In most cases the default
value is appropriate, but you might need to specify
an alternative value depending on your own site-
specific database considerations.
wmqfte.database.native.library.path The path that contains the native libraries that are No default value
needed by your chosen database driver (if any). For
example, the Type 2 driver for Db2 on AIX systems
requires libraries from /opt/IBM/db2/V9.5/
lib32/. As an alternative to this property, you can
set the java.library.path system property by using
other methods.
On Solaris and HP-UX systems, before running the
fteStartLogger command, you must also set and
export the LD_LIBRARY_PATH environment variable
to include the path.
wmqfte.file.logger.fileDirectory The directory where the file logger log files are mqft/logs/coordination_dir/
located. loggers/logger_name/logs
wmqfte.file.logger.fileSize The maximum size that a log file is allowed to grow 10MB
to. The size value is a positive integer, greater than
zero, followed by one of the following units: KB, MB,
GB, m (minutes), h (hours), d (days), w (weeks). For
example,
wmqfte.file.logger.fileSize=5MB
wmqfte.file.logger.fileSize=2d
wmqfte.file.logger.mode The logger mode in use: circular, or linear. Set this No default value
value to CIRCULAR, or LINEAR.
CIRCULAR - The file logger writes information to a
file until that file reaches its maximum size as
defined by using the
wmqfte.file.logger.fileSize property. When
the maximum size is reached, the file logger starts a
new file. The maximum number of files that are
written in this mode is controlled by the value that is
defined by using the
wmqfte.file.logger.fileCount property.
When this maximum number of files is reached, the
file logger deletes the first file and re-creates it for
use as the currently active file. If the value defined in
the wmqfte.file.logger.fileSize property is a
fixed size byte unit (for example, KB, MB, or GB) then
the upper limit on disk space that is used in this
mode equals fileSize multiplied by fileCount. If the
value defined in the
wmqfte.file.logger.fileSize property is a
time unit (for example, m, h, d, or w) then the
maximum size depends on the throughput of log
messages in your system over these time periods.
The log file naming convention that is used when
running in this mode is:logger_namenumber-
timestamp.log where:
• logger_name is the name that is given to the logger
in the fteCreateLogger command.
• number is the number of the file within the set.
• timestamp is the timestamp of when the file was
created.
For example,
LOGGER1-20111216123430147.log
LOGGER-20111216123430147.log
wmqfte.oracle.port The port that the logger uses to connect to the 1521
Oracle instance. This port is also known as a TNS
listener.
wmqfte.oracle.host The host that the logger uses to connect to the localhost
Oracle instance.
See Configuring
MQMFTCredentials.xml for information on
the location and permissions of this file.
Further details on
creating the Authentication Credentials
File are in MFT and IBM MQ connection
authentication
com.ibm.wmqfte.databaselogger=moderat
e:com.ibm.wmqfte.databaselogger.opera
tion=all
The following table shows the additional logger properties required to support client mode connection to
a logger queue manager.
Table 44. Connection properties for client mode
wmqfte.Ssl.CipherSuite Specifies TLS aspects of how the logger and No default value
the logger queue manager exchange data.
The value of wmqfte.Ssl.CipherSuite is
a CipherSuite name. The CipherSuite name
maps to the CipherSpec name used on the
logger queue manager channel.
For more information, see CipherSuite and
CipherSpec name mappings.
wmqfte.Ssl.TrustStoreCredentialsFile The path to the file that contains the No default value
wmqfte.Ssl.TrustStore credential.
Note that the value of this property can
contain environment variables.
wmqfte.Ssl.KeyStore.CredentialsFile The path to the file that contains the No default value
wmqfte.Ssl.KeyStore credential.
Note that the value of this property can
contain environment variables.
Related reference
“The use of environment variables in MFT properties” on page 522
From IBM WebSphere MQ 7.5, it is possible for environment variables to be used in Managed File Transfer
properties that represent file or directory locations. This allows the locations of files or directories used
when running parts of the product, to vary depending on environment changes. For example, which user is
running the process.
“SSL properties for MFT” on page 591
export BFG_JVM_PROPERTIES="-Dcom.ibm.wmqfte.maxConsoleLineLength=132"
If you are running an agent as a Windows service, you can modify the agent's Java system properties by
specifying the -sj parameter on the fteModifyAgent command.
Table 45. Java system properties
For
UNIX, Linux,
Windows, and z/OS,
the length is
unlimited.
Related concepts
“MFT configuration options on Multiplatforms” on page 68
Managed File Transfer provides a set of properties files that contain key information about your setup and
are required for operation. These properties files are in the configuration directory that you defined when
you installed the product.
agentSslCipherSuite Specifies SSL aspects of how the agent and the agent None
queue manager exchange data.
The value of agentSslCipherSuite is a CipherSuite name.
The CipherSuite name maps to the CipherSpec name
used on the agent queue manager channel. For more
information, see CipherSuite and CipherSpec name
mappings.
agentSslCipherSuite is similar to agentSslCipherSpec. If
both agentSslCipherSuite and agentSslCipherSpec are
specified, the value of agentSslCipherSpec is used.
agentSslTrustStore Specifies the location of the certificates that the agent None
trusts. The value of agentSslTrustStore is a file path. If it
is a Windows file path the backslash character (\) must
be escaped (\\).
For IBM WebSphere MQ 7.5 or later, the value of this
property can contain environment variables.
agentSslKeyStore Specifies the location of the private key of the agent. The None
value of agentSslKeyStore is a file path. If it is a
Windows file path the backslash character (\) must be
escaped (\\). This property is only required if the agent
queue manager requires client authentication.
For IBM WebSphere MQ 7.5 or later, the value of this
property can contain environment variables.
agentSslFipsRequired Specifies that you want to enable FIPS support at the false
level of the agent. The value of this property can be
true or false. For more information, see “FIPS
support in MFT” on page 646.
agentSslKeyStoreType The type of SSL keystore you want to use. JKS and jks
PKCS#12 keystores are supported. The value of this
property can be either jks or pkcs12.
agentSslKeyStoreCredentialsFile The path to the file that contains the agentSslKeyStore The default value for this
credential. property is %USERPROFILE%
\MQMFTCredentials.xml on
For IBM WebSphere MQ 7.5 or later, the value of this
Windows and $HOME/
property can contain environment variables.
MQMFTCredentials.xml on
other platforms.
agentSslTrustStoreType The type of SSL keystore you want to use. JKS and jks
PKCS#12 keystores are supported. The value of this
property can be either jks or pkcs12.
agentSslTrustStoreCredentialsFile The path to the file that contains the agentSslTrustStore The default value for this
credential. property is %USERPROFILE%
\MQMFTCredentials.xml on
For IBM WebSphere MQ 7.5 or later, the value of this
Windows and $HOME/
property can contain environment variables.
MQMFTCredentials.xml on
other platforms.
coordinationSslCipherSuite Specifies SSL aspects of how the commands and the None
coordination queue manager exchange data.
The value of coordinationSslCipherSuite is a CipherSuite
name. The CipherSuite name maps to the CipherSpec
name used on the agent queue manager channel. For
more information, see CipherSuite and CipherSpec
name mappings.
coordinationSslCipherSuite is similar to
coordinationSslCipherSpec. If both
coordinationSslCipherSuite and
coordinationSslCipherSpec are specified, the value of
coordinationSslCipherSpec is used.
coordinationSslTrustStoreType The type of SSL keystore you want to use. JKS and jks
PKCS#12 keystores are supported. The value of this
property can be either jks or pkcs12.
coordinationSslTrustStoreCredentialsFile The path to the file that contains the The default value for this
coordinationSslTrustStore credentials. property is %USERPROFILE%
\MQMFTCredentials.xml on
For IBM WebSphere MQ 7.5 or later, the value of this
Windows and $HOME/
property can contain environment variables.
MQMFTCredentials.xml on
other platforms.
coordinationSslKeyStoreType The type of SSL keystore you want to use. JKS and jks
PKCS#12 keystores are supported. The value of this
property can be either jks or pkcs12.
coordinationSslKeyStoreCredentialsFile The path to the file that contains the The default value for this
coordinationSslKeyStore credentials. property is %USERPROFILE%
\MQMFTCredentials.xml on
For IBM WebSphere MQ 7.5 or later, the value of this
Windows and $HOME/
property can contain environment variables.
MQMFTCredentials.xml on
other platforms.
coordinationSslFipsRequired Specifies that you want to enable FIPS support at the false
level of the coordination queue manager. The value of
this property can be true or false. For more
information, see “FIPS support in MFT” on page 646.
connectionSslCipherSpec Specifies the protocol, hash algorithm, and encryption algorithm None
that is used, and how many bits are used in the encryption key,
when data is exchanged between the commands and the command
queue manager.
The value of connectionSslCipherSpec is a CipherSpec name. This
CipherSpec name is the same as the CipherSpec name used on the
command queue manager channel. A list of valid CipherSpec names
is included in SSL/TLS CipherSpecs and CipherSuites in IBM MQ
classes for Java and SSL/TLS CipherSpecs and CipherSuites in IBM
MQ classes for JMS.
connectionSslCipherSpec is similar to connectionSslCipherSuite. If
both connectionSslCipherSuite and connectionSslCipherSpec are
specified, the value of connectionSslCipherSpec is used.
connectionSslCipherSuite Specifies SSL aspects of how the commands and the command None
queue manager exchange data.
The value of connectionSslCipherSuite is a CipherSuite name. The
CipherSuite name maps to the CipherSpec name used on the agent
queue manager channel. For more information, see CipherSuite and
CipherSpec name mappings.
connectionSslCipherSuite is similar to connectionSslCipherSpec. If
both connectionSslCipherSuite and connectionSslCipherSpec are
specified, the value of connectionSslCipherSpec is used.
connectionSslPeerName Specifies a distinguished name skeleton that must match the name None
that is provided by the command queue manager. The distinguished
name is used to check the identifying certificate that is presented by
the command queue manager on connection.
connectionSslTrustStore Specifies the location of the certificates that the commands trust. None
The value of connectionSslTrustStore is a file path. If it is a Windows
file path, the backslash character (\) must be escaped (\\).
For IBM WebSphere MQ 7.5 or later, the value of this property can
contain environment variables.
connectionSslTrustStoreType The type of SSL truststore you want to use. JKS and PKCS#12 jks
keystores are supported. The value of this property can be either
jks or pkcs12.
connectionSslTrustStoreCredentialsFile The path to the file that contains the connectionSslTrustStore The default value for
credentials. this property is
%USERPROFILE%
For IBM WebSphere MQ 7.5 or later, the value of this property can
\MQMFTCredential
contain environment variables.
s.xml on Windows
and $HOME/
MQMFTCredentials
.xml on other
platforms.
connectionSslKeyStore Specifies the location of the private key of the commands. The value None
of connectionSslKeyStore is a file path. If it is a Windows file path,
the backslash character (\) must be escaped (\\). This property is
only required if the command queue manager requires client
authentication.
For IBM WebSphere MQ 7.5 or later, the value of this property can
contain environment variables.
connectionSslKeyStoreType The type of SSL keystore you want to use. JKS and PKCS#12 jks
keystores are supported. The value of this property can be either
jks or pkcs12.
For IBM WebSphere MQ 7.5 or later, the value of this property can
contain environment variables.
connectionSslKeyStoreCredentialsFile The path to the file that contains the connectionSslKeyStore The default value for
credentials. this property is
%USERPROFILE%
For IBM WebSphere MQ 7.5 or later, the value of this property can
\MQMFTCredential
contain environment variables.
s.xml on Windows
and $HOME/
MQMFTCredentials
.xml on other
platforms.
connectionSslFipsRequired Specifies that you want to enable FIPS support at the level of the false
command queue manager. The value of this property can be true or
false. For more information, see “FIPS support in MFT” on page
646.
wmqfte.Ssl.CipherSuite Specifies TLS aspects of how the logger and No default value
the logger queue manager exchange data.
The value of wmqfte.Ssl.CipherSuite is
a CipherSuite name. The CipherSuite name
maps to the CipherSpec name used on the
logger queue manager channel.
For more information, see CipherSuite and
CipherSpec name mappings.
wmqfte.Ssl.TrustStoreCredentialsFile The path to the file that contains the No default value
wmqfte.Ssl.TrustStore credential.
Note that the value of this property can
contain environment variables.
wmqfte.Ssl.KeyStore.CredentialsFile The path to the file that contains the No default value
wmqfte.Ssl.KeyStore credential.
Note that the value of this property can
contain environment variables.
Related reference
“MFT stand-alone file logger format” on page 115
The format of message information written by the file logger can be defined in the
FileLoggerFormat.xml file.
“Stand-alone file logger format XSD” on page 602
The schema for a stand-alone file format.
Schema
<?xml version="1.0" encoding="UTF-8"?>
<!--
@start_non_restricted_prolog@
5724-H72
<!--
This schema defines the format of the FileLoggerFormat XML file that contains the definition
of the format to use when logging FTE log messages to a file. When an XML file that conforms
to this schema is processed by a file logger it can contain definitions for one or more
message type(s) that define how log messages of those types are output to the file log.
-->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:include schemaLocation="fteutils.xsd"/>
<!--
Defines the logFileDefinition and version number
<logFileDefinition version="1.00" ...
<messageTypes>
...
</messageTypes>
</logFileDefinition>
-->
<xsd:element name="logFileDefinition">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="messageTypes" type="messageTypesType" maxOccurs="1" minOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="version" type="versionType" use="required"/>
</xsd:complexType>
</xsd:element>
<!--
Defines the set of accepted message types. The definition of individual message types
is optional. If a particular types element is present but empty then no line will be
output for messages of that type. If a particular types element is not present then
the default format will be used to format messages of that type.
-->
<xsd:complexType name="messageTypesType">
<xsd:sequence>
<xsd:element name="callCompleted" type="messageType" maxOccurs="1"
minOccurs="0"/>
<xsd:element name="callStarted" type="messageType" maxOccurs="1"
minOccurs="0"/>
<xsd:element name="monitorAction" type="messageType" maxOccurs="1"
minOccurs="0"/>
<xsd:element name="monitorCreate" type="messageType" maxOccurs="1"
minOccurs="0"/>
<xsd:element name="monitorFired" type="messageType" maxOccurs="1"
minOccurs="0"/>
<xsd:element name="notAuthorized" type="messageType" maxOccurs="1"
minOccurs="0"/>
<xsd:element name="scheduleDelete" type="messageType" maxOccurs="1"
minOccurs="0"/>
<xsd:element name="scheduleExpire" type="messageType" maxOccurs="1"
minOccurs="0"/>
<xsd:element name="scheduleSkipped" type="messageType" maxOccurs="1"
minOccurs="0"/>
<xsd:element name="scheduleSubmitInfo" type="messageType" maxOccurs="1"
minOccurs="0"/>
<xsd:element name="scheduleSubmitTransfer" type="messageType" maxOccurs="1"
minOccurs="0"/>
<xsd:element name="scheduleSubmitTransferSet" type="messageType" maxOccurs="1"
minOccurs="0"/>
<xsd:element name="transferStarted" type="messageType" maxOccurs="1"
minOccurs="0"/>
<xsd:element name="transferCancelled" type="messageType" maxOccurs="1"
minOccurs="0"/>
<xsd:element name="transferComplete" type="messageType" maxOccurs="1"
minOccurs="0"/>
<xsd:element name="transferDelete" type="messageType" maxOccurs="1"
minOccurs="0"/>
<!--
Defines the content of a message type definition e.g.
<callStarted>
<format>
...
</format>
<callStarted>
-->
<xsd:complexType name="messageType">
<xsd:sequence>
<xsd:element name="format" type="messageFormatType" maxOccurs="1" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<!--
Defines the content of a message format definition e.g.
<format>
<inserts>
...
</inserts
<separator>;</separator>
</format>
-->
<xsd:complexType name="messageFormatType">
<xsd:sequence>
<xsd:element name="inserts" type="insertsType" maxOccurs="1" minOccurs="1"/>
<xsd:element name="separator" type="scheduleType" maxOccurs="1" minOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<!--
Defines the content of the inserts element e.g.
<inserts>
<insert ...>
<insert ...>
...
</inserts>
-->
<xsd:complexType name="insertsType">
<xsd:sequence>
<xsd:element name="insert" type="insertType" maxOccurs="unbounded" minOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<!--
Defines the content of an insert definition e.g.
<!--
Defines the accepted choices for the insert type attribute.
-->
<xsd:simpleType name="insertTypeType">
<xsd:restriction base="xsd:token">
<xsd:enumeration value="user"/>
<xsd:enumeration value="system"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>
Related reference
“MFT stand-alone file logger format” on page 115
SYSTEM.FTE topic
The SYSTEM.FTE topic is a topic on the coordination queue manager that Managed File Transfer uses to
log transfers and store information about agents, monitors, schedules, and templates.
Topic structure
SYSTEM.FTE
/Agents
/agent_name
/monitors
/agent_name
/Scheduler
/agent_name
/Templates
/template_ID
/Transfers
/agent_name
/transfer_ID
/Log
/agent_name
/Monitors
/schedule_ID
/transfer_ID
SYSTEM.FTE/Agents/agent_name
This topic contains a retained publication that describes an agent in your Managed File Transfer
network and its properties. The message on this topic is updated periodically with the agent status.
For more information, see “MFT agent status message format” on page 713.
SYSTEM.FTE/monitors/agent_name
This topic contains retained publications that describe the resource monitors associated with the
agent agent_name. The XML of the retained publication conforms to the schema MonitorList.xsd.
For more information, see “MFT monitor list message format” on page 715.
SYSTEM.FTE/Scheduler/agent_name
This topic contains a retained publication that describes all of the active schedules that are associated
with the agent agent_name. The XML of the retained publication conforms to the schema
ScheduleList.xsd. For more information, see “MFT schedule list message format” on page 719.
SYSTEM.FTE/Templates
This topic contains retained publications that describe all of the templates that are defined in your
Managed File Transfer topology.
• The publication that is associated with each template is published to a subtopic with the name
SYSTEM.FTE/Templates/template_ID.
For an example of the contents of this retained publication, see “MFT example template XML
message” on page 723.
SYSTEM.FTE/Transfers/agent_name
This topic contains publications that describe that status of transfers that originate at the agent
agent_name. The publications that are associated with each transfer are published to a subtopic with
the name SYSTEM.FTE/Transfers/agent_name/transfer_ID. These publications are used by
the IBM MQ Explorer plug-in to provide progress information about individual transfers. The XML of
the publication conforms to the schema TransferStatus.xsd. For more information, see “File
transfer status message format” on page 723.
Related reference
“fteCreateAgent: create an MFT agent” on page 383
The fteCreateAgent command creates a Managed File Transfer Agent and its associated configuration.
Any queues with a name beginning SYSTEM.FTE are internal system queues for Managed File Transfer.
The topic named SYSTEM.FTE is also for internal use only. Do not modify or delete this topic or these
queues, or change the queue contents in any way, because you will prevent Managed File Transfer from
functioning correctly and you could lose messages.
Temporary queues
Managed File Transfer creates temporary queues for a number of purposes. The name of each queue
starts with WMQFTE. by default. (The period is part of the default prefix.) If you want to change this prefix,
you can use the dynamicQueuePrefix property in the command.properties file or the
coordination.properties file or both. The property in the command.properties file is used to set
the prefix of temporary queues that are created for responses to commands that require a response from
the agent. The property in the coordination.properties file is used to set the prefix of temporary
queues that are created for other purposes; for example, the WMQFTE.FTE.TIMECHCK.QUEUE, where
WMQFTE. is the value defined by the dynamicQueuePrefix property.
[a-zA-Z$#@][a-zA-Z0-9$#@]{0-7}
The following scheme is used to convert a source data set or source file name to a valid PDS member
name. The considerations are applied in the order listed:
1. Only the characters in the name after the last forward slash (/), the last backslash (\), or the last colon
(:) character, are used. That is, only the name part of a file path is used.
2. For source files (not data sets or PDS members), the characters after and including the last dot (.)
character, are ignored.
3. For any name longer than eight characters, the last eight characters only are used.
4. Dot characters are replaced with at sign (@) characters.
5. Invalid characters are replaced with at sign (@) characters.
6. If the conversion produces no characters, the PDS member name is @.
ACTIVE
The agent is running and is sending or receiving files. The agent is publishing its status at regular
intervals. The last update was received within the expected time period.
READY
The agent is running, but is not sending or receiving files. The agent is publishing its status at regular
intervals. The last update was received within the expected time period.
STARTING
The agent is starting, but is not yet ready to perform transfers.
UNREACHABLE
Agent status updates were not received at the expected time intervals. The agent might have stopped
running due to an error, have been shut down abruptly, or might be running but is experiencing
communication problems. For more information, see “What to do if the fteListAgents command shows
an agent status of UNREACHABLE” on page 304.
STOPPED
The agent has been stopped. It was shut down in a controlled manner.
ENDED UNEXPECTEDLY
The agent has ended unexpectedly. The agent will be automatically restarted, unless there have been
more than maxRestartCount restarts within the maxRestartInterval time period and the
maxRestartDelay value is less than or equal to 0. For more information about these properties, see
“The MFT agent.properties file” on page 537.
NO_INFORMATION
The agent version might be IBM WebSphere MQ File Transfer Edition 7.0.2 or earlier. The agent is not
publishing updates in a form that this command can process.
UNKNOWN
The status of the agent cannot be determined. It might have published a status which is not
recognized by this tool. If you have mixed product versions on your network, upgrading the installation
version of this tool might fix this problem.
WAITING
The agent process controller is waiting for the queue manager to become available before starting the
agent.
STARTED
The agent process controller has started the agent process.
STOPPED
The agent process controller has been stopped, either because of a request to stop the agent or
because there have been too many agent process restarts within the restart interval.
RECOVERING
The agent process unexpectedly stopped and the process controller will attempt to restart it.
ISTOPPING
The agent process has received a request to shut down immediately. When the agent process has
stopped, the process controller will stop.
CSTOPPING
The agent process has received a request to shut down in a controlled manner. When the agent
process has stopped, the process controller will stop.
UNKNOWN
The agent process controller status cannot be determined. It might be that the agent process
controller is not running, or that it is running on a different system from where the
fteShowAgentDetails command was run.
ACTIVE
The logger is running and is sending or receiving files. The logger is publishing its status at regular
intervals. The last update was received within the expected time period.
READY
The logger is running, but is not sending or receiving files. The logger is publishing its status at regular
intervals. The last update was received within the expected time period.
STARTING
The logger is starting, but is not yet ready to perform transfers.
UNREACHABLE
Logger status updates were not received at the expected time intervals. The logger might have
stopped running due to an error, or have been shut down abruptly, or be running but experiencing
communication problems.
STOPPED
The logger has been stopped. It was shut down in a controlled manner.
ENDED UNEXPECTEDLY
The logger has ended unexpectedly. The logger will be automatically restarted, unless there have
been more than maxRestartCount restarts within the maxRestartInterval time period and the
maxRestartDelay value is less than or equal to 0. For more information about these properties, see
“MFT logger configuration properties” on page 125.
For the fteShowLoggerDetails command the details for the this status will include a status code,
which is the logger process exit code. See "Process Exit Codes" for a list of known exit codes.
NO_INFORMATION
The logger version might be IBM WebSphere MQ File Transfer Edition 7.0.2 earlier. The logger is not
publishing updates in a form that this command can process.
UNKNOWN
The status of the logger cannot be determined. It might have published a status which is not
recognized by this tool. If you have mixed product versions on your network, upgrading the installation
version of this tool might fix this problem.
PROBLEM
The logger command handler might not be working. The logger is publishing status messages, but
these status messages are out of date.
Related reference
“fteShowLoggerDetails” on page 513
WAITING
The logger process controller is waiting for the queue manager to become available before starting the
logger.
STARTED
The logger process controller has started the logger process.
STOPPED
The logger process controller has been stopped, either because of a request to stop the logger or
because there have been too many logger process restarts within the restart interval.
RECOVERING
The logger process unexpectedly stopped and the process controller will attempt to restart it.
ISTOPPING
The logger process has received a request to shut down immediately. When the logger process has
stopped, the process controller will stop.
CSTOPPING
The logger process has received a request to shut down in a controlled manner. When the logger
process has stopped, the process controller will stop.
UNKNOWN
The logger process controller status cannot be determined. It might be that the logger process
controller is not running, or that it is running on a different system from where the
fteShowLoggerDetails command was run.
Related reference
“fteShowLoggerDetails” on page 513
Use the fteShowLoggerDetails command to display the details of a particular Managed File Transfer
logger.
These exit codes are written to pceventX.log, where X can be any number, for example the log file
name can be pcevent0.log.
Related information
Managed File Transfer diagnostic messages: BFGPC0001 - BFGPC9999
Transferring files and data sets between z/OS and distributed systems
You can transfer files and supported data set types between z/OS and distributed file systems by using
Managed File Transfer. Review the following behavior carefully, which is dependent on the type of system
you are transferring from and to.
Managed File Transfer supports generation data groups (GDGs) for source and destination data sets on
z/OS. Absolute and relative GDG names are supported. When you write to a new generation, the base
GDG must exist.
When you transfer a file or data set to tape, any existing data set that is already on the tape is replaced.
The attributes for the new data set are set from attributes passed in the transfer definition. If no attributes
are specified, attributes are set to the same as those attributes for the source data set or are set to the
default values when the source is a file. The attributes of an existing tape data set are ignored.
cdNode:data_set_name{;attrib1;...;attribN}
For example, to specify a partitioned data set called OBJECT.LIB on the system where the
Connect:Direct node CD_NODE1 is located, use the following syntax:
CD_NODE1://'OBJECT.LIB';RECFM(F,B);BLKSIZE(800);LRECL(80)
In the this example, three optional attributes are specified by the text
RECFM(F,B);BLKSIZE(800);LRECL(80).
• The specified data set name is interpreted as a fully qualified data set name, regardless of whether it is
enclosed by single quotation mark characters. The system never adds any prefix. If you want to specify
a prefix, such as the user ID that the agent runs under, you must specify it as part of the data set name.
This differs from the behavior for data set transfers that involve only Managed File Transfer agents,
where if the specified data set name is not enclosed by single quotation mark characters, the system
adds a prefix of the default high-level qualifier for the destination agent.
Except for these two changes, specify the data set name and any optional attributes using the same
syntax that is used for data set transfers between Managed File Transfer agents, which has the following
rules:
• You must prefix the data set name with two forward slash characters (//).
• If you want to specify data set attributes, provide these after the data set name, separated by
semicolons. Attributes must be provided in the format key(value), which is suitable for BPXWDYN.
For more information about specifying data sets in a transfer request, see “fteCreateTransfer: start a new
file transfer” on page 428 and “fteCreateTemplate: create new file transfer template” on page 412.
Additional considerations
• If your transfer destination is a partitioned data set at a Connect:Direct node, you must create the
partitioned data set before the transfer, because the Connect:Direct node does not create it for you.
Related concepts
“The Connect:Direct bridge” on page 234
You can transfer files to and from an existing IBM Sterling Connect:Direct network. Use the Connect:Direct
bridge, which is a component of Managed File Transfer, to transfer files between MFT and IBM Sterling
Connect:Direct.
Related tasks
Transferring a data set to a Connect:Direct node on z/OS
You can transfer a data set from a Managed File Transfer agent on z/OS to a Connect:Direct node on z/OS
by using a Connect:Direct bridge that is located on a Windows or Linux system.
Related reference
“Transferring between data sets on z/OS” on page 616
You can transfer between z/OS data sets using Managed File Transfer. Review the following behavior
carefully to ensure your data sets are transferred correctly.
“fteCreateTransfer: start a new file transfer” on page 428
The fteCreateTransfer command creates and starts a new file transfer from the command line. This
command can start a file transfer immediately, schedule a file transfer for a future time and date, repeat a
scheduled transfer one or more times, and trigger a file transfer based on certain conditions.
“fteCreateTemplate: create new file transfer template” on page 412
Table 53. Parameters to the Connect:Direct COPY statement, and the equivalent BPXWDYN keys used by
Managed File Transfer
Parameter to Connect:Direct COPY statement BPXWDYN key
DSN DSN (valid for transfers to and from data sets).
Specifying this key overrides the parameter value that
is assigned by Managed File Transfer, which is based
on the source or destination file specifications that are
provided in the transfer request.
FILE No mapping for data sets.
PNODE No mapping. The primary node for the transfer is
identified by Managed File Transfer. If you attempt to
provide a value for this parameter, an error is
produced.
SNODE No mapping. The secondary node for the transfer is
identified by Managed File Transfer. If you attempt to
provide a value for this parameter, an error is
produced.
DCB See Mappings for subparameters of DCB
DISP See Mappings for subparameters of DISP for a COPY
From statement and Mappings for subparameters of
DISP for a COPY To statement
RESGDG No mapping
LABEL See Mappings for subparameters of LABEL
MSVGP No mapping
UNIT UNIT
VOL See Mappings for subparameters of VOL
ALIAS No mapping
EXCLUDE No mapping
PDS.DIR No mapping. Managed File Transfer sets the value of
this process parameter to N, so no user-related
information that is in the directory is sent.
Table 55. Subparameters of the DISP parameter for the Connect:Direct COPY From statement, and the
equivalent BPXWDYN keys used by Managed File Transfer
Subparameters of the DISP
parameter for a COPY From
statement BPXWDYN key Details
[OLD | SHR] [OLD | SHR] Specifies the status of the data set
before the transfer.Managed File
Transfer sets this subparameter to
SHR.
[KEEP | DELETE] [KEEP | DELETE] or PATHDISP Specifies the status of the data set
after the transfer has completed
successfully. The value set by
Managed File Transfer depends on
the source file disposition, defined
by the -sd parameter.
[KEEP | DELETE] [KEEP | DELETE] or PATHDISP Specifies the status of the data set
after the transfer has completed
abnormally. Managed File Transfer
sets this subparameter to KEEP.
Table 57. Subparameters of the LABEL parameter for the Connect:Direct COPY statement, and the equivalent
BPXWDYN keys used by Managed File Transfer
Subparameters of the LABEL
parameter for a COPY statement BPXWDYN key Details
file-sequence-number SEQUENCE
[SL | AL | BLP | LTM | NL] LABEL(type) The possible values of type are NL,
SL, NSL, SUL, BLP, LTM, AL, and
AUL. Connect:Direct accepts a
subset of these values. If you
specify a value that is not
supported by Connect:Direct,
Connect:Direct produces an error
message.
[PASSWORD | NOPWREAD] No mapping
[IN | OUT] No mapping
[RETPD | EXPDT] RETPD EXPDT not supported
Table 58. Subparameters of the VOL parameter for the Connect:Direct COPY statement, and the equivalent
BPXWDYN keys used by Managed File Transfer
Subparameters of the VOL parameter for a COPY
statement BPXWDYN key
PRIVATE No mapping
Table 59. Subparameters of the SYSOPTS parameter for the Connect:Direct COPY statement, and the equivalent
BPXWDYN keys used by Managed File Transfer
Subparameters of the SYSOPTS parameter for a
COPY statement BPXWDYN key
DBCS No mapping
CODEPAGE Value is dependent on Managed File Transfer transfer
options. For more information, see “Transferring text
files with MFT” on page 625.
DATATYPE No mapping. Managed File Transfer sets this value to
TEXT for text transfers to or from a data set, and
otherwise to BINARY.
XLATE No mapping. Managed File Transfer sets this value to
NO when the value of DATATYPE is TEXT.
STRIP.BLANKS No mapping. Managed File Transfer sets this value to
YES when the value of DATATYPE is TEXT.
PERMISS No mapping
PRECOMP No mapping
UNIQUE No mapping
SYSOUT No mapping
Table 60. Subparameters of the SPACE parameter for the Connect:Direct COPY statement, and the equivalent
BPXWDYN keys used by Managed File Transfer
Subparameters of the SPACE parameter for a COPY
statement BPXWDYN key
CYL CYL
TRK TRACKS
blk BLOCKS
av-rec-len No mapping
prim, [sec], [dir] SPACE(prim[,sec]), DIR
RLSE RELEASE
CONTIG No mapping
ROUND No mapping
OLD SHR MOD NEW SYSOUT Specifies the data set status.
REUSE Specifies that the named data set is freed before the function is
performed.
HOLD Specifies that the output data set is to be held until released by the
user or operator.
KEEP DELETE CATALOG UNCATALOG Specifies the data set disposition after it is freed.
Source file end of line character Convert a single (LF) or (CRLF) sequence to the No
sequence destination end of line character sequence
Destination file encoding Destination platform encoding Yes
When you specify
source file encoding
and the source is a data
set, the encoding must
be an EBCDIC code
page, otherwise the
transfer fails. Similarly,
if the destination is a
data set, the
destination encoding
must be an EBCDIC
code page.
When data set records are accessed in text mode, each record represents a single line. New line
characters do not exist in the record but for ASA format data sets an ASA format control code character is
set that represents a new line (or other control character). When a line of text with a terminating new line
character is written to a record, the new line character is either automatically removed or an appropriate
ASA control code is set, as appropriate. When a record is read a new line character is automatically
When the Managed File Transfer agent is run, the environment variable _EDC_ZERO_RECLEN is always set
to "Y". This setting makes Managed File Transfer text transfer behavior the same as FTP for variable and
fixed block data sets. However, for undefined format data sets, Managed File Transfer converts single
space lines to an empty line and preserves empty lines. FTP converts empty lines to single space lines
and preserves single space lines. Table 3 describes the Managed File Transfer behavior and how FTP
behavior differs.
The format of the data set also determines how each line of text is written to a record. For non-ASA format
data sets newline and carriage-return characters are not written to the record. For ASA format data sets,
the first byte of each record is an ASA control code representing end of lines, a form feed, and other
codes, as appropriate. Because ASA control codes are at the start of each record, if the source text file
does not start with a new line character sequence, a blank (' ') ASA control character sequence (which
equates to a newline) is inserted. This means that if the ASA data set is transferred to a file, a blank line is
present at the start of the file.
Table 63. The Managed File Transfer behavior for data sets
Original text line Read of data set FTP Read
Data set format in file Data set record record behavior
Fixed block Empty line Space filled record Empty line Same as MFT
Fixed block Single space Space filled record Empty line Same as MFT
Variable block Empty line Empty record Empty line Same as MFT
Variable block Single space Single space Single space Same as MFT
record
Undefined Empty line Single space Empty line Single space
record
Undefined Single space Single space Empty line Single space
record
Related reference
“Guidelines for transferring files” on page 613
Depending on the operating system you are transferring from and to and whether you are transferring in
binary or text mode, there are guidelines on what behavior to expect.
“Transferring text files between Connect:Direct and MFT” on page 628
Text transfer involves converting the code page of a file from one code page to another. Text file transfer
also involves converting CRLF (carriage return line feed) characters between systems. This topic
BFGBR0032E: Attempt to read filename from the protocol file server has failed with server error 550
Failed to open file.
During file transfer, files are typically written as temporary files at the destination and are then renamed
when the transfer is complete. However, if the transfer destination is a protocol file server that is
configured as limited write (users can upload files to the protocol file server but cannot change those
uploaded files in any way; effectively users can write once only), transferred files are written to the
destination directly. This means that if a problem occurs during the transfer, the partially-written files
remain on the destination protocol file server and Managed File Transfer cannot delete or edit these files.
In this situation the transfer fails.
Ensure that you have another agent in your Managed File Transfer network in addition to the protocol
bridge agent. The protocol bridge agent is a bridge to the FTP or SFTP server only and does not write
transferred files to the local disk. If you want to transfer files to or from the FTP or SFTP server you must
use the protocol bridge agent as the destination or source for the file transfer (representing the FTP or
SFTP server) and another standard agent as the corresponding source or destination.
From IBM MQ 9.0.0 Fix Pack 9, if the JSch exception does not contain any more information
about the failure, the protocol bridge agent generates the following supplementary message:
BFGTR0072E: The transfer failed to complete due to the exception:
BFGBR0209E: Bridge agent was unable to create directory directory name
Related concepts
“The protocol bridge” on page 217
The protocol bridge enables your Managed File Transfer (MFT) network to access files stored on a file
server outside your MFT network, either in your local domain or a remote location. This file server can use
the FTP, FTPS, or SFTP network protocols. Each file server needs at least one dedicated agent. The
dedicated agent is known as the protocol bridge agent. A bridge agent can interact with multiple file
servers.
file.encoding=java_encoding
where java encoding corresponds to the type of data that is contained in the file, and matches a
file.encoding value from the following table: File.encoding values and System i5® CCSID.
4. The user identified in step 1 must complete the following steps:
a. On IBM i V5R4 only: add the QIBM_PASE_DESCRIPTOR_STDIO environment variable (*JOB scope)
to 'B' if using EBCDIC file encoding, or 'T' if using ASCII encoding. For example:
For example, a physical file member that is called MYMBR is in a file that called MYFILE in a library that is
called SOMELIB is identified as FILE(SOMELIB/MYFILE) MBR(MYMBR). You can also identify the same
physical file member by specifying a UNIX-like path name that follows the Integrated File System (IFS)
naming convention. Using the IFS naming convention, MYMBR in MYFILE in SOMELIB has the following
path name:
/QSYS.LIB/SOMELIB.LIB/MYFILE.FILE/MYMBR.MBR
For more information, see Path names in the QSYS.LIB file system.
Managed File Transfer on IBM i recognizes the IFS naming convention but does not support the syntax
used by CL commands. The following examples illustrate valid and invalid path names for MFT. The
following example is a valid path name for a physical file member:
/QSYS.LIB/SOMELIB.LIB/MYFILE.FILE/MYMBR.MBR
This example assumes MYFILE is a physical file in the library SOMELIB and contains a member that is
called MYMBR.
The following examples are invalid path names for physical file member transfers:
Transferring multiple physical file members from a physical file in a single transfer
request
Managed File Transfer on IBM i supports the transfer of multiple physical file members from a single
physical file as a single transfer request. You can specify an appropriate path name that includes wildcard
characters as shown in the following examples:
• ABCLIB contains a physical file MYFILE with multiple members. To transfer all these members in a
single request, specify the following path name: /QSYS.LIB/ABCLIB.LIB/MYFILE.FILE/*.MBR
• XYZLIB contains a physical file MYFILE whose member names differ by a single character, that is:
TEST1.MBR, TEST2.MBR. TEST3.MBR, and so on. To transfer all these members in a single request,
specify the following path name: /QSYS.LIB/XYZLIB.LIB/MYFILE.FILE/TEST?.MBR.
The following types of transfer requests are not supported for transferring multiple physical file members
and result in an error:
• /QSYS.LIB/MYLIB.LIB/*.*
• /QSYS.LIB/MYLIB.LIB/*
• /QSYS.LIB/MYLIB.LIB/*.FILE/MYMBR.MBR
• /QSYS.LIB/MYLIB.LIB/MYFILE*.FILE/*.MBR (there is no support for wildcarding on file names,
only on member names)
• /QSYS.LIB/MYLIB.LIB/*.FILE/*.MBR
• /QSYS.LIB/MYLIB.LIB/MYFILE.FILE (.FILE assumes a SAVF not a physical file, so if MYFILE is a
physical file, the transfer fails with invalid file type error)
fteCreateTransfer -da linux -dm QM1 -sa ibmi -sm QM1 -t text -df /home/qfte/fromibmi/
linux.mbr.txt /qsys.lib/fromibmi.lib/file1.file/file1.mbr
• This command transfers physical file member FILE(FROMIBMI/FILE1) MBR(FILE1) on IBM i to text file
C:\FTE\fromibmi\windows.mbr.txt on Windows:
fteCreateTransfer -da windows -dm QM1 -sa ibmi -sm QM1 -t text -df C:\FTE\fromibmi
\windows.mbr.txt /qsys.lib/fromibmi.lib/file1.file/file1.mbr
• This command transfers text file C:\FTE\toibmi\file.txt on Windows to physical file member
FILE(TOIBMI/EXISTS) MBR(WINDOWS) on IBM i:
fteCreateTransfer -da ibmi -dm QM1 -sa windows -sm QM1 -t text -df /qsys.lib/toibmi.lib/
exists.file/windows.mbr C:\FTE\toibmi\file.txt
fteCreateTransfer -da ibmi -dm QM1 -sa windows -sm QM1 -t text -dd /qsys.lib/toibmi.lib/
windows.file C:\FTE\toibmi\file.txt
• The default transfer mode is binary and text mode must be specified when transferring physical file
members.
fteCreateTransfer -da windows -dm QM1 -sa ibmi -sm QM1 -df C:\FTE\fromibmi\file.bin /qsys.lib/
fromibmi.lib/file1.file/file1.mbr
MFT supports the transfer of physical file members that are in the QSYS.LIB file system but does not
support the transfer of source physical file members that are in the QSYS.LIB file system. File transfers in
the QDLS file system are supported using the provided sample user exits. You can use the user exit
samples provided in MFT for the following tasks:
• Transfer files in the QDLS file system.
• Automatically transfer physical file members from an IBM i library in the same way as an MFT file
monitor.
• Delete an empty file object when the source file member is deleted as part of the transfer.
For more information, see “Sample MFT on IBM i user exits” on page 263.
Related reference
“Guidelines for transferring files” on page 613
Depending on the operating system you are transferring from and to and whether you are transferring in
binary or text mode, there are guidelines on what behavior to expect.
“Transferring files to or from IBM i systems” on page 629
If you transfer files to or from IBM i systems using Managed File Transfer in text mode and you want to
convert the data in the files, consider the information in this topic.
For example, a save file called MYSAVF is located in a library called SOMELIB is identified as
FILE(SOMELIB/MYSAVF).
You can also identify the same save file by specifying a UNIX-like path name that follows the Integrated
File System (IFS) naming convention. See Path names in the QSYS.LIB file system for more information.
Using the IFS naming convention, MYSAVF in SOMELIB has the following path name:
/QSYS.LIB/SOMELIB.LIB/MYSAVF.FILE
/QSYS.LIB/ABCLIB.LIB/*.FILE
• XYZLIB contains several save files whose names differ by a single character, that is: TEST1.FILE,
TEST2.FILE. TEST3.FILE, and so on. To transfer all of these files in a single request, specify the following
path name:
/QSYS.LIB/XYZLIB.LIB/TEST?.FILE
The following types of transfer requests are not supported for transferring multiple save files and result in
an error:
•
/QSYS.LIB/MYLIB.LIB/*.*
•
/QSYS.LIB/MYLIB.LIB/*
Managed File Transfer supports the transfer of save files that are located in the QSYS.LIB file system but
the transfer of other types of files that are located in the QSYS.LIB file system is not supported. However,
Managed File Transfer provides samples that use the save file support and use predefined fteAnt tasks to
demonstrate how a complete library, a source physical file, or database file can be transferred between
two IBM i systems. See “Getting started using Ant scripts with MFT” on page 255 for details on how to
customize and use these samples.
Related reference
“Guidelines for transferring files” on page 613
Depending on the operating system you are transferring from and to and whether you are transferring in
binary or text mode, there are guidelines on what behavior to expect.
“Transferring files to or from IBM i systems” on page 629
GDG examples
The following examples show the fteCreateTransfer command using GDGs. In the examples, the
name BASEGDG refers to an existing base GDG name. The name DSET refers to a sequential data set that
is to be created. The name /u/user/file.dat refers to the name of a source data file.
This command copies file.dat into a new generation in BASEGDG. The absolute name of the new
generation is reported in the transfer log:
This command copies file.dat into the generation with the absolute name specified in BASEGDG:
This command copies the most recent generation in BASEGDG to DSET. The absolute name of the
generation is reported in the transfer log:
This command copies the next most recent generation in BASEGDG to DSET. The absolute name of the
generation is reported in the transfer log:
Related reference
“Guidelines for transferring files” on page 613
Depending on the operating system you are transferring from and to and whether you are transferring in
binary or text mode, there are guidelines on what behavior to expect.
“fteCreateTransfer: start a new file transfer” on page 428
The fteCreateTransfer command creates and starts a new file transfer from the command line. This
command can start a file transfer immediately, schedule a file transfer for a future time and date, repeat a
scheduled transfer one or more times, and trigger a file transfer based on certain conditions.
“Transferring between data sets on z/OS” on page 616
Multiplatforms
You can use the following wildcard characters on Multiplatforms:
?
Use the question mark (?) to represent exactly one character. All of the other characters specified are
required in matching file names.
For example, ab?d.jpg matches the files abcd.jpg, abed.jpg, and abfd.jpg.
*
Use the asterisk character (*) to represent zero or more characters.
For example *.txt matches the files abc.txt and x.txt.
The pattern *txt matches the files abc.txt, x.txt, and newtxt because the period (.) in the file
names is a required character.
You must enclose the asterisk character (*) in double quotation marks. If you do not, the character will
be interpreted by the command shell and might cause the command to fail.
On UNIX and Linux, using the asterisk character (*) will not include the
pseudo hidden files, for example .bashrc.
If the operating system is case-insensitive for file and path names, for example Windows, the pattern
match is case-insensitive. You can use wildcard characters to specify file names only: you cannot use
wildcards in directory names.
Connect:Direct bridge
When the source of a transfer is a Connect:Direct bridge agent that is requesting files from a
Connect:Direct node, wildcards are not supported.
IBM i
z/OS
For z/OS systems the wildcard character rules for Managed File Transfer follow the standard
ISPF wildcard conventions in general. There are specific rules for both sequential and partitioned data
sets as follows:
Directories
By default if you create a file transfer with a wildcard pattern that matches subdirectories, the
subdirectories are not transferred. You can specify the -r parameter on the fteCreateTransfer command
to include subdirectories that match the wildcard pattern. When you transfer a subdirectory, the entire
contents and structure of the subdirectory are transferred: including all of its files, subdirectories, and
hidden files.
For example, if you have a directory called abc, there is a difference in behavior between specifying a
source file path of /opt/abc and /opt/abc/*. In the case of /opt/abc because the directory is
transferred, a directory called abc is created at the destination and all of the file contents are transferred.
In the case of /opt/abc/*, the contents of abc are transferred into the destination path.
Hidden files
Wildcards do not match hidden files except on UNIX-type platforms when the wildcard pattern starts with
a dot character (.). For example: /opt/.* transfers all hidden files in the opt directory.
Symbolic links
Symbolic links are a type of file that contain a pointer to another file or directory and are known as
shortcuts on Windows. You can match symbolic link files with wildcard characters. However, when a
destination file is created from a source that is a symbolic link, the destination file becomes a hard link
(that is, a regular file). You cannot successfully transfer symbolic links to directories because this could
potentially create a recursive path.
fteCreateTransfer -p QM_VENUS -sa AGT.QM_JUPITER -sm QM_JUPITER -da AGT.QM_NEPTUNE -dm QM_NEPTUNE -r -sd
delete
-t binary -de overwrite -jn MONTASK -gt /home/fteadmin/bin/TransferTask.xml -df "${FilePath}" "$
{FilePath}"
the shell parses ${FilePath} and does not pass it to the command. The workaround is to enclose $
{FilePath} in double quotation marks, that is, "${FilePath}".
As part of this process the source agent, which could not find the file, notifies the destination agent that
this file transfer has been canceled (because the source agent cannot find the source file to read). If you
had planned to trigger an exit after the transfer at this point, the destination agent triggers its
DestinationTransferEndExit with a FileExitResultCode of CANCEL_FILE for that file name.
However, if you attempt to transfer a wildcard (for example, /a/missing/*.txt) and the source agent
does not find any files that match that wildcard, MFT reports this as a successful transfer. This is because
technically the source agent was asked to transfer 0 files. The following error message is reported in the
log:
The transfer request has successfully completed, although no files were transferred.
In this example, because the destination agent was never involved in the transfer, its exit is not called.
Related reference
“Guidelines for transferring files” on page 613
Examples
To match all patterns, use the following regular expression:
.*
To match all patterns that begin with the string fte, use the following regular expression:
fte.*
To match all patterns that begin with the string accounts followed by a single digit, and end with .txt,
use the following regular expression:
accounts[0-9]\.txt
Table 64. Intrinsic symbolic variables used by Managed File Transfer and Connect:Direct
Variable name Description
%FTESAGNT The name of the Managed File Transfer source agent. This variable is set only for
transfers from a Managed File Transfer Agent to a Connect:Direct node.
%FTEDAGNT The name of the Managed File Transfer destination agent. This variable is set
only for transfers from a Connect:Direct node to a Managed File Transfer Agent.
%FTEFDISP The disposition of the source file when the process is complete. The value of this
variable is platform dependent and equivalent to the values for MFT transfer
request. This variable is set only for Connect:Direct processes that are submitted
at a per-file scope.
When transferring files from a Managed File Transfer Agent to a Connect:Direct
node, the action of deleting or not deleting the source file is performed by the
Managed File Transfer bridge agent.
When transferring files from a Connect:Direct node to a Managed File Transfer
Agent, the action of deleting or not deleting the source file must be performed by
the Connect:Direct process.
%FTEFSYSO The Connect:Direct SYSOPTS for the source of the transfer. If the remote
Connect:Direct node is on Linux, UNIX, or Windows, this value contains
information about the code page and data type of the source of the transfer.
If the remote node is on z/OS, this value contains additional
information.
%FTEFNODE Identifies the Connect:Direct node where the source file resides. This will be set
to a value of either: PNODE or SNODE.
%FTETFILE The destination file name. This variable is set only for Connect:Direct processes
that are submitted at a per-file scope.
When transferring files from a Managed File Transfer Agent to a Connect:Direct
node, the value is the name of the file that is specified as the destination file in
the Managed File Transfer transfer request.
When transferring files from a Connect:Direct node to a Managed File Transfer
Agent, the value is the fully qualified name of the location to write the file to on
the same system as the Connect:Direct bridge.
%FTETDISP The disposition of the destination file. The value of this variable is platform
dependent and equivalent to the values for Connect:Direct transfer request. This
variable is set only for Connect:Direct processes that are submitted at a per-file
scope.
When transferring files from a Managed File Transfer Agent to a Connect:Direct
node, the action of creating a file or replacing an existing file must be performed
by the Connect:Direct process.
When transferring files from a Connect:Direct node to a Managed File Transfer
Agent, the action of creating a file or replacing an existing file is performed by the
Managed File Transfer bridge agent.
%FTETCP The code page to use for the destination file. This variable is set only for
Connect:Direct processes that are submitted at a per-file scope.
When transferring files from a Managed File Transfer Agent to a Connect:Direct
node, this value is specified by Connect:Direct or, if the transfer is a binary
transfer, the value is not set.
When transferring files from a Connect:Direct node to a Managed File Transfer
Agent, this value is UTF-8 or, if the transfer is a binary transfer, the value is not
set.
The following table contains information about additional intrinsic symbolic variables that
are used when the remote Connect:Direct node in the transfer is on a z/OS platform.
Table 65.
Variable name Description
%FTEFDCB The value of the DCB parameter at the source of
the transfer.
%FTEFSPCE The value of the SPACE parameter at the source of
the transfer.
%FTEFLBEL The value of the LABEL parameter at the source of
the transfer.
%FTEFUNIT The value of the UNIT parameter at the source of
the transfer.
%FTEFVOL The value of the VOL parameter at the source of
the transfer.
%FTEFDACL The value of the DATACLAS parameter at the
source of the transfer.
%FTETDCB The value of the DCB parameter at the destination
of the transfer.
/*BEGIN_REQUESTER_COMMENTS
$PNODE$="cd_win01" $PNODE_OS$="Windows"
$SNODE$="CD_WIN01" $SNODE_OS$="Windows"
$OPTIONS$="WDOS"
END_REQUESTER_COMMENTS*/
TESTPRO PROCESS
SNODE=CD_WIN01
COPY
FROM (
FILE=C:\test\from\sent.txt
SNODE
)
TO (
FILE=C:\test\tmp\midpoint.txt
PNODE
DISP=RPL
)
COMPRESS Extended
PEND
Related concepts
“Using Connect:Direct processes to submit Managed File Transfer transfer requests” on page 247
You can submit a transfer request to the Connect:Direct bridge agent from a Connect:Direct process.
Managed File Transfer provides commands that can be called from a RUN TASK statement in a
Connect:Direct process.
Related tasks
“Creating and submitting a Connect:Direct process that calls Managed File Transfer by using the
Connect:Direct Requester” on page 248
The Connect:Direct Requester is a graphical user interface that you can use to create and submit a
Connect:Direct process that calls Managed File Transfer.
• If you specify a source disposition (-sd) of delete when transferring a file or data set
from a Connect:Direct node, the behavior is different to the usual source disposition behavior. One of
the following cases occurs:
– If Connect:Direct uses a process that is generated by Managed File Transfer to move the file or data
set from the source, specifying the delete option causes the transfer to fail. To specify that the
source file is deleted, you must submit a user-defined Connect:Direct process. For more information,
see “Submitting a user-defined Connect:Direct process from a file transfer request” on page 242.
– If Connect:Direct uses a user-defined process to move the file or data set from the source, this
parameter is passed to the process through the %FTEFDISP intrinsic symbolic variable. The user-
defined process determines whether the source is deleted. The result that the transfer returns
depends on the result that is returned by the user-defined process.
AUTH_EVENT
An event related to authority checking, typically the rejection of a request due to insufficient privileges.
• ID: Row ID.
• ACTION: The type of action that took place.
• COMMAND_ID: The IBM MQ message ID of the original message that requested the event. In the case
of a transfer request, this will also be the transfer ID.
• TIME: The time at which the event occurred.
• ORIGINATOR_MQ_USER: The user ID contained in the IBM MQ message, against which the authority
check was performed.
• AUTHORITY: The authority that was required for the requested action.
• ORIGINAL_XML_REQUEST: The payload of the command message, indicating what action was
refused.
• RESULTCODE: The numeric code identifying the result.
• RESULT_TEXT: A message explaining the result of the authority event.
CALL
The remote running of an operating system command, or Ant script , or z/OS JCL job,
managed by Managed File Transfer. Calls can be embedded in transfers, or referred to by call_request
rows.
CALL_ARGUMENT
An argument or parameter supplied to a command that is called.
• ID: Row ID.
• CALL_ID: The call that the argument is associated with.
• KEY: Where the argument is of a key-value-pair kind, the key, or name.
• TYPE: The type of the argument: some are position parameters to operating system commands and
others are named properties used with Ant.
• VALUE: The value of the argument.
CALL_REQUEST
The vehicle for a command call that is not part of a file transfer. You can submit ManagedCall messages
using Ant and using direct XML injection.
• ID: The hexadecimal ID of the managed call request.
• CALL_ID: The database ID of the row in the CALL table describing this call.
• ACTION_TIME: The time that the action occurred.
• AGENT: The agent that the command is run on.
• AGENT_QM: The queue manager used by the agent that the command is run on.
• ARCHITECTURE: The machine architecture of the system that the agent runs on.
• OS_NAME: The name of the operating system that the agent is running on.
• OS_VERSION: The version of the operating system.
• ORIGINATOR_HOST: The host name of the machine that the call request was submitted from.
• ORIGINATOR_USER: The name of the user who submitted the call request, as reported in the request
XML.
• ORIGINATOR_MQ_USER: The name of the user who submitted the call request, as contained in the
IBM MQ message descriptor of the request.
CALL_RESULT
The detailed result of calling a command. A call can have multiple results if retries were enabled.
• ID: Row ID.
• CALL_ID: The database ID of the row in the CALL table that this result applies to.
• SEQUENCE: Which attempt this result applies to, where there have been multiple attempts.
• OUTCOME: The outcome (for example, success or failure) of the command.
• RETURN_CODE: The command return code.
• TIME: The time that the command completed.
• STDOUT: The standard output stream from the command, if it was started.
• STDERR: The standard error stream from the command, if it was started.
• ERROR: If the command could not be started, an error message produced by Managed File Transfer
explaining the problem.
FILE_SPACE_ENTRY
Each row represents a file that has been sent to the named file space.
• ID: The ID of the file space entry.
• FILE_SPACE_NAME: The name of the file space. This is the name of the user that the file space belongs
to.
• TRANSFER_ITEM_ID: The ID of the transfer item that this row relates to.
• ALIAS: The alias name for this file space entry. Typically this alias name is the name of the source file
for the transfer.
• DELETED: The time when the file was deleted from the file space. If the file has not been deleted the
value is null.
METADATA
Metadata associated with a transfer.
• ID: Row ID.
• TRANSFER_EVENT_ID: The transfer_event row that this metadata is associated with, if it relates to a
transfer. This field is null if the metadata is associated with a stand-alone managed call.
• STANDALONE_CALL_ID: If the metadata is associated with a stand-alone managed call, the ID of the
managed call request concerned.
• KEY: The name of the metadata item.
• VALUE: The value of the metadata item.
MONITOR
Resource monitors that trigger Managed File Transfer operations based on external conditions.
• AGENT: The agent that the monitor runs on.
• ID: The hexadecimal ID of the monitor.
• NAME: The name of the monitor.
• QMGR: The queue manager of the agent where the monitor runs.
MONITOR_EXIT_RESULT
The result of running a resource monitor exit.
• ID: Row ID.
• ACTION_ID: The monitor action that the result is associated with.
• EXIT_NAME: The name of the exit that produced this result.
• RESULTCODE: The value that the exit returned, either cancel or proceed.
• RESULTTEXT: The text output from the exit, if provided.
MONITOR_METADATA
Items of metadata associated with a resource monitor.
• ID: Row ID.
• ACTION_ID: The monitor_action that the metadata is associated with.
• KEY: The name of the metadata item.
• PHASE: Whether this metadata item represents the data that was originally submitted or the updated
version after variable substitution.
• VALUE: The value of the metadata item.
SCHEDULE
A transfer schedule registered with an agent.
• AGENT: The name of the agent that has this schedule.
• CREATION_DATE: The point in time that this schedule was created.
• ID: The unique database (not agent) ID for the schedule.
• ID_ON_AGENT: The ID that the agent uses for the database ID. This ID is not unique across agents and
might not even be unique in an agent if the persistent state of the agent is reset.
• LATEST_ACTION: The most recent action that modified the state of this schedule.
SCHEDULE_ACTION
When an event occurs that modifies the schedule state, an action is recorded.
SCHEDULE_SPEC
The details of an individual scheduled transfer.
• ID: Row ID.
• DESTINATION_AGENT: The agent that the files are transferred to.
• DESTINATION_QM: The queue manager used by the destination agent.
• REPEAT_COUNT: How many times to repeat if the schedule repeats and is bound by the number of
occurrences rather than an end time.
• REPEAT_FREQUENCY: How many repeat_intervals there are between scheduled transfers.
• REPEAT_INTERVAL: If the transfer repeats, what interval to repeat at (for example, minutes or weeks).
• SOURCE_AGENT: The agent that the files are transferred from.
• SOURCE_QM: The queue manager used by the source agent.
• START_TIME: The time that the first transfer in the schedule will take place.
• START_TIMEBASE: The time base for the times associated with the transfer. For example, whether to
operate from the time zone of the agent or the time zone of the administrator.
• START_TIMEZONE: The time zone that the time base corresponds to and which will be used in
operating the schedule.
SCHEDULE_ITEM
Each file (or pattern to match at transfer time) is represented by a schedule_item.
• ID: Row ID.
• CHECKSUM_METHOD: How the checksum for the file is calculated
• DESTINATION_EXISTS_ACTION: What action the destination agent takes if the file already exists at
the destination.
• DESTINATION_FILENAME: The file or directory that the files are transferred into.
• DESTINATION_QUEUE: The destination queue name for a file-to-message transfer.
TRANSFER
A single transfer of one or more files.
• TRANSFER_ID: The hexadecimal ID for the transfer.
• JOB_NAME: A user-specified job name for the transfer.
• SCHEDULE_ID: If this transfer is the result of a schedule, the database row ID of the schedule
concerned.
• START_ID: The row ID of the transfer_event that represents the start of the transfer.
• COMPLETE_ID: The row ID of the transfer_event that represents the end of the transfer.
• RESULTCODE: The overall result code for the transfer. The possible values for this column are listed in
the following topic: “Return codes for MFT” on page 334. These codes apply to the transfer as a whole;
see TRANSFER_ITEM.RESULTCODE for the status of each individual item.
• RESULTTEXT: The overall result text for the transfer, if any.
• STATUS: The status of a transfer. The possible values for this column are started, success, partial
success, failure, and cancelled.
• RELATED_TRANSFER_ID: The hexadecimal ID of a previous transfer that is related to this transfer. For
example, if the transfer is a file download , this field will refer to the transfer that uploaded the file.
TRANSFER_CALLS
Links runnable command calls to transfers
• ID: Row ID.
• POST_DESTINATION_CALL: The call made at the destination after the transfer is complete.
• POST_SOURCE_CALL: The call made at the source agent after the transfer is complete.
• PRE_DESTINATION_CALL: The call made at the destination agent before the transfer starts.
• PRE_SOURCE_CALL: The call made at the source agent before the transfer starts.
• TRANSFER_ID: The transfer that the calls in this row are associated with.
TRANSFER_CD_NODE
Information about Connect:Direct nodes that are used in a transfer.
• PNODE: The primary node in the transfer.
• SNODE: The secondary node in the transfer.
• BRIDGE_IS_PNODE: Character indicating which node is the node that is part of the Connect:Direct
bridge. If this value is Y, the primary node is the bridge node. If this value is N, the secondary node is the
bridge node.
• ID: The ID of this row.
TRANSFER_CORRELATOR
Each row contains a correlation string and a number associated with a transfer item.
• CORRELATION_BOOLEAN: A boolean correlation value. Represented by a single character of Y for true
and N for false.
• CORRELATION_STRING: A string correlation value.
• CORRELATION_NUMBER: A numeric correlation value.
TRANSFER_EVENT
An event (start or end) related to a transfer.
• ID: Row ID.
• ACTION_TIME: The time that the transfer action took place.
• SOURCE_AGENT: The name of the agent that the files are transferred from.
• SOURCE_AGENT_TYPE: The type of agent that the files are transferred from. The following values are
possible: 1 = STANDARD, 2 = BRIDGE, 3 = WEB_GATEWAY, 4 = EMBEDDED, 5 = CD_BRIDGE, 6 = SFG.
Note: From IBM MQ 9.0, Managed File Transfer does not support the Web Gateway or web agents.
• SOURCE_QM: The queue manager used by the source agent.
• SOURCE_ARCHITECTURE: The machine architecture of the system hosting the source agent.
• SOURCE_OS_NAME: The operating system of the source agent machine.
• SOURCE_OS_VERSION: The version of operating system of the source agent machine.
• SOURCE_BRIDGE_URL: If the source agent is a protocol bridge agent, the URL of the data source to
which it forms a bridge.
• SOURCE_CD_NODE_ID: The Connect:Direct node that is the source of the transfer.
• DESTINATION_AGENT: The name of the agent that the files are transferred to.
• DESTINATION_AGENT_TYPE: The type of agent that the files are transferred to. The following values
are possible: 1 = STANDARD, 2 = BRIDGE, 3 = WEB_GATEWAY, 4 = EMBEDDED, 5 = CD_BRIDGE, 6 =
SFG.
Note: From IBM MQ 9.0, Managed File Transfer does not support the Web Gateway or web agents.
• DESTINATION_QM: The queue manager used by the destination agent.
• DESTINATION_BRIDGE_URL: If the destination agent is a bridge agent, the URL of the data source to
which it forms a bridge.
• DESTINATION_CD_NODE_ID: The Connect:Direct node that is the destination of the transfer.
• ORIGINATOR_HOST: The host name of the machine that the transfer request was submitted from.
• ORIGINATOR_USER: The name of the user who submitted the transfer request, as reported by the
fteCreateTransfer command.
• ORIGINATOR_MQ_USER: The name of the user who submitted the transfer request, as contained in the
IBM MQ message descriptor of the request.
• TRANSFERSET_TIME: The time that the transfer set was created.
• TRANSFERSET_SIZE: The number of items being transferred.
• TRIGGER_LOG: For transfer definitions involving a trigger, whether to log trigger evaluations that did
not result in a transfer.
TRANSFER_EXIT
Each row represents a transfer exit which was executed as part of a file transfer.
• ID: Row ID.
• EXIT_NAME: The name of the exit.
• TRANSFER_ID: The ID of the completed or canceled transfer that this exit applies to.
• TYPE: The type of exit. This can be one of the following values: SourceStart, SourceEnd, DestinationStart
or DestinationEnd.
• STATUS: The value that the exit returned. This can be cancel or proceed.
• SUPPLEMENT: An optional message explaining the status of the exit.
• DESTINATION_FILE_SIZE: The size of the file name or data set name to use at the
destination.
• DESTINATION_FILENAME: The file name or data set name to use at the destination.
• DESTINATION_LINEEND: The line-end format used in the destination file, if the destination file is
transferred as text.
• DESTINATION_MESSAGE_QUEUE_NAME: The destination queue for the messages that are produced
from the source file during a file to message transfer.
• DESTINATION_MESSAGE_GROUP_ID: If more than one message is produced, the group ID used for
the messages that are produced from the source file during a file to message transfer.
• DESTINATION_MESSAGE_MESSAGE_ID: If only one message is produced, The message ID of the
message that is produced from the source file during a file to message transfer.
• DESTINATION_MESSAGE_COUNT: The number of messages that the source file was split into during a
file to message transfer.
• DESTINATION_MESSAGE_LENGTH: The length of the message that is produced from the source file
during a file to message transfer, in bytes. This value is only set if you specify a length for the output
messages, for example by using the -qs option of the fteCreateTransfer command. If you specify -
qs 20K and the size of your source file is 50 KB, the resulting three messages are 20 KB, 20 KB, and 10
KB in size. In this case the value of DESTINATION_MESSAGE_LENGTH is set to 20480.
• DESTINATION_CORRELATOR_ID: The ID of the correlator information for the destination.
• FILE_MODE: The file transfer mode, for example text or binary.
• ID: Row ID
• RESULTCODE: A numeric code indicating the outcome of the transfer of this item. The possible values
for this column are listed in the following topic: “Return codes for files in a transfer” on page 340. These
codes apply to the individual items in the transfer; see TRANSFER.RESULTCODE for the result of the
transfer as a whole.
• RESULT_TEXT: A textual explanation of the result of the transfer. Typically null if the transfer was
successful.
• SOURCE_CHECKSUM_METHOD: The algorithm used to calculate a checksum of the source file.
• SOURCE_CHECKSUM_VALUE: The checksum value of the source file. The value might be null if
checksumming was disabled.
• SOURCE_DISPOSITION: The action to perform on the source file when the transfer is complete.
• SOURCE_ENCODING: The character encoding used on the source file, if the source file is transferred as
text.
• SOURCE_FILE_SIZE: The size of the file name or data set name to use at the source.
TRANSFER_STATS
A set of statistics generated at the end of a transfer.
• ID: Row ID.
• TRANSFER_ID: The transfer to which the statistics refer.
• START_TIME: The time at which the transfer started. In a system that is busy or has intermittent
connectivity, this time might be later than the time reported in the Started message, as that time
represents the point at which initial processing began rather than the point at which the successful
transfer of data began.
• RETRY_COUNT: The number of times that the transfer had to be retried because of load or availability
issues.
• FILE_FAILURES: The number of files that failed to be transferred.
• FILE_WARNINGS: The number of files that had warnings reported for them when they were
transferred.
TRIGGER_CONDITION
One condition in a basic Managed File Transfer conditional transfer. For example, ''file example.file
exists''.
• ID: Row ID.
• TRANSFER_EVENT_ID: The transfer event that the trigger is related to.
• CONDITION_TYPE: The type of check used in the trigger. For example, the existence of a file or the size
of a file.
• COMPARISON: The specific comparison to make. For example "greater than or equal to".
• VALUE: The value to compare against.
• FILENAME: The file name to examine.
Related concepts
“Configuring an MFT logger” on page 114
Related reference
“fteStartLogger” on page 518
The fteStartLogger command starts a Managed File Transfer logging application.
“fteModifyLogger: run an MFT logger as a Windows service” on page 481
Use the fteModifyLogger command to modify a Managed File Transfer logger so that it can be run as a
Windows service. You can use this command only on Windows platforms, and you must first stop the
logger by using the fteStopLogger command.
“fteStopLogger” on page 521
-rw-r--r--
If you change the umask value to, for example, 0006, by running the command
umask 0006
and the agent restarted, then any destination files that the agent writes has the permissions:
-rw-rw----
Note, that you must restart the agent after you have run the umask command in order for the agent to pick
up the new value.
Although z/OS is used as an example here, the same information applies to UNIX, and Linux platforms.
Standard properties
You can use the -qmp parameter on the fteCreateTransfer command or the fteCreateTemplate
command to specify whether IBM MQ message properties are set on the first message written to the
destination queue by the transfer. For an example of how to use this parameter, see the topic “Example:
Setting IBM MQ message properties on a file-to-message transfer” on page 206
The IBM MQ message properties contain transfer metadata. The message property names are prefixed
with usr.WMQFTE. The usr. prefix makes these message properties available to JMS applications.
usr.WMQFTETransferId
The unique hexadecimal transfer ID.
usr.WMQFTETransferMode
The type of file transfer: binary mode or text mode.
usr.WMQFTESourceAgent
The name of the source agent.
usr.WMQFTEDestinationAgent
The name of the destination agent.
usr.WMQFTEFileName
The name of the source file.
usr.WMQFTEFileSize
The size of the source file in bytes.
usr.WMQFTEFileLastModified
The last modified time of the source file. This value is in units of milliseconds, measured from
00:00:00 UTC, January 1, 1970.
usr.WMQFTEFileIndex
The index of the current file in the list of files that are being transferred. The first file in the list has
index 0.
usr.WMQFTEMqmdUser
The MQMD user ID of the user that submitted the transfer request.
Failure properties
When a file to message transfer fails after the destination agent has written at least one message to the
destination queue, Managed File Transfer writes a blank message to the destination queue. If the -qmp
Name WMQFTEResultCode
Value 40
Name WMQFTESupplement
Value BFGTR0072E: The transfer failed to complete due to the exception BFGIO0205E:The message
data length 1290843 being written
to the output queue "M2F@q2" is greater than the maximum allowed 1048576.
The IBM MQ message properties contain information about the failure. As with the standard message
properties, the message property names are prefixed with usr.WMQFTE and are available to JMS
applications.
usr.WMQFTEReturnCode
The return code of the transfer. For a list of possible values for this return code, see the topic “Return
codes for MFT” on page 334.
usr.WMQFTESupplement
A supplementary message describing in more detail why the transfer failed.
User-defined properties
Metadata specified using the -md parameter with the fteCreateTransfer command can be set as IBM
MQ message properties. If the -qmp parameter is set to true, any metadata specified by the user will be
added to the message header of the first message.
The metadata name is prefixed by usr.. For example, if the metadata is department=accounts, the
IBM MQ message header is set to usr.department=accounts.
You cannot use metadata to specify headers that begin with usr.WMQFTE or usr.com.ibm.wmqfte. If
you specify metadata with a name beginning with WMQFTE or com.ibm.wmqfte this metadata is not used
in the message properties and is ignored.
Related concepts
“Transferring data from files to messages” on page 201
You can use the file-to-message feature of Managed File Transfer to transfer data from a file to a single
message, or multiple messages, on an IBM MQ queue.
Related tasks
“Example: Setting IBM MQ message properties on a file-to-message transfer” on page 206
You can use the -qmp parameter on the fteCreateTransfer command to specify whether IBM MQ
message properties are set on the first message written to the destination queue by the transfer. IBM MQ
message properties allow an application to select messages to process, or to retrieve information about a
message without accessing IBM MQ Message Descriptor (MQMD) or MQRFH2 headers.
Related reference
“IBM MQ message properties read by MFT from messages on source queues” on page 658
The agent reading messages from a source queue in a message to file transfer reads the IBM MQ message
properties from the message. The value of these properties can be used to determine the behavior of a
transfer.
“Return codes for MFT” on page 334
Managed File Transfer commands, Ant tasks, and log messages provide return codes to indicate whether
functions have successfully completed.
“Failure of a file-to-message transfer” on page 208
Ensure that the value of each of the following IBM MQ attributes, in bytes:
– The maximum message size of the agent queue manager
– The maximum message size of the SYSTEM.FTE.STATE.agent_name queue
– The client channel maximum message size, if your agent connects to the queue manager in client
mode
is greater than or equal to the result of the following calculation:
For a file-to-message transfer (which supports a file size of up to 100 MB):
The value of maxInputOutputMessageLength
(This calculation is derived from the fact that three checkpoints can be stored in a state message and
each checkpoint might have to buffer up to the maximum size of a message amount of data.)
• If the queue that the agent is writing to is a remote queue, you might have to change the IBM MQ queue
manager, queue, and channel MAXMSGL attributes.
Ensure that the value of each of the following IBM MQ attributes is greater than or equal to the value of
the maxInputOutputMessageLength agent property:
– The maximum message size of the remote queue manager transmission queue on the agent queue
manager
– The maximum message size of the channel from the agent queue manager to the remote queue
manager
– The maximum message size of the destination queue on the remote queue manager
– The maximum message size of the remote queue manager
Ensure that the value of each of the following IBM MQ attributes, in bytes:
– The maximum message size of the agent queue manager
– The maximum message size of the SYSTEM.FTE.STATE.agent_name queue
– The client channel maximum message size, if your agent connects to the queue manager in client
mode
is greater than or equal to the result of the following calculation:
For a file-to-message transfer (which supports a file size of up to 100 MB):
The value of maxInputOutputMessageLength
(This calculation is derived from the fact that three checkpoints can be stored in a state message and
each checkpoint might have to buffer up to the maximum size of a message amount of data.)
If you exceed the value of one of these properties, the agent stops with the following error in the agent
event log:
BFGUT0002E: An internal error has occurred. Product failure data was captured in file
"FFDC.FTE.20100928170828514.8172766022149157013.log".
BFGSS0025E: An internal error has occurred. The exception is: cc=2 rc=2010 op=put - MQPUT to
The following IBM MQ reason codes might be included in this message in the agent event log:
• rc=2010 This reason code maps to MQRC_DATA_LENGTH_ERROR and indicates that the value of the
client channel maximum message size was exceeded. To resolve this problem ensure that the client
channel maximum message size of the agent queue manager is greater than or equal to the result of the
following calculation:
3 * (maxInputOutputMessageLength) + 1048576
• rc=2030 This reason code maps to MQRC_MSG_TOO_BIG_FOR_Q and indicates that the value of the
maximum message size of the SYSTEM.FTE.STATE.agent_name queue was exceeded. To resolve this
problem ensure that the maximum message size of the SYSTEM.FTE.STATE.agent_name queue is
greater than or equal to the result of the following calculation:
3 * (maxInputOutputMessageLength) + 1048576
• rc=2031 This reason code maps to MQRC_MSG_TOO_BIG_FOR_Q_MGR and indicates that the value of
the maximum message size of the agent queue manager was exceeded. To resolve this problem ensure
that the maximum message size of the agent queue manager is greater than or equal to the result of the
following calculation:
3 * (maxInputOutputMessageLength) + 1048576
The default checkpoint data size is 1 * 5 * 10 * 262144 bytes = 13107200 bytes (12.5MB). The maximum
number of uncommitted messages in a transaction that a queue manager supports is controlled by the
MaxUncommittedMsgs queue manager attribute. The default value of this attribute is 10000 messages.
If the average message size is less than approximately 1310 bytes the default maximum number of
uncommitted messages is exceeded if there are more than 10000 messages to be written.
If you exceed the MaxUncommittedMsgs limit, the agent stops with the following error in the agent event
log:
BFGSS0024E: The agent has received a reason code of '2024' from the message queue interface (MQI).
The agent cannot continue processing and will now end.
BFGAG0139I: The agent has suspended its current transfers and is now stopping.
BFGSS0024E: The agent has received a reason code of '2102' from the message queue interface (MQI).
The agent cannot continue processing and will now end.
BFGAG0062E: The agent has received MQI reason code '2102'. The agent cannot continue processing and
will now end.
BFGAG0061E: The agent ended abnormally
transferAckTimeout * transferAckTimeoutRetries
Common Encodings
These character encoding formats are available on all supported platforms. If your source file is encoded
using one of the formats in this table, and you want to use another of the formats in this table to write the
destination file, you can do so without any consideration of platform. You can use either the canonical
name or any of the aliases to specify an encoding format.
Canonical Name Aliases
IBM-037 ibm-37
windows-874 MS874
ISCII91 iscii
ISO-8859-2 Cp912, ibm912, iso8859-2, iso-8859-2:1987, l2, iso8859_2, csisolatin2, latin2, ibm-912,
8859-2, iso-ir-101
ISO-8859-3 iso8859-3, Cp913, l3, iso8859_3, iso-ir-109, iso-8859-3:1988, latin3, ibm-913, 8859-3,
csisolatin3
ISO-8859-4 Cp914, latin4, iso8859_4, l4, iso-8859-4:1988, ibm-914, iso8859-4, 8859-4, csisolatin4,
iso-ir-110
ISO-8859-9 ibm-920, ibm920, latin5, 8859-9, Cp920, l5, iso8859-9, iso8859_9, csisolatin5, iso-ir-148
JIS0212
MacArabic
MacCentralEurope ibm-1282
MacCroatian ibm-1284
MacCyrillic ibm-1283
MacGreek ibm-1280
MacIceland ibm-1286
MacRoman ibm-1275
MacRomania ibm-1285
MacTurkish ibm-1281
Solaris ISO-8859-1
ISO-8859-1
IBM i
AIX ISO-8859-1
Windows windows-1252
IBM-1047
z/OS
HP (PA-RISC) ISO-8859-1
Platform-specific Encodings
Note: The following two tables contain the same information. It is organized in two different ways to help
you find the correct information, depending whether you are looking up by platform or by encoding.
Encodings by Platform
Canonical names are listed in bold, followed by aliases in parentheses.
Platforms that support only encodings already listed in the Common Encodings table are not listed here.
Platforms by Encoding
Encoding Aliases Platforms on which this encoding is
supported
x-IBM954C cp954c, 954c, ibm-954c, ibm954c SUSE Linux Enterprise Server on System x,
Linux for IBM Z
Windows,
Red Hat Enterprise Linux on System x
x-IBM864S csibm864s, ibm864s, cp864s, 864s, SUSE Linux Enterprise Server on System x,
ibm-864s
Linux for IBM Z
Windows,
Red Hat Enterprise Linux on System x
x-IBM420S 420s, ibm-420s, csibm420s, ibm420s, SUSE Linux Enterprise Server on System x,
cp420s
Linux for IBM Z
Windows,
Red Hat Enterprise Linux on System x
x-IBM1046S ibm-1046s, 1046s, cp1046s, ibm1046s SUSE Linux Enterprise Server on System x,
Linux for IBM Z
Windows,
Red Hat Enterprise Linux on System x
IBM i,
Linux for IBM Z
Windows,
Red Hat Enterprise Linux on System x
IBM i,
Linux for IBM Z
Windows,
Red Hat Enterprise Linux on System x,
z/OS
IBM i,
Linux for IBM Z
Windows,
Red Hat Enterprise Linux on System x
x-SJIS_0213 Solaris,
SUSE Linux Enterprise Server on System x,
Linux for IBM Z
Windows,
Red Hat Enterprise Linux on System x,
HP (PA-RISC)
x-MS932_0213 Solaris,
SUSE Linux Enterprise Server on System x,
Linux for IBM Z
Windows,
Red Hat Enterprise Linux on System x,
HP (PA-RISC)
IBM i,
Linux for IBM Z
AIX,
Windows,
Red Hat Enterprise Linux on System x,
z/OS,
Linux on POWER Systems - Big Endian ,
HP (PA-RISC)
IBM i,
Linux for IBM Z
AIX,
Windows,
Red Hat Enterprise Linux on System x,
z/OS,
Linux on POWER Systems - Big Endian ,
HP (PA-RISC)
AIX,
z/OS,
Linux on POWER Systems - Big Endian
IBM i,
Linux for IBM Z
AIX,
Windows,
Red Hat Enterprise Linux on System x,
z/OS,
Linux on POWER Systems - Big Endian
z/OS,
Linux on POWER Systems - Big Endian
IBM i,
Linux for IBM Z
AIX,
Windows,
Red Hat Enterprise Linux on System x,
z/OS,
Linux on POWER Systems - Big Endian
IBM i,
Linux for IBM Z
AIX,
Windows,
Red Hat Enterprise Linux on System x,
z/OS,
Linux on POWER Systems - Big Endian
IBM i,
Linux for IBM Z
AIX,
Windows,
Red Hat Enterprise Linux on System x,
z/OS,
Linux on POWER Systems - Big Endian
IBM i,
Linux for IBM Z
AIX,
Windows,
Red Hat Enterprise Linux on System x,
z/OS,
Linux on POWER Systems - Big Endian
IBM i,
Linux for IBM Z
AIX,
Windows,
Red Hat Enterprise Linux on System x,
z/OS,
Linux on POWER Systems - Big Endian
IBM i,
Linux for IBM Z
AIX,
Windows,
Red Hat Enterprise Linux on System x,
z/OS,
Linux on POWER Systems - Big Endian
z/OS,
Linux on POWER Systems - Big Endian
IBM i,
Linux for IBM Z
AIX,
Windows,
Red Hat Enterprise Linux on System x,
z/OS,
Linux on POWER Systems - Big Endian
z/OS,
Linux on POWER Systems - Big Endian
IBM i,
Linux for IBM Z
AIX,
Windows,
Red Hat Enterprise Linux on System x,
z/OS,
Linux on POWER Systems - Big Endian
IBM i,
Linux for IBM Z
AIX,
Windows,
Red Hat Enterprise Linux on System x,
z/OS,
Linux on POWER Systems - Big Endian
IBM i,
Linux for IBM Z
AIX,
Windows,
Red Hat Enterprise Linux on System x,
z/OS,
Linux on POWER Systems - Big Endian
IBM i,
Linux for IBM Z
AIX,
Windows,
Red Hat Enterprise Linux on System x,
z/OS,
Linux on POWER Systems - Big Endian
IBM i,
Linux for IBM Z
AIX,
Windows,
Red Hat Enterprise Linux on System x,
z/OS,
Linux on POWER Systems - Big Endian
IBM i,
Linux for IBM Z
AIX,
Windows,
Red Hat Enterprise Linux on System x,
z/OS,
Linux on POWER Systems - Big Endian
z/OS,
Linux on POWER Systems - Big Endian
IBM i,
Linux for IBM Z
AIX,
Windows,
Red Hat Enterprise Linux on System x,
z/OS,
Linux on POWER Systems - Big Endian
IBM i,
Linux for IBM Z
AIX,
Windows,
Red Hat Enterprise Linux on System x,
z/OS,
Linux on POWER Systems - Big Endian
IBM i,
Linux for IBM Z
AIX,
Windows,
Red Hat Enterprise Linux on System x,
z/OS,
Linux on POWER Systems - Big Endian
z/OS,
Linux on POWER Systems - Big Endian
z/OS,
Linux on POWER Systems - Big Endian
IBM i,
Linux for IBM Z
AIX,
Windows,
Red Hat Enterprise Linux on System x,
z/OS,
Linux on POWER Systems - Big Endian
IBM i,
Linux for IBM Z
AIX,
Windows,
Red Hat Enterprise Linux on System x,
z/OS,
Linux on POWER Systems - Big Endian
IBM i,
Linux for IBM Z
AIX,
Windows,
Red Hat Enterprise Linux on System x,
z/OS,
Linux on POWER Systems - Big Endian
IBM i,
Linux for IBM Z
AIX,
Windows,
Red Hat Enterprise Linux on System x,
z/OS,
Linux on POWER Systems - Big Endian
IBM i,
Linux for IBM Z
AIX,
Windows,
Red Hat Enterprise Linux on System x,
z/OS,
Linux on POWER Systems - Big Endian ,
HP (PA-RISC)
IBM i,
Linux for IBM Z
AIX,
Windows,
Red Hat Enterprise Linux on System x,
z/OS,
Linux on POWER Systems - Big Endian
IBM i,
Linux for IBM Z
AIX,
Windows,
Red Hat Enterprise Linux on System x,
z/OS,
Linux on POWER Systems - Big Endian
hp-roman8 roman8, ibm-1051, r8, Cp1051 SUSE Linux Enterprise Server on System x,
IBM i,
Linux for IBM Z
AIX,
Windows,
Red Hat Enterprise Linux on System x,
z/OS,
Linux on POWER Systems - Big Endian ,
HP (PA-RISC)
IBM i,
Linux for IBM Z
AIX,
Windows,
Red Hat Enterprise Linux on System x,
z/OS,
Linux on POWER Systems - Big Endian
IBM i,
Linux for IBM Z
AIX,
Windows,
Red Hat Enterprise Linux on System x,
z/OS,
Linux on POWER Systems - Big Endian
z/OS,
Linux on POWER Systems - Big Endian
z/OS,
Linux on POWER Systems - Big Endian
z/OS,
Linux on POWER Systems - Big Endian
z/OS,
Linux on POWER Systems - Big Endian
z/OS,
Linux on POWER Systems - Big Endian
z/OS,
Linux on POWER Systems - Big Endian
z/OS,
Linux on POWER Systems - Big Endian
z/OS,
Linux on POWER Systems - Big Endian
z/OS,
Linux on POWER Systems - Big Endian
z/OS,
Linux on POWER Systems - Big Endian
IBM i,
Linux for IBM Z
AIX,
Windows,
Red Hat Enterprise Linux on System x,
z/OS,
Linux on POWER Systems - Big Endian
IBM i,
Linux for IBM Z
AIX,
Windows,
Red Hat Enterprise Linux on System x,
z/OS,
Linux on POWER Systems - Big Endian
IBM i,
Linux for IBM Z
AIX,
Windows,
Red Hat Enterprise Linux on System x,
z/OS,
Linux on POWER Systems - Big Endian
z/OS,
Linux on POWER Systems - Big Endian
IBM i,
Linux for IBM Z
AIX,
Windows,
Red Hat Enterprise Linux on System x,
z/OS,
Linux on POWER Systems - Big Endian ,
HP (PA-RISC)
IBM i,
Linux for IBM Z
AIX,
Windows,
Red Hat Enterprise Linux on System x,
z/OS,
Linux on POWER Systems - Big Endian
IBM i,
Linux for IBM Z
AIX,
Windows,
Red Hat Enterprise Linux on System x,
z/OS,
Linux on POWER Systems - Big Endian
IBM i,
Linux for IBM Z
AIX,
Windows,
Red Hat Enterprise Linux on System x,
z/OS,
Linux on POWER Systems - Big Endian
IBM i,
Linux for IBM Z
AIX,
Windows,
Red Hat Enterprise Linux on System x,
z/OS,
Linux on POWER Systems - Big Endian
IBM i,
Linux for IBM Z
AIX,
Windows,
Red Hat Enterprise Linux on System x,
z/OS,
Linux on POWER Systems - Big Endian
z/OS,
Linux on POWER Systems - Big Endian
IBM i,
Linux for IBM Z
AIX,
Windows,
Red Hat Enterprise Linux on System x,
z/OS,
Linux on POWER Systems - Big Endian
IBM i,
Linux for IBM Z
AIX,
Windows,
Red Hat Enterprise Linux on System x,
z/OS,
Linux on POWER Systems - Big Endian
z/OS,
Linux on POWER Systems - Big Endian
IBM i,
Linux for IBM Z
AIX,
Windows,
Red Hat Enterprise Linux on System x,
z/OS,
Linux on POWER Systems - Big Endian
z/OS,
Linux on POWER Systems - Big Endian
IBM i,
HP-UX (Itanium),
AIX,
z/OS,
Linux on POWER Systems - Big Endian ,
HP (PA-RISC)
z/OS,
Linux on POWER Systems - Big Endian ,
HP (PA-RISC)
IBM i,
Linux for IBM Z
AIX,
Windows,
Red Hat Enterprise Linux on System x,
z/OS,
Linux on POWER Systems - Big Endian
z/OS,
Linux on POWER Systems - Big Endian ,
HP (PA-RISC)
IBM i,
Linux for IBM Z
AIX,
Windows,
Red Hat Enterprise Linux on System x,
z/OS,
Linux on POWER Systems - Big Endian
IBM i,
Linux for IBM Z
AIX,
Windows,
Red Hat Enterprise Linux on System x,
z/OS,
Linux on POWER Systems - Big Endian
IBM-954C Cp954c
IBM i,
AIX,
z/OS,
Linux on POWER Systems - Big Endian
z/OS,
Linux on POWER Systems - Big Endian
IBM i,
Linux for IBM Z
AIX,
Windows,
Red Hat Enterprise Linux on System x,
z/OS,
Linux on POWER Systems - Big Endian
z/OS,
Linux on POWER Systems - Big Endian
ISO-8859-14 ISO_8859-14:1998, 8859-14, latin8, iso- SUSE Linux Enterprise Server on System x,
ir-199, iso8859-14, l8, isoceltic,
iso8859_14 IBM i,
Linux for IBM Z
AIX,
Windows,
Red Hat Enterprise Linux on System x,
z/OS,
Linux on POWER Systems - Big Endian
IBM i,
Linux for IBM Z
AIX,
Windows,
Red Hat Enterprise Linux on System x,
z/OS,
Linux on POWER Systems - Big Endian
z/OS,
Linux on POWER Systems - Big Endian
JIS0201
IBM i,
HP-UX (Itanium),
AIX,
z/OS,
Linux on POWER Systems - Big Endian ,
HP (PA-RISC)
JIS0208
IBM i,
HP-UX (Itanium),
AIX,
z/OS,
Linux on POWER Systems - Big Endian ,
HP (PA-RISC)
Johab x-johab
IBM i,
AIX,
z/OS,
Linux on POWER Systems - Big Endian
IBM i,
Linux for IBM Z
AIX,
Windows,
Red Hat Enterprise Linux on System x,
z/OS,
Linux on POWER Systems - Big Endian
IBM i,
AIX,
z/OS,
Linux on POWER Systems - Big Endian ,
HP (PA-RISC)
KSC5601
IBM i,
AIX,
z/OS,
Linux on POWER Systems - Big Endian
MacDingbat
IBM i,
HP-UX (Itanium),
AIX,
z/OS,
Linux on POWER Systems - Big Endian ,
HP (PA-RISC)
MacHebrew
IBM i,
HP-UX (Itanium),
AIX,
z/OS,
Linux on POWER Systems - Big Endian ,
HP (PA-RISC)
MacThai
IBM i,
HP-UX (Itanium),
AIX,
z/OS,
Linux on POWER Systems - Big Endian ,
HP (PA-RISC)
MacUkraine
IBM i,
HP-UX (Itanium),
AIX,
z/OS,
Linux on POWER Systems - Big Endian ,
HP (PA-RISC)
z/OS,
Linux on POWER Systems - Big Endian
Shift_JIS
IBM i,
AIX,
z/OS,
Linux on POWER Systems - Big Endian
z/OS,
Linux on POWER Systems - Big Endian
IBM i,
Linux for IBM Z
AIX,
Windows,
Red Hat Enterprise Linux on System x,
z/OS,
Linux on POWER Systems - Big Endian ,
HP (PA-RISC)
IBM i,
Linux for IBM Z
AIX,
Windows,
Red Hat Enterprise Linux on System x,
z/OS,
Linux on POWER Systems - Big Endian ,
HP (PA-RISC)
IBM i,
Linux for IBM Z
AIX,
Windows,
Red Hat Enterprise Linux on System x,
z/OS,
Linux on POWER Systems - Big Endian ,
HP (PA-RISC)
IBM i,
Linux for IBM Z
AIX,
Windows,
Red Hat Enterprise Linux on System x,
z/OS,
Linux on POWER Systems - Big Endian
IBM i,
Linux for IBM Z
AIX,
Windows,
Red Hat Enterprise Linux on System x,
z/OS,
Linux on POWER Systems - Big Endian
Related concepts
“Using transfer definition files” on page 166
You can specify a transfer definition file which can be used to create a file transfer. The transfer definition
file is an XML file that defines some or all of the information required to create the transfer.
Related reference
“Transferring text files with MFT” on page 625
Text file transfer involves converting the code page of a file from one code page to another. Text file
transfer also involves converting CRLF (carriage return-line feed) characters between systems. This topic
summarizes text file transfer behavior of Managed File Transfer.
“fteCreateTransfer: start a new file transfer” on page 428
The fteCreateTransfer command creates and starts a new file transfer from the command line. This
command can start a file transfer immediately, schedule a file transfer for a future time and date, repeat a
scheduled transfer one or more times, and trigger a file transfer based on certain conditions.
How MFT agents use Java heap and native heap memory
An IBM MQ Managed File Transfer agent runs as a Java process. As such, the agent runs in the virtualized
environment of the Java Virtual Machine (JVM).
The JVM itself is a native process, is bounded by the hardware and operating system. The JVM maintains
two memory areas:
• The Java heap
This contains the instances of Java objects and is managed by garbage collection processing. The
maximum size of the Java heap is allocated during JVM startup using the -Xmx JVM option.
• The native heap
The native heap contains resources for the JVM itself; for example, the Just-In-Time Compiler, Classes,
and ClassLoaders.
An agent primarily uses the Java heap. When performing managed transfers, the agent uses the Java
heap to create Java objects that are required for the transfer. Any file data that is read into buffers by the
agent is also stored in Java heap memory.
An agent does not itself contain any code that uses the native heap. However, there is native code in the
Java message queuing interface (JMQI) that the agent uses to communicate with its agent queue
manager.
This native code is used when an agent connects to its agent queue manager using the BINDINGS
transport. This is a local shared memory connection (sometimes referred to as interprocess
communication, or IPC), rather than a TCP/IP connection which is used if an agent connects using the
CLIENT transport. When an agent is configured to use the BINDINGS transport, the native heap is used to
pass messages and commands between the agent and the agent queue manager.
-Xmx2048M
However, allocating too much Java heap for an application can cause a java.lang.OutOfMemoryError
to occur, due to native heap exhaustion. This is because, as the Java heap space grows, the native heap
must shrink to accommodate it.
For information about how to prevent java.lang.OutOfMemoryErrors that are caused by native heap
exhaustion, see What to do if your MFT agent ABENDS with a java.lang.OutOfMemoryError due to native
memory exhaustion.
414d51204d554e474f20202020202020d857374a69a72622=RunningTransfer
414d51204d554e474f20202020202020d857374a75a72622=RunningTransfer
</entry>
414d51204d554e474f20202020202020d857374a78a72622=RunningTransfer
414d51204d554e474f20202020202020d857374aaba72622=NewSenderTransfer
414d51204d554e474f20202020202020d857374a63a72622=RunningTransfer
</entry>
</properties>
The following example output shows the keys used for each data element in the agent status of a protocol
bridge agent:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<entry key="agentOsName">Windows 7</entry>
<entry key="agentDescription"/>
<entry key="queueManager">QM1</entry>
<entry key="agentTimeZone">Europe/London</entry>
<entry key="agentVersion">1.00</entry>
<entry key="agentName">BRIDGE</entry>
<entry key="protocolBridgeType">ftp</entry>
<entry key="protocolBridgeServerHost">ftpserver.example.org</entry>
<entry key="maxDestinationTransfers">25</entry>
<entry key="maxSourceTransfers">25</entry>
<entry key="maxQueuedTransfers">100</entry>
<entry key="DestinationTransferStates">414d51204d554e474f20202020202020d857374a60a72622=RunningTransfer
</entry>
<entry key="SourceTransferStates">414d51204d554e474f20202020202020d857374a93a72622=NegotiatingTransfer
</entry>
</properties>
Schema
The following schema describes which elements are valid in a monitor list XML message.
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.ibm.com/xmlns/wmqfte/7.0.1/MonitorDefinition"
xmlns="http://www.ibm.com/xmlns/wmqfte/7.0.1/MonitorDefinition">
<xsd:include schemaLocation="Monitor.xsd"/>
<xsd:element name="monitorList">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="status" type="monitorStatusType" minOccurs="1" maxOccurs="1"/>
<xsd:element name="configuration" type="monitorConfigurationType" minOccurs="1" maxOccurs="1"/>
<xsd:element name="pollInterval" type="pollIntervalType" minOccurs="1" maxOccurs="1"/>
<xsd:element name="batch" type="batchType" minOccurs="1" maxOccurs="1"/>
<xsd:any minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="version" type="versionType" use="required"/>
<xsd:attribute name="agent" type="xsd:string" use="required"/>
<xsd:attribute name="monitor" type="xsd:string" use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="monitorStatusType">
<xsd:sequence>
<xsd:any minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="state" type="xsd:token"/>
<xsd:anyAttribute/>
</xsd:complexType>
<xsd:complexType name="monitorConfigurationType">
<xsd:sequence>
<xsd:element name="description" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<xsd:element name="resources" type="monitorResourcesType" minOccurs="0" maxOccurs="1"/>
<xsd:element name="triggerMatch" type="triggerMatchType" minOccurs="0" maxOccurs="1"/>
<xsd:complexType name="monitorListTasksType">
<xsd:sequence>
<xsd:element name="task" type="monitorListTaskType" minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="monitorListTaskType">
<xsd:sequence>
<xsd:element name="name" type="monitorTaskNameType" minOccurs="0" maxOccurs="1"/>
<xsd:element name="description" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="taskXML" type="xsd:string" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
Attribute Description
agent Required. The name of the agent that the resource monitor is defined on.
monitor Required. The name of the monitor. Unique for this agent.
version Required. The version of the monitor list message format.
<status>
The status of the monitor.
Attribute Description
state The state of the monitor.
<configuration>
Group element containing the elements describe the configuration of the monitor.
<description>
A description of the monitor. (Not currently used.)
<resources>
The resource or resources being monitored.
<directory>
A directory to monitor.
Attribute Description
recursionLevel The number of directory levels down from the top level to monitor.
id The ID of the resource.
<queue>
A queue to monitor.
Attribute Description
id The ID of the resource.
<triggerMatch>
Element that contains the <conditions> element.
Attribute Description
operator Comparison operator to use. Only >=' is supported.
units Specifies file size units, which can be one of:
• B - bytes
• KB - kilobytes
• MB - megabytes
• GB - gigabytes
The units value is case insensitive, so mb' works as well as MB'.
<pattern>
File name pattern to match. Default is * (any file will match).
<queueNotEmpty>
This can only be specified if the resource is a queue. Specifies that there must be a
message on the queue for the monitor to be triggered.
<completeGroups>
This can only be specified if the resource is a queue. Specifies that there must be a
complete group of messages present on the queue for the monitor to be triggered. A
single transfer task is executed for each complete group on the queue.
<name>
Name of the condition.
<resource>
Identifies the resource definition to compare the condition against.
Attribute Description
id Unique identifier for the resource.
<tasks>
Group element to contain elements which specify the tasks to invoke when the monitor trigger
conditions are satisfied.
<task>
Group element which defines an individual task that the monitor will invoke when the trigger
conditions are satisfied. Currently only one task can be specified.
<name>
Name of the task. Accepts any alphanumeric characters.
<description>
Description of the task. Any text value is allowed.
<taskXML>
The XML message that describes the task that the monitor is to perform. The contents of this
element are in an escaped XML format.
<pollInterval>
The time interval between each check of the resource against the trigger condition.
Attribute Description
units Specifies the time units for the poll interval. Valid values are:
• seconds
• minutes
• hours
• days
• weeks
• months
• years
<batch>
The maximum number of trigger matches to include in a single batch.
The following XML shows an example of a retained publication which is published to the topic string
SYSTEM.FTE/monitors/agent_name/MONITORTWO when the monitor called MONITORTWO is created on
AGENT_JUPITER. The escaped XML within the <taskXML> element describes the task that is submitted
when the monitor condition is met.
<?xml version="1.0" encoding="UTF-8"?>
<lst:monitorList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:lst="http://www.ibm.com/xmlns/wmqfte/7.0.1/MonitorDefinition"
xsi:schemaLocation="http://www.ibm.com/xmlns/wmqfte/7.0.1/MonitorDefinition MonitorList.xsd"
version="4.00"
agent="AGENT_JUPITER"
monitor="MONITORTWO">
<status state="started"/>
<configuration>
<description/>
<resources>
<directory recursionLevel="0" id="">/srv/nfs/incoming</directory>
</resources>
<triggerMatch>
<conditions>
<condition>
<name/>
<resource id=""/>
<fileMatch>
<pattern>*.completed</pattern>
</fileMatch>
</condition>
</conditions>
</triggerMatch>
<tasks>
<task>
<name/>
<description/>
<taskXML><?xml version="1.0" encoding="UTF-8"?><request
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="4.00"
xsi:noNamespaceSchemaLocation="FileTransfer.xsd"><managedTransfer>
<originator><hostName>example.com.</hostName>
<userID>mqm</userID></originator>
<sourceAgent QMgr="QM_JUPITER" agent="AGENT_JUPITER"/>
<destinationAgent QMgr="QM_JUPITER" agent="AGENT_SATURN"/>
<transferSet><item checksumMethod="MD5" mode="binary">
<source disposition="leave" recursive="false"><file
>/srv/nfs/incoming/*.txt</file></source>
<destination exist="error" type="directory">
<file>/srv/backup</file></destination>
</item></transferSet></managedTransfer>
</request>
</taskXML>
</task>
</tasks>
</configuration>
<pollInterval units="minutes">1</pollInterval>
<batch maxSize="1"/>
</lst:monitorList>
Schema
The following schema describes which elements are valid in a monitor list XML message.
<xsd:include schemaLocation="FileTransfer.xsd"/>
<xsd:element name="schedules">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="managedTransfer" type="scheduledManagedTransferType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="version" type="versionType" use="required"/>
<xsd:attribute name="size" type="xsd:nonNegativeInteger" use="required"/>
<xsd:attribute name="agent" type="xsd:string" use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="scheduledManagedTransferType">
<xsd:sequence>
<xsd:complexType name="scheduleListType">
<xsd:sequence>
<xsd:element name="submit" type="submitType" maxOccurs="1" minOccurs="1"/>
<xsd:element name="repeat" type="repeatType" maxOccurs="1" minOccurs="0"/>
<xsd:element name="next" type="noZoneTimeType" maxOccurs="1" minOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
Attribute Description
agent Required. The name of the source agent that the schedule is defined on.
size Required. The number of schedules defined on this agent.
version Required. The version of the schedule list message format.
<managedTransfer>
Group element containing information about a single schedule.
Attribute Description
id Required. The hexadecimal string ID of the schedule request message.
<originator>
The originator of the schedule request.
<hostName>
The host name of the machine that the schedule request was submitted from.
<userID>
The user ID of the user that submitted the schedule request.
<mqmdUserID>
The MQMD user ID of the user that submitted the schedule request.
<schedule>
Element that contains the elements that describe when the scheduled transfer occurs.
<submit>
Specifies the date and time that the scheduled transfer is due to start.
Attribute Description
timebase Specifies which time zone to use. The value of this attribute can be one of the
following values:
• source - use the time zone of the source agent
• admin - use the time zone of the administrator issuing the command
• UTC - use Coordinated Universal Time
Attribute Description
interval The interval units, which must be one of the following values:
• minutes
• hours
• days
• weeks
• months
• years
<frequency>
The time period that must elapse before the transfer repeats.
Attribute Description
interval The interval units, which must be one of the following values:
• minutes
• hours
• days
• weeks
• months
• years
<expireTime>
Optional element that specifies the date and time that a repeating scheduled transfer stops. This
element and the <expireCount> element are mutually exclusive.
<expireCount>
Optional element that specifies the number of times the scheduled file transfer occurs before
stopping. This element and the <expireTime> element are mutually exclusive.
<next>
Specifies the date and time when the next scheduled transfer is due to start.
<sourceAgent>
Specifies the name of the agent on the system where the source file is located.
Attribute Description
agent Specifies the name of the agent.
QMgr The name of the agent queue manager.
<destinationAgent>
Specifies the name of the agent on the system you want to transfer the file to.
Attribute Description
agent Specifies the name of the agent.
QMgr The name of the agent queue manager.
Attribute Description
log A flag indicating whether trigger failures are logged. The following are valid values:
• yes - log entries are created for failed triggered transfers
• no - log entries are not created for failed triggered transfers
<reply>
Specifies the name of the temporary reply queue generated for synchronous file transfers (specified
with the -w parameter on the command line). The name of the queue is defined by the key
dynamicQueuePrefix in the command.properties configuration file or the default of WMQFTE.* if
not specified.
Attribute Description
QMGR The name of the command queue manager on which the temporary dynamic queue is
generated to receive replies.
<transferSet>
Specifies a group of file transfers you want the scheduled transfer to perform together. During
transmission <transferSet> is a group element containing <item> elements.
Attribute Description
priority Priority level of the transfer. Priority is a value in the range 0-9, where 0 is the lowest
priority. The default priority level is 0 and by default the transfer uses the priority level of
the source agent.
<job>
Optional group element containing job information for the entire transfer specification. <job> is a
user-defined job name identifier that is added to the log message when the transfer has started. This
<job> element is the same as the <job> element that appears in the transfer log message, which is
described in the following topic: “File transfer log message formats” on page 727.
Example
Related tasks
“Creating a file transfer template using IBM MQ Explorer” on page 200
You can create a file transfer template from IBM MQ Explorer or from the command line. You can then use
that template to create new file transfers using the template details or submit the template to start the
file transfer.
Related reference
“fteCreateTemplate: create new file transfer template” on page 412
The fteCreateTemplate command creates a file transfer template that you can keep for future use.
The only required parameter is the -tn (template_name) parameter. All other parameters are optional,
although if you specify a source file specification, you must also provide a destination file. Similarly, if you
specify a destination file, you must also specify a source file specification.
Schema
The following schema describes which elements are valid in a transfer status XML message.
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:include schemaLocation="fteutils.xsd"/>
<xsd:element name="transaction">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="sourceAgent" type="agentType"
maxOccurs="1" minOccurs="1"/>
<xsd:element name="destinationAgent" type="agentType"
maxOccurs="1" minOccurs="1"/>
<xsd:element name="transferSet" type="transferSetType"
maxOccurs="1" minOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="version" type="versionType" use="required"/>
<xsd:attribute name="ID" type="IDType" use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="transferSetType">
<xsd:sequence>
<xsd:element name="stats" type="statsType"
maxOccurs="1" minOccurs="1"/>
<xsd:element name="current" type="currentType"
maxOccurs="1" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="time" type="xsd:dateTime" use="required"/>
</xsd:complexType>
<xsd:complexType name="currentType">
<xsd:sequence>
<xsd:element name="source" type="fileSourceType"
maxOccurs="1" minOccurs="1"/>
<xsd:element name="destination" type="fileDestinationType"
maxOccurs="1" minOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="transferred" type="xsd:nonNegativeInteger"
use="required"/>
<xsd:attribute name="size" type="xsd:nonNegativeInteger" use="required"/>
</xsd:complexType>
<xsd:complexType name="statsType">
<xsd:attribute name="bytes" type="xsd:nonNegativeInteger"
use="required"/>
<xsd:attribute name="seconds" type="xsd:decimal"
use="required"/>
<xsd:attribute name="currentItem" type="xsd:nonNegativeInteger"
use="required"/>
<xsd:attribute name="totalItems" type="xsd:nonNegativeInteger" use="required"/>
</xsd:complexType>
</xsd:schema>
Attribute Description
version Specifies the version of this element as supplied by Managed File Transfer.
<sourceAgent>
Specifies the name of the agent on the system where the source file is located.
Attribute Description
agent The name of the agent.
QMgr The name of the agent queue manager.
<destinationAgent>
Specifies the name of the agent on the system you want to transfer the file to.
Attribute Description
agent The name of the agent.
QMgr The name of the agent queue manager.
<transferset>
Specifies a group of file transfers being performed together. All of the files in the transfer must
originate at the same source agent and end at the same destination agent.
Attribute Description
time Specifies the date and time (in date time format).
<stats>
Required. Defines metrics about the transfer, including the number of bytes copied so far, in the given
number of seconds. Also supplies the current item number out of the total number of items in the
<transferSet>.
Attribute Description
bytes Number of bytes copied so far.
seconds Number of seconds taken to transfer those bytes.
currentItem The index of the current item being transferred.
totalItems The total number of items being transferred.
<current>
Optional element. Group element that contains elements that specify the file transfer currently in
progress. The <current> element indicates how many bytes of data have been transferred so far for
the current item and the expected total number of bytes
<source>
Group element that contains the element specifying the source file name.
<file>
Specifies the source path of the file that is being transferred. The path is as specified for the transfer.
This path might differ from the path that is output as part of the transfer log, which is the absolute
form the of path.
<destination>
Group element that contains the element specifying the destination file name or specification.
Attribute Description
alias Specifies an alias for the destination file. This alias is the name of the source file,
excluding any directory path specified for the transfer.
filespace Specifies the name of the file space where the destination file is written.
<queue>
When used with the <destination> element, specifies the name of the queue you want to transfer to.
This name is in the format QUEUE or QUEUE@QUEUE_MANAGER.
If you want to monitor file transfers or collect data about them, set up a subscription to a wildcard topic
tailored to the transfers you are interested in. For example:
Log/#
or,
Log/FTEAGENT/#
This subscription can be durable or non-durable. Durable subscriptions continue to exist when a
subscribing application's connection to the queue manager is closed. Non-durable subscriptions exist
only as long as a subscribing application's connection to the queue manager remains open.
Schema
The following schema describes which elements are valid in a transfer log XML message.
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:include schemaLocation="fteutils.xsd"/>
<xsd:element name="transaction">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="action" type="actionType"
maxOccurs="1" minOccurs="0"/>
<xsd:element name="sourceAgent" type="agentExitStatusType"
maxOccurs="1" minOccurs="0"/>
<xsd:element name="sourceWebGateway" type="webGatewayType"
maxOccurs="1" minOccurs="0"/>
<xsd:element name="sourceWebUser" type="webUserType"
maxOccurs="1" minOccurs="0"/>
<xsd:element name="destinationAgent" type="agentExitStatusType"
maxOccurs="1" minOccurs="0"/>
<xsd:element name="destinationWebGateway" type="webGatewayType"
maxOccurs="1" minOccurs="0"/>
<xsd:element name="destinationWebUser" type="webUserType"
maxOccurs="1" minOccurs="0"/>
<xsd:element name="agent" type="agentExitStatusType"
maxOccurs="1" minOccurs="0"/>
<xsd:element name="originator" type="origRequestType"
maxOccurs="1" minOccurs="1"/>
<xsd:element name="status" type="statusType"
maxOccurs="1" minOccurs="0"/>
<xsd:element name="trigger" type="triggerType"
maxOccurs="1" minOccurs="0"/>
<xsd:element name="transferSet" type="transferSetType"
maxOccurs="1" minOccurs="1"/>
<xsd:element name="job" type="jobType"
maxOccurs="1" minOccurs="0"/>
<xsd:element name="scheduleLog" type="scheduleLogType"
maxOccurs="1" minOccurs="0"/>
<xsd:element name="statistics" type="statisticsType"
maxOccurs="1" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="version" type="versionType" use="required"/>
<xsd:attribute name="ID" type="IDType" use="required"/>
<xsd:attribute name="relatedID" type="IDType" use="optional"/>
<xsd:attribute name="agentRole" type="agentRoleType" use="optional"/>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="transferSetType">
<xsd:sequence>
<xsd:element name="metaDataSet" type="metaDataSetType"
maxOccurs="1" minOccurs="0"/>
<xsd:element name="call" type="callGroupType"
maxOccurs="1" minOccurs="0"/>
<xsd:element name="preSourceCall" type="callGroupType"
maxOccurs="1" minOccurs="0"/>
<xsd:element name="postSourceCall" type="callGroupType"
maxOccurs="1" minOccurs="0"/>
<xsd:element name="preDestinationCall" type="callGroupType"
maxOccurs="1" minOccurs="0"/>
<xsd:element name="postDestinationCall" type="callGroupType"
maxOccurs="1" minOccurs="0"/>
<xsd:element name="item" type="itemType"
maxOccurs="unbounded" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="index" type="xsd:nonNegativeInteger" use="optional"/>
<xsd:attribute name="size" type="xsd:nonNegativeInteger" use="optional"/>
<xsd:attribute name="startTime" type="xsd:dateTime" use="required"/>
<xsd:attribute name="total" type="xsd:nonNegativeInteger" use="required"/>
<xsd:attribute name="bytesSent" type="xsd:nonNegativeInteger" use="required"/>
</xsd:complexType>
<xsd:complexType name="itemType">
<xsd:sequence>
<xsd:element name="source" type="fileSourceChecksumType"
maxOccurs="1" minOccurs="1"/>
<xsd:element name="destination" type="fileDestinationChecksumType"
maxOccurs="1" minOccurs="1"/>
<xsd:element name="status" type="statusType"
maxOccurs="1" minOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="mode" type="modeType" use="required"/>
</xsd:complexType>
<xsd:complexType name="fileSourceChecksumType">
<xsd:complexContent>
<xsd:extension base="fileSourceType">
<xsd:sequence>
<xsd:element name="checksum" type="checksumType" minOccurs="0"
maxOccurs="1"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="fileDestinationChecksumType">
<xsd:complexContent>
<xsd:extension base="fileDestinationType">
<xsd:sequence>
<xsd:element name="checksum" type="checksumType"
minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="actionType">
<xsd:simpleContent>
<xsd:extension base="actionEnumType">
<xsd:attribute name="time" type="xsd:dateTime" use="required"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:simpleType name="actionEnumType">
<xsd:complexType name="systemInfoType">
<xsd:attribute name="architecture" type="xsd:string" use="required"/>
<xsd:attribute name="name" type="xsd:string" use="required"/>
<xsd:attribute name="version" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:element name="malformed">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="action" type="actionType"
maxOccurs="1" minOccurs="1"/>
<xsd:element name="agent" type="agentExitStatusType"
maxOccurs="1" minOccurs="0"/>
<xsd:element name="status" type="statusType"
maxOccurs="1" minOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="version" type="versionType" use="required"/>
<xsd:attribute name="ID" type="IDType" use="required"/>
<xsd:attribute name="agentRole" type="agentRoleType" use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="notAuthorized">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="action" type="actionType"
maxOccurs="1" minOccurs="1"/>
<xsd:element name="originator" type="origRequestType"
maxOccurs="1" minOccurs="1"/>
<xsd:element name="authority" type="xsd:string"
minOccurs="1" maxOccurs="1"/>
<xsd:element name="status" type="statusType"
maxOccurs="1" minOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="version" type="versionType" use="required"/>
<xsd:attribute name="ID" type="IDType" use="required"/>
<xsd:attribute name="agentRole" type="agentRoleType" use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="statisticsType">
<xsd:sequence>
<xsd:element name="actualStartTime" type="xsd:dateTime"
maxOccurs="1" minOccurs="0"/>
<xsd:element name="retryCount" type="xsd:nonNegativeInteger"
maxOccurs="1" minOccurs="1"/>
<xsd:element name="numFileFailures" type="xsd:nonNegativeInteger"
maxOccurs="1" minOccurs="1"/>
<xsd:element name="numFileWarnings" type="xsd:nonNegativeInteger"
maxOccurs="1" minOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="webGatewayType">
<xsd:attribute name="webGatewayName" type="xsd:string" use="optional"/>
<xsd:attribute name="webGatewayAgentName" type="xsd:string" use="optional"/>
<xsd:attribute name="webGatewayAgentQMgr" type="xsd:string" use="optional"/>
</xsd:complexType>
<xsd:complexType name="webUserType">
<xsd:attribute name="webGatewayName" type="xsd:string" use="required"/>
<xsd:attribute name="webGatewayAgentName" type="xsd:string" use="optional"/>
<xsd:attribute name="webGatewayAgentQMgr" type="xsd:string" use="optional"/>
</xsd:complexType>
</xsd:schema>
Note: From IBM MQ 9.0, Managed File Transfer does not support the Web Gateway or web agents.
Attribute Description
version Specifies the version of this element as detailed by Managed File
Transfer.
ID Specifies the unique transaction ID. The ID can be a maximum
of 48 alphanumeric characters.
relatedID Optional. If the transaction is the delete or download of a file
from a file space, relatedID specifies the transaction ID of the
transfer that uploaded the file to the file space.
agentRole Optional. Specifies whether the agent concerned is on the
source or destination system
xmlns:xsi Namespace declaration. Indicates that the elements and data
types used in this schema derive from the "http://www.w3.org/
2001/XMLSchema-instance" namespace.
xsi:noNamespaceSchemaLocation Specifies the name and location of the XML schema document
to validate this message against if there is no namespace
declaration. The value you specify for this attribute must refer to
a Managed File Transfer TransferLog.xsd document.
<action>
Describes the status of the file transfer at the time logged by the time attribute. The status can be one
of the following values:
• started
• progress
• completed
• cancelled
• malformed (indicates the file transfer request message content can not be interpreted.)
• notAuthorized
• deleted
Attribute Description
time The time that the transfer status was captured, expressed in UTC format.
<sourceAgent>
Specifies the name of the agent on the system where the source file is located. Only <sourceAgent> or
<sourceWebUser> can be specified.
<startExits>
Group element that contains one or more user exit elements. This element can occur once only.
<endExits>
Group element that contains one or more user exit elements. This element can occur once only.
<systemInfo>
Describes the system architecture, name, and version. This element can occur once only.
Attribute Description
agent The name of the agent on the source system.
bridgeURL Optional. If the agent is a protocol bridge agent, the host name of the system hosting
the protocol server.
pnode Optional. If the agent is a Connect:Direct bridge agent, the name of the Connect:Direct
primary node involved in the transfer.
snode Optional. If the agent is a Connect:Direct bridge agent, the name of the Connect:Direct
secondary node involved in the transfer.
bridgeNode Optional. If the agent is a Connect:Direct bridge agent, the name of the Connect:Direct
node that is part of the Connect:Direct bridge. This is the same node as either the
primary node or the secondary node.
<destinationAgent>
Specifies the name of the agent on the system the file was transferred to. Either <destinationAgent>
or <destinationWebUser> can be specified.
Attribute Description
agent The name of the agent on the destination system.
QMgr The name of the queue manager on the destination system.
agentType The type of the agent. Valid values are:
• STANDARD - a normal agent
• BRIDGE - a protocol bridge agent
• CD_BRIDGE - a Connect:Direct bridge agent
• EMBEDDED - an embedded agent
• SFG - a Sterling File Gateway embedded agent
bridgeURL Optional. If the agent is a protocol bridge agent, the host name of the system hosting
the protocol server.
pnode Optional. If the agent is a Connect:Direct bridge agent, the name of the Connect:Direct
primary node involved in the transfer.
snode Optional. If the agent is a Connect:Direct bridge agent, the name of the Connect:Direct
secondary node involved in the transfer.
bridgeNode Optional. If the agent is a Connect:Direct bridge agent, the name of the Connect:Direct
node that is part of the Connect:Direct bridge. This is the same node as either the
primary node or the secondary node.
<startExits>
Group element that contains one or more user exit elements. This element can occur once only.
<endExits>
Group element that contains one or more user exit elements. This element can occur once only.
<trigger>
Group element that contains the trigger elements defined in the original transfer request. These
elements can be either or both of the following:
<fileExist>
Trigger condition based on whether a file exists
<fileSize>
Trigger condition based on whether a file meets or exceeds the specified size
<transferSet>
Specifies a group of file transfers you want to perform together. During transmission <transferSet> is a
group element containing <item> elements.
Attribute Description
startTime Records the time that the set of transfers started, expressed in UTC format.
total Specifies the total number of items in this set of transfers.
index Optional attribute. Specifies the position of the first item in progress of the transfer set.
The index attribute increments from zero. For example, if the index is set to 1, the
progress message is the second of two items.
size Optional attribute. Specifies the number of items in the progress report.
priority Optional attribute. Priority level of the transfer. Priority is a value in the range 0-9, where
0 is the lowest priority. The default priority level is 0 and by default the transfer uses the
source agent priority level.
<metaDataSet>
Group element containing one or more of the following attributes:
<metaData>
Attribute Description
key The key half of a metadata key-value pair. The <metaData> element content contains
the value half of the pair. For example <metaData key="testkey1">testvalue1</
metaData>
<scheduleLog>
Group element that contains elements specifying the source and destination file names and locations.
Attribute Description
ID Matches the schedule ID if the transfer is a scheduled transfer.
<item>
Group element that contains elements specifying the source and destination file names and locations.
<source>
Group element that contains the <file> element or the <queue> element, and the <checksum>
element for the file on the source system.
Attribute Description
recursive Specifies that files are transferred recursively in subdirectories when the
<source> element is a directory or contains wildcard characters.
disposition Specifies the action that is taken on the <source> element when <source> has
successfully been transferred to its destination. The valid options are as
follows:
• leave - the source files are left unchanged.
• delete - the source files are deleted from the source system after the source
file is successfully transferred.
<queue>
When used with the <source> element, specifies the name of the queue that the transferred
messages were read from, which is located on the source agent queue manager.
Attribute Description
messageCount The number of messages that were read from the queue.
groupId The IBM MQ group ID of the messages read from the queue.
<destination>
Group element that contains the <file> element or the <queue> element, and <checksum> element
for the destination.
Only one of <file> and <queue> is present as a child element of destination.
exist Specifies the action that is taken if a destination file exists on the destination
system. The valid options are as follows:
• error - reports an error and the file is not transferred.
• overwrite - overwrites the existing destination file.
This attribute cannot be present if the <destination> element has a child
element of <queue>.
<file>
Specifies the absolute path of the file that was transferred (both at the source and destination). The
fully-qualified path is in the format consistent with your operating system, for example C:/from/
here.txt. File URIs are not used.
<queue>
When used with the <destination> element, specifies the name of the queue that was transferred to,
which is located on any queue manager that is connected to the destination agent queue manager.
Attribute Description
messageCount The number of messages that were written to the queue.
messageLength The length of the messages written to the queue.
groupId If the transfer request specified that the file is split into multiple messages, the
value of this attribute is the IBM MQ group ID of the messages written to the
queue.
messageId If the transfer request did not specify that the file is split into multiple messages,
the value of this attribute is the IBM MQ message ID of the message written to the
queue.
<checksum>
Optional element.
Attribute Description
version
ID
agentRole Either source agent or destination agent
<statistics>
Group element for statistical information for the transfer (when available).
<actualStartTime>
The actual time that the agent started running the transfer. Typically, the time is the same as (or
very close to) the start time recorded for the transfer. However, when an agent is busy submitted
transfers might be queued until the agent has capacity to run the transfers.
<retryCount>
The number of times that the transfer went into the recovery state and was retried by the agent. A
transfer can go into a recovery state because the source and destination agents lose
communication, either because of an IBM MQ network error or because they are not receiving
data or acknowledgment messages for a period. This period is determined by the agent
properties: transferAckTimeout and transferAckTimeoutRetries.
<numFileFailures>
The number of files in the transferSet that failed to transfer successfully.
<numFileWarnings>
The number of files in the transferSet that generated warnings while being transferred, but
otherwise transferred successfully.
Examples
Examples of XML messages that conform to this schema are provided for each of the following types of
transfer:
• A transfer of a single file
• A transfer that contains multiple files
• A failed file transfer
• A transfer defined with a trigger
• A transfer started by a schedule
• A transfer that calls user exits
• A transfer through a Connect:Direct bridge node
Progress:
Completed:
</transaction>
<!--
In this example the source transfer start exit has modified the
metadata as follows:
Progress:
Completed:
Progress:
Completed:
Schema
The following schema describes which elements are valid in a schedule log XML message.
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:include schemaLocation="fteutils.xsd"/>
<xsd:element name="schedulelog">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="originator" type="hostUserIDType"
maxOccurs="1" minOccurs="0"/>
<xsd:element name="action" type="actionType"
maxOccurs="1" minOccurs="1"/>
<xsd:element name="schedule" type="scheduleType"
maxOccurs="1" minOccurs="0"/>
<xsd:element name="sourceAgent" type="agentType"
maxOccurs="1" minOccurs="0"/>
<xsd:element name="destinationAgent" type="agentClientType"
maxOccurs="1" minOccurs="0"/>
<xsd:element name="status" type="statusType"
maxOccurs="1" minOccurs="0"/>
<xsd:element name="transferSet" type="transferSetType"
maxOccurs="1" minOccurs="0"/>
<xsd:element name="job" type="jobType"
maxOccurs="1" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="version" type="versionType" use="required"/>
<xsd:attribute name="ID" type="xsd:string" use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="actionType">
<xsd:simpleContent>
<xsd:extension base="actionEnumType">
<xsd:attribute name="time" type="xsd:dateTime" use="required"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:simpleType name="actionEnumType">
<xsd:restriction base="xsd:token">
<xsd:enumeration value="submit"/>
<xsd:enumeration value="delete"/>
<xsd:enumeration value="expire"/>
<xsd:enumeration value="skipped"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="transferSetType">
<xsd:sequence>
<xsd:element name="item" type="itemType"
maxOccurs="unbounded" minOccurs="1"/>
<xsd:complexType name="itemType">
<xsd:sequence>
<xsd:element name="source" type="fileSourceType"
maxOccurs="1" minOccurs="1"/>
<xsd:element name="destination" type="fileDestinationType"
maxOccurs="1" minOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="mode" type="modeType" use="required"/>
<xsd:attribute name="checksumMethod" type="checkSumMethod" use="required"/>
</xsd:complexType>
</xsd:schema>
Attribute Description
version Specifies the version of this element as detailed by Managed File Transfer.
ID The unique identifier for the submitted schedule file transfer.
<originator>
Group element that contains the elements specifying the originator of the request.
<hostName>
The host name of the system where the source file is located.
<userID>
The user ID that originated the file transfer.
<mqmdUserID>
The MQ user ID that was supplied in the message descriptor (MQMD)
<action>
Specifies the action to take with the scheduled transfer matching the ID attribute of <schedulelog>
element. This element must be one of the following values:
• submit - new scheduled transfer
• delete - cancel schedule transfer
• expire - schedule transfer entry about to be processed
• skipped - a transfer that was scheduled cannot be started because the agent is offline. This
message is logged when the agent becomes available to indicate the transfer was skipped.
Attribute Description
time Specifies the date and time the log entry was published (in date time format).
<sourceAgent>
Specifies the name of the agent on the system where the source file is located.
Attribute Description
agent Specifies the name of the agent.
QMgr The name of the agent queue manager.
Attribute Description
agent Specifies the name of the agent.
QMgr The name of the agent queue manager.
<status>
The result code and supplement messages.
<transferSet>
Specifies a group of file transfers you want to perform together. During transmission <transferSet> is a
group element containing <item> elements.
Attribute Description
size Specifies the number of transfer items.
priority Priority level of the transfer. Priority is a value in the range 0-9, where 0 is the lowest
priority. The default priority level is 0 and by default the transfer uses the priority level of
the source agent.
<item>
Group element that contains elements specifying the source and destination file names and locations.
Attribute Description
mode Specifies the transfer mode as being either binary or text.
checksumMethod Specifies the type of hash algorithm that generates the message digest to create
the digital signature. Permitted values are MD5 or none
<source>
Group element that contains the <file> and <checksum> elements for the file on the source system.
Attribute Description
recursive Specifies that files are transferred recursively in subdirectories when the <source>
element is a directory or contains wildcard characters.
disposition Specifies the action that is taken on the <source> element when <source> has
successfully been transferred to its destination. The valid options are as follows:
• leave - the source files are left unchanged.
• delete - the source files are deleted from the source system after the source file is
successfully transferred.
<destination>
Group element that contains the <file> and <checksum> elements for the file on the destination
system.
Attribute Description
type The type of file or directory at the destination. The valid options are as follows:
• file - specifies a file as the destination
• directory - specifies a directory as the destination
exist Specifies the action that is taken if a destination file exists on the destination system. The
valid options are as follows:
• error - reports an error and the file is not transferred.
• overwrite - overwrites the existing destination file.
<file>
Specifies the name of the file to transfer. Use the fully qualified path in the format consistent with your
operating system, for example C:/from/here.txt. Do not use file URIs.
Attribute Description
encoding The encoding for a text file transfer.
EOL Specifies the end of line marker. Permitted values are:
• LF - line feed character only
• CRLF - carriage return and line feed character sequence
<job>
Group element that contains an element specifying job details. <job> is a user-defined job name
identifier that is added to the log message when the transfer has started. This <job> element is the
same as the <job> element that is included in the transfer request message, which is described in the
following topic: “File transfer request message format” on page 759.
<name>
The value of name can be any string.
Examples
Examples of XML messages that conform to this schema are provided for each of the following scheduled
transfer actions:
• A scheduled transfer is created
• A scheduled transfer is canceled
• A schedule transfer expires
Transfers that are started by a schedule are logged in the same way as a standard transfer. For examples
of log messages for transfers started by a schedule, see “Scheduled file transfer log message examples”
on page 742.
The ID attribute value corresponds to the ID of the pending transfer request ID in the schedules message.
The <action> element value of "expire" confirms the schedule entry has now been removed from the
schedule list and is being processed. A schedule message for the agent is published with the expired
entry no longer present.
Related reference
“Scheduled file transfer log message formats” on page 748
Every time a request for a scheduled file transfer is processed by the agent, a schedule log message is
published to the coordination queue manager (on its SYSTEM.FTE/Log/agent name/schedule ID topic).
This message conforms to the ScheduleLog.xsd XML schema.
“Scheduled file transfer log message examples” on page 742
When a transfer is in progress, messages are published to the SYSTEM.FTE topic with a topic string of Log/
agent_name/transfer_ID. The XML examples show the log messages that are created when a file transfer
occurs as a result of a schedule.
Log/#
or,
Log/agent_name/#
This subscription can be durable or non-durable. Durable subscriptions continue to exist when a
subscribing application's connection to the queue manager is closed. Non-durable subscriptions exist
only as long as a subscribing application's connection to the queue manager remains open.
The MonitorLog.xsd schema document is located in the MQ_INSTALLATION_PATH/mqft/samples/
schema directory. The MonitorLog.xsd schema imports fteutils.xsd, which is in the same
directory.
Schema
The following schema describes which elements are valid in a monitor log XML message.
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:include schemaLocation="fteutils.xsd"/>
<xsd:element name="monitorLog">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="originator" type="hostUserIDType" maxOccurs="1"
minOccurs="0"/>
<xsd:element name="references" type="referencesType" maxOccurs="1"
minOccurs="0"/>
<xsd:element name="action" type="monitorActionType" maxOccurs="1"
minOccurs="1"/>
<xsd:element name="monitorAgent" type="agentType" maxOccurs="1"
minOccurs="1"/>
<xsd:element name="status" type="statusType" maxOccurs="1"
minOccurs="1"/>
<xsd:element name="monitorMetaData" type="monitorMetaDataType" maxOccurs="1"
minOccurs="0"/>
<xsd:element name="monitorExits" type="exitGroupType" maxOccurs="1"
minOccurs="0"/>
<xsd:complexType name="monitorActionType">
<xsd:simpleContent>
<xsd:extension base="monitorActionEnumType">
<xsd:attribute name="time" type="xsd:dateTime" use="required"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:simpleType name="monitorActionEnumType">
<xsd:restriction base="xsd:token">
<xsd:enumeration value="create"/>
<xsd:enumeration value="delete"/>
<xsd:enumeration value="start"/>
<xsd:enumeration value="stop"/>
<xsd:enumeration value="triggerSatisfied"/>
<xsd:enumeration value="triggerNotSatisfied"/>
<xsd:enumeration value="triggerFail"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="monitorMetaDataType">
<xsd:sequence>
<xsd:element name="originalMetaData" type="metaDataSetType" maxOccurs="1" minOccurs="0"/>
<xsd:element name="updatedMetaData" type="metaDataSetType" maxOccurs="unbounded"
minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="taskXMLRequestType">
<xsd:sequence>
<xsd:element name="originalRequest" type="xsd:string" maxOccurs="1" minOccurs="1"/>
<xsd:element name="updatedRequest" type="xsd:string" maxOccurs="1" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="taskId" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="referencesType">
<xsd:sequence>
<xsd:element name="createRequest" type="xsd:string" maxOccurs="1" minOccurs="0"/>
<xsd:element name="taskRequest" type="xsd:string" maxOccurs="1" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="monitorXMLRequestType">
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="type" type="xmlContentEnumType" use="required"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:simpleType name="xmlContentEnumType">
<xsd:restriction base="xsd:token">
<xsd:enumeration value="escapedXML"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>
<originator>
Group element that contains the elements specifying the originator of the request.
<hostName>
The host name of the system where the source file is located.
<userID>
The user ID that originated the file transfer.
<mqmdUserID>
Optional. The IBM MQ user ID that was supplied in the message descriptor (MQMD).
<references>
References to the IDs of other messages associated with this monitor action.
<createRequest>
The message ID of the XML request message that was used to create the monitor.
<taskRequest>
The message ID of the XML request message that the monitor submits as a result of this action.
<action>
The action that occurred, which this log message is associated with. The value inside the element can
be one of the following: create, delete, start, stop, triggerSatisfied, triggerNotSatisfied, or triggerFail.
<monitorAgent>
The agent that is monitoring the resource.
Attribute Description
agent Required. The name of the agent.
QMgr Optional. The name of the queue manager that the agent connects to.
bridgeURL Optional. If the agent is a protocol bridge agent, the URL of the protocol server.
<status>
The status of the resource monitor action being logged.
Attribute Description
resultCode Required. The integer result code from the action.
<supplement>
Additional information about the status of the resource monitor action being logged.
<monitorMetaData>
Group element that contains the <originalMetaData> and <updatedMetaData> elements.
<originalMetaData>
Element that contains one or more <metadata> elements that describe the metadata of the
monitor before the action occurs.
<updatedMetaData>
Element that contains one or more <metadata> elements that describe the metadata of the
monitor after the action occurs.
Attirbute Description
key The key of the metadata.
<monitorExits>
Group element containing one or more <exit> elements.
<exits>
Element describing an exit run by the resource monitor.
Attribute Description
name Required. The name of the resource monitor exit.
<status>
The status of the resource monitor exit that is being logged.
Attribute Description
resultCode Required. The integer result code from the exit.
<supplement>
Additional information about the status of the resource monitor exit that is being logged.
<jobDetails>
Element containing a single <name> element.
<name>
The name of the job..
<taskXMLRequest>
Group element that contains the <originalRequest> and <updatedRequest> elements.
Attribute Description
taskId The ID of the task request message.
<originalRequest>
Element that contains the escaped XML request message for the task that the monitor performs.
<updatedRequest>
Element that contains the updated escaped XML request message for the task that the monitor
performs.
<monitorXMLRequest>
The monitor XML request.
Attribute Description
type Required. The format of the monitor XML request data inside of the
<monitorXMLRequest> element. The only valid value is escapedXML.
Examples
Examples of XML messages that conform to this schema are provided for each of the following monitor
actions:
• A monitor is created
• The condition of a monitor is satisfied when the monitor polls the resource
Schema
The following schema describes which elements are valid in a transfer request XML message.
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:include schemaLocation="fteutils.xsd"/>
<!--
Defines the request of a managed transfer and version number
<request version="1.00" ...
<managedTransfer>
...
</managedTransfer>
</request>
-->
<xsd:element name="request">
<xsd:complexType>
<xsd:choice>
<xsd:element name="managedTransfer" type="managedTransferType"/>
<xsd:element name="deleteScheduledTransfer" type="deleteScheduledTransferType"/>
<!--
Defines the cancel request of a managed transfer and version number
<cancel version="1.00"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FileTransfer.xsd">
<originator>
<hostName>myMachine</hostName>
<userID>myUserId</userID>
</originator> - Delete a scheduled transfer.
<transfer>
Transfer ID to Cancel
</transfer>
</cancel>
-->
<xsd:element name="cancel">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="originator" type="hostUserIDType" maxOccurs="1" minOccurs="1"/>
<xsd:choice>
<xsd:element name="transfer" type="IDType" maxOccurs="1" minOccurs="1"/>
<xsd:element name="call" type="IDType" maxOccurs="1" minOccurs="1"/>
</xsd:choice>
<xsd:element name="reply" type="replyType" maxOccurs="1" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="version" type="versionType" use="required"/>
</xsd:complexType>
</xsd:element>
<!--
Defines the transfer definition element structure.
<transferSpecifications>
<item ...
<item ...
</transferSpecifications>
-->
<xsd:element name="transferSpecifications">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="item" type="itemType" minOccurs="1" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!--
Define a managed transfer of an instigator and request
<managedTransfer>
<originator>
...
</originator>
<schedule>
<submit timebase="source"|"UTC">2008-12-07T16:07"</submit>
<repeat>
<frequency interval="hours">2</frequency>
<expireTime>2008-12-0816:07</expireTime>
</repeat>
</schedule>
<trigger>
...
</trigger>
<transferSet>
...
</transferSet>
</managedTransfer>
-->
<xsd:complexType name="managedTransferType">
<xsd:sequence>
<xsd:element name="originator" type="origTransferRequestType" maxOccurs="1"
<!--
This is a modified form of origRequestType which is used on a managed transfer request.
The hostName and userID are mandatory attributes in this case.
-->
<xsd:complexType name="origTransferRequestType">
<xsd:sequence>
<xsd:element name="hostName" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<xsd:element name="userID" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<xsd:element name="mqmdUserID" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="webBrowser" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="webUserID" type="xsd:string" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<!--
Defines the transferset of source and destination agent and one or more files
<transferset priority="1">
<metaDataSet>
<metaData key="keyname">keyvalue</metaData>
<metaData key="keyname">keyvalue</metaData>
</metaDataSet>
<item>
...
</item>
</transferset>
-->
<xsd:complexType name="transferSetType">
<xsd:sequence>
<xsd:element name="metaDataSet" type="metaDataSetType" maxOccurs="1" minOccurs="0"/>
<xsd:element name="preSourceCall" type="commandActionType" maxOccurs="1"
minOccurs="0"/>
<xsd:element name="postSourceCall" type="commandActionType" maxOccurs="1"
minOccurs="0"/>
<xsd:element name="preDestinationCall" type="commandActionType" maxOccurs="1"
minOccurs="0"/>
<xsd:element name="postDestinationCall" type="commandActionType" maxOccurs="1"
minOccurs="0"/>
<xsd:element name="item" type="itemType" maxOccurs="unbounded" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="priority" type="priorityType" use="optional"/>
</xsd:complexType>
<!--
Define a file pair with source and destination
<item mode=[binary|text]>
<source recursive="false" disposition="leave">
<file>filename</file>
</source>
</item>
-->
<xsd:complexType name="itemType">
<xsd:sequence>
<xsd:element name="source" type="fileSourceType" maxOccurs="1" minOccurs="1"/>
<xsd:element name="destination" type="fileDestinationType" maxOccurs="1" minOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="mode" type="modeType" use="required"/>
<xsd:attribute name="checksumMethod" type="checkSumMethod" use="required"/>
</xsd:complexType>
<!--
Defines the request to delete scheduled file transfer.
<deleteScheduledTransfer>
<originator>
<delete>
<xsd:complexType name="managedCallType">
<xsd:sequence>
<xsd:element name="originator" type="origRequestType" maxOccurs="1" minOccurs="1"/>
<xsd:element name="agent" type="agentType" maxOccurs="1" minOccurs="1"/>
<xsd:element name="reply" type="replyType" maxOccurs="1" minOccurs="0"/>
<xsd:element name="transferSet" type="callTransferSetType" maxOccurs="1" minOccurs="1"/>
<xsd:element name="job" type="jobType" maxOccurs="1" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="callTransferSetType">
<xsd:sequence>
<xsd:element name="metaDataSet" type="metaDataSetType" maxOccurs="1" minOccurs="0"/>
<xsd:element name="call" type="commandActionType" maxOccurs="1" minOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="priority" type="priorityType" use="optional"/>
</xsd:complexType>
</xsd:schema>
Element descriptions
<request>
Group element containing all the elements required to specify a file transfer request.
Attribute Description
version Specifies the version of this element as supplied by Managed File Transfer.
<managedTransfer>
Group element that contains all the elements required for a single file transfer or single group of file
transfers.
<deleteScheduledTransfer>
Group element that contains originator and ID information to cancel a schedule transfer.
<managedCall>
Group element that contains all the elements required for a single managed call of a program or
executable.
<ID>
Unique identifier that specifies the transfer request to delete from the list of pending scheduled
transfers.
<originator>
Group element that contains the elements specifying the originator of the request.
<hostName>
The host name of the system where the source file is located.
<mqmdUserID>
Optional. The IBM MQ user ID that was supplied in the message descriptor (MQMD).
<schedule>
Group element describing the scheduled time for the file transfer, the repeat behavior, and when the
next occurrence is due.
<submit>
Specifies the date and time that the scheduled transfer is due to start.
Attribute Description
timebase Specifies which time zone to use. This attribute can have one of the following values:
• source - use the time zone of the source agent
• admin - use the time zone of the administrator issuing the command
• UTC - use Coordinated Universal Time
<repeat>
Group element that contains details about how often a scheduled transfer repeats, how many times a
scheduled transfer repeats, and when a scheduled transfer stops repeating.
<frequency>
The time period that must elapse before the transfer repeats.
Attribute Description
interval The interval units, which must be one of the following values:
• minutes
• hours
• days
• weeks
• months
• years
<expireTime>
Optional element that specifies the date and time that a repeating scheduled transfer stops. This
element and the <expireCount> element are mutually exclusive.
<expireCount>
Optional element that specifies the number of times the scheduled file transfer occurs before
stopping. This element and the <expireTime> element are mutually exclusive.
<sourceAgent>
Specifies the name of the agent on the system where the source file is located.
Attribute Description
agent Specifies the name of the agent.
QMgr The name of the agent queue manager.
Attribute Description
agent Specifies the name of the agent.
QMgr The name of the agent queue manager.
hostName The host name or IP address of the agent queue manager.
portNumber The port number used for client connections to the destination agent queue manager.
channel The channel name used to connect to the destination agent queue manager.
<trigger>
Optional element that specifies a condition that must be true for the file transfer to take place.
Attribute Description
log A flag indicating whether trigger failures are logged. The valid values are as follows:
• yes - log entries are created for failed triggered transfers
• no - log entries are not created for failed triggered transfers
<fileExist>
Specifies a comma-separated list of file names located on the same system as the source agent. If a
file in this name list satisfies the condition of the trigger, the transfer occurs. This element and the
<fileSize> element are mutually exclusive.
Attribute Description
comparison Indicates how to evaluate source file names against the name list. The valid values are
as follows:
• = at least one file name in the name list must match
• != a minimum of one of the files in the name list does not exist
<fileSize>
Specifies a comma-separated list of file names located on the same system as the source agent. If a
file in this name list satisfies the condition of the trigger, the transfer occurs. This element and the
<fileExist> element are mutually exclusive.
Attribute Description
comparison Indicates how to evaluate source file names against the name list. The valid value is as
follows:
• >= one of the file names in the name list exists and has a minimum size as specified
in the value attribute
value File size specified as an integer value with units specified as one of the following:
• B - bytes
• KB - kilobytes
• MB - megabytes
• GB - gigabytes
(the units value is not case-sensitive)
<reply>
Specifies the name of the temporary reply queue generated for synchronous file transfers (specified
with the -w parameter on the command line). The name of the queue is defined by the key
dynamicQueuePrefix in the command.properties configuration file or the default of WMQFTE.* if
not specified.
Attribute Description
detailed Whether detailed transfer result information is required in the reply message. Multiple
reply messages for each transfer can be generated. The valid values are as follows:
• true - detailed reply information is required. The format of the information is the same
as that published to the transfer log in the progress messages, that is, the
<transferSet> element. For more information, see “File transfer log message formats”
on page 727. Detailed reply information is present only when the transfer source agent
has the enableDetailedReplyMessages property set to true.
• false - detailed reply information is not required.
The default value is false.
QMGR The name of the command queue manager on which the temporary dynamic queue is
generated to receive replies.
persistent Whether the message written to the reply queue is persistent. The valid values are as
follows:
• true - the message is persistent
• false - the message is not persistent
• qdef - the persistence of the message is defined by the properties of the reply queue
The default value is false.
<transferSet>
Specifies a group of file transfers you want to perform together or a group of managed calls that you
want to perform together. During transmission <transferSet> is a group element containing <item>
elements.
Attribute Description
priority Priority level of the transfer. Priority is a value in the range 0-9, where 0 is the lowest
priority. The default priority level is 0 and by default the transfer uses the priority level of
the source agent.
<metaDataSet>
Optional group element containing one or more metadata items.
<metaData>
Specifies the user-defined metadata that is passed to the exit points called by the agent. The element
contains the metadata value as a string.
Attribute Description
key Metadata name as a string
<command>
Specifies the program or executable to call. The command must be located on the agent command
path. For more information, see Table 41 on page 539. This element can contain optional <argument>
elements.
Attribute Description
name The name of the command.
successRC The successful return code that this command returns. Default is 0.
retryCount The number of times that the command is to be retried if it fails.
retryWait The time, in seconds, to wait between retries of the command.
type The type of program to be called. The valid values are antscript, jcl, or executable.
<argument>
Specifies an argument to pass to the command.
<item>
Group element that contains elements specifying the source and destination file names and locations.
Attribute Description
mode Specifies the transfer mode as either binary or text.
checksumMethod Specifies the type of hash algorithm that generates the message digest to create
the digital signature. The valid values are MD5 or none.
<source>
Group element that specifies files on the source system and whether they are removed after the
transfer completes
Attribute Description
recursive Specifies that files are transferred recursively in subdirectories when the <source>
element is a directory or contains wildcard characters.
disposition Specifies the action that is taken on the <source> element when <source>has
successfully been transferred to its destination. The valid values are as follows:
• leave - the source files are left unchanged.
• delete - the source files are deleted from the source system after the source file is
successfully transferred.
<file>
Specifies the transfer source. For Multiplatforms, the transfer source can be a file or a
directory name. For the z/OS platform, the transfer source can be a file, directory, data set, or PDS
name. Use the fully qualified path in the format consistent with your operating system, for example
C:/from/here.txt. Do not use file URIs.
Attribute Description
alias Specifies an alias for the source file. This alias is the name of the source
file, excluding any directory path specified for the transfer.
EOL Specifies the end of line marker for text transfers. Valid values are:
encoding The encoding of the source file for a text file transfer.
Specifies the delimiter that is included between records in record-
delimiter
oriented source files, for example, z/OS data sets. Specify the delimiter
value as two hexadecimal digits in the range 00-FF, prefixed by x. For
example, x12 or x03,x7F.
delimiterType Specifies the type of delimiter that is included in the destination file after
individual message data. The valid values is as follows:
• binary - a hexadecimal delimiter
This attribute is available only if you have enabled the 7.0.4.1 function.
<queue>
When used with the <source> element, specifies the name of the queue to transfer from, which must
be located on the source agent queue manager. Use the format QUEUE. Do not include the queue
manager name, the queue must be present on the source agent queue manager. You cannot use the
<queue> element inside the <source> element, if you have used it inside of the <destination>
element.
Attribute Description
useGroups Specifies whether to transfer only the first complete group of messages from the
source queue. The valid values are as follows:
• true - transfer only the first complete group of messages
• false - transfer all messages on the source queue
groupId Specifies the group of messages to read from the source queue. This attribute is
valid only when the value of the useGroups attribute is true.
delimiter Specifies the delimiter that is included in the destination file between individual
message data.
delimiterPosition Specifies whether the delimiter is included in the destination file before or after
individual message data. The valid values are as follows:
• prefix - the delimiter is included before the data
• postfix - the delimiter is included after the data
waitTime Specifies the time, in seconds, for the source agent to wait for either:
• a message to appear on the source queue, if the queue is empty or has become
empty
• a complete group to appear on the source queue, if the useGroups attribute has
been set to true
For information about setting the waitTime value, see “Guidance for specifying a
wait time on a message-to-file transfer” on page 661.
<destination>
Group element that specifies the destination and the behavior if files exist at the destination agent.
You can specify only one of <file> and <queue> as a child element of destination.
Attribute Description
type The type of destination. The valid values are as follows:
• file - specifies a file as the destination
• directory - specifies a directory as the destination
exist Specifies the action that is taken if a destination file exists on the destination system. The
valid values are as follows:
<file>
Specifies additional settings for the previously-described <destination> element. Use the fully
qualified path in the format consistent with your operating system, for example C:/from/here.txt.
Do not use file URIs.
Attribute Description
alias Specifies an alias for the <destination> file. This alias is the name of the source
file, excluding any directory path specified for the transfer.
encoding The encoding of the <destination> file for a text file transfer.
EOL Specifies the end of line marker for text transfers. Valid values are:
• LF - line feed character only
• CRLF - carriage return and line feed character sequence
truncateRecords Optional. Specifies that <destination> records longer than the LRECL data set
attribute are truncated.
• True - the records are truncated
• False - the records are wrapped
The default setting is false.
<queue>
When used with the <destination> element, specifies the name of the queue to transfer to, which can
be located on any queue manager that is connected to the destination agent queue manager. Use the
format QUEUE@QM where QUEUE is the name of the queue to put the messages on and QM is the
queue manager where the queue is located. You cannot use the <queue> element inside the
<destination> element, if you have used it inside of the <source> element.
Attribute Description
delimiter The delimiter to split the file into multiple messages.
delimiterType Specifies the type of delimiter. The valid values are as follows:
• text - a Java regular expression
• binary - a sequence of hexadecimal bytes
• size - a number of bytes, kibibytes, or mebibytes. For example, 1 B, 1
K, or 1 M.
delimiterPosition Specifies whether the delimiter is expected before or after the data to
include in individual messages. The valid options are as follows:
• prefix - the delimiter is expected before the data
• postfix - the delimiter is expected after the data
includeDelimiterInMessage A boolean specifying whether to include the delimiters that were used
to split the file into multiple messages at the end of the messages.
<filespace>
Group element specifying the name of the file space to transfer to.
<name>
When used with the <filespace> element, the value of this element specifies the name of the file
space.
<preSourceCall>
Group element specifying a command to call at the source of the transfer, before the transfer starts.
<postSourceCall>
Group element specifying a command to call at the source of the transfer, after the transfer
completes.
<preDestinationCall>
Group element specifying a command to call at the destination of the transfer, before the transfer
starts.
<postDestinationCall>
Group element specifying a command to call at the destination of the transfer, after the transfer
completes.
<command>
When used with the <preSourceCall>, <postSourceCall>, <preDestinationCall>, or
<postDestinationCall> element, this element specifies the command to be called. The command must
be located on the agent command path. For more information, see Table 41 on page 539.
Attribute Description
name The name of the command to run.
successRC The return code that is expected if the command runs successfully.
<argument>
When used with the <command> element, this element specifies an argument to be passed in to the
command. You can have any number of <argument> elements inside a <command> element.
<transferSpecifications>
Group element that contains <item> elements for multiple transfer groups. See Using transfer
definition files for further details about how to use this element.
<cancel>
Group element containing all the elements required to cancel a file transfer in progress.
Attribute Description
version Specifies the version of this element as supplied by Managed File Transfer.
<transfer>
When used with the <cancel> element, the value of this element specifies the transfer request ID to
be canceled.
<job>
Group element containing job information.
<jobName>
Specifies logical job identifier.
Attribute Description
version Specifies the version of this element as supplied by Managed File Transfer.
<originator>
Group element that contains the elements specifying the originator of the request.
<hostName>
The host name of the system where the source file is located.
<userID>
The user ID that originated the file transfer.
<mqmdUserID>
Optional. The IBM MQ user ID that was supplied in the message descriptor (MQMD).
<job>
Optional. Group element containing job information.
<jobName>
Specifies logical job identifier.
Examples
Examples of XML messages that conform to this schema are provided for each of the following requests:
• Create a file transfer
• Create an asynchronous file transfer request
• Cancel a file transfer
• Create a scheduled transfer
• Delete a scheduled transfer
• Create a managed call
• Create a file transfer that includes managed calls
The <reply> element is populated with the name of the command queue manager where a temporary
dynamic queue has been created to receive reply about the successful (or otherwise) completion of the
transfer. The name of the temporary dynamic queue is composed of two parts:
• The prefix as defined by the key dynamicQueuePrefix in the command.properties configuration
file (it is WMQFTE. by default)
• The ID of the queue as generated by IBM MQ
Related reference
“File transfer request message format” on page 759
File transfers are initiated by XML messages arriving at an agent command queue, typically as a result of a
user issuing a file transfer command or by using the IBM MQ Explorer. The transfer request XML must
conform to the FileTransfer.xsd schema and have the <request> element as the root element. The
FileTransfer.xsd schema document is located in the MQ_INSTALLATION_PATH/mqft/samples/
schema directory. The FileTransfer.xsd schema imports fteutils.xsd, which is in the same
directory.
Related reference
“File transfer request message format” on page 759
File transfers are initiated by XML messages arriving at an agent command queue, typically as a result of a
user issuing a file transfer command or by using the IBM MQ Explorer. The transfer request XML must
conform to the FileTransfer.xsd schema and have the <request> element as the root element. The
FileTransfer.xsd schema document is located in the MQ_INSTALLATION_PATH/mqft/samples/
schema directory. The FileTransfer.xsd schema imports fteutils.xsd, which is in the same
directory.
Related concepts
“Specifying programs to run with MFT” on page 253
You can run programs on a system where a Managed File Transfer Agent is running. As part of a file
transfer request, you can specify a program to run either before a transfer starts, or after it finishes.
Additionally, you can start a program that is not part of a file transfer request by submitting a managed
call request.
Related reference
“File transfer request message format” on page 759
File transfers are initiated by XML messages arriving at an agent command queue, typically as a result of a
user issuing a file transfer command or by using the IBM MQ Explorer. The transfer request XML must
conform to the FileTransfer.xsd schema and have the <request> element as the root element. The
FileTransfer.xsd schema document is located in the MQ_INSTALLATION_PATH/mqft/samples/
schema directory. The FileTransfer.xsd schema imports fteutils.xsd, which is in the same
directory.
Schema
The following schema describes which elements are valid in a monitor request XML message.
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.ibm.com/xmlns/wmqfte/7.0.1/
MonitorDefinition"
xmlns="http://www.ibm.com/xmlns/wmqfte/7.0.1/MonitorDefinition">
<xsd:include schemaLocation="FileTransfer.xsd"/>
<xsd:element name="monitor">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="name" type="monitorNameType"
minOccurs="1" maxOccurs="1"/>
<xsd:element name="description" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="pollInterval" type="pollIntervalType"
minOccurs="1" maxOccurs="1"
default="10"/>
<xsd:element name="batch" type="batchType"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="agent" type="agentNameType"
minOccurs="1" maxOccurs="1"/>
<xsd:element name="resources" type="monitorResourcesType"
minOccurs="0"
maxOccurs="1"/>
<xsd:element name="triggerMatch" type="triggerMatchType"
maxOccurs="1" minOccurs="1"/>
<xsd:element name="reply" type="replyType"
maxOccurs="1" minOccurs="0"/>
<xsd:element name="tasks" type="monitorTasksType"
maxOccurs="1" minOccurs="1"/>
<xsd:element name="originator" type="origRequestType"
maxOccurs="1" minOccurs="1"/>
<xsd:element name="job" type="jobType"
maxOccurs="1" minOccurs="0"/>
<xsd:element name="defaultVariables" type="defaultVariablesType"
maxOccurs="1" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="version" type="versionType" use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="deleteMonitor">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="name" type="monitorNameType"
minOccurs="1" maxOccurs="1"/>
<xsd:element name="originator" type="origRequestType"
maxOccurs="1" minOccurs="1"/>
<xsd:element name="reply" type="replyType"
maxOccurs="1" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="version" type="versionType" use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="monitorResourcesType">
<xsd:choice>
<xsd:sequence>
<xsd:element name="directory" type="monitoredDirectoryType"
minOccurs="1" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:element name="queue" type="monitoredQueueType"/>
</xsd:choice>
</xsd:complexType>
<xsd:complexType name="monitoredDirectoryType">
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="recursionLevel"
type="xsd:nonNegativeInteger"/>
<xsd:attribute name="id" type="resourceIdAttrType"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="monitoredQueueType">
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="id" type="resourceIdAttrType"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="triggerMatchType">
<xsd:sequence>
<xsd:element name="conditions" type="conditionsType"
minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="conditionsType">
<xsd:choice minOccurs="1">
<xsd:element name="allOf" type="listPredicateType"
minOccurs="1" maxOccurs="1"/>
<xsd:element name="anyOf" type="listPredicateType"
minOccurs="1" maxOccurs="1"/>
<xsd:element name="condition" type="conditionType"
minOccurs="1" maxOccurs="1"/>
</xsd:choice>
</xsd:complexType>
<xsd:complexType name="listPredicateType">
<xsd:choice>
<xsd:element name="condition" type="conditionType"
minOccurs="1" maxOccurs="unbounded"/>
</xsd:choice>
</xsd:complexType>
<xsd:complexType name="conditionType">
<xsd:sequence>
<xsd:element name="name" type="conditionNameType"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="resource" type="resourceIdType"
minOccurs="0" maxOccurs="1"/>
<xsd:choice minOccurs="1">
<xsd:element name="fileMatch"
type="fileMatchConditionType"
minOccurs="1" maxOccurs="1"/>
<xsd:element name="fileNoMatch"
type="fileNoMatchConditionType"
minOccurs="1"
maxOccurs="1"/>
<xsd:element name="fileSize"
type="fileSizeConditionType"
minOccurs="1" maxOccurs="1"/>
<xsd:element name="queueNotEmpty"
type="queueNotEmptyConditionType"
minOccurs="1" maxOccurs="1"/>
<xsd:complexType name="fileMatchConditionType">
<xsd:sequence>
<xsd:element name="pattern" type="conditionPatternType"
minOccurs="0" default="*.*"/>
<xsd:element name="exclude" type="conditionPatternType"
minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="fileNoMatchConditionType">
<xsd:sequence>
<xsd:element name="pattern" type="conditionPatternType"
minOccurs="0" default="*.*"/>
<xsd:element name="exclude" type="conditionPatternType"
minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="fileSizeConditionType">
<xsd:sequence>
<xsd:element name="compare" type="sizeCompareType"
minOccurs="1" default="0"/>
<xsd:element name="pattern" type="conditionPatternType"
minOccurs="0" default="*.*"/>
<xsd:element name="exclude" type="conditionPatternType"
minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="sizeCompareType">
<xsd:simpleContent>
<xsd:extension base="xsd:int">
<xsd:attribute name="operator" type="sizeOperatorType"
use="required"/>
<xsd:attribute name="units" type="fileSizeUnitsType"
use="required"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:simpleType name="sizeOperatorType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value=">="/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="fileSizeUnitsType">
<xsd:restriction base="xsd:string">
<xsd:pattern value="[bB]|[kK][bB]|[mM][bB]|[gG][bB]"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="conditionPatternType">
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="type" type="patternTypeAttributeType"
use="optional" default="wildcard"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:simpleType name="patternTypeAttributeType">
<xsd:restriction base="xsd:token">
<xsd:enumeration value="regex"/>
<xsd:enumeration value="wildcard"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="conditionNameType">
<xsd:simpleContent>
<xsd:extension base="xsd:string"/>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="completeGroupsConditionType"/>
<xsd:complexType name="fileSizeSameType">
<xsd:sequence>
<xsd:element name="pattern" type="conditionPatternType"
minOccurs="1" maxOccurs="1"/>
<xsd:element name="exclude" type="conditionPatternType"
minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="polls" type="positiveIntegerType" use="required"/>
</xsd:complexType>
<xsd:complexType name="pollIntervalType">
<xsd:simpleContent>
<xsd:extension base="xsd:int">
<xsd:attribute name="units" type="timeUnitsType"
use="optional" default="minutes"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="batchType">
<xsd:attribute name="maxSize" type="positiveIntegerType" use="required"/>
</xsd:complexType>
<xsd:simpleType name="timeUnitsType">
<xsd:restriction base="xsd:token">
<xsd:enumeration value="seconds"/>
<xsd:enumeration value="minutes"/>
<xsd:enumeration value="hours"/>
<xsd:enumeration value="days"/>
<xsd:enumeration value="weeks"/>
<xsd:enumeration value="months"/>
<xsd:enumeration value="years"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="monitorTasksType">
<xsd:sequence>
<xsd:element name="task" type="monitorTaskType"
minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="monitorTaskType">
<xsd:sequence>
<xsd:element name="name" type="monitorTaskNameType"
minOccurs="1" maxOccurs="1"/>
<xsd:element name="description" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="transfer" type="transferTaskType"
minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="transferTaskType">
<xsd:sequence>
<xsd:element name="request" type="transferRequestType"
minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="resourceIdType">
<xsd:attribute name="id" type="xsd:string" use="optional"/>
</xsd:complexType>
<xsd:simpleType name="resourceIdAttrType">
<xsd:restriction base="xsd:string"></xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="monitorNameType">
<xsd:restriction base="xsd:string">
<xsd:pattern value="[^%\*]+"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="agentNameType">
<xsd:restriction base="xsd:string">
<xsd:pattern value="[.%_0-9A-Z]*"/>
<xsd:simpleType name="monitorTaskNameType">
<xsd:restriction base="xsd:string">
<xsd:pattern value=".*"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="defaultVariablesType">
<xsd:sequence>
<xsd:element name="variable" type="variableType"
maxOccurs="unbounded" minOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="variableType">
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="key" type="xsd:string" use="required"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:schema>
Element descriptions
<monitor>
Group element containing all the elements required to cancel a file transfer in progress.
Attribute Description
version Specifies the version of this element as supplied by Managed File Transfer.
<name>
The name of the monitor, unique within the monitor's agent.
<description>
Description of the monitor (not currently used).
<pollInterval>
The time interval between each check of the resource against the trigger condition.
Attribute Description
units Specifies the time units for the poll interval. Valid values are:
• seconds
• minutes
• hours
• days
• weeks
• months
• years
<agent>
Name of the agent the monitor is associated with.
<resources>
Group element that contains the elements specifying the resources to monitor.
Attribute Description
recursionLevel The number of subdirectories to monitor in addition to the specified directory.
id Unique identifier for the resource.
<queue>
Queue name specifying the queue to monitor on the monitoring agent's queue manager.
<triggerMatch>
Group element that contains the elements specifying the trigger conditions to compare with the
monitored resource.
<conditions>
Group element that contains the elements specifying the type of condition to compare with the
monitored resource.
<allOf>
Predicate that specifies that all contained conditions must be satisfied.
<anyOf>
Predicate that specifies that any contained conditions must be satisfied.
<condition>
Defines a comparison condition that will contribute to the overall monitor trigger condition.
<name>
Name of the condition.
<resource>
Identifies the resource definition to compare the condition against.
Attribute Description
id Unique identifier for the resource.
If the resource that is being monitored is a directory, one of the following three elements must be
specified in the condition:
• fileMatch
• fileNoMatch
• fileSize
If the resource that is being monitored is a queue, one of the following two elements must be specified in
the condition:
• queueNotEmpty
• completeGroups
<fileMatch>
Group element for a file name match condition.
<pattern>
Specifies a file name match pattern. Files on the resource must match the pattern in order to satisfy
the condition. The default pattern is * (any file will match).
<fileNoMatch>
Group element for an inverse file name match condition.
<pattern>
Specifies an inverse file name match pattern. If no files on the monitored resource match, the
condition is satisfied. The default pattern is * (the absence of any file will match).
Attribute Description
operator Comparison operator to use. Only >=' is supported.
units Specifies file size units, which can be one of:
• B - bytes
• KB - kilobytes
• MB - megabytes
• GB - gigabytes
The units value is case insensitive, so mb' works as well as MB'.
<pattern>
File name pattern to match. Default is * (any file will match).
<queueNotEmpty>
This can only be specified if the resource is a queue. Specifies that there must be a message on the
queue for the monitor to be triggered.
<completeGroups>
This can only be specified if the resource is a queue. Specifies that there must be a complete group of
messages present on the queue for the monitor to be triggered. A single transfer task is executed for
each complete group on the queue.
<reply>
Optional element that is used to specify reply queue for asynchronous requests.
Attribute Description
QMGR Queue manager name.
<tasks>
Group element to contain elements which specify the tasks to invoke when the monitor trigger
conditions are satisfied.
<task>
Group element which defines an individual task that the monitor will invoke when the trigger
conditions are satisfied. Currently only one task can be specified.
<name>
Name of the task. Accepts any alphanumeric characters.
<description>
Description of the task. Any text value is allowed.
<transfer>
Group element that defines a transfer task.
<request>
Group element that defines the type of task. This must contain one of the following elements which
are inherited from the FileTransfer.xsd schema definition:
• managedTransfer
• managedCall
<originator>
Group element that contains the elements specifying the originator of the request.
<hostName>
The host name of the system where the source file is located.
<userID>
The user ID that originated the file transfer.
<mqmdUserID>
Optional. The IBM MQ user ID that was supplied in the message descriptor (MQMD).
<job>
Group element containing job information.
<jobName>
Specifies logical job identifier.
<defaultVariables>
Group element containing one or more variable elements. These variables are used in variable
substitution when monitoring a queue. For more information about variable substitution, see
“Customizing MFT tasks with variable substitution” on page 185.
<variable>
Element containing the value associated with the key given by the key attribute.
Attribute Description
key The name of the default variable.
Element descriptions
<deleteMonitor>
Group element containing all the elements required to stop and delete a monitor.
Attribute Description
version Specifies the version of this element as supplied by Managed File Transfer.
<name>
Name of monitor to delete.
<originator>
Group element that contains the elements specifying the originator of the request.
<hostName>
The host name of the system where the source file is located.
<userID>
The user ID that originated the file transfer.
<mqmdUserID>
Optional. The IBM MQ user ID that was supplied in the message descriptor (MQMD).
<reply>
Specifies the name of the temporary reply queue generated for the request. The name of the queue is
as defined by the key dynamicQueuePrefix in the command.properties configuration file. If this
is not specified, the queue name has a default value of WMQFTE.
Examples
Examples of XML messages that conform to this schema are provided for each of the following monitor
requests:
• Create a monitor
• Delete a monitor
Related reference
“MFT monitor request message formats” on page 776
Resource monitors are created when a suitable XML message arrives at an agent's command queue,
typically as a result of a user issuing the fteCreateMonitor command or using the IBM MQ Explorer
interface.
Schema
The following schema describes which elements are valid in an ping agent request XML message.
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.ibm.com/xmlns/wmqfte/7.0.1/PingAgent"
targetNamespace="http://www.ibm.com/xmlns/wmqfte/7.0.1/PingAgent">
<xsd:include schemaLocation="fteutils.xsd"/>
<xsd:element name="pingAgent">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="originator" type="origRequestType" maxOccurs="1" minOccurs="1"/>
<xsd:element name="agent" type="agentType" maxOccurs="1" minOccurs="1"/>
<xsd:element name="reply" type="replyType" maxOccurs="1" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="version" type="versionType" use="required"/>
</xsd:complexType>
</xsd:element>
</xsd:schema>
Attribute Description
agent Required. The name of the agent.
QMgr Optional. The queue manager that the agent connects to.
<reply>
The name of the queue for the agent to send the reply message to.
Attribute Description
QMGR Required. The name of the queue manager where the reply queue is located.
Example
This example shows a ping agent message sent to the agent AGENT_JUPITER. If AGENT_JUPITER is
active and able to process agent requests, it sends a response message to the queue
WMQFTE.4D400F8B20003708 on QM_JUPITER.
Schema
The following schema describes which elements are valid in a reply XML message.
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:include schemaLocation="TransferLog.xsd"/>
<xsd:element name="reply">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="transferSet" type="transferSetType" minOccurs="0"
</xsd:schema>
Attribute Description
ID The ID of the reply.
version The version of the reply message format.
detailedReplyMessagesDisabled A notification that the agent has disabled the detailed reply
enableDetailedReplyMessages agent property is set to false).
<transferSet>
Specifies the transfer result information of the files requested for transfer. For more information, see
“File transfer log message formats” on page 727.
<status>
The status of the action that the agent was requested to perform.
Attribute Description
resultCode The result code returned from the action that the agent performed.
<supplement>
Additional response information about the action that the agent was requested to perform.
Example
In the following section is an example reply message:
Attribute Description
version Specifies the version of this element as detailed by Managed File Transfer.
ID The unique identifier for the request that was not authorized.
<originator>
Group element that contains the elements specifying the originator of the request.
<authority>
Specifies the level of Managed File Transfer access authority that the user required to perform the
requested action.
<mqmdUserID>
The IBM MQ user ID that was supplied in the message descriptor (MQMD)
<action>
Specifies the authorization status of the request matching the ID attribute of <notAuthorized>
element.
<status>
The result code and supplement messages.
From IBM MQ 9.0.0 Fix Pack 2 and IBM MQ 9.0.3, you can disable the default
compatibility mode and enable MQCSP authentication for a Managed File Transfer agent by adding a new
parameter, useMQCSPAuthentication, to the MFT credentials file MQMFTCredentials.xml for the
relevant user and setting it to true. For more information, see Enabling MQCSP authentication mode.
Schema
The following schema describes which elements are valid in the MQMFTCredentials.xml file.
5724-H72
<!--
This schema defines the format of an MQMFTCredentials file. Files of this type
store credential information for agent and logger processes. They can contain
user names and passwords either in clear text or which have been obfuscated
using the fteObfuscate command.
-->
<schema targetNamespace="http://wmqfte.ibm.com/MQMFTCredentials"
elementFormDefault="qualified"
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://wmqfte.ibm.com/MQMFTCredentials">
<complexType name="mqmftCredentialsType">
<sequence>
<choice minOccurs="0" maxOccurs="unbounded">
<element name="logger" type="tns:loggerType"/>
<element name="file" type="tns:fileType"/>
<element name="qmgr" type="tns:mqUserPassType"/>
</choice>
</sequence>
</complexType>
<complexType name="loggerType">
<attribute name="name" type="string" use="required"/>
<attribute name="user" type="string" use="optional"/>
<attribute name="userCipher" type="string" use="optional"/>
<attribute name="password" type="string" use="optional"/>
<attribute name="passwordCipher" type="string" use="optional"/>
</complexType>
<complexType name="fileType">
<attribute name="path" type="string" use="required"/>
<attribute name="password" type="string" use="optional"/>
<attribute name="passwordCipher" type="string" use="optional"/>
</complexType>
<complexType name="mqUserPassType">
<attribute name="name" type="string" use="required"/>
<attribute name="user" type="string" use="optional"/>
<attribute name="mqUserId" type="string" use="optional"/>
<attribute name="mqUserIdCipher" type="string" use="optional"/>
<attribute name="mqPassword" type="string" use="optional"/>
<attribute name="mqPasswordCipher" type="string" use="optional"/>
<attribute name="useMQCSPAuthentication" type="boolean" use="optional"/>
</complexType>
</schema>
Attribute Description
path Path to the key or truststore file being accessed.
password Password to access the file.
Attribute Description
name The name of the logger.
user The user name the logger will use to connect to its database.
password The password the logger will use to connect to its database.
<qmgr>
The IBM MQ queue manager connection.
Attribute Description
name The name of the associated IBM MQ queue manager.
user Optional: The name of user requesting the connection.
mqUserId or The clear text user ID (mqUserId), or obfuscated text user ID
mqUserIdCipher (mqUserIdCipher) to supply to an IBM MQ queue manager.
mqPassword or The clear text password (mqPassword), or obfuscated text password
mqPasswordCipher (mqPasswordCipher) to supply to an IBM MQ queue manager.
Note: The MQMFTCredentials.xml file can contain sensitive information, so when it is created ensure
that the file permissions are reviewed. When using a sandbox, set to it be excluded. For more information
on sandboxes, see “Working with MFT agent sandboxes” on page 57.
Related concepts
“The MFT credentials file” on page 83
The MFT credentials file, MQMFTCredentials.xml, is used to hold user ID and password information.
You can have one MFT credentials file for the coordination queue manager, one for the command queue
manager, one for each agent, and one for each logger.
Related reference
“MFT and IBM MQ connection authentication” on page 53
Managed File Transfer in IBM MQ 8.0 or later supports the IBM MQ 8.0 or later security features, with the
default mode of disabled. If the associated queue manager has security enabled, and requires credential
details (user ID and password), this feature must enabled before a successful connection to a queue
manager can be made.
“fteObfuscate: encrypt sensitive data” on page 484
The fteObfuscate command encrypts sensitive data in credentials files. This stops the contents of
credentials files being read by someone who gains access to the file.
<!--
<?xml version="1.0" encoding="UTF-8"?>
<tns:credentials xmlns:tns="http://wmqfte.ibm.com/ProtocolBridgeCredentials"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://wmqfte.ibm.com/ProtocolBridgeCredentials
ProtocolBridgeCredentials.xsd ">
<tns:agent name="agent1">
<tns:serverHost name="myserver">
<tns:user name="fred" serverPassword="pwd" serverUserId="bill"/>
<tns:user name="jane" serverUserId="june" hostKey="1F:2e:f3">
<tns:privateKey associationName="test" keyPassword="pwd2">
.... private key ...
</tns:privateKey>
</tns:user>
</tns:serverHost>
</tns:agent>
<tns:agent name="agent2">
<tns:server name="server*" pattern="wildcard">
<tns:user name="fred" serverPassword="pwd" serverUserId="bill"/>
<tns:user name="jane" serverUserId="june" hostKey="1F:2e:f3">
<tns:privateKey associationName="test" keyPassword="pwd2">
.... private key ...
</tns:privateKey>
</tns:user>
</tns:server>
</tns:agent>
<tns:agent name="agent3">
<tns:serverHost name="ftpsServer"
keyStorePassword="keypass"
trustStorePassword="trustpass">
<tns:user name="fred" serverPassword="pwd" serverUserId="bill"/>
</tns:serverHost>
</tns:agent>
</tns:credentials>
-->
<complexType name="credentialsType">
<sequence>
<element name="agent" type="tns:agentType" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</complexType>
<complexType name="agentType">
<choice minOccurs="0" maxOccurs="1">
<element name="serverHost" type="tns:serverHostType" minOccurs="0" maxOccurs="unbounded"/>
<element name="server" type="tns:serverType" minOccurs="0" maxOccurs="unbounded"/>
</choice>
<attribute name="name" type="string" use="required"/>
</complexType>
<complexType name="serverHostType">
<sequence>
<element ref="tns:user" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
<attribute name="name" type="string" use="required"/>
<attribute name="keyStorePassword" type="string" use="optional"/>
<attribute name="keyStorePasswordCipher" type="string" use="optional"/>
<attribute name="trustStorePassword" type="string" use="optional"/>
<complexType name="serverType">
<sequence>
<element ref="tns:user" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
<attribute name="name" type="string" use="required"/>
<attribute name="pattern" type="tns:patternType" use="optional"/>
<attribute name="keyStorePassword" type="string" use="optional"/>
<attribute name="keyStorePasswordCipher" type="string" use="optional"/>
<attribute name="trustStorePassword" type="string" use="optional"/>
<attribute name="trustStorePasswordCipher" type="string" use="optional"/>
</complexType>
<complexType name="userType">
<sequence>
<element ref="tns:privateKey" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
<attribute name="name" type="string" use="required"/>
<attribute name="serverUserId" type="string" use="optional"/>
<attribute name="serverUserIdCipher" type="string" use="optional"/>
<attribute name="serverPassword" type="string" use="optional"/>
<attribute name="serverPasswordCipher" type="string" use="optional"/>
<attribute name="hostKey" use="optional">
<simpleType>
<restriction base="string">
<pattern
value="([a-fA-F0-9]){2}(:([a-fA-F0-9]){2})*">
</pattern>
</restriction>
</simpleType>
</attribute>
</complexType>
<complexType name="privateKeyType">
<simpleContent>
<extension base="string">
<attribute name="keyPassword" type="string" use="optional"/>
<attribute name="keyPasswordCipher" type="string" use="optional"/>
<attribute name="associationName" type="string" use="required"/>
</extension>
</simpleContent>
</complexType>
<!--
Determines the type of pattern matching to use.
-->
<simpleType name="patternType">
<restriction base="string">
<enumeration value="regex"/>
<enumeration value="wildcard"/>
</restriction>
</simpleType>
</schema>
Schema - 7.0.4
The schema for 7.0.4.1 and later, and the schema for 7.0.4 and earlier, are available here: Protocol bridge
credentials file format
<server>
The protocol server that the protocol bridge connects to.
The <server> element is not supported for 7.0.4 or earlier.
Attribute Description
name The name of the protocol server.
pattern If you have used wildcards or regular expressions to specify the
pattern of a protocol server name, use either wildcard or regex.
trustStorePassword or Required when the <server> element refers to an FTPS server.
trustStorePasswordCipher
The password used to access the truststore. If the
fteObfuscate command has been used then the cipher version
of the attribute must be used.
<serverHost>
The host name of the protocol server that the protocol bridge connects to.
The ProtocolBridgeCredentials.xml file can either contain <serverHost> elements or <server>
elements but you cannot use a mixture of the two different types. When you use <serverHost>, the
name is matched against the protocol server's host name. When you use <server>, the name is
matched against the protocol server's name (as defined in the ProtocolBridgeProperties.xml
file).
Attribute Description
name The host name or IP address of the protocol server.
trustStorePassword or Required when the <serverHost> element refers to an FTPS
trustStorePasswordCipher server. The password used to access the truststore. If the
fteObfuscate command has been used then the cipher version
of the attribute must be used.
keyStorePassword or Optional. The password used to access the keystore. This property
keyStorePasswordCipher is optional unless you set the keyStore attribute, in which case it is
required. If the fteObfuscate command has been used then the
cipher version of the attribute must be used.
<user>
A user mapping from a Managed File Transfer user name to a protocol server user name.
Attribute Description
name The user name that is used with Managed File Transfer.
serverUserId or The user name that is used with the protocol server. If the
serverUserIdCipher fteObfuscate command has been used then the cipher version of
the attribute must be used.
serverPassword or The password for the user name used on the protocol server. If the
serverPasswordCipher fteObfuscate command has been used then the cipher version of
the attribute must be used.
<privateKey>
The private key of a user.
Attribute Description
keyPassword or The password for the private key. If the fteObfuscate
keyStorePasswordCipher command has been used then the cipher version of the attribute
must be used.
associationName A name used for trace and logging.
Schema
The following schema describes the ProtocolBridgeProperties.xml file.
Note: The maxReconnectRetry and reconnectWaitPeriod attributes are not supported on IBM WebSphere
MQ 7.5, or on IBM WebSphere MQ File Transfer Edition 7.0.2, or later.
<!--
Example: ProtocolBridgeProperties.xml
<!--
A container for all protocol bridge server properties
-->
<complexType name="serverPropertiesType">
<sequence>
<element name="credentialsFile" type="tns:credentialsFileName" minOccurs="0" maxOccurs="1"/>
<element name="defaultServer" type="tns:serverName" minOccurs="0" maxOccurs="1"/>
<choice minOccurs="0" maxOccurs="unbounded">
<!--
A container for a server name
-->
<complexType name="serverName">
<attribute name="name" type="tns:serverNameType" use="required"/>
</complexType>
<!--
A container for a credentials file name
-->
<complexType name="credentialsFileName">
<attribute name="path" type="string" use="required"/>
</complexType>
<!--
A container for all the information about an FTP server
-->
<complexType name="ftpServerType">
<sequence>
<element name="limits" type="tns:generalLimitsType" minOccurs="0" maxOccurs="1" />
</sequence>
<attributeGroup ref="tns:ftpServerAttributes"/>
<attribute name="passiveMode" type="boolean" use="optional"/>
</complexType>
<!--
A container for all the information about an SFG FTP server
-->
<complexType name="ftpsfgServerType">
<sequence>
<element name="limits" type="tns:generalLimitsType" minOccurs="0" maxOccurs="1" />
</sequence>
<attributeGroup ref="tns:ftpServerAttributes"/>
</complexType>
<!--
A container for all the information about an SFTP server
-->
<complexType name="sftpServerType">
<sequence>
<element name="limits" type="tns:sftpLimitsType" minOccurs="0" maxOccurs="1" />
</sequence>
<attributeGroup ref="tns:sftpServerAttributes"/>
</complexType>
<!--
A container for all the information about a FTPS server
-->
<complexType name="ftpsServerType">
<sequence>
<element name="limits" type="tns:generalLimitsType" minOccurs="0" maxOccurs="1" />
</sequence>
<attributeGroup ref="tns:ftpsServerAttributes"/>
</complexType>
<!--
A container for all the information about a SFG FTPS server
-->
<complexType name="ftpssfgServerType">
<sequence>
<element name="limits" type="tns:generalLimitsType" minOccurs="0" maxOccurs="1" />
</sequence>
<attributeGroup ref="tns:ftpsServerAttributes"/>
</complexType>
<!--
Attributes common to all server types
-->
<attributeGroup name="generalServerAttributes">
<attribute name="name" type="tns:serverNameType" use="required"/>
<attribute name="host" type="string" use="required"/>
<attribute name="port" type="nonNegativeInteger" use="optional"/>
<!--
Attributes common to ftp and ftps server types
-->
<attributeGroup name="ftpServerAttributes">
<attributeGroup ref="tns:generalServerAttributes"/>
<attribute name="timeZone" type="string" use="required"/>
<attribute name="locale" type="tns:localeType" use="required"/>
<attribute name="listFormat" type="tns:listFormatType" use="optional"/>
<attribute name="listFileRecentDateFormat" type="tns:dateFormatType" use="optional"/>
<attribute name="listFileOldDateFormat" type="tns:dateFormatType" use="optional"/>
<attribute name="monthShortNames" type="tns:monthShortNamesType" use="optional"/>
</attributeGroup>
<!--
Attributes common to ftps server types
-->
<attributeGroup name="ftpsServerAttributes">
<attributeGroup ref="tns:ftpServerAttributes"/>
<attribute name="ftpsType" type="tns:ftpsTypeType" use="optional"/>
<attribute name="trustStore" type="string" use="required"/>
<attribute name="trustStoreType" type="string" use="optional"/>
<attribute name="keyStore" type="string" use="optional"/>
<attribute name="keyStoreType" type="string" use="optional"/>
<attribute name="ccc" type="boolean" use="optional"/>
<attribute name="protFirst" type="boolean" use="optional"/>
<attribute name="auth" type="string" use="optional"/>
<attribute name="connectTimeout" type="nonNegativeInteger" use="optional"/>
</attributeGroup>
<!--
A container for limit-type attributes for a server. Limit parameters
are optional, and if not specified a system default will be used.
-->
<complexType name="generalLimitsType">
<attributeGroup ref="tns:generalLimitAttributes"/>
</complexType>
<complexType name="sftpLimitsType">
<attributeGroup ref="tns:generalLimitAttributes"/>
<attribute name="connectionTimeout" type="nonNegativeInteger" use="optional"/>
</complexType>
<!--
Attributes for limits common to all server types
-->
<attributeGroup name="generalLimitAttributes">
<attribute name="maxListFileNames" type="positiveInteger" use="optional"/>
<attribute name="maxListDirectoryLevels" type="nonNegativeInteger" use="optional"/>
<attribute name="maxReconnectRetry" type="nonNegativeInteger" use="optional"/>
<attribute name="reconnectWaitPeriod" type="nonNegativeInteger" use="optional"/>
<attribute name="maxSessions" type="positiveInteger" use="optional"/>
<attribute name="socketTimeout" type="nonNegativeInteger" use="optional"/>
</attributeGroup>
<!--
The type for matching valid server names. Server names must be at least 2 characters in length
and
are limited to alphanumeric characters and the following characters: ".", "_", "/" and "%".
-->
<simpleType name="serverNameType">
<restriction base="string">
<pattern value="[0-9a-zA-Z\._/%]{2,}"/>
</restriction>
</simpleType>
<!--
The types of platform supported.
-->
<simpleType name="platformType">
<restriction base="string">
</restriction>
</simpleType>
<!--
The type for matching a locale specification.
<!--
The types of list format supported (for FTP servers).
-->
<simpleType name="listFormatType">
<restriction base="string">
</restriction>
</simpleType>
<!--
Date format for FTP client directory listing on an FTP server. This is
the format to be passed to methods setDefaultDateFormatStr and
setRecentDateFormatStr for Java class:
org.apache.commons.net.ftp.FTPClientConfig
-->
<simpleType name="dateFormatType">
<restriction base="string">
</restriction>
</simpleType>
<!--
A list of language-defined short month names can be specified. These are
used for translating the directory listing received from the FTP server.
The format is a string of three character month names separated by "|"
-->
<simpleType name="monthShortNamesType">
<restriction base="string">
<pattern value="(...\|){11}(...)"/>
</restriction>
</simpleType>
<!--
The enumerations of the allowed FTPS types: "implicit" & "explicit"
If not specified the default is "explicit"
-->
<simpleType name="ftpsTypeType">
<restriction base="string">
<enumeration value="explicit"/>
<enumeration value="implicit"/>
</restriction>
</simpleType>
<!--
Attribute Group for SFTP Servers
-->
<attributeGroup name="sftpServerAttributes">
<attributeGroup ref="tns:generalServerAttributes"/>
<attribute name="cipherList" type="string" use="optional"/>
</attributeGroup>
</schema>
General server attributes that apply to all types of protocol file server:
Attribute Description
name Required. The name of the protocol file server. Protocol server names must be at
least two characters in length, are not case-sensitive, and are limited to
alphanumeric characters and the following characters:
• period (.)
• underscore (_)
• forward slash (/)
• percent sign (%)
host Required. The host name or IP address of the protocol file server that you want to
send files to or receive files from.
port Optional. The port number of the protocol file server that you want to send files to
or receive files from.
platform Required. The platform of the protocol file server that you want to send files to or
receive files from. Specify either UNIX or WINDOWS.Set this property according to
how you enter paths on your FTP, FTPS, or SFTP server. For example, if you are
running an FTP server on Windows but when you log in to the server, you must
enter UNIX-style paths (that is, with forward slashes), set this value to UNIX and
not WINDOWS. Servers running on Windows often present a UNIX-style file system.
fileEncoding Required. Defines the character encoding that is used by the file server. This
property is used when you transfer files in text mode so that the correct encoding
sequences are changed when the files are moved between platforms. For
example, UTF-8.
limitedWrite Optional. The default mode when writing to a file server is to create a temporary
file and then rename that file when the transfer has completed. For a file server
that is configured as write only, the file is created directly with its final name. The
value of this property can be true or false. The default is false.
controlEncoding Optional. The control encoding value for control messages being sent to the
protocol file server. This property affects the encoding of the file name that is used
and must be compatible with the control encoding of the protocol file server. The
default is UTF-8.
Attribute Description
timeZone Required. The time zone of the protocol file server that you want to send
files to or receive files from. For example: America/New_York or Asia/
Tokyo.
locale Required. The language that is used on the protocol file server that you
want to send files to or receive files from. For example: en_US or ja_JP
listFormat Optional. The listing format that defines the format of the file-listed
information that is returned from the protocol file server. Use either
Windows or UNIX. The default is UNIX.
Attribute Description
passiveMode Optional. Controls whether the connection to the FTP server is passive or active.
If you set the value of this property to false, the connection is active. If you set the
value to true, the connection is passive. The default is false.
Attribute Description
ftpsType Optional. Specifies whether the explicit or implicit form of the FTPS protocol is used.
The default is explicit.
trustStore Required. The location of the truststore that is used to determine whether the
certificate presented by the FTPS server is trusted.
trustStoreType Optional. The format of the truststore file. The default is JKS.
keyStore Optional. The location of the keystore that is used to provide certificate information
if challenged by the FTPS server. The default is for the protocol bridge to not be able
to connect to FTPS servers that are configured to require the authentication of
clients.
keyStoreType Optional. The format of the keystore file. The default is JKS.
ccc Optional. Selects whether a clear (unencrypted) command channel is used when
authentication has completed. The default value is false, which means that the
command channel remains encrypted for the entire duration of the FTPS session.
This attribute is applicable only when the ftpsType is set to explicit.
protFirst Optional. Specifies whether the USER/PASS commands are issued to the FTPS
server before or after the PBSZ/PROT commands. The default value is false, which
means USER/PASS commands are sent first followed by PBSZ/PROT commands.
This attribute is applicable only when the ftpsType is set to explicit.
auth Optional. Specifies the protocol that is specified as part of the AUTH command. A
specified protocol will be tried first, then the default is to try TLS, SSL, TLS-C, or
TLS-P until the FTPS server does not reject with a 504 reply code. This attribute is
applicable only when the ftpsType is set to explicit.
Attribute Description
maxListFileNames Optional. The maximum number of names that are collected when
scanning a directory on the protocol file server for file names. The
default is 999999999.
maxListDirectoryLevels Optional. The maximum number of directory levels on the protocol
server to recursively scan for file names. The default is 1000.
maxReconnectRetry Deprecated. This attribute is not supported on IBM WebSphere MQ 7.5,
or on IBM WebSphere MQ File Transfer Edition 7.0.2, or later.
(This attribute is now
deprecated.) Optional. The maximum number of times a protocol server tries to
reconnect before the protocol bridge agent stops trying. The default is
2.
maxSessions Optional. The maximum number of sessions for the protocol server.
This number must be greater than or equal to the sum of the maximum
number of source and destination transfers for the protocol bridge
agent. The default is the sum of the values for the agent properties
maxSourceTransfers, maxDestinationTransfers, and
maxCommandHandlerThreads, plus 1. If these three properties are
using their default values of 25, 25, and 5, the maxSessions default is
then 56.
socketTimeout Optional. The socket timeout in seconds. The value of this attribute is
used during file streaming. The default is 30 seconds.
Attribute Description
connectionTimeout Optional. The time, in seconds, to wait for a response from the protocol file
server to a connection request. A timeout indicates that the protocol file server
is not available. The default value is 30 seconds.
cipherList Optional. Specifies a comma-separated list of ciphers that are used to
communicate between the protocol bridge agent and the SFTP server. The
ciphers are called in the order that they are specified in this list. The cipher
must be available on the server and the client before it can be used.
The ciphers that the protocol bridge agent supports are as follows:
• blowfish-cbc
• 3des-cbc
• aes128-cbc
• aes192-cbc
• aes256-cbc
• aes128-ctr
• aes192-ctr
• aes256-ctr
• 3des-ctr
• arcfour
• arcfour128
• arcfour256
By default, the list of ciphers used by protocol bridge agents is aes128-
cbc,aes192-cbc,aes256-cbc.
Schema
The following schema describes which elements are valid in the ConnectDirectCredentials.xml file.
<!--
This schema defines the format of the XML file that is located in the agent properties
directory of a Connect:Direct bridge agent. The XML file ConnectDirectCredentials.xml
is used by the default credential validation of the Connect:Direct bridge.
For more information, see the WebSphere MQ InfoCenter
-->
<schema targetNamespace="http://wmqfte.ibm.com/ConnectDirectCredentials"
elementFormDefault="qualified"
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://wmqfte.ibm.com/ConnectDirectCredentials"
<!--
<?xml version="1.0" encoding="UTF-8"?>
<tns:credentials xmlns:tns="http://wmqfte.ibm.com/ConnectDirectCredentials"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://wmqfte.ibm.com/ConnectDirectCredentials
ConnectDirectCredentials.xsd">
<tns:agent name="CDAGENT01">
<tns:pnode name="cdnode*" pattern="wildcard">
<tns:user name="MUSR_.*"
ignorecase="true"
pattern="regex"
cdUserId="bob"
cdPassword="passw0rd"
pnodeUserId="bill"
pnodePassword="alacazam">
-->
<complexType name="credentialsType">
<sequence>
<element name="agent" type="tns:agentType" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</complexType
<complexType name="agentType">
<sequence>
<element name="pnode" type="tns:pnodeType" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
<attribute name="name" type="string" use="required"/>
</complexType>
<complexType name="pnodeType">
<sequence>
<element name="user" type="tns:userType" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
<attribute name="name" type="string" use="required"/>
<attribute name="pattern" type="tns:patternType" use="optional"/>
</complexType
<complexType name="userType">
<sequence>
<element name="snode" type="tns:snodeType" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
<attribute name="name" type="string" use="required"/>
<attribute name="ignorecase" type="boolean" use="optional"/>
<attribute name="pattern" type="tns:patternType" use="optional"/>
<attribute name="cdUserId" type="string" use="optional"/>
<attribute name="cdUserIdCipher" type="string" use="optional"/>
<attribute name="cdPassword" type="string" use="optional"/>
<attribute name="cdPasswordCipher" type="string" use="optional"/>
<attribute name="pnodeUserId" type="string" use="optional"/>
<attribute name="pnodeUserIdCipher" type="string" use="optional"/>
<attribute name="pnodePassword" type="string" use="optional"/>
<attribute name="pnodePasswordCipher" type="string" use="optional"/>
</complexType>
<complexType name="snodeType"
<attribute name="name" type="string" use="required"/>
<attribute name="pattern" type="tns:patternType" use="optional"/>
<attribute name="userId" type="string" use="optional"/>
<attribute name="userIdCipher" type="string" use="optional"/>
<attribute name="password" type="string" use="optional"/>
<attribute name="passwordCipher" type="string" use="optional"/>
</complexType>
<simpleType name="patternType">
<restriction base="string">
<enumeration value="regex"/>
<enumeration value="wildcard"/>
</restriction>
</simpleType>
</schema>
Attribute Description
name The name of the Connect:Direct node. The value of this attribute can be a pattern that
matches many node names.
pattern Specifies the type of pattern that is used for the value of the name attribute. Valid values
for the pattern attribute are
• wildcard - wildcards are used
• regex - Java regular expressions are used
<user>
The IBM MQ user that submits the transfer request.
Attribute Description
name The user name that is used with Managed File Transfer. The value of
this attribute can be a pattern that matches many user names.
ignorecase Specifies whether the case of the name is ignored. Valid values for the
ignorecase attribute are
• true - the name is not case sensitive
• false - the name is case sensitive
pattern Specifies the type of pattern that is used for the value of the name
attribute. Valid values for the pattern attribute are
• wildcard - wildcards are used
• regex - Java regular expressions are used
cdUserId or The user name that is used by the Connect:Direct bridge to connect to
cdUserIdCipher its associated Connect:Direct node. If the fteObfuscate command
has been used then the cipher version of the attribute must be used.
cdPassword or The password associated with the user name specified by the cdUserId
cdPasswordCipher attribute. If the fteObfuscate command has been used then the
cipher version of the attribute must be used.
pnodeUserId or The user name that is used by the Connect:Direct primary node. If the
pnodeUserIdCipher fteObfuscate command has been used then the cipher version of
the attribute must be used.
pnodePassword or The password associated with the user name specified by the
pnodePasswordCipher pnodeUserId attribute. If the fteObfuscate command has been used
then the cipher version of the attribute must be used.
<snode>
The Connect:Direct node that performs the role of secondary node (SNODE) during the Connect:Direct
file transfer.
Attribute Description
name The name of the Connect:Direct node. The value of this attribute can be a
pattern that matches many node names.
userId or The user name used to connect to this node during a file transfer. If the
userIdCipher fteObfuscate command has been used then the cipher version of the
attribute must be used.
password or The password associated with the user name specified by the userId
passwordCipher attribute. If the fteObfuscate command has been used then the cipher
version of the attribute must be used.
Example
In this example, the Connect:Direct bridge agent connects to the Connect:Direct node pnode1. When an
IBM MQ user with the user name beginning with the prefix fteuser followed by a single character, for
example fteuser2, requests a transfer involving the Connect:Direct bridge, the Connect:Direct bridge
agent will use the user name cduser and the password passw0rd to connect to the Connect:Direct node
pnode1. When the Connect:Direct node pnode1 performs its part of the transfer it uses the user name
pnodeuser and the password passw0rd1.
If the secondary node in the Connect:Direct transfer has a name that begins with the prefix FISH, the
node pnode1 uses the user name fishuser and the password passw0rd2 to connect to the secondary
node. If the secondary node in the Connect:Direct transfer has a name that begins with the prefix CHIPS,
the node pnode1 uses the user name chipsuser and the password passw0rd3 to connect to the
secondary node.
<tns:credentials xmlns:tns="http://wmqfte.ibm.com/ConnectDirectCredentials"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://wmqfte.ibm.com/ConnectDirectCredentials
ConnectDirectCredentials.xsd">
<tns:agent name="CDAGENT01">
<tns:pnode name="pnode1" pattern="wildcard">
<tns:user name="fteuser?" pattern="wildcard" ignorecase="true"
cdUserId="cduser" cdPassword="passw0rd"
pnodeUserId="pnodeuser" pnodePassword="passw0rd1">
<tns:snode name="FISH*" pattern="wildcard"
userId="fishuser" password="passw0rd2"/>
<tns:snode name="CHIPS*" pattern="wildcard"
userId="chipsuser" password="passw0rd3"/>
</tns:user>
</tns:pnode>
</tns:agent>
</tns:credentials>
Schema
The following schema describes which elements are valid in the
ConnectDirectProcessDefinitions.xml file.
<schema targetNamespace="http://wmqfte.ibm.com/ConnectDirectProcessDefinitions"
elementFormDefault="qualified"
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://wmqfte.ibm.com/ConnectDirectProcessDefinitions">
<complexType name="cdprocessType">
<sequence>
<element name="processSet" type="tns:processSetType"
minOccurs="0" maxOccurs="unbounded"></element>
</sequence>
</complexType>
<complexType name="processSetType">
<sequence>
<element name="condition" type="tns:conditionType"
minOccurs="0" maxOccurs="1"/>
<element name="process" type="tns:processType"
minOccurs="1" maxOccurs="1"/>
</sequence>
</complexType>
<complexType name="conditionType">
<choice minOccurs="0" maxOccurs="unbounded">
<element name="match" type="tns:matchType"/>
<element name="defined" type="tns:definedType"/>
</choice>
</complexType>
<complexType name="matchType">
<attribute name="variable" type="string" use="required"/>
<attribute name="value" type="string" use="required"/>
<attribute name="pattern" type="tns:patternType" use="optional"/>
</complexType>
<complexType name="definedType">
<attribute name="variable" type="string" use="required"/>
</complexType>
<complexType name="processType">
<sequence>
<element name="preTransfer" type="tns:transferType"
minOccurs="0" maxOccurs="1"/>
<element name="transfer" type="tns:transferType"
minOccurs="0" maxOccurs="1"/>
<element name="postTransferSuccess" type="tns:transferType"
minOccurs="0" maxOccurs="1"/>
<element name="postTransferFailure" type="tns:transferType"
minOccurs="0" maxOccurs="1"/>
</sequence>
</complexType>
<complexType name="transferType">
<attribute name="process" type="string" use="required"/>
</complexType>
<simpleType name="patternType">
<restriction base="string">
<enumeration value="regex"/>
<enumeration value="wildcard"/>
</restriction>
</simpleType>
</schema>
Attribute Description
variable Specifies a variable. The value of this variable is compared with the value of the value
attribute. The variable is an intrinsic symbol. For more information, see “Substitution
variables for use with user-defined Connect:Direct processes” on page 639.
value Specifies a pattern to match against the value of the variable specified by the variable
attribute.
pattern Specifies the type of pattern that is used for the value of the value attribute. Valid
values for the pattern attribute are
• wildcard - wildcards are used
• regex - Java regular expressions are used
This attribute is optional and the default is wildcard.
defined
A condition that tests whether a variable has been defined.
Attribute Description
variable Specifies a variable. If this variable exists, the match condition is satisfied. The
variable is an intrinsic symbol. For more information, see “Substitution variables for
use with user-defined Connect:Direct processes” on page 639.
process
Group element containing the information about where to locate the Connect:Direct processes to call
when a match is found.
transfer
The Connect:Direct process to call during a transfer request.
Attribute Description
process Optional. Specifies the name of a file that contains a Connect:Direct process to call
during a transfer request. The file path is relative to the Connect:Direct bridge agent
configuration directory. This attribute is optional, the default is to use a process
generated by MFT. For IBM WebSphere MQ 7.5 or later, the value of this property can
contain environment variables. For more information, see “The use of environment
variables in MFT properties” on page 522
Example
In this example, there are three processSet elements.
<tns:processSet>
<tns:condition>
<tns:match variable="%FTESNODE" value="Client*" pattern="wildcard"/>
<tns:match variable="%FTESUSER" value="Admin" pattern="wildcard"/>
</tns:condition>
<tns:process>
<tns:transfer process="AdminClient.cdp"/>
</tns:process>
</tns:processSet>
<tns:processSet>
<tns:condition>
<tns:match variable="%FTESNODE" value="Client*" pattern="wildcard"/>
</tns:condition>
<tns:process>
<tns:transfer process="Client.cdp"/>
</tns:process>
</tns:processSet>
<tns:processSet>
<tns:process>
<tns:transfer process="Default.cdp"/>
</tns:process>
</tns:processSet>
</tns:cdprocess>
<schema targetNamespace="http://wmqfte.ibm.com/ConnectDirectNodeProperties"
elementFormDefault="qualified"
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://wmqfte.ibm.com/ConnectDirectNodeProperties">
<complexType name="nodePropertiesType">
<sequence>
<element name="credentialsFile" type="tns:credentialsFileName" minOccurs="0" maxOccurs="1"/>
<element name="node" type="tns:nodeType" minOccurs="0" maxOccurs="unbounded"></element>
</sequence>
</complexType>
<complexType name="nodeType">
<attribute name="name" type="string" use="required"/>
<attribute name="pattern" type="tns:patternType" use="optional"/>
<attribute name="type" type="string" use="required"/>
</complexType>
<simpleType name="patternType">
<restriction base="string">
<enumeration value="regex"/>
<enumeration value="wildcard"/>
</restriction>
</simpleType>
</schema>
Attribute Description
name A pattern that identifies the names of Connect:Direct nodes that use the definitions
specified by the node element. Pattern matching is not case sensitive.
pattern Specifies the type of pattern that is used for the value of the name attribute. Valid values
for the pattern attribute are:
• wildcard - wildcards are used
• regex - Java regular expressions are used
For information about the types of regular expressions used by MFT, see “Regular
expressions used by MFT” on page 639.
type Specifies the operating system type of the Connect:Direct node or nodes that match the
pattern given by the name attribute. Valid values for the type attribute are:
• Windows - the node runs on Windows
Example
In this example, the Connect:Direct credentials filename is specified as
ConnectDirectCredentials.xml. The example code specifies the following platform connections:
• All Connect:Direct nodes that have a name that begins with "cdnodew" run on the Windows platform.
• All Connect:Direct nodes that have a name that begins with "cdnodeu" run on the UNIX platform.
• All Connect:Direct nodes that have a name that begins with "cdnodez" run on the z/OS platform.
• All other Connect:Direct nodes run on the UNIX platform.
The Connect:Direct bridge agent searches for matches from the start of the file to the end, and uses the
first match that it finds.
<tns:credentialsFile path="ConnectDirectCredentials.xml"/>
<tns:node name="cdnodew*" pattern="wildcard" type="windows"/>
<tns:node name="cdnodeu.*" pattern="regex" type="unix"/>
<tns:node name="cdnodez*" pattern="wildcard" type="zos"
<tns:node name="*" pattern="wildcard" type="unix"/>
</tns:nodeProperties>
Schema
5724-H72
<!--
This schema defines elements and types used by many of the other MQMFT schemas.
For more information about MQMFT XML message formats, see
http://www-01.ibm.com/support/knowledgecenter/SSEP7X_7.0.4/com.ibm.wmqfte.doc/
message_formats.htm
-->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<!--
Defines the version type 1.00 - 99.00
<transaction version= 1.00
-->
<xsd:simpleType name="versionType">
<!--
Defines one or more file attributes
<destination encoding=? CFLF=?>
<file>filename</file>
<attributes>
<attribute>DIST(MIRRORED,UPDATE)</attribute>
</attributes>
<destination/>
-->
<!--
Defines a single file reference
<source encodings=? CFLF=?>
<file>filename</file>
<checksum method="MD5">3445678</checksum>
<source/>
.. or ..
<destination encoding=? CFLF=?>
<file>filename</file>
<checksum method="MD5">3445678</checksum>
<destination/>
-->
<xsd:complexType name="fileCheckSumType">
<xsd:sequence>
<xsd:element name="file" type="fileType"/>
<xsd:element name="checksum" type="checksumType" maxOccurs="1" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<!--
Defines the checksum type and method
<checksum method="MD5|none">3445678</checksum>
-->
<xsd:complexType name="checksumType">
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="method" type="checkSumMethod" use="required"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<!--
Defines the enumeration values for checksumMethod
<checksum method="MD5|none">3445678</checksum>
Note: uppercase is used since MD5 is acronym and normally written uppercase.
-->
<xsd:simpleType name="checkSumMethod">
<xsd:restriction base="xsd:token">
<xsd:enumeration value="none"/>
<xsd:enumeration value="MD5"/>
</xsd:restriction>
</xsd:simpleType>
<!--
Defines the enumeration values for agentRole
agentRole="sourceAgent|destinationAgent"
-->
<xsd:simpleType name="agentRoleType">
<xsd:restriction base="xsd:token">
<xsd:enumeration value="sourceAgent"/>
<xsd:enumeration value="destinationAgent"/>
<xsd:enumeration value="callAgent"/>
</xsd:restriction>
</xsd:simpleType>
<!--
Defines the enumeration values for mode.
text, binary or a substitution variable
<item mode="binary|text||${variableName}">
-->
<xsd:simpleType name="modeType">
<xsd:restriction base="xsd:string">
<xsd:pattern value="binary|text|$\{.*\}"/>
</xsd:restriction>
</xsd:simpleType>
<!--
Defines the enumeration values for EOL
<file EOL="LF|CRLF">
-->
<xsd:simpleType name="EOLType">
<xsd:restriction base="xsd:token">
<xsd:enumeration value="LF"/>
<xsd:enumeration value="CRLF"/>
</xsd:restriction>
</xsd:simpleType>
<!--
Defines the encoding type as a string
-->
<!--
Defines the priority type
<transferset priority="1">
-->
<xsd:simpleType name="priorityType">
<xsd:restriction base="xsd:string">
<xsd:pattern value="[0123456789]"/>
</xsd:restriction>
</xsd:simpleType>
<!--
Define the job information element
<job>
<name>JOBNAME</name>
</job>
-->
<xsd:complexType name="jobType">
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<!--
Defines an action
<action>
<runCommand name="myCommand.sh"/>
</action>
-->
<xsd:complexType name="commandActionType">
<xsd:choice>
<xsd:element name="command" type="commandType" maxOccurs="1" minOccurs="0"/>
</xsd:choice>
</xsd:complexType>
<!--
Defines a command
<command name="runme" successRC="0" maxReplyLength="1024">
<argument>firstArg</argument>
<argument>secondArg</argument>
</command>
-->
<xsd:complexType name="commandType">
<xsd:sequence>
<xsd:element name="argument" type="xsd:string" maxOccurs="unbounded" minOccurs="0"/>
<xsd:element name="target" type="xsd:string" maxOccurs="unbounded" minOccurs="0"/>
<xsd:element name="property" type="propertyType" maxOccurs="unbounded"
minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required"/>
<xsd:attribute name="successRC" type="xsd:string" use="optional"/>
<xsd:attribute name="retryCount" type="nonNegativeIntegerType" use="optional"/>
<xsd:attribute name="retryWait" type="nonNegativeIntegerType" use="optional"/>
<xsd:attribute name="type" type="callTypeType" use="optional"/>
<xsd:attribute name="priority" type="commandPriorityType" use="optional"/>
<xsd:attribute name="message" type="xsd:string" use="optional"/>
</xsd:complexType>
<!--
Defines the enumeration values for the type of a command
type="executable|antscript|jcl"
-->
<xsd:simpleType name="callTypeType">
<xsd:restriction base="xsd:token">
<xsd:enumeration value="executable"/>
<xsd:enumeration value="antscript"/>
<xsd:enumeration value="jcl"/>
</xsd:restriction>
</xsd:simpleType>
<!--
Defines the priority type for a command
priority="5"
-->
<xsd:simpleType name="commandPriorityType">
<xsd:restriction base="xsd:string">
<xsd:pattern value="[123456789]"/>
<!--
Defines the property type that is used as a child of commandType
<property name="xxx" value="yyy"/>
-->
<xsd:complexType name="propertyType">
<xsd:attribute name="name" type="xsd:string" use="required"/>
<xsd:attribute name="value" type="xsd:string" use="required"/>
</xsd:complexType>
<!-- Defines a non-negative integer type -->
<xsd:simpleType name="nonNegativeIntegerType">
<xsd:restriction base="xsd:integer">
<xsd:minInclusive value="0"/>
</xsd:restriction>
</xsd:simpleType>
<!--
Defines the transfer command specific reply information, to be included as part the
general reply
<transferReply>
<preSourceData>
<runCommandReply resultCode="0">
<stdout>
<line>the quick brown fox jumped over the lazy dog</line>
</stdout>
<stderr></stderr>
</runCommandReply>
</preSourceData>
</transferReply>
-->
<xsd:complexType name="transferReplyType">
<xsd:sequence>
<xsd:element name="preSourceData" type="actionReplyType" minOccurs="0"
maxOccurs="1"/>
<xsd:element name="postSourceData" type="actionReplyType" minOccurs="0"
maxOccurs="1"/>
<xsd:element name="preDestinationData" type="actionReplyType" minOccurs="0"
maxOccurs="1"/>
<xsd:element name="postDestinationData" type="actionReplyType" minOccurs="0"
maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<!--
Define the action reply type information
<actionReply>
<runCommandReply resultCode="1">
<stdout></stdout>
<stderr>
<line>permission denied</line>
</stderr>
</runCommandReply>
</actionReply>
-->
<xsd:complexType name="actionReplyType">
<xsd:choice>
<xsd:element name="runCommandReply" type="commandReplyType" maxOccurs="1"
minOccurs="0"/>
</xsd:choice>
</xsd:complexType>
<!--
Defines command specific reply information, to be included as part the general reply
<commandReply resultCode="0">
<stdout>
<line>first line of output text</line>
<line>second line of output text</line>
</stdout>
<stderr>
<line>line of error text</line>
</stderr>
</commandReply>
-->
<xsd:complexType name="commandReplyType">
<xsd:sequence>
<xsd:element name="stdout" type="textLinesType" maxOccurs="1" minOccurs="1"/>
<xsd:element name="stderr" type="textLinesType" maxOccurs="1" minOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="resultCode" type="xsd:int" use="required"/>
</xsd:complexType>
<!-- Defines type for lines of text -->
<xsd:complexType name="textLinesType">
<xsd:sequence>
Note: From IBM MQ 9.0, Managed File Transfer does not support the Web Gateway or web agents.
Related concepts
“XML message formats used by MFT” on page 712
Managed File Transfer uses messages in XML format for a number of purposes: to command an agent; to
log information about the monitors, schedules, and transfers; and to define information used for
configuration. The logical structure of the XML formats used for these purposes described by XML
schema.
For more information about this syntax, see “fteCreateTransfer: start a new file transfer” on page 428.
mycommand(a,b)
To run this program at the source agent AGENT1 before the transfer starts, use the following command:
executable:simple,1,5
To run this program at the source agent AGENT1 after the transfer has completed, use the following
command:
antscript:myscript(prop1=fred,prop2=bob),,,>2&<7&!5|0|14
To run this program at the destination agent AGENT2 before the transfer has started, use the following
command:
antscript:script2(target1,target2,prop1=recmfm\(F\,B\)),,,>2&<7&!5|0|14
To run this program at the destination agent AGENT2 after the transfer has completed, use the following
command:
<property environment="environment"/>
<echo>${environment.mymetadata}</echo>
where mymetadata is the name of some meta data inserted into the transfer.
jcl:ZOSBATCH,3,30,0
where ZOSBATCH is a member of a PDS called MYSYS.JCL, and the agent.properties file contains the
line commandPath=....://'MYSYS.JCL':...
To run this program at the source agent AGENT1 after the transfer has completed, use the following
command:
Related concepts
“Specifying programs to run with MFT” on page 253
You can run programs on a system where a Managed File Transfer Agent is running. As part of a file
transfer request, you can specify a program to run either before a transfer starts, or after it finishes.
Additionally, you can start a program that is not part of a file transfer request by submitting a managed
call request.
Related reference
“fteCreateTransfer: start a new file transfer” on page 428
Purpose
Use the fteAnt command to run an Ant script in an environment with Managed File Transfer. Unlike the
standard ant command, fteAnt requires that you define a script file.
Syntax
fteAnt
fteAnt
-d -q -v
-keep-going
-f (Ant script)
Parameters
-debug or -d
Optional. Generate debugging output.
-quiet or -q
Optional. Generate minimal output.
-verbose or -v
Optional. Generate verbose output.
-keep-going or -k
Optional. Execute all targets that do not depend on failed targets.
-D property=value
Optional. Use value for a given property. Properties that are set with -D take precedence over those
set in a properties file.
Use the property com.ibm.wmqfte.propertyset to specify the set of configuration options that
are used for Ant tasks. Use the name of a non-default coordination queue manager as the value for
this property. Ant tasks then use the set of configuration options that are associated with this non-
default coordination queue manager. If you do not specify this property, the default set of
configuration options that are based on the default coordination queue manager is used. If you specify
the cmdqm attribute for an Ant task, this attribute takes precedence over the set of configuration
-propertyfile (name)
Optional. Load all properties from a file with -D properties taking precedence.
targets
Optional. The name of one or more targets to run from the Ant script. If you do not specify a value for
this parameter, the default target for the script is run.
-version
Optional. Displays the Managed File Transfer command and Ant versions.
-? or -h
Optional. Displays command syntax.
Example
In this example, the target copy in Ant script fte_script.xml is run and the command writes
debugging output to standard out.
Return codes
0
Command completed successfully.
1
Command ended unsuccessfully.
Other status return codes can also be specified from Ant scripts, for example by using the Ant fail task.
Tasks
• “fte:awaitoutcome Ant task” on page 827
• fte:call
• fte:cancel
• fte:filecopy
• fte:filemove
• fte:ignoreoutcome
• fte:ping
• fte:uuid
Nested parameters
The following nested parameters describe nested sets of elements, which are common across several of
the supplied Ant tasks:
• fte:filespec
Attributes
id
Required. Identifies the transfer to await an outcome from. Typically, this is a property set by the
idProperty attribute of the fte:filecopy, fte:filemove, or fte:call tasks.
rcproperty
Required. Names a property to store the return code of the fte:awaitoutcome task in.
timeout
Optional. The maximum amount of time, in seconds, to wait for the operation to complete. The
minimum timeout is one second. If you do not specify a timeout value, the fte:awaitoutcome task
waits forever for the outcome of the operation to be determined.
Example
In this example a file copy is started, and its identifier is stored in the copy.id property. While the copy is
progressing, other processing can take place. The fte:awaitoutcome statement is used to wait until
the copy operation completes. The fte:awaitoutcome statement identifies which operation to wait for
using the identifier stored in the copy.id property. The fte:awaitoutcome stores a return code
indicating the outcome of the copy operation into a property called copy.result.
Related reference
“Using Apache Ant with MFT” on page 254
Managed File Transfer provides tasks that you can use to integrate file transfer function into the Apache
Ant tool.
“Ant tasks provided by MFT” on page 826
Managed File Transfer provides a number of Ant tasks that you can use to access file transfer capabilities.
cmdqm
Optional. The command queue manager to submit the request to. Specify this information in the form
qmgrname@host@port@channel, where:
• qmgrname is the name of the queue manager
• host is the optional host name of the system where the queue manager is running
• port is the optional port number that the queue manager is listening on
• channel is the optional SVRCONN channel to use
If you omit the host, port, or channel information for the command queue manager, the connection
information specified in the command.properties file is used. For more information, see “The MFT
command.properties file” on page 533.
You can use the com.ibm.wmqfte.propertySet property to specify which command.properties
file to use. For more information, see com.ibm.wmqfte.propertySet.
If you do not use the cmdqm attribute, the task defaults to using the
com.ibm.wmqfte.ant.commandQueueManager property, if this property is set. If the
com.ibm.wmqfte.ant.commandQueueManager property is not set, a connection to the default
queue manager, defined in the command.properties file, is attempted. The format of the
com.ibm.wmqfte.ant.commandQueueManager property is the same as the cmdqm attribute, that
is, qmgrname@host@port@channel.
idproperty
Optional unless you have specified an outcome of defer. Specifies the name of a property to assign
the transfer identifier to. Transfer identifiers are generated at the point a transfer request is submitted
and you can use transfer identifiers to track the progress of a transfer, diagnose problems with a
transfer, and cancel a transfer.
You cannot specify this property if you have also specified an outcome property of ignore. However,
you must specify idproperty if you have also specified an outcome property of defer.
jobname
Optional. Assigns a job name to the fte:call request. You can use job names to create logical
groups of transfers. Use the “fte:uuid Ant task” on page 839 task to generate pseudo-unique job
names. If you do not use the jobname attribute, the task defaults to using the
com.ibm.wmqfte.ant.jobName property value, if this property is set. If you do not set this
property, no job name is associated with the fte:call request.
origuser
Optional. Specifies the originating user identifier to associate with the fte:call request. If you do
not use the origuser attribute, the task defaults to using the user ID that is used to run the Ant script.
outcome
Optional. Determines whether the task waits for the fte:call operation to complete before
returning control to the Ant script. Specify one of the following options:
await
The task waits for the fte:call operation to complete before returning. When an outcome of
await is specified the idproperty attribute is optional.
defer
The task returns as soon as the fte:call request has been submitted and assumes that the
outcome of the call operation is dealt with later using either the awaitoutcome or ignoreoutcome
tasks. When an outcome of defer is specified the idproperty attribute is required.
Example
This example shows how to call a command at AGENT1 running on queue manager QM1. The command
to call is the script command.sh, and the script is called with a single argument of xyz. The command
command.sh is located on the path specified by the commandPath property in the agent's
agent.properties file.
<fte:call cmdqm="QM0@localhost@1414@SYSTEM.DEF.SVRCONN"
agent="AGENT1@QM1"
rcproperty="call.rc"
origuser="bob"
jobname="${job.id}">
<fte:metadata>
<fte:entry name="org.foo.accountName" value="BDG3R"/>
</fte:metadata>
</fte:call>
Related reference
“Using Apache Ant with MFT” on page 254
Managed File Transfer provides tasks that you can use to integrate file transfer function into the Apache
Ant tool.
“Ant tasks provided by MFT” on page 826
Attributes
agent
Required. Specifies the agent to submit the fte:cancel request to. The value is in the form:
agentname@qmgrname where agentname is the name of the agent and qmgrname is the name of the
queue manager that this agent is directly connected to.
cmdqm
Optional. The command queue manager to submit the request to. Specify this information in the form
qmgrname@host@port@channel, where:
• qmgrname is the name of the queue manager
• host is the optional host name of the system where the queue manager is running
• port is the optional port number that the queue manager is listening on
• channel is the optional SVRCONN channel to use
If you omit the host, port, or channel information for the command queue manager, the connection
information specified in the command.properties file is used. For more information, see “The MFT
command.properties file” on page 533.
You can use the com.ibm.wmqfte.propertySet property to specify which command.properties
file to use. For more information, see com.ibm.wmqfte.propertySet.
If you do not use the cmdqm attribute, the task defaults to using the
com.ibm.wmqfte.ant.commandQueueManager property, if this property is set. If the
com.ibm.wmqfte.ant.commandQueueManager property is not set, a connection to the default
queue manager, defined in the command.properties file, is attempted. The format of the
com.ibm.wmqfte.ant.commandQueueManager property is the same as the cmdqm attribute, that
is, qmgrname@host@port@channel.
id
Required. Specifies the transfer identifier of the transfer to cancel. Transfer identifiers are generated
at the point a transfer request is submitted by both the fte:filecopy and fte:filemove tasks.
origuser
Optional. Specifies the originating user identifier to associate with the cancel request. If the origuser
attribute is not used, the task defaults to using the user ID that is used to run the Ant script.
Example
The example sends a fte:cancel request to the command queue manager qm0. The fte:cancel
request is targeted at agent1 on queue manager qm1 for the transfer identifier populated by the
transfer.id variable. The request is run using the "bob" user ID.
<fte:cancel cmdqm="qm0@localhost@1414@SYSTEM.DEF.SVRCONN"
agent="agent1@qm1"
id="${transfer.id}"
origuser="bob"/>
Related reference
“Using Apache Ant with MFT” on page 254
Managed File Transfer provides tasks that you can use to integrate file transfer function into the Apache
Ant tool.
“Ant tasks provided by MFT” on page 826
Attributes
cmdqm
Optional. The command queue manager to submit the request to. Specify this information in the form
qmgrname@host@port@channel, where:
• qmgrname is the name of the queue manager
• host is the optional host name of the system where the queue manager is running
• port is the optional port number that the queue manager is listening on
• channel is the optional SVRCONN channel to use
If you omit the host, port, or channel information for the command queue manager, the connection
information specified in the command.properties file is used. For more information, see “The MFT
command.properties file” on page 533.
You can use the com.ibm.wmqfte.propertySet property to specify which command.properties
file to use. For more information, see com.ibm.wmqfte.propertySet.
If you do not use the cmdqm attribute, the task defaults to using the
com.ibm.wmqfte.ant.commandQueueManager property, if this property is set. If the
com.ibm.wmqfte.ant.commandQueueManager property is not set, a connection to the default
queue manager, defined in the command.properties file, is attempted. The format of the
com.ibm.wmqfte.ant.commandQueueManager property is the same as the cmdqm attribute, that
is, qmgrname@host@port@channel.
dst
Required. Specifies the destination agent for the copy operation. Specify this information in the form:
agentname@qmgrname where agentname is the name of the destination agent and qmgrname is the
name of the queue manager that this agent is directly connected to.
idproperty
Optional unless you have specified an outcome of defer. Specifies the name of a property to assign
the transfer identifier to. Transfer identifiers are generated at the point a transfer request is submitted
and you can use transfer identifiers to track the progress of a transfer, diagnose problems with a
transfer, and cancel a transfer.
You cannot specify this property if you have also specified an outcome property of ignore. However,
you must specify idproperty if you have also specified an outcome property of defer.
jobname
Optional. Assigns a job name to the copy request. You can use job names to create logical groups of
transfers. Use the “fte:uuid Ant task” on page 839 task to generate pseudo-unique job names. If you
do not use the jobname attribute, the task defaults to using the com.ibm.wmqfte.ant.jobName
property value, if this property is set. If you do not set this property, no job name is associated with
the copy request.
origuser
Optional. Specifies the originating user identifier to associate with the copy request. If you do not use
the origuser attribute, the task defaults to using the user ID that is used to run the Ant script.
outcome
Optional. Determines whether the task waits for the copy operation to complete before returning
control to the Ant script. Specify one of the following options:
priority
Optional. Specifies the priority to associate with the copy request. In general, higher priority transfer
requests take precedence over lower priority requests. The priority value must be in the range 0 - 9
(inclusive). A priority value of 0 is the lowest priority and a value of 9 is the highest priority. If you do
not specify the priority attribute, the transfer defaults to a priority of 0.
rcproperty
Optional. Specifies the name of a property to assign the result code of the copy request to. The result
code reflects the overall outcome of the copy request.
You cannot specify this property if you have also specified an outcome property of ignore or defer.
However, you must specify rcproperty if you specify an outcome of await.
transferRecoveryTimeout
Optional. Sets the amount of time, in seconds, during which a source agent keeps trying to recover a
stalled file transfer. Specify one of the following options:
-1
The agent continues to attempt to recover the stalled transfer until the transfer is complete. Using
this option is the equivalent of the default behavior of the agent when the property is not set.
0
The agent stops the file transfer as soon as it enters recovery.
>0
The agent continues to attempt to recover the stalled transfer for the amount of time in seconds
as set by the positive integer value specified. For example,
<fte:filecopy cmdqm="qm0@localhost@1414@SYSTEM.DEF.SVRCONN"
src="agent1@qm1" dst="agent2@qm2"
rcproperty="copy.result" transferRecoveryTimeout="21600">
</fte:filecopy>
indicates that the agent keeps trying to recover the transfer for 6 hours from when it enters
recovery. Maximum value for this attribute is 999999999.
Specifying the transfer recovery timeout value in this way sets it on a per transfer basis. To set a global
value for all transfers in a Managed File Transfer network, you can add a property to the The
agent.properties file. For more information, see “Timeout option for file transfers in recovery” on page
250.
<fte:filecopy cmdqm="qm0@localhost@1414@SYSTEM.DEF.SVRCONN"
src="agent1@qm1" dst="agent2@qm2"
rcproperty="copy.result">
</fte:filecopy>
This example shows the same file transfer, but with the addition of metadata and a program start to take
place at the source agent after the transfer has completed.
<fte:filecopy cmdqm="qm0@localhost@1414@SYSTEM.DEF.SVRCONN"
src="agent1@qm"1 dst="agent2@qm2"
rcproperty="copy.result">
<fte:metadata>
<fte:entry name="org.example.departId" value="ACCOUNTS"/>
<fte:entry name="org.example.batchGroup" value="A1"/>
</fte:metadata>
Related concepts
“Timeout option for file transfers in recovery” on page 250
You can set the amount of time, in seconds, during which a source agent keeps trying to recover a stalled
file transfer. If the transfer is not successful when the agent reaches the timeout for the retry interval, the
transfer fails.
Related reference
“Using Apache Ant with MFT” on page 254
Managed File Transfer provides tasks that you can use to integrate file transfer function into the Apache
Ant tool.
“Ant tasks provided by MFT” on page 826
Managed File Transfer provides a number of Ant tasks that you can use to access file transfer capabilities.
Attributes
cmdqm
Optional. The command queue manager to submit the request to. Specify this information in the form
qmgrname@host@port@channel, where:
• qmgrname is the name of the queue manager
• host is the optional host name of the system where the queue manager is running
• port is the optional port number that the queue manager is listening on
• channel is the optional SVRCONN channel to use
idproperty
Optional unless you have specified an outcome of defer. Specifies the name of a property to assign
the transfer identifier to. Transfer identifiers are generated at the point a transfer request is submitted
and you can use transfer identifiers to track the progress of a transfer, diagnose problems with a
transfer, and cancel a transfer.
You cannot specify this property if you have also specified an outcome property of ignore. However,
you must specify idproperty if you have also specified an outcome property of defer.
jobname
Optional. Assigns a job name to the move request. You can use job names to create logical groups of
transfers. Use the fte:uuid task to generate pseudo-unique job names. If you do not use the jobname
attribute, the task defaults to using the com.ibm.wmqfte.ant.jobName property value, if this
property is set. If you do not set this property, no job name is associated with the move request.
origuser
Optional. Specifies the originating user identifier to associate with the move request. If you do not use
the origuser attribute, the task defaults to using the user ID that is used to run the Ant script.
outcome
Optional. Determines whether the task waits for the move operation to complete before returning
control to the Ant script. Specify one of the following options:
await
The task waits for the move operation to complete before returning. When an outcome of await
is specified the idproperty attribute is optional.
defer
The task returns as soon as the move request has been submitted and assumes that the outcome
of the move operation is dealt with later using either the “fte:awaitoutcome Ant task” on page 827
or “fte:ignoreoutcome Ant task” on page 838 task. When an outcome of defer is specified the
idproperty attribute is required.
ignore
If the outcome of the move operation is not important, you can specify a value of ignore. The
task then returns as soon as the move request has been submitted, without allocating any
resources for tracking the outcome of the transfer. When an outcome of ignore is specified the
idproperty attribute cannot be specified.
If you do not specify the outcome attribute, the task defaults to using the value await.
priority
Optional. Specifies the priority to associate with the move request. In general, higher priority transfer
requests take precedence over lower priority requests. The priority value must be in the range 0 - 9
rcproperty
Optional. Specifies the name of a property to assign the result code of the move request to. The result
code reflects the overall outcome of the move request.
You cannot specify this property if you have also specified an outcome property of ignore or defer.
However, you must specify rcproperty if you have specified an outcome of await.
transferRecoveryTimeout
Optional. Sets the amount of time, in seconds, during which a source agent keeps trying to recover a
stalled file transfer. Specify one of the following options:
-1
The agent continues to attempt to recover the stalled transfer until the transfer is complete. Using
this option is the equivalent of the default behavior of the agent when the property is not set.
0
The agent stops the file transfer as soon as it enters recovery.
>0
The agent continues to attempt to recover the stalled transfer for the amount of time in seconds
as set by the positive integer value specified. For example,
<fte:filemove cmdqm="qm0@localhost@1414@SYSTEM.DEF.SVRCONN"
src=agent1@qm1 dst="agent2@qm2"
rcproperty="move.result" transferRecoveryTimeout="21600">
</fte:filemove
indicates that the agent keeps trying to recover the transfer for 6 hours from when it enters
recovery. Maximum value for this attribute is 999999999.
Specifying the transfer recovery timeout value in this way sets it on a per transfer basis. To set a global
value for all transfers in a Managed File Transfer network, you can add a property to the The
agent.properties file. For more information, see “Timeout option for file transfers in recovery” on page
250.
src
Required. Specifies the source agent for the move operation. Specify this information in the form:
agentname@qmgrname where agentname is the name of the source agent and qmgrname is the
name of the queue manager that this agent is directly connected to.
Examples
This example shows a basic file move between agent1 and agent2. The command to start the file move
is sent to a queue manager called qm0, using a client transport mode connection. The result of the file
transfer operation is assigned to the property called move.result.
<fte:filemove cmdqm="qm0@localhost@1414@SYSTEM.DEF.SVRCONN"
src="agent1@qm1" dst="agent2@qm2"
rcproperty="move.result">
</fte:filemove>
Related concepts
“Timeout option for file transfers in recovery” on page 250
You can set the amount of time, in seconds, during which a source agent keeps trying to recover a stalled
file transfer. If the transfer is not successful when the agent reaches the timeout for the retry interval, the
transfer fails.
Related reference
“Using Apache Ant with MFT” on page 254
Managed File Transfer provides tasks that you can use to integrate file transfer function into the Apache
Ant tool.
“Ant tasks provided by MFT” on page 826
Attributes
id
Required. Identifies the outcome that is no longer of interest. Typically you specify this identifier using
a property that you set using the idproperty attribute of the “fte:filecopy Ant task” on page 831,
“fte:filemove Ant task” on page 834, or “fte:call Ant task” on page 827 task.
Example
This example shows how you can use the fte:ignoreoutcome task to free the resources allocated to
tracking the outcome of the earlier “fte:filecopy Ant task” on page 831 task.
<!-- decide that the result of the copy is not interesting -->
<fte:ignoreoutcome id="${copy.id}"/>
Related reference
“Using Apache Ant with MFT” on page 254
Managed File Transfer provides tasks that you can use to integrate file transfer function into the Apache
Ant tool.
“Ant tasks provided by MFT” on page 826
Managed File Transfer provides a number of Ant tasks that you can use to access file transfer capabilities.
Attributes
agent
Required. Specifies the agent to submit the fte:ping request to. The value is in the form:
agentname@qmgrname where agentname is the name of the agent and qmgrname is the name of the
queue manager that this agent is directly connected to.
cmdqm
Optional. The command queue manager to submit the request to. Specify this information in the form
qmgrname@host@port@channel, where:
• qmgrname is the name of the queue manager
• host is the optional host name of the system where the queue manager is running
• port is the optional port number that the queue manager is listening on
• channel is the optional SVRCONN channel to use
If you omit the host, port, or channel information for the command queue manager, the connection
information specified in the command.properties file is used. For more information, see “The MFT
command.properties file” on page 533.
Example
This example sends a fte:ping request to agent1 hosted by qm1. The fte:ping request waits 15
seconds for the agent to respond. The outcome of the fte:ping request is stored in a property called
ping.rc.
Return codes
0
Command completed successfully.
2
Command timed out.
Related reference
“Using Apache Ant with MFT” on page 254
Managed File Transfer provides tasks that you can use to integrate file transfer function into the Apache
Ant tool.
“Ant tasks provided by MFT” on page 826
Managed File Transfer provides a number of Ant tasks that you can use to access file transfer capabilities.
Attributes
length
Required. The numeric length of UUID to generate. This length value does not include the length of
any prefix, specified by the prefix parameter.
property
Required. The name of the property to assign the generated UUID to.
prefix
Optional. A prefix to add to the generated UUID. This prefix is not counted as part of the length of the
UUID, as specified by the length parameter.
Related reference
“Using Apache Ant with MFT” on page 254
Managed File Transfer provides tasks that you can use to integrate file transfer function into the Apache
Ant tool.
“Ant tasks provided by MFT” on page 826
Managed File Transfer provides a number of Ant tasks that you can use to access file transfer capabilities.
Nested by:
• The fte:filecopy task
• The fte:filemove task
srcqueue
Specifies the source of the transfer is a queue. The transfer moves data from messages stored on the
queue specified by this attribute. You cannot specify this attribute if the fte:filespec task is
nested within the fte:filecopy task.
The srcqueue attribute is not supported when the source agent is a protocol bridge agent.
dstds
Specifies a data set as the destination for a file operation.
This attribute is supported only when the destination agent is running on the z/OS platform.
dstfile
Specifies a file as the destination for a file operation.
dstfilespace
Specifies a file space as the destination for a file operation.
This attribute applies only if the destination agent is a IBM MQ 8.0 web agent that has access to the
web gateway file space.
srceol
Optional. The end of line delimiter used by the file being transferred. The valid values are as follows:
• CRLF - Use a carriage return character followed by a line-feed character as the end of line delimiter.
This convention is typical for Windows systems.
• LF - Use a line-feed character as the end of line delimiter. This convention is typical for UNIX
systems.
You can specify this attribute only when the conversion attribute is set to a value of text. If you do
not specify the srceol attribute, text transfers automatically determine the correct value based on the
operating system of the source agent.
srckeeptrailingspaces
Optional. Determines whether trailing spaces are kept on source records read from a fixed-length-
format data set as part of a text mode transfer. The valid values are as follows:
• true - trailing spaces are kept.
• false - trailing spaces are stripped.
If you do not specify the srckeeptrailingspaces attribute, a default value of false is specified.
You can specify this attribute only if you also specify the srcfilespec attribute and you set the
conversion attribute to a value of text.
srcmsgdelimbytes
Optional. Specifies one or more byte values to insert as the delimiter when appending multiple
messages to a binary file. Each value must be specified as two hexadecimal digits in the range 00-FF,
prefixed by x. Multiple bytes must be comma-separated. For example,
srcmsgdelimbytes="x08,xA4". You can specify the srcmsgdelimbytes attribute only if you have
also specified the srcqueue attribute. You cannot specify the srcmsgdelimbytes attribute if you have
also specified the value text for the conversion attribute.
srcmsgdelimposition
Optional. Specifies the position that the text or binary delimiter is inserted into. The valid values are as
follows:
• prefix - the delimiters are inserted into the destination file before the data from each message.
• postfix - the delimiters are inserted into the destination file after the data from each message.
You can specify the srcmsgdelimposition attribute only if you have also specified one of the
srcmsgdelimbytes or srcmsgdelimtext attributes.
srcmsggroups
Optional. Specifies that the messages are grouped by IBM MQ group ID. The first complete group is
written to the destination file. If this attribute is not specified, all messages on the source queue are
written to the destination file. You can specify the srcmsggroups attribute only if you have also
specified the srcqueue attribute.
srcqueuetimeout
Optional. Specifies the time, in seconds, to wait for one of the following conditions to be met:
• For a new message to be written to the queue.
• If the srcmsggroups attribute was specified, for a complete group to be written on the queue.
If neither of these conditions are met within the time specified by the value of srcqueuetimeout, the
source agent stops reading from the queue and completes the transfer. If the srcqueuetimeout
attribute is not specified, the source agent stops reading from the source queue immediately if the
source queue is empty or, in the case where the srcmsggroups attribute is specified, if there is no
complete group on the queue. You can specify the srcqueuetimeout attribute only if you have also
specified the srcqueue attribute.
For information about setting the srcqueuetimeout value, see “Guidance for specifying a wait time on
a message-to-file transfer” on page 661.
srcrecdelimbytes
Optional. Specifies one or more byte values to insert as the delimiter when appending multiple
records from a record-oriented source file to a binary file. You must specify each value as two
hexadecimal digits in the range 00-FF, prefixed by x. Multiple bytes must be comma-separated. For
example:
srcrecdelimbytes="x08,xA4"
You can specify the srcrecdelimbytes attribute only if the transfer source file is record oriented, for
example a z/OS data set, and the destination file is a normal, non-record-oriented file. You cannot
specify the srcrecdelimbytes attribute if you have also specified the value text for the conversion
attribute.
srcrecdelimpos
Optional. Specifies the position that the binary delimiter is inserted into. The valid values are as
follows:
dsteol
Optional. The end of line delimiter to use for the transferred file. The valid values are as follows:
• CRLF - Use a carriage return character followed by a line-feed character as the end of line delimiter.
This convention is typical for Windows systems.
• LF - Use a line-feed character as the end of line delimiter. This convention is typical for UNIX
systems.
You can specify this attribute only when the conversion attribute is set to a value of text.
If you do not specify the dsteol attribute, text transfers automatically determine the correct value
based on the operating system of the destination agent.
dstmsgdelimbytes
Optional. Specifies the hexadecimal delimiter to use when splitting a binary file into multiple
messages. All the messages have the same IBM MQ group ID; the last message in the group has the
IBM MQ LAST_MSG_IN_GROUP flag set. The format for specifying a hexadecimal byte as a delimiter is
xNN, where N is a character in the range 0-9 or a-f. You can specify a sequence of hexadecimal bytes
as a delimiter by specifying a comma-separated list of hexadecimal bytes, for example:
x3e,x20,x20,xbf.
You can specify the dstmsgdelimbytes attribute only if you have also specified the dstqueue attribute
and the transfer is in binary mode. You can specify only one of the dstmsgsize, dstmsgdelimbytes, and
dstmsgdelimpattern attributes.
dstmsgdelimpattern
Optional. Specifies the Java regular expression to use when splitting a text file into multiple
messages. All the messages have the same IBM MQ group ID; the last message in the group has the
IBM MQ LAST_MSG_IN_GROUP flag set. The format for specifying a regular expression as a delimiter
is a regular expression enclosed in parentheses, (regular_expression), or enclosed in double
quotation marks, "regular_expression". For more information, see “Regular expressions used by
MFT” on page 639.
By default, the length of the string that the regular expression can match is limited by the destination
agent to five characters. You can change this behavior using the maxDelimiterMatchLength agent
property. For more information, see “Advanced agent properties” on page 538.
You can specify the dstmsgdelimpattern attribute only if you have also specified the dstqueue
attribute and the transfer is in text mode. You can specify only one of the dstmsgsize,
dstmsgdelimbytes, and dstmsgdelimpattern attributes.
dstmsgdelimposition
Optional. Specifies the position that the text or binary delimiter is expected to be in. The valid values
are as follows:
dstmsgpersist
Optional. Specifies whether messages written to the destination queue are persistent. The valid
values are as follows:
• true - Write persistent messages to the destination queue. This is the default value.
• false - Write non-persistent messages to the destination queue.
• qdef - The persistence value is taken from the DefPersistence attribute of the destination queue.
You can specify this attribute only when the dstqueue attribute is also specified.
dstmsgprops
Optional. Specifies whether the first message written to the destination queue by the transfer has IBM
MQ message properties set. Possible values are:
• true - Set message properties on the first message created by the transfer.
• false - Do not set message properties on the first message created by the transfer. This is the
default value.
For more information, see “MQ message properties set by MFT on messages written to destination
queues” on page 656.
You can specify this attribute only when the dstqueue attribute is also specified.
dstmsgsize
Optional. Specifies whether to split the file into multiple fixed-length messages. All of the messages
have the same IBM MQ group ID; the last message in the group has the IBM MQ
LAST_MSG_IN_GROUP flag set. The size of the messages is specified by the value of dstmsgsize. The
format of dstmsgsize is lengthunits, where length is a positive integer value and units is one of the
following values:
• B - Bytes. The minimum value allowed is two times the maximum bytes-per-character value of the
code page of the destination messages.
• K - Kibibytes. This is equivalent to 1024 bytes.
• M - Mebibytes. This is equivalent to 1024 kibibytes.
If the file is transferred in text mode, and is in a double-byte character set or multibyte character set,
the file is split into messages on the closest character boundary to the specified message size.
You can specify the dstmsgsize attribute only if you have also specified the dstqueue attribute. You
can specify only one of the dstmsgsize, dstmsgdelimbytes, and dstmsgdelimpattern attributes.
dstunsupportedcodepage
Optional. Specifies the action to take if the destination queue manager, as specified by the dstqueue
attribute, does not support the code page used when transferring file data to a queue as a text
transfer. The valid values for this attribute are as follows:
• binary - continue the transfer but do not apply code page conversion to the data being transferred.
Specifying this value is equivalent to not setting the conversion attribute to text.
Other attributes
checksum
Optional. Determines the algorithm used to checksum transferred files.
• MD5 - use the MD5 hashing algorithm.
• NONE - do not use a checksum algorithm.
If you do not specify the checksum attribute, a default value of MD5 is used.
conversion
Optional. Specifies the type of conversion to apply to the file as it is being transferred. Possible values
are:
• binary - apply no conversion.
• text - apply code page conversion between the source and destination systems. Also apply
conversion of line delimiters. The srcencoding, dstencoding, srceol and dsteol attributes
influence the conversion that is applied.
If you do not specify the conversion attribute, a default value of binary is specified.
overwrite
Optional. Determines whether an existing destination file or data set can be overwritten
by the operation. When you specify a value of true, any existing destination file or data
sets are overwritten. When you specify a value of false, the existence of a duplicate file
or data set at the destination results in the operation failing. If the overwrite attribute is not specified,
a default value of false is specified.
recurse
Optional. Determines whether the file transfer recurses into subdirectories. When you specify a value
of true, the transfer recurses into subdirectories. When you specify a value of false, the transfer
does not recurse into subdirectories. If the recurse attribute is not specified, a default value of false
is specified.
Example
This example specifies a fte:filespec with a source file of file1.bin and a destination file of
file2.bin.
Related reference
“Using Apache Ant with MFT” on page 254
Managed File Transfer provides tasks that you can use to integrate file transfer function into the Apache
Ant tool.
“Ant tasks provided by MFT” on page 826
Nested by:
• The fte:filecopy task
• The fte:filemove task
• The fte:call task
Entry attributes
name
Required. The name of the key belonging to this entry. This name must be unique across all entry
parameters nested inside a fte:metadata element.
value
Required. The value to assign to this entry.
Example
This example shows a fte:metadata definition that contains two entries.
<fte:metadata>
<fte:entry name="org.foo.partColor" value="red"/>
<fte:entry name="org.foo.partSize" value="medium"/>
</fte:metadata>
Related reference
“Using Apache Ant with MFT” on page 254
Managed File Transfer provides tasks that you can use to integrate file transfer function into the Apache
Ant tool.
“Ant tasks provided by MFT” on page 826
Managed File Transfer provides a number of Ant tasks that you can use to access file transfer capabilities.
Attributes
command
Required. Names the program to call. For the agent to be able to run a command, the command must
be in a location specified by the commandPath property in the agent's agent.properties file. For
more information, see “commandPath MFT property” on page 359. Any path information specified in
the command attribute is considered relative to a location specified by the commandPath property.
When type is executable, an executable program is expected otherwise a script appropriate for the
call type is expected.
retrycount
Optional. The number of times to retry calling the program if the program does not return a success
return code. The program named by the command attribute is called up to this number of times. The
value assigned to this attribute must be non-negative. If you do not specify the retrycount
attribute, a default value of zero is used.
retrywait
Optional. The time to wait, in seconds, before trying the program invocation again. If the program
named by the command attribute does not return a success return code and the retrycount
attribute specifies a non-zero value, this parameter determines the time to wait between retries. The
value assigned to this attribute must be non-negative. If you do not specify the retrywait attribute,
a default value of zero is used.
successrc
Optional. The value of this attribute is used to determine when the program invocation successfully
runs. The process return code for the command is evaluated using this expression. The value can be
composed of one or more expressions combined with a vertical bar character (|) to signify Boolean
OR, or an ampersand (&) character to signify Boolean AND. Each expression can be one of the
following types of expression:
• A number to indicate an equality test between the process return code and the number.
• A number prefixed with a ">" character to indicate a greater-than test between the number and the
process return code.
• A number prefixed with a "<" character to indicate a less-than test between the number and the
process return code.
• A number prefixed with a "!" character to indicate a not-equal-to test between the number and the
process return code.
For example: >2&<7&!5|0|14 is interpreted as the following return codes being successful: 0, 3, 4,
6, 14. All other return codes are interpreted as being unsuccessful. If you do not specify the
successrc attribute, a default value of zero is used. This means that the command is judged to have
successfully run if, and only if, it returns a code of zero.
type
Optional. The value of this attribute specifies what type of program is being called. Specify one of the
following options:
executable
The task calls an executable program. Can have additional arguments specified using the arg
nested element. The program is expected to be accessible on the commandPath and where
jcl
The value jcl is supported on z/OS only and runs the specified z/OS JCL script. The JCL is
submitted as a job and requires the job card to be present. When the job is submitted successfully
the JCL command output, written to the Managed File Transfer log, contains the following text:
JOB job_name(job_id) where:
• job_name is the name of the job identified by the job card in the JCL.
• job_id is the z/OS system generated job ID.
If the job cannot be submitted successfully, the JCL script command fails and writes a message to
the log indicating the reason for the failure (for example no job card is present). To understand
whether the job has been run or completed successfully, use a system service such as SDSF.
Managed File Transfer does not provide the information because it only submits the job; the
system then determines when to run the job and how the job output is presented. Because a JCL
script is submitted as a batch job it is not advisable to specify jcl for a presrc or predst nested
element because you only know that the job has been submitted successfully and not whether it
ran to completion successfully before the transfer starts. There are no nested elements that are
valid with a type of jcl.
The following example shows a JCL job:
//MYJOB JOB
//*
//MYJOB EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=H
//SYSUT1 DD DSN=FRED.DEMO.TXT,DISP=SHR
//SYSUT2 DD DSN=BOB.DEMO.TXT,DISP=(NEW,CATLG),
// RECFM=VB,LRECL=133,BLKSIZE=2048,
// SPACE=(TRK,(30,5),RLSE)
//SYSIN DD DUMMY
Property attributes
name
Required. The name of a property to pass to the Ant script.
value
Required. The value to associate with the property name being passed to the Ant script.
Examples
This example shows an fte:postsrc program invocation being specified as part of an fte:filecopy task.
The program invocation is for a program called post.sh and is supplied a single argument of /home/
fteuser2/file.bin.
<fte:filecopy cmdqm="qm0@localhost@1414@SYSTEM.DEF.SVRCONN"
src="agent1@qm1" dst="agent2@qm2"
rcproperty="copy.result">
<fte:filespec srcfilespec="/home/fteuser1/file.bin" dstfile="/home/fteuser2/file.bin"/>
</fte:filecopy>
This example shows an fte:command program invocation being specified as part of a fte:call task. The
program invocation is for an executable called command.sh, which is not passed any command-line
arguments. If command.sh does not return a success return code of 1, the command is tried again after
30 seconds.
<fte:call cmdqm="qm0@localhost@1414@SYSTEM.DEF.SVRCONN"
agent="agent1@qm1"
rcproperty="call.rc"
origuser="bob"
jobname="${job.id}">
<fte:command command="command.sh" successrc="1" retrycount="5" retrywait="30"/>
</fte:call>
This example shows an fte:command program invocation being specified as part of a fte:call task. The
program invocation is for the copy and compress targets in an Ant script called script.xml, which is
passed two properties.
<fte:call cmdqm="qm0@localhost@1414@SYSTEM.DEF.SVRCONN"
agent="agent1@qm1"
rcproperty="call.rc"
origuser="bob"
jobname="${job.id}">
<fte:command command="script.xml" type="antscript">
<property name="src" value="AGENT5@QM5"/>
<property name="dst" value="AGENT3@QM3"/>
<target name="copy"/>
<target name="compress"/>
</fte:command>
</fte:call>
Related concepts
“Specifying programs to run with MFT” on page 253
You can run programs on a system where a Managed File Transfer Agent is running. As part of a file
transfer request, you can specify a program to run either before a transfer starts, or after it finishes.
Environment metadata
Environment metadata is passed to all user exit routines and describes the agent runtime environment
that the user exit routine is being called from. This metadata is read-only and cannot be updated by any
user exit routine.
The key names and value names given in Table 1 are constants that are defined in the
EnvironmentMetaDataConstants interface.
Transfer metadata
Transfer metadata is passed to all user exit routines. The metadata consists of system-supplied values
and user-supplied values. If you change any system-supplied values, these changes are ignored. The
initial user-supplied values for the source transfer start user exit are based on those values you supply
when you define the transfer. The source agent can change user-supplied values as part of the processing
of the source transfer start user exit. This user exit is called before the entire file transfer starts. These
changes are used in subsequent calls to other exit routines that relate to that transfer. Transfer metadata
is applied to an entire transfer.
Although all user exits can read values from the transfer metadata, only the source transfer start user exit
can change transfer metadata
You cannot use transfer metadata to propagate information between different file transfers.
The system-supplied transfer metadata is detailed in Table 2:
The key names and value names given in Table 2 are constants that are defined in the
TransferMetaDataConstants interface.
File metadata
The file metadata is passed to the source transfer start exit as part of the file specification. There is
separate file metadata for the source and destination files.
You cannot use file metadata to propagate information between different file transfers.
Table 68. File metadata
The key names and value names given in Table 3 are constants that are defined in the
FileMetaDataConstants interface.
It is not recommended to invoke new transfers directly from user exit code. In some circumstances this
causes files to be transferred multiple times as user exits are not resilient to agent restarts.
Resource monitor user exits use the existing infrastructure for user exits. The monitor user exits are called
after a monitor has triggered but before the corresponding task has been run by the monitor's task. This
allows the user exit to modify the task to be run and decide whether a task should proceed or not. You can
modify the monitor task by updating the monitor metadata, which is then used for variable substitution in
the task document created by the creation of the original monitor. Alternatively, the monitor exit can
replace or update the task definition XML string passed as a parameter. The monitor exit can return a
result code of either 'proceed' or 'cancel' for the task. If cancel is returned, the task will not be started and
the monitor will not start again until the monitored resource matches the trigger conditions. If the
resource has not changed, the trigger will not start. As with the other user exits, you can chain monitor
exits together. If one of the exits returns a cancel result code, the overall result is cancel and the task is
not started.
• A map of environment metadata (same as other user exits)
• A map of monitor metadata including immutable system metadata and mutable user metadata. The
immutable system metadata is as follows:
– FILENAME - name of the file that satisfied the trigger condition
monitorExitClasses=testExits.TestExit1,testExits.testExit2
package com.ibm.wmqfte.exitroutine.api;
import java.util.Map;
/**
* An interface that is implemented by classes that want to be invoked as part of
* user exit routine processing. This interface defines a method that will be
* invoked immediately prior to starting a task as the result of a monitor trigger
*/
public interface MonitorExit {
/**
* Invoked immediately prior to starting a task as the result of a monitor
* trigger.
*
* @param environmentMetaData
* meta data about the environment in which the implementation
* of this method is running. This information can only be read,
* it cannot be updated by the implementation. The constant
* defined in <code>EnvironmentMetaDataConstants</code> class can
* be used to access the data held by this map.
*
* @param monitorMetaData
* meta data to associate with the monitor. The meta data passed
* to this method can be altered, and the changes will be
* reflected in subsequent exit routine invocations. This map
* also contains keys with IBM reserved names. These entries are
* defined in the <code>MonitorMetaDataConstants</code> class and
* have special semantics. The the values of the IBM reserved names
The constants for the IBM-reserved values in the monitor metadata are as follows:
package com.ibm.wmqfte.exitroutine.api;
/**
* Constants for IBM reserved values placed into the monitor meta data
* maps used by the monitor exit routines.
*/
public interface MonitorMetaDataConstants {
/**
* The value associated with this key is the name of the trigger
* file associated with the monitor. Any modification performed
* to this property by user exit routines will be ignored.
*/
final String FILE_NAME_KEY = "FILENAME";
/**
* The value associated with this key is the path to the trigger
* file associated with the monitor. Any modification performed
* to this property by user exit routines will be ignored.
*/
final String FILE_PATH_KEY = "FILEPATH";
/**
* The value associated with this key is the size of the trigger
* file associated with the monitor. This will not be present in
* the cases where the size cannot be determined. Any modification
* performed to this property by user exit routines will be ignored.
*/
final String FILE_SIZE_KEY = "FILESIZE";
/**
* The value associated with this key is the local date on which
* the trigger file associated with the monitor was last modified.
* Any modification performed to this property by user exit routines
* will be ignored.
*/
final String LAST_MODIFIED_DATE_KEY = "LASTMODIFIEDDATE";
/**
* The value associated with this key is the local time at which
* the trigger file associated with the monitor was last modified.
* Any modification performed to this property by user exit routines
* will be ignored.
*/
final String LAST_MODIFIED_TIME_KEY = "LASTMODIFIEDTIME";
/**
* The value associated with this key is the UTC date on which
* the trigger file associated with the monitor was last modified.
* Any modification performed to this property by user exit routines
* will be ignored.
*/
final String LAST_MODIFIED_DATE_KEY_UTC = "LASTMODIFIEDDATEUTC";
/**
* The value associated with this key is the UTC time at which
* the trigger file associated with the monitor was last modified.
* Any modification performed to this property by user exit routines
* will be ignored.
*/
final String LAST_MODIFIED_TIME_KEY_UTC = "LASTMODIFIEDTIMEUTC";
package com.ibm.wmqfte.monitor;
import java.util.Calendar;
import java.util.Map;
import com.ibm.wmqfte.exitroutine.api.MonitorExit;
import com.ibm.wmqfte.exitroutine.api.MonitorExitResult;
import com.ibm.wmqfte.exitroutine.api.Reference;
/**
* Example resource monitor user exit that changes the monitor mutable
* metadata value between 'LONDON' and 'PARIS' depending on the hour of the day.
*
*/
public class TestMonitorExit implements MonitorExit {
// always succeed
final MonitorExitResult result = MonitorExitResult.PROCEED_RESULT;
if (hour%2 == 1) {
monitorMetaData.put(REDIRECTED_AGENT, "LONDON");
} else {
monitorMetaData.put(REDIRECTED_AGENT, "PARIS");
}
return result;
}
}
The corresponding task for a monitor that makes use of the REDIRECTEDAGENT substitution variable
could look similar to the following:
Before this transfer is started, the value of the <destinationAgent> element's agent attribute is replaced
with either LONDON or PARIS.
You must specify the substitution variable in the monitor exit class and the task definition XML in
uppercase.
Related concepts
“Customizing MFT with user exits” on page 258
You can customize the features of Managed File Transfer by using your own programs known as user exit
routines.
“Metadata for MFT user exits” on page 850
There are three different types of metadata that can be supplied to user exit routines for Managed File
Transfer: environment, transfer, and file metadata. This metadata is presented as maps of Java key-value
pairs.
“Java interfaces for MFT user exits” on page 859
Use the topics in this section for reference information about Java interfaces for user exit routines.
Related reference
“MFT Agent properties for user exits” on page 857
In addition to the standard properties in the agent.properties file, there are several advanced
properties specifically for user exit routines. These properties are not included by default so if you want to
use any of them, you must manually edit the agent.properties file. If you make a change to
agent.properties file while that agent is running, stop and restart the agent to pick up the changes.
For IBM WebSphere MQ 7.5 or later, there is the ability for environment variables to be used in some
Managed File Transfer properties that represent file or directory locations. This allows the locations of
files or directories used when running parts of the product, to vary depending on environment changes,
such as which user is running the process. For more information, see “The use of environment variables in
MFT properties” on page 522.
The user exit routines are called in the order listed.
Table 69. Agent properties for user exits
sourceTransferEndExitClasses Specifies a comma-separated list of classes that implement a source transfer end
exit routine.
sourceTransferStartExitClasses Specifies a comma-separated list of classes that implement a source transfer start
exit routine.
exitClassPath=C:/IBM/MQ/Java/lib/com.ibm.mqjms.jar;
C:/IBM/MQ/Java/lib/com.ibm.mq.jar
For IBM WebSphere MQ 7.5 or later, the value of this property can contain
environment variables.
monitorExitClasses Specifies a comma-separated list of classes that implement a monitor exit routine.
For more information, see “MFT resource monitor user exits” on page 853.
IOExitClasses Specifies a comma-separated list of classes that implement an I/O user exit
routine. List only the classes that implement the IOExit interface, that is, do not
list classes that implement the other I/O user exit interfaces, for example
IOExitResourcePath and IOExitChannel. For more information, see “Using MFT
transfer I/O user exits” on page 262.
Example
sourceTransferStartExitClasses=com.ibm.wmqfte.test.MFTTestSourceTransferStartExit
sourceTransferEndExitClasses=com.ibm.wmqfte.test.MFTTestSourceTransferEndExit
destinationTransferStartExitClasses=com.ibm.wmqfte.test.MFTTestDestinationTransferStartExit
destinationTransferEndExitClasses=com.ibm.wmqfte.test.MFTTestDestinationTransferEndExit
exitClassPath=C:/IBM/MQ/Java/lib/com.ibm.mqjms.jar;C:/IBM/MQ/Java/lib/com.ibm.mq.jar
Related concepts
“Customizing MFT with user exits” on page 258
You can customize the features of Managed File Transfer by using your own programs known as user exit
routines.
“Metadata for MFT user exits” on page 850
There are three different types of metadata that can be supplied to user exit routines for Managed File
Transfer: environment, transfer, and file metadata. This metadata is presented as maps of Java key-value
pairs.
“Java interfaces for MFT user exits” on page 859
Use the topics in this section for reference information about Java interfaces for user exit routines.
Related reference
“MFT resource monitor user exits” on page 853
Resource monitor user exits allow you to configure custom code to run when a monitor's trigger condition
is satisfied, before the associated task is started.
“The use of environment variables in MFT properties” on page 522
From IBM WebSphere MQ 7.5, it is possible for environment variables to be used in Managed File Transfer
properties that represent file or directory locations. This allows the locations of files or directories used
when running parts of the product, to vary depending on environment changes. For example, which user is
running the process.
CDCredentialExit.java interface
CDCredentialExit.java
/*
* Licensed Materials - Property of IBM
*
* "Restricted Materials of IBM"
*
* 5724-H72
*
* Copyright IBM Corp. 2011, 2020. All Rights Reserved.
*
* US Government Users Restricted Rights - Use, duplication or
* disclosure restricted by GSA ADP Schedule Contract with
* IBM Corp.
*/
package com.ibm.wmqfte.exitroutine.api;
import java.util.Map;
/**
* Invoked once when a Connect:Direct bridge agent is started. It is intended to initialize
* any resources that are required by the exit
*
* @param bridgeProperties
* The values of properties defined for the Connect:Direct bridge.
* These values can only be read, they cannot be updated by
* the implementation.
*
* @return true if the initialisation is successful and false if unsuccessful
* If false is returned from an exit the Connect:Direct bridge agent does not
* start.
*/
public boolean initialize(final Map<String, String> bridgeProperties);
/**
* Invoked once per transfer to map the IBM MQ user ID in the transfer message to the
* credentials to be used to access the Connect:Direct node.
*
* @param mqUserId The IBM MQ user ID from which to map to the credentials to be used
* to access the Connect:Direct node
* @param snode The name of the Connect:Direct SNODE specified as the cdNode in the
* file path. This is used to map the correct user ID and password for the
* SNODE.
* @return A credential exit result object that contains the result of the map and
* the credentials to use to access the Connect:Direct node
*/
/**
* Invoked once when a Connect:Direct bridge agent is shutdown. This method releases
* any resources that were allocated by the exit
*
* @param bridgeProperties
* The values of properties defined for the Connect:Direct bridge.
* These values can only be read, they cannot be updated by
* the implementation.
*
* @return
*/
public void shutdown(final Map<String, String> bridgeProperties); }
CredentialExitResult.java interface
CredentialExitResult.java
/*
* Licensed Materials - Property of IBM
*
* "Restricted Materials of IBM"
*
* 5724-H72
*
* Copyright IBM Corp. 2008, 2020. All Rights Reserved.
*
* US Government Users Restricted Rights - Use, duplication or
* disclosure restricted by GSA ADP Schedule Contract with
* IBM Corp.
*/
package com.ibm.wmqfte.exitroutine.api;
/**
* The result of invoking a Credential mapMQUserId exit method. It is composed of a result
* code, which determines whether the mapping of the user id was successful, and an optional
* Credentials object if the mapping is successful.
*/
/**
* Constructor. Creates a credential exit result object with a specified result
* code and optionally credentials.
*
* @param resultCode
* The result code to associate with the exit result being created.
*
* @param credentials
* The credentials to associate with the exit result being created.
* A value of <code>null</code> can be specified to indicate no
* credentials. If the resultCode is USER_SUCCESSFULLY_MAPPED the
* credentials must be set to a non-null value,
*/
public CredentialExitResult(CredentialExitResultCode resultCode, Credentials credentials) {
this.resultCode = resultCode;
this.credentials = credentials;
}
/**
* Returns the result code associated with this credential exit result
*
* @return the result code associated with this exit result.
*/
public CredentialExitResultCode getResultCode() {
return resultCode;
}
/**
* Returns the credentials associated with this credential exit result
*
* @return the explanation associated with this credential exit result.
*/
public Credentials getCredentials() {
return credentials;
}
}
Related reference
“SourceTransferStartExit.java interface” on page 889
“DestinationTransferStartExit.java interface” on page 862
“DestinationTransferEndExit.java interface” on page 861
“MonitorExit.java interface” on page 882
“ProtocolBridgeCredentialExit.java interface” on page 883
Related information
Customizing MFT with user exits
DestinationTransferEndExit.java interface
DestinationTransferEndExit.java
/*
* Licensed Materials - Property of IBM
*
* "Restricted Materials of IBM"
*
* 5724-H72
*
* Copyright IBM Corp. 2008, 2020. All Rights Reserved.
*
* US Government Users Restricted Rights - Use, duplication or
* disclosure restricted by GSA ADP Schedule Contract with
* IBM Corp.
*/
package com.ibm.wmqfte.exitpoint.api;
/**
* Invoked immediately after the completion of a transfer on the agent acting as
* the destination of the transfer.
*
* @param transferExitResult
* a result object reflecting whether or not the transfer completed
* successfully.
*
* @param sourceAgentName
* the name of the agent acting as the source of the transfer.
*
* @param destinationAgentName
* the name of the agent acting as the destination of the
* transfer. This is the name of the agent that the
* implementation of this method will be invoked from.
*
* @param environmentMetaData
* meta data about the environment in which the implementation
* of this method is running. This information can only be read,
* it cannot be updated by the implementation. The constants
* defined in <code>EnvironmentMetaDataConstants</code> class can
* be used to access the data held by this map.
*
* @param transferMetaData
* meta data to associate with the transfer. The information can
* only be read, it cannot be updated by the implementation. This
* map may also contain keys with IBM reserved names. These
* entries are defined in the <code>TransferMetaDataConstants</code>
* class and have special semantics.
*
* @param fileResults
* a list of file transfer result objects that describe the source
* file name, destination file name and result of each file transfer
* operation attempted.
*
* @return an optional description to enter into the log message describing
* transfer completion. A value of <code>null</code> can be used
* when no description is required.
*/
String onDestinationTransferEnd(TransferExitResult transferExitResult,
String sourceAgentName,
String destinationAgentName,
Map<String, String>environmentMetaData,
Map<String, String>transferMetaData,
List<FileTransferResult>fileResults);
}
Related concepts
“Customizing MFT with user exits” on page 258
You can customize the features of Managed File Transfer by using your own programs known as user exit
routines.
Related reference
“SourceTransferStartExit.java interface” on page 889
“SourceTransferEndExit.java interface” on page 888
“DestinationTransferStartExit.java interface” on page 862
“MonitorExit.java interface” on page 882
“ProtocolBridgeCredentialExit.java interface” on page 883
DestinationTransferStartExit.java interface
DestinationTransferStartExit.java
/*
/**
* An interface that is implemented by classes that want to be invoked as part of
* user exit routine processing. This interface defines a method that will be
* invoked immediately prior to starting a transfer on the agent acting as the
* destination of the transfer.
*/
public interface DestinationTransferStartExit {
/**
* Invoked immediately prior to starting a transfer on the agent acting as
* the destination of the transfer.
*
* @param sourceAgentName
* the name of the agent acting as the source of the transfer.
*
* @param destinationAgentName
* the name of the agent acting as the destination of the
* transfer. This is the name of the agent that the
* implementation of this method will be invoked from.
*
* @param environmentMetaData
* meta data about the environment in which the implementation
* of this method is running. This information can only be read,
* it cannot be updated by the implementation. The constants
* defined in <code>EnvironmentMetaDataConstants</code> class can
* be used to access the data held by this map.
*
* @param transferMetaData
* meta data to associate with the transfer. The information can
* only be read, it cannot be updated by the implementation. This
* map may also contain keys with IBM reserved names. These
* entries are defined in the <code>TransferMetaDataConstants</code>
* class and have special semantics.
*
* @param fileSpecs
* a list of file specifications that govern the file data to
* transfer. The implementation of this method can modify the
* entries in this list and the changes will be reflected in the
* files transferred. However, new entries may not be added and
* existing entries may not be removed.
*
* @return a transfer exit result object which is used to determine if the
* transfer should proceed, or be cancelled.
*/
TransferExitResult onDestinationTransferStart(String sourceAgentName,
String destinationAgentName,
Map<String, String> environmentMetaData,
Map<String, String> transferMetaData,
List<Reference<String>> fileSpecs);
Related concepts
“Customizing MFT with user exits” on page 258
You can customize the features of Managed File Transfer by using your own programs known as user exit
routines.
Related reference
“SourceTransferStartExit.java interface” on page 889
“SourceTransferEndExit.java interface” on page 888
“DestinationTransferEndExit.java interface” on page 861
“MonitorExit.java interface” on page 882
“ProtocolBridgeCredentialExit.java interface” on page 883
FileTransferResult.java
/*
* Licensed Materials - Property of IBM
*
* "Restricted Materials of IBM"
*
* 5724-H72
*
* Copyright IBM Corp. 2008, 2020. All Rights Reserved.
*
* US Government Users Restricted Rights - Use, duplication or
* disclosure restricted by GSA ADP Schedule Contract with
* IBM Corp.
*/
package com.ibm.wmqfte.exitroutine.api;
/**
* Result information about a file transfer.
*/
public interface FileTransferResult {
/**
* Returns the source file specification, from which the file was transferred.
*
* @return the source file specification, from which the file was
* transferred.
*/
String getSourceFileSpecification();
/**
* Returns the destination file specification, to which the file was transferred.
*
* @return the destination file specification, to which the file was
* transferred. A value of <code>null</code> may be returned
* if the transfer did not complete successfully.
*/
String getDestinationFileSpecification();
/**
* Returns the result of the file transfer operation.
*
* @return the result of the file transfer operation.
*/
FileExitResult getExitResult();
/**
* @return an enumerated value that identifies the product to which this correlating
* information relates.
*/
CorrelationInformationType getCorrelatorType();
/**
* @return the first string component of the correlating identifier that relates
* this transfer result to work done in another product. A value of null
* may be returned either because the other product does not utilize a
* string based correlation information or because there is no correlation
* information.
*/
String getString1Correlator();
/**
* @return the first long component of the correlating identifier that relates
* this transfer result to work done in another product. A value of zero
Related reference
“SourceTransferStartExit.java interface” on page 889
“DestinationTransferStartExit.java interface” on page 862
“DestinationTransferEndExit.java interface” on page 861
“MonitorExit.java interface” on page 882
“ProtocolBridgeCredentialExit.java interface” on page 883
Related information
Customizing MFT with user exits
IOExit.java interface
IOExit.java
/*
* Licensed Materials - Property of IBM
*
* "Restricted Materials of IBM"
*
* 5724-H72
*
* Copyright IBM Corp. 2011, 2020. All Rights Reserved.
*
* US Government Users Restricted Rights - Use, duplication or
* disclosure restricted by GSA ADP Schedule Contract with
* IBM Corp.
*/
package com.ibm.wmqfte.exitroutine.api;
import java.io.IOException;
import java.util.Map;
import com.ibm.wmqfte.exitroutine.api.IOExitRecordResourcePath.RecordFormat;
/**
* An interface that is implemented by classes that you want to be invoked as
* part of user exit routine processing. This interface defines methods that
* will be invoked during transfers to perform the underlying file system I/O
* work for WMQFTE transfers.
* <p>
* The {@link #initialize(Map)} method will be called once when the exit is
* first installed. The WMQFTE agent properties are passed to this method, thus
* enabling the exit to understand its environment.
* <p>
* The {@link #isSupported(String)} method will be invoked during WMQFTE
* transfers to determine whether the user exit should be used. If the
* {@link #isSupported(String)} method returns a value of {@code true}, the
* {@link #newPath(String)} method will be invoked for the paths specified for
* the transfer request. The returned {@link IOExitPath} instance from a
* {@link #newPath(String)} method invocation will then be used by the WMQFTE
* transfer to obtain information about the resource and to transfer data to or
* from the resource.
* <p>
* To obtain transfer context for an I/O exit, a {@link SourceTransferStartExit}
* or {@link DestinationTransferStartExit} as appropriate, should be installed
* to enable information to be seen by this exit. The
* {@link SourceTransferStartExit} or {@link DestinationTransferStartExit} are
* passed the transfer's environment, metadata, and a list of file
* specifications for the transfer. The paths for the file specifications are
* the paths passed to the I/O exit's {@link #newPath(String)} method.
* <p>
* Note also that the {@link #isSupported(String)} and {@link #newPath(String)}
* methods might be called at other times by a WMQFTE agent and not just during
* transfers. For example, at transfer setup time the I/O system is queried to
* resolve the full resource paths for transfer.
/**
* Invoked once when the I/O exit is first required for use. It is intended
* to initialize any resources that are required by the exit.
*
* @param agentProperties
* The values of properties defined for the WMQFTE agent. These
* values can only be read, they cannot be updated by the
* implementation.
* @return {@code true} if the initialization is successful and {@code
* false} if unsuccessful. If {@code false} is returned from an
* exit, the exit will not be used.
*/
boolean initialize(final Map<String, String> agentProperties);
/**
* Indicates whether this I/O user exit supports the specified path.
* <p>
* This method is used by WMQFTE to determine whether the I/O user exit
* should be used within a transfer. If no I/O user exit returns true for
* this method, the default WMQFTE file I/O function will be used.
*
* @param path
* The path to the required I/O resource.
* @return {@code true} if the specified path is supported by the I/O exit,
* {@code false} otherwise
*/
boolean isSupported(String path);
/**
* Obtains a new {@link IOExitPath} instance for the specified I/O resource
* path.
* <p>
* This method will be invoked by WMQFTE only if the
* {@link #isSupported(String)} method has been called for the path and
* returned {@code true}.
*
* @param path
* The path to the required I/O resource.
* @return A {@link IOExitPath} instance for the specified path.
* @throws IOException
* If the path cannot be created for any reason.
*/
IOExitPath newPath(String path) throws IOException;
/**
* Obtains a new {@link IOExitPath} instance for the specified I/O resource
* path and passes record format and length information required by the
* WMQFTE transfer.
* <p>
* Typically this method will be called for the following cases:
* <ul>
* <li>A path where a call to {@link #newPath(String)} has previously
* returned a {@link IOExitRecordResourcePath} instance and WMQFTE is
* re-establishing a new {@link IOExitPath} instance for the path, from an
* internally-serialized state. The passed recordFormat and recordLength
* will be the same as those for the original
* {@link IOExitRecordResourcePath} instance.</li>
* <li>A transfer destination path where the source of the transfer is
* record oriented. The passed recordFormat and recordLength will be the
* same as those for the source.</li>
* </ul>
* The implementation can act on the record format and length information as
* deemed appropriate. For example, for a destination agent if the
* destination does not already exist and the source of the transfer is
* record oriented, the passed recordFormat and recordLength information
* could be used to create an appropriate record-oriented destination path.
* If the destination path already exists, the passed recordFormat and
* recordLength information could be used to perform a compatibility check
* and throw an {@link IOException} if the path is not compatible. A
* compatibility check could ensure that a record oriented path's record
* format is the same as the passed record format or that the record length
* is greater or equal to the passed record length.
* <p>
* This method will be invoked by WMQFTE only if the
* {@link #isSupported(String)} method has been called for the path and
* returned {@code true}.
*
* @param path
* The path to the required I/O resource.
Related concepts
“Customizing MFT with user exits” on page 258
You can customize the features of Managed File Transfer by using your own programs known as user exit
routines.
Related reference
“Using MFT transfer I/O user exits” on page 262
You can use Managed File Transfer transfer I/O user exits to configure custom code to perform the
underlying file system I/O work for Managed File Transfer transfers.
IOExitChannel.java interface
IOExitChannel.java
/*
* Licensed Materials - Property of IBM
*
* "Restricted Materials of IBM"
*
* 5724-H72
*
* Copyright IBM Corp. 2011, 2020. All Rights Reserved.
*
* US Government Users Restricted Rights - Use, duplication or
* disclosure restricted by GSA ADP Schedule Contract with
* IBM Corp.
*/
package com.ibm.wmqfte.exitroutine.api;
import java.io.IOException;
import java.nio.ByteBuffer;
/**
* Represents a channel that enables data to be read from or written to an
* {@link IOExitResourcePath} resource.
*/
public interface IOExitChannel {
/**
* Obtains the data size for the associated {@link IOExitResourcePath} in
* bytes.
*
* @return The data size in bytes.
* @throws IOException
* If a problem occurs while attempting obtain the size.
*/
long size() throws IOException;
/**
* Closes the channel, flushing any buffered write data to the resource and
* releasing any locks.
*
* @throws RecoverableIOException
* If a recoverable problem occurs while closing the resource.
* This means that WMQFTE can attempt to recover the transfer.
* @throws IOException
* If some other I/O problem occurs. For example, the channel might
* already be closed.
*/
void close() throws RecoverableIOException, IOException;
/**
/**
* Writes data to this channel from the given buffer, starting at this
* channel's current position, and updates the current position by the
* amount of data written. The channel's resource is grown to accommodate
* the data, if necessary.
* <p>
* Data is copied from the buffer starting at its current position and up to
* its limit. On return, the buffer's position is updated to reflect the
* number of bytes written.
*
* @param buffer
* The buffer containing the data to be written.
* @return The number of bytes written, which might be zero.
* @throws RecoverableIOException
* If a recoverable problem occurs while writing the data. For a
* WMQFTE transfer this means that it will attempt to recover.
* @throws IOException
* If some other I/O problem occurs. For a WMQFTE transfer this
* means that it will be failed.
*/
int write(ByteBuffer buffer) throws RecoverableIOException, IOException;
/**
* Forces any updates to this channel's resource to be written to its
* storage device.
* <p>
* This method is required to force changes to both the resource's content
* and any associated metadata to be written to storage.
*
* @throws RecoverableIOException
* If a recoverable problem occurs while performing the force.
* For a WMQFTE transfer this means that it will attempt to
* recover.
* @throws IOException
* If some other I/O problem occurs. For a WMQFTE transfer this
* means that it will be failed.
*/
void force() throws RecoverableIOException, IOException;
/**
* Attempts to lock the entire resource associated with the channel for
* shared or exclusive access.
* <p>
* The intention is for this method not to block if the lock is currently
* unavailable.
*
* @param shared
* {@code true} if a shared lock is required, {@code false} if an
* exclusive lock is required.
* @return A {@link IOExitLock} instance representing the newly acquired
* lock or null if the lock cannot be obtained.
* @throws IOException
* If a problem occurs while attempting to acquire the lock.
*/
IOExitLock tryLock(boolean shared) throws IOException;
}
Related concepts
“Customizing MFT with user exits” on page 258
IOExitLock.java interface
IOExitLock.java
/*
* Licensed Materials - Property of IBM
*
* "Restricted Materials of IBM"
*
* 5724-H72
*
* Copyright IBM Corp. 2011, 2020. All Rights Reserved.
*
* US Government Users Restricted Rights - Use, duplication or
* disclosure restricted by GSA ADP Schedule Contract with
* IBM Corp.
*/
package com.ibm.wmqfte.exitroutine.api;
import java.io.IOException;
/**
* Represents a lock on a resource for either shared or exclusive access.
* {@link IOExitLock} instances are returned from
* {@link IOExitChannel#tryLock(boolean)} calls and WMQFTE will request the
* release of the lock at the appropriate time during a transfer. Additionally, when
* a {@link IOExitChannel#close()} method is called it will be the
* responsibility of the channel to release any associated locks.
*/
public interface IOExitLock {
/**
* Releases the lock.
* <p>
* After this method has been successfully called the lock is to be deemed as invalid.
*
* @throws IOException
* If the channel associated with the lock is not open or
* another problem occurs while attempting to release the lock.
*/
void release() throws IOException;
/**
* Indicates whether this lock is valid.
* <p>
* A lock is considered valid until its @ {@link #release()} method is
* called or the associated {@link IOExitChannel} is closed.
*
* @return {@code true} if this lock is valid, {@code false} otherwise.
*/
boolean isValid();
/**
* @return {@code true} if this lock is for shared access, {@code false} if
* this lock is for exclusive access.
*/
boolean isShared();
}
Related concepts
“Customizing MFT with user exits” on page 258
IOExitPath.java interface
IOExitPath.java
/*
* Licensed Materials - Property of IBM
*
* "Restricted Materials of IBM"
*
* 5724-H72
*
* Copyright IBM Corp. 2011, 2020. All Rights Reserved.
*
* US Government Users Restricted Rights - Use, duplication or
* disclosure restricted by GSA ADP Schedule Contract with
* IBM Corp.
*/
package com.ibm.wmqfte.exitroutine.api;
/**
* Represents an abstract path that can be inspected and queried by WMQFTE for
* transfer purposes.
* <p>
* There are two types of path supported:
* <ul>
* <li>{@link IOExitResourcePath} - Represents a path that denotes a data
* resource. For example, a file, directory, or group of database records.</li>
* <li>{@link IOExitWildcardPath} - Represents a wildcard path that can be
* expanded to multiple {@link IOExitResourcePath} instances.</li>
* </ul>
*/
public abstract interface IOExitPath {
/**
* Obtains the abstract path as a {@link String}.
*
* @return The abstract path as a {@link String}.
*/
String getPath();
/**
* Obtains the name portion of this abstract path as a {@link String}.
* <p>
* For example, a UNIX-style file system implementation evaluates the
* path {@code /home/fteuser/file1.txt} as having a name of {@code
* file1.txt}.
*
* @return the name portion of this abstract path as a {@link String}.
*/
String getName();
/**
* Obtains the parent path for this abstract path as a {@link String}.
* <p>
* For example, a UNIX-style file system implementation evaluates the
* path {@code /home/fteuser/file1.txt} as having a parent path of {@code
* /home/fteuser}.
*
* @return The parent portion of the path as a {@link String}.
*/
String getParent();
/**
* Obtains the abstract paths that match this abstract path.
* <p>
* If this abstract path denotes a directory resource, a list of paths
* for all resources within the directory are returned.
* <p>
Related concepts
“Customizing MFT with user exits” on page 258
You can customize the features of Managed File Transfer by using your own programs known as user exit
routines.
Related reference
“Using MFT transfer I/O user exits” on page 262
You can use Managed File Transfer transfer I/O user exits to configure custom code to perform the
underlying file system I/O work for Managed File Transfer transfers.
IOExitProperties.java interface
IOExitProperties.java
/*
* Licensed Materials - Property of IBM
*
* "Restricted Materials of IBM"
*
* 5724-H72
*
* Copyright IBM Corp. 2011, 2020. All Rights Reserved.
*
* US Government Users Restricted Rights - Use, duplication or
* disclosure restricted by GSA ADP Schedule Contract with
* IBM Corp.
*/
package com.ibm.wmqfte.exitroutine.api;
/**
* Properties that determine how WMQFTE treats an {@link IOExitPath} for certain
* aspects of I/O. For example, whether to use intermediate files.
*/
public class IOExitProperties {
/**
* Determines whether the I/O exit implementation expects the resource to be
* re-read from the start if a transfer is restarted.
*
* @return {@code true} if, on restart, the I/O exit expects the source
* resource to be opened at the beginning and re-read from the
* beginning (the {@link IOExitPath#openForRead(long)} method is
* always invoked with 0L as an argument). {@code false} if, on
* restart, the I/O exit expects the source to be opened at the
* offset that the source agent intends to start reading from (the
* {@link IOExitPath#openForRead(long)} method can be invoked with a
* non-zero value as its argument).
*/
public boolean getRereadSourceOnRestart() {
return rereadSourceOnRestart;
}
/**
* Sets the value to determine whether the I/O exit implementation expects
* the resource to be re-read from the beginning if a transfer is restarted.
* <p>
* The default is {@code true}. The I/O exit should call this method when
/**
* Determines whether the I/O exit implementation requires the source
* resource to be re-checksummed if the transfer is restarted.
* Re-checksumming takes place only if the
* {@link #getRereadSourceOnRestart()} method returns {@code true}.
*
* @return {@code true} if, on restart, the I/O exit expects the already-
* transferred portion of the source to be re-checksummed for
* inconsistencies. Use this option in environments
* where the source could be changed during a restart. {@code
* false} if, on restart, the I/O exit does not require the
* already-transferred portion of the source to be re-checksummed.
*/
public boolean getRechecksumSourceOnRestart() {
return rechecksumSourceOnRestart;
}
/**
* Sets the value to determine whether the I/O exit implementation requires
* the source resource to be re-checksummed if the transfer is restarted.
* Re-checksumming takes place only if the
* {@link #getRereadSourceOnRestart()} method returns {@code true}.
* <p>
* The default is {@code true}. The I/O exit should call this method when
* required to change this value.
*
* @param rechecksumSourceOnRestart
* {@code true} if, on restart, the I/O exit expects the already
* transferred portion of the source to be re-checksummed
* for inconsistencies. Use this option in environments
* where the source could be changed during a restart.
* {@code false} if, on restart, the I/O exit does not
* require the already-transferred portion of the source to be
* re-checksummed.
*/
public void setRechecksumSourceOnRestart(boolean rechecksumSourceOnRestart) {
this.rechecksumSourceOnRestart = rechecksumSourceOnRestart;
}
/**
* Determines whether the I/O exit implementation requires the destination
* resource to be re-checksummed if the transfer is restarted.
*
* @return {@code true} if, on restart, the I/O exit expects the already
* transferred portion of the destination to be re-checksummed to
* check for inconsistencies. This option should be used in
* environments where the destination could have been changed while
* a restart is occurring. {@code false} if, on restart, the I/O exit
* does not require the already transferred portion of the
* destination to be re-checksummed.
*/
public boolean getRechecksumDestinationOnRestart() {
return rechecksumDestinationOnRestart;
}
/**
* Sets the value to determine whether the I/O exit implementation requires
* the destination resource to be re-checksummed if the transfer is
* restarted.
* <p>
* The default is {@code true}. The I/O exit should call this method when
* required to change this value.
*
* @param rechecksumDestinationOnRestart
* {@code true} if, on restart, the I/O exit expects the already-
* transferred portion of the destination to be re-checksummed
/**
* Determines whether the I/O exit implementation requires the use of an
* intermediate file when writing the data at the destination. The
* intermediate file mechanism is typically used to prevent an incomplete
* destination resource from being processed.
*
* @return {@code true} if data should be written to an intermediate file at
* the destination and then renamed (to the requested destination
* path name as specified in the transfer request) after the transfer is
* complete. {@code false} if data should be written directly to the
* requested destination path name without the use of an
* intermediate file.
*/
public boolean getUseIntermediateFileAtDestination() {
return useIntermediateFileAtDestination;
}
/**
* Sets the value to determine whether the I/O exit implementation requires
* the use of an intermediate file when writing the data at the destination.
* The intermediate file mechanism is typically used to prevent an
* incomplete destination resource from being processed.
*
* <p>
* The default is {@code true}. The I/O exit should call this method when
* required to change this value.
*
* @param useIntermediateFileAtDestination
* {@code true} if data should be written to an intermediate file
* at the destination and then renamed (to the requested
* destination path name as specified in the transfer request) after
* the transfer is complete. {@code false} if data should be written
* directly to the requested destination path name without the
* use of an intermediate file
*/
public void setUseIntermediateFileAtDestination(
boolean useIntermediateFileAtDestination) {
this.useIntermediateFileAtDestination = useIntermediateFileAtDestination;
}
/**
* Determines whether the I/O exit implementation requires
* {@link IOExitChannel} instances to be accessed by a single thread only.
*
* @return {@code true} if {@link IOExitChannel} instances are to be
* accessed by a single thread only.
*/
public boolean requiresSingleThreadedChannelIO() {
return requiresSingleThreadedChannelIO;
}
/**
* Sets the value to determine whether the I/O exit implementation requires
* channel operations for a particular instance to be accessed by a
* single thread only.
* <p>
* For certain I/O implementations it is necessary that resource path
* operations such as open, read, write, and close are invoked only from a
* single execution {@link Thread}. When set {@code true}, WMQFTE ensures
* that the following are invoked on a single thread:
* <ul>
* <li>{@link IOExitResourcePath#openForRead(long) method and all methods of
* the returned {@link IOExitChannel} instance.</li>
* <li>{@link IOExitResourcePath#openForWrite(boolean)) method and all
* methods of the returned {@link IOExitChannel} instance.</li>
* </ul>
* <p>
* This has a slight performance impact, hence enable single-threaded channel
* I/O only when absolutely necessary.
* <p>
* The default is {@code false}. The I/O exit should call this method when
Related concepts
“Customizing MFT with user exits” on page 258
You can customize the features of Managed File Transfer by using your own programs known as user exit
routines.
Related reference
“Using MFT transfer I/O user exits” on page 262
You can use Managed File Transfer transfer I/O user exits to configure custom code to perform the
underlying file system I/O work for Managed File Transfer transfers.
IOExitRecordChannel.java interface
IOExitRecordChannel.java
/*
* Licensed Materials - Property of IBM
*
* "Restricted Materials of IBM"
*
* 5724-H72
*
* Copyright IBM Corp. 2011, 2020. All Rights Reserved.
*
* US Government Users Restricted Rights - Use, duplication or
* disclosure restricted by GSA ADP Schedule Contract with
* IBM Corp.
*/
package com.ibm.wmqfte.exitroutine.api;
import java.io.IOException;
import java.nio.ByteBuffer;
/**
* Represents a channel that enables records of data to be read from or written
* to an {@link IOExitRecordResourcePath} resource.
* <p>
* This is an extension of the {@link IOExitChannel} interface such that the
* {@link #read(java.nio.ByteBuffer)} and {@link #write(java.nio.ByteBuffer)}
* methods are expected to deal in whole records of data only. That is, the
* {@link java.nio.ByteBuffer} returned from the read method and passed to the
* write method is assumed to contain one or more complete records.
*/
public interface IOExitRecordChannel extends IOExitChannel {
/**
* Reads records from this channel into the given buffer, starting at this
* channel's current position, and updates the current position by the
* amount of data read.
* <p>
* Record data is copied into the buffer starting at its current position
* and up to its limit. On return, the buffer's position is updated to
* reflect the number of bytes read.
* <p>
* Only whole records are copied into the buffer.
* <p>
* For a fixed-record-format resource, this might be multiple records. The
* amount of data in the return buffer does not necessarily need to be a
* multiple of the record length, but the last record is still to be treated
* as a complete record and padded as required by the caller.
* <p>
* For a variable-format resource, this is a single whole record of a size
* corresponding to the amount of return data or multiple whole records with
* all except the last being treated as records of maximum size.
*
/**
* Writes records to this channel from the given buffer, starting at this
* channel's current position, and updates the current position by the
* amount of data written. The channel's resource is grown to accommodate
* the data, if necessary.
* <p>
* Record data is copied from the buffer starting at its current position
* and up to its limit. On return, the buffer's position is updated to
* reflect the number of bytes written.
* <p>
* The buffer is expected to contain only whole records.
* <p>
* For a fixed-record-format resource, this might be multiple records and if
* there is insufficient data in the buffer for a complete record, the
* record is to be padded as required to complete the record.
* <p>
* For a variable-record format resource the buffer is normally expected to
* contain a single record of length corresponding to the amount of data
* within the buffer. However, if the amount of data within the buffer
* exceeds the maximum record length, the implementation can either:
* <ol>
* <li>throw an {@link IOException} indicating that it cannot handle the
* situation.</li>
* <li>Consume a record's worth of data from the buffer, leaving the remaining
* data within the buffer.</li>
* <li>Consume all the buffer data and just write what it can to the current
* record. This effectively truncates the data.</li>
* <li>Consume all the buffer data and write to multiple records.</li>
* </ol>
*
* @param buffer
* The buffer containing the data to be written.
* @return The number of bytes written, which might be zero.
* @throws RecoverableIOException
* If a recoverable problem occurs while writing the data. For a
* WMQFTE transfer this means that it will attempt to recover.
* @throws IOException
* If some other I/O problem occurs. For a WMQFTE transfer this
* means that it will be failed.
*/
int write(ByteBuffer buffer) throws RecoverableIOException, IOException;
Related concepts
“Customizing MFT with user exits” on page 258
You can customize the features of Managed File Transfer by using your own programs known as user exit
routines.
Related reference
“Using MFT transfer I/O user exits” on page 262
You can use Managed File Transfer transfer I/O user exits to configure custom code to perform the
underlying file system I/O work for Managed File Transfer transfers.
IOExitRecordResourcePath.java interface
IOExitRecordResourcePath.java
/*
import java.io.IOException;
/**
* Represents a path that denotes a record-oriented data resource (for example,
* a z/OS data set). It allows the data to be located, the record format to be
* understood, and {@link IOExitRecordChannel} instances to be created for read
* or write operations.
*/
public interface IOExitRecordResourcePath extends IOExitResourcePath {
/**
* Record formats for record-oriented resources.
*/
public enum RecordFormat {
FIXED, VARIABLE
}
/**
* Obtains the record length for records that are maintained by the resource
* denoted by this abstract path.
* <p>
* For a resource with fixed-length records, the data for each record read
* and written is assumed to be this length.
* <p>
* For a resource with variable-length records, this is the maximum length
* for a record's data.
* <p>
* This method should return a value greater than zero, otherwise it can
* result in the failure of a WMQFTE transfer that involves this abstract
* path.
*
* @return The record length, in bytes, for records maintained by the
* resource.
*/
int getRecordLength();
/**
* Obtains record format, as a {@link RecordFormat} instance, for records
* that are maintained by the resource denoted by this abstract path.
*
* @return A {@link RecordFormat} instance for the record format for records
* that are maintained by the resource denoted by this abstract
* path.
*/
RecordFormat getRecordFormat();
/**
* Opens a {@link IOExitRecordChannel} instance for reading data from the
* resource denoted by this abstract path. The current data byte position
* for the resource is expected to be the passed position value, such that
* when {@link IOExitRecordChannel#read(java.nio.ByteBuffer)} is called,
* data starting from that position is read.
* <p>
* Note that the data byte read position will be on a record boundary.
*
* @param position
* The required data byte read position.
* @return A new {@link IOExitRecordChannel} instance allowing data to be
* read from the resource denoted by this abstract path.
* @throws RecoverableIOException
* If a recoverable problem occurs while attempting to open the
* resource for reading. This means that WMQFTE can attempt to
* recover the transfer.
* @throws IOException
* If some other I/O problem occurs.
*/
IOExitRecordChannel openForRead(long position)
throws RecoverableIOException, IOException;
Related concepts
“Customizing MFT with user exits” on page 258
You can customize the features of Managed File Transfer by using your own programs known as user exit
routines.
Related reference
“Using MFT transfer I/O user exits” on page 262
You can use Managed File Transfer transfer I/O user exits to configure custom code to perform the
underlying file system I/O work for Managed File Transfer transfers.
IOExitResourcePath.java interface
IOExitResourcePath.java
/*
* Licensed Materials - Property of IBM
*
* "Restricted Materials of IBM"
*
* 5724-H72
*
* Copyright IBM Corp. 2011, 2020. All Rights Reserved.
*
* US Government Users Restricted Rights - Use, duplication or
* disclosure restricted by GSA ADP Schedule Contract with
* IBM Corp.
*/
package com.ibm.wmqfte.exitroutine.api;
import java.io.IOException;
/**
* Represents a path that denotes a data resource (for example, a file,
* directory, or group of database records). It allows the data to be located
* and {@link IOExitChannel} instances to be created for read or write
* operations.
* <p>
* There are two types of data resources as follows:
* <ul>
* <li>Directory - a container for other data resources. The
* {@link #isDirectory()} method returns {@code true} for these.</li>
* <li>File - a data container. This allows data to be read from or written to
* it. The {@link #isFile()} method returns {@code true} for these.</li>
* </ul>
*/
public interface IOExitResourcePath extends IOExitPath {
/**
* Creates a new {@link IOExitResourcePath} instance for a child path of the
/**
* Creates the directory path for the resource denoted by this abstract
* path, including any necessary but nonexistent parent directories. If the
* directory path already exists, this method has no effect.
* <p>
* If this operation fails, it might have succeeded in creating some of the
* necessary parent directories.
*
* @throws IOException
* If the directory path cannot be fully created, when it does
* not already exist.
*/
void makePath() throws IOException;
/**
* Obtains the canonical path of the abstract path as a {@link String}.
* <p>
* A canonical path is defined as being absolute and unique. For example,
* the path can be represented as UNIX-style relative path: {@code
* test/file.txt} but the absolute and unique canonical path representation
* is: {@code /home/fteuser/test/file.txt}
*
* @return The canonical path as a {@link String}.
* @throws IOException
* If the canonical path cannot be determined for any reason.
*/
String getCanonicalPath() throws IOException;
/**
* Tests if this abstract path is an absolute path.
* <p>
* For example, a UNIX-style path, {@code /home/fteuser/test} is an absolute
* path, whereas {@code fteuser/test} is not.
*
* @return {@code true} if this abstract path is an absolute path, {@code
* false} otherwise.
*/
boolean isAbsolute();
/**
* Tests if the resource denoted by this abstract path exists.
*
* @return {@code true} if the resource denoted by this abstract path
* exists, {@code false} otherwise.
* @throws IOException
* If the existence of the resource cannot be determined for any
* reason.
*/
boolean exists() throws IOException;
/**
* Tests whether the calling application can read the resource denoted by
* this abstract path.
*
* @return {@code true} if the resource for this path exists and can be
* read, {@code false} otherwise.
* @throws IOException
* If a problem occurs while attempting to determine if the
* resource can be read.
*/
boolean canRead() throws IOException;
/**
* Tests whether the calling application can modify the resource denoted by
* this abstract path.
*
* @return {@code true} if the resource for this path exists and can be
* modified, {@code false} otherwise.
* @throws IOException
/**
* Tests whether the specified user is permitted to read the resource
* denoted by this abstract path.
* <p>
* When WMQFTE invokes this method, the user identifier is the MQMD user
* identifier for the requesting transfer.
*
* @param userId
* User identifier to test for access.
* @return {@code true} if the resource for this abstract path exists and is
* permitted to be read by the specified user, {@code false}
* otherwise.
* @throws IOException
* If a problem occurs while attempting to determine if the user
* is permitted to read the resource.
*/
boolean readPermitted(String userId) throws IOException;
/**
* Tests whether the specified user is permitted to modify the resource
* denoted by this abstract path.
* <p>
* When WMQFTE invokes this method, the user identifier is the MQMD user
* identifier for the requesting transfer.
*
* @param userId
* User identifier to test for access.
* @return {@code true} if the resource for this abstract path exists and is
* permitted to be modified by the specified user, {@code false}
* otherwise.
* @throws IOException
* If a problem occurs while attempting to determine if the user
* is permitted to modify the resource.
*/
boolean writePermitted(String userId) throws IOException;
/**
* Tests if the resource denoted by this abstract path is a directory-type
* resource.
*
* @return {@code true} if the resource denoted by this abstract path is a
* directory type resource, {@code false} otherwise.
*/
boolean isDirectory();
/**
* Creates the resource denoted by this abstract path, if it does not
* already exist.
*
* @return {@code true} if the resource does not exist and was successfully
* created, {@code false} if the resource already existed.
* @throws RecoverableIOException
* If a recoverable problem occurs while attempting to create
* the resource. This means that WMQFTE can attempt to recover
* the transfer.
* @throws IOException
* If some other I/O problem occurs.
*/
boolean createNewPath() throws RecoverableIOException, IOException;
/**
* Tests if the resource denoted by this abstract path is a file-type
* resource.
*
* @return {@code true} if the resource denoted by this abstract path is a
* file type resource, {@code false} otherwise.
*/
boolean isFile();
/**
* Obtains the last modified time for the resource denoted by this abstract
* path.
* <p>
* This time is measured in milliseconds since the epoch (00:00:00 GMT,
* January 1, 1970).
*
* @return The last modified time for the resource denoted by this abstract
/**
* Deletes the resource denoted by this abstract path.
* <p>
* If the resource is a directory, it must be empty for the delete to work.
*
* @throws IOException
* If the delete of the resource fails for any reason.
*/
void delete() throws IOException;
/**
* Renames the resource denoted by this abstract path to the specified
* destination abstract path.
* <p>
* The rename should still be successful if the resource for the specified
* destination abstract path already exists and it is possible to replace
* it.
*
* @param destination
* The new abstract path for the resource denoted by this
* abstract path.
* @throws IOException
* If the rename of the resource fails for any reason.
*/
void renameTo(IOExitResourcePath destination) throws IOException;
/**
* Creates a new path to use for writing to a temporary resource that did
* not previously exist.
* <p>
* The implementation can choose the abstract path name for the temporary
* resource. However, for clarity and problem diagnosis, the abstract path
* name for the temporary resource should be based on this abstract path
* name with the specified suffix appended and additional characters to make
* the path unique (for example, sequence numbers), as required.
* <p>
* When WMQFTE transfers data to a destination it normally attempts to first
* write to a temporary resource then on transfer completion renames the
* temporary resource to the required destination. This method is called by
* WMQFTE to create a new temporary resource path. The returned path should
* be new and the resource should not previously exist.
*
* @param suffix
* Recommended suffix to use for the generated temporary path.
*
* @return A new {@link IOExitResourcePath} instance for the temporary
* resource path, that did not previously exist.
* @throws RecoverableIOException
* If a recoverable problem occurs whilst attempting to create
* the temporary resource. This means that WMQFTE can attempt to
* recover the transfer.
* @throws IOException
* If some other I/O problem occurs.
*/
IOExitResourcePath createTempPath(String suffix)
throws RecoverableIOException, IOException;
/**
* Opens a {@link IOExitChannel} instance for reading data from the resource
* denoted by this abstract path. The current data byte position for the
* resource is expected to be the passed position value, such that when
* {@link IOExitChannel#read(java.nio.ByteBuffer)} is called, data starting
* from that position is read.
*
* @param position
* The required data byte read position.
* @return A new {@link IOExitChannel} instance allowing data to be read
* from the resource denoted by this abstract path.
* @throws RecoverableIOException
* If a recoverable problem occurs while attempting to open the
* resource for reading. This means that WMQFTE can attempt to
* recover the transfer.
* @throws IOException
* If some other I/O problem occurs.
*/
IOExitChannel openForRead(long position) throws RecoverableIOException,
IOException;
/**
* Tests if the resource denoted by this abstract path is in use by another
* application. Typically, this is because another application has a lock on
* the resource either for shared or exclusive access.
*
* @return {code true} if resource denoted by this abstract path is in use
* by another application, {@code false} otherwise.
*/
boolean inUse();
/**
* Obtains a {@link IOExitProperties} instance for properties associated
* with the resource denoted by this abstract path.
* <p>
* WMQFTE will read these properties to govern how a transfer behaves when
* interacting with the resource.
*
* @return A {@link IOExitProperties} instance for properties associated
* with the resource denoted by this abstract path.
*/
IOExitProperties getProperties();
Related concepts
“Customizing MFT with user exits” on page 258
You can customize the features of Managed File Transfer by using your own programs known as user exit
routines.
Related reference
“Using MFT transfer I/O user exits” on page 262
You can use Managed File Transfer transfer I/O user exits to configure custom code to perform the
underlying file system I/O work for Managed File Transfer transfers.
IOExitWildcardPath.java interface
IOExitWildcardPath.java
/*
* Licensed Materials - Property of IBM
*
* "Restricted Materials of IBM"
*
* 5724-H72
*
* Copyright IBM Corp. 2011, 2020. All Rights Reserved.
*
* US Government Users Restricted Rights - Use, duplication or
* disclosure restricted by GSA ADP Schedule Contract with
* IBM Corp.
/**
* Represents a path that denotes a wildcard. This can be used to match multiple
* resource paths.
*/
public interface IOExitWildcardPath extends IOExitPath {
Related concepts
“Customizing MFT with user exits” on page 258
You can customize the features of Managed File Transfer by using your own programs known as user exit
routines.
Related reference
“Using MFT transfer I/O user exits” on page 262
You can use Managed File Transfer transfer I/O user exits to configure custom code to perform the
underlying file system I/O work for Managed File Transfer transfers.
MonitorExit.java interface
MonitorExit.java
/*
* Licensed Materials - Property of IBM
*
* "Restricted Materials of IBM"
*
* 5724-H72
*
* Copyright IBM Corp. 2009, 2020. All Rights Reserved.
*
* US Government Users Restricted Rights - Use, duplication or
* disclosure restricted by GSA ADP Schedule Contract with
* IBM Corp.
*/
package com.ibm.wmqfte.exitroutine.api;
import java.util.Map;
/**
* An interface that is implemented by classes that want to be invoked as part of
* user exit routine processing. This interface defines a method that will be
* invoked immediately prior to starting a task as the result of a monitor trigger
*/
public interface MonitorExit {
/**
* Invoked immediately prior to starting a task as the result of a monitor
* trigger.
*
* @param environmentMetaData
* meta data about the environment in which the implementation
* of this method is running. This information can only be read,
* it cannot be updated by the implementation. The constant
* defined in <code>EnvironmentMetaDataConstants</code> class can
* be used to access the data held by this map.
*
* @param monitorMetaData
* meta data to associate with the monitor. The meta data passed
* to this method can be altered, and the changes will be
* reflected in subsequent exit routine invocations. This map
* also contains keys with IBM reserved names. These entries are
* defined in the <code>MonitorMetaDataConstants</code> class and
* have special semantics. The the values of the IBM reserved names
* cannot be modified by the exit
*
* @param taskDetails
* An XML String representing the task to be executed as a result of
* the monitor triggering. This XML string may be modified by the
* exit
*
* @return a monitor exit result object which is used to determine if the
* task should proceed, or be cancelled.
*/
Related concepts
“Customizing MFT with user exits” on page 258
You can customize the features of Managed File Transfer by using your own programs known as user exit
routines.
Related tasks
“Monitoring MFT resources” on page 176
You can monitor Managed File Transfer resources; for example, a queue or a directory. When a condition
on this resource is satisfied, the resource monitor starts a task, such as a file transfer. You can create a
resource monitor by using the fteCreateMonitor command or the Monitors view in the Managed File
Transfer plug-in for IBM MQ Explorer.
Related reference
“SourceTransferStartExit.java interface” on page 889
“SourceTransferEndExit.java interface” on page 888
“DestinationTransferStartExit.java interface” on page 862
“DestinationTransferEndExit.java interface” on page 861
“ProtocolBridgeCredentialExit.java interface” on page 883
ProtocolBridgeCredentialExit.java interface
ProtocolBridgeCredentialExit.java
/*
* Licensed Materials - Property of IBM
*
* "Restricted Materials of IBM"
*
* 5724-H72
*
* Copyright IBM Corp. 2008, 2020. All Rights Reserved.
*
* US Government Users Restricted Rights - Use, duplication or
* disclosure restricted by GSA ADP Schedule Contract with
* IBM Corp.
*/
package com.ibm.wmqfte.exitroutine.api;
import java.util.Map;
/**
* An interface that is implemented by classes that are to be invoked as part of
* user exit routine processing. This interface defines methods that will
* be invoked by a protocol bridge agent to map the MQ user ID of the transfer to credentials
* that are to be used to access the protocol server.
* There will be one instance of each implementation class per protocol bridge agent. The methods
* can be called from different threads so the methods must be synchronized.
*/
public interface ProtocolBridgeCredentialExit {
/**
* Invoked once when a protocol bridge agent is started. It is intended to initialize
* any resources that are required by the exit
*
* @param bridgeProperties
* The values of properties defined for the protocol bridge.
* These values can only be read, they cannot be updated by
* the implementation.
*
*
* @return true if the initialization is successful and false if unsuccessful
* If false is returned from an exit the protocol bridge agent will not
* start
*/
/**
* Invoked once for each transfer to map the MQ user ID in the transfer message to the
* credentials to be used to access the protocol server
*
* @param mqUserId The MQ user ID from which to map to the credentials to be used
* access the protocol server
* @return A credential exit result object that contains the result of the map and
* the credentials to use to access the protocol server
*/
/**
* Invoked once when a protocol bridge agent is shutdown. It is intended to release
* any resources that were allocated by the exit
*
* @param bridgeProperties
* The values of properties defined for the protocol bridge.
* These values can only be read, they cannot be updated by
* the implementation.
*
* @return
*/
Related concepts
“Customizing MFT with user exits” on page 258
You can customize the features of Managed File Transfer by using your own programs known as user exit
routines.
Related tasks
“Mapping credentials for a file server by using exit classes” on page 229
If you do not want to use the default credential mapping function of the protocol bridge agent, you can
map user credentials in Managed File Transfer to user credentials on the file server by writing your own
user exit. Managed File Transfer provides a sample user exit that performs user credential mapping. If you
configure credential mapping user exits, they take the place of the default credential mapping function.
ProtocolBridgeCredentialExit2.java interface
ProtocolBridgeCredentialExit2.java
/*
* Licensed Materials - Property of IBM
*
* "Restricted Materials of IBM"
*
* 5724-H72
*
* Copyright IBM Corp. 2011, 2020. All Rights Reserved.
*
* US Government Users Restricted Rights - Use, duplication or
* disclosure restricted by GSA ADP Schedule Contract with
* IBM Corp.
*/
package com.ibm.wmqfte.exitroutine.api;
/**
* An interface that is implemented by classes that are invoked as part of user
* exit routine processing. This interface defines methods that are invoked by a
* protocol bridge agent to map the MQ user ID of the transfer to credentials
* used to access a specified protocol bridge server. There will be one instance
* of each implementation class for each protocol bridge agent. The methods can
* be called from different threads so the methods must be synchronized.
*/
public interface ProtocolBridgeCredentialExit2 extends
ProtocolBridgeCredentialExit {
/**
Related concepts
“Customizing MFT with user exits” on page 258
You can customize the features of Managed File Transfer by using your own programs known as user exit
routines.
Related tasks
“Mapping credentials for a file server by using exit classes” on page 229
If you do not want to use the default credential mapping function of the protocol bridge agent, you can
map user credentials in Managed File Transfer to user credentials on the file server by writing your own
user exit. Managed File Transfer provides a sample user exit that performs user credential mapping. If you
configure credential mapping user exits, they take the place of the default credential mapping function.
ProtocolBridgePropertiesExit2.java interface
ProtocolBridgePropertiesExit2.java
/*
* Licensed Materials - Property of IBM
*
* "Restricted Materials of IBM"
*
* 5724-H72
*
* Copyright IBM Corp. 2011, 2020. All Rights Reserved.
*
* US Government Users Restricted Rights - Use, duplication or
* disclosure restricted by GSA ADP Schedule Contract with
* IBM Corp.
*/
package com.ibm.wmqfte.exitroutine.api;
import java.util.Map;
import java.util.Properties;
/**
* An interface that is implemented by classes that are to be invoked as part of
* user exit routine processing. This interface defines methods that will be
* invoked by a protocol bridge agent to look up properties for protocol servers
* that are referenced in transfers.
* <p>
* There will be one instance of each implementation class for each protocol
* bridge agent. The methods can be called from different threads so the methods
* must be synchronised.
*/
public interface ProtocolBridgePropertiesExit2 {
/**
* Invoked once when a protocol bridge agent is started. It is intended to
* initialize any resources that are required by the exit.
*
* @param bridgeProperties
* The values of properties defined for the protocol bridge.
* These values can only be read, they cannot be updated by the
* implementation.
* @return {@code true} if the initialization is successful and {@code
* false} if unsuccessful. If {@code false} is returned from an exit
* the protocol bridge agent will not start.
*/
/**
* Invoked when the Protocol Bridge needs to access the protocol bridge credentials XML file.
*
* @return a {@link String} object giving the location of the ProtocolBridgeCredentials.xml
*/
public String getCredentialLocation ();
/**
* Obtains a set of properties for the specified protocol server name.
* <p>
* The returned {@link Properties} must contain entries with key names
* corresponding to the constants defined in
* {@link ProtocolServerPropertyConstants} and in particular must include an
* entry for all appropriate constants described as required.
*
* @param protocolServerName
* The name of the protocol server whose properties are to be
* returned. If a null or a blank value is specified, properties
* for the default protocol server are to be returned.
* @return The {@link Properties} for the specified protocol server, or null
* if the server cannot be found.
*/
public Properties getProtocolServerProperties(
final String protocolServerName);
/**
* Invoked once when a protocol bridge agent is shut down. It is intended to
* release any resources that were allocated by the exit.
*
* @param bridgeProperties
* The values of properties defined for the protocol bridge.
* These values can only be read, they cannot be updated by the
* implementation.
*/
public void shutdown(final Map<String, String> bridgeProperties);
Related concepts
“ProtocolBridgePropertiesExit: Looking up protocol file server properties” on page 225
If you have a large number of protocol file servers, you can implement the
com.ibm.wmqfte.exitroutine.api.ProtocolBridgePropertiesExit interface to look up
protocol file server properties that are referenced in transfers. You can implement this interface in
preference to maintaining a ProtocolBridgeProperties.xml file. You are recommended to use the
ProtocolBridgePropertiesExit2.java interface but the ProtocolBridgePropertiesExit.java interface is also
supported. If you have an existing implementation of the ProtocolBridgePropertiesExit.java interface from
IBM WebSphere MQ File Transfer Edition, you can use it in IBM WebSphere MQ 7.5 or later. The new
getCredentialLocation method in ProtocolBridgePropertiesExit2.java uses the default location of the
ProtocolBridgeCredentials.xml file, which is your home directory.
“Customizing MFT with user exits” on page 258
You can customize the features of Managed File Transfer by using your own programs known as user exit
routines.
Related tasks
“Mapping credentials for a file server by using exit classes” on page 229
If you do not want to use the default credential mapping function of the protocol bridge agent, you can
map user credentials in Managed File Transfer to user credentials on the file server by writing your own
user exit. Managed File Transfer provides a sample user exit that performs user credential mapping. If you
configure credential mapping user exits, they take the place of the default credential mapping function.
SourceFileExitFileSpecification.java class
SourceFileExitFileSpecification.java
/*
* Licensed Materials - Property of IBM
*
import java.util.Map;
/**
* A specification of the file names to use for a file transfer, as evaluated by the
* agent acting as the source of the transfer.
*/
public final class SourceFileExitFileSpecification {
/**
* Constructor. Creates a source file exit file specification.
*
* @param sourceFileSpecification
* the source file specification to associate with the source file
* exit file specification.
*
* @param destinationFileSpecification
* the destination file specification to associate with the
* source file exit file specification.
*
* @param sourceFileMetaData
* the source file meta data.
*
* @param destinationFileMetaData
* the destination file meta data .
*/
public SourceFileExitFileSpecification(final String sourceFileSpecification,
final String destinationFileSpecification,
final Map<String, String> sourceFileMetaData,
final Map<String, String> destinationFileMetaData) {
this.sourceFileSpecification = sourceFileSpecification;
this.destinationFileSpecification = destinationFileSpecification;
this.sourceFileMetaData = sourceFileMetaData;
this.destinationFileMetaData = destinationFileMetaData;
}
/**
* Returns the destination file specification.
*
* @return the destination file specification. This represents the location,
* on the agent acting as the destination for the transfer, where the
* file should be written. Exit routines installed into the agent
* acting as the destination for the transfer may override this value.
*/
public String getDestination() {
return destinationFileSpecification;
}
/**
* Returns the source file specification.
*
* @return the source file specification. This represents the location where
* the file data will be read from.
*/
public String getSource() {
return sourceFileSpecification;
}
/**
* Returns the file meta data that relates to the source file specification.
*
* @return the file meta data that relates to the source file specification.
*/
public Map<String, String> getSourceFileMetaData() {
return sourceFileMetaData;
}
Related concepts
“Metadata for MFT user exits” on page 850
There are three different types of metadata that can be supplied to user exit routines for Managed File
Transfer: environment, transfer, and file metadata. This metadata is presented as maps of Java key-value
pairs.
SourceTransferEndExit.java interface
SourceTransferEndExit.java
/*
* Licensed Materials - Property of IBM
*
* "Restricted Materials of IBM"
*
* 5724-H72
*
* Copyright IBM Corp. 2008, 2020. All Rights Reserved.
*
* US Government Users Restricted Rights - Use, duplication or
* disclosure restricted by GSA ADP Schedule Contract with
* IBM Corp.
*/
package com.ibm.wmqfte.exitpoint.api;
/**
* An interface that is implemented by classes that want to be invoked as part of
* user exit routine processing. This interface defines a method that will be
* invoked immediately after completing a transfer on the agent acting as the
* source of the transfer.
*/
public interface SourceTransferEndExit {
/**
* Invoked immediately after the completion of a transfer on the agent acting as
* the source of the transfer.
*
* @param transferExitResult
* a result object reflecting whether or not the transfer completed
* successfully.
*
* @param sourceAgentName
* the name of the agent acting as the source of the transfer.
* This is the name of the agent that the implementation of this
* method will be invoked from.
*
* @param destinationAgentName
* the name of the agent acting as the destination of the
* transfer.
*
* @param environmentMetaData
* meta data about the environment in which the implementation
* of this method is running. This information can only be read,
* it cannot be updated by the implementation. The constants
* defined in <code>EnvironmentMetaDataConstants</code> class can
* be used to access the data held by this map.
*
* @param transferMetaData
* meta data to associate with the transfer. The information can
* only be read, it cannot be updated by the implementation. This
* map may also contain keys with IBM reserved names. These
* entries are defined in the <code>TransferMetaDataConstants</code>
* class and have special semantics.
*
* @param fileResults
Related concepts
“Customizing MFT with user exits” on page 258
You can customize the features of Managed File Transfer by using your own programs known as user exit
routines.
Related reference
“SourceTransferStartExit.java interface” on page 889
“DestinationTransferStartExit.java interface” on page 862
“DestinationTransferEndExit.java interface” on page 861
“MonitorExit.java interface” on page 882
“ProtocolBridgeCredentialExit.java interface” on page 883
SourceTransferStartExit.java interface
SourceTransferStartExit.java
/*
* Licensed Materials - Property of IBM
*
* "Restricted Materials of IBM"
*
* 5724-H72
*
* Copyright IBM Corp. 2008, 2020. All Rights Reserved.
*
* US Government Users Restricted Rights - Use, duplication or
* disclosure restricted by GSA ADP Schedule Contract with
* IBM Corp.
*/
package com.ibm.wmqfte.exitpoint.api;
import java.util.List;
import java.util.Map;
/**
* An interface that is implemented by classes that want to be invoked as part of
* user exit routine processing. This interface defines a method that will be
* invoked immediately prior to starting a transfer on the agent acting as the
* source of the transfer.
*/
public interface SourceTransferStartExit {
/**
* Invoked immediately prior to starting a transfer on the agent acting as
* the source of the transfer.
*
* @param sourceAgentName
* the name of the agent acting as the source of the transfer.
* This is the name of the agent that the implementation of this
* method will be invoked from.
*
* @param destinationAgentName
* the name of the agent acting as the destination of the
* transfer.
Related concepts
“Customizing MFT with user exits” on page 258
You can customize the features of Managed File Transfer by using your own programs known as user exit
routines.
Related reference
“SourceFileExitFileSpecification.java class” on page 886
“SourceTransferEndExit.java interface” on page 888
“DestinationTransferStartExit.java interface” on page 862
“DestinationTransferEndExit.java interface” on page 861
“MonitorExit.java interface” on page 882
“ProtocolBridgeCredentialExit.java interface” on page 883
TransferExitResult.java interface
TransferExitResult.java
/*
* Licensed Materials - Property of IBM
*
* "Restricted Materials of IBM"
*
* 5724-H72
*
* Copyright IBM Corp. 2008, 2020. All Rights Reserved.
*
* US Government Users Restricted Rights - Use, duplication or
* disclosure restricted by GSA ADP Schedule Contract with
* IBM Corp.
*/
package com.ibm.wmqfte.exitroutine.api;
/**
* The result of invoking a transfer exit routine. It is composed of a result
* code, which determines if the transfer should proceed, and an optional explanatory
* message. The explanation, if present, is entered into the log message.
*/
public class TransferExitResult {
/**
* For convenience, a static "proceed" result with no associated explanation
* message.
*/
public static final TransferExitResult PROCEED_RESULT =
new TransferExitResult(TransferExitResultCode.PROCEED, null);
/**
* Constructor. Creates a transfer exit result object with a specified result
* code and explanation.
*
* @param resultCode
* The result code to associate with the exit result being created.
*
* @param explanation
* The explanation to associate with the exit result being created.
* A value of <code>null</code> can be specified to indicate no
* explanation.
*/
public TransferExitResult(TransferExitResultCode resultCode, String explanation) {
this.resultCode = resultCode;
this.explanation = explanation;
}
/**
* Returns the explanation associated with this transfer exit result.
*
* @return the explanation associated with this exit result.
*/
public String getExplanation() {
return explanation;
}
/**
* Returns the result code associated with this transfer exit result.
*
* @return the result code associated with this exit result.
*/
public TransferExitResultCode getResultCode() {
return resultCode;
}
}
Related reference
“SourceTransferStartExit.java interface” on page 889
“DestinationTransferStartExit.java interface” on page 862
“DestinationTransferEndExit.java interface” on page 861
“MonitorExit.java interface” on page 882
“ProtocolBridgeCredentialExit.java interface” on page 883
Related information
Customizing MFT with user exits
Message formats for messages you can put on the MFT Agent command
queue
The following XML schemas define the formats for messages that can be put on the agent command
queue to request that the agent perform an action. The XML message can be placed on the agent
command queue by using the command-line commands or by an application.
Schema
The following schema describes which elements are valid in a transfer request XML message.
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:include schemaLocation="fteutils.xsd"/>
<!--
Defines the request of a managed transfer and version number
<request version="1.00" ...
<managedTransfer>
...
</managedTransfer>
</request>
-->
<xsd:element name="request">
<xsd:complexType>
<xsd:choice>
<xsd:element name="managedTransfer" type="managedTransferType"/>
<xsd:element name="deleteScheduledTransfer" type="deleteScheduledTransferType"/>
<xsd:element name="managedCall" type="managedCallType"/>
</xsd:choice>
<xsd:attribute name="version" type="versionType" use="required"/>
</xsd:complexType>
</xsd:element>
<!--
Defines the cancel request of a managed transfer and version number
<cancel version="1.00"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FileTransfer.xsd">
<originator>
<hostName>myMachine</hostName>
<userID>myUserId</userID>
</originator> - Delete a scheduled transfer.
<transfer>
Transfer ID to Cancel
</transfer>
</cancel>
-->
<xsd:element name="cancel">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="originator" type="hostUserIDType" maxOccurs="1" minOccurs="1"/>
<xsd:choice>
<xsd:element name="transfer" type="IDType" maxOccurs="1" minOccurs="1"/>
<xsd:element name="call" type="IDType" maxOccurs="1" minOccurs="1"/>
</xsd:choice>
<xsd:element name="reply" type="replyType" maxOccurs="1" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="version" type="versionType" use="required"/>
</xsd:complexType>
</xsd:element>
<!--
Defines the transfer definition element structure.
<transferSpecifications>
<item ...
<!--
Define a managed transfer of an instigator and request
<managedTransfer>
<originator>
...
</originator>
<schedule>
<submit timebase="source"|"UTC">2008-12-07T16:07"</submit>
<repeat>
<frequency interval="hours">2</frequency>
<expireTime>2008-12-0816:07</expireTime>
</repeat>
</schedule>
<trigger>
...
</trigger>
<transferSet>
...
</transferSet>
</managedTransfer>
-->
<xsd:complexType name="managedTransferType">
<xsd:sequence>
<xsd:element name="originator" type="origTransferRequestType" maxOccurs="1"
minOccurs="1"/>
<xsd:element name="schedule" type="scheduleType" maxOccurs="1" minOccurs="0"/>
<xsd:element name="sourceAgent" type="agentType" maxOccurs="1" minOccurs="1"/>
<xsd:element name="destinationAgent" type="agentClientType" maxOccurs="1" minOccurs="1"/>
<xsd:element name="trigger" type="triggerType" maxOccurs="1" minOccurs="0"/>
<xsd:element name="reply" type="replyType" maxOccurs="1" minOccurs="0"/>
<xsd:element name="transferSet" type="transferSetType" maxOccurs="1" minOccurs="1"/>
<xsd:element name="job" type="jobType" maxOccurs="1" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<!--
This is a modified form of origRequestType which is used on a managed transfer request.
The hostName and userID are mandatory attributes in this case.
-->
<xsd:complexType name="origTransferRequestType">
<xsd:sequence>
<xsd:element name="hostName" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<xsd:element name="userID" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<xsd:element name="mqmdUserID" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="webBrowser" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="webUserID" type="xsd:string" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<!--
Defines the transferset of source and destination agent and one or more files
<transferset priority="1">
<metaDataSet>
<metaData key="keyname">keyvalue</metaData>
<metaData key="keyname">keyvalue</metaData>
</metaDataSet>
<item>
...
</item>
</transferset>
-->
<xsd:complexType name="transferSetType">
<!--
Define a file pair with source and destination
<item mode=[binary|text]>
<source recursive="false" disposition="leave">
<file>filename</file>
</source>
</item>
-->
<xsd:complexType name="itemType">
<xsd:sequence>
<xsd:element name="source" type="fileSourceType" maxOccurs="1" minOccurs="1"/>
<xsd:element name="destination" type="fileDestinationType" maxOccurs="1" minOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="mode" type="modeType" use="required"/>
<xsd:attribute name="checksumMethod" type="checkSumMethod" use="required"/>
</xsd:complexType>
<!--
Defines the request to delete scheduled file transfer.
<deleteScheduledTransfer>
<originator>
<delete>
<hostName>myMachine</hostName>
<userID>myUserId</userID>
</delete>
</originator>
<ID>56</ID>
</deleteScheduledTransfer>
-->
<xsd:complexType name ="deleteScheduledTransferType">
<xsd:sequence>
<xsd:element name="originator" type="origDeleteType" maxOccurs="1" minOccurs="1"/>
<xsd:element name="ID" type="idType" maxOccurs="1" minOccurs="1"/>
<xsd:element name="reply" type="replyType" maxOccurs="1" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="managedCallType">
<xsd:sequence>
<xsd:element name="originator" type="origRequestType" maxOccurs="1" minOccurs="1"/>
<xsd:element name="agent" type="agentType" maxOccurs="1" minOccurs="1"/>
<xsd:element name="reply" type="replyType" maxOccurs="1" minOccurs="0"/>
<xsd:element name="transferSet" type="callTransferSetType" maxOccurs="1" minOccurs="1"/>
<xsd:element name="job" type="jobType" maxOccurs="1" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="callTransferSetType">
<xsd:sequence>
<xsd:element name="metaDataSet" type="metaDataSetType" maxOccurs="1" minOccurs="0"/>
<xsd:element name="call" type="commandActionType" maxOccurs="1" minOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="priority" type="priorityType" use="optional"/>
</xsd:complexType>
</xsd:schema>
Element descriptions
<request>
Group element containing all the elements required to specify a file transfer request.
Attribute Description
version Specifies the version of this element as supplied by Managed File Transfer.
<managedTransfer>
Group element that contains all the elements required for a single file transfer or single group of file
transfers.
<deleteScheduledTransfer>
Group element that contains originator and ID information to cancel a schedule transfer.
<managedCall>
Group element that contains all the elements required for a single managed call of a program or
executable.
<ID>
Unique identifier that specifies the transfer request to delete from the list of pending scheduled
transfers.
<originator>
Group element that contains the elements specifying the originator of the request.
<hostName>
The host name of the system where the source file is located.
<userID>
The user ID that originated the file transfer.
<mqmdUserID>
Optional. The IBM MQ user ID that was supplied in the message descriptor (MQMD).
<schedule>
Group element describing the scheduled time for the file transfer, the repeat behavior, and when the
next occurrence is due.
<submit>
Specifies the date and time that the scheduled transfer is due to start.
Attribute Description
timebase Specifies which time zone to use. This attribute can have one of the following values:
• source - use the time zone of the source agent
• admin - use the time zone of the administrator issuing the command
• UTC - use Coordinated Universal Time
<frequency>
The time period that must elapse before the transfer repeats.
Attribute Description
interval The interval units, which must be one of the following values:
• minutes
• hours
• days
• weeks
• months
• years
<expireTime>
Optional element that specifies the date and time that a repeating scheduled transfer stops. This
element and the <expireCount> element are mutually exclusive.
<expireCount>
Optional element that specifies the number of times the scheduled file transfer occurs before
stopping. This element and the <expireTime> element are mutually exclusive.
<sourceAgent>
Specifies the name of the agent on the system where the source file is located.
Attribute Description
agent Specifies the name of the agent.
QMgr The name of the agent queue manager.
<destinationAgent>
Specifies the name of the agent on the system you want to transfer the file to.
Attribute Description
agent Specifies the name of the agent.
QMgr The name of the agent queue manager.
hostName The host name or IP address of the agent queue manager.
portNumber The port number used for client connections to the destination agent queue manager.
channel The channel name used to connect to the destination agent queue manager.
<trigger>
Optional element that specifies a condition that must be true for the file transfer to take place.
Attribute Description
log A flag indicating whether trigger failures are logged. The valid values are as follows:
• yes - log entries are created for failed triggered transfers
• no - log entries are not created for failed triggered transfers
Attribute Description
comparison Indicates how to evaluate source file names against the name list. The valid values are
as follows:
• = at least one file name in the name list must match
• != a minimum of one of the files in the name list does not exist
<fileSize>
Specifies a comma-separated list of file names located on the same system as the source agent. If a
file in this name list satisfies the condition of the trigger, the transfer occurs. This element and the
<fileExist> element are mutually exclusive.
Attribute Description
comparison Indicates how to evaluate source file names against the name list. The valid value is as
follows:
• >= one of the file names in the name list exists and has a minimum size as specified
in the value attribute
value File size specified as an integer value with units specified as one of the following:
• B - bytes
• KB - kilobytes
• MB - megabytes
• GB - gigabytes
(the units value is not case-sensitive)
<reply>
Specifies the name of the temporary reply queue generated for synchronous file transfers (specified
with the -w parameter on the command line). The name of the queue is defined by the key
dynamicQueuePrefix in the command.properties configuration file or the default of WMQFTE.* if
not specified.
Attribute Description
detailed Whether detailed transfer result information is required in the reply message. Multiple
reply messages for each transfer can be generated. The valid values are as follows:
• true - detailed reply information is required. The format of the information is the same
as that published to the transfer log in the progress messages, that is, the
<transferSet> element. For more information, see “File transfer log message formats”
on page 727. Detailed reply information is present only when the transfer source agent
has the enableDetailedReplyMessages property set to true.
• false - detailed reply information is not required.
The default value is false.
QMGR The name of the command queue manager on which the temporary dynamic queue is
generated to receive replies.
<transferSet>
Specifies a group of file transfers you want to perform together or a group of managed calls that you
want to perform together. During transmission <transferSet> is a group element containing <item>
elements.
Attribute Description
priority Priority level of the transfer. Priority is a value in the range 0-9, where 0 is the lowest
priority. The default priority level is 0 and by default the transfer uses the priority level of
the source agent.
<metaDataSet>
Optional group element containing one or more metadata items.
<metaData>
Specifies the user-defined metadata that is passed to the exit points called by the agent. The element
contains the metadata value as a string.
Attribute Description
key Metadata name as a string
<call>
Group element that contains <command> elements specifying the program or executable to call.
<command>
Specifies the program or executable to call. The command must be located on the agent command
path. For more information, see Table 41 on page 539. This element can contain optional <argument>
elements.
Attribute Description
name The name of the command.
successRC The successful return code that this command returns. Default is 0.
retryCount The number of times that the command is to be retried if it fails.
retryWait The time, in seconds, to wait between retries of the command.
type The type of program to be called. The valid values are antscript, jcl, or executable.
<argument>
Specifies an argument to pass to the command.
<item>
Group element that contains elements specifying the source and destination file names and locations.
<source>
Group element that specifies files on the source system and whether they are removed after the
transfer completes
Attribute Description
recursive Specifies that files are transferred recursively in subdirectories when the <source>
element is a directory or contains wildcard characters.
disposition Specifies the action that is taken on the <source> element when <source>has
successfully been transferred to its destination. The valid values are as follows:
• leave - the source files are left unchanged.
• delete - the source files are deleted from the source system after the source file is
successfully transferred.
<file>
Specifies the transfer source. For Multiplatforms, the transfer source can be a file or a
directory name. For the z/OS platform, the transfer source can be a file, directory, data set, or PDS
name. Use the fully qualified path in the format consistent with your operating system, for example
C:/from/here.txt. Do not use file URIs.
Attribute Description
alias Specifies an alias for the source file. This alias is the name of the source
file, excluding any directory path specified for the transfer.
EOL Specifies the end of line marker for text transfers. Valid values are:
• LF - line feed character only
• CRLF - carriage return and line feed character sequence
encoding The encoding of the source file for a text file transfer.
Specifies the delimiter that is included between records in record-
delimiter
oriented source files, for example, z/OS data sets. Specify the delimiter
value as two hexadecimal digits in the range 00-FF, prefixed by x. For
example, x12 or x03,x7F.
delimiterType Specifies the type of delimiter that is included in the destination file after
individual message data. The valid values is as follows:
• binary - a hexadecimal delimiter
This attribute is available only if you have enabled the 7.0.4.1 function.
<queue>
When used with the <source> element, specifies the name of the queue to transfer from, which must
be located on the source agent queue manager. Use the format QUEUE. Do not include the queue
manager name, the queue must be present on the source agent queue manager. You cannot use the
<queue> element inside the <source> element, if you have used it inside of the <destination>
element.
Attribute Description
useGroups Specifies whether to transfer only the first complete group of messages from the
source queue. The valid values are as follows:
• true - transfer only the first complete group of messages
• false - transfer all messages on the source queue
groupId Specifies the group of messages to read from the source queue. This attribute is
valid only when the value of the useGroups attribute is true.
delimiterType Specifies the type of delimiter that is included in the destination file after
individual message data. The valid values are as follows:
• text - a text or Java literal delimiter
• binary - a hexadecimal delimiter
delimiter Specifies the delimiter that is included in the destination file between individual
message data.
delimiterPosition Specifies whether the delimiter is included in the destination file before or after
individual message data. The valid values are as follows:
• prefix - the delimiter is included before the data
• postfix - the delimiter is included after the data
waitTime Specifies the time, in seconds, for the source agent to wait for either:
• a message to appear on the source queue, if the queue is empty or has become
empty
• a complete group to appear on the source queue, if the useGroups attribute has
been set to true
For information about setting the waitTime value, see “Guidance for specifying a
wait time on a message-to-file transfer” on page 661.
<destination>
Group element that specifies the destination and the behavior if files exist at the destination agent.
You can specify only one of <file> and <queue> as a child element of destination.
Attribute Description
type The type of destination. The valid values are as follows:
• file - specifies a file as the destination
• directory - specifies a directory as the destination
exist Specifies the action that is taken if a destination file exists on the destination system. The
valid values are as follows:
• error - reports an error and the file is not transferred.
• overwrite - overwrites the existing destination file.
This attribute is not valid if the <destination> element has a child element of <queue> or
<filespace>.
<file>
Specifies additional settings for the previously-described <destination> element. Use the fully
qualified path in the format consistent with your operating system, for example C:/from/here.txt.
Do not use file URIs.
Attribute Description
alias Specifies an alias for the <destination> file. This alias is the name of the source
file, excluding any directory path specified for the transfer.
encoding The encoding of the <destination> file for a text file transfer.
EOL Specifies the end of line marker for text transfers. Valid values are:
• LF - line feed character only
• CRLF - carriage return and line feed character sequence
truncateRecords Optional. Specifies that <destination> records longer than the LRECL data set
attribute are truncated.
<queue>
When used with the <destination> element, specifies the name of the queue to transfer to, which can
be located on any queue manager that is connected to the destination agent queue manager. Use the
format QUEUE@QM where QUEUE is the name of the queue to put the messages on and QM is the
queue manager where the queue is located. You cannot use the <queue> element inside the
<destination> element, if you have used it inside of the <source> element.
Attribute Description
delimiter The delimiter to split the file into multiple messages.
delimiterType Specifies the type of delimiter. The valid values are as follows:
• text - a Java regular expression
• binary - a sequence of hexadecimal bytes
• size - a number of bytes, kibibytes, or mebibytes. For example, 1 B, 1
K, or 1 M.
delimiterPosition Specifies whether the delimiter is expected before or after the data to
include in individual messages. The valid options are as follows:
• prefix - the delimiter is expected before the data
• postfix - the delimiter is expected after the data
includeDelimiterInMessage A boolean specifying whether to include the delimiters that were used
to split the file into multiple messages at the end of the messages.
encoding Specifies the destination queue encoding.
persistent Specifies whether the messages are persistent. The valid values are as
follows:
• true - the messages are persistent
• false - the messages are not persistent
• qdef - the persistence value of the messages is defined by the
settings on the destination queue
<preSourceCall>
Group element specifying a command to call at the source of the transfer, before the transfer starts.
<postSourceCall>
Group element specifying a command to call at the source of the transfer, after the transfer
completes.
<preDestinationCall>
Group element specifying a command to call at the destination of the transfer, before the transfer
starts.
<postDestinationCall>
Group element specifying a command to call at the destination of the transfer, after the transfer
completes.
<command>
When used with the <preSourceCall>, <postSourceCall>, <preDestinationCall>, or
<postDestinationCall> element, this element specifies the command to be called. The command must
be located on the agent command path. For more information, see Table 41 on page 539.
Attribute Description
name The name of the command to run.
successRC The return code that is expected if the command runs successfully.
<argument>
When used with the <command> element, this element specifies an argument to be passed in to the
command. You can have any number of <argument> elements inside a <command> element.
<job>
Optional group element containing job information for the entire transfer specification. <job> is a
user-defined job name identifier that is added to the log message when the transfer has started. This
<job> element is the same as the <job> element that appears in the transfer log message, which is
described in the following topic: “File transfer log message formats” on page 727.
<name>
When used with the <job> element, the value of this element specifies the name of the job.
<transferSpecifications>
Group element that contains <item> elements for multiple transfer groups. See Using transfer
definition files for further details about how to use this element.
<cancel>
Group element containing all the elements required to cancel a file transfer in progress.
Attribute Description
version Specifies the version of this element as supplied by Managed File Transfer.
<transfer>
When used with the <cancel> element, the value of this element specifies the transfer request ID to
be canceled.
<job>
Group element containing job information.
Attribute Description
version Specifies the version of this element as supplied by Managed File Transfer.
<originator>
Group element that contains the elements specifying the originator of the request.
<hostName>
The host name of the system where the source file is located.
<userID>
The user ID that originated the file transfer.
<mqmdUserID>
Optional. The IBM MQ user ID that was supplied in the message descriptor (MQMD).
<transfer>
When used with the <cancel> element, the value of this element specifies the transfer request ID to
be canceled.
<job>
Optional. Group element containing job information.
<jobName>
Specifies logical job identifier.
Examples
Examples of XML messages that conform to this schema are provided for each of the following requests:
• Create a file transfer
• Create an asynchronous file transfer request
• Cancel a file transfer
• Create a scheduled transfer
• Delete a scheduled transfer
• Create a managed call
• Create a file transfer that includes managed calls
The <reply> element is populated with the name of the command queue manager where a temporary
dynamic queue has been created to receive reply about the successful (or otherwise) completion of the
transfer. The name of the temporary dynamic queue is composed of two parts:
• The prefix as defined by the key dynamicQueuePrefix in the command.properties configuration
file (it is WMQFTE. by default)
• The ID of the queue as generated by IBM MQ
Related reference
“File transfer request message format” on page 759
File transfers are initiated by XML messages arriving at an agent command queue, typically as a result of a
user issuing a file transfer command or by using the IBM MQ Explorer. The transfer request XML must
conform to the FileTransfer.xsd schema and have the <request> element as the root element. The
FileTransfer.xsd schema document is located in the MQ_INSTALLATION_PATH/mqft/samples/
schema directory. The FileTransfer.xsd schema imports fteutils.xsd, which is in the same
directory.
Related reference
“File transfer request message format” on page 759
File transfers are initiated by XML messages arriving at an agent command queue, typically as a result of a
user issuing a file transfer command or by using the IBM MQ Explorer. The transfer request XML must
conform to the FileTransfer.xsd schema and have the <request> element as the root element. The
FileTransfer.xsd schema document is located in the MQ_INSTALLATION_PATH/mqft/samples/
schema directory. The FileTransfer.xsd schema imports fteutils.xsd, which is in the same
directory.
Related concepts
“Specifying programs to run with MFT” on page 253
You can run programs on a system where a Managed File Transfer Agent is running. As part of a file
transfer request, you can specify a program to run either before a transfer starts, or after it finishes.
Additionally, you can start a program that is not part of a file transfer request by submitting a managed
call request.
Related reference
“File transfer request message format” on page 759
File transfers are initiated by XML messages arriving at an agent command queue, typically as a result of a
user issuing a file transfer command or by using the IBM MQ Explorer. The transfer request XML must
conform to the FileTransfer.xsd schema and have the <request> element as the root element. The
FileTransfer.xsd schema document is located in the MQ_INSTALLATION_PATH/mqft/samples/
schema directory. The FileTransfer.xsd schema imports fteutils.xsd, which is in the same
directory.
Schema
The following schema describes which elements are valid in a monitor request XML message.
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.ibm.com/xmlns/wmqfte/7.0.1/
MonitorDefinition"
xmlns="http://www.ibm.com/xmlns/wmqfte/7.0.1/MonitorDefinition">
<xsd:include schemaLocation="FileTransfer.xsd"/>
<xsd:element name="monitor">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="name" type="monitorNameType"
minOccurs="1" maxOccurs="1"/>
<xsd:element name="description" type="xsd:string"
<xsd:element name="deleteMonitor">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="name" type="monitorNameType"
minOccurs="1" maxOccurs="1"/>
<xsd:element name="originator" type="origRequestType"
maxOccurs="1" minOccurs="1"/>
<xsd:element name="reply" type="replyType"
maxOccurs="1" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="version" type="versionType" use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="transferRequestType">
<xsd:choice>
<xsd:element name="managedTransfer" type="managedTransferType"/>
<xsd:element name="managedCall" type="managedCallType"/>
</xsd:choice>
<xsd:attribute name="version" type="versionType"/>
</xsd:complexType>
<xsd:complexType name="monitorResourcesType">
<xsd:choice>
<xsd:sequence>
<xsd:element name="directory" type="monitoredDirectoryType"
minOccurs="1" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:element name="queue" type="monitoredQueueType"/>
</xsd:choice>
</xsd:complexType>
<xsd:complexType name="monitoredDirectoryType">
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="recursionLevel"
type="xsd:nonNegativeInteger"/>
<xsd:attribute name="id" type="resourceIdAttrType"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="monitoredQueueType">
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="id" type="resourceIdAttrType"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="triggerMatchType">
<xsd:sequence>
<xsd:element name="conditions" type="conditionsType"
minOccurs="1" maxOccurs="1"/>
<xsd:complexType name="conditionsType">
<xsd:choice minOccurs="1">
<xsd:element name="allOf" type="listPredicateType"
minOccurs="1" maxOccurs="1"/>
<xsd:element name="anyOf" type="listPredicateType"
minOccurs="1" maxOccurs="1"/>
<xsd:element name="condition" type="conditionType"
minOccurs="1" maxOccurs="1"/>
</xsd:choice>
</xsd:complexType>
<xsd:complexType name="listPredicateType">
<xsd:choice>
<xsd:element name="condition" type="conditionType"
minOccurs="1" maxOccurs="unbounded"/>
</xsd:choice>
</xsd:complexType>
<xsd:complexType name="conditionType">
<xsd:sequence>
<xsd:element name="name" type="conditionNameType"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="resource" type="resourceIdType"
minOccurs="0" maxOccurs="1"/>
<xsd:choice minOccurs="1">
<xsd:element name="fileMatch"
type="fileMatchConditionType"
minOccurs="1" maxOccurs="1"/>
<xsd:element name="fileNoMatch"
type="fileNoMatchConditionType"
minOccurs="1"
maxOccurs="1"/>
<xsd:element name="fileSize"
type="fileSizeConditionType"
minOccurs="1" maxOccurs="1"/>
<xsd:element name="queueNotEmpty"
type="queueNotEmptyConditionType"
minOccurs="1" maxOccurs="1"/>
<xsd:element name="completeGroups"
type="completeGroupsConditionType"
minOccurs="1" maxOccurs="1"/>
<xsd:element name="fileSizeSame" type="fileSizeSameType"
minOccurs="1" maxOccurs="1"/>
</xsd:choice>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="fileMatchConditionType">
<xsd:sequence>
<xsd:element name="pattern" type="conditionPatternType"
minOccurs="0" default="*.*"/>
<xsd:element name="exclude" type="conditionPatternType"
minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="fileNoMatchConditionType">
<xsd:sequence>
<xsd:element name="pattern" type="conditionPatternType"
minOccurs="0" default="*.*"/>
<xsd:element name="exclude" type="conditionPatternType"
minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="fileSizeConditionType">
<xsd:sequence>
<xsd:element name="compare" type="sizeCompareType"
minOccurs="1" default="0"/>
<xsd:element name="pattern" type="conditionPatternType"
minOccurs="0" default="*.*"/>
<xsd:element name="exclude" type="conditionPatternType"
minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="sizeCompareType">
<xsd:simpleContent>
<xsd:extension base="xsd:int">
<xsd:simpleType name="sizeOperatorType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value=">="/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="fileSizeUnitsType">
<xsd:restriction base="xsd:string">
<xsd:pattern value="[bB]|[kK][bB]|[mM][bB]|[gG][bB]"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="conditionPatternType">
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="type" type="patternTypeAttributeType"
use="optional" default="wildcard"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:simpleType name="patternTypeAttributeType">
<xsd:restriction base="xsd:token">
<xsd:enumeration value="regex"/>
<xsd:enumeration value="wildcard"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="conditionNameType">
<xsd:simpleContent>
<xsd:extension base="xsd:string"/>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="queueNotEmptyConditionType"/>
<xsd:complexType name="completeGroupsConditionType"/>
<xsd:complexType name="fileSizeSameType">
<xsd:sequence>
<xsd:element name="pattern" type="conditionPatternType"
minOccurs="1" maxOccurs="1"/>
<xsd:element name="exclude" type="conditionPatternType"
minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="polls" type="positiveIntegerType" use="required"/>
</xsd:complexType>
<xsd:complexType name="pollIntervalType">
<xsd:simpleContent>
<xsd:extension base="xsd:int">
<xsd:attribute name="units" type="timeUnitsType"
use="optional" default="minutes"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="batchType">
<xsd:attribute name="maxSize" type="positiveIntegerType" use="required"/>
</xsd:complexType>
<xsd:simpleType name="timeUnitsType">
<xsd:restriction base="xsd:token">
<xsd:enumeration value="seconds"/>
<xsd:enumeration value="minutes"/>
<xsd:enumeration value="hours"/>
<xsd:enumeration value="days"/>
<xsd:enumeration value="weeks"/>
<xsd:enumeration value="months"/>
<xsd:enumeration value="years"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="monitorTasksType">
<xsd:complexType name="monitorTaskType">
<xsd:sequence>
<xsd:element name="name" type="monitorTaskNameType"
minOccurs="1" maxOccurs="1"/>
<xsd:element name="description" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="transfer" type="transferTaskType"
minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="transferTaskType">
<xsd:sequence>
<xsd:element name="request" type="transferRequestType"
minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="resourceIdType">
<xsd:attribute name="id" type="xsd:string" use="optional"/>
</xsd:complexType>
<xsd:simpleType name="resourceIdAttrType">
<xsd:restriction base="xsd:string"></xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="monitorNameType">
<xsd:restriction base="xsd:string">
<xsd:pattern value="[^%\*]+"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="agentNameType">
<xsd:restriction base="xsd:string">
<xsd:pattern value="[.%_0-9A-Z]*"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="monitorTaskNameType">
<xsd:restriction base="xsd:string">
<xsd:pattern value=".*"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="defaultVariablesType">
<xsd:sequence>
<xsd:element name="variable" type="variableType"
maxOccurs="unbounded" minOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="variableType">
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="key" type="xsd:string" use="required"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:schema>
Element descriptions
<monitor>
Group element containing all the elements required to cancel a file transfer in progress.
<name>
The name of the monitor, unique within the monitor's agent.
<description>
Description of the monitor (not currently used).
<pollInterval>
The time interval between each check of the resource against the trigger condition.
Attribute Description
units Specifies the time units for the poll interval. Valid values are:
• seconds
• minutes
• hours
• days
• weeks
• months
• years
<agent>
Name of the agent the monitor is associated with.
<resources>
Group element that contains the elements specifying the resources to monitor.
<directory>
Fully qualified path specifying the directory on the monitor's agent machine to monitor.
Attribute Description
recursionLevel The number of subdirectories to monitor in addition to the specified directory.
id Unique identifier for the resource.
<queue>
Queue name specifying the queue to monitor on the monitoring agent's queue manager.
<triggerMatch>
Group element that contains the elements specifying the trigger conditions to compare with the
monitored resource.
<conditions>
Group element that contains the elements specifying the type of condition to compare with the
monitored resource.
<allOf>
Predicate that specifies that all contained conditions must be satisfied.
<anyOf>
Predicate that specifies that any contained conditions must be satisfied.
<condition>
Defines a comparison condition that will contribute to the overall monitor trigger condition.
<name>
Name of the condition.
Attribute Description
id Unique identifier for the resource.
If the resource that is being monitored is a directory, one of the following three elements must be
specified in the condition:
• fileMatch
• fileNoMatch
• fileSize
If the resource that is being monitored is a queue, one of the following two elements must be specified in
the condition:
• queueNotEmpty
• completeGroups
<fileMatch>
Group element for a file name match condition.
<pattern>
Specifies a file name match pattern. Files on the resource must match the pattern in order to satisfy
the condition. The default pattern is * (any file will match).
<fileNoMatch>
Group element for an inverse file name match condition.
<pattern>
Specifies an inverse file name match pattern. If no files on the monitored resource match, the
condition is satisfied. The default pattern is * (the absence of any file will match).
<fileSize>
Group element for a file size comparison.
<compare>
Specifies a file size comparison. The value must be a non-negative integer.
Attribute Description
operator Comparison operator to use. Only >=' is supported.
units Specifies file size units, which can be one of:
• B - bytes
• KB - kilobytes
• MB - megabytes
• GB - gigabytes
The units value is case insensitive, so mb' works as well as MB'.
<pattern>
File name pattern to match. Default is * (any file will match).
<queueNotEmpty>
This can only be specified if the resource is a queue. Specifies that there must be a message on the
queue for the monitor to be triggered.
<completeGroups>
This can only be specified if the resource is a queue. Specifies that there must be a complete group of
messages present on the queue for the monitor to be triggered. A single transfer task is executed for
each complete group on the queue.
Attribute Description
QMGR Queue manager name.
<tasks>
Group element to contain elements which specify the tasks to invoke when the monitor trigger
conditions are satisfied.
<task>
Group element which defines an individual task that the monitor will invoke when the trigger
conditions are satisfied. Currently only one task can be specified.
<name>
Name of the task. Accepts any alphanumeric characters.
<description>
Description of the task. Any text value is allowed.
<transfer>
Group element that defines a transfer task.
<request>
Group element that defines the type of task. This must contain one of the following elements which
are inherited from the FileTransfer.xsd schema definition:
• managedTransfer
• managedCall
Attribute Description
version Version of the request as provided by Managed File Transfer. This is in the form n.mm
where n is the major release version and mm is the minor version. For example 1.00.
<originator>
Group element that contains the elements specifying the originator of the request.
<hostName>
The host name of the system where the source file is located.
<userID>
The user ID that originated the file transfer.
<mqmdUserID>
Optional. The IBM MQ user ID that was supplied in the message descriptor (MQMD).
<job>
Group element containing job information.
<jobName>
Specifies logical job identifier.
<defaultVariables>
Group element containing one or more variable elements. These variables are used in variable
substitution when monitoring a queue. For more information about variable substitution, see
“Customizing MFT tasks with variable substitution” on page 185.
<variable>
Element containing the value associated with the key given by the key attribute.
Attribute Description
key The name of the default variable.
Element descriptions
<deleteMonitor>
Group element containing all the elements required to stop and delete a monitor.
Attribute Description
version Specifies the version of this element as supplied by Managed File Transfer.
<name>
Name of monitor to delete.
<originator>
Group element that contains the elements specifying the originator of the request.
<hostName>
The host name of the system where the source file is located.
<userID>
The user ID that originated the file transfer.
<mqmdUserID>
Optional. The IBM MQ user ID that was supplied in the message descriptor (MQMD).
<reply>
Specifies the name of the temporary reply queue generated for the request. The name of the queue is
as defined by the key dynamicQueuePrefix in the command.properties configuration file. If this
is not specified, the queue name has a default value of WMQFTE.
Attribute Description
QMGR The name of the command queue manager on which the temporary dynamic queue is
generated to receive replies.
Examples
Examples of XML messages that conform to this schema are provided for each of the following monitor
requests:
• Create a monitor
• Delete a monitor
Related reference
“MFT monitor request message formats” on page 776
Resource monitors are created when a suitable XML message arrives at an agent's command queue,
typically as a result of a user issuing the fteCreateMonitor command or using the IBM MQ Explorer
interface.
Schema
The following schema describes which elements are valid in an ping agent request XML message.
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.ibm.com/xmlns/wmqfte/7.0.1/PingAgent"
targetNamespace="http://www.ibm.com/xmlns/wmqfte/7.0.1/PingAgent">
<xsd:include schemaLocation="fteutils.xsd"/>
<xsd:element name="pingAgent">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="originator" type="origRequestType" maxOccurs="1" minOccurs="1"/>
<xsd:element name="agent" type="agentType" maxOccurs="1" minOccurs="1"/>
<xsd:element name="reply" type="replyType" maxOccurs="1" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="version" type="versionType" use="required"/>
</xsd:complexType>
</xsd:element>
</xsd:schema>
Attribute Description
agent Required. The name of the agent.
QMgr Optional. The queue manager that the agent connects to.
<reply>
The name of the queue for the agent to send the reply message to.
Attribute Description
QMGR Required. The name of the queue manager where the reply queue is located.
Schema
The following schema describes which elements are valid in a reply XML message.
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:include schemaLocation="TransferLog.xsd"/>
<xsd:element name="reply">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="transferSet" type="transferSetType" minOccurs="0"
maxOccurs="1"/>
<xsd:element name="status" type="statusType" minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="version" type="versionType" use="required"/>
<xsd:attribute name="ID" type="IDType" use="required"/>
<xsd:attribute name="detailedReplyMessagesDisabled" type="xsd:boolean"
use="optional"/>
</xsd:complexType>
</xsd:element>
</xsd:schema>
Attribute Description
ID The ID of the reply.
version The version of the reply message format.
detailedReplyMessagesDisabled A notification that the agent has disabled the detailed reply
enableDetailedReplyMessages agent property is set to false).
<status>
The status of the action that the agent was requested to perform.
Attribute Description
resultCode The result code returned from the action that the agent performed.
<supplement>
Additional response information about the action that the agent was requested to perform.
Example
In the following section is an example reply message:
For license inquiries regarding double-byte (DBCS) information, contact the IBM Intellectual Property
Department in your country or send inquiries, in writing, to:
The following paragraph does not apply to the United Kingdom or any other country where such
provisions are inconsistent with local law: INTERNATIONAL BUSINESS MACHINES CORPORATION
PROVIDES THIS PUBLICATION "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR
IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF NON-INFRINGEMENT,
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Some states do not allow disclaimer of
express or implied warranties in certain transactions, therefore, this statement may not apply to you.
This information could include technical inaccuracies or typographical errors. Changes are periodically
made to the information herein; these changes will be incorporated in new editions of the publication.
IBM may make improvements and/or changes in the product(s) and/or the program(s) described in this
publication at any time without notice.
Any references in this information to non-IBM Web sites are provided for convenience only and do not in
any manner serve as an endorsement of those Web sites. The materials at those Web sites are not part of
the materials for this IBM product and use of those Web sites is at your own risk.
IBM may use or distribute any of the information you supply in any way it believes appropriate without
incurring any obligation to you.
Licensees of this program who wish to have information about it for the purpose of enabling: (i) the
exchange of information between independently created programs and other programs (including this
one) and (ii) the mutual use of the information which has been exchanged, should contact:
IBM Corporation
Software Interoperability Coordinator, Department 49XA
3605 Highway 52 N
Rochester, MN 55901
U.S.A.
Trademarks
IBM, the IBM logo, ibm.com®, are trademarks of IBM Corporation, registered in many jurisdictions
worldwide. A current list of IBM trademarks is available on the Web at "Copyright and trademark
information"www.ibm.com/legal/copytrade.shtml. Other product and service names might be trademarks
of IBM or other companies.
Microsoft and Windows are trademarks of Microsoft Corporation in the United States, other countries, or
both.
922 Notices
UNIX is a registered trademark of The Open Group in the United States and other countries.
Linux is a registered trademark of Linus Torvalds in the United States, other countries, or both.
This product includes software developed by the Eclipse Project (http://www.eclipse.org/).
Java and all Java-based trademarks and logos are trademarks or registered trademarks of Oracle and/or
its affiliates.
Notices 923
924 Managed File Transfer
IBM®
Part Number:
(1P) P/N: