The tests may not break, but the results could be completely different
and passing for the wrong reason.
Seems that we should also set derby.locks.deadlockTrace
http://db.apache.org/derby/docs/10.0/manuals/tuning/perf79.html
and review the trace results, since a lot of the tests just catch an
exception today as the expected test result and don't examine it to
ensure it was the expected type, given a locktimeout will throw a
SQLException.
http://db.apache.org/derby/docs/10.0/manuals/tuning/perf82.html
-Donald
Miłosz Tylenda wrote:
Hi All!
Have anybody experimented with setting default Derby timeout in our test suite?
I have set the timeout to 5 seconds and the test suite execution time felt down
from 34 to 19 minutes on my system. Part of my openjpa-persistence-jdbc pom.xml
looks like this:
<systemProperties>
<property>
<name>openjpa.Log</name>
<value>DefaultLevel=${openjpa.loglevel}</value>
</property>
<property>
<name>openjpa.ConnectionDriverName</name>
<value>org.apache.commons.dbcp.BasicDataSource</value>
</property>
<property>
<name>derby.stream.error.file</name>
<value>target/derby.log</value>
</property>
<property>
<name>derby.locks.waitTimeout</name>
<value>5</value>
</property>
<property>
<name>openjpa.ConnectionProperties</name>
<value>DriverClassName=${connection.driver.name},Url=${connection.url},Username=${connection.username},Password=${connection.password},${dbcp.args}</value>
</property>
</systemProperties>
We could consider setting this permanently. Hope it will not affect
timeout-related tests.
Greetings,
Milosz