Binyamin, thanks a lot!!

One book on my hand has a chapter about channel programming and i'll take a
look at it to get more hints.

On 5/4/07, Binyamin Dissen <[EMAIL PROTECTED]> wrote:

On Fri, 4 May 2007 22:11:08 +0800 Johnny Luo <[EMAIL PROTECTED]
>
wrote:

:>The first is what actually determines the physical blocksize? You told
me
:>BLKSIZE parm is a maxmimum value for QSAM. So I guess if I write 105
records
:>to a data set with BLKSIZE=20, I'll get five 20-byte physical blocks and
one
:>5-byte block(if no padding occurred.)  Right?

For QSAM, the physical blocksize at PUT is based on the DCB value, except
that
blocks are not padded - if all the records fit within less than the
blocksize
a short block will be written.

GET expects a physical block to contain up to the blocksize value and will
report an error (via S001 or SYNAD) if the physical block is larger.

:>The second is concerning the minimal physical unit a program can process
on
:>zos. I know acess method macros like QSAM are still at the high level.
From
:>what you told me, I guess the minimal unit QSAM can process is one
physical
:>block. It cannot read, say, half physical block. And that's why my
program
:>abends: the buffer size cannot hold a physical block.

None of the high level access methods support reading a partial block. It
will
always request some number of blocks from the IO system. Your program can
choose to recover from the error.


--
Best Regards,
Johnny Luo

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to