codingapi / codingapi/tx-lcn

5.0.2 LCN模式,补偿机制问题

Ouverte
#343 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
Java
Étoiles
4.2k
Forks
1.4k
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

```
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提交失败,那么是不是不会被记录需要补偿?

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Piste de recherche

Commencez par LcnTransactionCleanService.clear et suivez LcnConnectionProxy.notify(state) à travers TCGlobalContext. Étudiez comment sont gérées les exceptions du commit de base de données d’un participant et si les notifications ayant échoué sont enregistrées pour la compensation ; le travail est considéré comme terminé lorsque le comportement en cas d’échec est défini et couvert par un test approprié.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
java
Domaine
distributed-systems
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
À clarifier
Accessibilité débutants
25/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.