Return-Path: Delivered-To: apmail-activemq-commits-archive@www.apache.org Received: (qmail 88396 invoked from network); 9 Sep 2008 12:37:48 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 9 Sep 2008 12:37:48 -0000 Received: (qmail 90233 invoked by uid 500); 9 Sep 2008 12:37:46 -0000 Delivered-To: apmail-activemq-commits-archive@activemq.apache.org Received: (qmail 90137 invoked by uid 500); 9 Sep 2008 12:37:45 -0000 Mailing-List: contact commits-help@activemq.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@activemq.apache.org Delivered-To: mailing list commits@activemq.apache.org Received: (qmail 89989 invoked by uid 99); 9 Sep 2008 12:37:45 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 09 Sep 2008 05:37:45 -0700 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 09 Sep 2008 12:36:55 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id A5514238889B; Tue, 9 Sep 2008 05:37:26 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r693449 - in /activemq/trunk/activemq-core/src: main/java/org/apache/activemq/store/jdbc/ test/java/org/apache/activemq/broker/ft/ Date: Tue, 09 Sep 2008 12:37:25 -0000 To: commits@activemq.apache.org From: gtully@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20080909123726.A5514238889B@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: gtully Date: Tue Sep 9 05:37:25 2008 New Revision: 693449 URL: http://svn.apache.org/viewvc?rev=693449&view=rev Log: AMQ-1931 - expose lockAcquireSleepInterval on DefaultDatabaseLocker and JDBCPersistenceAdapter Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/store/jdbc/DefaultDatabaseLocker.java activemq/trunk/activemq-core/src/main/java/org/apache/activemq/store/jdbc/JDBCPersistenceAdapter.java activemq/trunk/activemq-core/src/test/java/org/apache/activemq/broker/ft/JDBCQueueMasterSlaveTest.java Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/store/jdbc/DefaultDatabaseLocker.java URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/store/jdbc/DefaultDatabaseLocker.java?rev=693449&r1=693448&r2=693449&view=diff ============================================================================== --- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/store/jdbc/DefaultDatabaseLocker.java (original) +++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/store/jdbc/DefaultDatabaseLocker.java Tue Sep 9 05:37:25 2008 @@ -16,6 +16,7 @@ */ package org.apache.activemq.store.jdbc; +import java.io.IOException; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; @@ -32,13 +33,19 @@ * @version $Revision: $ */ public class DefaultDatabaseLocker implements DatabaseLocker { + public static final long DEFAULT_LOCK_ACQUIRE_SLEEP_INTERVAL = 1000; private static final Log LOG = LogFactory.getLog(DefaultDatabaseLocker.class); private final DataSource dataSource; private final Statements statements; - private long sleepTime = 1000; + private long lockAcquireSleepInterval = DEFAULT_LOCK_ACQUIRE_SLEEP_INTERVAL; + private Connection connection; private boolean stopping; + public DefaultDatabaseLocker(JDBCPersistenceAdapter persistenceAdapter) throws IOException { + this(persistenceAdapter.getLockDataSource(), persistenceAdapter.getStatements()); + } + public DefaultDatabaseLocker(DataSource dataSource, Statements statements) { this.dataSource = dataSource; this.statements = statements; @@ -80,8 +87,8 @@ } } - LOG.debug("Sleeping for " + sleepTime + " milli(s) before trying again to get the lock..."); - Thread.sleep(sleepTime); + LOG.debug("Sleeping for " + lockAcquireSleepInterval + " milli(s) before trying again to get the lock..."); + Thread.sleep(lockAcquireSleepInterval); } LOG.info("Becoming the master on dataSource: " + dataSource); @@ -118,4 +125,12 @@ } return result; } + + public long getLockAcquireSleepInterval() { + return lockAcquireSleepInterval; + } + + public void setLockAcquireSleepInterval(long lockAcquireSleepInterval) { + this.lockAcquireSleepInterval = lockAcquireSleepInterval; + } } Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/store/jdbc/JDBCPersistenceAdapter.java URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/store/jdbc/JDBCPersistenceAdapter.java?rev=693449&r1=693448&r2=693449&view=diff ============================================================================== --- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/store/jdbc/JDBCPersistenceAdapter.java (original) +++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/store/jdbc/JDBCPersistenceAdapter.java Tue Sep 9 05:37:25 2008 @@ -78,6 +78,7 @@ private boolean useExternalMessageReferences; private boolean useDatabaseLock = true; private long lockKeepAlivePeriod = 1000*30; + private long lockAcquireSleepInterval = DefaultDatabaseLocker.DEFAULT_LOCK_ACQUIRE_SLEEP_INTERVAL; private DatabaseLocker databaseLocker; private boolean createTablesOnStartup = true; private DataSource lockDataSource; @@ -500,7 +501,9 @@ } protected DatabaseLocker createDatabaseLocker() throws IOException { - return new DefaultDatabaseLocker(getLockDataSource(), getStatements()); + DefaultDatabaseLocker locker = new DefaultDatabaseLocker(this); + locker.setLockAcquireSleepInterval(getLockAcquireSleepInterval()); + return locker; } public void setBrokerName(String brokerName) { @@ -527,4 +530,16 @@ public void setLockKeepAlivePeriod(long lockKeepAlivePeriod) { this.lockKeepAlivePeriod = lockKeepAlivePeriod; } + + public long getLockAcquireSleepInterval() { + return lockAcquireSleepInterval; + } + + /* + * millisecond interval between lock acquire attempts, applied to newly created DefaultDatabaseLocker + * not applied if DataBaseLocker is injected. + */ + public void setLockAcquireSleepInterval(long lockAcquireSleepInterval) { + this.lockAcquireSleepInterval = lockAcquireSleepInterval; + } } Modified: activemq/trunk/activemq-core/src/test/java/org/apache/activemq/broker/ft/JDBCQueueMasterSlaveTest.java URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/broker/ft/JDBCQueueMasterSlaveTest.java?rev=693449&r1=693448&r2=693449&view=diff ============================================================================== --- activemq/trunk/activemq-core/src/test/java/org/apache/activemq/broker/ft/JDBCQueueMasterSlaveTest.java (original) +++ activemq/trunk/activemq-core/src/test/java/org/apache/activemq/broker/ft/JDBCQueueMasterSlaveTest.java Tue Sep 9 05:37:25 2008 @@ -25,6 +25,7 @@ JDBCPersistenceAdapter persistenceAdapter = new JDBCPersistenceAdapter(); persistenceAdapter.setDataSource(getExistingDataSource()); persistenceAdapter.setLockKeepAlivePeriod(500); + persistenceAdapter.setLockAcquireSleepInterval(500); master.setPersistenceAdapter(persistenceAdapter); master.start(); }