patch code to open source branch
This commit is contained in:
@ -41,14 +41,15 @@ int ObEndTransExecutor::end_trans(ObExecContext& ctx, ObEndTransStmt& stmt)
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
LOG_ERROR("session ptr is null", K(ret));
|
||||
} else if (my_session->is_in_transaction() && my_session->get_trans_desc().is_xa_local_trans()) {
|
||||
transaction::ObXATransID xid = my_session->get_trans_desc().get_xid();
|
||||
const transaction::ObTransDesc& trans_desc = my_session->get_trans_desc();
|
||||
transaction::ObXATransID xid = trans_desc.get_xid();
|
||||
if (stmt.get_is_rollback()) {
|
||||
// Rollback can be executed in the xa transaction,
|
||||
// the role is to roll back all modifications, but does not end the xa transaction
|
||||
} else {
|
||||
// commit is prohibited in xa transaction
|
||||
ret = OB_TRANS_XA_ERR_COMMIT;
|
||||
LOG_WARN("COMMIT is not allowed in a xa trans", K(ret), K(xid));
|
||||
LOG_WARN("COMMIT is not allowed in a xa trans", K(ret), K(xid), K(trans_desc));
|
||||
}
|
||||
ctx.set_need_disconnect(false);
|
||||
} else if (OB_FAIL(ObSqlTransControl::explicit_end_trans(ctx, stmt.get_is_rollback()))) {
|
||||
|
||||
@ -111,7 +111,7 @@ int ObPlXaStartExecutor::execute(ObExecContext& ctx, ObXaStartStmt& stmt)
|
||||
LOG_WARN("set xid error", K(ret), K(stmt));
|
||||
} else if (my_session->get_in_transaction()) {
|
||||
ret = OB_TRANS_XA_OUTSIDE;
|
||||
LOG_WARN("already start trans", K(ret), K(stmt.get_xa_string()));
|
||||
LOG_WARN("already start trans", K(ret), K(stmt.get_xa_string()), K(trans_desc));
|
||||
} else {
|
||||
transaction::ObStartTransParam& start_trans_param = plan_ctx->get_start_trans_param();
|
||||
init_start_trans_param(my_session, task_exec_ctx, start_trans_param);
|
||||
|
||||
Reference in New Issue
Block a user