#include <xa.h>
◆ xa_states
| Enumerator |
|---|
| XA_NOTR | |
| XA_ACTIVE | |
| XA_IDLE | |
| XA_PREPARED | |
| XA_ROLLBACK_ONLY | |
◆ XID_STATE()
◆ check_has_uncommitted_xa()
| bool XID_STATE::check_has_uncommitted_xa |
( |
| ) |
const |
Check that XA transaction has an uncommitted work.
Report an error to a mysql user in case when there is an uncommitted work for XA transaction.
- Returns
- result of check
- Return values
-
| false | XA transaction is NOT in state IDLE, PREPARED or ROLLBACK_ONLY. |
| true | XA transaction is in state IDLE or PREPARED or ROLLBACK_ONLY. |
◆ check_in_xa()
| bool XID_STATE::check_in_xa |
( |
bool |
report_error | ) |
const |
Check if an XA transaction has been started.
- Parameters
-
| report_error | true if report an error in case when XA transaction has been stared, else false. |
- Returns
- result of check
- Return values
-
| false | XA transaction hasn't been started (XA_NOTR) |
| true | XA transaction has been started (!XA_NOTR) |
◆ check_xa_idle_or_prepared()
| bool XID_STATE::check_xa_idle_or_prepared |
( |
bool |
report_error | ) |
const |
Check that XA transaction is in state IDLE or PREPARED.
- Parameters
-
| report_error | true if state IDLE or PREPARED has to be interpreted as an error, else false |
- Returns
- result of check
- Return values
-
| false | XA transaction is NOT in state IDLE or PREPARED |
| true | XA transaction is in state IDLE or PREPARED |
◆ cleanup()
| void XID_STATE::cleanup |
( |
void |
| ) |
|
|
inline |
◆ get_state()
◆ get_xa_lock()
| std::mutex & XID_STATE::get_xa_lock |
( |
| ) |
|
|
inline |
◆ get_xid() [1/2]
| XID * XID_STATE::get_xid |
( |
| ) |
|
|
inline |
◆ get_xid() [2/2]
| const XID * XID_STATE::get_xid |
( |
| ) |
const |
|
inline |
◆ has_same_xid()
| bool XID_STATE::has_same_xid |
( |
const XID * |
xid | ) |
const |
|
inline |
◆ has_state()
| bool XID_STATE::has_state |
( |
xa_states |
state | ) |
const |
|
inline |
◆ is_binlogged()
| bool XID_STATE::is_binlogged |
( |
| ) |
const |
|
inline |
◆ is_detached()
| bool XID_STATE::is_detached |
( |
| ) |
const |
|
inline |
◆ reset()
| void XID_STATE::reset |
( |
void |
| ) |
|
|
inline |
◆ reset_error()
| void XID_STATE::reset_error |
( |
| ) |
|
|
inline |
◆ set_binlogged()
| void XID_STATE::set_binlogged |
( |
| ) |
|
|
inline |
◆ set_error()
| void XID_STATE::set_error |
( |
THD * |
thd | ) |
|
◆ set_query_id()
| void XID_STATE::set_query_id |
( |
query_id_t |
query_id | ) |
|
|
inline |
◆ set_state()
◆ start_detached_xa()
| void XID_STATE::start_detached_xa |
( |
const XID * |
xid, |
|
|
bool |
binlogged_arg = false |
|
) |
| |
|
inline |
◆ start_normal_xa()
| void XID_STATE::start_normal_xa |
( |
const XID * |
xid | ) |
|
|
inline |
◆ state_name()
| const char * XID_STATE::state_name |
( |
| ) |
const |
|
inline |
◆ store_xid_info()
| void XID_STATE::store_xid_info |
( |
Protocol * |
protocol, |
|
|
bool |
print_xid_as_hex |
|
) |
| const |
◆ unset_binlogged()
| void XID_STATE::unset_binlogged |
( |
| ) |
|
|
inline |
◆ xa_trans_rolled_back()
| bool XID_STATE::xa_trans_rolled_back |
( |
| ) |
|
Mark a XA transaction as rollback-only if the RM unilaterally rolled back the transaction branch.
- Note
- If a rollback was requested by the RM, this function sets the appropriate rollback error code and transits the state to XA_ROLLBACK_ONLY.
- Returns
- true if transaction was rolled back or if the transaction state is XA_ROLLBACK_ONLY. false otherwise.
◆ m_is_binlogged
| bool XID_STATE::m_is_binlogged |
|
private |
◆ m_is_detached
| bool XID_STATE::m_is_detached = false |
|
private |
◆ m_xa_lock
| std::mutex XID_STATE::m_xa_lock |
|
private |
This mutex used for eliminating a possibility to run two XA COMMIT/XA ROLLBACK statements concurrently against the same xid value.
m_xa_lock is used on handling XA COMMIT/XA ROLLBACK and acquired only for external XA branches.
◆ m_xid
◆ rm_error
Error reported by the Resource Manager (RM) to the Transaction Manager.
◆ xa_state
Used by external XA only.
◆ xa_state_names
| const char * XID_STATE::xa_state_names |
|
staticprivate |
Initial value:= {"NON-EXISTING", "ACTIVE", "IDLE",
"PREPARED", "ROLLBACK ONLY"}
Transaction identifier.
For now, this is only used to catch duplicated external xids.
The documentation for this class was generated from the following files: