summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/broker/PagedQueue.cpp
diff options
context:
space:
mode:
authorAndrew Stitcher <astitcher@apache.org>2014-01-30 23:10:08 +0000
committerAndrew Stitcher <astitcher@apache.org>2014-01-30 23:10:08 +0000
commit8090b6360aede941d76b4e9cf7e983feb2ae2504 (patch)
tree5875148dbcaafe0d79bea14050ffac09f39c4ff4 /cpp/src/qpid/broker/PagedQueue.cpp
parente36486dd627acf54a07b905792a2dd90fb959dee (diff)
downloadqpid-python-8090b6360aede941d76b4e9cf7e983feb2ae2504.tar.gz
QPID-5485: By default use a subdirectory of the data dir called "pq" for
page queue files. If neither data dir nor paging dir are set then error on any attempt to create a paged queue. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1563012 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/broker/PagedQueue.cpp')
-rw-r--r--cpp/src/qpid/broker/PagedQueue.cpp17
1 files changed, 10 insertions, 7 deletions
diff --git a/cpp/src/qpid/broker/PagedQueue.cpp b/cpp/src/qpid/broker/PagedQueue.cpp
index 43208d74ee..afb330489b 100644
--- a/cpp/src/qpid/broker/PagedQueue.cpp
+++ b/cpp/src/qpid/broker/PagedQueue.cpp
@@ -91,13 +91,16 @@ PagedQueue::PagedQueue(const std::string& name_, const std::string& directory, u
: name(name_), pageSize(file.getPageSize()*factor), maxLoaded(m), protocols(p), offset(0), loaded(0), version(0),
expiryPolicy(e)
{
- path = file.open(name, directory);
- QPID_LOG(debug, "PagedQueue[" << path << "]");
+ if (directory.empty()) {
+ throw qpid::Exception(QPID_MSG("Cannot create paged queue: No paged queue directory specified"));
+ }
+ file.open(name, directory);
+ QPID_LOG(debug, "PagedQueue[" << name << "]");
}
PagedQueue::~PagedQueue()
{
- file.close(path);
+ file.close();
}
size_t PagedQueue::size()
@@ -133,7 +136,7 @@ bool PagedQueue::deleted(const QueueCursor& cursor)
void PagedQueue::publish(const Message& added)
{
if (encodedSize(added) > pageSize) {
- QPID_LOG(error, "Message is larger than page size for queue " << name << ", backed by " << path);
+ QPID_LOG(error, "Message is larger than page size for queue " << name);
throw qpid::framing::PreconditionFailedException(QPID_MSG("Message is larger than page size for queue " << name));
}
Used::reverse_iterator i = used.rbegin();
@@ -143,7 +146,7 @@ void PagedQueue::publish(const Message& added)
}
//used is empty or last page is full, need to add a new page
if (!newPage(added.getSequence()).add(added)) {
- QPID_LOG(error, "Could not add message to paged queue " << name << ", backed by " << path);
+ QPID_LOG(error, "Could not add message to paged queue " << name);
throw qpid::Exception(QPID_MSG("Could not add message to paged queue " << name));
}
}
@@ -388,14 +391,14 @@ void PagedQueue::load(Page& page)
}
page.load(file, protocols, expiryPolicy);
++loaded;
- QPID_LOG(debug, "PagedQueue[" << path << "] loaded page, " << loaded << " pages now loaded");
+ QPID_LOG(debug, "PagedQueue[" << name << "] loaded page, " << loaded << " pages now loaded");
}
void PagedQueue::unload(Page& page)
{
page.unload(file);
--loaded;
- QPID_LOG(debug, "PagedQueue[" << path << "] unloaded page, " << loaded << " pages now loaded");
+ QPID_LOG(debug, "PagedQueue[" << name << "] unloaded page, " << loaded << " pages now loaded");
}