CIからのJunitとSeleniumのテストケースを毎晩深夜に実行しています。次のように、Maven-SQLプラグインを使用してデータを事前入力しています。
<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>
さまざまなユーザーによる同時ビルドが原因で、DBのデッドロックに頻繁に直面しています。私たちが考えた解決策は、DBスクリプトを実行する前にデータベースをロックすることです。
スクリプトを実行する前にDBアクセスをロックし、スクリプトの実行後にロックを解除できますか?