From aa160386929ecf4162592214c75ae577a019be50 Mon Sep 17 00:00:00 2001
From: dugan <dugan@localhost>
Date: Thu, 19 Oct 2006 16:17:53 +0000
Subject: [PATCH] Add support for collecting verifyBackend statistics such as error-count and key-count in an Entry class, so calling methods can access to that information.
---
opends/src/server/org/opends/server/tools/VerifyIndex.java | 2 +-
opends/src/server/org/opends/server/backends/jeb/BackendImpl.java | 5 +++--
opends/src/server/org/opends/server/backends/jeb/VerifyJob.java | 33 +++++++++++++++++++++++++++++++--
3 files changed, 35 insertions(+), 5 deletions(-)
diff --git a/opends/src/server/org/opends/server/backends/jeb/BackendImpl.java b/opends/src/server/org/opends/server/backends/jeb/BackendImpl.java
index 9271dc7..aab7133 100644
--- a/opends/src/server/org/opends/server/backends/jeb/BackendImpl.java
+++ b/opends/src/server/org/opends/server/backends/jeb/BackendImpl.java
@@ -1120,6 +1120,7 @@
* @param configEntry The backend instance configuration entry.
* @param baseDNs The set of base DNs that have been configured for this
* backend.
+ * @param statEntry Optional entry to save stats into.
* @throws ConfigException If an unrecoverable problem arises during
* initialization.
* @throws InitializationException If a problem occurs during initialization
@@ -1128,7 +1129,7 @@
* @throws DirectoryException If a Directory Server error occurs.
*/
public void verifyBackend(VerifyConfig verifyConfig, ConfigEntry configEntry,
- DN[] baseDNs)
+ DN[] baseDNs, Entry statEntry)
throws InitializationException, ConfigException, DirectoryException
{
assert debugEnter(CLASS_NAME, "verifyBackend");
@@ -1154,7 +1155,7 @@
}
VerifyJob verifyJob = new VerifyJob(config, verifyConfig);
- verifyJob.verifyBackend(rootContainer);
+ verifyJob.verifyBackend(rootContainer, statEntry);
}
catch (DatabaseException e)
{
diff --git a/opends/src/server/org/opends/server/backends/jeb/VerifyJob.java b/opends/src/server/org/opends/server/backends/jeb/VerifyJob.java
index f9bbe75..05e72a2 100644
--- a/opends/src/server/org/opends/server/backends/jeb/VerifyJob.java
+++ b/opends/src/server/org/opends/server/backends/jeb/VerifyJob.java
@@ -201,10 +201,11 @@
* Verify the backend.
*
* @param rootContainer The root container that holds the entries to verify.
+ * @param statEntry Optional statistics entry.
* @throws DatabaseException If an error occurs in the JE database.
* @throws JebException If an error occurs in the JE backend.
*/
- public void verifyBackend(RootContainer rootContainer) throws
+ public void verifyBackend(RootContainer rootContainer, Entry statEntry) throws
DatabaseException, JebException
{
@@ -325,6 +326,10 @@
rate = 1000f*keyCount / totalTime;
}
+ addStatEntry(statEntry, "verify-error-count",
+ String.valueOf(errorCount));
+ addStatEntry(statEntry, "verify-key-count",
+ String.valueOf(keyCount));
if (cleanMode)
{
int msgID = MSGID_JEB_VERIFY_CLEAN_FINAL_STATUS;
@@ -345,21 +350,29 @@
message = getMessage(msgID, multiReferenceCount);
logError(ErrorLogCategory.BACKEND, ErrorLogSeverity.NOTICE,
message, msgID);
+ addStatEntry(statEntry, "verify-multiple-reference-count",
+ String.valueOf(multiReferenceCount));
msgID = MSGID_JEB_VERIFY_ENTRY_LIMIT_EXCEEDED_COUNT;
message = getMessage(msgID, entryLimitExceededCount);
logError(ErrorLogCategory.BACKEND, ErrorLogSeverity.NOTICE,
message, msgID);
+ addStatEntry(statEntry, "verify-entry-limit-exceeded-count",
+ String.valueOf(entryLimitExceededCount));
msgID = MSGID_JEB_VERIFY_AVERAGE_REFERENCE_COUNT;
message = getMessage(msgID, averageEntryReferences);
logError(ErrorLogCategory.BACKEND, ErrorLogSeverity.NOTICE,
message, msgID);
+ addStatEntry(statEntry, "verify-average-reference-count",
+ String.valueOf(averageEntryReferences));
msgID = MSGID_JEB_VERIFY_MAX_REFERENCE_COUNT;
message = getMessage(msgID, maxEntryPerValue);
logError(ErrorLogCategory.BACKEND, ErrorLogSeverity.NOTICE,
message, msgID);
+ addStatEntry(statEntry, "verify-max-reference-count",
+ String.valueOf(maxEntryPerValue));
}
}
else
@@ -369,7 +382,7 @@
totalTime/1000, rate);
logError(ErrorLogCategory.BACKEND, ErrorLogSeverity.NOTICE,
message, msgID);
-
+ //TODO add entry-limit-stats to the statEntry
if (entryLimitMap.size() > 0)
{
msgID = MSGID_JEB_VERIFY_ENTRY_LIMIT_STATS_HEADER;
@@ -1601,4 +1614,20 @@
previousTime = latestTime;
}
}
+
+ /**
+ * Adds an attribute of type t and value v to the statEntry, only if the
+ * statEntry is not null.
+ * @param statEntry passed in from backentryImpl.verifyBackend.
+ * @param t String to be used as the attribute type.
+ * @param v String to be used as the attribute value.
+ */
+ private void addStatEntry(Entry statEntry, String t, String v)
+ {
+ if (statEntry != null)
+ {
+ Attribute a = new Attribute(t, v);
+ statEntry.addAttribute(a, null);
+ }
+ }
}
diff --git a/opends/src/server/org/opends/server/tools/VerifyIndex.java b/opends/src/server/org/opends/server/tools/VerifyIndex.java
index 26c0c9f..1302c2a 100644
--- a/opends/src/server/org/opends/server/tools/VerifyIndex.java
+++ b/opends/src/server/org/opends/server/tools/VerifyIndex.java
@@ -456,7 +456,7 @@
try
{
BackendImpl jebBackend = (BackendImpl)backend;
- jebBackend.verifyBackend(verifyConfig, configEntry, baseDNArray);
+ jebBackend.verifyBackend(verifyConfig, configEntry, baseDNArray, null);
}
catch (Exception e)
{
--
Gitblit v1.10.0