+

Search Tips | Advanced Search

File transfer request message format

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.

File transfer messages can have one of following three root elements:

For information about specifying multiple transfer groups by using the <transferSpecifications> element, see Use transfer definition files.


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 ...
            <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>

            <sourceAgent agent="here" QMgr="near" />
            <destinationAgent agent="there" QMgr="far" />

            <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">
        <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>

            <destination type="file" exist="error">
                <file>filename</file>
            </destination>

        </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>


Understanding the transfer request message

The elements and attributes used in transfer request messages are described in the following list:


Element descriptions


File transfer cancel message format

A file transfer request returns a 48-character ID that identifies the transfer for a specific agent. This ID is used to cancel transfers.


Understanding the transfer cancel message

The elements and attributes used in transfer cancel messages are described:


Examples

Examples of XML messages that conform to this schema are provided for each of the following requests: