Overview#IBM started to distribute the IND$FILE program in 1983 to allow the transfer of files between an IBM PC running the 3270 PC (or PC/3270) emulator and a VSE, MVS or VM/CMS host. IND$FILE originally worked only with the SEND and RECEIVE commands of the 3270 PC emulator. Nowadays, all 3270 emulators on PCs and work-stations support file transfer with IND$FILE. In the UK, where the monetary symbol is ï¿½ instead of $, IND$FILE is known as INDï¿½FILE.
On all three platforms, the listed products only contain the IND$FILE program itself. In VSE, IND$FILE is a CICS transaction called IND$. GC23-0128 is the flyer that ships with 5665-311 (IND$FILE for MVS/TSO). GC23-0129 is the flyer that ships with 5664-281 (IND$FILE for VM/CMS).
IND$FILE has not been enhanced for years but is still supported on all three platforms by IBM in 2007 and used by thousands of users world-wide. News of IND$FILE's death have been greatly exaggerated and generally originate with vendors trying to sell an alternative.
Commands and Options#The following is based on 5665-311 which is a TSO command. 5664-281 (the VM/CMS version) is similar, but its options must be preceded by a ( character (left parenthesis). 5798-DQH (the VSE version) is based on CICS and may use a different syntax.
- Command - GET or PUT. GET indicates a download (RECEIVE) from the host to the PC, PUT an upload (SEND) from the PC to the host.
- Host file name
- ASCII - specifies that the file stored on the PC in ASCII form is to be converted to EBCDIC during transfer to the host, and converted from EBCDIC to ASCII during transfer to the PC (needed for all non-binary file transfers).
- CRLF - specifies that carriage return/line feed should be recognized and deleted before file is stored on the host, and deletes trailing spaces and inserts carriage return/line feed characters as the last two characters in a line when a file is stored on the PC.
- APPEND - allows you to append a PC file to the end of an OS data set, or an OS data set to the end of a PC file. The following options pertain only to the SEND command.
- BLKSIZE(n) - specifies the block size of the MVS mainframe data set, where n is the length of a data block in bytes. If omitted, the default is LRECL for new files.
- LRECL(n) - specifies the logical record length of the host data set, where n is the length of a logical data record in bytes. If LRECL is omitted, the default is 80 bytes for new files.
- RECFM(n) - specifies the record format for the data set. n is either F for fixed-length records, V for variable-length records, or U for undefined-length records.
Executing the IND$FILE or IND$FILE ? command under TSO on z/OS 1.2 produces the following display:
IBM File Transfer Program: Version 1.1.1 PTF: UR43604 Date: 05/09/95 Size: 50C8 BytesSimilar display on VM/CMS:
IBM File Transfer Program: Version 1.1.1 VM PTF: UR07750 Date: 11/04/92 Size: lrecl (20032) x 4 FILENAME FILETYPE FM FORMAT LRECL RECS BLOCKS DATE TIME IND$FILE MODULE Y2 V 20032 4 6 11/04/92 23:56:04
File Transfer Protocol#As far as we know, the IND$FILE transfer protocol is not formally documented outside IBM and developers of 3270 emulators have to reverse-engineer it in order to implement an IND$FILE-compatible file transfer capability in their products. There are two forms of IND$FILE: DFT mode (which uses the structured fields) and CUT mode which uses 3270 Write commands. The DFT mode is not too difficult to reverse engineer given that it has been documented in the PC3270 User's Guide. CUT mode on the other hand is much more obscure.
These two terms have come to be known as "Buffered" (CUT mode) and "WSF" for DFT. Buffered is strictly screen buffers passed and interpreted at each end. The amount of data that can move in a single flow is limited to the screen size (1920 bytes for a Model 2). WSF or Write Structured Fields can move larger amounts of data much quicker - it can be "tuned" for data flows from 2K bytes to 32K bytes (but much depends on your network).
Information on the file transfer protocol used by IND$FILE may be found in the following documents:
- 3270 PC User's Guide - Appendix C - File Transfer Data Streams.
- CICS/PC FTP PDOM REL1.1 (SH20-6301) and CICS-PC File Transfer Program (SH20-6306).
- PC/3270 Reference Guide for Full-Function DOS - S20H-1776.
- VSE/ESA Programming and Workstation Guide, SC33-6609.
- ZZ20-5568 "Distributed and Office Systems Support Technical Bulletin" "Host to File Transfer", by A.R. Towers. IBM "Internal Use Only" document.
- 5735-OZS - INFO/MVS - DBLVL: DEC85 28 - Entries G055110-115 may contain text from ZZ20-5568.
- 3270 Information System Data Stream Programmer's Reference, GA23-0059.
- The x3270 Web site provides the C source code for the x3270 emulator which includes an IND$FILE-compatible file transfer capability.
- GC21-9527, SC21-9529 and SC21-9526 manuals.
- OS/2 EE 1.3 networking manual.
- IND$FILE by Mike Rayborn in file 607 of the CBT tape.
- Setting of the Query bit in the VTAM LOGMODE (PSERVIC) and/or the 3270 emulator options may affect the ability of the emulator to use WSF (Write Structured Field) commands and impact the availability or speed of file transfer.
- The VM version of IND$FILE uses DIAG 58 to send a 3270 data stream with an "unusual" SDA which the other end recognizes as file transfer data.
Alternatives to IND$FILE#
Besides IND$FILE, there are other solutions to transfer files between a PC and a VSE, MVS or VM host. Here is a list of some of the alternatives:
- ISPF C/S (MVS Only)
- INWMUTIL/HTF (VSE only)
- Vendor products
- IND$FILE Plus (SDS)
- SSR Client/Server, nï¿½e Super IND$FILE (ASI)
Working with the ZOS BIDIRECTIONAL DRIVER#We have found this useful when working with the ZOS BIDIRECTIONAL DRIVER on z/OS platforms.
IND$FILE is a file transfer program from IBM that was first released in 1983 to allow the transfer of files between an IBM PC running the IBM 3270 emulator (PC/3270) and a VSE, MVS or VM/CMS mainframe. IND$FILE originally worked only with the SEND and RECEIVE commands of the 3270 PC emulator, but today most terminal emulators supporting a 3270 mode included it, like Vista TN3270
You may be able to use FTP to access the RACF host. Yup good news, but then there is the EBDIC issue. The files will be unreadable in typical Windows or Linux/UNIX viewers/Editors. You will need to convert the EBDIC files to ASCII. We use UltraEdit which will do the conversion, but I am sure there are many other ways to perform this function.
The ZOS remote loader files on the z/OS platform have slightly different names. The files in the directory are when we looked (IDM 3.61 RACF Driver 3.51) were:
# ls -l total 672 -rwxr-xr-x 1 SYSLOGD DEPT35 567 Oct 8 13:29 START -rwxr-xr-x 1 SYSLOGD DEPT35 1377 Oct 12 12:33 STOP -rwxr-xr-x 1 SYSLOGD DEPT35 1377 Oct 8 13:29 STOP.orig -rwxr-xr-x 1 SYSLOGD DEPT35 956 Apr 30 2008 create_keystore -rw-r--r-- 1 LDXDRVRP DEPT35 138901 Dec 1 09:06 dirxml.log -rwxr-xr-x 1 SYSLOGD DEPT35 1328 Oct 8 13:15 dirxml_jremote -rwxr-xr-x 1 SYSLOGD DEPT35 1458 Jul 26 2007 dirxml_jremote.orig drwxr-xr-x 2 SYSLOGD DEPT35 320 Jul 26 2007 doc -rw-r--r-- 1 SYSLOGD DEPT35 279 Oct 8 13:20 dpwd1f40 -rw-r--r-- 1 SYSLOGD DEPT35 279 Oct 8 13:44 dpwdfb4a -rw-r--r-- 1 SYSLOGD DEPT35 81 Oct 8 13:28 driverstc.stdenv -rwxrwxrwx 1 LDXDRVRP DEPT35 62 Oct 12 12:30 driverstc.stderr -rwxrwxrwx 1 LDXDRVRP DEPT35 3699 Dec 1 12:32 driverstc.stdout drwxr-xr-x 2 SYSLOGD DEPT35 576 Mar 6 2009 lib -rw-r--r-- 1 SYSLOGD DEPT35 20 Oct 8 13:20 lpwd1f40 -rw-r--r-- 1 SYSLOGD DEPT35 20 Oct 8 13:44 lpwdfb4a -rw-r--r-- 1 SYSLOGD DEPT35 154 Oct 8 13:19 zos_config.txt -rw-r--r-- 1 SYSLOGD DEPT35 152 Jul 26 2007 zos_config.txt.orig -rw-r--r-- 1 LDXDRVRP DEPT35 159642 Dec 1 09:06 zos_trace.log
More Information#There might be more information for this subject on one of the following:
[#1] - Loosely derived from: gsf-soft.com retrieved 04-Dec-2009 23:48