开发者

What does: "Cannot commit when autoCommit is enabled” error mean?

In my program, I’ve got several threads in pool that each try to write to the DB. The number of threads created is dynamic. When the number of threads created is only one, all works fine. However, when there are multi-thread executing, I get the error:

org.apache.ddlutils.DatabaseOperationException: org.postgresql.util.PSQLException: Cannot commit when autoCommit is enabled.

I’m guessing, perhaps since each thread executes in parallel, two threads are trying to write at the same time and giving this error.

Do you think this is the case, if not, what co开发者_运维百科uld be causing this error?

Otherwise, if what I said is the problem, what I can do to fix it?


In your jdbc code, you should turn off autocommit as soon as you fetch the connection. Something like this:

DataSource datasource = getDatasource(); // fetch your datasource somehow
Connection c = null;
try{
  c = datasource.getConnection();
  c.setAutoCommit(false);
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜