Subject Database Corruption
Author Carsten Schäfer
This weekend(sunday) we got a database corruption at one customer site
(FB 2.0 on a Windows 200 Server).
No one is directly working on the database file.
DB is only accessed via our application, that uses the jaybird driver.
We never have had any problems at this customer site.
(Normally there is even no one working with our programm on sunday)

Can someone please explain how this can happen ?

mfg
Carsten

This is the output from gbak:
gbak: ERROR:database file appears corrupt ()
gbak: ERROR: bad checksum
gbak: ERROR: checksum error on database page 8099
gbak: ERROR: gds_$receive failed
gbak:Exiting before completion due to errors

This exception was thrown from the jaybird jdbc driver when we want to
get data from server:
org.firebirdsql.jdbc.FBSQLException: GDS Exception. 335544333. internal
gds software consistency check (wrong record length (183), file: vio.cpp
line: 1090)
at
org.firebirdsql.jdbc.FBStatementFetcher.fetch(FBStatementFetcher.java:206)
at
org.firebirdsql.jdbc.FBStatementFetcher.next(FBStatementFetcher.java:119)
at org.firebirdsql.jdbc.FBResultSet.next(FBResultSet.java:250)
at
com.TTC_Informatik.PAULA.server.db.APosDBKonstanten.getAllAPossen(APosDBKonstanten.java:1538)
at java.lang.Thread.run(Unknown Source)
at org.firebirdsql.gds.GDSException: internal gds software consistency
check (wrong record length (183), file: vio.cpp line: 1090)
at
org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl.readStatusVector(AbstractJavaGDSImpl.java:2104)
at
org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl.receiveResponse(AbstractJavaGDSImpl.java:2054)
at
org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl.iscDsqlFetch(AbstractJavaGDSImpl.java:1322)
at org.firebirdsql.gds.impl.GDSHelper.fetch(GDSHelper.java:260)
at
org.firebirdsql.jdbc.FBStatementFetcher.fetch(FBStatementFetcher.java:201)
at
org.firebirdsql.jdbc.FBStatementFetcher.next(FBStatementFetcher.java:119)
at org.firebirdsql.jdbc.FBResultSet.next(FBResultSet.java:250)
at
com.TTC_Informatik.PAULA.server.db.APosDBKonstanten.getAllAPossen(APosDBKonstanten.java:1538)