Deprecated Component

This communication point has been deprecated and replaced by the (S)FTP Client communication point:

  • If you are creating a new RLC, we strongly recommend you use the (S)FTP Client communication point for FTP applications.
  • If you are using an RLC containing FTP Client communication points that work as expected after an upgrade to Rhapsody 6, then we recommend you do not replace the FTP Client communication points with (S)FTP Client communication points. If any FTP Client communication points are not working as expected after an upgrade, we recommend you use the (S)FTP Client communication points instead.

The FTP Client communication point  is used to connect to an FTP Server to look for files from an input directory, to send messages to an output directory or both. It supports both FTP and FTPS (FTP over SSL). If you want to use SSH protocols, use the SFTP Client communication point.

As there are many different FTP servers that have different configuration options, there may be properties that are not applicable for the FTP to which you are connecting. Refer to Published Properties for a list of properties associated with this communication point.

Supported Operational Modes: All

Input Mode Properties

Ensure that the input location for multiple distinct communication point instances do not resolve to the same filename in order to prevent race conditions with multiple communication points trying to read the same file.

Property

Description

Server

Hostname/IP Address of the FTP Server to which the communication point will connect.

Port

The remote port number to connect to on an FTP server. The default value is 0, which means port 21 is used for all standard FTP connections. Port 990 is used when running in FTPS implicit mode.

Username

The username/id of the user for authenticating with the FTP server. This may be provided as a literal, a Rhapsody variable (using the $(variableName) notation), or a Rhapsody message property (using the $propertyName notation).

Password

The password of the user for authenticating with the FTP server. The user account must have write access. This may be provided as a literal, a Rhapsody variable (using the $(variableName) notation), or a Rhapsody message property (using the $propertyName notation).

As message properties are visible in the Management Console to users with the appropriate access rights, it is highly recommended that you encrypt passwords provided in this message using the Encrypt Password function in the Rhapsody IDE. Alternatively, you can use Configuration Templates, which do not require providing the password in a message property.

If the passwords are retrieved from a Rhapsody variable using JavaScript, then the retrieval functions can leave them in this format. Refer to Encrypted Rhapsody Variables for details.

Passive Mode Connection

Options: True, False. Default: False
Use with firewalls that do not allow FTP back connections. When a client connects to an FTP server, it asks to get or send a file and informs the server that it is waiting for a connection on a random port. The server then connects to the client on that port and the client either receives the data or sends the file.
In passive mode ( True), the client connects to the server, tells it to switch to passive mode, then asks to get or send a file. The server responds with a port number, the client connects to that port then gets or receives the file.

Read Timeout

Specifies the length of time Rhapsody will wait for a response from the FTP server. Units: milliseconds.

Transfer Type

Options: Binary or ASCII. Default: Binary
Identifies the mode transfer type to use.
In Binary mode, the sending machine sends each file byte for byte and as such the recipient stores the bytestream as it receives it. (The FTP standard calls this "IMAGE" or "I" mode).
When a file is sent using an ASCII-type transfer, the individual letters, numbers, and characters are sent using their ASCII character codes. The receiving machine saves these in a text file in the appropriate format (for example, a Unix® machine saves it in a Unix® format, a Windows® machine saves it in a Windows® format). In ASCII mode, any form of data that is not plain text is corrupted.

Connection Mode

Options: Maintain a constant connection or Disconnect if not sending/receiving. Default: Maintain a constant connection
Identifies the type of connection maintained with the FTP server, if a constant connection to the FTP server should be maintained, or if the client should disconnect when not sending or receiving. A constant connection is not advised if the communication point is expected to stay idle for extensive periods of time without any activity.

FTP Connection Type

Options: FTP or FTPS. Default: FTP
FTPS is a secure version of the FTP protocol, that operates over an SSL connection.
If you want to use SSH protocols, use the SFTP Client Communication Point.

Data Channel Protection Level

Options: Private, Clear. Default: Private
This option is only available if the FTP Connection Type is FTPS.
The data channel protection level. If the data channel protection level is set to Clear then PBSZ and PROT commands will not be sent (some older FTPS servers do not support these commands).

FTPS Mode

Options: Explicit or Implicit. Default: Explicit
This option is only available if the FTP Connection Type is FTPS.
This option determines whether the FTPS client should operate in explicit or implicit mode.

  • In explicit mode, the connection is established as per normal FTP, and then subsequently TLS security is requested and enabled.
  • In implicit mode, the SSL handshake is performed before any FTP commands are sent. The appropriate mode depends entirely on how the FTPS server has been configured.

Disable Standard SSL Closure

Options: False or True. Default: False
This option is only available if the FTP Connection Type is FTPS.
This option disables standard SSL closure forcing, on both the data and control channels. This is necessary for compatibility with some FTPS servers. Disabling this weakens protection against some truncation attacks, and so should only be disabled if required by the server.

Server Validation

Options: False or True. Default: False
This option is only available if the FTP Connection Type is FTPS.
This option determines whether the FTPS client should verify the server before allowing a connection. If enabled, the server's certificate must be configured in Rhapsody before any connections can be made.

Trusted Certificates

When performing server validation for FTPS, this property is the list of certificates that are used to validate the server. During authentication, the server must present at least one of these certificates, or the connection will not be established.
This option is only available if Server Validation is set to True.

Check hostnames

Options: False or True. Default: True
When performing server validation for FTPS, this property determines whether the FTPS client will insist on the hostname of the server matching the hostname in the certificate presented. If this parameter is on, and the hostnames are not identical, the connection will not be established. Setting this to false is strongly discouraged as it makes it easy for someone to impersonate the owner of the certificate.
Commonly used when operating within an internal network where a server may have different internal and external network names. Not recommended when connecting to external networks.

Client Authentication

Options: False or True. Default: False
This option determines whether client authentication is required when connecting to an FTPS server. When client authentication is on, the FTPS client must present a valid certificate to the FTPS server or the connection will not be established.

Secure Key

This is the private key used for client authentication when connecting via FTPS. This private key must match the public key contained in the certificate that will be presented to the server.

Client Certificate

This is the client certificate that will be used for client authentication when connecting to an FTPS server. The public key in this certificate must match the private key specified.

Input Directory

The directory to check for input files. If this property is empty, the user's home directory becomes the Input Directory.

For compatibility across all operating systems, use forward slashes (/).

List Command Parameter

The List Command parameter to pass to the remote FTP server.
Only needed if the server you are connecting to expects different commands other than the standard ls command.
Generally you should not have to set this property.

Pattern

Pattern to use to select input files from the Input Directory. This is an optional property with an asterisk "*" as the default value (that is, all files from "Input Directory" are to be processed).
For example, *.xml searches for all files with the file extension of .xml.

Refresh Rate

Specifies the frequency (in ms) that the input directory is checked for new files. This property is optional with a default value of 60000ms (1 minute).

Remove Files from Server

Options: False or True. Default: True
Whether the files should be removed from the server after being successfully downloaded. This option supports cases where another process is responsible for removing files and therefore, should almost always be set to True. If this is set to False, the route must be able to handle any duplicate messages as the communication point will reprocesses any messages present on the server after every refresh interval.

Before Receive

A collection of commands to be sent to the FTP server before receiving each message. Any non 2xx or 3xx responses are considered a receive error.

Output Mode Properties

Ensure that the output location for multiple distinct communication point instances do not resolve to the same filename in order to prevent potential overwrites occurring as a result of trying to write to the same file.

Property

Description

Server

Hostname/IP Address of the FTP Server to which the communication point connects.

Port

The remote port number to connect to on an FTP server. The default value is 0, which means port 21 is used for all standard FTP connections. Port 990 is used when running in FTPS implicit mode.

Username

The username/id of the user for authenticating with the FTP server. This may be provided as a literal, a Rhapsody variable (using the $(variableName) notation), or a Rhapsody message property (using the $propertyName notation).

Password

The password of the user for authenticating with the FTP server. The user account must have write access. This may be provided as a literal, a Rhapsody variable (using the $(variableName) notation), or a Rhapsody message property (using the $propertyName notation).

As message properties are visible in the Management Console to users with the appropriate access right, it is recommended that passwords provided in message properties are kept in their obfuscated form. If those passwords are retrieved via Rhapsody variables using JavaScript, then the retrieval functions can leave them in this format - refer to Encrypted Rhapsody Variables for details. If those passwords are provided as literals elsewhere in the configuration, then the Encrypt Password function in the Rhapsody IDE can be used.

Passive Mode Connection

Options: False or True. Default: False
Use with firewalls that do not allow FTP back connections. When a client connects to an FTP server, it asks to get or send a file and informs the server that it is waiting for a connection on a random port. The server then connects to the client on that port and the client either receives the data or sends the file.
In passive mode (value set to True), the client connects to the server, tells it to switch to passive mode, then asks to get or send a file. The server responds with a port number, the client connects to that port then gets or receives the file.

Read Timeout

Specifies the length of time Rhapsody will wait for a response from the FTP server. Units: milliseconds.

Transfer Type

Options: Binary or ASCII. Default: Binary
Identifies the mode transfer type to use.
In Binary mode, the sending machine sends each file byte for byte and as such the recipient stores the bytestream as it receives it. (The FTP standard calls this "IMAGE" or "I" mode).
When a file is sent using an ASCII-type transfer, the individual letters, numbers, and characters are sent using their ASCII character codes. The receiving machine saves these in a text file in the appropriate format (for example, a Unix® machine saves it in a Unix® format, a Windows® machine saves it in a Windows® format). In ASCII mode, any form of data that is not plain text is corrupted.

Connection Mode

Options: Maintain a constant connection or Disconnect if not sending/receiving. Default: Maintain a constant connection
Identifies the type of connection maintained with the FTP server.

FTP Connection Type

Options: FTP, FTPS. Default: FTP
FTPS is a secure version of the FTP protocol, that operates over an SSL connection.

Data Channel Protection Level

Options: Private, Clear. Default: Private
The data channel protection level. If the data channel protection level is set to Clear then PBSZ and PROT commands will not be sent (some older FTPS servers do not support these commands).

FTPS Mode

Options:  Explicit or  Implicit. Default: Explicit
This option is only available if the FTP Connection Type is  FTPS.
This option determines whether the FTPS client should operate in explicit or implicit mode.

  • In explicit mode, the connection is established as per normal FTP, and then subsequently TLS security is requested and enabled.
  • In implicit mode, the SSL handshake is performed before any FTP commands are sent. The appropriate mode depends entirely on how the FTPS server has been configured.

Disable Standard SSL Closure

Options: False or True. Default: False
This option disables standard SSL closure forcing, on both the data and control channels. This is necessary for compatibility with some FTPS servers. Disabling this weakens protection against some truncation attacks, and so it should only be disabled if required by the server.

Server Validation

Options: False or True. Default: False
This option determines whether the FTPS client should verify the server before allowing a connection. If enabled, the server's certificate must be configured in Rhapsody before any connections can be made. This option is only available when connecting using FTPS.

Trusted Certificates

When performing server validation for FTPS, this property is the list of certificates that are used to validate the server. During authentication, the server must present at least one of these certificates, or the connection will not be established.

Check hostnames

Options: False or True. Default: True
When performing server validation for FTPS, this property determines whether the FTPS client will insist on the hostname of the server matching the hostname in the certificate presented. If this parameter is on, and the hostnames are not identical, the connection will not be established. Setting this to false is strongly discouraged as it makes it easy for someone to impersonate the owner of the certificate.

Client Authentication

Options: False or True. Default: False
This option determines whether client authentication is required when connecting to an FTPS server. When client authentication is on, the FTPS client must present a valid certificate to the FTPS server or the connection will not be established.

Secure Key

This is the private key used for client authentication when connecting via FTPS. This private key must match the public key contained in the certificate that will be presented to the server.

Client Certificate

This is the client certificate that will be used for client authentication when connecting to an FTPS server. The public key in this certificate must match the private key specified.

Output Directory

Directory to place output messages.
Need Write access. Will default to the home directory.

Base Filename

Base filename to use for output messages. Refer to File Naming Options for details.

Suffix

Optional suffix to append to the end of the filename. Refer to File Naming Options for details.

Append Date

Options: False or True. Default: True
Appends the current date/time to the filename. Note that the default is True; this compares with the default: False for the Directory communication point. This difference is because it is harder to test for unique names over FTP and thus it's more important to generate a unique file name.

Check Name

Options: False or True. Default: True

  • If False, existing files with the same name as the generated file will be overwritten.
  • If True and a duplicate filename is encountered, a counter will be added to the newly generated filename. Setting this property to True significantly slows the performance of the FTP Client communication point.

Use temp file

Options: False or True. Default: True
If True, a temporary file is created on the server and renamed once transmission is complete.

Append to existing file

Whether or not to append to a file that may already exist on the remote location. This property cannot be set to true if any of the following options are set to true:

  • Use Temp File
  • Check Name
  • Append Date

Before Send

A collection of commands to be sent to the FTP server before sending each message. Any non 2xx or 3xx responses are considered a receive error.

Bidirectional, In->Out and Out->In Mode

The configuration properties for the FTP Client communication point in Bidirectional, In->Out and Out->In modes is a combination of the properties described above.

Refer to Out->In and In->Out Properties for general details on a communication point's In->Out and Out->In modes.

Published Properties

Published properties for the FTP Client communication point are:

  • Full Filename - the full filename of the file associated with the received message.
  • Base Filename - the base filename (that is everything before the last '.' in the full filename) of the file associated with the received message. If there is no '.' then it is equal to the full filename.
  • Suffix - the suffix (everything from the last '.' in the full filename, including the '.') of the file associated with the received message. If there is no '.' then it is empty.