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