nElapsedTxnTime.add(repTxn.elapsedTime());
} else if (LOG_TXN_ABORT.equalsType(entryType)) {
nAborts.increment();
final TxnAbort masterAbort = (TxnAbort) logEntry.getMainItem();
final ReplicationContext abortContext =
new ReplicationContext(wireRecord.getVLSN());
if (logger.isLoggable(Level.FINEST)) {
LoggerUtils.finest(logger, repImpl,
"abort called for " + repTxn.getId() +
" masterId=" +
masterAbort.getMasterNodeId() +
" repContext=" + abortContext);
}
repTxn.abort(abortContext, masterAbort.getMasterNodeId());
lastReplayedTxn = new TxnInfo(lastReplayedVLSN,
masterAbort.getTime().getTime());
if (repTxn.getRepGroupDbChange() && canRefreshGroup(repTxn)) {
/*
* Refresh is the safe thing to do on an abort, since a
* refresh may have been held back from an earlier commit