Lar*_*rry 5 database postgresql
在我的程序中,我在池中有几个线程,每个线程都尝试写入数据库.创建的线程数是动态的.当创建的线程数只有一个时,一切正常.但是,当有多线程执行时,我收到错误:
org.apache.ddlutils.DatabaseOperationException: org.postgresql.util.PSQLException: Cannot commit when autoCommit is enabled.
我猜,也许因为每个线程并行执行,两个线程正在尝试同时写入并给出此错误.
您是否认为是这种情况,如果不是,可能导致此错误的原因是什么?
否则,如果我说的是问题,我可以做些什么来解决它?
在您的jdbc代码中,您应该在获取连接后立即关闭自动提交.像这样的东西:
DataSource datasource = getDatasource(); // fetch your datasource somehow
Connection c = null;
try{
c = datasource.getConnection();
c.setAutoCommit(false);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
14568 次 |
最近记录: |