diff options
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(); |
