diff options
| author | Stephen D. Huston <shuston@apache.org> | 2010-10-21 23:09:00 +0000 |
|---|---|---|
| committer | Stephen D. Huston <shuston@apache.org> | 2010-10-21 23:09:00 +0000 |
| commit | 6b7572c57dd663f7b3e21746272a9c04f413c8d1 (patch) | |
| tree | e13c2dfe341dcaf90c5edf067313ee0098357186 /cpp/src/qpid/store/MessageStorePlugin.cpp | |
| parent | 7ecaee585691df73928e3bb2248d8977372d1041 (diff) | |
| download | qpid-python-6b7572c57dd663f7b3e21746272a9c04f413c8d1.tar.gz | |
Add hybrid SQL-CLFS store that can be used on Windows systems Vista, Win Server 2008 and up - these have the Common Log File System facility. The CLFS store uses CLFS to store/recover messages and transactions instead of SQL. SQL still holds queues, bindings, exchanges, configs.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1026175 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/store/MessageStorePlugin.cpp')
| -rw-r--r-- | cpp/src/qpid/store/MessageStorePlugin.cpp | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/cpp/src/qpid/store/MessageStorePlugin.cpp b/cpp/src/qpid/store/MessageStorePlugin.cpp index f85787d1a3..2a8d971987 100644 --- a/cpp/src/qpid/store/MessageStorePlugin.cpp +++ b/cpp/src/qpid/store/MessageStorePlugin.cpp @@ -61,11 +61,13 @@ MessageStorePlugin::StoreOptions::StoreOptions(const std::string& name) : void MessageStorePlugin::earlyInitialize (qpid::Plugin::Target& target) { - qpid::broker::Broker* broker = + qpid::broker::Broker* b = dynamic_cast<qpid::broker::Broker*>(&target); - if (0 == broker) + if (0 == b) return; // Only listen to Broker targets + broker = b; + // See if there are any storage provider plugins ready. If not, we can't // do a message store. qpid::Plugin::earlyInitAll(*this); @@ -412,8 +414,12 @@ MessageStorePlugin::recover(broker::RecoveryManager& recoverer) provider->second->recoverExchanges(recoverer, exchanges); provider->second->recoverQueues(recoverer, queues); provider->second->recoverBindings(recoverer, exchanges, queues); - provider->second->recoverTransactions(recoverer, dtxMap); + // Important to recover messages before transactions in the SQL-CLFS + // case. If this becomes a problem, it may be possible to resolve it. + // If in doubt please raise a jira and notify Steve Huston + // <shuston@riverace.com>. provider->second->recoverMessages(recoverer, messages, messageQueueMap); + provider->second->recoverTransactions(recoverer, dtxMap); // Enqueue msgs where needed. for (MessageQueueMap::const_iterator i = messageQueueMap.begin(); i != messageQueueMap.end(); |
