[
https://issues.apache.org/jira/browse/OOZIE-3296?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Peter Bacsko updated OOZIE-3296:
--------------------------------
Description:
Currently we use in-memory HSQLDB for Oozie tests. However, if we switch to
Derby, we can't run all tests in a single suite because we'll get "Too many
open files" error.
The reason is because every testcase creates its own Derby instance and the
previous one is not closed properly. A single Derby instance opens around 40-50
files, so the number of open files keep accumulating.
The following code ensures that Derby is closed after each test:
{noformat}
final String oozieTestDB = System.getProperty("oozie.test.db", "derby");
if (oozieTestDB.equalsIgnoreCase("derby")) {
try {
String jdbcUrl = "jdbc:derby:" + testCaseDir +
"/oozie-derby;shutdown=true";
java.sql.Connection conn = DriverManager.getConnection(jdbcUrl);
conn.close();
} catch (Exception e) {
// this is expected in case of shutdown
log.info("Derby has been shut down");
}
}
{noformat}
was:
Currently we use in-memory HSQLDB for Oozie tests. However, if we switch to
Derby, we can't run all tests in a single suite because we'll get "Too many
open files" error.
This happens before every testcase creates its own Derby instance and the
previous one is not shut down properly. A single Derby instance opens around
40-50 files, so the number of open files keep accumulating.
The following code ensures that Derby is closed after each test:
{noformat}
final String oozieTestDB = System.getProperty("oozie.test.db", "derby");
if (oozieTestDB.equalsIgnoreCase("derby")) {
try {
String jdbcUrl = "jdbc:derby:" + testCaseDir +
"/oozie-derby;shutdown=true";
java.sql.Connection conn = DriverManager.getConnection(jdbcUrl);
conn.close();
} catch (Exception e) {
// this is expected in case of shutdown
log.info("Derby has been shut down");
}
}
{noformat}
> Make sure that Derby is shut down after each testcase
> -----------------------------------------------------
>
> Key: OOZIE-3296
> URL: https://issues.apache.org/jira/browse/OOZIE-3296
> Project: Oozie
> Issue Type: Sub-task
> Reporter: Peter Bacsko
> Assignee: Peter Bacsko
> Priority: Major
>
> Currently we use in-memory HSQLDB for Oozie tests. However, if we switch to
> Derby, we can't run all tests in a single suite because we'll get "Too many
> open files" error.
> The reason is because every testcase creates its own Derby instance and the
> previous one is not closed properly. A single Derby instance opens around
> 40-50 files, so the number of open files keep accumulating.
> The following code ensures that Derby is closed after each test:
> {noformat}
> final String oozieTestDB = System.getProperty("oozie.test.db",
> "derby");
>
> if (oozieTestDB.equalsIgnoreCase("derby")) {
> try {
> String jdbcUrl = "jdbc:derby:" + testCaseDir +
> "/oozie-derby;shutdown=true";
> java.sql.Connection conn =
> DriverManager.getConnection(jdbcUrl);
> conn.close();
> } catch (Exception e) {
> // this is expected in case of shutdown
> log.info("Derby has been shut down");
> }
> }
> {noformat}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)