|
@@ -1100,10 +1100,11 @@ private:
|
|
|
// A shortcut typedef to keep the code concise.
|
|
|
typedef DatabaseAccessor Accessor;
|
|
|
public:
|
|
|
- DatabaseJournalReader(shared_ptr<Accessor> accessor, int zone_id,
|
|
|
- const RRClass& rrclass, uint32_t begin,
|
|
|
+ DatabaseJournalReader(shared_ptr<Accessor> accessor, const Name& zone,
|
|
|
+ int zone_id, const RRClass& rrclass, uint32_t begin,
|
|
|
uint32_t end) :
|
|
|
- accessor_(accessor), rrclass_(rrclass), finished_(false)
|
|
|
+ accessor_(accessor), zone_(zone), rrclass_(rrclass),
|
|
|
+ begin_(begin), end_(end), finished_(false)
|
|
|
{
|
|
|
context_ = accessor_->getDiffs(zone_id, begin, end);
|
|
|
}
|
|
@@ -1118,6 +1119,10 @@ public:
|
|
|
string data[Accessor::COLUMN_COUNT];
|
|
|
if (!context_->getNext(data)) {
|
|
|
finished_ = true;
|
|
|
+ LOG_DEBUG(logger, DBG_TRACE_BASIC,
|
|
|
+ DATASRC_DATABASE_JOURNALREADER_END).
|
|
|
+ arg(zone_).arg(rrclass_).arg(accessor_->getDBName()).
|
|
|
+ arg(begin_).arg(end_);
|
|
|
return (ConstRRsetPtr());
|
|
|
}
|
|
|
|
|
@@ -1128,9 +1133,15 @@ public:
|
|
|
RRTTL(data[Accessor::TTL_COLUMN])));
|
|
|
rrset->addRdata(rdata::createRdata(rrset->getType(), rrclass_,
|
|
|
data[Accessor::RDATA_COLUMN]));
|
|
|
+ LOG_DEBUG(logger, DBG_TRACE_DETAILED,
|
|
|
+ DATASRC_DATABASE_JOURNALREADER_NEXT).
|
|
|
+ arg(rrset->getName()).arg(rrset->getType()).
|
|
|
+ arg(zone_).arg(rrclass_).arg(accessor_->getDBName());
|
|
|
return (rrset);
|
|
|
} catch (const Exception& ex) {
|
|
|
- // TBD: log it.
|
|
|
+ LOG_ERROR(logger, DATASRC_DATABASE_JOURNALREADR_BADDATA).
|
|
|
+ arg(zone_).arg(rrclass_).arg(accessor_->getDBName()).
|
|
|
+ arg(begin_).arg(end_).arg(ex.what());
|
|
|
isc_throw(DataSourceError, "Failed to create RRset from diff on "
|
|
|
<< accessor_->getDBName());
|
|
|
}
|
|
@@ -1138,8 +1149,11 @@ public:
|
|
|
|
|
|
private:
|
|
|
shared_ptr<Accessor> accessor_;
|
|
|
+ const Name zone_;
|
|
|
const RRClass rrclass_;
|
|
|
Accessor::IteratorContextPtr context_;
|
|
|
+ const uint32_t begin_;
|
|
|
+ const uint32_t end_;
|
|
|
bool finished_;
|
|
|
};
|
|
|
|
|
@@ -1161,17 +1175,19 @@ DatabaseClient::getJournalReader(const isc::dns::Name& zone,
|
|
|
const pair<ZoneJournalReader::Result, ZoneJournalReaderPtr> ret(
|
|
|
ZoneJournalReader::SUCCESS,
|
|
|
ZoneJournalReaderPtr(new DatabaseJournalReader(jnl_accessor,
|
|
|
+ zone,
|
|
|
zoneinfo.second,
|
|
|
rrclass_,
|
|
|
begin_serial,
|
|
|
end_serial)));
|
|
|
+ LOG_DEBUG(logger, DBG_TRACE_BASIC,
|
|
|
+ DATASRC_DATABASE_JOURNALREADER_START).arg(zone).arg(rrclass_).
|
|
|
+ arg(jnl_accessor->getDBName()).arg(begin_serial).arg(end_serial);
|
|
|
return (ret);
|
|
|
} catch (const NoSuchSerial&) {
|
|
|
return (pair<ZoneJournalReader::Result, ZoneJournalReaderPtr>(
|
|
|
ZoneJournalReader::NO_SUCH_SERIAL,
|
|
|
ZoneJournalReaderPtr()));
|
|
|
- } catch (...) {
|
|
|
- throw;
|
|
|
}
|
|
|
}
|
|
|
}
|