Author: gnodet
Date: Fri Apr 30 08:31:53 2010
New Revision: 939585
URL: http://svn.apache.org/viewvc?rev=939585&view=rev
Log:
FELIX-2130: Karaf] Failover Clustering Mechanism - Database shutdown / loss
results in all Karaf instances becoming Active on restart of that DB
Modified:
felix/trunk/karaf/main/src/main/java/org/apache/felix/karaf/main/Main.java
felix/trunk/karaf/main/src/main/java/org/apache/felix/karaf/main/OracleJDBCLock.java
Modified:
felix/trunk/karaf/main/src/main/java/org/apache/felix/karaf/main/Main.java
URL:
http://svn.apache.org/viewvc/felix/trunk/karaf/main/src/main/java/org/apache/felix/karaf/main/Main.java?rev=939585&r1=939584&r2=939585&view=diff
==============================================================================
--- felix/trunk/karaf/main/src/main/java/org/apache/felix/karaf/main/Main.java
(original)
+++ felix/trunk/karaf/main/src/main/java/org/apache/felix/karaf/main/Main.java
Fri Apr 30 08:31:53 2010
@@ -1084,7 +1084,6 @@ public class Main {
LOG.info("Lost the lock, stopping this instance
...");
setStartLevel(lockStartLevel);
}
- break;
} else if (!lockLogged) {
LOG.info("Waiting for the lock ...");
lockLogged = true;
Modified:
felix/trunk/karaf/main/src/main/java/org/apache/felix/karaf/main/OracleJDBCLock.java
URL:
http://svn.apache.org/viewvc/felix/trunk/karaf/main/src/main/java/org/apache/felix/karaf/main/OracleJDBCLock.java?rev=939585&r1=939584&r2=939585&view=diff
==============================================================================
---
felix/trunk/karaf/main/src/main/java/org/apache/felix/karaf/main/OracleJDBCLock.java
(original)
+++
felix/trunk/karaf/main/src/main/java/org/apache/felix/karaf/main/OracleJDBCLock.java
Fri Apr 30 08:31:53 2010
@@ -196,7 +196,23 @@ public class OracleJDBCLock implements L
LOG.severe("Lost lock!");
return false;
}
- return true;
+ PreparedStatement statement = null;
+ try {
+ String up = "SELECT * FROM " + table;
+ statement = lockConnection.prepareStatement(up);
+ return statement.execute();
+ } catch (Exception e) {
+ LOG.warning("Failed to access database. " + e.getMessage());
+ } finally {
+ if (statement != null) {
+ try {
+ statement.close();
+ } catch (SQLException e) {
+ LOG.severe("Failed to close statement" + e);
+ }
+ }
+ }
+ return false;
}
/**