Thomas, 

I don't know how much help I will be but I will give it a shot.

- What is your database URL?

JDBC url = 
jdbc:h2:../data/audit/msgfwd;COMPRESS=TRUE;AUTOCOMMIT=ON;MVCC=TRUE;DB_CLOSE_ON_EXIT=FALSE;MV_STORE=FALSE;AUTO_SERVER=TRUE;AUTO_SERVER_PORT=7799

- Did you use LOG=0 or LOG=1? Did you read the FAQ about it?

I have not modify the default log mode.

- Did the system ever run out of disk space?

No. I have had no indication that it ran out of disk space.  My application 
monitors disk resources and automatically shuts down if the disk 
utilization exceeds 90%.  That being said the DB file is about 1.8GB in 
size so If at any point H2 duplicates this file temporarily during cleanup 
or optimization then I suppose I would have to revisit my answer.

- Could you send the full stack trace of the exception including message 
text?

I have posted the entire contents of the trace file.  My application was in 
its shutdown hook and already 99.9% shutdown at this time just waiting for 
H2 to exit.

- Did you use SHUTDOWN DEFRAG or the database setting DEFRAG_ALWAYS with H2 
version 1.3.159 or older?

No.  I am using the latest version 1.4.182 and the database file was 
generated with this version.  I do not use either of those two settings 
because my database file gets so large that it takes too long to exit with 
those two options set.

- How many connections does your application use concurrently?

I use boneCP for a connection pool to simplify connections that are made 
from multiple threads.  I have boneCP set at 10 connections max, but I 
would be surprised if there were more that two connection (per application) 
at any one time.  I did have two applications running.  One is essentially 
writing files as text to the database and the other is reading these text 
entries. They run independently and one application can be ahead or behind 
the other at anytime.  The database primary keys are transmitted via a 
message queue and the database is used as our data store until the queue 
can be worked off. 

- Do you use temporary tables?

No.  We have two tables and they are created at startup if necessary.

- With which version of H2 was this database created?
    You can find it out using:
    select * from information_schema.settings where name='CREATE_BUILD'
    or have a look in the SQL script created by the recover tool.

The database was deleted and recreated when we upgraded from 1.4.181 to 
1.4.182.  It was created with the same version that threw the exception 
1.4.182

- Did the application run out of memory (once, or multiple times)?

No. We did not experience any memory issues.  We just hung during 
shutdown.  Which has not been unheard of in our tests.  But per Noels 
suggestion we have changed from writing/reading Clobs to writing/reading 
large varchar fields.

- Do you use any settings or special features (for example cache settings,
    two phase commit, linked tables)?

No. our goal is simple fast and as small as possible.  We store a lot of 
data quickly and for short periods of time.

- Do you use any H2-specific system properties?

Only those listed in our URL.  We make considerable use of the 
AUTO_SERVER=true setting.  We rely on it.

- Is the application multi-threaded?

Yes.  but the biggest database contentions would be between applications.  
Multiple applications read and write to the same table.

- What operating system, file system, and virtual machine
    (java -version) do you use?

We have been testing on Solaris 10, sparc UFS, Java 7u45

- How did you start the Java process (java -Xmx... and so on)?

We have some custom command line defines and these -Xmx1G -Xms128m 
-XX:MaxPermSize=256m

- Is it (or was it at some point) a networked file system?

No.  This database file is only a couple days old. 

- How big is the database (file sizes)?

I will verify on Monday. but I have in my notes 1.8GB

- How much heap memory does the Java process have?

Set to max of 1GB ( see java options above )

- Is the database usually closed normally, or is process terminated
    forcefully or the computer switched off?

Database is ALWAYS closed normally via a shutdown hook that cleans up all 
our application services.  We close the H2 database by way of the boneCP 
connection pool.

- Is it possible to reproduce this problem using a fresh database
    (sometimes, or always)?

I have never seen this exception in our trace file, however, we see startup 
contentions between applications every single day multiple times a day.  
They usually are handled automattically by boneCP which retries to 
connection again after (n) seconds and these subsequent connections usually 
succeed.  As far as shutdown issues - honestly, we see them often enough 
that we have chosen not to use the H2 database in production yet.  Are 
applications are controlled from a main GUI and they are typically started 
and stopped simultaneously.  Since we are using the AUTO_SERVER option we 
assume these issues have to do with race conditions and/or timing with the 
embedded server stopping at the same time the non-embedded connections are 
stopping.

As far as reproducible exceptions or corrupting the database.  No, I cannot 
make bad issues happen on command.  We tend to start our applications and 
run them for a long time (days), so we do not make a point of starting and 
stopping them constantly.

- Are there any other exceptions (maybe in the .trace.db file)?
    Could you send them please?

In this case, I have posted the entire contents of the trace file.

- Do you still have any .trace.db files, and if yes could you send them?

I can look for other trace files, however the one for this exception has 
been posted in its entirety. 

- Could you send the .h2.db file where this exception occurs?
I maybe able to post it to an ftp server on Monday - but I would have to 
send you connection details directly not on the forum.  I have not been 
able to confirm the database file is corrupted yet since I did not run it 
again after the exception, but I will take your word for it.  Would you be 
interested in downloading it from an ftp server?


-- 
You received this message because you are subscribed to the Google Groups "H2 
Database" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/h2-database.
For more options, visit https://groups.google.com/d/optout.

Reply via email to