MySQL NDB Cluster API Developer Guide

2.3.21 The NdbEventOperation Class


This section describes the NdbEventOperation class, which is used to monitor changes (events) in a database. It provides the core functionality used to implement NDB Cluster Replication.

Parent class.  None

Child classes.  None

Description.  NdbEventOperation represents a database event.

Creating an Instance of NdbEventOperation.  This class has no public constructor or destructor. Instead, instances of NdbEventOperation are created as the result of method calls on Ndb and NdbDictionary objects, subject to the following conditions:

  1. There must exist an event which was created using Dictionary::createEvent(). This method returns an instance of the Event class.

  2. An NdbEventOperation object is instantiated using Ndb::createEventOperation(), which acts on an instance of Event.

An instance of this class is removed by invoking Ndb::dropEventOperation.


A detailed example demonstrating creation and removal of event operations is provided in Section 2.5.8, “NDB API Event Handling Example”.

Known Issues.  The following issues may be encountered when working with event operations in the NDB API:


To view the contents of the system table containing created events, you can use the ndb_select_all utility as shown here:

ndb_select_all -d sys 'NDB$EVENTS_0'

Methods.  The following table lists the public methods of this class and the purpose or use of each method:

Table 2.38 NdbEventOperation class methods and descriptions

Name Description
clearError() Clears the most recent error. Deprecated in NDB 7.4.3.
execute() Activates the NdbEventOperation
getBlobHandle() Gets a handle for reading blob attributes
getEpoch() Retrieves the epoch for the event data most recently retrieved. Added in NDB 7.4.3.
getEventType() Gets the event type. Deprecated in NDB 7.4.3.
getEventType2() Gets the event type. Added in NDB 7.4.3.
getGCI() Retrieves the GCI of the most recently retrieved event. Deprecated in NDB 7.4.3.
getLatestGCI() Retrieves the most recent GCI (whether or not the corresponding event has been retrieved). Deprecated in NDB 7.4.3.
getNdbError() Gets the most recent error
getPreBlobHandle() Gets a handle for reading the previous blob attribute
getPreValue() Retrieves an attribute's previous value
getState() Gets the current state of the event operation
getValue() Retrieves an attribute value
hasError() Whether an error has occurred as part of this operation. Deprecated in NDB 7.4.3.
isConsistent() Detects event loss caused by node failure. Deprecated in NDB 7.4.3.
isEmptyEpoch() Detects an empty epoch. Added in NDB 7.4.3.
isErrorEpoch() Detects an error epoch, and retrieves the error if there is one. Added in NDB 7.4.3.
isOverrun() Whether event loss has taken place due to a buffer overrun. Deprecated in NDB 7.4.3.
mergeEvents() Makes it possible for events to be merged
tableFragmentationChanged() Checks to see whether the fragmentation for a table has changed
tableFrmChanged() Checks to see whether a table .FRM file has changed
tableNameChanged() Checks to see whether the name of a table has changed
tableRangeListChanged() Checks to see whether a table range partition list name has changed

Types.  NdbEventOperation defines one enumerated type, the State type.