Re: back-end growth
Posted in 1992
Topics: SQL Development & Query Writing, Connectivity: ESQL/C, 4GL & Embedded SQL
} } In article <1992Oct11.2231.1801@execnet>, clay.irving@execnet.com (clay irving) writes: } > On 10-11-92 Ihor J Kinal writes: [ That's me] } > } > |Recently, I posted an article about the backend [sqlturbos] } > |growing in Online 4.10 UE1 and UE3P1. } > | } > |Further investigation showed one specific case to be where } > |we had a cursor that had been prepared once [the specific } > |query was a join between two tables]. After about 50 open/closes, } > |we discovered steady growth in our backends. } > } > Maybe this explains what's been happening to my system. I'm running 4.10 } > UE1 on an IBM RS/6000. I have a batch 4GL program that I tried to run } > against 37,000 rows. I have 16MB of memory with 32MB page space. Everytime } > I run the program it ABENDs -- Not enough memory. I watched sqlturbo go } > from 1MB to 2MB to 3MB... to 8MB.. Eventually it eats all the virtual } > memory and the RS/6000's Virtual Memory Manager starts killing processes. } } This sounds like a different problem than what we've seen. Try to } reproduce the problem with the simplest number of statements, } and then post the program, or forward it to Informix support. } } NOTE that we're STILL seeing significant growth in backends, and some } growth in our FRONT-ends. Our colleagues, running a SIMILAR } system on Online 5.0, are seeing phenominal growth in front-ends } ONLY. Although we no longer have our TURBO systems available, } we think that these problems were NOT as apparent under turbo. } } APPARENTLY [and we're still testing the results], } the growth can be checked, by consistent use } of $free'ing prepared statements that are no longer needed, } and possibly freeing cursors after they're closed as well. } [Note that in 5.0, you can IMMEDIATELY free the prepared } statement after you declare the cursors. This makes the logic } a lot simpler. Freeing cursors does not seem work in 4.1, } although you can prepare/execute a statement to do so -but don't } forget to free the prepare'd statement]. } } THIS IS A REAL DISADVANTAGE TO ONLINE. Although free was } apparently available in turbo, it was not documented there. } Checking OnLine documentation, there is a brief mention of } the possibility that resources will be used, and that free } can be used. We're forced to minor revisions to MASSIVE } amounts of code. Not fun. Needless to say, I'm not a } happy camper. } } Standard disclaimers apply - and I hope this helps others. } } Ihor Kinal } att!cbnewsh!ijk [netnews] } att!trumpet!ijk [real work address]. } We are having backend growth problems with 4.1 also. When the PC is turned off or our satellite drops, the backend will begin growing after about two hours when Unix realizes that a process is in wait status. We have determined that what may be happening is a read is then issued and since no frontend exists, the backend process continues to grow. We have called this into Informix as a bug but have not heard back yet. The Atlanta office of Informix has been working with us. As a temporary fix, we have added a C function which we call in the input section of the code. The C function checks to see if the PPID is still active. If not, the program exits. This fix seems to work in most cases. Renee Livsey Home Depot