Hello,
I have a problem when using savepoints in the following scenario:
public int myMethod(Connection conn){
Savepoint savepoint = null;
try {
// Create savepoint
savepoint = conn.setSavepoint();
// Do some SQL commands
int rows = doSQLStuff(conn);
// Release savepoint
conn.releaseSavepoint(savepoint);
return rows;
} catch (SQLException e) {
if (savepoint != null) {
try {
conn.rollback(savepoint);
} catch (SQLException e1) {
handleSQLException(e1);
}
}
handleSQLException(e);
}
return 0;
}
Using driver: package: com.sap.dbtech.jdbc, MaxDB JDBC Driver, MySQL MaxDB,
7.6.0 Build 012-000-004-339
The Connection used in this examples was initialized with "Auto Commit =
false".
The Connection will be committed after calling the example method several
times.
But when calling the method 51 times I've got the error: [-1111]: Too many
savepoints
While looking at the source code, I saw, that the method
ConnectionSapDB.releaseSavepoint(Savepoint)
doesn't communicates with the server thus the savepoint will not be released
on the server side.
Is there a "RELEASE SAVEPOINT [xxx]" command in the server protocol?
Regards,
Kolja