Subject | Re: [firebird-support] How to trigger automatic sweep? |
---|---|
Author | Gabor Boros |
Post date | 2019-05-01T13:24:59Z |
2019. 05. 01. 11:47 keltezéssel, Dimitry Sibiryakov sd@...
[firebird-support] írta:
So I made a gap-setter application then try...
Windows 10 64bit, 2.5.8 Classic 32bit, and the EMPLOYEE database.
Numbers of EMPLOYEE at factory state:
Oldest transaction 154
Oldest active 155
Oldest snapshot 155
Next transaction 155
If I execute 20000 from a "Start snapshot no auto undo transaction,
UPDATE, rollback" cycle on the factory state of EMPLOYEE the numbers are:
Oldest transaction 156
Oldest active 20156
Oldest snapshot 20156
Next transaction 20156
No problem, no firebird.log created.
If I execute 20001 from a "Start snapshot no auto undo transaction,
UPDATE, rollback" cycle on the factory state of EMPLOYEE the numbers are:
Oldest transaction 156
Oldest active 20158
Oldest snapshot 20158
Next transaction 20158
After this step firebird.log contains:
SRV Wed May 01 14:54:40 2019
Sweep is started by SWEEPER
Database "EMPLOYEE"
OIT 156, OAT 20157, OST 20157, Next 20157
SRV Wed May 01 14:54:41 2019
Shutting down the server with 1 active connection(s) to 1 database(s),
0 active service(s)
SRV Wed May 01 14:54:41 2019
Error during sweep:
connection shutdown
and result of "gfix -validate -full -no_update EMPLOYEE":
Summary of validation errors
Number of index page errors : 1
So, I wanted to see this! Automatic sweep destroy the database. And easy
to reproduce. Too easy! :-(
Gabor
[firebird-support] írta:
> In isql: "Set transaction no auto undo" + any DML + rollback.Thank you very much! Now I can manage the gap! :-)
So I made a gap-setter application then try...
Windows 10 64bit, 2.5.8 Classic 32bit, and the EMPLOYEE database.
Numbers of EMPLOYEE at factory state:
Oldest transaction 154
Oldest active 155
Oldest snapshot 155
Next transaction 155
If I execute 20000 from a "Start snapshot no auto undo transaction,
UPDATE, rollback" cycle on the factory state of EMPLOYEE the numbers are:
Oldest transaction 156
Oldest active 20156
Oldest snapshot 20156
Next transaction 20156
No problem, no firebird.log created.
If I execute 20001 from a "Start snapshot no auto undo transaction,
UPDATE, rollback" cycle on the factory state of EMPLOYEE the numbers are:
Oldest transaction 156
Oldest active 20158
Oldest snapshot 20158
Next transaction 20158
After this step firebird.log contains:
SRV Wed May 01 14:54:40 2019
Sweep is started by SWEEPER
Database "EMPLOYEE"
OIT 156, OAT 20157, OST 20157, Next 20157
SRV Wed May 01 14:54:41 2019
Shutting down the server with 1 active connection(s) to 1 database(s),
0 active service(s)
SRV Wed May 01 14:54:41 2019
Error during sweep:
connection shutdown
and result of "gfix -validate -full -no_update EMPLOYEE":
Summary of validation errors
Number of index page errors : 1
So, I wanted to see this! Automatic sweep destroy the database. And easy
to reproduce. Too easy! :-(
Gabor