/* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef NDB_LOGEVENT_H #define NDB_LOGEVENT_H /** @addtogroup MGM_C_API * @{ */ #include "mgmapi_config_parameters.h" #ifdef __cplusplus extern "C" { #endif /** * Available log events grouped by @ref ndb_mgm_event_category */ enum Ndb_logevent_type { NDB_LE_ILLEGAL_TYPE = -1, /** NDB_MGM_EVENT_CATEGORY_CONNECTION */ NDB_LE_Connected = 0, /** NDB_MGM_EVENT_CATEGORY_CONNECTION */ NDB_LE_Disconnected = 1, /** NDB_MGM_EVENT_CATEGORY_CONNECTION */ NDB_LE_CommunicationClosed = 2, /** NDB_MGM_EVENT_CATEGORY_CONNECTION */ NDB_LE_CommunicationOpened = 3, /** NDB_MGM_EVENT_CATEGORY_CONNECTION */ NDB_LE_ConnectedApiVersion = 51, /** NDB_MGM_EVENT_CATEGORY_CHECKPOINT */ NDB_LE_GlobalCheckpointStarted = 4, /** NDB_MGM_EVENT_CATEGORY_CHECKPOINT */ NDB_LE_GlobalCheckpointCompleted = 5, /** NDB_MGM_EVENT_CATEGORY_CHECKPOINT */ NDB_LE_LocalCheckpointStarted = 6, /** NDB_MGM_EVENT_CATEGORY_CHECKPOINT */ NDB_LE_LocalCheckpointCompleted = 7, /** NDB_MGM_EVENT_CATEGORY_CHECKPOINT */ NDB_LE_LCPStoppedInCalcKeepGci = 8, /** NDB_MGM_EVENT_CATEGORY_CHECKPOINT */ NDB_LE_LCPFragmentCompleted = 9, /** NDB_MGM_EVENT_CATEGORY_STARTUP */ NDB_LE_NDBStartStarted = 10, /** NDB_MGM_EVENT_CATEGORY_STARTUP */ NDB_LE_NDBStartCompleted = 11, /** NDB_MGM_EVENT_CATEGORY_STARTUP */ NDB_LE_STTORRYRecieved = 12, /** NDB_MGM_EVENT_CATEGORY_STARTUP */ NDB_LE_StartPhaseCompleted = 13, /** NDB_MGM_EVENT_CATEGORY_STARTUP */ NDB_LE_CM_REGCONF = 14, /** NDB_MGM_EVENT_CATEGORY_STARTUP */ NDB_LE_CM_REGREF = 15, /** NDB_MGM_EVENT_CATEGORY_STARTUP */ NDB_LE_FIND_NEIGHBOURS = 16, /** NDB_MGM_EVENT_CATEGORY_STARTUP */ NDB_LE_NDBStopStarted = 17, /** NDB_MGM_EVENT_CATEGORY_STARTUP */ NDB_LE_NDBStopCompleted = 53, /** NDB_MGM_EVENT_CATEGORY_STARTUP */ NDB_LE_NDBStopForced = 59, /** NDB_MGM_EVENT_CATEGORY_STARTUP */ NDB_LE_NDBStopAborted = 18, /** NDB_MGM_EVENT_CATEGORY_STARTUP */ NDB_LE_StartREDOLog = 19, /** NDB_MGM_EVENT_CATEGORY_STARTUP */ NDB_LE_StartLog = 20, /** NDB_MGM_EVENT_CATEGORY_STARTUP */ NDB_LE_UNDORecordsExecuted = 21, /** NDB_MGM_EVENT_CATEGORY_NODE_RESTART */ NDB_LE_NR_CopyDict = 22, /** NDB_MGM_EVENT_CATEGORY_NODE_RESTART */ NDB_LE_NR_CopyDistr = 23, /** NDB_MGM_EVENT_CATEGORY_NODE_RESTART */ NDB_LE_NR_CopyFragsStarted = 24, /** NDB_MGM_EVENT_CATEGORY_NODE_RESTART */ NDB_LE_NR_CopyFragDone = 25, /** NDB_MGM_EVENT_CATEGORY_NODE_RESTART */ NDB_LE_NR_CopyFragsCompleted = 26, /* NODEFAIL */ /** NDB_MGM_EVENT_CATEGORY_NODE_RESTART */ NDB_LE_NodeFailCompleted = 27, /** NDB_MGM_EVENT_CATEGORY_NODE_RESTART */ NDB_LE_NODE_FAILREP = 28, /** NDB_MGM_EVENT_CATEGORY_NODE_RESTART */ NDB_LE_ArbitState = 29, /** NDB_MGM_EVENT_CATEGORY_NODE_RESTART */ NDB_LE_ArbitResult = 30, /** NDB_MGM_EVENT_CATEGORY_NODE_RESTART */ NDB_LE_GCP_TakeoverStarted = 31, /** NDB_MGM_EVENT_CATEGORY_NODE_RESTART */ NDB_LE_GCP_TakeoverCompleted = 32, /** NDB_MGM_EVENT_CATEGORY_NODE_RESTART */ NDB_LE_LCP_TakeoverStarted = 33, /** NDB_MGM_EVENT_CATEGORY_NODE_RESTART */ NDB_LE_LCP_TakeoverCompleted = 34, /** NDB_MGM_EVENT_CATEGORY_NODE_RESTART */ NDB_LE_ConnectCheckStarted = 82, /** NDB_MGM_EVENT_CATEGORY_NODE_RESTART */ NDB_LE_ConnectCheckCompleted = 83, /** NDB_MGM_EVENT_CATEGORY_NODE_RESTART */ NDB_LE_NodeFailRejected = 84, /** NDB_MGM_EVENT_CATEGORY_STATISTIC */ NDB_LE_TransReportCounters = 35, /** NDB_MGM_EVENT_CATEGORY_STATISTIC */ NDB_LE_OperationReportCounters = 36, /** NDB_MGM_EVENT_CATEGORY_STATISTIC */ NDB_LE_TableCreated = 37, /** NDB_MGM_EVENT_CATEGORY_STATISTIC */ NDB_LE_UndoLogBlocked = 38, /** NDB_MGM_EVENT_CATEGORY_STATISTIC */ NDB_LE_JobStatistic = 39, /** NDB_MGM_EVENT_CATEGORY_STATISTIC */ NDB_LE_SendBytesStatistic = 40, /** NDB_MGM_EVENT_CATEGORY_STATISTIC */ NDB_LE_ReceiveBytesStatistic = 41, /** NDB_MGM_EVENT_CATEGORY_STATISTIC */ NDB_LE_MemoryUsage = 50, /** NDB_MGM_EVENT_CATEGORY_STATISTIC */ NDB_LE_ThreadConfigLoop = 68, /** NDB_MGM_EVENT_CATEGORY_ERROR */ NDB_LE_TransporterError = 42, /** NDB_MGM_EVENT_CATEGORY_ERROR */ NDB_LE_TransporterWarning = 43, /** NDB_MGM_EVENT_CATEGORY_ERROR */ NDB_LE_MissedHeartbeat = 44, /** NDB_MGM_EVENT_CATEGORY_ERROR */ NDB_LE_DeadDueToHeartbeat = 45, /** NDB_MGM_EVENT_CATEGORY_ERROR */ NDB_LE_WarningEvent = 46, /** NDB_MGM_EVENT_CATEGORY_INFO */ NDB_LE_SentHeartbeat = 47, /** NDB_MGM_EVENT_CATEGORY_INFO */ NDB_LE_CreateLogBytes = 48, /** NDB_MGM_EVENT_CATEGORY_INFO */ NDB_LE_InfoEvent = 49, /* 50 used */ /* 51 used */ /* SINGLE USER */ NDB_LE_SingleUser = 52, /* 53 used */ /** NDB_MGM_EVENT_CATEGORY_BACKUP */ NDB_LE_BackupStarted = 54, /** NDB_MGM_EVENT_CATEGORY_BACKUP */ NDB_LE_BackupFailedToStart = 55, /** NDB_MGM_EVENT_CATEGORY_BACKUP */ NDB_LE_BackupStatus = 62, /** NDB_MGM_EVENT_CATEGORY_BACKUP */ NDB_LE_BackupCompleted = 56, /** NDB_MGM_EVENT_CATEGORY_BACKUP */ NDB_LE_BackupAborted = 57, /** NDB_MGM_EVENT_CATEGORY_BACKUP */ NDB_LE_RestoreMetaData = 63, /** NDB_MGM_EVENT_CATEGORY_BACKUP */ NDB_LE_RestoreData = 64, /** NDB_MGM_EVENT_CATEGORY_BACKUP */ NDB_LE_RestoreLog = 65, /** NDB_MGM_EVENT_CATEGORY_BACKUP */ NDB_LE_RestoreStarted = 66, /** NDB_MGM_EVENT_CATEGORY_BACKUP */ NDB_LE_RestoreCompleted = 67, /** NDB_MGM_EVENT_CATEGORY_INFO */ NDB_LE_EventBufferStatus = 58, /* 59 used */ /** NDB_MGM_EVENT_CATEGORY_STARTUP */ NDB_LE_StartReport = 60, /* 61 (used in upcoming patch) */ /* 62-72 used */ /** NDB_MGM_EVENT_SEVERITY_WARNING */ NDB_LE_SubscriptionStatus = 69, NDB_LE_MTSignalStatistics = 70, /** NDB_MGM_EVENT_CATEGORY_FRAGLOGFILE */ NDB_LE_LogFileInitStatus = 71, /** NDB_MGM_EVENT_CATEGORY_FRAGLOGFILE */ NDB_LE_LogFileInitCompStatus = 72 ,NDB_LE_RedoStatus = 73 ,NDB_LE_CreateSchemaObject = 74 ,NDB_LE_AlterSchemaObject = 75 ,NDB_LE_DropSchemaObject = 76 ,NDB_LE_StartReadLCP = 77 ,NDB_LE_ReadLCPComplete = 78 ,NDB_LE_RunRedo = 79 ,NDB_LE_RebuildIndex = 80 ,NDB_LE_SavedEvent = 81 }; /** * Log event severities (used to filter the cluster log, * ndb_mgm_set_clusterlog_severity_filter(), and filter listening to events * ndb_mgm_listen_event()) */ enum ndb_mgm_event_severity { NDB_MGM_ILLEGAL_EVENT_SEVERITY = -1, /* Must be a nonnegative integer (used for array indexing) */ /** Cluster log on */ NDB_MGM_EVENT_SEVERITY_ON = 0, /** Used in NDB Cluster developement */ NDB_MGM_EVENT_SEVERITY_DEBUG = 1, /** Informational messages*/ NDB_MGM_EVENT_SEVERITY_INFO = 2, /** Conditions that are not error condition, but might require handling. */ NDB_MGM_EVENT_SEVERITY_WARNING = 3, /** Conditions that, while not fatal, should be corrected. */ NDB_MGM_EVENT_SEVERITY_ERROR = 4, /** Critical conditions, like device errors or out of resources */ NDB_MGM_EVENT_SEVERITY_CRITICAL = 5, /** A condition that should be corrected immediately, * such as a corrupted system */ NDB_MGM_EVENT_SEVERITY_ALERT = 6, /* must be next number, works as bound in loop */ /** All severities */ NDB_MGM_EVENT_SEVERITY_ALL = 7 }; /** * Log event categories, used to set filter level on the log events using * ndb_mgm_set_clusterlog_loglevel() and ndb_mgm_listen_event() */ enum ndb_mgm_event_category { /** * Invalid log event category */ NDB_MGM_ILLEGAL_EVENT_CATEGORY = -1, /** * Log events during all kinds of startups */ NDB_MGM_EVENT_CATEGORY_STARTUP = CFG_LOGLEVEL_STARTUP, /** * Log events during shutdown */ NDB_MGM_EVENT_CATEGORY_SHUTDOWN = CFG_LOGLEVEL_SHUTDOWN, /** * Statistics log events */ NDB_MGM_EVENT_CATEGORY_STATISTIC = CFG_LOGLEVEL_STATISTICS, /** * Log events related to checkpoints */ NDB_MGM_EVENT_CATEGORY_CHECKPOINT = CFG_LOGLEVEL_CHECKPOINT, /** * Log events during node restart */ NDB_MGM_EVENT_CATEGORY_NODE_RESTART = CFG_LOGLEVEL_NODERESTART, /** * Log events related to connections between cluster nodes */ NDB_MGM_EVENT_CATEGORY_CONNECTION = CFG_LOGLEVEL_CONNECTION, /** * Backup related log events */ NDB_MGM_EVENT_CATEGORY_BACKUP = CFG_LOGLEVEL_BACKUP, /** * Congestion related log events */ NDB_MGM_EVENT_CATEGORY_CONGESTION = CFG_LOGLEVEL_CONGESTION, #ifndef DOXYGEN_SHOULD_SKIP_INTERNAL /** * Loglevel debug */ NDB_MGM_EVENT_CATEGORY_DEBUG = CFG_LOGLEVEL_DEBUG, #endif /** * Uncategorized log events (severity info) */ NDB_MGM_EVENT_CATEGORY_INFO = CFG_LOGLEVEL_INFO, /** * Uncategorized log events (severity warning or higher) */ NDB_MGM_EVENT_CATEGORY_ERROR = CFG_LOGLEVEL_ERROR, NDB_MGM_EVENT_CATEGORY_SCHEMA = CFG_LOGLEVEL_SCHEMA, #ifndef DOXYGEN_SHOULD_SKIP_INTERNAL NDB_MGM_MIN_EVENT_CATEGORY = CFG_MIN_LOGLEVEL, NDB_MGM_MAX_EVENT_CATEGORY = CFG_MAX_LOGLEVEL #endif }; struct ndb_logevent_Connected { unsigned node; }; struct ndb_logevent_Disconnected { unsigned node; }; struct ndb_logevent_CommunicationClosed { unsigned node; }; struct ndb_logevent_CommunicationOpened { unsigned node; }; struct ndb_logevent_ConnectedApiVersion { unsigned node; unsigned version; }; /* CHECKPOINT */ struct ndb_logevent_GlobalCheckpointStarted { unsigned gci; }; struct ndb_logevent_GlobalCheckpointCompleted { unsigned gci; }; struct ndb_logevent_LocalCheckpointStarted { unsigned lci; unsigned keep_gci; unsigned restore_gci; }; struct ndb_logevent_LocalCheckpointCompleted { unsigned lci; }; struct ndb_logevent_LCPStoppedInCalcKeepGci { unsigned data; }; struct ndb_logevent_LCPFragmentCompleted { unsigned node; unsigned table_id; unsigned fragment_id; }; struct ndb_logevent_UndoLogBlocked { unsigned acc_count; unsigned tup_count; }; /* STARTUP */ struct ndb_logevent_NDBStartStarted { unsigned version; }; struct ndb_logevent_NDBStartCompleted { unsigned version; }; struct ndb_logevent_STTORRYRecieved { unsigned unused; }; struct ndb_logevent_StartPhaseCompleted { unsigned phase; unsigned starttype; }; struct ndb_logevent_CM_REGCONF { unsigned own_id; unsigned president_id; unsigned dynamic_id; }; struct ndb_logevent_CM_REGREF { unsigned own_id; unsigned other_id; unsigned cause; }; struct ndb_logevent_FIND_NEIGHBOURS { unsigned own_id; unsigned left_id; unsigned right_id; unsigned dynamic_id; }; struct ndb_logevent_NDBStopStarted { unsigned stoptype; }; struct ndb_logevent_NDBStopCompleted { unsigned action; unsigned signum; }; struct ndb_logevent_NDBStopForced { unsigned action; unsigned signum; unsigned error; unsigned sphase; unsigned extra; }; struct ndb_logevent_NDBStopAborted { unsigned _unused; }; struct ndb_logevent_StartREDOLog { unsigned node; unsigned keep_gci; unsigned completed_gci; unsigned restorable_gci; }; struct ndb_logevent_StartLog { unsigned log_part; unsigned start_mb; unsigned stop_mb; unsigned gci; }; struct ndb_logevent_UNDORecordsExecuted { unsigned block; unsigned data1; unsigned data2; unsigned data3; unsigned data4; unsigned data5; unsigned data6; unsigned data7; unsigned data8; unsigned data9; unsigned data10; }; /* NODERESTART */ struct ndb_logevent_NR_CopyDict { unsigned _unused; }; struct ndb_logevent_NR_CopyDistr { unsigned _unused; }; struct ndb_logevent_NR_CopyFragsStarted { unsigned dest_node; }; struct ndb_logevent_NR_CopyFragDone { unsigned dest_node; unsigned table_id; unsigned fragment_id; }; struct ndb_logevent_NR_CopyFragsCompleted { unsigned dest_node; }; struct ndb_logevent_NodeFailCompleted { unsigned block; /* 0 = all */ unsigned failed_node; unsigned completing_node; /* 0 = all */ }; struct ndb_logevent_NODE_FAILREP { unsigned failed_node; unsigned failure_state; }; struct ndb_logevent_ArbitState { unsigned code; /* code & state << 16 */ unsigned arbit_node; unsigned ticket_0; unsigned ticket_1; /* TODO */ }; struct ndb_logevent_ArbitResult { unsigned code; /* code & state << 16 */ unsigned arbit_node; unsigned ticket_0; unsigned ticket_1; /* TODO */ }; struct ndb_logevent_GCP_TakeoverStarted { unsigned _unused; }; struct ndb_logevent_GCP_TakeoverCompleted { unsigned _unused; }; struct ndb_logevent_LCP_TakeoverStarted { unsigned _unused; }; struct ndb_logevent_LCP_TakeoverCompleted { unsigned state; }; struct ndb_logevent_ConnectCheckStarted { unsigned other_node_count; unsigned reason; unsigned causing_node; }; struct ndb_logevent_ConnectCheckCompleted { unsigned nodes_checked; unsigned nodes_suspect; unsigned nodes_failed; }; struct ndb_logevent_NodeFailRejected { unsigned reason; unsigned failed_node; unsigned source_node; }; /* STATISTIC */ struct ndb_logevent_TransReportCounters { unsigned trans_count; unsigned commit_count; unsigned read_count; unsigned simple_read_count; unsigned write_count; unsigned attrinfo_count; unsigned conc_op_count; unsigned abort_count; unsigned scan_count; unsigned range_scan_count; }; struct ndb_logevent_OperationReportCounters { unsigned ops; }; struct ndb_logevent_TableCreated { unsigned table_id; }; struct ndb_logevent_JobStatistic { unsigned mean_loop_count; }; struct ndb_logevent_SendBytesStatistic { unsigned to_node; unsigned mean_sent_bytes; }; struct ndb_logevent_ReceiveBytesStatistic { unsigned from_node; unsigned mean_received_bytes; }; struct ndb_logevent_MemoryUsage { int gth; /* union is for compatibility backward. * page_size_kb member variable should be removed in the future */ union { unsigned page_size_kb; unsigned page_size_bytes; }; unsigned pages_used; unsigned pages_total; unsigned block; }; /* ERROR */ struct ndb_logevent_TransporterError { unsigned to_node; unsigned code; }; struct ndb_logevent_TransporterWarning { unsigned to_node; unsigned code; }; struct ndb_logevent_MissedHeartbeat { unsigned node; unsigned count; }; struct ndb_logevent_DeadDueToHeartbeat { unsigned node; }; struct ndb_logevent_WarningEvent { /* TODO */ unsigned _unused; }; /* INFO */ struct ndb_logevent_SentHeartbeat { unsigned node; }; struct ndb_logevent_CreateLogBytes { unsigned node; }; struct ndb_logevent_InfoEvent { /* TODO */ unsigned _unused; }; struct ndb_logevent_EventBufferStatus { unsigned usage; unsigned alloc; unsigned max; unsigned apply_gci_l; unsigned apply_gci_h; unsigned latest_gci_l; unsigned latest_gci_h; }; /** Log event data for @ref NDB_LE_BackupStarted */ struct ndb_logevent_BackupStarted { unsigned starting_node; unsigned backup_id; }; /** Log event data @ref NDB_LE_BackupFailedToStart */ struct ndb_logevent_BackupFailedToStart { unsigned starting_node; unsigned error; }; /** Log event data @ref NDB_LE_BackupCompleted */ struct ndb_logevent_BackupCompleted { unsigned starting_node; unsigned backup_id; unsigned start_gci; unsigned stop_gci; unsigned n_records; unsigned n_log_records; unsigned n_bytes; unsigned n_log_bytes; unsigned n_records_hi; unsigned n_log_records_hi; unsigned n_bytes_hi; unsigned n_log_bytes_hi; }; /** Log event data @ref NDB_LE_BackupStatus */ struct ndb_logevent_BackupStatus { unsigned starting_node; unsigned backup_id; unsigned n_records_lo; unsigned n_records_hi; unsigned n_log_records_lo; unsigned n_log_records_hi; unsigned n_bytes_lo; unsigned n_bytes_hi; unsigned n_log_bytes_lo; unsigned n_log_bytes_hi; }; /** Log event data @ref NDB_LE_BackupAborted */ struct ndb_logevent_BackupAborted { unsigned starting_node; unsigned backup_id; unsigned error; }; /** Log event data @ref NDB_LE_RestoreStarted */ struct ndb_logevent_RestoreStarted { unsigned backup_id; unsigned node_id; }; /** Log event data @ref NDB_LE_RestoreMetaData */ struct ndb_logevent_RestoreMetaData { unsigned backup_id; unsigned node_id; unsigned n_tables; unsigned n_tablespaces; unsigned n_logfilegroups; unsigned n_datafiles; unsigned n_undofiles; }; /** Log event data @ref NDB_LE_RestoreData */ struct ndb_logevent_RestoreData { unsigned backup_id; unsigned node_id; unsigned n_records_lo; unsigned n_records_hi; unsigned n_bytes_lo; unsigned n_bytes_hi; }; /** Log event data @ref NDB_LE_RestoreLog */ struct ndb_logevent_RestoreLog { unsigned backup_id; unsigned node_id; unsigned n_records_lo; unsigned n_records_hi; unsigned n_bytes_lo; unsigned n_bytes_hi; }; /** Log event data @ref NDB_LE_RestoreCompleted */ struct ndb_logevent_RestoreCompleted { unsigned backup_id; unsigned node_id; }; /** Log event data @ref NDB_LE_SingleUser */ struct ndb_logevent_SingleUser { unsigned type; unsigned node_id; }; /** Log even data @ref NDB_LE_StartReport */ struct ndb_logevent_StartReport { unsigned report_type; unsigned remaining_time; unsigned bitmask_size; unsigned bitmask_data[1]; }; /** Log event data @ref NDB_LE_SubscriptionStatus */ struct ndb_logevent_SubscriptionStatus { unsigned report_type; unsigned node_id; }; /** Log event data @ref NDB_LE_RedoStatus */ struct ndb_logevent_RedoStatus { unsigned log_part; unsigned head_file_no; unsigned head_mbyte; unsigned tail_file_no; unsigned tail_mbyte; unsigned total_hi; unsigned total_lo; unsigned free_hi; unsigned free_lo; }; /** Log event data @ref NDB_LE_LogFileInitStatus */ struct ndb_logevent_LogFileInitStatus { unsigned node_id; unsigned total_files; unsigned file_done; unsigned total_mbytes; unsigned mbytes_done; }; /** Log event data @ref NDB_LE_MTSignalStatistic */ struct ndb_logevent_MTSignalStatistics { unsigned thr_no; unsigned prioa_count; unsigned prioa_size; unsigned priob_count; unsigned priob_size; }; struct ndb_logevent_CreateSchemaObject { unsigned objectid; unsigned version; unsigned type; unsigned node; /* Node create object */ }; struct ndb_logevent_AlterSchemaObject { unsigned objectid; unsigned version; unsigned type; unsigned node; /* Node create object */ }; struct ndb_logevent_DropSchemaObject { unsigned objectid; unsigned version; unsigned type; unsigned node; /* Node create object */ }; struct ndb_logevent_StartReadLCP { unsigned tableid; unsigned fragmentid; }; struct ndb_logevent_ReadLCPComplete { unsigned tableid; unsigned fragmentid; unsigned rows_hi; unsigned rows_lo; }; struct ndb_logevent_RunRedo { unsigned logpart; unsigned phase; unsigned startgci; unsigned currgci; unsigned stopgci; unsigned startfile; unsigned startmb; unsigned currfile; unsigned currmb; unsigned stopfile; unsigned stopmb; }; struct ndb_logevent_RebuildIndex { unsigned instance; unsigned indexid; }; struct ndb_logevent_SavedEvent { unsigned len; unsigned seq; unsigned time; unsigned data[1]; }; /** * Structure to store and retrieve log event information. * @see @ref secSLogEvents */ struct ndb_logevent { /** NdbLogEventHandle (to be used for comparing only) * set in ndb_logevent_get_next() */ void *handle; /** Which event */ enum Ndb_logevent_type type; /** Time when log event was registred at the management server */ unsigned time; /** Category of log event */ enum ndb_mgm_event_category category; /** Severity of log event */ enum ndb_mgm_event_severity severity; /** Level (0-15) of log event */ unsigned level; /** Node ID of the node that reported the log event */ unsigned source_nodeid; /** Union of log event specific data. Use @ref type to decide * which struct to use */ union { /* CONNECT */ struct ndb_logevent_Connected Connected; struct ndb_logevent_Disconnected Disconnected; struct ndb_logevent_CommunicationClosed CommunicationClosed; struct ndb_logevent_CommunicationOpened CommunicationOpened; struct ndb_logevent_ConnectedApiVersion ConnectedApiVersion; /* CHECKPOINT */ struct ndb_logevent_GlobalCheckpointStarted GlobalCheckpointStarted; struct ndb_logevent_GlobalCheckpointCompleted GlobalCheckpointCompleted; struct ndb_logevent_LocalCheckpointStarted LocalCheckpointStarted; struct ndb_logevent_LocalCheckpointCompleted LocalCheckpointCompleted; struct ndb_logevent_LCPStoppedInCalcKeepGci LCPStoppedInCalcKeepGci; struct ndb_logevent_LCPFragmentCompleted LCPFragmentCompleted; struct ndb_logevent_UndoLogBlocked UndoLogBlocked; /* STARTUP */ struct ndb_logevent_NDBStartStarted NDBStartStarted; struct ndb_logevent_NDBStartCompleted NDBStartCompleted; struct ndb_logevent_STTORRYRecieved STTORRYRecieved; struct ndb_logevent_StartPhaseCompleted StartPhaseCompleted; struct ndb_logevent_CM_REGCONF CM_REGCONF; struct ndb_logevent_CM_REGREF CM_REGREF; struct ndb_logevent_FIND_NEIGHBOURS FIND_NEIGHBOURS; struct ndb_logevent_NDBStopStarted NDBStopStarted; struct ndb_logevent_NDBStopCompleted NDBStopCompleted; struct ndb_logevent_NDBStopForced NDBStopForced; struct ndb_logevent_NDBStopAborted NDBStopAborted; struct ndb_logevent_StartREDOLog StartREDOLog; struct ndb_logevent_StartLog StartLog; struct ndb_logevent_UNDORecordsExecuted UNDORecordsExecuted; /* NODERESTART */ struct ndb_logevent_NR_CopyDict NR_CopyDict; struct ndb_logevent_NR_CopyDistr NR_CopyDistr; struct ndb_logevent_NR_CopyFragsStarted NR_CopyFragsStarted; struct ndb_logevent_NR_CopyFragDone NR_CopyFragDone; struct ndb_logevent_NR_CopyFragsCompleted NR_CopyFragsCompleted; struct ndb_logevent_NodeFailCompleted NodeFailCompleted; struct ndb_logevent_NODE_FAILREP NODE_FAILREP; struct ndb_logevent_ArbitState ArbitState; struct ndb_logevent_ArbitResult ArbitResult; struct ndb_logevent_GCP_TakeoverStarted GCP_TakeoverStarted; struct ndb_logevent_GCP_TakeoverCompleted GCP_TakeoverCompleted; struct ndb_logevent_LCP_TakeoverStarted LCP_TakeoverStarted; struct ndb_logevent_LCP_TakeoverCompleted LCP_TakeoverCompleted; struct ndb_logevent_ConnectCheckStarted ConnectCheckStarted; struct ndb_logevent_ConnectCheckCompleted ConnectCheckCompleted; struct ndb_logevent_NodeFailRejected NodeFailRejected; /* STATISTIC */ struct ndb_logevent_TransReportCounters TransReportCounters; struct ndb_logevent_OperationReportCounters OperationReportCounters; struct ndb_logevent_TableCreated TableCreated; struct ndb_logevent_JobStatistic JobStatistic; struct ndb_logevent_SendBytesStatistic SendBytesStatistic; struct ndb_logevent_ReceiveBytesStatistic ReceiveBytesStatistic; struct ndb_logevent_MemoryUsage MemoryUsage; /* ERROR */ struct ndb_logevent_TransporterError TransporterError; struct ndb_logevent_TransporterWarning TransporterWarning; struct ndb_logevent_MissedHeartbeat MissedHeartbeat; struct ndb_logevent_DeadDueToHeartbeat DeadDueToHeartbeat; struct ndb_logevent_WarningEvent WarningEvent; /* INFO */ struct ndb_logevent_SentHeartbeat SentHeartbeat; struct ndb_logevent_CreateLogBytes CreateLogBytes; struct ndb_logevent_InfoEvent InfoEvent; struct ndb_logevent_EventBufferStatus EventBufferStatus; struct ndb_logevent_SavedEvent SavedEvent; /** Log event data for @ref NDB_LE_BackupStarted */ struct ndb_logevent_BackupStarted BackupStarted; /** Log event data @ref NDB_LE_BackupFailedToStart */ struct ndb_logevent_BackupFailedToStart BackupFailedToStart; /** Log event data @ref NDB_LE_BackupCompleted */ struct ndb_logevent_BackupCompleted BackupCompleted; /** Log event data @ref NDB_LE_BackupStatus */ struct ndb_logevent_BackupStatus BackupStatus; /** Log event data @ref NDB_LE_BackupAborted */ struct ndb_logevent_BackupAborted BackupAborted; /** Log event data @ref NDB_LE_RestoreStarted */ struct ndb_logevent_RestoreStarted RestoreStarted; /** Log event data @ref NDB_LE_RestoreMetaData */ struct ndb_logevent_RestoreMetaData RestoreMetaData; /** Log event data @ref NDB_LE_RestoreData */ struct ndb_logevent_RestoreData RestoreData; /** Log event data @ref NDB_LE_RestoreLog */ struct ndb_logevent_RestoreLog RestoreLog; /** Log event data @ref NDB_LE_RestoreCompleted */ struct ndb_logevent_RestoreCompleted RestoreCompleted; /** Log event data @ref NDB_LE_LogFileInitStatus */ struct ndb_logevent_LogFileInitStatus LogFileInitStatus; /** Log event data @ref NDB_LE_SingleUser */ struct ndb_logevent_SingleUser SingleUser; /** Log event data @ref NDB_LE_MTSignalStatistic */ struct ndb_logevent_MTSignalStatistics MTSignalStatistics; /** Log event data @ref NDB_LE_StartReport */ struct ndb_logevent_StartReport StartReport; /** Log event data @ref NDB_LE_SubscriptionStatus */ struct ndb_logevent_SubscriptionStatus SubscriptionStatus; /** Log event data @ref NDB_LE_RedoStatus */ struct ndb_logevent_RedoStatus RedoStatus; struct ndb_logevent_CreateSchemaObject CreateSchemaObject; struct ndb_logevent_AlterSchemaObject AlterSchemaObject; struct ndb_logevent_DropSchemaObject DropSchemaObject; struct ndb_logevent_StartReadLCP StartReadLCP; struct ndb_logevent_ReadLCPComplete ReadLCPComplete; struct ndb_logevent_RunRedo RunRedo; struct ndb_logevent_RebuildIndex RebuildIndex; /** Raw data */ unsigned Data[29]; #ifndef DOXYGEN_FIX }; #else } ; #endif }; enum ndb_logevent_handle_error { NDB_LEH_NO_ERROR, NDB_LEH_READ_ERROR, NDB_LEH_MISSING_EVENT_SPECIFIER, NDB_LEH_UNKNOWN_EVENT_TYPE, NDB_LEH_UNKNOWN_EVENT_VARIABLE, NDB_LEH_INTERNAL_ERROR }; #ifdef __cplusplus } #endif /** @} */ #endif