private void checkExpiredTransactions( Set<KernelTransactionHandle> activeTransactions, long now ) { for ( KernelTransactionHandle activeTransaction : activeTransactions ) { long transactionTimeoutMillis = activeTransaction.timeoutMillis(); if ( transactionTimeoutMillis > 0 ) { if ( isTransactionExpired( activeTransaction, now, transactionTimeoutMillis ) ) { if ( activeTransaction.markForTermination( Status.Transaction.TransactionTimedOut ) ) { log.warn( "Transaction %s timeout.", activeTransaction ); } } } } }
private void terminateOngoingTransaction() { Set<KernelTransactionHandle> kernelTransactionHandles = database.resolveDependency( KernelTransactions.class ).activeTransactions(); assertThat( kernelTransactionHandles, hasSize( 1 ) ); for ( KernelTransactionHandle kernelTransactionHandle : kernelTransactionHandles ) { kernelTransactionHandle.markForTermination( Status.Transaction.Terminated ); } }
public static Stream<TransactionTerminationResult> terminateTransactionsForValidUser( DependencyResolver dependencyResolver, String username, KernelTransaction currentTx ) { long terminatedCount = getActiveTransactions( dependencyResolver ) .stream() .filter( tx -> tx.subject().hasUsername( username ) && !tx.isUnderlyingTransaction( currentTx ) ) .map( tx -> tx.markForTermination( Status.Transaction.Terminated ) ) .filter( marked -> marked ) .count(); return Stream.of( new TransactionTerminationResult( username, terminatedCount ) ); }
protected void terminateTransactionsForValidUser( String username ) { KernelTransaction currentTx = getCurrentTx(); getActiveTransactions() .stream() .filter( tx -> tx.subject().hasUsername( username ) && !tx.isUnderlyingTransaction( currentTx ) ).forEach( tx -> tx.markForTermination( Status.Transaction.Terminated ) ); }
private void checkExpiredTransactions( Set<KernelTransactionHandle> activeTransactions, long now ) { for ( KernelTransactionHandle activeTransaction : activeTransactions ) { long transactionTimeoutMillis = activeTransaction.timeoutMillis(); if ( transactionTimeoutMillis > 0 ) { if ( isTransactionExpired( activeTransaction, now, transactionTimeoutMillis ) ) { if ( activeTransaction.markForTermination( Status.Transaction.TransactionTimedOut ) ) { log.warn( "Transaction %s timeout.", activeTransaction ); } } } } }
private QueryTerminationResult killQueryTransaction( Pair<KernelTransactionHandle, ExecutingQuery> pair ) throws InvalidArgumentsException { ExecutingQuery query = pair.other(); if ( isAdminOrSelf( query.username() ) ) { pair.first().markForTermination( Status.Transaction.Terminated ); return new QueryTerminationResult( ofInternalId( query.internalQueryId() ), query.username() ); } else { throw new AuthorizationViolationException( PERMISSION_DENIED ); } }
commitTimestamp < earliestSafeTimestamp ) if ( txHandle.markForTermination( Status.Transaction.Outdated ) )