Configuring the FTP Adapter
Before you begin
- The FTP adapter supports reading and writing data from a secure FTP server. The adapter provides support for file transfer from an FTP server over Secure Sockets Layer (SSL)/Transport Level Security (TLS).
- The FTP adapter supports downloading of files from read-only file locations.
- The FTP adapter supports atomic file transfer for ASCII mode also.
See Best practices and recommendations for the FTP adapter.
Configure the receive location
You can set FTP receive location adapter properties in the BizTalk Server Administration console. If properties are not set in the receive location, then the default receive handler values in the BizTalk Server Administration console are used.
Note
Before completing the following procedure, you must have already added a receive port. See How to Create a Receive Port.
- In the BizTalk Server Administration console, expand BizTalk Server Administration, expand BizTalk Group, expand Applications, and then expand the application in which you want to create a receive location.
In the left pane, click the Receive Ports node. In the right pane, right-click the receive port that is associated with an existing receive location or that you want to associate with a new receive location, and then click Properties.
In the Receive Port Properties dialog box, in the left pane, select Receive Locations. In the right pane, double-click an existing receive location or click New to create a new receive location.
In the Receive Location Properties dialog box, in the Transport section next to Type, select FTP from the drop-down list and then click Configure.
In FTP Transport Properties, do the following:
Batch
Use this To do this Maximum Files Specify the maximum number of files per BizTalk Server batch.
Zero (0) indicates no limit.
Default value: 0Maximum Size Specify the maximum number of bytes per BizTalk Server batch.
Zero (0) indicates no limit.
Default value: 0Firewall
Use this To do this Address Specify the address of the firewall, either a DNS name or an IP address. Mode Specify the mode in which the adapter connects to the FTP server.
Valid values: Passive and Active
In active mode, the FTP server connects to a port opened by the FTP adapter. In passive mode, the FTP adapter connects to a port opened by the FTP server. Active mode may not work if you use an internal IP and you connect to an external IP. In this case, you need to use Passive mode or Active mode with an application-layer gateway (ALG) with FTP support.
Default value: ActivePassword Specify the password for the firewall. Port Specify the port for the firewall.
Valid values: 1 through 65535 inclusive
Default value: 21Type Specify the type of firewall deployed.
Valid values: None, Socks 4, and Socks 5
Default value: NoneUser Specify the user name for the firewall. FTP
Use this To do this Account Specify the account name for the FTP server. This option is deprecated and use of this property is discouraged. After Get Specify the FTP commands to run after the file GET. Separate commands with a semicolon (;). Before Get Specify the FTP commands to run before the file GET. Separate commands with a semicolon (;). Note: QUIT command is not supported before the file GET. Error Threshold Specify the number of errors that BizTalk Server can encounter before the location is disabled.
Default value: 10File Mask Specify the file mask filter to use when transmitting files. Folder Specify the polling location on the FTP server. FTP Server Type New starting with BizTalk Server 2016.
Use this property to choose an FTP server that does not require the SYST command. Options are None, AIX, Detect, GXS, MVS, OS400, and Other.
If set to None, the SYST command is used. Other is used when the OS type does not fit into any of the specified categories.
Default value: NoneLog Specify the full path including filename of the log file to output to. You use this file to diagnose error conditions when sending or receiving files through FTP. Max File Size Specify the maximum downloadable file size, in megabytes.
Zero (0) indicates no limit on the file size.
Default value: 100Password Specify the user password to log on to the FTP server. Port Specify the port address for this FTP server.
Default value: 21Representation Select how FTP receives the data.
Valid values: binary or ASCII
Default value: binaryServer Specify the server name or IP address of the FTP server. Note: The URI for a send port or receive location cannot exceed 256 characters. SSO Affiliate Specify the Enterprise Single Sign-On affiliate application. Use name list (NLST) Specify how the adapter lists files. To view file names instead of the system-defined file listing, set this value to Yes.
Default value: NoUser Name Specify the user name to log on to the FTP server. Polling
Use this To do this Delete After Download Specify whether the adapter deletes a file from the FTP server after downloading it.
Default value: Yes Note:Enable Timestamp Comparison Specify whether the adapter downloads a file again based on its modified timestamp. In cases when the adapter does not have delete permissions on the FTP server, the MDTM (Modification Time) command allows the adapter to know whether a file has been modified since last download. Based on the value of this property, the file is downloaded again.
Default value: No Note: In case the FTP server does not support MDTM, set the Redownload Interval property. Note: This property is applicable only when Delete After Download is set to No.Interval Specify the interval number for polling this location. To poll continuously, set this value to zero (0).
Default value: 60Redownload Interval Specify the interval after which the adapter downloads files again. This property is applicable only when both Delete After Download and Enable Timestamp Comparison are set to No.
Default value: -1
-1 indicates that the adapter will not download files again.
0 indicates that the adapter will download the file in each polling cycle.Unit Specify the type of units for the Interval and Redownload Interval properties.
Valid values: Seconds, Minutes, Hours, and Days
Default value: SecondsSSL
Use this To do this Client Certificate Hash Specify the SHA1 hash of the client certificate that must be used in the Secure Sockets Layer (SSL) negotiation.
Based on this hash, the client certificate is picked up from the personal store of the user account under which the BizTalk host instance is running.FTPS Connection Mode Specify the mode of SSL connection made to the FTPS server.
Valid Values: Implicit or Explicit
Default Value: ExplicitUse Data Protection Specify this as Yes if the adapter must use SSL encryption when it sends and receives data files from the FTPS server. Specify this as No for the adapter to send and receive data files as plaintext. Note: This property is applicable only if the Use SSL property is set to Yes.
Valid Values: Yes or No
Default Value: YesUse SSL Specify whether the FTP adapter must use SSL to communicate with the FTPS server.
Valid Values: Yes or No
Default Value: NoTuning Parameters
Use this To do this Receive Data Timeout Specify the time in milliseconds before the receive call will abort. You use this property to prevent a slow server from causing the receive location to stop responding.
Default value: 90000Temporary Folder Specify the location for a temporary folder. You use this location to guarantee recovery from a transfer failure. Click OK to save settings.
In the Receive Location Properties dialog box, enter the appropriate values to complete the configuration of the receive location and then click OK to save settings. For information about the Receive Locations Properties dialog box, see How to Create a Receive Location.
Note
Do not configure multiple FTP receive locations to poll the same FTP URL. If multiple FTP receive locations are polling the same URL concurrently then each receive location can receive a copy of the file, which can cause data duplication. This behavior occurs because the FTP protocol has no provision for locking files when reading them from the target URL.
To provide high availability for the FTP receive adapter, you should configure the FTP receive adapter to run in a clustered BizTalk Host instance. See Considerations for Running Adapter Handlers within a Clustered Host.
Configure the send port
You can set FTP send port adapter properties in the BizTalk Server Administration console. If properties are not set for the send port, the default send handler values in the BizTalk Server Administration console are used.
In the BizTalk Server Administration console, create a new send port or double-click an existing send port to modify it. See How to Create a Send Port. Configure all of the send port options, and in the Transport section of the General page, specify FTP for the Type option.
On the General page, in the Transport section, click the Configure button next to Type.
In FTP Transport Properties, do the following:
Firewall
Use this To do this Address Specify the address of the firewall, either a DNS name or an IP address. Mode Select the mode in which the adapter connects to the FTP server.
Valid values: Passive and Active
In active mode, the FTP server connects to a port opened by the FTP adapter. In passive mode, the FTP adapter connects to a port opened by the FTP server. Active mode may not work if you use an internal IP and you connect to an external IP. In this case, you need to use Passive mode or Active mode with an application-layer gateway (ALG) with FTP support.
Default value: ActivePassword Specify the password for the firewall. Port Specify the port for the firewall.
Valid values: 1 through 65535 inclusively
Default value: 21Type Select the type of firewall deployed.
Valid values: Socks 4, Socks 5, None
Default value: NoneUser Specify the user name for the firewall. FTP
Use this To do this Account Optional. Specify the account name for the FTP server. This option is and use of this property is discouraged. After Put Specify the FTP commands to run after the file PUT. Separate commands with a semicolon (;). Allocate Storage Specify whether to allocate storage space for legacy host systems. This option is provided for backward compatibility.
Valid values: No and Yes
Default value: NoBefore Put Specify the FTP commands to run before the file PUT, such as commands to change default values on the FTP server. Separate commands with a semicolon (;). No open command is required. Note: QUIT command is not supported before the file PUT. Folder Specify the location to move the files to on the FTP server. FTP Server Type New starting with BizTalk Server 2016.
Use this property to choose an FTP server that does not require the SYST command. Options are None, AIX, Detect, GXS, MVS, OS400, and Other.
If set to None, the SYST command is used. Other is used when the OS type does not fit into any of the specified categories.
Default value: NoneLog Specify the full path including filename of the log file to output to. Use this file to diagnose error conditions when sending or receiving files through FTP adapter. Password Specify the password to log on to the FTP server. Port Specify the port address for the FTP server.
Default value: 21Representation Select how FTP adapter sends the data, either as binary or as ASCII.
Valid values: binary or ASCII
Default value: binaryServer Specify the server name or IP address of the FTP server. SSO Affiliate Specify the Enterprise Single Sign-On affiliate application. Target File Name Specify an alternative name for the file. Retaining the default name guarantees unique message names for each message sent.
Default value: %MessageID%.xmlUser Name Specify the user name to log on to the FTP server. SSL
Use this To do this Client Certificate Hash Specify the SHA1 hash of the client certificate that must be used in the Secure Sockets Layer (SSL) negotiation.
Based on this hash, the client certificate is picked up from the personal store of the user account under which the BizTalk host instance is running.FTPS Connection Mode Specify the mode of SSL connection made to the FTPS server.
Valid values: Implicit or Explicit
Default value: ExplicitUse Data Protection Specify this as Yes if the adapter must use SSL encryption when it sends and receives data files from the FTPS server. Specify this as No for the adapter to send and receive data files as plaintext. Note: This property is applicable only if the Use SSL property is set to Yes.
Valid values: Yes or No
Default value: YesUse SSL Specify whether the FTP adapter must use SSL to communicate with the FTPS server.
Valid values: Yes or No
Default value: NoTuning Parameters
Use this To do this Connection Limit Specify the maximum number of concurrent FTP connections that can be opened to the server. A value of 0 means no limit.
Default value: 0 Note: This property replaces the registry entry that was used in earlier versions of BizTalk Server to govern the connection limit. BizTalk Server ignores the registry entry used to control the connection limit.Temporary Folder Specify the location for a temporary folder on the FTP server. The file is first uploaded here and then moved to the destination FTP folder. In case of transfer failure, the adapter restarts the file upload in ASCII mode of transfer and resumes in binary mode of transfer. Note: If the file transfer is atomic between the temporary location and the relevant location on the FTP server, then the file upload is also atomic. Click OK and OK again to save settings.
FTP commands required by the FTP adapter
The FTP adapter is subject to the limitations of the FTP protocol, and requires that certain FTP commands are available on the source or destination FTP Server.
The FTP adapter operates as an FTP client and may require that the following commands are available on the FTP server to function correctly:
Command | Required by Receive | Required by Send |
---|---|---|
SYST | ✔ Optional starting with BizTalk Server 2016 |
✔ Optional starting with BizTalk Server 2016 |
STORE | ✔ | |
RETR | ✔ | |
USER | ✔ | ✔ |
PASS | ✔ | ✔ |
CWD | ✔ | ✔ |
QUIT | ✔ | ✔ |
PORT | ✔ | ✔ |
PASV | ✔ | ✔ |
ABOR | ✔ | ✔ |
TYPE | ✔ | ✔ |
RNFR | ✔ | ✔ |
RNTO | ✔ | ✔ |
DELE | ✔ | ✔ |
PWD | ✔ | ✔ |
LIST | ✔ | ✔ |
NLST | ✔ | ✔ |
NOOP | ✔ | ✔ |
APPE | ✔ | |
ALLO | ✔ | ✔ |
MDTM | ✔ | |
AUTH TLS | ✔ | ✔ |
PBSZ | ✔ | ✔ |
PROT | ✔ | ✔ |
For more information about these FTP commands, see:
RFC 959 - File Transfer Protocol (https://go.microsoft.com/fwlink/p/?LinkId=119603)
RFC 4217 - Securing FTP with TLS (https://go.microsoft.com/fwlink/p/?LinkId=183154)
RFC 3659 - Extensions to FTP (https://go.microsoft.com/fwlink/p/?LinkId=183155)
Configuring an FTP Adapter to Work with Legacy Hosts
This sections addresses what you need to know to facilitate communication between the FTP adapter and a mainframe computer.
Note
You cannot use the temporary folder function when sending files to an MVS or AS400 host. Input into this field is not supported and will cause errors.
Important
The following information is provided as a guide and should not be substituted for information found in AS400 or IBM documentation.
MVS
To send files to an FTP server on a mainframe, the mainframe must support IBM Generation Data Group (GDG). In the name field, each file name will append a (+1) to the destination file name (a full path with quotes around it).
AS400
There are three methods of naming files and defining their paths when transferring files to and from an AS400 system:
Filename field: When sending a file to an FTP server, enter the file name in the Filename field. The file name must conform to the file-naming conventions of the AS400 system because the file will be stored in the Library File System.
Quote command: Use the Quote command to run a script on the remote computer. Enter the Quote command into the Before GET, Before PUT, After GET, and After PUT fields on any of the endpoints. Enter the Quote command in the following format:
QUOTE RCMD <command to be run on the remote system>.
Integrated File System (IFS): IFS is an area on the AS400 system that allows the storage of PC-based files and therefore the same naming conventions as a PC. To use the IFS instead of the default Library File System, the first command to enter is
quote site namefmt 1
. This command tells the AS400 system to use the IFS naming convention.
More good stuff
FTP Adapter Property Schema and Properties