Firebird Docset → Using Firebird → About Clients and Servers → The server |
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.
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.
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.
Firebird Docset → Using Firebird → About Clients and Servers → The server |