Re: -208 Error (SHMBASE modification)
Posted in 1991
Alan Denney writes:
> SHMBASE is a tbconfig parameter in OnLine.
> If you are still on Turbo, there's no way for the user to tune SHMBASE.
Indeed.
The reason I couldn't "find" SHMBASE as an OnLine parameter is because
we're running multiple OnLine engines. With a name change to the TBCONFIG
file (as is required for multiple OnLine engines), SHMBASE is one of several
parameters that is not "copied" to the child TBCONFIG files, but rather
remains only in the parent. Thus, until I went looking through TBCONFIG.STD,
I had mega-trouble finding the SHMBASE setting.
Interestingly, there is no reference to SHMBASE in the Informix OnLine
documentation, and the course I took (INFORMIX-OnLine for Database
Administrators) - as well as the course materials - said nothing about it,
either. The only reference is in the TBCONFIG.STD file, where it says:
" # Shared memory base address (DO NOT CHANGE!) "
A slowdown to the quick-to-fiddle among us, to say the least.
However, with the message traffic I've read here, I decided to fiddle.
Before the results - a quick recap.
----------------------------------------------------------------------------
Our platform is an AT&T 3B2/600G running OnLine. We've had problems with
processes aborting in random, changeable locations in our 4GL code. They
all said the same thing:
"SQL Statement Error number -410. Prepare statement failed or was not
executed."
We'd "fix" it in one place, only to have it crop up in another.
A team from Informix, Washington (DC) came out and diagnosed the problem
as an Informix OnLine memory management error: OnLine was failing to clean
up after itself. We did some things, use of global variables, etc., that
reduced the problem to a bare minimum, and for a time we thought it was
fixed.
It came back, later, with a vengeance.
We were at wits end. Then, Lo and Behold, there are these messages in
Informix-Link on a related topic (-208 Error) - with a fix, to boot!
So we tracked it down and found SHMBASE. So much for the recap.
-----------------------------------------------------------------------------
Here is the original SHMBASE setting from the TBCONFIG.STD file for the
AT&T 3B2/600G platform:
SHMBASE 0xc00c0000 # Shared memory base address (DO NOT CHANGE!)
Here is what, through trial and error, we changed it to:
SHMBASE 0xc00e0000 # Shared memory base address
This greatly increases SHMBASE while allowing (on our system) Informix to
run multiple engines & processes without barfing due to a lack of shared
memory.
So far, the dreaded "Prepare statement failed or was not executed" has
not come back to haunt us. We even tried to repeat known steps that caused
the error to occur, and it didn't occur. We *expanded* on the known steps
(practice with this caused us to settle on our new SHMBASE) until we no
longer could *cause* this error to occur, no matter how hard we tried.
Caveat: the -410 error has not come back *SO FAR*. If it does, we'll
post that in Informix-Link, too.
Bill Williams
Programmer/Analyst
HHIC Informix DBA