Commit f53bc339 authored by unknown's avatar unknown

Added EventReport for backup


ndb/src/mgmsrv/MgmtSrvr.cpp:
  removed useless code
ndb/src/mgmsrv/MgmtSrvr.hpp:
  removed useless code
parent 08ffa298
...@@ -57,7 +57,8 @@ public: ...@@ -57,7 +57,8 @@ public:
llWarning = CFG_LOGLEVEL_WARNING - CFG_MIN_LOGLEVEL, llWarning = CFG_LOGLEVEL_WARNING - CFG_MIN_LOGLEVEL,
llError = CFG_LOGLEVEL_ERROR - CFG_MIN_LOGLEVEL, llError = CFG_LOGLEVEL_ERROR - CFG_MIN_LOGLEVEL,
llGrep = CFG_LOGLEVEL_GREP - CFG_MIN_LOGLEVEL, llGrep = CFG_LOGLEVEL_GREP - CFG_MIN_LOGLEVEL,
llDebug = CFG_LOGLEVEL_DEBUG - CFG_MIN_LOGLEVEL, llDebug = CFG_LOGLEVEL_DEBUG - CFG_MIN_LOGLEVEL
,llBackup = CFG_LOGLEVEL_BACKUP - CFG_MIN_LOGLEVEL
}; };
/** /**
......
...@@ -135,12 +135,17 @@ public: ...@@ -135,12 +135,17 @@ public:
//GREP //GREP
GrepSubscriptionInfo = 52, GrepSubscriptionInfo = 52,
GrepSubscriptionAlert = 53 GrepSubscriptionAlert = 53,
};
//BACKUP
BackupStarted = 54,
BackupFailedToStart = 55,
BackupCompleted = 56,
BackupAborted = 57
};
void setEventType(EventType type); void setEventType(EventType type);
EventType getEventType() const; EventType getEventType() const;
private:
UintR eventType; // DATA 0 UintR eventType; // DATA 0
}; };
......
...@@ -277,6 +277,7 @@ extern "C" { ...@@ -277,6 +277,7 @@ extern "C" {
NDB_MGM_EVENT_CATEGORY_WARNING = CFG_LOGLEVEL_WARNING, NDB_MGM_EVENT_CATEGORY_WARNING = CFG_LOGLEVEL_WARNING,
NDB_MGM_EVENT_CATEGORY_ERROR = CFG_LOGLEVEL_ERROR, NDB_MGM_EVENT_CATEGORY_ERROR = CFG_LOGLEVEL_ERROR,
NDB_MGM_EVENT_CATEGORY_GREP = CFG_LOGLEVEL_GREP, NDB_MGM_EVENT_CATEGORY_GREP = CFG_LOGLEVEL_GREP,
NDB_MGM_EVENT_CATEGORY_BACKUP = CFG_LOGLEVEL_BACKUP,
NDB_MGM_MIN_EVENT_CATEGORY = CFG_MIN_LOGLEVEL, NDB_MGM_MIN_EVENT_CATEGORY = CFG_MIN_LOGLEVEL,
NDB_MGM_MAX_EVENT_CATEGORY = CFG_MAX_LOGLEVEL NDB_MGM_MAX_EVENT_CATEGORY = CFG_MAX_LOGLEVEL
......
...@@ -96,7 +96,8 @@ ...@@ -96,7 +96,8 @@
#define CFG_LOGLEVEL_ERROR 258 #define CFG_LOGLEVEL_ERROR 258
#define CFG_LOGLEVEL_GREP 259 #define CFG_LOGLEVEL_GREP 259
#define CFG_LOGLEVEL_DEBUG 260 #define CFG_LOGLEVEL_DEBUG 260
#define CFG_MAX_LOGLEVEL 260 #define CFG_LOGLEVEL_BACKUP 261
#define CFG_MAX_LOGLEVEL 261
#define CFG_MGM_PORT 300 #define CFG_MGM_PORT 300
......
...@@ -107,7 +107,13 @@ const EventLoggerBase::EventRepLogLevelMatrix EventLoggerBase::matrix[] = { ...@@ -107,7 +107,13 @@ const EventLoggerBase::EventRepLogLevelMatrix EventLoggerBase::matrix[] = {
//Global replication //Global replication
{ EventReport::GrepSubscriptionInfo, LogLevel::llGrep, 7, Logger::LL_INFO}, { EventReport::GrepSubscriptionInfo, LogLevel::llGrep, 7, Logger::LL_INFO},
{ EventReport::GrepSubscriptionAlert, LogLevel::llGrep, 7, Logger::LL_ALERT} { EventReport::GrepSubscriptionAlert, LogLevel::llGrep, 7, Logger::LL_ALERT},
// Backup
{ EventReport::BackupStarted, LogLevel::llBackup, 7, Logger::LL_INFO },
{ EventReport::BackupCompleted, LogLevel::llBackup, 7, Logger::LL_INFO },
{ EventReport::BackupFailedToStart, LogLevel::llBackup, 7, Logger::LL_ALERT},
{ EventReport::BackupAborted, LogLevel::llBackup, 7, Logger::LL_ALERT }
}; };
const Uint32 EventLoggerBase::matrixSize = sizeof(EventLoggerBase::matrix)/ const Uint32 EventLoggerBase::matrixSize = sizeof(EventLoggerBase::matrix)/
...@@ -790,472 +796,504 @@ EventLogger::getText(char * m_text, size_t m_text_len, ...@@ -790,472 +796,504 @@ EventLogger::getText(char * m_text, size_t m_text_len,
case EventReport::GrepSubscriptionInfo : case EventReport::GrepSubscriptionInfo :
{ {
GrepEvent::Subscription event = (GrepEvent::Subscription)theData[1]; GrepEvent::Subscription event = (GrepEvent::Subscription)theData[1];
switch(event) { switch(event) {
case GrepEvent::GrepSS_CreateSubIdConf: case GrepEvent::GrepSS_CreateSubIdConf:
{ {
const int subId = theData[2]; const int subId = theData[2];
const int subKey = theData[3]; const int subKey = theData[3];
const int err = theData[4]; const int err = theData[4];
::snprintf(m_text, m_text_len, ::snprintf(m_text, m_text_len,
"Grep::SSCoord: Created subscription id" "Grep::SSCoord: Created subscription id"
" (subId=%d,SubKey=%d)" " (subId=%d,SubKey=%d)"
" Return code: %d.", " Return code: %d.",
subId, subId,
subKey, subKey,
err); err);
break; break;
} }
case GrepEvent::GrepPS_CreateSubIdConf: case GrepEvent::GrepPS_CreateSubIdConf:
{ {
const int subId = theData[2]; const int subId = theData[2];
const int subKey = theData[3]; const int subKey = theData[3];
const int err = theData[4]; const int err = theData[4];
::snprintf(m_text, m_text_len, ::snprintf(m_text, m_text_len,
"Grep::PSCoord: Created subscription id" "Grep::PSCoord: Created subscription id"
" (subId=%d,SubKey=%d)" " (subId=%d,SubKey=%d)"
" Return code: %d.", " Return code: %d.",
subId, subId,
subKey, subKey,
err); err);
break; break;
} }
case GrepEvent::GrepSS_SubCreateConf: case GrepEvent::GrepSS_SubCreateConf:
{ {
const int subId = theData[2]; const int subId = theData[2];
const int subKey = theData[3]; const int subKey = theData[3];
const int err = theData[4]; const int err = theData[4];
const int nodegrp = theData[5]; const int nodegrp = theData[5];
::snprintf(m_text, m_text_len, ::snprintf(m_text, m_text_len,
"Grep::SSCoord: Created subscription using" "Grep::SSCoord: Created subscription using"
" (subId=%d,SubKey=%d)" " (subId=%d,SubKey=%d)"
" in primary system. Primary system has %d nodegroup(s)." " in primary system. Primary system has %d nodegroup(s)."
" Return code: %d", " Return code: %d",
subId, subId,
subKey, subKey,
nodegrp, nodegrp,
err); err);
break; break;
} }
case GrepEvent::GrepPS_SubCreateConf: case GrepEvent::GrepPS_SubCreateConf:
{ {
const int subId = theData[2]; const int subId = theData[2];
const int subKey = theData[3]; const int subKey = theData[3];
const int err = theData[4]; const int err = theData[4];
::snprintf(m_text, m_text_len, ::snprintf(m_text, m_text_len,
"Grep::PSCoord: All participants have created " "Grep::PSCoord: All participants have created "
"subscriptions" "subscriptions"
" using (subId=%d,SubKey=%d)." " using (subId=%d,SubKey=%d)."
" Return code: %d", " Return code: %d",
subId, subId,
subKey, subKey,
err); err);
break; break;
} }
case GrepEvent::GrepSS_SubStartMetaConf: case GrepEvent::GrepSS_SubStartMetaConf:
{ {
const int subId = theData[2]; const int subId = theData[2];
const int subKey = theData[3]; const int subKey = theData[3];
const int err = theData[4]; const int err = theData[4];
::snprintf(m_text, m_text_len, ::snprintf(m_text, m_text_len,
"Grep::SSCoord: Logging started on meta data changes." "Grep::SSCoord: Logging started on meta data changes."
" using (subId=%d,SubKey=%d)" " using (subId=%d,SubKey=%d)"
" Return code: %d", " Return code: %d",
subId, subId,
subKey, subKey,
err); err);
break; break;
} }
case GrepEvent::GrepPS_SubStartMetaConf: case GrepEvent::GrepPS_SubStartMetaConf:
{ {
const int subId = theData[2]; const int subId = theData[2];
const int subKey = theData[3]; const int subKey = theData[3];
const int err = theData[4]; const int err = theData[4];
::snprintf(m_text, m_text_len, ::snprintf(m_text, m_text_len,
"Grep::PSCoord: All participants have started " "Grep::PSCoord: All participants have started "
"logging meta data" "logging meta data"
" changes on the subscription subId=%d,SubKey=%d) " " changes on the subscription subId=%d,SubKey=%d) "
"(N.I yet)." "(N.I yet)."
" Return code: %d", " Return code: %d",
subId, subId,
subKey, subKey,
err); err);
break; break;
} }
case GrepEvent::GrepSS_SubStartDataConf: { case GrepEvent::GrepSS_SubStartDataConf: {
const int subId = theData[2]; const int subId = theData[2];
const int subKey = theData[3]; const int subKey = theData[3];
const int err = theData[4]; const int err = theData[4];
::snprintf(m_text, m_text_len, ::snprintf(m_text, m_text_len,
"Grep::SSCoord: Logging started on table data changes " "Grep::SSCoord: Logging started on table data changes "
" using (subId=%d,SubKey=%d)" " using (subId=%d,SubKey=%d)"
" Return code: %d", " Return code: %d",
subId, subId,
subKey, subKey,
err); err);
break; break;
} }
case GrepEvent::GrepPS_SubStartDataConf: case GrepEvent::GrepPS_SubStartDataConf:
{ {
const int subId = theData[2]; const int subId = theData[2];
const int subKey = theData[3]; const int subKey = theData[3];
const int err = theData[4]; const int err = theData[4];
::snprintf(m_text, m_text_len, ::snprintf(m_text, m_text_len,
"Grep::PSCoord: All participants have started logging " "Grep::PSCoord: All participants have started logging "
"table data changes on the subscription " "table data changes on the subscription "
"subId=%d,SubKey=%d)." "subId=%d,SubKey=%d)."
" Return code: %d", " Return code: %d",
subId, subId,
subKey, subKey,
err); err);
break; break;
} }
case GrepEvent::GrepPS_SubSyncMetaConf: case GrepEvent::GrepPS_SubSyncMetaConf:
{ {
const int subId = theData[2]; const int subId = theData[2];
const int subKey = theData[3]; const int subKey = theData[3];
const int err = theData[4]; const int err = theData[4];
::snprintf(m_text, m_text_len, ::snprintf(m_text, m_text_len,
"Grep::PSCoord: All participants have started " "Grep::PSCoord: All participants have started "
" synchronization on meta data (META SCAN) using " " synchronization on meta data (META SCAN) using "
"(subId=%d,SubKey=%d)." "(subId=%d,SubKey=%d)."
" Return code: %d", " Return code: %d",
subId, subId,
subKey, subKey,
err); err);
break; break;
} }
case GrepEvent::GrepSS_SubSyncMetaConf: case GrepEvent::GrepSS_SubSyncMetaConf:
{ {
const int subId = theData[2]; const int subId = theData[2];
const int subKey = theData[3]; const int subKey = theData[3];
const int err = theData[4]; const int err = theData[4];
::snprintf(m_text, m_text_len, ::snprintf(m_text, m_text_len,
"Grep::SSCoord: Synchronization started (META SCAN) on " "Grep::SSCoord: Synchronization started (META SCAN) on "
" meta data using (subId=%d,SubKey=%d)" " meta data using (subId=%d,SubKey=%d)"
" Return code: %d", " Return code: %d",
subId, subId,
subKey, subKey,
err); err);
break; break;
} }
case GrepEvent::GrepPS_SubSyncDataConf: case GrepEvent::GrepPS_SubSyncDataConf:
{ {
const int subId = theData[2]; const int subId = theData[2];
const int subKey = theData[3]; const int subKey = theData[3];
const int err = theData[4]; const int err = theData[4];
::snprintf(m_text, m_text_len, ::snprintf(m_text, m_text_len,
"Grep::PSCoord: All participants have started " "Grep::PSCoord: All participants have started "
"synchronization " "synchronization "
" on table data (DATA SCAN) using (subId=%d,SubKey=%d)." " on table data (DATA SCAN) using (subId=%d,SubKey=%d)."
" Return code: %d", " Return code: %d",
subId, subId,
subKey, subKey,
err); err);
break; break;
} }
case GrepEvent::GrepSS_SubSyncDataConf: case GrepEvent::GrepSS_SubSyncDataConf:
{ {
const int subId = theData[2]; const int subId = theData[2];
const int subKey = theData[3]; const int subKey = theData[3];
const int err = theData[4]; const int err = theData[4];
const int gci = theData[5]; const int gci = theData[5];
::snprintf(m_text, m_text_len, ::snprintf(m_text, m_text_len,
"Grep::SSCoord: Synchronization started (DATA SCAN) on " "Grep::SSCoord: Synchronization started (DATA SCAN) on "
"table data using (subId=%d,SubKey=%d). GCI = %d" "table data using (subId=%d,SubKey=%d). GCI = %d"
" Return code: %d", " Return code: %d",
subId, subId,
subKey, subKey,
gci, gci,
err); err);
break; break;
} }
case GrepEvent::GrepPS_SubRemoveConf: case GrepEvent::GrepPS_SubRemoveConf:
{ {
const int subId = theData[2]; const int subId = theData[2];
const int subKey = theData[3]; const int subKey = theData[3];
const int err = theData[4]; const int err = theData[4];
::snprintf(m_text, m_text_len, ::snprintf(m_text, m_text_len,
"Grep::PSCoord: All participants have removed " "Grep::PSCoord: All participants have removed "
"subscription (subId=%d,SubKey=%d). I have cleaned " "subscription (subId=%d,SubKey=%d). I have cleaned "
"up resources I've used." "up resources I've used."
" Return code: %d", " Return code: %d",
subId, subId,
subKey, subKey,
err); err);
break; break;
} }
case GrepEvent::GrepSS_SubRemoveConf: case GrepEvent::GrepSS_SubRemoveConf:
{ {
const int subId = theData[2]; const int subId = theData[2];
const int subKey = theData[3]; const int subKey = theData[3];
const int err = theData[4]; const int err = theData[4];
::snprintf(m_text, m_text_len, ::snprintf(m_text, m_text_len,
"Grep::SSCoord: Removed subscription " "Grep::SSCoord: Removed subscription "
"(subId=%d,SubKey=%d)" "(subId=%d,SubKey=%d)"
" Return code: %d", " Return code: %d",
subId, subId,
subKey, subKey,
err); err);
break; break;
} }
default: default:
::snprintf(m_text, ::snprintf(m_text,
m_text_len, m_text_len,
"%sUnknown GrepSubscriptonInfo event: %d", "%sUnknown GrepSubscriptonInfo event: %d",
theNodeId, theNodeId,
theData[1]); theData[1]);
}
break;
} }
break;
}
case EventReport::GrepSubscriptionAlert : case EventReport::GrepSubscriptionAlert :
{
GrepEvent::Subscription event = (GrepEvent::Subscription)theData[1];
switch(event)
{
case GrepEvent::GrepSS_CreateSubIdRef:
{
const int subId = theData[2];
const int subKey = theData[3];
const int err = theData[4];
::snprintf(m_text, m_text_len,
"Grep::SSCoord:Error code: %d Error message: %s"
" (subId=%d,SubKey=%d)",
err,
GrepError::getErrorDesc((GrepError::Code)err),
subId,
subKey);
break;
}
case GrepEvent::GrepSS_SubCreateRef:
{
const int subId = theData[2];
const int subKey = theData[3];
const int err = theData[4];
::snprintf(m_text, m_text_len,
"Grep::SSCoord: FAILED to Created subscription using"
" (subId=%d,SubKey=%d)in primary system."
" Error code: %d Error Message: %s",
subId,
subKey,
err,
GrepError::getErrorDesc((GrepError::Code)err));
break;
}
case GrepEvent::GrepSS_SubStartMetaRef:
{
const int subId = theData[2];
const int subKey = theData[3];
const int err = theData[4];
::snprintf(m_text, m_text_len,
"Grep::SSCoord: Logging failed to start on meta "
"data changes."
" using (subId=%d,SubKey=%d)"
" Error code: %d Error Message: %s",
subId,
subKey,
err,
GrepError::getErrorDesc((GrepError::Code)err));
break;
}
case GrepEvent::GrepSS_SubStartDataRef:
{
const int subId = theData[2];
const int subKey = theData[3];
const int err = theData[4];
::snprintf(m_text, m_text_len,
"Grep::SSCoord: Logging FAILED to start on table data "
" changes using (subId=%d,SubKey=%d)"
" Error code: %d Error Message: %s",
subId,
subKey,
err,
GrepError::getErrorDesc((GrepError::Code)err));
break;
}
case GrepEvent::GrepSS_SubSyncMetaRef:
{
const int subId = theData[2];
const int subKey = theData[3];
const int err = theData[4];
::snprintf(m_text, m_text_len,
"Grep::SSCoord: Synchronization FAILED (META SCAN) on "
" meta data using (subId=%d,SubKey=%d)"
" Error code: %d Error Message: %s",
subId,
subKey,
err,
GrepError::getErrorDesc((GrepError::Code)err));
break;
}
case GrepEvent::GrepSS_SubSyncDataRef:
{ {
GrepEvent::Subscription event = (GrepEvent::Subscription)theData[1]; const int subId = theData[2];
switch(event) const int subKey = theData[3];
{ const int err = theData[4];
case GrepEvent::GrepSS_CreateSubIdRef: const int gci = theData[5];
{ ::snprintf(m_text, m_text_len,
const int subId = theData[2]; "Grep::SSCoord: Synchronization FAILED (DATA SCAN) on "
const int subKey = theData[3]; "table data using (subId=%d,SubKey=%d). GCI = %d"
const int err = theData[4]; " Error code: %d Error Message: %s",
::snprintf(m_text, m_text_len, subId,
"Grep::SSCoord:Error code: %d Error message: %s" subKey,
" (subId=%d,SubKey=%d)", gci,
err, err,
GrepError::getErrorDesc((GrepError::Code)err), GrepError::getErrorDesc((GrepError::Code)err));
subId, break;
subKey); }
break; case GrepEvent::GrepSS_SubRemoveRef:
} {
case GrepEvent::GrepSS_SubCreateRef: const int subId = theData[2];
{ const int subKey = theData[3];
const int subId = theData[2]; const int err = theData[4];
const int subKey = theData[3]; ::snprintf(m_text, m_text_len,
const int err = theData[4]; "Grep::SSCoord: Failed to remove subscription "
::snprintf(m_text, m_text_len, "(subId=%d,SubKey=%d). "
"Grep::SSCoord: FAILED to Created subscription using" " Error code: %d Error Message: %s",
" (subId=%d,SubKey=%d)in primary system." subId,
" Error code: %d Error Message: %s", subKey,
subId, err,
subKey, GrepError::getErrorDesc((GrepError::Code)err)
err, );
GrepError::getErrorDesc((GrepError::Code)err)); break;
break; }
}
case GrepEvent::GrepSS_SubStartMetaRef:
{
const int subId = theData[2];
const int subKey = theData[3];
const int err = theData[4];
::snprintf(m_text, m_text_len,
"Grep::SSCoord: Logging failed to start on meta "
"data changes."
" using (subId=%d,SubKey=%d)"
" Error code: %d Error Message: %s",
subId,
subKey,
err,
GrepError::getErrorDesc((GrepError::Code)err));
break;
}
case GrepEvent::GrepSS_SubStartDataRef:
{
const int subId = theData[2];
const int subKey = theData[3];
const int err = theData[4];
::snprintf(m_text, m_text_len,
"Grep::SSCoord: Logging FAILED to start on table data "
" changes using (subId=%d,SubKey=%d)"
" Error code: %d Error Message: %s",
subId,
subKey,
err,
GrepError::getErrorDesc((GrepError::Code)err));
break;
}
case GrepEvent::GrepSS_SubSyncMetaRef:
{
const int subId = theData[2];
const int subKey = theData[3];
const int err = theData[4];
::snprintf(m_text, m_text_len,
"Grep::SSCoord: Synchronization FAILED (META SCAN) on "
" meta data using (subId=%d,SubKey=%d)"
" Error code: %d Error Message: %s",
subId,
subKey,
err,
GrepError::getErrorDesc((GrepError::Code)err));
break;
}
case GrepEvent::GrepSS_SubSyncDataRef:
{
const int subId = theData[2];
const int subKey = theData[3];
const int err = theData[4];
const int gci = theData[5];
::snprintf(m_text, m_text_len,
"Grep::SSCoord: Synchronization FAILED (DATA SCAN) on "
"table data using (subId=%d,SubKey=%d). GCI = %d"
" Error code: %d Error Message: %s",
subId,
subKey,
gci,
err,
GrepError::getErrorDesc((GrepError::Code)err));
break;
}
case GrepEvent::GrepSS_SubRemoveRef:
{
const int subId = theData[2];
const int subKey = theData[3];
const int err = theData[4];
::snprintf(m_text, m_text_len,
"Grep::SSCoord: Failed to remove subscription "
"(subId=%d,SubKey=%d). "
" Error code: %d Error Message: %s",
subId,
subKey,
err,
GrepError::getErrorDesc((GrepError::Code)err)
);
break;
}
case GrepEvent::GrepPS_CreateSubIdRef: case GrepEvent::GrepPS_CreateSubIdRef:
{ {
const int subId = theData[2]; const int subId = theData[2];
const int subKey = theData[3]; const int subKey = theData[3];
const int err = theData[4]; const int err = theData[4];
::snprintf(m_text, m_text_len, ::snprintf(m_text, m_text_len,
"Grep::PSCoord: Error code: %d Error Message: %s" "Grep::PSCoord: Error code: %d Error Message: %s"
" (subId=%d,SubKey=%d)", " (subId=%d,SubKey=%d)",
err, err,
GrepError::getErrorDesc((GrepError::Code)err), GrepError::getErrorDesc((GrepError::Code)err),
subId, subId,
subKey); subKey);
break; break;
} }
case GrepEvent::GrepPS_SubCreateRef: case GrepEvent::GrepPS_SubCreateRef:
{ {
const int subId = theData[2]; const int subId = theData[2];
const int subKey = theData[3]; const int subKey = theData[3];
const int err = theData[4]; const int err = theData[4];
::snprintf(m_text, m_text_len, ::snprintf(m_text, m_text_len,
"Grep::PSCoord: FAILED to Created subscription using" "Grep::PSCoord: FAILED to Created subscription using"
" (subId=%d,SubKey=%d)in primary system." " (subId=%d,SubKey=%d)in primary system."
" Error code: %d Error Message: %s", " Error code: %d Error Message: %s",
subId, subId,
subKey, subKey,
err, err,
GrepError::getErrorDesc((GrepError::Code)err)); GrepError::getErrorDesc((GrepError::Code)err));
break; break;
} }
case GrepEvent::GrepPS_SubStartMetaRef: case GrepEvent::GrepPS_SubStartMetaRef:
{ {
const int subId = theData[2]; const int subId = theData[2];
const int subKey = theData[3]; const int subKey = theData[3];
const int err = theData[4]; const int err = theData[4];
::snprintf(m_text, m_text_len, ::snprintf(m_text, m_text_len,
"Grep::PSCoord: Logging failed to start on meta " "Grep::PSCoord: Logging failed to start on meta "
"data changes." "data changes."
" using (subId=%d,SubKey=%d)" " using (subId=%d,SubKey=%d)"
" Error code: %d Error Message: %s", " Error code: %d Error Message: %s",
subId, subId,
subKey, subKey,
err, err,
GrepError::getErrorDesc((GrepError::Code)err)); GrepError::getErrorDesc((GrepError::Code)err));
break; break;
} }
case GrepEvent::GrepPS_SubStartDataRef: case GrepEvent::GrepPS_SubStartDataRef:
{ {
const int subId = theData[2]; const int subId = theData[2];
const int subKey = theData[3]; const int subKey = theData[3];
const int err = theData[4]; const int err = theData[4];
::snprintf(m_text, m_text_len, ::snprintf(m_text, m_text_len,
"Grep::PSCoord: Logging FAILED to start on table data " "Grep::PSCoord: Logging FAILED to start on table data "
" changes using (subId=%d,SubKey=%d)" " changes using (subId=%d,SubKey=%d)"
" Error code: %d Error Message: %s", " Error code: %d Error Message: %s",
subId, subId,
subKey, subKey,
err, err,
GrepError::getErrorDesc((GrepError::Code)err)); GrepError::getErrorDesc((GrepError::Code)err));
break; break;
} }
case GrepEvent::GrepPS_SubSyncMetaRef: case GrepEvent::GrepPS_SubSyncMetaRef:
{ {
const int subId = theData[2]; const int subId = theData[2];
const int subKey = theData[3]; const int subKey = theData[3];
const int err = theData[4]; const int err = theData[4];
::snprintf(m_text, m_text_len, ::snprintf(m_text, m_text_len,
"Grep::PSCoord: Synchronization FAILED (META SCAN) on " "Grep::PSCoord: Synchronization FAILED (META SCAN) on "
" meta data using (subId=%d,SubKey=%d)" " meta data using (subId=%d,SubKey=%d)"
" Error code: %d Error Message: %s", " Error code: %d Error Message: %s",
subId, subId,
subKey, subKey,
err, err,
GrepError::getErrorDesc((GrepError::Code)err)); GrepError::getErrorDesc((GrepError::Code)err));
break; break;
} }
case GrepEvent::GrepPS_SubSyncDataRef: case GrepEvent::GrepPS_SubSyncDataRef:
{ {
const int subId = theData[2]; const int subId = theData[2];
const int subKey = theData[3]; const int subKey = theData[3];
const int err = theData[4]; const int err = theData[4];
const int gci = theData[5]; const int gci = theData[5];
::snprintf(m_text, m_text_len, ::snprintf(m_text, m_text_len,
"Grep::PSCoord: Synchronization FAILED (DATA SCAN) on " "Grep::PSCoord: Synchronization FAILED (DATA SCAN) on "
"table data using (subId=%d,SubKey=%d). GCI = %d. " "table data using (subId=%d,SubKey=%d). GCI = %d. "
" Error code: %d Error Message: %s", " Error code: %d Error Message: %s",
subId, subId,
subKey, subKey,
gci, gci,
err, err,
GrepError::getErrorDesc((GrepError::Code)err)); GrepError::getErrorDesc((GrepError::Code)err));
break; break;
} }
case GrepEvent::GrepPS_SubRemoveRef: case GrepEvent::GrepPS_SubRemoveRef:
{ {
const int subId = theData[2]; const int subId = theData[2];
const int subKey = theData[3]; const int subKey = theData[3];
const int err = theData[4]; const int err = theData[4];
::snprintf(m_text, m_text_len, ::snprintf(m_text, m_text_len,
"Grep::PSCoord: Failed to remove subscription " "Grep::PSCoord: Failed to remove subscription "
"(subId=%d,SubKey=%d)." "(subId=%d,SubKey=%d)."
" Error code: %d Error Message: %s", " Error code: %d Error Message: %s",
subId, subId,
subKey, subKey,
err, err,
GrepError::getErrorDesc((GrepError::Code)err)); GrepError::getErrorDesc((GrepError::Code)err));
break; break;
} }
case GrepEvent::Rep_Disconnect: case GrepEvent::Rep_Disconnect:
{ {
const int err = theData[4]; const int err = theData[4];
const int nodeId = theData[5]; const int nodeId = theData[5];
::snprintf(m_text, m_text_len, ::snprintf(m_text, m_text_len,
"Rep: Node %d." "Rep: Node %d."
" Error code: %d Error Message: %s", " Error code: %d Error Message: %s",
nodeId, nodeId,
err, err,
GrepError::getErrorDesc((GrepError::Code)err)); GrepError::getErrorDesc((GrepError::Code)err));
break; break;
} }
default: default:
::snprintf(m_text, ::snprintf(m_text,
m_text_len, m_text_len,
"%sUnknown GrepSubscriptionAlert event: %d", "%sUnknown GrepSubscriptionAlert event: %d",
theNodeId, theNodeId,
theData[1]); theData[1]);
break; break;
}
break;
} }
break;
}
case EventReport::BackupStarted:
::snprintf(m_text,
m_text_len,
"%sBackup %d started from node %d",
theNodeId, theData[2], refToNode(theData[1]));
break;
case EventReport::BackupFailedToStart:
::snprintf(m_text,
m_text_len,
"%sBackup request from %d failed to start. Error: %d",
theNodeId, refToNode(theData[1]), theData[2]);
break;
case EventReport::BackupCompleted:
::snprintf(m_text,
m_text_len,
"%sBackup %d started from node %d completed\n"
" StartGCP: %d StopGCP: %d\n"
" #Records: %d #LogRecords: %d\n"
" Data: %d bytes Log: %d bytes",
theNodeId, theData[2], refToNode(theData[1]),
theData[3], theData[4], theData[6], theData[8],
theData[5], theData[7]);
break;
case EventReport::BackupAborted:
::snprintf(m_text,
m_text_len,
"%sBackup %d started from %d has been aborted. Error: %d",
theNodeId,
theData[2],
refToNode(theData[1]),
theData[3]);
break;
default: default:
::snprintf(m_text, ::snprintf(m_text,
m_text_len, m_text_len,
......
...@@ -40,6 +40,7 @@ ...@@ -40,6 +40,7 @@
#include <signaldata/BackupImpl.hpp> #include <signaldata/BackupImpl.hpp>
#include <signaldata/BackupSignalData.hpp> #include <signaldata/BackupSignalData.hpp>
#include <signaldata/BackupContinueB.hpp> #include <signaldata/BackupContinueB.hpp>
#include <signaldata/EventReport.hpp>
#include <signaldata/UtilSequence.hpp> #include <signaldata/UtilSequence.hpp>
...@@ -944,6 +945,11 @@ Backup::sendBackupRef(BlockReference senderRef, Signal *signal, ...@@ -944,6 +945,11 @@ Backup::sendBackupRef(BlockReference senderRef, Signal *signal,
ref->errorCode = errorCode; ref->errorCode = errorCode;
ref->masterRef = numberToRef(BACKUP, getMasterNodeId()); ref->masterRef = numberToRef(BACKUP, getMasterNodeId());
sendSignal(senderRef, GSN_BACKUP_REF, signal, BackupRef::SignalLength, JBB); sendSignal(senderRef, GSN_BACKUP_REF, signal, BackupRef::SignalLength, JBB);
signal->theData[0] = EventReport::BackupFailedToStart;
signal->theData[1] = senderRef;
signal->theData[2] = errorCode;
sendSignal(CMVMI_REF, GSN_EVENT_REP, signal, 3, JBB);
} }
void void
...@@ -1226,7 +1232,13 @@ Backup::defineBackupReply(Signal* signal, BackupRecordPtr ptr, Uint32 nodeId) ...@@ -1226,7 +1232,13 @@ Backup::defineBackupReply(Signal* signal, BackupRecordPtr ptr, Uint32 nodeId)
conf->nodes = ptr.p->nodes; conf->nodes = ptr.p->nodes;
sendSignal(ptr.p->clientRef, GSN_BACKUP_CONF, signal, sendSignal(ptr.p->clientRef, GSN_BACKUP_CONF, signal,
BackupConf::SignalLength, JBB); BackupConf::SignalLength, JBB);
signal->theData[0] = EventReport::BackupStarted;
signal->theData[1] = ptr.p->clientRef;
signal->theData[2] = ptr.p->backupId;
ptr.p->nodes.copyto(NdbNodeBitmask::Size, signal->theData+3);
sendSignal(CMVMI_REF, GSN_EVENT_REP, signal, 3+NdbNodeBitmask::Size, JBB);
ptr.p->masterData.state.setState(DEFINED); ptr.p->masterData.state.setState(DEFINED);
/** /**
* Prepare Trig * Prepare Trig
...@@ -2069,6 +2081,18 @@ Backup::stopBackupReply(Signal* signal, BackupRecordPtr ptr, Uint32 nodeId) ...@@ -2069,6 +2081,18 @@ Backup::stopBackupReply(Signal* signal, BackupRecordPtr ptr, Uint32 nodeId)
rep->nodes = ptr.p->nodes; rep->nodes = ptr.p->nodes;
sendSignal(ptr.p->clientRef, GSN_BACKUP_COMPLETE_REP, signal, sendSignal(ptr.p->clientRef, GSN_BACKUP_COMPLETE_REP, signal,
BackupCompleteRep::SignalLength, JBB); BackupCompleteRep::SignalLength, JBB);
signal->theData[0] = EventReport::BackupCompleted;
signal->theData[1] = ptr.p->clientRef;
signal->theData[2] = ptr.p->backupId;
signal->theData[3] = ptr.p->startGCP;
signal->theData[4] = ptr.p->stopGCP;
signal->theData[5] = ptr.p->noOfBytes;
signal->theData[6] = ptr.p->noOfRecords;
signal->theData[7] = ptr.p->noOfLogBytes;
signal->theData[8] = ptr.p->noOfLogRecords;
ptr.p->nodes.copyto(NdbNodeBitmask::Size, signal->theData+9);
sendSignal(CMVMI_REF, GSN_EVENT_REP, signal, 9+NdbNodeBitmask::Size, JBB);
} }
/***************************************************************************** /*****************************************************************************
...@@ -2259,6 +2283,12 @@ Backup::masterSendAbortBackup(Signal* signal, BackupRecordPtr ptr) ...@@ -2259,6 +2283,12 @@ Backup::masterSendAbortBackup(Signal* signal, BackupRecordPtr ptr)
rep->reason = ptr.p->errorCode; rep->reason = ptr.p->errorCode;
sendSignal(ptr.p->clientRef, GSN_BACKUP_ABORT_REP, signal, sendSignal(ptr.p->clientRef, GSN_BACKUP_ABORT_REP, signal,
BackupAbortRep::SignalLength, JBB); BackupAbortRep::SignalLength, JBB);
signal->theData[0] = EventReport::BackupAborted;
signal->theData[1] = ptr.p->clientRef;
signal->theData[2] = ptr.p->backupId;
signal->theData[3] = ptr.p->errorCode;
sendSignal(CMVMI_REF, GSN_EVENT_REP, signal, 4, JBB);
}//if }//if
// ptr.p->masterData.state.setState(INITIAL); // ptr.p->masterData.state.setState(INITIAL);
......
...@@ -965,6 +965,7 @@ struct ndb_mgm_event_categories ...@@ -965,6 +965,7 @@ struct ndb_mgm_event_categories
{ "INFO", NDB_MGM_EVENT_CATEGORY_INFO }, { "INFO", NDB_MGM_EVENT_CATEGORY_INFO },
{ "ERROR", NDB_MGM_EVENT_CATEGORY_ERROR }, { "ERROR", NDB_MGM_EVENT_CATEGORY_ERROR },
{ "GREP", NDB_MGM_EVENT_CATEGORY_GREP }, { "GREP", NDB_MGM_EVENT_CATEGORY_GREP },
{ "BACKUP", NDB_MGM_EVENT_CATEGORY_BACKUP },
{ 0, NDB_MGM_ILLEGAL_EVENT_CATEGORY } { 0, NDB_MGM_ILLEGAL_EVENT_CATEGORY }
}; };
......
...@@ -63,63 +63,6 @@ ...@@ -63,63 +63,6 @@
extern int global_flag_send_heartbeat_now; extern int global_flag_send_heartbeat_now;
extern int g_no_nodeid_checks; extern int g_no_nodeid_checks;
static
void
CmdBackupCallback(const MgmtSrvr::BackupEvent & event)
{
char str[255];
ndbout << endl;
bool ok = false;
switch(event.Event){
case MgmtSrvr::BackupEvent::BackupStarted:
ok = true;
snprintf(str, sizeof(str),
"Backup %d started", event.Started.BackupId);
break;
case MgmtSrvr::BackupEvent::BackupFailedToStart:
ok = true;
snprintf(str, sizeof(str),
"Backup failed to start (Error %d)",
event.FailedToStart.ErrorCode);
break;
case MgmtSrvr::BackupEvent::BackupCompleted:
ok = true;
snprintf(str, sizeof(str),
"Backup %d completed",
event.Completed.BackupId);
ndbout << str << endl;
snprintf(str, sizeof(str),
" StartGCP: %d StopGCP: %d",
event.Completed.startGCP, event.Completed.stopGCP);
ndbout << str << endl;
snprintf(str, sizeof(str),
" #Records: %d #LogRecords: %d",
event.Completed.NoOfRecords, event.Completed.NoOfLogRecords);
ndbout << str << endl;
snprintf(str, sizeof(str),
" Data: %d bytes Log: %d bytes",
event.Completed.NoOfBytes, event.Completed.NoOfLogBytes);
break;
case MgmtSrvr::BackupEvent::BackupAborted:
ok = true;
snprintf(str, sizeof(str),
"Backup %d has been aborted reason %d",
event.Aborted.BackupId,
event.Aborted.Reason);
break;
}
if(!ok){
snprintf(str, sizeof(str), "Unknown backup event: %d", event.Event);
}
ndbout << str << endl;
}
void * void *
MgmtSrvr::logLevelThread_C(void* m) MgmtSrvr::logLevelThread_C(void* m)
{ {
...@@ -519,7 +462,6 @@ MgmtSrvr::MgmtSrvr(NodeId nodeId, ...@@ -519,7 +462,6 @@ MgmtSrvr::MgmtSrvr(NodeId nodeId,
m_newConfig = NULL; m_newConfig = NULL;
m_configFilename = configFilename; m_configFilename = configFilename;
setCallback(CmdBackupCallback);
m_localNdbConfigFilename = ndb_config_filename; m_localNdbConfigFilename = ndb_config_filename;
m_nextConfigGenerationNumber = 0; m_nextConfigGenerationNumber = 0;
...@@ -2398,15 +2340,6 @@ MgmtSrvr::eventReport(NodeId nodeId, const Uint32 * theData) ...@@ -2398,15 +2340,6 @@ MgmtSrvr::eventReport(NodeId nodeId, const Uint32 * theData)
/*************************************************************************** /***************************************************************************
* Backup * Backup
***************************************************************************/ ***************************************************************************/
MgmtSrvr::BackupCallback
MgmtSrvr::setCallback(BackupCallback aCall)
{
BackupCallback ret = m_backupCallback;
m_backupCallback = aCall;
return ret;
}
int int
MgmtSrvr::startBackup(Uint32& backupId, bool waitCompleted) MgmtSrvr::startBackup(Uint32& backupId, bool waitCompleted)
{ {
...@@ -2605,10 +2538,6 @@ MgmtSrvr::backupCallback(BackupEvent & event) ...@@ -2605,10 +2538,6 @@ MgmtSrvr::backupCallback(BackupEvent & event)
return; return;
} }
if(m_backupCallback != 0){
(* m_backupCallback)(event);
}
} }
......
...@@ -353,8 +353,6 @@ public: ...@@ -353,8 +353,6 @@ public:
/** /**
* Backup functionallity * Backup functionallity
*/ */
typedef void (* BackupCallback)(const BackupEvent& Event);
BackupCallback setCallback(BackupCallback);
int startBackup(Uint32& backupId, bool waitCompleted = false); int startBackup(Uint32& backupId, bool waitCompleted = false);
int abortBackup(Uint32 backupId); int abortBackup(Uint32 backupId);
int performBackup(Uint32* backupId); int performBackup(Uint32* backupId);
...@@ -743,7 +741,6 @@ private: ...@@ -743,7 +741,6 @@ private:
void signalRecvThreadRun(); void signalRecvThreadRun();
void backupCallback(BackupEvent &); void backupCallback(BackupEvent &);
BackupCallback m_backupCallback;
BackupEvent m_lastBackupEvent; BackupEvent m_lastBackupEvent;
Config *_props; Config *_props;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment