NuBuMu

Wednesday, November 19, 2008

Auto-commit mode en iBatis con ScriptRunner

java.sql.SQLException: rollback() should not be called while in auto-commit mode.
at net.sourceforge.jtds.jdbc.ConnectionJDBC2.rollback(ConnectionJDBC2.java:2031)
at org.apache.commons.dbcp.DelegatingConnection.rollback(DelegatingConnection.java:328)
at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.rollback(PoolingDataSource.java:312)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

Si alguien se encuentra este problemilla del cual parece no haber mucha documentacion... La solucion es leerse bien los parametros del constructor :)










public void runScript(String file) throws FileNotFoundException, SQLException, IOException{


Connection conn = this.getSqlMapClientTemplate().getSqlMapClient().getDataSource().getConnection();
conn.setAutoCommit(false);
if(conn!=null){
ScriptRunner runner = new ScriptRunner (conn,false,true);
runner.runScript( new FileReader(file));
}else{
throw new SQLException("Connection is null");
}
}


0 Comments:

Post a Comment

<< Home