Willem Jiang created SCB-1481: --------------------------------- Summary: TCC findTimeoutGlobalTx should time-out event into consideration. Key: SCB-1481 URL: https://issues.apache.org/jira/browse/SCB-1481 Project: Apache ServiceComb Issue Type: Bug Reporter: Willem Jiang
We will get the exception like TCC:java.sql.SQLIntegrityConstraintViolationException:Duplicate entry key GlobalTxEventRepository:line 37 {code} @Query(value = "SELECT t FROM GlobalTxEvent AS t WHERE t.creationTime < ?1 and t.txType = ?2 order by t.creationTime asc") Optional<List<GlobalTxEvent>> findTimeoutGlobalTx(Date deadLine, String txType, Pageable pageable); {code} We should skip the "END_TIMEOUT", like {code} @Query(value = "SELECT t FROM GlobalTxEvent AS t WHERE t.creationTime < ?1 and t.txType = ?2 " + "AND NOT EXISTS(select 1 from GlobalTxEvent b where b.txType='END_TIMEOUT' AND b.globalTxId=t.globalTxId) order by t.creationTime asc") Optional<List<GlobalTxEvent>> findTimeoutGlobalTx(Date deadLine, String txType, Pageable pageable); {code} -- This message was sent by Atlassian Jira (v8.3.2#803003)