[CP]not allow begin/start transaction statement in xa trans for bug 46947616
This commit is contained in:
		| @ -238,11 +238,19 @@ int ObResultSet::on_cmd_execute() | ||||
|     ret = OB_ERR_UNEXPECTED; | ||||
|     LOG_ERROR("invalid inner state", K(cmd_)); | ||||
|   } else if (cmd_->cause_implicit_commit()) { | ||||
|     // not allow implicit commit in xa trans | ||||
|     if (my_session_.associated_xa()) { | ||||
|       ret = OB_TRANS_XA_ERR_COMMIT; | ||||
|       get_exec_context().set_need_disconnect(false); | ||||
|       const transaction::ObTxDesc *tx_desc = my_session_.get_tx_desc(); | ||||
|       LOG_WARN("COMMIT is not allowed in a xa trans", K(ret), KPC(tx_desc)); | ||||
|     } else { | ||||
|       // commit current open transaction, synchronously | ||||
|       if (OB_FAIL(ObSqlTransControl::implicit_end_trans(get_exec_context(), false))) { | ||||
|         SQL_ENG_LOG(WARN, "fail end implicit trans on cmd execute", K(ret)); | ||||
|       } | ||||
|     } | ||||
|   } | ||||
|   return ret; | ||||
| } | ||||
|  | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 obdev
					obdev