Joined: 28 Aug 2007 Posts: 1742 Location: Tirupur, India
Hi,
I was performing FTP of a IDCAMS DCOLLECT file from one LPAR to another LPAR. But the number of records on o/p was more than i/p records.
Both i/p and o/p file had the below attributes.
Code:
Device type . . . . : 3390
Organization . . . : PS
Record format . . . : VB
Record length . . . : 644
Block size . . . . : 27998
Used the below FTP cards to transfer the file,
Code:
//STEP1 EXEC PGM=FTP,REGION=2M,PARM='(EXIT TIMEOUT 900'
//SYSFTPD DD DISP=SHR,DSN=SOME DATASET
//SYSTCPD DD DISP=SHR,DSN=ANOTHER DATASET
//SYSPRINT DD SYSOUT=*
//OUTPUT DD SYSOUT=*,DCB=(RECFM=FB,LRECL=644,BLKSIZE=27998)
//INPUT DD *
DEST IP ADDRESS
FTP USERNAME
FTP PASSWORD
TYPE E
MODE S
SITE RDW
SITE CONDDISP=DELETE
SITE CYLS PRIMARY=100 SECONDARY=25
STATUS
PUT 'SOURCE DCOLLECT FILE' +
'DESTINATION DATASET'
QUIT
/*
FTP job gave RC of 0. But the number of records on o/p file was 550. (i/p records were 510).
Strangely was able to note that some of the records were spanning over two lines. Dont know why?
Changed MODE parameter from 'S' to 'B' (streaming - > blocked) and wahla the i/p and o/p rec count was same.
Can you please explain why MODE S causes some records to be spanned across two lines, whereas MODE B sends the records properly.
A sample DCOLLECT record that spanned over 2 lines is shown below in HEX ON mode,
Joined: 06 Jun 2008 Posts: 8696 Location: Dubuque, Iowa, USA
From the Communications Server User's Guide manual:
Quote:
Parameters
B
Sets the block mode. In block mode, data is transmitted as a series of data blocks, preceded by one or more header bytes. Block mode preserves the logical record boundaries of the data set or file. When MOde is set to B, the data transfer type must be EBCDIC.
Specifying MOde B is equivalent to specifying the BLock subcommand.
C
Sets the compressed mode. In compressed mode, data is transmitted as a series of data blocks, preceded by one or more header bytes. Compressed mode preserves the logical record boundaries of the data set or file. In compressed mode, data is transmitted without repetitive characters and blanks. When MOde is set to C, the data transfer type must be EBCDIC.
Note: Because additional processing time is required for both the sender and receiver to compress or decompress the data, evaluate the time factor before you compress a file.
Specifying MOde C is equivalent to specifying the COMpress subcommand.
S
Sets the stream mode. In stream mode, data is transmitted as a stream of bytes. Any data transfer type can be used with stream mode. Stream mode is efficient because data block information is not transferred.
Specifying MOde S is equivalent to specifying the STREam subcommand.
Notice stream mode does not say anything about preserving logical record boundaries, and it explicitly does not preserve blocking of the data.