Firebird DocsetUsing FirebirdAbout Clients and Servers → The server
Firebird home Firebird home Prev: The Firebird client libraryHome: Firebird DocsetUp: About Clients and ServersNext: Client and server combined: Firebird Embedded Server

The server

Server tasks
Multiple servers
Server filenames

The Firebird server is a program that runs on a machine with which client workstations can communicate by way of a network. Clients connect to databases physically located on this server host machine. The same machine that hosts the executing Firebird server process must host the Firebird databases in its own storage space. Only the server process has direct, filesystem-level access to the database files. The server is fully network-enabled, serving multiple connections simultaneously, in response to requests from other nodes in the network. If the network runs under TCP/IP protocol, the scope of the network is virtually limitless.

In the Superserver architecture, the server process is multi-threaded. In Classic, a new process is started for each connection.

Server tasks

The server's job is to

  • regulate access by transactions to individual sets of data;

  • ensure that each transaction gets and keeps a consistent view of the permanently stored data which it has requested through the client;

  • receive requests to modify or delete a row and either:

    • grant a transaction exclusive write access to the row, or

    • deny access if another transaction already has a write pending;

  • maintain the statistics for each database;

  • maintain and refer to the metadata for each database, in order to manage transactions, data and “house-cleaning”.

Clients' requests result in the server performing tasks such as

  • creating new databases;

  • creating new data structures inside databases;

  • validating and compiling source code for procedures;

  • searching tables for data matching provided criteria;

  • collating, sorting and tabulating sets of data;

  • passing sets of data back to the requesting client;

  • modifying the values of data;

  • inserting new data into tables;

  • removing (deleting) data;

  • executing compiled procedures;

  • routing messages to clients.

Multiple servers

Starting at version 1.5, you can have multiple Firebird servers running on the same machine. Firebird 1.5 servers can also coexist with a Firebird 1.0 or InterBase server. Some extra configuration steps are required though.

One thing to be aware of is that Firebird 1.5.n under Windows needs the CreateInternalWindow configuration parameter to be set to 0 in order to run multiple servers. As a side effect, the local connection protocol is disabled (you can still connect to local databases via localhost though). This limitation no longer exists in Firebird 2, and the CreateInternalWindow parameter has been removed in that version.

Server filenames

Server binaries on Windows are called fbserver.exe (Superserver) and fb_inet_server.exe (Classic). On Linux, the same names are used, but without the .exe extension.

Prev: The Firebird client libraryHome: Firebird DocsetUp: About Clients and ServersNext: Client and server combined: Firebird Embedded Server
Firebird DocsetUsing FirebirdAbout Clients and Servers → The server