× 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.



Comment inline

At 11:43 AM 11/29/2004, you wrote:
A couple of notes that I think were not covered..

1) *CALC works well when you have similar jobs, using the same sets of
database files, and you have lots of memory in the pool. You have to keep
memory in the pool using the WRKSHRPOOL minimums, because the autotuner
basically cannot see the effect of the extra memory in use by *CALC and will
remove it without regard to *CALC.
When you are not using the same set of database files, *CALC will have
little effect - it is all about keeping records in memory (caching). When
you have a small amount of memory, *CALC will appear to have little effect.

Right - this goes along with your next point about like jobs. And it is important to have the same kind of file access for an extended time to take advantage of this. *CALC (turning on Expert Cache) is primarily a paging option, as shown on the WRKSYSSTS screen, etc. I.e., it has to do with the reading from and writing to disk. The pattern of file access is posted by the DB processor. Random access will use smaller blocks for each I/O request, totally sequential will use larger transfer block sizes. But sequential access also implies using more memory - random allows exchange brings, or using the same memory for subsequent reads.


You can use the MATRMD function to see this stuff, option x'14'. Here is a little C code that will get the information into a variable - run it in debug and set a breakpoint on the "return;" statement. When it stops, put

eval *RMD_template:x 6688

on the command line there. This is the full size of the variable - for 64 pools - you can use less, 104 for each pool plus 32 for some header info. There are no RPG copy members for this function. Look under MI functions under APIs under Programming in the V5R3 InfoCenter to get details on this.

To compile, you need C installed. Then paste this into a source member type C and put a 14 on it. Use DBGVIEW(*ALL).

========================================
#include <stdlib.h>
#include <matrmd.mih>

int main(int argc, char * argv[])
{
   _MATRMD_Template_T *RMD_template;
   char control[8];

   control[0] = _MATRMD_STORAGE_POOL_TUNE;
   RMD_template = (_MATRMD_Template_T *)malloc(6688);
   RMD_template->Template_Size = 6688;

   matrmd(RMD_template, control);

   free(RMD_template);

   return;
}
=========================================

You could run this in CL, too. Make a character variable 6688 long. The control variable is 8 long, hex 14 in position 1, x 00 in the rest. In debug, be sure to use the ":x" after the variable to see it in hex.

Enough fun yet?   ;-)

Vern

-snip-


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-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.