@Override public void rollback(Savepoint savepoint) throws SQLException { FilterChainImpl chain = createChain(); chain.connection_rollback(this, savepoint); recycleFilterChain(chain); if (transcationInfo != null) { transcationInfo.setEndTimeMillis(); } }
@Override public void commit() throws SQLException { FilterChainImpl chain = createChain(); chain.connection_commit(this); if (transcationInfo != null) { transcationInfo.setEndTimeMillis(); } recycleFilterChain(chain); }
@Override public TransactionInfo getTransactionInfo() { final TransactionInfo info = _transactionInfoCache; if (System.currentTimeMillis() - info.getAcquisitionTime() > MAX_STALE) { final List<Transaction> transactions = new ArrayList<Transaction>(); synchronized (info) { info.commitCount = 0; info.rollbackCount = 0; info.rollbackSinceCommitCount = 0; _persistit.populateTransactionList(transactions); for (final Transaction txn : transactions) { info.commitCount += txn.getCommittedTransactionCount(); info.rollbackCount += txn.getRolledBackTransactionCount(); info.rollbackSinceCommitCount += txn.getRolledBackSinceLastCommitCount(); } info.updateAcquisitonTime(); } } return info; }
private void applyTransactions(Address sender, Collection<TransactionInfo> transactions) { log.debugf( "Applying %d transactions for cache %s transferred from node %s", transactions.size(), cacheName, sender); if (isTransactional) { for (TransactionInfo transactionInfo : transactions) { CacheTransaction tx = transactionTable.getLocalTransaction(transactionInfo.getGlobalTransaction()); if (tx == null) { tx = transactionTable.getRemoteTransaction(transactionInfo.getGlobalTransaction()); if (tx == null) { tx = transactionTable.getOrCreateRemoteTransaction( transactionInfo.getGlobalTransaction(), transactionInfo.getModifications()); ((RemoteTransaction) tx).setMissingLookedUpEntries(true); } } for (Object key : transactionInfo.getLockedKeys()) { tx.addBackupLockForKey(key); } } } }
/**