Hi,
We are having a problem, for a while, that is difficult to isolate.
Our ETL includes the following steps:
1) Open JDBC connection, add data to a table, commit, close connection
2) Open JDBC connection, some ALTER TALBLE statements, commit, close
connection
Occasionally, we get the following during step 2) :
java.sql.SQLException: ALTER TABLE: set READ or INSERT ONLY not possible
with outstanding updates (wait until updates are flushed)
at
nl.cwi.monetdb.jdbc.MonetConnection$ResponseList.executeQuery(MonetConnection.java:2732)
What puzzles me is that step one is completed when this happens, the commit
is done and the connection is closed (we triple-checked that is actually is
closed).
Notice that inserting a sleep between the to steps makes it work correctly.
As I said, this is hard to isolate and reproduce. Still, can anyone guess
what is exactly happening?
Can it be that a background process is still flushing updates from step 1) ?
Even if the JDBC connection is closed ?
Can we force a blocking flush, so that it doesn't return until it's safe?
If not, how can we know when updates are flushed?
Thanks, Roberto