2008/1/17, Tom Lane
tgl@sss.pgh.pa.us:
>
> Should work. Maybe you're rolling back the transaction later, or
> something like that?
>
> regards, tom lane
>
Thank for the answer first

I use rollback only if throwed an SQL exception.
Here is my code:
*
public* *static* *int* ExecSP(DBParameters dbp, *int* min) *throws*Exception{
CallableStatement cs = *null*;
Connection con = *null*;
Exception errore = *null*;
*int* result =0;
*boolean* someError = *false*;
*try* {
con = DBUtils.*connect*(dbp);
cs = con.prepareCall("{? = call comp(?)}");
cs.registerOutParameter(1, Types.*INTEGER*);
cs.setInt(2, min);
cs.execute();
result = cs.getInt(1);
}
*catch* (SQLException e) {
errore = *new* Exception (""+e.getErrorCode()+": "+
"Error in executing stored procedures for minute: "+ min +" - "+
e.getMessage());
con.rollback();
}
*catch* (Exception e) {
*if* (someError)
errore = e;
*else
*
errore = *new* Exception ("Error in executing stored procedures for minute:
"+ min +" - "+e.getMessage());
con.rollback();
}
*finally* {
*try* {
*if* (cs != *null*)
cs.close();
}
*catch* (SQLException e) {}
cs = *null*;
*try* {
*if* (con != *null*)
con.close();
}
*catch* (SQLException e) {}
con = *null*;
}
*if* (errore != *null*)
*throw* errore;
*else
*
*return* result;
}