|
Scott, Yeah, sometimes these vertical files do seem to be a blessing and a curse. And I've actually simplified things a little for the sake of discussion. We actually have two different vertical files here, fetching a dozen values from each of them. Since we are a Business to Business shop, our customers are businesses, and each business may have several individuals who place orders with us, as well as several ship to locations, so the main program is actually populating three output files; the Customer (business) file, the individual file, and the ship to location file. There is a vertical file built into our third party O/E application for the Customers, and we've built our own to append some information at the individual level. Anyhow, there are a million three hundred thousand or so customers, and I think we average one and a half to two individuals per location, so there's even more individuals. I think what I'm going to do is keep my service program out there for the reports and screens that need to grab a quick piece of info, but change the data warehouse program to just setLL by the customer and read through all the values, populating the fields as I go. I think that will be faster than chains. Sometimes simple is better. I'll keep an eye out for your article. I hope it'll have a nifty title like "Activation groups for dummies". Where is it being published ? I get the feeling AG's are just another one of those things that will turn out to be fairly simple once I "get the picture". Thanks Greg >-----Original Message----- >From: rpg400-l-bounces@xxxxxxxxxxxx >[mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Scott Klement >Sent: Wednesday, November 09, 2005 3:15 AM >To: RPG programming on the AS400 / iSeries >Subject: RE: Activation Group Issues ? > > > >> 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. >-- >This is the RPG programming on the AS400 / iSeries (RPG400-L) >mailing list To post a message email: RPG400-L@xxxxxxxxxxxx To >subscribe, unsubscribe, or change list options, >visit: http://lists.midrange.com/mailman/listinfo/rpg400-l >or email: RPG400-L-request@xxxxxxxxxxxx >Before posting, please take a moment to review the archives >at http://archive.midrange.com/rpg400-l. > >
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.