[CP] [dblink][tx-free-route] check tx free route for dblink trans.
This commit is contained in:
@ -58,6 +58,9 @@ int ObTMService::tm_rm_start(ObExecContext &exec_ctx,
|
||||
if (NULL == xa_service || NULL == my_session || NULL == plan_ctx) {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
LOG_WARN("unexpected param", K(ret), KP(xa_service), KP(my_session));
|
||||
} else if (!my_session->is_inner() && my_session->is_txn_free_route_temp()) {
|
||||
ret = OB_TRANS_FREE_ROUTE_NOT_SUPPORTED;
|
||||
LOG_WARN("not support tx free route for dblink trans");
|
||||
} else if (OB_FAIL(my_session->get_tx_timeout(tx_timeout))) {
|
||||
LOG_ERROR("fail to get trans timeout ts", K(ret));
|
||||
} else if (my_session->get_in_transaction()) {
|
||||
@ -174,6 +177,9 @@ int ObTMService::tm_commit(ObExecContext &exec_ctx,
|
||||
if (NULL == xa_service || NULL == my_session || NULL == tx_desc) {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
LOG_WARN("unexpected param", K(ret), KP(xa_service), KP(my_session), KP(tx_desc));
|
||||
} else if (!my_session->is_inner() && my_session->is_txn_free_route_temp()) {
|
||||
ret = OB_TRANS_FREE_ROUTE_NOT_SUPPORTED;
|
||||
LOG_WARN("not support tx free route for dblink trans");
|
||||
} else {
|
||||
ObSQLSessionInfo::LockGuard data_lock_guard(my_session->get_thread_data_lock());
|
||||
tx_id = tx_desc->tid();
|
||||
@ -221,6 +227,9 @@ int ObTMService::tm_rollback(ObExecContext &exec_ctx,
|
||||
if (NULL == xa_service || NULL == my_session || NULL == tx_desc) {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
LOG_WARN("unexpected param", K(ret), KP(xa_service), KP(my_session), KP(tx_desc));
|
||||
} else if (!my_session->is_inner() && my_session->is_txn_free_route_temp()) {
|
||||
ret = OB_TRANS_FREE_ROUTE_NOT_SUPPORTED;
|
||||
LOG_WARN("not support tx free route for dblink trans");
|
||||
} else {
|
||||
ObSQLSessionInfo::LockGuard data_lock_guard(my_session->get_thread_data_lock());
|
||||
tx_id = tx_desc->tid();
|
||||
@ -261,6 +270,9 @@ int ObTMService::recover_tx_for_callback(const ObTransID &tx_id,
|
||||
} else if (NULL == xa_service || NULL == my_session) {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
LOG_WARN("unexpected param", K(ret), KP(xa_service), KP(my_session));
|
||||
} else if (!my_session->is_inner() && my_session->is_txn_free_route_temp()) {
|
||||
ret = OB_TRANS_FREE_ROUTE_NOT_SUPPORTED;
|
||||
LOG_WARN("not support tx free route for dblink trans");
|
||||
} else if (my_session->get_in_transaction()) {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
LOG_WARN("unexpected session", K(ret), K(tx_id), K(tx_desc->tid()));
|
||||
|
Reference in New Issue
Block a user