db-derby-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alain Kuchta <alain.kuc...@etegent.com>
Subject Problems with very large Batch Prepared Statements
Date Tue, 04 Sep 2012 20:11:08 GMT
Hi all,

                I'm developing a program to move database from some other DBMS database to
a derby database. To accomplish this I'm making a java application and implementing batch
prepared statements.  The batch is very large (13000+ statements). When the program runs I
receive this exception:

Caused by: java.lang.NullPointerException
       at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeBatchElement(Unknown Source)
       at org.apache.derby.impl.jdbc.EmbedStatement.executeBatch(Unknown Source)
       at com.etegent.tools.SqlDataTransferTool.SqlDataMover.transferTable(SqlDataMover.java:207)

The PreparedStatement object used to execute the batch is not null. Also, by querying the
destination database after the program ran, I noticed that all of the rows that I had desired
to move, had been moved. Doing some debugging I noticed that the Vector<E> batchStatements
which is a member of the PreparedStatements object, had extra elements, A LOT of them. 13171
elements were populated and 7309 elements were null. I observed similar behavior with a smaller
set of batchesand I am pretty sure this is typical vector behavior. However, I do not receive
the above exception when using smaller batches. Such as 10 statements. I suppose a work around
for now is to do smaller set of batches. Is this a known limitation of derby? Any idea why
this may be happening?

Alain Kuchta

View raw message