В Ballerina мы можем определить, была ли транзакция успешной, с помощью предоставляемых нами функций onCommit и onAbort. Но это уводит нас от текущего метода.
Я хочу иметь возможность проверить, была ли транзакция успешной или неудачной в самой следующей строке после транзакции в том же методе. В моем сценарии я не могу также иметь глобальные переменные для совместного использования состояний. Я могу придумать обходные пути, такие как использование логического значения внутри функции, но вне транзакции.
boolean status=true;
transaction with retries = 4, oncommit = onCommitFunction, onabort = onAbortFunction {
status = true;
// any sql statement/s here
var result = client->update("INSERT ....");
match result {
int c => {
io:println("Inserted count: " + c);
if (c == 0) {
status = false;
abort;
}
}
error err => {
status = false;
retry;
}
}
}
// Here I want to know whether the transaction was a success or a failure
if(status) {
// success action
} else {
// Failed action
}
Есть ли лучший и более чистый способ узнать, была ли транзакция успешной сразу после транзакции, как указано выше?
Заранее спасибо.