“… I am currently using DB2 to do unit tests, but it is sometime quite slow. I would need a good in-memory database that would include all the feature of DB2. Does this type of in-memory database exist, or do they only allow standard SQL feature?
EDIT The DB2 Database is on a remote server, so I would need a solution to replicate the schema of that database on a local in-memory database to speed up the tests…”
One of the answers suggested Derby:
“… I would need a good in-memory database that would include all the feature of DB2.
Derby (ex Cloudscape) is DB2’s language compatible. And it has an in memory mode.
Maybe also have a look at H2 (with the DB2 compatibility mode). But even if H2 would be faster, I would consider Derby in your case…”
Hmm. Let’s look at Derby:
“… Apache Derby, an Apache DB subproject, is a relational database implemented in Java. Its footprint is so small you can easily embed it in any Java-based solution. In addition to its embedded framework, Derby supports a more familiar client/server framework with the Derby Network Server. This tutorial introduces Derby’s basic features and walks you through using both frameworks; first the embedded framework using the Derby Embedded JDBC driver, then the Network Server framework using the Derby Network Client JDBC driver…”
The Wikipedia entry also says that Sun markets Derby now as Java DB. Maybe we can look at H2 later (and it’s DB2 compatibility mode and see what’s it’s all about. If you’re curious as to where Derby is being used, have a look at it – it’s quite a list.