FTP Server Adapter
The FTP Server adapter receives and processes requests from external trading partners that are submitted using FTP. This adapter is used with a perimeter server.
The following table provides an overview of the FTP Server adapter:
System name | FTP Server Adapter |
---|---|
Graphical Process Modeler (GPM) category | None |
Description | This adapter receives and processes requests from external trading partners that are submitted using the FTP protocol. This adapter is used with a perimeter server. |
Business usage | Use this adapter to put files into, or get files from, a mailbox. |
Usage example | A trading partner uses an FTP client to retrieve a business document from a mailbox. The FTP Server adapter receives and processes the trading partner request. |
Preconfigured? | A configuration of the FTP Server adapter is installed, but disabled by default. You can enable the preconfigured FTP Server adapter or create a new configuration. |
Requires third party files? | No |
Platform availability | All supported platforms |
Related services | None |
Application requirements | To log in to the FTP server, you must have permission to your virtual root (either explicitly assigned or defaulted). To access a mailbox, you must have permission to that mailbox and all mailboxes between it and your virtual root. If a user exceeds the maximum number of failed login attempts, the FTP Server adapter locks the user out. The lock must be reset before the user can access the server again. |
Initiates business processes? | The FTP Server adapter does not directly initiate business processes. However, mailbox activities can trigger routing rules. |
Invocation | Not used in business processes |
Business process context considerations | None |
Returned status values | None |
Restrictions |
|
Restrictions (continued) |
|
Persistence level | None. This adapter does not have a pre-set persistence level. |
Testing considerations | At application start up, attempt to access the FTP server using a supported FTP
client with the configured IP address and port. Debug information can be found in the FTP logs.
Select Logging Level from the following:
|
Implementing the FTP Server Adapter
- Create an FTP Server adapter configuration (or enable the installed configuration and edit parameters as needed).
- Configure the FTP Server adapter. You can deploy the FTP adapter in the ASI or AC
node.
If you want to stop the ASI node while still receiving files, you can run the FTP adapter in an adapter container. If you upload a message when the JVM is down, message events are queued for processing and are processed when the JVM is up and running.
If you run a Global Mailbox enabled adapter in the Adapter Container, you must also run a Global Mailbox Client Adapter in the adapter container.
Configuring the FTP Server Adapter
To configure the FTP Server adapter, you must specify settings for the following fields:
Field | Description |
---|---|
Name | Unique and meaningful name for the adapter configuration. Required. |
Environment | Nodes where the FTP Server Adapter is deployed. The values are - nodes in the cluster, adapter containers, All ASI nodes, All ASI nodes plus all Adapter Container Nodes, and All Adapter Container Nodes. To scale the FTP server adapters as and when new nodes are added to the cluster, the options All ASI nodes, All ASI nodes plus all Adapter Container Nodes, and All Adapter Container Nodes are introduced. |
Description | Meaningful description for the adapter configuration. Required. |
Select a Group | Not applicable for this adapter. Do not change default value. |
FTP Server Listen Port | Port number that the FTP Server should bind to and listen on for connection requests. The default value depends on your system platform and on configuration. Required. |
Active Data Port Range | Range of ports the server can allocate for the transfer of data to or from the
FTP client in active mode. Optional. Example values are:
Fast path: You can enter double ranges separated
by commas, as shown in this example:
10500-10599,10700-10799
If blank, the server selects
available system ports. |
Passive Data Port Range | Range of ports the server can allocate for the transfer of data to or from the
FTP client in passive mode. Optional. Example values are:
Fast path: You can enter double ranges separated
by commas, as shown in this example:
10500-10599,10700-10799
If blank, the server will
choose available system ports. |
Perimeter Server | Select a perimeter server from the list. Default is node1 and local. Required.
Restriction: You should use a specific external
interface for communications with trading partners. Using a
wildcard address can cause problems with FTP sessions. If
another process binds the port used for the data channel on
an interface, it may receive connections intended for the
data channel. Using a specific TCP/IP address or DNS name
prevents this from occurring.
|
Transfer Buffer Size (bytes) | Specifies the size in bytes of the buffer used when transferring a file. Required. Valid values are 0 to 999,999,999. Default is 32000. |
Minimum Number of Threads | Tuning parameter indicating the range of threads available for handling events to
improve performance. Must be less than or equal to the Maximum
Number of Threads value. Default is 3. Required. Restriction: Do not change the default value unless
instructed otherwise by IBM support.
|
Maximum Number of Threads | Tuning parameter indicating the range of threads available for handling events to
improve performance. Must be greater than or equal to the
Minimum Number of Threads value. Default is 6. Required. Restriction: Do not change the default value unless
instructed otherwise by IBM support.
|
Resumption Timeout (hours) |
Specify the time within which an incomplete transfer can be resumed. If the transfer is
not resumed within the specified time, the incomplete files
are removed from the staging area (by the Partial Document
Clean Up service) and are no longer available for
resumption.
Important: The resumption time
applies to incomplete messages in traditional mailboxes
only. The value of this parameter is ignored for
incomplete messages in a Global Mailbox
|
NAT Address | Specifies the NAT IP address the FTP server should send to the user FTP client in passive connection mode. Optional. Overrides the global NAT address specified in the ftpserver.properties file. |
Maximum Logins | Maximum number of logins the adapter may have active at any time. If no value is specified, logins are unlimited. Optional. Valid value is any integer to 9999999999. |
Maximum Logins per user | Maximum number of logins each user may have active on this adapter at any point of time. If no value is specified, logins are unlimited. Optional. Valid value is any integer to 9999999999. |
Payload Repository | Whether files or messages are stored in the local mailbox or a
physical file system on the server. Required. Valid values are:
|
Enable Global Mailboxes | The FTP Server adapter directs messages to a traditional or
Global Mailbox, based on
the realm of the virtual root of the user that is logged in and
this setting. The options are the following values:
|
Document Storage | Displayed only if Mailbox is selected for Payload Repository.
Indicates whether the body of the request document must be
stored on the file system or in the database. Valid values are:
|
Should the adapter be restricted to a certain group of users? | Select Yes or No to indicate whether to restrict access to the FTP server. Required. Default is No. If Yes, select Users and or Groups from the lists on subsequent pages. |
Should the restricted users be assigned a specific range of ports? | Select Yes or No to indicate whether to assign a specific port, range, or range of ports to users. Required. Default is No. If Yes, specify User Active Ports, User Passive Ports, Group Active Ports, and or Group Passive Ports on subsequent pages. You can specify any or all of these fields. |
Should users start in the directory that matches their user name upon login? | Places the user, upon logging in, into a directory
(mailbox) that corresponds to their user ID. Valid values are:
|
Users | Select a list of users who are granted permission to access the server. |
Groups | Select a list of groups who are granted permission to access the server. |
User Active Ports | Any port number or a range of port numbers to be used as ACTIVE port. Valid
values are valid, available port numbers or a range of port
numbers. Ranges are separated by hyphens. Multiple entries must
be separated by commas. Spaces do not affect the meaning.
Optional. Examples of valid values are:
|
User Passive Ports | Any port number or a range of port numbers to be
used as PASSIVE port. Valid values are valid, available port numbers
or a range of port numbers. Ranges are separated by hyphens. Multiple
entries must be separated by commas. Spaces do not affect the meaning.
Optional. Examples of valid values are:
|
Group Active Ports | Any port number or a range of port numbers to be
used as ACTIVE port. Valid values are valid, available port numbers
or a range of port numbers. Ranges are separated by hyphens. Multiple
entries must be separated by commas. Spaces do not affect the meaning.
Optional. Examples of valid values are:
|
Group Passive Ports | Any port number or a range of port numbers to be used as PASSIVE port. Valid
values are valid, available port numbers or range of port
numbers. Ranges are separated by hyphens. Multiple entries must
be separated by commas. Spaces do not affect the meaning.
Optional. Examples of valid values are:
|
Extractable Count | The number of times the message can be extracted. Cannot be specified in conjunction with Extractable or Extractable For. Valid value is any integer. Optional. |
Extractable For | Indicates the length of time (in days, hours and minutes) the message can be
extracted. Cannot be specified in conjunction with Extractable or Extractable Count. Optional.
Note: If you opt to specify a value for Extractable For, ensure that you do not leave any of the
fields (Days, Hours, or Minutes) blank. Enter 0 in the fields for which you do not want to provide
any value. That is, if you want the message to be extractable for one minute, enter 1 in the Minutes
field and enter 0 in the Days and Hours fields. If left blank, the value is taken as
1.
|
Extractable | Whether the message can be extracted. Cannot be specified in conjunction with Extractable Count or Extractable For. Valid values are Yes and No. Default is Yes. Optional. |
SSL | Whether Secure Sockets Layer (SSL) is active. Required. Valid values are:
Note: It is recommended to use SSL rather than plain FTP.
Restriction: If Optional or Must is selected, the asset protection key must enable SSL for the appropriate protocol.
|
Key Certificate Passphrase | Password that protects the server key certificate. Used to encrypt and decrypt messages. Required if SSL option is Must or Optional. |
Cipher Strength | Strength of the algorithms used to encrypt data.
Required if SSL option is Must or Optional. Valid values are:
|
Key Certificate (System Store) | Private key and certificate for server authentication. Used to encrypt and decrypt messages. Required if SSL option is Must or Optional. |
CA Certificates | Certificate used to validate the certificate of an FTP client. This is the public key. If no CA certificate is chosen, no client certification is performed. Optional. |
Clear Command Channel | Indicates that communication across the command channel is not encrypted after authentication is completed. Optional. |
Support for concurrent duplicate named file transfers | Allows sending duplicate-named files to the same Mailbox using the same user
name. It also allows partners to receive multiple duplicate
files with the same name, concurrently. Valid values are:
Restriction: For a Global Mailbox, only
Limited and Full (resume of file transfers not supported)
options are supported.
|
FTP Server Functions That Are Supported
Category | Commands Supported |
---|---|
Access Control commands |
|
Transfer Parameter Commands |
|
Service Commands |
|
Security Commands |
|
FTP Server Functions That Are Not Supported
Category | Commands Not Supported |
---|---|
Access Control commands |
|
Transfer Parameter Commands |
|
Activity Types for the FTP Server Adapter
- PUT – Adds a file to a mailbox
- MPUT - Adds multiple files to a mailbox
- GET – Retrieves a file from a mailbox
- MGET - Retrieves multiple files from a mailbox
- Session – Records all activity after connection
File System Virtual Root
When you configure an FTP adapter and the Payload Repository is defined as File System, and if you want to restrict user access to specific file system folders and subfolders, then you need to configure the file system virtual root. The file system virtual root is relative to the adapter Base Directory. The virtual root defines the point of access for each user who has permission to use the adapter. The file system virtual root is relative to the Base Directory.
Configuring a File System Virtual Root
- User ID that need permission to the adapter virtual root
- Path to the Base Directory
- Create a folder under the base directory which will be the virtual root
To create a new File System Virtual Root:
- Navigate to the .
- Next to Create a new Virtual Root, click Go!
- Select the User ID from the list and click Next.
- Enter the path to the virtual root.
For example, if the base directory is /install_dir/ftpserver1 then the file system virtual root can be any folder/directory under the /install_dir/ftpserver1 directory.
- Click Finish.
Editing a File System Virtual Root
To edit a File System Virtual Root:
- Navigate to the .
- Use either Search or List to locate the User ID for which the virtual root needs to be edited.
- Click edit next to the User ID. The User ID is displayed.
- Click Next.
- Update the Virtual Root and click Next.
- Click Finish.
Deleting a File System Virtual Root
To delete a File System Virtual Root:
- Navigate to the .
- Use either Search or List to locate the Virtual Root.
- Click delete next to the User ID which virtual root needs to be deleted.
- Click OK.
- Review the virtual root information.
- Click Delete.