SUMMARY
How to Establish AFTP Connectivity to an AS/400 or Mainframe
An AFTP (APPC File Transfer Protocol) connection can be established using
Microsoft SNA Server versions 3.0 and above to an AS/400 or Mainframe
running IBM's AFTP protocol found in the APPC Applications Suite. (AFTP is
a necessary component on the Mainframe or AS/400, or there is no
possibility of the Microsoft SNA AFTP Service communicating with the AS/400
through AFTP.) The AFTP Service allows users to use standard FTP clients or
to use the AFTP client software (included as part of the Microsoft SNA
client) to transfer files back and forth to an AS/400 or Mainframe. AFTP
access to an AS/400 or Mainframe can be established by implementation of
the steps below.
Configuring the SNA AFTP Service on the SNA Server
- Configure a good connection to the Mainframe or AS/400.
NOTE: To configure a good connection to an AS/400, please refer to the
following Microsoft Knowledge Base article for Token Ring or Ethernet
access:
112158 Configuring SNA Server to Talk to AS/400 Over 802.2
Or if the connection is through SDLC, please see the following Microsoft
Knowledge Base article:
112159 Configuring SNA Server to Talk to AS/400 Over SDLC
If you are connecting to a Mainframe through a 3174 gateway through
802.2, please see the following Microsoft Knowledge Base article:
107567 Configuring SNA Server through a 3174 Gateway via 802.2
- At this point, the SNA Server should have a good Link Service,
Connection, Local APPC LU, and Remote APPC LU.
- Install the AFTP Service if it has not previously been installed. (This
can be verified by using the Control Panel Services tool and checking to
see if AFTP Server is in the list of services; or by typing "net start"
at an MS-DOS command prompt, which will display all services running on
the local computer.) If the AFTP Service has been installed, skip steps
4 and 5.
- If the AFTP Service is not installed, click the Start button, point to
Programs, point to SNA Server, and click Setup.
- Click Add/Remove. Select the "SNA Server Components and Services" line,
and click Change Option. Select the "AFTP Service" check box, and the
click OK. Click Continue and SNA Server will install the AFTP Service
and prompt you to restart your computer.
Configuring FTP-AFTP Access
If the SNA AFTP Server is going to be used as an FTP-AFTP Gateway and
allowing standard FTP clients to communicate to the Mainframe or AS/400,
then perform the following steps on the SNA AFTP Server:
- Stop the FTP publishing service. With Windows NT Server 4.0, the service
can be stopped from the Internet Service Manager. In previous versions
of Windows NT Server, use the Control Panel Services tool.
- Back up the Ftpsvc2.dll file. The native Windows NT Server FTP service
will be replaced by an FTP service that is supplied with SNA Server. The
original file is generally in the <NTroot>\System32\Inetserv directory.
If you have customized your Windows NT Server and Microsoft Internet
Information Server (IIS) configuration, use the Find File tool to locate
the original FTP service.
- Copy the Ftpsvc2.dll file supplied with SNA Server from the
<snaroot>\System directory to the <NTRoot>\System32\Inetserv directory.
- Restart the computer.
When the system is restarted, the new Ftpsvc2.dll will be used and it has
the ability to direct incoming FTP requests to the appropriate service, FTP
or AFTP, depending upon the user logon. The new ftpsvc2.dll retains all the
original FTP functionality of the previous file as well as adding in the
AFTP proxy capability.
NOTE: If you are using IIS 4.0 and encounter error 0127 when trying to
start the FTP Publishing Service, it will be necessary to obtain hotfix
10250.
Using the FTP-AFTP Proxy Gateway Service
- Go to an MS-DOS command prompt and type the following command:
- To start an FTP-AFTP session on a host, type:
User: <Username>@<SNADestination>
Password: <Password>
The username and password are your host user name and its associated
password.
The SNADestination is a valid AFTP address for an SNA host system. This can
be a CPI-C symbolic destination name defined by the system administrator in
SNA Server Manager, or can be the name of an APPC Remote LU Alias, or the
fully qualified APPC Remote LU Name in the form NetName.LUName.
For example:
User: yourname@appn.as400
This is an example of using the Fully Qualified Remote LU Name.
This is an example of using a CPIC Symbolic Destination Name.
NOTE: A number of commands in the AFTP client are not supported by an FTP
client, for example recfm for controlling the host record format for
uploaded files. These commands can be implemented in FTP through the use of
the quote facility or the Site command, depending on your client. Choose
the method supported by your FTP client.
NOTE: If you use a login account from a trusted domain, you must disable
anonymous logins on the FTP server. For more information, please see the
following Microsoft Knowledge Base article:
123417 Err Msg: 530 User <User Name> Cannot Log In
Configuring an AFTP Client to AFTP Server Connection
When you use Microsoft SNA Server for AFTP access, the SNA AFTP Server must
be configured with either a CPIC Symbolic Destination Name or have the
Local and Remote LU partnered when using the AFTP client. The AFTP client
is a CPI-C application and cannot specify a Local LU alias. Security and
permissions for the AFTP server must also be configured. When the user
issues the open command, he or she can open to the remote LU (either its
alias or the fully qualified remote LU name). By default, the AFTP client
uses the mode #BATCH and the invokable TP name AFTPD. These defaults can be
changed by using the modename and tpname commands.
Configuring a CPIC Symbolic Destination Name for AFTP
- In the SNA Manager, click the Insert menu, point to APPC, and then
click "CPIC Symbolic Name." The Properties dialog box is displayed.
- Click the General tab, in the Name box, type AFTPD, in the Mode Name box
type "#BATCH", and under Conversation Security, click None.
- Click the Partner Information tab.
- Under Application TP, type AFTPD.
- Under Partner LU Name, click Alias and type the Remote LU Alias of
the AS/400.
- Leave all other settings at the default value, and then click OK.
- Save the configuration.
Configuring AFTP Client-AFTP Server Access Security
Before attempting to make the connection, the AFTP client will prompt you
for a user ID and password. This user ID is used by the AFTP server for
file permissions (different users have different permissions), as well as
for APPC conversation security. A user who types the user ID Anonymous is
not prompted for a password. No APPC conversation security is specified on
the ALLOCATE flowing from the AFTP client, and the AFTP server treats this
as "no user ID."
NOTE: For more information on security and AFTP, refer to the online help
documentation or part 5 of the SNA Administration Guide.
The Aftpserv.ini file is used to set user permissions in order to provide
users access to specific directories.
Configuring the Aftpserv.ini File
- Click the Start button, point to Programs, point to Accessories, and
then click Notepad.
- Open Snaroot\System\Aftpserv.ini.
- To control access, you may specify users, directories, and permissions
for AFTP clients. The Aftpserv.ini file is loaded on startup of the AFTP
server and any additions to the permissions will take effect at that
time. Be sure to type the semicolon (;) following the last line.
provide_access
users(userx userx)
directory(directory name)
permissions(such as, read write);
- Save the file and exit Notepad.
- At the AFTP server, start the AFTP Service; either in the Control Panel
Services tool, or at an MS-DOS command prompt, type the following
command:
Installing and Using the AFTP Client Software
- When you install the SNA Client software, select the AFTP Client
check box in the Options List.
- Type aftp from an MS-DOS command prompt. This will initialize the
Microsoft AFTP client.
- From the AFTP prompt, type the following:
- There will be a prompt for a user ID and password. These should match
what is used in the Aftpserv.ini file or whatever security context is
set on the Mainframe or AS/400 for access.
- The connection should now be established and AFTP commands can be
carried out. For a list of valid AFTP commands, consult the SNA online
documentation.
Obtaining and Configuring AFTP on the AS/400
NOTE: The following information can be found on the online documentation
for AFTP, obtained from IBM. Microsoft makes no claims for the accuracy of
this documentation and cannot guarantee or imply reliability,
serviceability, performance, or functionality of the AFTP program running
on the AS/400 or Mainframe systems.
Obtaining AFTP
AFTP was made available for OS/400 V3R1 on June 13, 1995. Because it uses
system APIs new to V3R1, it is not supported on prior releases of OS/400.
AFTP is available for free two ways:
- From the AS/400 FORUM, available via PerformanceEdge. PerformanceEdge
is available to all customers who are under warranty, or who have a
maintenance agreement with IBM. Other customers may purchase
PerformanceEdge.
- AFTP is available internally to all IBMers via the AS4TOOLS disk. The
customer can ask his/her IBM CE or SE to get a copy from AS4TOOLS. The
SE/CE may distribute the copy freely to customers.
AS/400 AFTP Online Documentation
AS/400 APPC File Transfer Protocol
APPC File Transfer Protocol (AFTP) is an advanced program-to-program
Communications (APPC) application protocol that provides file transfer
services to application programs and end-users. With AFTP, you can
copy text and binary files between your computer and any computer
running the AFTP server.
Disclaimer
This material has not been thoroughly tested under all conditions.
IBM, therefore, cannot guarantee or imply reliability, serviceability,
performance or function of these programs. All programs contained
herein are provided to you "AS IS". THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY
DISCLAIMED.
AS/400 AFTP Client and Server Functions
! | client system call |
? | shows help |
ascii | set data transmission to ASCII |
alloc | dynamically set allocation size. On AS/400 this will set the initial number of records in each member of the file. |
binary | set data transmission to binary |
block | set file block size (not available on AS/400) |
bye | exits AFTP |
cd | changes directory(library) |
close | close a session with remote system |
date | sets date used on transfer |
delete | delete a file on server system |
dir | display long directory listing from remote system |
disconnect | see close |
ebcdic | set data transmission to EBCDIC(only for AS/400 server) |
exit | exit from AFTP environment |
get | copy 1 or more file from remote system |
help | shows help |
lcd | changes local working directory(library) |
lpwd | shows local working directory(library) |
ls | display short directory listing from remote system |
lsd | display short directory listing from remote system, subdirectories only (On AS/400 this command will list libraries when invoked from QSYS) |
lrecl | sets file logical record length |
mkdir | create a new directory(library) on server system |
modename | change mode name used for APPC conversation. |
open | open a connection to destination system |
prompt | toggle prompt displayed on get and put |
put | copy one or more file to remote system |
pwd | shows remote working directory(library) |
quit | alias of exit command |
receive | alias of get command |
recfm | set the record format (not available on AS/400) |
rename | move file on server to new name or path |
rmdir | remove directory(library) on server system |
send | alias of put command |
status | display current transfer characteristics |
system | display information about server system |
tpname | dynamically sets the Transaction Program name |
trace | starts AFTP and AFTPD tracing |
type | view current data type |
Specify HELP COMMANDS in the AFTP environment for subcommand
invocation specifics.
AS/400 Server Setup
After restoring the AFTP library on the AS/400 server system, the
following must be done. The AFTP library must be placed in the
User Library List. Update the QUSRLIBL system value. The subsystem
which will handle the AFTPD invocations must be restarted to pick
up the new library list entry. If your subsystem, APPC controller
and APPC device configurations are not already defined, these may
need to be configured. See the OS/400 Communications Configuration
Reference for configuration information.
AS/400 Client Setup
After restoring the AFTP library on the AS/400 Client system, the
following should be done. CPI-C side information should be defined.
Use the CRTCSI command to do this for each destination server. Set
TPNAME on this command to "AFTPD". If your subsystem, APPC controller
and APPC device configurations are not already defined, these may
need to be configured. See the OS/400 Communications Configuration
Reference for configuration information. You also may want to place
the AFTP library in the User Library List.
AS/400 AFTP Invocation
There are three possible ways to invoke AFTP for the AS/400.
The first is to call AFTP using just system destination name.
CALL AFTP system_destination
This will use the CPI-C side information system destination providing
it is configured and found. If not the system_destination will be
used as a remote LU name.
The second is to call AFTP using -f option.
CALL AFTP PARM(system_destination '-f' 'file_name')
This will use a file of AFTP commands which will be input to the
AFTP application. The file_name must be specified using one of the following
formats:
'file(member)' if the member name is different that the file name
'file' if the member name is the same as the file name
NOTE: The user ID and Password must be specified in the file either after
the open command if system destination was not specified on the
AFTP call, or as the first 2 entries in the file if the system
destination was specified on the AFTP call.
The third is to call AFTP using no options.
This will put you in the AFTP environment. You can then specify your
mode name and use the OPEN command to start a conversation to a server
system.
AS/400 AFTP naming convention
The AS/400 uses a library structure, so the naming convention that
AFTP uses is library/file.member. Save files do not have member names
associated with the file.
When listing libraries on the AS/400, the output list will include
all the files and members that are part of the library. The DIR command
will include the files and members.
To list a library that is not the current directory, a slash must be
provided after the library specification. For example, to list the
XXXX library you must specify "ls XXXX/". If the "/" is not specified
AFTP will try to list the XXXX file in the current directory. This rule
applies for multiple PUTS, GETS and DELETES also.
For the PUT, GET, DELETE, and RENAME commands you must specify the complete qualified name. You can use one of the following.
get filename.mbrname
get library/filename.mbrname
For multiple GETS, PUTS, and DELETES, you can use one of the following.
get filename.*
get filename.xxx*
Please note AS/400 AFTP will not recognize any file having a "."
as part of its name. AS/400 AFTP assumes anything after the "." is
part of the member name.
Please note AS/400 AFTP will not recognize any file having a "."
as part of its name. AS/400 AFTP assumes anything after the "." is
part of the member name.
AS/400 AFTP Notes and Limitations
- Server user ID and password must be capitalized.
- The LSD command will only work for the QSYS library. To see all
libraries on the server AS/400, use the LSD command on the QSYS
library.
- AS/400 files will always be overwritten.
- To display a file from a remote system specify "-" as the local system name on the get command ( get file.mbr - ).
- If a file does not exist on the AS/400 previous to transfer, a
physical file(*DATA) will be created with record length of 512
for binary transfers, and 80 for ebcdic and ascii transfers.
- If you would like a physical file to be created with
a different record length, use the lrecl command.
- The alloc command can be used to specify the maximum number of records
in a physical file.
- During the rename of a member, the file name (file.mbr) must be
the same name in the source and target.
- Retrieve previous command (PF9) does not work for AFTP client.
- Server will not delete a DB file with existing members.
- Server will not remove directory (library) with existing files.
- Server may not support anonymous userid.
- A file with greater than 78 record length will not completely
display when using the get file - command invocation.
- Save files must be transferred using the binary data type.
- Logical files may not be transferred using the binary data type.
- Empty DDM file members will not be transferred.
- date function will not be use when adding members to the AS/400. The NEW date will always be used.
- ebcdic should only be used between AS/400 systems.
- AS/400 does not support bell, recfm, and block commands.
- AS/400 has no ANAME support.
AS/400 AFTP Programs and Library Files
AFTP | AFTP client program |
AFTPD | AFTP server program |
AFTPAPI | AFTP service program |
AFTPMSGF.AFTPMSGF | AFTP message file. Holds all messages for AFTP client and server. |
AFTPINI.AFTPINI | AFTP initialization file. Holds all mapping information for AFTP client and server. See file for mapping definition and examples. |
QTXTSRC.AFTP | AFTP documentation |
AFTPERR.AFTPERR | AFTP error log. Updated when an error occurs for AFTP client and server. |
AFTPTRC.AFTPTRC | AFTP trace file; created when trace is turned on. |
AFTPACT.AFTPACT | AFTP audit file. Update when rmdir, mkdir, delete, rename, get, and put commands are serviced by AFTP server. |
AFTPERR, AFTPTRC, and AFTPACT will be created by the AFTP or AFTPD programs
and will be created under the profile that is running the program. These
files are not updated for users that do not have write permission
to the files.