Subject | Re: Data security if server or clients hangs |
---|---|
Author | Adam |
Post date | 2007-10-25T23:20:26Z |
--- In firebird-support@yahoogroups.com, "max6395" <max6395@...> wrote:
do this. But servers should never 'hang', and server restarts should
be planned. Even so, using a UPS to protect your server is a good idea.
If you are getting corruption, then it is time to do tests on the
hardware and check that backup, virus scanner applications are
excluding the database file itself.
because then the server knows and can clean up immediately, but the
client does not itself have anything to do with the database. It can
only ask the Firebird server process to perform actions on its behalf.
If the server restarts, the first time the server opens a database, it
will flag any active transactions as rolled back.
Source: http://www.ibphoenix.com/main.nfs?a=ibphoenix&page=ibp_expert4
If the client does not disconnect properly, the transaction will
remain 'active' from the servers perspective until the Operating
System tells Firebird that the connection is broken. At that time,
Firebird will mark the transaction as rolled back.
The cleanup will happen by the garbage collection process after the
transaction has been flagged. How and when this occurs depends on the
garbage collection mode (dedicated thread, cooperative or combined).
By cleanup, I am talking about the performance related issues. No
transactions will see the rolled back data even if cleanup has not yet
occurred.
Adam
>No, providing you have 'forced writes' enabled, you will not need to
> Hi all,
> i use FB 1.5.4 with a Delphi application.
>
> If a server hang or restart, is always necessary to do a gfix and
> backup/restore of all the databases for being sure that they are
> corrected?
do this. But servers should never 'hang', and server restarts should
be planned. Even so, using a UPS to protect your server is a good idea.
If you are getting corruption, then it is time to do tests on the
hardware and check that backup, virus scanner applications are
excluding the database file itself.
>No. It is preferable for the client application to disconnect normally
> Is the same if a client hang or restart ?
because then the server knows and can clean up immediately, but the
client does not itself have anything to do with the database. It can
only ask the Firebird server process to perform actions on its behalf.
> If a server or client hang, the transactions and the connections areIn all occasions, the uncommitted changes are rolled back.
> automatically cleaned/killed by the Firebird server ?
If the server restarts, the first time the server opens a database, it
will flag any active transactions as rolled back.
Source: http://www.ibphoenix.com/main.nfs?a=ibphoenix&page=ibp_expert4
If the client does not disconnect properly, the transaction will
remain 'active' from the servers perspective until the Operating
System tells Firebird that the connection is broken. At that time,
Firebird will mark the transaction as rolled back.
The cleanup will happen by the garbage collection process after the
transaction has been flagged. How and when this occurs depends on the
garbage collection mode (dedicated thread, cooperative or combined).
By cleanup, I am talking about the performance related issues. No
transactions will see the rolled back data even if cleanup has not yet
occurred.
Adam