We are evaluating H2 1.4.190 to embed in our application for the following
use case.
1. Load reference data to H2 from RDBMS on application startup. ( To speed
up application startup, we tried loading multiple tables in parallel. But
this is taking more time than to load the tables serially. Any comments? )
2. select data while processing. This querying can happen in multiple
threads.
3. Updates to data in RDBMS while processing is propogated to H2 via
trigger mechanism. This incremental refresh happens in a separate thread.
As such, concurrent upsert/select will happen.
Connection URL is
jdbc:h2:./H2/DATABASE_SINGLE;TRACE_LEVEL_FILE=0;WRITE_DELAY=1000;LOG=0;AUTOCOMMIT=FALSE;MULTI_THREADED=TRUE;PAGE_SIZE=4096;CACHE_SIZE=16384;LOCK_TIMEOUT=1000;MVCC=TRUE;MV_STORE=TRUE;RETENTION_TIME=1000;DB_CLOSE_ON_EXIT=FALSE
Getting NPE intermittently while testing the following case:
1. CREATE TABLE TEST_TABLE_1 (NAME VARCHAR(4000),ID
NUMERIC(10,0),COLUMN_NEW_1 NUMERIC(10,0),COLUMN_NEW_2
NUMERIC(10,0),COLUMN_NEW_3 NUMERIC(10,0),COLUMN_NEW_4
NUMERIC(10,0),COLUMN_NEW_5 DATE,COLUMN_NEW_6 VARCHAR(1000),COLUMN_NEW_7
NUMERIC(10,0),COLUMN_NEW_8 DATE,COLUMN_NEW_9 VARCHAR(100),COLUMN_NEW_10
DATE,PRIMARY KEY (ID))
2. inserted 1000000 records.
3. started thread to update NAME column in TEST_TABLE_1 querying by ID.
4. started thread to select * from TEST_TABLE_1 querying by ID.
SELECT * FROM TEST_TABLE_1 WHERE ID=? [50000-190]
at
org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
at org.h2.message.DbException.get(DbException.java:168)
at org.h2.message.DbException.convert(DbException.java:295)
at org.h2.command.Command.executeQuery(Command.java:213)
at
org.h2.jdbc.JdbcPreparedStatement.executeQuery(JdbcPreparedStatement.java:108)
at main.SelectThread.run(SelectThread.java:93)
Caused by: java.lang.NullPointerException
at org.h2.mvstore.db.MVPrimaryIndex.getRow(MVPrimaryIndex.java:213)
at org.h2.mvstore.db.MVTable.getRow(MVTable.java:463)
at
org.h2.mvstore.db.MVSecondaryIndex$MVStoreCursor.get(MVSecondaryIndex.java:487)
at org.h2.index.IndexCursor.get(IndexCursor.java:288)
at org.h2.table.TableFilter.getValue(TableFilter.java:1026)
at
org.h2.expression.ExpressionColumn.getValue(ExpressionColumn.java:186)
at org.h2.command.dml.Select.queryFlat(Select.java:548)
at org.h2.command.dml.Select.queryWithoutCache(Select.java:654)
at org.h2.command.dml.Query.query(Query.java:341)
at org.h2.command.dml.Query.query(Query.java:309)
at org.h2.command.dml.Query.query(Query.java:1)
at org.h2.command.CommandContainer.query(CommandContainer.java:110)
at org.h2.command.Command.executeQuery(Command.java:201)
... 2 more
--
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 https://groups.google.com/group/h2-database.
For more options, visit https://groups.google.com/d/optout.