Subject Re: [firebird-support] Re: Failing to create Firebird DB file
Author Yuliya Shulman
Yes, I think we've finally managed to confuse
everyone, so I'll summarize.

The way our application installs is the customer runs
the .msi (Windows Installer) we supply. The file
installs all sorts of files into a specified folder.
One of those files is our executable, which, upon
starting, invoke a Firebird call to create .OBU file
in the same folder, if it's not already there (as it
can be if the executable is restarted after a reboot,
for instance.)

That's where the customer encountered a problem. All
other files were copied into the installation folder
without a problem. The executable started, encountered
a problem creating the .OBU file, and exited, as it
was supposed to in this case.

This was the problem reported:

SQL Message : -902
Unsuccessful execution caused by a system error that
precludes successful execution of subsequent

Engine Code : 335544373
Engine Message :
operating system directive CreateFile failed
The system cannot find the path specified.
, file: AgentDB.cpp, line: 384

AgentDB.cpp is our file; at line 384 we report
IBPP::SQLException. We don't do much there, just try
to run CreateDB.sql script that creates the OBU file.
So it looks to me it's the Firebird engine that fails
to create the file.

The customer re-run install using SysInternals
"Process Monitor" and found out the failure was due to
inability to access a bogus temporary directory under
"C:\WINNT\system32\YSTE~1\TEMP". He created
"YSTE~1\TEMP" subdirectory under C:\WINNT\system32 and
the installation succeeded.

However, he doesn't consider the problem solved and
wants to know why "it" tried to access the directory
that wasn't there.

It's got to be something very specific to this
particular computer since our software is installed
probably on thousands and no one complained. Not about
this anyway. ;) So that's why I was asking what
environmental variables Firebird uses since I thought
something was erroneously set to "YSTE~1\TEMP". The
value of TEMP variable was brought up by somebody
else. However, I looked through the results of SET
command the customer provided and nothing is set to

Any ideas? I don't care what to tell the customer
since he already installed the software, but I do need
to report successful resolution to my manager. :D


--- Helen Borrie <helebor@...> wrote:

> At 06:13 AM 1/12/2006, you wrote:
> >I agree that "YSTE" is unlikely the short for
> >"SYSTEM"; I'm going to ask the customer where it
> comes
> >from. Unfortunately, it looks like they think it
> comes
> >from us, along with the holes in cheese.
> >
> >What directories does Firebird need to be present
> in
> >order to work properly, assuming we do not change
> any
> >settings and use defaults?
> You seem to be talking about two different things in
> this thread,
> part of which I have missed due to the fact that my
> ISP employs
> gorillas to administer its mail servers.
> 1) What has to be present in order to run the
> Windows installer
> 2) What has to be present in order to run Firebird
> I wasn't aware that the InnoDB installer needed a
> temp directory
> defined but perhaps it's just assumed to be so. The
> default temp
> dir[s] on my Windows setup (Win2K Pro SP4) are 4 in
> number, pointing
> to 2 locations.
> -- The user variables are TEMP and TMP, both
> pointing to
> %USERPROFILE%\Local Settings\Temp
> -- The system variables are TEMP and TMP, both
> pointing to C:\WINNT\TEMP
> Firebird accesses the system variables FIREBIRD_TMP,
> TEMP and/or TMP
> (whichever it finds first) for writing its sort
> files if you don't
> explicitly configure the sort space in firebird.conf
> via the
> parameter TempDirectories. (You have to set up
> FIREBIRD_TMP yourself
> but it is optional...but either/both FIREBIRD_TMP
> and/or the
> TempDirectories locations should be on your fastest
> disks...)
> Now, whether the installer is also set up with the
> same access path I
> don't know but you could check the installer script
> in CVS to find
> out. In any event, it does look as though the
> installer isn't
> finding any of them; or the user that is attempting
> to do the
> install doesn't have access to them.
> I have encountered installations where the network
> admin has blown
> away the system TMP/TEMP variables as a strategy to
> prevent users'
> Internet cookies and Trojans being stored at system
> level. You could
> check that. You should also check whether they are
> present, but have
> been set up to point to shares or SUBSTs or even to
> some null
> device. Yes, there is such paranoia out there...
> ./heLen
> Visit and click the
> Resources item
> on the main (top) menu. Try Knowledgebase and FAQ
> links !
> Also search the knowledgebases at
> Yahoo! Groups Links
> (Yahoo! ID required)

Do you Yahoo!?
Everyone is raving about the all-new Yahoo! Mail beta.