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.

Reply via email to