org.apache.flume.channel.jdbc

## Class JdbcChannel

- java.lang.Object
- - org.apache.flume.channel.AbstractChannel
  - - org.apache.flume.channel.jdbc.JdbcChannel

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

      @InterfaceAudience.Private
      @InterfaceStability.Stable
      public class JdbcChannel
      extends AbstractChannel

  A JDBC based channel implementation.

  JdbcChannel is marked `InterfaceAudience.Private` because it should only be instantiated via a configuration. For example, users should certainly use JdbcChannel but not by instantiating JdbcChannel objects. Meaning the label Private applies to user-developers not user-operators. In cases where a Channel is required by instantiated by user-developers `MemoryChannel` should be used.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `JdbcChannel()` Instantiates a new JDBC Channel.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `configure(Context context)` Request the implementing class to (re)configure itself.
    `Transaction` | `getTransaction()`
    `void` | `put(Event event)` Puts the given event into the channel.
    `void` | `stop()` Stops a service or component.
    `Event` | `take()` Returns the next event from the channel if available.

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

      `getLifecycleState, getName, setName, start, toString`

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

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

- - ### Constructor Detail

    - #### JdbcChannel

          public JdbcChannel()

      Instantiates a new JDBC Channel.

  - ### Method Detail

    - #### put

          public void put(Event event)
                   throws ChannelException

      Description copied from interface: `Channel`

      Puts the given event into the channel.

      Note: This method must be invoked within an active `Transaction` boundary. Failure to do so can lead to unpredictable results.

      Parameters:
        `event` - the event to transport.
      Throws:
        `ChannelException` - in case this operation fails.
      See Also:
        `Transaction.begin()`

    - #### take

          public Event take()
                     throws ChannelException

      Description copied from interface: `Channel`

      Returns the next event from the channel if available. If the channel does not have any events available, this method must return `null`.

      Note: This method must be invoked within an active `Transaction` boundary. Failure to do so can lead to unpredictable results.

      Returns:
        the next available event or `null` if no events are available.
      Throws:
        `ChannelException` - in case this operation fails.
      See Also:
        `Transaction.begin()`

    - #### getTransaction

          public Transaction getTransaction()

      Returns:
        the transaction instance associated with this channel.

    - #### 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`

    - #### configure

          public void configure(Context context)

      Description copied from interface: `Configurable`

      Request the implementing class to (re)configure itself.

      When configuration parameters are changed, they must be reflected by the component asap.

      There are no thread safety guarantees on when configure might be called.

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

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