× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.




On 03/01/2010, at 5:33 AM, Mike Amos wrote:

My name is Mike Amos and, several years ago, I was reasonably proficient
at MI programming. The past several years, with C/400 and then ILE- C, I
have had no need to use anything other than the provided APIs and MI
calls supported directly via ILE-C. Today, however, I need to speed up
read/write - esp. reads - for record IO. I know that the IBM FTP program
does reads much faster than the provided record IO interfaces because
FTP reads and sends my 300MB test file twice as fast as I can read it. I
have tried every reasonable combination of _Rreadx, read() and fread()
that I can think of using both native and IFS interfaces and compiler
options.

I have a few questions:

1. Has anyone found that MI calls to the IO functions, QSYS/QGETDBx,
etc. can be safely done using in user state at security level 50?

The programs are system-state, user-domain so they can be called from user-state programs. However, as far as I know the interfaces to these programs are not publicly documented. They may be part of the Limited Availability API suite in which case you'll need to ask IBM for access to the documentation.

2. Does anyone have any experience regarding faster record IO methods
such as use of RPG, MI or any ideas?

See my responses in the C400-L list.

3. Accessing the system table to make the calls is not a problem for me,
but I have not been able to find documentation for the IO control
block/file control block/other control block definitions needed to set
up the IO.

You can glean information about the UFCB, the program interface, etc. from the IRP listing of an OPM program that performs I/O. Not ideal but often useful however I think in general that it is not necessary to bypass HLL I/O to increase I/O speed. It is simply a matter of processing the data correctly using appropriate blocking and I/O operations.

I note that your comments on C400-L indicate you are opening the file for update in which case you will never match the speed of FTP which is using only read for input and write for output, both if which can be maximally blocked for fastest access.

Regards,
Simon Coulter.
--------------------------------------------------------------------
FlyByNight Software OS/400, i5/OS Technical Specialists

http://www.flybynight.com.au/
Phone: +61 2 6657 8251 Mobile: +61 0411 091 400 /"\
Fax: +61 2 6657 8251 \ /
X
ASCII Ribbon campaign against HTML E-Mail / \
--------------------------------------------------------------------




As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2022 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.