Ik ben nu een tijd aan het stoeien met Ibatis om mijn applicatie met Database te kunnen beheren. Nu heb ik echter acties als het creeeren van een tabel en het alteren ervan en dit verloop allemaal via een ScriptRunner en een extern sql-bestand (volgens de tutorial). In dit bestand staan bijvoorbeeld meerdere create table statements. Uiteraard kan het zijn dat er toevallig een foutje in een script sluipt. Graag wil ik dan dat alle eerdere acties ongedaan gemaakt worden, ook voor goed verlopen creaties, om zodoende de database constant te houden.
Ik heb daarbij getracht om vooraf een savepoint aan te maken en wanneer er een exception wordt opgegooid, dat er dan een rollback wordt uitgevoerd naar dit savepoint. Dit blijkt echter niet te werken, want de savepoint is na het uitvoeren van runscript niet meer geldig. Het vermoeden had ik dus dat er ergens binnen runscript een commit was uitgevoerd, waardoor het savepoint uiteraard niet meer geldig is. Maar tijdens het debuggen en doorlopen van de code via mijn IDE kwam ik nergens een commit tegen. Waarom kan ik dan alsnog niet een rollback uitvoeren? Is dat in zijn geheel niet mogelijk bij Ibatis en ScriptRunner? Of zoek ik echt verkeerd?
Zowel aan de connectie als aan de ScriptRunner geef ik aan dat ik geen autocommit wil hebben.
Ik heb daarbij getracht om vooraf een savepoint aan te maken en wanneer er een exception wordt opgegooid, dat er dan een rollback wordt uitgevoerd naar dit savepoint. Dit blijkt echter niet te werken, want de savepoint is na het uitvoeren van runscript niet meer geldig. Het vermoeden had ik dus dat er ergens binnen runscript een commit was uitgevoerd, waardoor het savepoint uiteraard niet meer geldig is. Maar tijdens het debuggen en doorlopen van de code via mijn IDE kwam ik nergens een commit tegen. Waarom kan ik dan alsnog niet een rollback uitvoeren? Is dat in zijn geheel niet mogelijk bij Ibatis en ScriptRunner? Of zoek ik echt verkeerd?
Zowel aan de connectie als aan de ScriptRunner geef ik aan dat ik geen autocommit wil hebben.