org.apache.flume.channel

## Class MemoryChannel

- java.lang.Object
- - org.apache.flume.channel.AbstractChannel
  - - org.apache.flume.channel.BasicChannelSemantics
    - - org.apache.flume.channel.MemoryChannel

- All Implemented Interfaces:
    Channel, Configurable, LifecycleAware, NamedComponent

      @InterfaceAudience.Public
      @InterfaceStability.Stable
      public class MemoryChannel
      extends BasicChannelSemantics

  MemoryChannel is the recommended channel to use when speeds which writing to disk is impractical is required or durability of data is not required.

  Additionally, MemoryChannel should be used when a channel is required for unit testing purposes.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `MemoryChannel()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `configure(Context context)` Read parameters from context capacity = type long that defines the total number of events allowed at one time in the queue.
    `protected BasicTransactionSemantics` | `createTransaction()` Called to create new `Transaction` objects, which must extend `BasicTransactionSemantics`.
    `void` | `start()` Starts a service or component.
    `void` | `stop()` Stops a service or component.

    - ### Methods inherited from class org.apache.flume.channel.BasicChannelSemantics

      `getTransaction, initialize, put, take`

    - ### Methods inherited from class org.apache.flume.channel.AbstractChannel

      `getLifecycleState, getName, setName, toString`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### MemoryChannel

          public MemoryChannel()

  - ### Method Detail

    - #### configure

          public void configure(Context context)

      Read parameters from context
    - capacity = type long that defines the total number of events allowed at one time in the queue.
    - transactionCapacity = type long that defines the total number of events allowed in one transaction.
    - byteCapacity = type long that defines the max number of bytes used for events in the queue.
    - byteCapacityBufferPercentage = type int that defines the percent of buffer between byteCapacity and the estimated event size.
    - keep-alive = type int that defines the number of second to wait for a queue permit

Specified by:
  `configure` in interface `Configurable`
Overrides:
  `configure` in class `AbstractChannel`

- #### start

      public void start()

  Description copied from interface: `LifecycleAware`

  Starts a service or component.

  Implementations should determine the result of any start logic and effect the return value of `LifecycleAware.getLifecycleState()` accordingly.

  Specified by:
    `start` in interface `LifecycleAware`
  Overrides:
    `start` in class `AbstractChannel`

- #### stop

      public void stop()

  Description copied from interface: `LifecycleAware`

  Stops a service or component.

  Implementations should determine the result of any stop logic and effect the return value of `LifecycleAware.getLifecycleState()` accordingly.

  Specified by:
    `stop` in interface `LifecycleAware`
  Overrides:
    `stop` in class `AbstractChannel`

- #### createTransaction

      protected BasicTransactionSemantics createTransaction()

  Description copied from class: `BasicChannelSemantics`

  Called to create new `Transaction` objects, which must extend `BasicTransactionSemantics`. Each object is used for only one transaction, but is stored in a thread-local and retrieved by `getTransaction` for the duration of that transaction.

  Specified by:
    `createTransaction` in class `BasicChannelSemantics`

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