If youre using GETPOOL/GETBUF then youre not doing QSAM. GETBUF is for BSAM. You would be OPENING the file then using READ macros to read in your records.
If youre doing QSAM, then you just issue the OPEN followed by a GET. There is no READ. The system takes care of the READs and buffers. Joe On Sun, Mar 21, 2021 at 3:55 PM Joseph Reichman <[email protected]> wrote: > Joe > > Just to make sure I am understanding correctly I use GETPOOL/GETBUFF with > QSAM it will use Asynchronous/overlapped i/o right ? > > -----Original Message----- > From: IBM Mainframe Discussion List <[email protected]> On Behalf > Of Joe Monk > Sent: Sunday, March 21, 2021 1:24 PM > To: [email protected] > Subject: Re: Overlapped I/O completion > > "The queued access technique provides GET and PUT macro instructions for > transmitting data within virtual storage. These macro instructions cause > automatic blocking and deblocking of the records stored and retrieved. > Anticipatory (look-ahead) buffering and synchronization (overlap) of input > and output operations with central processing unit (CPU) processing are > automatic features of the queued access technique. > > Because the operating system controls buffer processing, you can use as > many input/output (I/O) buffers as needed without reissuing GET or PUT > macro instructions to fill or empty buffers. Usually, more than one input > block is in storage at any given time, so I/O operations do not delay > record processing. > > Because the operating system synchronizes input/output with processing, > you need not test for completion, errors, or exceptional conditions. After > a GET or PUT macro instruction is issued, control is not returned to your > program until an input area is filled or an output area is available. Exits > to error analysis (SYNAD) and end-oC-volume or end-of-data (EODAD) routines > are automatically taken when necessary. > > The GET macro instruction obtains a record from an input data set. It > operates in a logical sequential and device-independent manner. As > required, the GET macro instruction schedules the filling of input buffers, > deblocks records, and directs input error recovery procedures. For > sequential data sets, it also merges record segments into logical records. > After all records have been processed and the GET macro instruction > detects an end-of-data indication, the system automatically checks labels > on sequenti'1l data sets and passes control to your end-of-data (EODAD) > routine. If an end-of-volume condition is detected for a sequential data > set, the system provides automatic volume switching if the data set extends > across several volumes or if concatenated da~a sets are being processed. If > you specify OPTCD=Q in the DCB, GET causes input data to be translated from > ASCII to EBCDIC." > > http://www.bitsavers.org/pdf/ibm/370/OS_VS2/Release_3.8_1978/GC26-3875-0_OS_VS2_MVS_Data_Management_Services_Guide_Rel_3.8_Jun79.pdf > > Joe > > On Sun, Mar 21, 2021 at 12:16 PM Seymour J Metz <[email protected]> wrote: > > > > When I do a qsam get the physical I/O is for 1 block every get just > > > ups > > a pointer > > > > No. When you do a GET, QSAM not only returns a logical record, it also > > does whatever housekeeping is necessary. That includes scheduling the > > I/O for subsequent blocks if necessary. Further, the number of CCWs is > > not the same as the number of physical blocks. Further, the channel > > program may include CCWs for multiple physical blocks. The scheduling > > for QSAM is the same as the scheduling for BSAM. The advantage of QSAM > > is that it requires less programming, at the expense of not supporting > > FIND, NOTE, POINT or STOW. > > > > > > -- > > Shmuel (Seymour J.) Metz > > http://mason.gmu.edu/~smetz3 > > > > ________________________________________ > > From: IBM Mainframe Discussion List [[email protected]] on > > behalf of Joseph Reichman [[email protected]] > > Sent: Sunday, March 21, 2021 10:21 AM > > To: [email protected] > > Subject: Re: Overlapped I/O completion > > > > I don’t understand what the statement “QSAM does overlapped I/O > > automatically” > > > > When I do a qsam get the physical I/O is for 1 block every get just > > ups a pointer > > > > BSAM allows me to do multiple Reads each with their own DECB > > > > So I already initiate lots of physical I/O mainly because I have lots > > of records or blocks > > > > I find it hard to believe that a qsam get does anything more than read > > 1 block > > ---------------------------------------------------------------------- > > For IBM-MAIN subscribe / signoff / archive access instructions, send > > email to [email protected] with the message: INFO IBM-MAIN > > > > ---------------------------------------------------------------------- > For IBM-MAIN subscribe / signoff / archive access instructions, send email > to [email protected] with the message: INFO IBM-MAIN > > ---------------------------------------------------------------------- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to [email protected] with the message: INFO IBM-MAIN > ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN
