limits on called program's variable and/or array space?
Richard Kreiss
rkreiss at gccconsulting.net
Tue Jul 3 08:31:05 PDT 2018
For the PFFORMTOKSIZE-nnnnn - default is 15,000 bytes
PFTOKSIZE = nnnnn - default is 20,000 bytes
PFAUTOTOKSIZE - nnnnn - default is 15,00 bytes
Referring to filePro Developers reference fourth edition
It appears that the maximum value would be 99999. I have used values higher than this, for debugging purposes, but don’t know how effective in adding additional memory space these high values were. I tended to increase the values by 25,000 until I reached a value that didn't give me an error.
It may be useful to have a blank call table. This might release memory being used by the original called table which stays in memory until the next call is made.
Call "foobar"; Call "Blank"
Richard Kreiss
GCC Consulting
, I'm not sure if there that these can be
> set to. I have used values of 900,000 frequently.
>
> On 7/3/18 8:34 AM, Richard Veith via Filepro-list wrote:
> > Thanks to those who replied. Before responding to some of the individual
> questions, there is a little more I could add to the story. First, it takes about 6
> hrs of processing before the abort, so testing various things takes time. If we
> use smaller sets of data, it does not abort. And second, there is also a Sort
> involved for the calling program, maintained in the program's "out" file. It is a 3-
> field sort with a total of 41 chars per record, for all 22 million records.
> >
> > Here are some of the questions from the people who responded:
> >
> >> it would help to know if you get an error of sort and/or if
> >> anything is logged in event logs
> > When the abort happens, Windows puts up a message "dreport.exe has
> stopped working". And the FilePro screen behind it shows the number of records
> selected, and the number for "generating output". The latter number is never
> the same but always seems to be within 20,000 or 30,000 of the previous abort
> points (and sometimes a smaller gap of just 5 or 6 records). If there is some
> "event log" we can look at (either Windows or FilePro), please point us in the
> right direction.
> >
> >> Have you tried a much higher PFFORMTOKSIZE and PFTOKSIZE?
> > How high can we go?
> >
> >> Are you using an auto table?
> > No.
> >
> >> Have you considered adding this as a sub routine rather the a called program?
> > Yes, but there are one or two other points in our entire procedure where the
> called program's functionality is needed, and the intent was to use the same
> called program in the various places. Also wanted to keep the variables
> separate between the calling program and the called program.
> >
> >> If you are updating records and in these updates an index key is changed,
> make sure you are locking your lookups.
> > This is a standalone PC doing only one thing at a time, and nobody else is doing
> any updating. Both the calling program and the called program do update
> records but nothing that would change an index. And the two indexes involved
> are demand indexes.
> >
> >> Have you tried running the process using both dreport and rreport?
> > Have not tried rreport. Anything in particular to look for?
> >
> > I will let you all know how this gets resolved, but as I said, it takes 6 hours or
> so before hitting the abort, so it is a slow testing process. And I will be away for
> the 4th and the rest of the week.
> >
> > Thanks again for any insights.
> > Rich
> >
> > -----Original Message-----
> > From: Richard Kreiss [mailto:rkreiss at verizon.net]
> > Sent: Monday, July 02, 2018 6:43 PM
> > To: Richard Veith <richard.veith at smrresearch.com>
> > Subject: Re: limits on called program's variable and/or array space?
> >
> > Have you considered adding this as a sub routine rather the a called program?
> >
> > Richard
> > Sent from my iPhone
> >
> >> On Jul 2, 2018, at 5:58 PM, Richard Veith via Filepro-list <filepro-
> list at lists.celestial.com> wrote:
> >>
> >> We have a database of about 20 million records, where each record is just
> over 2200 characters. As part of our processing, we run an output process table
> on the entire database, and this process calls another output process table. The
> calling process is about 1500 lines, and the called process is about 300 lines.
> >>
> >> Up until a recent change, this all worked fine. The change was to add a
> subroutine to the called process, and this subroutine included a few more
> variables (declared with sizes, as were the previous variables) as well as two
> arrays. One of the arrays is 700 elements consisting of 4 digit integers, and the
> other array is 700 elements consisting of 20 character strings. The arrays are
> not mapped to any existing fields.
> >>
> >> The puzzling thing is that if the called program, with the new subroutine, is
> run by itself as a standalone program against the entire database, it works fine.
> But when being called from within the calling program, it aborts about 85% of
> the way through the database.
> >>
> >> Since the calling program/called program arrangement worked fine before
> the new subroutine was added, and the called program works fine on its own,
> our suspicion is that there is some limit on the memory allocated for called
> program variables and arrays, and we exceeded that. Or those arrays are not
> being treated as dummy variables and instead, as each record is processed, a
> new version of each array is created and all prior ones are still hanging around.
> >>
> >> Do you think it is a memory issue? Is there a way to specify more memory for
> the called program (we have PFFORMTOKSIZE set to 200000 on the assumption
> it might be relevant since the documentation for CALL says "the called
> processing table uses the token area reserved for printing a form from Inquire,
> Update, Add")? Is there a way to remove the arrays as processing finishes one
> record and moves to the next record? (We are using "clear" on the arrays but
> that probably does not change the space already allocated.) Are there other
> things we should be looking at?
> >>
> >> Our environment is FilePro 5.7.00D9 on a standalone Windows 7 PC with a
> 64-bit OS and 16 GB of RAM.
> >>
> >> Thanks for any suggestions.
> >>
> >> Rich
> >>
> >> -------------- next part -------------- An HTML attachment was
> >> scrubbed...
> >> URL:
> >> <http://mailman.celestial.com/pipermail/filepro-list/attachments/2018
> >> 0
> >> 702/d7549a78/attachment.html>
> >> _______________________________________________
> >> Filepro-list mailing list
> >> Filepro-list at lists.celestial.com
> >> Subscribe/Unsubscribe/Subscription Changes
> >> http://mailman.celestial.com/mailman/listinfo/filepro-list
> > _______________________________________________
> > Filepro-list mailing list
> > Filepro-list at lists.celestial.com
> > Subscribe/Unsubscribe/Subscription Changes
> > http://mailman.celestial.com/mailman/listinfo/filepro-list
> >
>
>
>
> ---
> This email has been checked for viruses by Avast antivirus software.
> https://www.avast.com/antivirus
>
> _______________________________________________
> Filepro-list mailing list
> Filepro-list at lists.celestial.com
> Subscribe/Unsubscribe/Subscription Changes
> http://mailman.celestial.com/mailman/listinfo/filepro-list
-------------- next part --------------
A non-text attachment was scrubbed...
Name: winmail.dat
Type: application/ms-tnef
Size: 16552 bytes
Desc: not available
URL: <http://mailman.celestial.com/pipermail/filepro-list/attachments/20180703/155a1523/attachment.bin>
More information about the Filepro-list
mailing list