Sperren Sie die Oracle-Datenbank, bevor Sie die Skripts zum Löschen / Laden von Daten ausführen
Wir führen jeden Mitternacht Junit- und Selenium-Testfälle von CI durch. Wir füllen die Daten mit dem Maven-SQL-Plugin wie folgt vor.
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>sql-maven-plugin</artifactId>
<version>1.3</version>
<executions>
<execution>
<id>create-database-tables</id>
<phase>process-test-resources</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<autocommit>false</autocommit>
<onError>continue</onError>
<srcFiles>
<srcFile>../sql/delete_data.sql</srcFile>
<srcFile>../sql/load_data.sql</srcFile>
</srcFiles>
</configuration>
</execution>
</executions>
</plugin>
Wir sind häufig mit DB-Deadlocks konfrontiert, da verschiedene Benutzer gleichzeitig Builds erstellen. Die Lösung bestand darin, die Datenbank zu sperren, bevor die DB-Skripte ausgeführt werden.
Können wir den DB-Zugriff vor dem Ausführen der Skripte sperren und nach dem Ausführen der Skripte entsperren?