org.apache.flume.channel
Class FanoutChannel.wrapperTransaction

java.lang.Object
  extended by org.apache.flume.channel.FanoutChannel.wrapperTransaction
All Implemented Interfaces:
Transaction
Enclosing class:
FanoutChannel

public class FanoutChannel.wrapperTransaction
extends Object
implements Transaction

A wrapper transaction that does the operation on all channels. Note that there's no two phase commit. If one of the channels throws an exception, we still execute the operations for the rest. All the failed commits are rolled back at the end to maintain consistent transaction state. Note that the currently commit and rollback are not throwing exceptions * even if one of the underlying transactions fail.


Nested Class Summary
 
Nested classes/interfaces inherited from interface org.apache.flume.Transaction
Transaction.TransactionState
 
Constructor Summary
FanoutChannel.wrapperTransaction()
           
 
Method Summary
 void begin()
          Starts a transaction boundary for the current channel operation.
 void close()
          Ends a transaction boundary for the current channel operation.
 void commit()
          Indicates that the transaction can be successfully committed.
 void rollback()
          Indicates that the transaction can must be aborted.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FanoutChannel.wrapperTransaction

public FanoutChannel.wrapperTransaction()
Method Detail

begin

public void begin()
Description copied from interface: Transaction

Starts a transaction boundary for the current channel operation. If a transaction is already in progress, this method will join that transaction using reference counting.

Note: For every invocation of this method there must be a corresponding invocation of Transaction.close() method. Failure to ensure this can lead to dangling transactions and unpredictable results.

Specified by:
begin in interface Transaction

commit

public void commit()
Description copied from interface: Transaction
Indicates that the transaction can be successfully committed. It is required that a transaction be in progress when this method is invoked.

Specified by:
commit in interface Transaction

rollback

public void rollback()
Description copied from interface: Transaction
Indicates that the transaction can must be aborted. It is required that a transaction be in progress when this method is invoked.

Specified by:
rollback in interface Transaction

close

public void close()
Description copied from interface: Transaction

Ends a transaction boundary for the current channel operation. If a transaction is already in progress, this method will join that transaction using reference counting. The transaction is completed only if there are no more references left for this transaction.

Note: For every invocation of this method there must be a corresponding invocation of Transaction.begin() method. Failure to ensure this can lead to dangling transactions and unpredictable results.

Specified by:
close in interface Transaction


Copyright © 2009-2012 Apache Software Foundation. All Rights Reserved.