Frequently Asked QuestionsAre there Known Bugs? When is the Next Release?Is this Database Engine Open Source? My Query is Slow How to Create a New Database? How to Connect to a Database? Where are the Database Files Stored? What is the Size Limit (Maximum Size) of a Database? Is it Reliable? Why is Opening my Database Slow? Is the GCJ Version Stable? Faster? How to Translate this Project? Are there Known Bugs? When is the Next Release?Usually, bugs get fixes as they are found. There is a release every few weeks. Here is the list of known and confirmed issues:
Is this Database Engine Open Source?Yes. It is free to use and distribute, and the source code is included. See also under license. My Query is SlowSlow SELECT (or DELETE, UPDATE, MERGE) statement can have multiple reasons. Follow this checklist:
How to Create a New Database?By default, a new database is automatically created if it does not yet exist. How to Connect to a Database?
The database driver is Class.forName("org.h2.Driver"); Connection conn = DriverManager.getConnection("jdbc:h2:~/test", "sa", ""); Where are the Database Files Stored?
When using database URLs like What is the Size Limit (Maximum Size) of a Database?Is it Reliable?Some users have reported that after a power failure, the database can sometimes not be opened because the index file is corrupt. In that case, the index file can be deleted (it is automatically re-created). To avoid this, append ;LOG=2 to the database URL. See also: SET LOG. This problem will be solved using the new 'page store' mechanism (currently experimental). That is not easy to say. It is still a quite new product. A lot of tests have been written, and the code coverage of these tests is very high. Randomized stress tests are run regularly. But there are probably still bugs that have not yet been found (as with most software). Some features are known to be dangerous, they are only supported for situations where performance is more important than reliability. Those dangerous features are:
In addition to that, running out of memory should be avoided. In older versions, OutOfMemory errors while using the database could corrupt a databases. Areas that are not fully tested:
Areas considered Experimental:
Why is Opening my Database Slow?If it takes a long time to open a database, in most cases it was not closed the last time. This is specially a problem for larger databases. To close a database, close all connections to it before the application ends, or execute the command SHUTDOWN. The database is also closed when the virtual machine exits normally by using a shutdown hook. However killing a Java process or calling Runtime.halt will prevent this. The reason why opening is slow in this situations is that indexes are re-created. If you can not guarantee the database is closed, consider using SET LOG 2 (see SQL Grammar). To find out what the problem is, open the database in embedded mode using the H2 Console. This will print progress information. If you have many 'Creating index' lines it is an indication that the database was not closed the last time. Other possible reasons are: the database is very big (many GB), or contains linked tables that are slow to open. Is the GCJ Version Stable? Faster?The GCJ version is not as stable as the Java version. When running the regression test with the GCJ version, sometimes the application just stops at what seems to be a random point without error message. Currently, the GCJ version is also slower than when using the Sun VM. However, the startup of the GCJ version is faster than when using a VM. How to Translate this Project?For more information, see Build/Translating. |