|
-|I would rather not use an OVRDBF to set the block size. Isn't there -|a way of setting that in the UFCB at open-time, maybe one of the -|options in the variable part? Yes. See x'D0' under the UFCB. Okay, I found my data areas manual and I found the UFCB definition and the other DMC information. You do realize that this isn't exactly current information? Is there something better in QSYSINC? Not to do anything with (just yet) but food for thought. Here is some stuff: UFCB: offset x'00' - SPP to an ODP, set by QDMCOPEN offset x'10' - SPP if blocked record IO is set ON it will point to a BPCA (buffer processing communications area) and is set by the QDBOPEN. If blocked record IO is set OFF this pointer will point to the input buffer. offset x'20' - SPP if blocked record IO is set ON, this will point to the output BPCA. If blocked record IO is set to OFF, this will point to the output buffer. Set by QDBOPEN. offset x'30' - SPP pointer to the open feedback area. offset x'40' - SPP pointer to the IO feedback area. offset x'B8' - flags2. Bit 2 is the blocked record indicator. offset x'D0' - you can specify transfer unit (49), blocked record transfer (78), fast sequential (58), and arrival sequence only (60) on the UFCB. I don't quite see the place to specify the number of records but it is probably a parm on one of these tags. BPCA: offset x'00' - SPP to current record offset x'10' - bin(2) input record count, number of records still available in the block including the current one. offset x'12' - bin(2) max number of records transferred on a blocked get or put offset x'14' - bin(2) record length increment offset x'16' - bin(2) feedback offset. offset from the start of the IO feedback area for that record. Valid only for database input sequential operations. Control list: do you have the stuff you need here? Data management communication queue: you didn't want to use an override ... IO options list: do you have the stuff you need here? This is where you specify "get direct unblock wait". UFCB parameter formats: I think you will need to specify some of these. Like the database transfer unit size perhaps? I just went back and read my "red book" - a poorly-bound version of the original MI PRPQ document. It explains how to do record IO in MI. The last time I used MI to do blocked record database IO was in 1984 so this should be fun! By the way, it is probably possible to make database read directly into your user space. That might save you the work of copying the records from the VMC buffer to your user space. I am pretty sure that I can do something like this with C. Richard Jackson mailto:richardjackson@richardjackson.net http://www.richardjacksonltd.com Voice: 1 (303) 808-8058 Fax: 1 (303) 663-4325 -|-----Original Message----- -|From: owner-mi400@midrange.com [mailto:owner-mi400@midrange.com]On -|Behalf Of Leif Svalgaard -|Sent: Saturday, October 07, 2000 5:38 PM -|To: MI400@midrange.com -|Subject: Re: buffering -| -| -|I would rather not use an OVRDBF to set the block size. Isn't there -|a way of setting that in the UFCB at open-time, maybe one of the -|options in the variable part? -| -|Your idea of copying the whole lot in one go looks good; will try -|that, once I can get it to read 128k in one go. -| -|----- Original Message ----- -|From: Richard Jackson <richardjackson@richardjackson.net> -|To: <MI400@midrange.com> -|Sent: Saturday, October 07, 2000 6:01 PM -|Subject: RE: buffering -| -| -|> I think that you could get it fast more quickly in C but there -|aren't any -|> facilities in C that you can't use in MI. I always found that -|writing IO -|in -|> MI to be a pain. However, I have a suggestion for you: -|> -|> When you execute the IO that pulls in the 128k block from the file, take -|the -|> address of the beginning of the block from the IO feedback area and just -|> copy the whole thing directly into the user space - in other -|words, don't -|> bother to read anything into a buffer, just copy it directly -|from the VMC -|> buffer. Is there something that will copy more than 32k at a -|time or are -|> you stuck with CPYBLA? If not, you have to make four operations. -|> -|> Richard Jackson -|> mailto:richardjackson@richardjackson.net -|> http://www.richardjacksonltd.com -|> Voice: 1 (303) 808-8058 -|> Fax: 1 (303) 663-4325 -|> -|> -|-----Original Message----- -|> -|From: owner-mi400@midrange.com [mailto:owner-mi400@midrange.com]On -|> -|Behalf Of Leif Svalgaard -|> -|Sent: Saturday, October 07, 2000 2:52 PM -|> -|To: MI400@midrange.com -|> -|Subject: Re: buffering -|> -| -|> -| -|> -|Thanks, Richard. -|> -|As always you come through with good stuff. -|> -| -|> -|Language: why, MI, of course. :-) -|> -| -|> -|> -|> -|> Are you using Dick's new sort APIs? -|> -| -|> -|No, a search for "Dick's new sort API" on IBM's sites -|> -|did not turn up anything. -|> -| -|> -| -|> -| -|> -| -|> -|+--- -|> -|| This is the MI Programmers Mailing List! -|> -|| To submit a new message, send your mail to MI400@midrange.com. -|> -|| To subscribe to this list send email to MI400-SUB@midrange.com. -|> -|| To unsubscribe from this list send email to -|MI400-UNSUB@midrange.com. -|> -|| Questions should be directed to the list owner/operator: -|> -|dr2@cssas400.com -|> -|+--- -|> -|> +--- -|> | This is the MI Programmers Mailing List! -|> | To submit a new message, send your mail to MI400@midrange.com. -|> | To subscribe to this list send email to MI400-SUB@midrange.com. -|> | To unsubscribe from this list send email to MI400-UNSUB@midrange.com. -|> | Questions should be directed to the list owner/operator: -|dr2@cssas400.com -|> +--- -| -|+--- -|| This is the MI Programmers Mailing List! -|| To submit a new message, send your mail to MI400@midrange.com. -|| To subscribe to this list send email to MI400-SUB@midrange.com. -|| To unsubscribe from this list send email to MI400-UNSUB@midrange.com. -|| Questions should be directed to the list owner/operator: -|dr2@cssas400.com -|+--- +--- | This is the MI Programmers Mailing List! | To submit a new message, send your mail to MI400@midrange.com. | To subscribe to this list send email to MI400-SUB@midrange.com. | To unsubscribe from this list send email to MI400-UNSUB@midrange.com. | Questions should be directed to the list owner/operator: dr2@cssas400.com +---
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.