Updated Branches: refs/heads/trunk 29453d679 -> b588d6cb9
https://issues.apache.org/jira/browse/AMQ-4643 - update to jdbc checkpoint to validate connection before declaring success, is more bullit proof in preventing an early restart even if start is now deferred till after stop completes Project: http://git-wip-us.apache.org/repos/asf/activemq/repo Commit: http://git-wip-us.apache.org/repos/asf/activemq/commit/b588d6cb Tree: http://git-wip-us.apache.org/repos/asf/activemq/tree/b588d6cb Diff: http://git-wip-us.apache.org/repos/asf/activemq/diff/b588d6cb Branch: refs/heads/trunk Commit: b588d6cb9b3503343f9426caa6aa765d0cc1f83c Parents: 29453d6 Author: gtully <[email protected]> Authored: Tue Sep 3 16:34:25 2013 +0100 Committer: gtully <[email protected]> Committed: Tue Sep 3 16:35:08 2013 +0100 ---------------------------------------------------------------------- .../org/apache/activemq/store/jdbc/JDBCPersistenceAdapter.java | 3 +++ .../test/java/org/apache/activemq/store/jdbc/JDBCTestMemory.java | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/activemq/blob/b588d6cb/activemq-jdbc-store/src/main/java/org/apache/activemq/store/jdbc/JDBCPersistenceAdapter.java ---------------------------------------------------------------------- diff --git a/activemq-jdbc-store/src/main/java/org/apache/activemq/store/jdbc/JDBCPersistenceAdapter.java b/activemq-jdbc-store/src/main/java/org/apache/activemq/store/jdbc/JDBCPersistenceAdapter.java index 0c12087..7ff4ae0 100755 --- a/activemq-jdbc-store/src/main/java/org/apache/activemq/store/jdbc/JDBCPersistenceAdapter.java +++ b/activemq-jdbc-store/src/main/java/org/apache/activemq/store/jdbc/JDBCPersistenceAdapter.java @@ -665,6 +665,9 @@ public class JDBCPersistenceAdapter extends DataSourceServiceSupport implements Connection connection = null; try { connection = getDataSource().getConnection(); + if (!connection.isValid(10)) { + throw new IOException("isValid(10) failed for: " + connection); + } } catch (SQLException e) { LOG.debug("Could not get JDBC connection for checkpoint: " + e); throw IOExceptionSupport.create(e); http://git-wip-us.apache.org/repos/asf/activemq/blob/b588d6cb/activemq-unit-tests/src/test/java/org/apache/activemq/store/jdbc/JDBCTestMemory.java ---------------------------------------------------------------------- diff --git a/activemq-unit-tests/src/test/java/org/apache/activemq/store/jdbc/JDBCTestMemory.java b/activemq-unit-tests/src/test/java/org/apache/activemq/store/jdbc/JDBCTestMemory.java index 6699d33..e8bda07 100644 --- a/activemq-unit-tests/src/test/java/org/apache/activemq/store/jdbc/JDBCTestMemory.java +++ b/activemq-unit-tests/src/test/java/org/apache/activemq/store/jdbc/JDBCTestMemory.java @@ -27,6 +27,7 @@ import junit.framework.TestCase; import org.apache.activemq.ActiveMQConnectionFactory; import org.apache.activemq.broker.BrokerService; import org.apache.derby.jdbc.EmbeddedDataSource; +import org.junit.Ignore; public class JDBCTestMemory extends TestCase { @@ -82,7 +83,8 @@ public class JDBCTestMemory extends TestCase { sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE); dest = sess.createQueue("test"); } - + + @Ignore("requires human input to terminate!") public void testRecovery() throws Exception { init(); MessageProducer producer = sess.createProducer(dest);
