Firebird Documentation IndexFirebird 1.5.6 Release Notes → I N S T A L L A T I O N   N O T E S
Firebird Home Firebird Home Prev: Firebird 1.5 Project TeamsFirebird Documentation IndexUp: Firebird 1.5.6 Release NotesNext: POSIX Platforms

I N S T A L L A T I O N   N O T E S

Table of Contents

Windows 32-bit Installs
POSIX Platforms

Windows 32-bit Installs

READ THIS FIRST!

Important

For Users of Windows Vista

On the Windows Vista platform, the Explorer crashes when the Firebird 1.5 control panel applet is installed. This crash does NOT occur with Firebird 2.n, but attempts to backport the changes to Firebird 1.5.5 did not work.

  • The installer now disables installation of the 1.5 applet if Vista is detected as the host operating system.

  • If you intend to install v.1.5.5 manually from the zip kit, do not copy the Firebird control panel applet to the Windows/System32 folder.

  • The service can still be controlled, like any other, through the Services administration applet.

With the introduction of two new server models on Win32 the choices for installing Firebird have proliferated.

  • Make sure you are logged in as Administrator (doesn't apply on Win9x or ME)

     

  • All models except the Embedded Server--Superserver, Classic, server tools-only and client-only--can be installed using the Windows installer application. For a full-release install, it is highly recommended to use the installer if there is one available.

     

  • Use gbak to back up your old isc4.gdb security database. You can restore it later as security.fdb

     

  • If you have special settings in ibconfig there may be some values which you want to transfer to equivalent parameters in firebird.conf. Study the notes about firebird.conf to work out what can be copied directly and what parameters require new syntax.

     

  • If certain configuration files exist in the installation directory they will preserved if you run the installer and OVERWRITTEN if you decompress a zip kit into the default location. The files are


        security.fdb
        firebird.log
        firebird.conf
        aliases.conf
            

     

  • Each model can be installed from a zipfile. This method will be faster than the installer if you have plenty of experience installing Firebird 1.5 from zipfiles. It will be highly exasperating if you are a Firebird newbie.

     

  • It is assumed that.-

    1. you understand how your network works

    2. you understand why a client/server system needs both a server and clients

    3. you have read the rest of these release notes-or at least realise that you need to read them if something seems to have gone wrong

    4. you know to go to the firebird-support list if you get stuck. Join at http://www.yahoogroups.com/groups/firebird-support

If you already have an earlier version of Firebird or InterBase® on your server and you think you might want to go back to it, set up your fall-back position before you begin.

  • Use the existing version of GBAK to back up your database files in transportable format

     

  • Go to your System directory and make a backup copy of gds32.dll. You might want to name the backup "gds32.dll.ib5" or "gds32.dll.fb103" or something similarly informative; or hide it in another directory

     

  • It might be a good idea to make a backup of the Microsoft C++ runtime, msvcp60.dll, too. The installer shouldn't overwrite your version of this file, but strange things have been known to happen.

     

  • STOP ANY FIREBIRD OR INTERBASE SERVER THAT IS RUNNING

    The installer will try to detect if an existing version of Firebird or InterBase is installed and/or running. In a non-installer install, you are on your own!

     

  • The default root location of Firebird 1.5 will be C:\Program Files\Firebird\Firebird_1_5. If your old version is already in a directory of that name and you want to use the 1.5 defaults, rename the existing directory

     

  • For installing Firebird as a service: if you want to make use of the new secure login feature, create a "firebird service user" on the system-any name and password you like-as an ordinary user with appropriate privileges.

    You should read the document named README.instsvc.txt first. If you have a zip kit, you will find it in the /doc directory of the zipfile's root. If you don't have a zip kit available, the file won't be available until after the installation. You can read the same document at this URL: http://cvs.sourceforge.net/viewcvs.py/firebird/firebird2/doc/README.instsvc

Naming databases on Windows

Note that now the recommended extension for database files on Windows ME and XP is ".fdb" to avoid possible conflicts with "System Restore" feature of Windows. Failure to address this issue on these platforms will give rise to the known problem of delay on first connection to a database whose primary file and/or secondary files are named using the conventional ".gdb" extension.

The issue is described in more detail in Other Win32 Issues at the end of the Windows installation notes.

READ THIS NEXT!

One of the design goals of Firebird 1.5 is to prepare the way for multiple installs of the server. This will allow users to run different versions side by side. Firebird 1.5 does support this, although it is not well documented and very much requires intervention from a skilled user. Future versions of Firebird will make this process far less complicated. In the meantime Firebird 1.5 needs to prepare the ground. This forces us to confront the issue of library installation.

At the same time, Microsoft have taken their own steps to manage installation of different library versions. Taken together these two separate issues mean a new approach to library installation for Firebird 1.5 and beyond.

Installation of Microsoft system libraries

The problems associated with installing different versions of Microsoft system libraries are so notorious that it has acquired the name 'DLL Hell'. From the release of Windows 2000 onwards Microsoft have made it almost impossible to upgrade system dll's. To resolve this Microsoft now recommends that each application installs local copies of any system libraries that are required.

Firebird 1.5 follows this practice and places the required libraries in the \bin directory along with the server.

Installation of fbclient.dll

Firebird 1.5 and beyond no longer use gds32.dll as the client library. It is now called fbclient.dll. Given the problems that Microsoft have had with DLL hell it wouldn't make much sense if we continued to store the Firebird client library in the system directory. And as we want to allow installation of multiple engines simultaneously we would be creating our own DLL hell if we continued the practice of using the system directory for the client library.

So, from Firebird 1.5 on, the client library resides in the \bin directory along with all the other binaries.

New Registry Key

A new registry key has been added and all Firebird 1.5 compliant applications should use this key if they need to read a Registry key to locate the correct version of Firebird that they wish to use. The new key is:

  HKEY_LOCAL_MACHINE\SOFTWARE\Firebird Project\Firebird Server\Instances
      

Firebird will guarantee that one entry under this key always exists. It will be known as

  "DefaultInstance"
      

and will store the path to the root directory of (yes, you've guessed it) the default installation. Those that don't care about particular installations can always use the default instance to locate the fbclient.dll.

Future versions of Firebird will see other entries under Instances. Applications will be able to enumerate the registry entries to determine which library instance they wish to load.

Supporting legacy applications and drivers

Traditionally, applications that use InterBase or Firebird have expected to load the gds32.dll client library from the system directory. Firebird 1.5 ships a tool named 'instclient.exe' that can install a clone of fbclient.dll to the Windows System directory. This clone gets patched on the fly so that its file version information begins with "6.3", to provide compatibility for old applications that check the GDS32.DLL file version and can not make sense of a number string such as "1.5".

During the installation process the installer checks to see if an installation of InterBase or Firebird exists. If nothing is installed it will write gds32.dll into the system directory. If it detects that any possible version of Firebird or InterBase may already be installed it will not install the gds32.dll in the system directory. However, the 'instclient.exe' tool can be used to do it later.

It is intended that future versions of Firebird will not attempt to install gds32.dll into the system directory and ultimately it will be completely removed from the distribution.

InstClient.exe Tool

This 'instclient.exe' tool can also install the FBCLIENT.DLL itself in the Windows system directory, if required. This will take care of tools or applications that need to load it from there.

The instclient.exe utility should be located in the 'bin' directory of your Firebird installation and must be run from there in a command shell.

Usage of instclient.exe:

  instclient i[nstall] [ -f[orce] ] library
             q[uery] library
             r[emove] library
      

where library is: fbclient | gds32

'-z' can be used with any other option, prints version.

Version information and shared library counts are handled automatically. You may provide the -f[orce] option to override version checks.

Caution

If you -f[orce] the installation, it could break another Firebird or InterBase® version already installed. You might have to reboot the machine in order to finalize the copy.

For more details, see the document README.Win32LibraryInstallation.txt which is located in either the root of your installation path or in ..\doc.

Cleaning up release candidate installs

It should be noted that the installer removes fbclient.dll from the <system> directory if the file is found there. The installer also removes the deprecated HKLM\Software\FirebirdSQL registry key.

Using the Win32 Firebird Installer

This is the easy one.

Just run the executable and respond to the dialogs. After you have answered about four dialogs, you should see one with a drop-down list box which--when dropped down--looks similar to this. This really is the last chance you'll have to choose the installation you want:

Choose the installation you want and hit "Next" to carry on responding to dialogs.

Service or application?

If you select to install Superserver or Classic, and your OS version supports services, you will be asked to choose whether to run Firebird as a service or as an application. Unless you have a compelling need to run the server as an application, choose service.

Manual or automatic?

With automatic option, Firebird will start up whenever you boot the host machine. With the manual option you can start the server on demand.

Guardian option

Guardian is a utility than can run "over the top" of Superserver and restart it if it crashes for any reason. For development, you might choose not to use it. For deployment, it can avoid the situation where the server stops serving and nobody can find the DBA to restart it.

Installation (Root) directory

If you decide not to use the default root location, browse to a location you have pre-created; or just type in a full path. The path you type in doesn't have to exist: the installer will prompt you and create it if it doesn't exist.

Eventually, the dialogs will stop and the server will either silently start the server or prompt you for permission to reboot. Reboot will be needed if the installer overwrote your msvcp60.dll, or an old gds32.dll was already loaded when the installer started up.

Uninstallation

The Firebird uninstall routine (run from Add/Remove Programs in the Control Panel) preserves and renames the following key files:


    preserves security.gdb or renames it to security.fbnnnn
    preserves firebird.log
    preserves firebird.conf or renames it to firebird.confnnnn
    preserves aliases.conf or renames it to aliases.confnnnn
      

"nnnn" is the build number of the old installation.

No attempt is made to uninstall files that were not part of the original installation.

Shared files such as fbclient.dll and gds32.dll will be deleted if the share count indicates that no other application is using them.

The Registry keys that were created will be removed.

Installing Superserver from a zip kit

The installation of FB 1.5 is similiar in principle to previous versions. If you don't have a special setup program (it's distributed separately) the steps are the following:

  • unzip the archive into the separate directory (since a few file names were changed, it doesn't make sense to unzip v1.5 files into the directory with IB/FB1)

     

  • change the current directory to $FIREBIRD\bin (here and below $FIREBIRD is the directory where v1.5 files are located)

     

  • run instreg.exe:

        instreg.exe install
            

    It causes the installation path of the directory above to be written into the registry (HKLM\Software\Firebird Project\Firebird Server\Instances\DefaultInstance)

     

  • if you want to register a service, also run instsvc.exe:

        instsvc.exe install
            

     

  • optionally, you may need to copy both fbclient.dll and gds32.dll to the OS system directory

Installing Classic Server from a zip kit

To install the CS engine, the only difference is the additional switch for instsvc.exe:

    instsvc.exe install -classic
      

Important

Notice that this means that you may have only one architecture of the engine--either fbserver.exe (Superserver) or fb_inet_server.exe (the parent process for Classic)--installed as a service.

The Control Panel applet is not installed with Classic--deliberately. Don't try to install and use it. The concept of terminating a service does not apply to the Classic model.

Simplified setup

If you don't need a registered service, then you may avoid running both instreg.exe and instsvc.exe. In this case you should just unzip the archive into a separate directory and run the server:

    fbserver.exe -a
      

It should treat its parent directory as the root directory in this case.

Uninstallation

To remove FB 1.5 without a Windows Uninstaller you should:

  • stop the server

     

  • run "instreg.exe remove"

     

  • run "instsvc.exe remove"

     

  • delete installation directory

     

  • delete fbclient.dll and gds32.dll from the OS system directory

Installing Embedded Server from a Zip Kit

The embedded server is a client with a fully functional server linked as a dynamic library (fbembed.dll). It has exactly the same features as the usual Superserver and exports the standard Firebird API entry points.

Registry

The Registry entries for Firebird (where the server normally looks for the location of the root directory) are ignored. The root directory of the embedded server is the directory above where its binary file (library) is located.

Database access

Only "true local" access is allowed. The embedded server has no support for remote protocols, so even access via localhost won't work.

Authentication and security

The security database (security.fdb) is not used in the embedded server and hence is not required. Any user is able to attach to any database. Since both the server and the client run in the same (local) address space, security becomes a question of physical access.

SQL privileges are checked, as in other server models.

Compatibility

You may run any number of applications with the embedded server without any conflicts. Having a full Firebird or InterBase® server running is not a problem either.

But you should be aware that you cannot access the same database from multiple embedded servers simultaneously, because they have SuperServer architecture and hence exclusively lock attached databases.

File structure for the Embedded Server

Just copy fbembed.dll into the directory where your application resides. Then rename it to either fbclient.dll or gds32.dll, depending on your database connectivity software. Make copies having both names if you will need to use the server tools (isql, gbak, etc.)

You should also copy firebird.msg, firebird.conf (if necessary) and ib_util.dll to the same directory.

If external libraries, are required for your application, e.g. INTL support (fbintl.dll) or UDF libraries, they should be located apart from the application directory. To be able to use them, place them into a directory tree which emulates the Firebird server one, i.e., in subdirectories named /intl and /udf directly beneath the directory where the Firebird root files are.

Important

Don't overlook the need to have the Microsoft® Visual C and Visual C++ runtimes (msvcrt.dll and msvcpp60.dll, respectively) present in the system directory.

Example

    D:\my_app\app.exe
    D:\my_app\gds32.dll (renamed fbembed.dll)
    D:\my_app\fbclient.dll (renamed fbembed.dll)
    D:\my_app\firebird.conf
    D:\my_app\aliases.conf
    D:\my_app\isql.exe
    D:\my_app\ib_util.dll
    D:\my_app\gbak.exe
    D:\my_app\firebird.msg
    D:\my_app\intl\fbintl.dll
    D:\my_app\udf\fbudf.dll
      

Then, start your application. It will use the embedded server as a client library and will be able to access local databases.

Note

Provided you set up the directory structure according to these rules, it will not be necessary to configure the RootDirectory explicitly in firebird.conf. However, if you decide to deploy the embedded server and your application in some different directory structure, be sure to read the document README_embedded.txt of the Embedded Server distribution first, for instructions about additional configuration.

Other Win32 Issues

Winsock2

Firebird requires WinSock2. All Win32 platforms should have this, except for Win95. A test for the Winsock2 library is made during install. If it is not found the install will fail. To find out how to go about upgrading, visit this link.

Windows ME and XP

Windows ME and XP (Home and Professional editions) there is a feature called System Restore, that causes auto-updating (backup caching?) of all files on the system having a ".gdb" suffix. The effect is to slow down InterBase/Firebird database access to a virtual standstill as the files are backed up every time an I/O operation occurs. (On XP there is no System Restore on the .NET Servers).

A file in the Windows directory of ME, c:\windows\system\filelist.xml, contains "protected file types". ".gdb" is named there. Charlie Caro originally recommended deleting the GDB extension from the "includes" section of this file. However, since then, it has been demonstrated that WinME might be rebuilding this list. In XP, it is not possible to edit filelist.xml at all.

On ME, the permanent workarounds suggested are one of:

  • use FDB (Firebird DB) as the extension for your primary database files--RECOMMENDED

  • move databases to C:\My Documents, which is ignored by System Restore

  • switch off System Restore entirely (consult Windows doc for instructions).

On Windows XP Home and Professional editions you can move your databases to a separate partition and set System Restore to exclude that volume.

Windows XP uses smart copy, so the overhead seen in Windows ME may be less of an issue on XP, for smaller files at least. For larger files (e.g. Firebird database files, natch!) there doesn't seem to be a better answer as long as you have ".gdb" files located in the general filesystem.

XP Shutdown

Windows XP shutdown behaviour is a known "dark area". There is a significantly long pause while the server service stops. During that time the display indicates that Firebird is running as an application.

The problem only seems to affect Windows XP and it only appears if the Guardian is not being used to stop the server service. That is the workaround until a fix can be found.

Prev: Firebird 1.5 Project TeamsFirebird Documentation IndexUp: Firebird 1.5.6 Release NotesNext: POSIX Platforms
Firebird Documentation IndexFirebird 1.5.6 Release Notes → I N S T A L L A T I O N   N O T E S