5.0.2 LCN模式,补偿机制问题
- 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