|
Thanks. You hit the nail on the had, as I mentioned to Carel. Turns out I was opening and closing the file every time.
Yeah, sorry... I read your message to Carel only after I had already replied.
only suspected activation groups because they are the bit I understand least, and which as I mentioned, my reading to date has left me a bit confused, but I will dig in and try some more. Hence the question mark in the subject line. Perhaps a more overt subject line would have been "could this possibly be an activation group issue?"
Actually, as luck would have it I'm writing an article about activation groups as we speak.
I understood that you weren't sure if it was an activation group issue or not, but in the body of your message you were talking about giving up service programs, and you didn't seem to be considering any other possibilities.
I guess I was wondering how you jumped to the conclusion that the actgrp was the problem in the first place, it didn't make sense to me to even suspect it. Sorry if I pushed that a little too far.
The subproc just does a chain using the imput parms to fetch a value, and if it doesn't find it in file1, it goes to another file to fetch the default value. The info is just appended demographic type info for our customer file, like employee size or whether it's a female owned business, or whether they can accept HTML emails, or whether they allow us to rent their address to business partners, etc. It's a vertical file appended to the customer file in our third party order/entry package, so we can add new "fields" by making up a new code to identify the new information.
That's probably a big part of the performance problem, as well. Now you have to do a non-sequential database look up for every single field of every single customer. Vertical files may be flexible, but they're awful for performance.
In this case, I really doubt that passing a DS would help much if you still have to do 6 different CHAIN operations. The disk operations will be your biggest bottleneck.
( If you change the file to be, uhh, less vertical, then passing a data structure might help performance at the expense of flexibility. )
Is the file small enough that you could load all of the fields into an array or even a dynamic memory allocation, and perform your lookups in that? I suspect that this would improve performance without you needing to change the service program's interface.
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.