Subject Re: [firebird-support] Re: firebird database base crashing windows server
Author Helen Borrie
At 01:03 AM 29/12/2009, Steve Wiser wrote:
>I also like to fiddle around in the BIOS to make sure the NIC is not
>sharing an IRQ with anything else. (kind of old school, but I have seen
>it happen lately!).
>
>
>Bob Acheson wrote:
>> The one in the PCI slot (active one now) is a Realtek 8139 PCI
>> adapter. The onboard one (disabled) is a Boradcom NetXtreme Gigabyte
>> ethernet. Where do I find the DHCP Media Auto Sense? This a Windows
>> 2003 server.

In the TC/PIP > Advanced property sheet of the NIC. Most modern NICs come with this property enabled, which is fine for workstations if the network is using DHCP. For servers, it is not fine: a server needs a static IP address.

Disabling it should enable another property that allows the option to set a static IP address for the card. Generally it's not necessary to set it on the card if the gateway and local address properties were set up correctly but, with Windows, who knows? Make sure the subnetmask is correct, too, probably 255.255.255.0, but check the router's documentation to be sure.

Choose an IP address that is in the range prescribed by the router. Some routers will generate a static address on request; if that's not available, then a convenient choice for the network host machine is an address that is next to the router's address, e.g., if the router is 10.0.0.1 then make the host machine 10.0.0.2.

Make sure the disabled on-board card has its IP address unset.

All that should be enough to dissuade DHCP from trying to assign that IP address to another node in the network. However, check the HOSTS file ($windir$\system32\drivers\etc\HOSTS) in case there's an outdated entry there for the server. Correct it if it's there; add one if it's not. (Do the same checks in the HOSTS file of any clients that are unable to connect, as well.)

Also, since nobody else mentioned it so far, make sure that the database is not being accessed via a mapped drive or a network share. Its file path *must* be a "raw" path to a location on a disk that is physically attached to the Firebird server's host machine.

It's possible the software depends on finding the database in the exact location defined by an alias in aliases.conf (in Firebird's root directory) or a path hard-coded into the application code. In that case, if someone moved the database, the application won't find it. Changing the path associated with the alias might solve part of the problem but experience says that Delphi programmers (of which I am one) are notoriously careless about eliminating hard-coded paths from their application code when they change their software to use aliases. So - if the database is in the wrong place, stop Firebird and just move the database back to where the application expects it to be.

DON'T TRY ANY OF THESE THINGS WHILE USERS ARE LOGGED IN OR ARE TRYING TO LOG IN.

NB, you're not helping yourself by declining suggestions to look in firebird.log (in Firebird's root directory). That's where the Firebird server components try to write messages that might be of concern - including exceptions that it receives from the network and the OS. Especially with network issues, it's the first place to look when connection problems occur. Firebird can't DO anything about a cranky network but the log often a source of clues as to what's going on.

./hb