summaryrefslogtreecommitdiff
path: root/qpid/java/bdbstore/src/main
diff options
context:
space:
mode:
authorRobert Godfrey <rgodfrey@apache.org>2012-04-13 08:48:34 +0000
committerRobert Godfrey <rgodfrey@apache.org>2012-04-13 08:48:34 +0000
commit5d9f4b9130209b2cd992fcdda880fc370bd64acf (patch)
tree5314536196732c9d2d05e7453092d8ae786d7575 /qpid/java/bdbstore/src/main
parent06603e5c3df2ae0e1a47c9a17e6378f8f8e030d7 (diff)
downloadqpid-python-5d9f4b9130209b2cd992fcdda880fc370bd64acf.tar.gz
QPID-3917 : Fix failing BDB test, remove unusued readOnly flag
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1325661 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/bdbstore/src/main')
-rw-r--r--qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/AbstractBDBMessageStore.java58
-rw-r--r--qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBMessageStore.java14
2 files changed, 23 insertions, 49 deletions
diff --git a/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/AbstractBDBMessageStore.java b/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/AbstractBDBMessageStore.java
index 3f394b79a7..439ec8ac4f 100644
--- a/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/AbstractBDBMessageStore.java
+++ b/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/AbstractBDBMessageStore.java
@@ -156,8 +156,6 @@ public abstract class AbstractBDBMessageStore implements MessageStore
protected TransactionConfig _transactionConfig = new TransactionConfig();
- private boolean _readOnly = false;
-
private MessageStoreRecoveryHandler _messageRecoveryHandler;
private TransactionLogRecoveryHandler _tlogRecoveryHandler;
@@ -239,53 +237,36 @@ public abstract class AbstractBDBMessageStore implements MessageStore
_storeLocation = storeLocation;
- configure(environmentPath, false);
- }
-
- /**
- * @param environmentPath location for the store to be created in/recovered from
- * @param readonly if true then don't allow modifications to an existing store, and don't create a new store if none exists
- * @return whether or not a new store environment was created
- * @throws AMQStoreException
- * @throws DatabaseException
- */
- protected void configure(File environmentPath, boolean readonly) throws AMQStoreException, DatabaseException
- {
- if (_stateManager.isInState(State.INITIAL))
- {
- // TODO - currently required for BDBUpgrade and BDBMessageStoreTest
- _stateManager.stateTransition(State.INITIAL, State.CONFIGURING);
- }
-
- _readOnly = readonly;
-
LOGGER.info("Configuring BDB message store");
- setupStore(environmentPath, readonly);
+ setupStore(environmentPath);
}
/**
- * Move the store state from CONFIGURING to ACTIVE.
+ * Move the store state from INITIAL to ACTIVE without actually recovering.
*
* This is required if you do not want to perform recovery of the store data
*
* @throws AMQStoreException if the store is not in the correct state
*/
- public void start() throws AMQStoreException
+ void startWithNoRecover() throws AMQStoreException
{
- _stateManager.stateTransition(State.CONFIGURING, State.ACTIVE);
+ _stateManager.attainState(State.CONFIGURING);
+ _stateManager.attainState(State.CONFIGURED);
+ _stateManager.attainState(State.RECOVERING);
+ _stateManager.attainState(State.ACTIVE);
}
- protected void setupStore(File storePath, boolean readonly) throws DatabaseException, AMQStoreException
+ protected void setupStore(File storePath) throws DatabaseException, AMQStoreException
{
- _environment = createEnvironment(storePath, readonly);
+ _environment = createEnvironment(storePath);
new Upgrader(_environment).upgradeIfNecessary();
- openDatabases(readonly);
+ openDatabases();
}
- protected Environment createEnvironment(File environmentPath, boolean readonly) throws DatabaseException
+ protected Environment createEnvironment(File environmentPath) throws DatabaseException
{
LOGGER.info("BDB message store using environment path " + environmentPath.getAbsolutePath());
EnvironmentConfig envConfig = new EnvironmentConfig();
@@ -306,7 +287,7 @@ public abstract class AbstractBDBMessageStore implements MessageStore
_transactionConfig.setReadCommitted(true);
//This prevents background threads running which will potentially update the store.
- envConfig.setReadOnly(readonly);
+ envConfig.setReadOnly(false);
try
{
return new Environment(environmentPath, envConfig);
@@ -336,14 +317,14 @@ public abstract class AbstractBDBMessageStore implements MessageStore
return _environment;
}
- private void openDatabases(boolean readonly) throws DatabaseException
+ private void openDatabases() throws DatabaseException
{
DatabaseConfig dbConfig = new DatabaseConfig();
dbConfig.setTransactional(true);
dbConfig.setAllowCreate(true);
//This is required if we are wanting read only access.
- dbConfig.setReadOnly(readonly);
+ dbConfig.setReadOnly(false);
_messageMetaDataDb = openDatabase(MESSAGEMETADATADB_NAME, dbConfig);
_queueDb = openDatabase(QUEUEDB_NAME, dbConfig);
@@ -446,13 +427,10 @@ public abstract class AbstractBDBMessageStore implements MessageStore
{
if (_environment != null)
{
- if(!_readOnly)
- {
- // Clean the log before closing. This makes sure it doesn't contain
- // redundant data. Closing without doing this means the cleaner may not
- // get a chance to finish.
- _environment.cleanLog();
- }
+ // Clean the log before closing. This makes sure it doesn't contain
+ // redundant data. Closing without doing this means the cleaner may not
+ // get a chance to finish.
+ _environment.cleanLog();
_environment.close();
}
}
diff --git a/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBMessageStore.java b/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBMessageStore.java
index 4484c140e0..e5aeed57cd 100644
--- a/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBMessageStore.java
+++ b/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBMessageStore.java
@@ -50,18 +50,14 @@ public class BDBMessageStore extends AbstractBDBMessageStore
private final CommitThread _commitThread = new CommitThread("Commit-Thread");
@Override
- protected void setupStore(File storePath, boolean readonly) throws DatabaseException, AMQStoreException
+ protected void setupStore(File storePath) throws DatabaseException, AMQStoreException
{
- super.setupStore(storePath, readonly);
+ super.setupStore(storePath);
- if (!readonly)
- {
- startCommitThread();
- }
+ startCommitThread();
}
- @Override
- protected Environment createEnvironment(File environmentPath, boolean readonly) throws DatabaseException
+ protected Environment createEnvironment(File environmentPath) throws DatabaseException
{
LOGGER.info("BDB message store using environment path " + environmentPath.getAbsolutePath());
EnvironmentConfig envConfig = new EnvironmentConfig();
@@ -82,7 +78,7 @@ public class BDBMessageStore extends AbstractBDBMessageStore
_transactionConfig.setReadCommitted(true);
//This prevents background threads running which will potentially update the store.
- envConfig.setReadOnly(readonly);
+ envConfig.setReadOnly(false);
try
{
return new Environment(environmentPath, envConfig);