Drizzled Public API Documentation

drizzled::plugin::XaResourceManager Class Reference

#include <xa_resource_manager.h>

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

List of all members.

Public Types

typedef ::boost::unordered_set
< my_xid
commit_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 39 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 46 of file xa_resource_manager.cc.

virtual int drizzled::plugin::XaResourceManager::doXaCommit ( Session session,
bool  normal_transaction 
) [private, pure virtual]

Does the COMMIT stage of the two-phase commit.

virtual int drizzled::plugin::XaResourceManager::doXaCommitXid ( XID xid) [private, pure virtual]

Commits a transaction identified by a XID.

virtual int drizzled::plugin::XaResourceManager::doXaPrepare ( Session session,
bool  normal_transaction 
) [private, pure virtual]

Does the PREPARE stage of the two-phase commit.

virtual int drizzled::plugin::XaResourceManager::doXaRecover ( XID append_to,
size_t  len 
) [private, pure 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 
) [private, pure virtual]

Does the ROLLBACK stage of the two-phase commit.

virtual int drizzled::plugin::XaResourceManager::doXaRollbackXid ( XID xid) [private, pure virtual]

Rolls back a transaction identified by a XID.


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