Как использовать один и тот же XID в двух сеансах в MySQL?

У меня есть два API-интерфейса restful: одно имя заказа на обновление и другое состояние заказа на обновление, и они используют одну и ту же базу данных mysql и одну и ту же таблицу под названием «Order».

И в моем клиентском коде я хочу вызвать эти два API с транзакцией, но я обнаружил, что не могу управлять одним xid в двух сеансах mysql.

И мой дизайн такой:

код клиента:

api.xa_start(xid);
if (api.updateName('111') && api.updateStatus(1)) {
api.xa_commit(xid);
} else {
api.xa_rollback(xid);
}

API-код (который находится на другом сервере):

function xa_start(xid) {
pdo.execute('xa start xid');
}

function xa_commit(xid) {
pdo.execute('xa commit xid');
}

function xa_rollback(xid) {
pdo.execute('xa rollback xid');
}

function updateName(name) {
pdo.execute('update order set name="'+name+'" where id=xx');
}

function updatestatus(status) {
pdo.execute('update order set status="'+status+'" where id=xx');
}

Но проблема в том, что MySQL кажется, что не может использовать один и тот же XID в двух сессиях … Так, как я могу решить эту проблему …

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]