codingapi / codingapi/tx-lcn

5.0.2 LCN模式,补偿机制问题

Offen
#343 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
Java
Sterne
4.2k
Forks
1.4k
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

```
public class LcnTransactionCleanService implements TransactionCleanService {

private final TCGlobalContext globalContext;

@Autowired
public LcnTransactionCleanService(TCGlobalContext globalContext) {
this.globalContext = globalContext;
}

@Override
public void clear(String groupId, int state, String unitId, String unitType) throws TransactionClearException {
try {
LcnConnectionProxy connectionProxy = globalContext.getLcnConnection(groupId);
connectionProxy.notify(state);
// todo notify exception
} catch (TCGlobalContextException e) {
log.warn("Non lcn connection when clear transaction.");
}
}
}
```
源码中,connectionProxy.notify(state) 里面实际上捕获了所有异常;
如果参与方等待通知时,数据库connection提交失败,那么是不是不会被记录需要补偿?

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Rechercherichtung

Beginne mit LcnTransactionCleanService.clear und verfolge LcnConnectionProxy.notify(state) durch TCGlobalContext. Untersuche, wie Ausnahmen aus dem Datenbank-Commit eines Teilnehmers behandelt werden und ob fehlgeschlagene Benachrichtigungen für die Kompensation erfasst werden; abgeschlossen ist die Aufgabe, wenn das Fehlerverhalten definiert und durch einen geeigneten Test abgedeckt ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java
Bereich
distributed-systems
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.