Drizzled Public API Documentation

drizzled::plugin::XaResourceManager Class Referenceabstract

#include <xa_resource_manager.h>

Inheritance diagram for drizzled::plugin::XaResourceManager:
drizzled::plugin::XaStorageEngine

Public Types

typedef ::boost::unordered_set< my_xidcommit_list_set
 

Public Member Functions

int xaPrepare (Session *session, bool normal_transaction)
 
int xaCommit (Session *session, bool normal_transaction)
 
int xaRollback (Session *session, bool normal_transaction)
 
int xaCommitXid (XID *xid)
 
int xaRollbackXid (XID *xid)
 
int xaRecover (XID *append_to, size_t len)
 
uint64_t getCurrentTransactionId (Session *session)
 
uint64_t getNewTransactionId (Session *session)
 

Static Public Member Functions

static int commitOrRollbackXID (XID *xid, bool commit)
 
static int recoverAllXids ()
 
static int recoverAllXids (const commit_list_set &commit_list)
 
static bool addPlugin (plugin::XaResourceManager *manager)
 
static void removePlugin (plugin::XaResourceManager *manager)
 

Private Member Functions

virtual int doXaCommit (Session *session, bool normal_transaction)=0
 
virtual int doXaRollback (Session *session, bool normal_transaction)=0
 
virtual int doXaPrepare (Session *session, bool normal_transaction)=0
 
virtual int doXaRollbackXid (XID *xid)=0
 
virtual int doXaCommitXid (XID *xid)=0
 
virtual int doXaRecover (XID *append_to, size_t len)=0
 
virtual uint64_t doGetCurrentTransactionId (Session *session)=0
 
virtual uint64_t doGetNewTransactionId (Session *session)=0
 

Detailed Description

An abstract interface class which exposes the participation of implementing classes in distributed transactions in the XA protocol.

Definition at line 33 of file xa_resource_manager.h.

Member Function Documentation

int drizzled::plugin::XaResourceManager::commitOrRollbackXID ( XID xid,
bool  commit 
)
static

The below static class methods wrap the interaction of the vector of registered XA storage engines.

Definition at line 45 of file xa_resource_manager.cc.

virtual int drizzled::plugin::XaResourceManager::doXaCommit ( Session session,
bool  normal_transaction 
)
privatepure virtual

Does the COMMIT stage of the two-phase commit.

virtual int drizzled::plugin::XaResourceManager::doXaCommitXid ( XID xid)
privatepure virtual

Commits a transaction identified by a XID.

virtual int drizzled::plugin::XaResourceManager::doXaPrepare ( Session session,
bool  normal_transaction 
)
privatepure virtual

Does the PREPARE stage of the two-phase commit.

virtual int drizzled::plugin::XaResourceManager::doXaRecover ( XID append_to,
size_t  len 
)
privatepure virtual

Notifies the transaction manager of any transactions which had been marked prepared but not committed at crash time or that have been heurtistically completed by the storage engine.

Parameters
[out]Referenceto a vector of XIDs to add to
Return values
Returnsthe number of transactions left to recover for this engine.
virtual int drizzled::plugin::XaResourceManager::doXaRollback ( Session session,
bool  normal_transaction 
)
privatepure virtual

Does the ROLLBACK stage of the two-phase commit.

virtual int drizzled::plugin::XaResourceManager::doXaRollbackXid ( XID xid)
privatepure virtual

Rolls back a transaction identified by a XID.


The documentation for this class was generated from the following files: