I don't think this is the problem.  There aren't any filehandles that are
opened by the script unless something within DBD::Informix is opening
filehandles.

Since I'm the only one here today, I have the luxury of using the web
server on the test system without someone constantly restarting it.  So, I
did a little experiment to see what was going on.

1.)  I defined $ENV{'INFORMIXDIR'}='/usr/informix' near the top of the
fcgi script.

2.)  In the block that prints error message, also printing
$ENV{'INFORMIXDIR'} to see if it's getting undef'd

3.)  Restarted apache

The first time after the restart, I get the right return from $DBI::errstr
and $ENV{'INFORMIXDIR'} is set correctly.  However, any subsequent runs of
the script causes $DBI::errstr to only return error codes (and indicate
that the error cannot be found within the error_log), but the
environmental variable is still correctly set.  So, I don't think
$ENV{'INFORMIXDIR'} is the problem.

I tried this several times, restarting apache, trying different errors
back to back, etc.  Always on the first invocation of the script I get the
correct output, and only error codes after that.

Is DBD::Informix attempting to cache error codes, so it only reads from
that file the first time?

What is CSDK?  Since I do not know what it is, I'm not sure what version
it would be.

Thanks
--Curt 

On Thu, 16 Aug 2001, Gary Armstrong wrote:

> Curt Russell Crandall wrote:
> 
> > We don't set INFORMIXDIR in the scripts, the system is set up so all
> > accounts (including web, the account that owns all the web content and
> > scripts) have $INFORMIXDIR set to /usr/informix.
> >
> > What is odd is that for the SAME script, it will display $DBI::errstr
> > correctly once, and then the next several times it'll only display the
> > error code.  Since it's a fast cgi script, each of the separate
> > invocations of the script should be inheriting the same $INFORMIXDIR
> > environmental var.
> 
> Is it also inheriting open file handles? I wonder if it is being rewound?
> 
> Gary
> 

Reply via email to