Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.jboss.cache.loader.bdbje
Class BdbjeCacheLoader

    java.lang.Object
      org.jboss.cache.loader.bdbje.BdbjeCacheLoader

All Implemented Interfaces:
  CacheLoader, org.jboss.system.Service

public class BdbjeCacheLoader
extends Object
implements CacheLoader

A persistent `CacheLoader` based on Berkeley DB Java Edition.

The configuration string format is:

    environmentDirectoryName[#databaseName]

where databaseName, if omitted, defaults to the ClusterName property of the TreeCache.

A je.properties file may optionally be placed in the JE environment directory and used to customize the default JE configuration.

Version:
  $Id: BdbjeCacheLoader.java,v 1.13.2.1 2004/12/14 08:19:21 starksm Exp $
Author:
  Mark Hayes May 16, 2004, Bela Ban

Constructor Summary
`BdbjeCacheLoader()`

Method Summary
`void` | `commit(Object tx)` Commits the given transaction, or throws IllegalArgumentException if the given key is not associated with an uncommited transaction.
`void` | `create()` Does nothing since start() does all the work.
`void` | `destroy()` Does nothing since stop() does all the work.
`boolean` | `exists(Fqn name)` Returns whether the given node exists.
`Map` | `get(Fqn name)` Returns a map containing all key-value pairs for the given FQN, or null if the node is not present.
`Object` | `get(Fqn name, Object key)` Returns the data object stored under the given FQN and key, or null if the FQN and key are not present.
`Set` | `getChildrenNames(Fqn name)` Returns an unmodifiable set of relative children names (strings), or returns null if the parent node is not found or if no children are found.
`byte[]` | `loadEntireState()` Export the contents of the databases as a byte array.
`void` | `prepare(Object tx, List modifications, boolean onePhase)` Begins a transaction and applies the given modifications.
`void` | `put(Fqn name, Map values)` Stores a map of key-values for a given FQN, but does not delete existing key-value pairs (that is, it does not erase).
`Object` | `put(Fqn name, Object key, Object value)` Stores a single FQN-key-value record.
`void` | `put(List modifications)` Applies the given modifications.
`void` | `remove(Fqn name)` Deletes the node for a given FQN and all its descendent nodes.
`Object` | `remove(Fqn name, Object key)` Deletes a single FQN-key-value record.
`void` | `removeData(Fqn name)` Clears the map for the given node, but does not remove the node.
`void` | `rollback(Object tx)` Commits the given transaction, or throws IllegalArgumentException if the given key is not associated with an uncommited transaction.
`void` | `setCache(TreeCache c)` Sets the TreeCache owner of this cache loader.
`void` | `setConfig(Properties props)` Sets the configuration string for this cache loader.
`void` | `start()` Opens the JE environment and the database specified by the configuration string.
`void` | `stop()` Closes the JE databases and environment, and nulls references to them.
`void` | `storeEntireState(byte[] state)` Replace the contents of the databases with the given exported data.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### BdbjeCacheLoader

    public BdbjeCacheLoader()

Method Detail

### create

    public void create()
                throws Exception

  Does nothing since start() does all the work.

  Specified by:
    `create` in interface `org.jboss.system.Service`
  Throws:
    `Exception`

### destroy

    public void destroy()

  Does nothing since stop() does all the work.

  Specified by:
    `destroy` in interface `org.jboss.system.Service`

### start

    public void start()
               throws Exception

  Opens the JE environment and the database specified by the configuration string. The environment and databases are created if necessary.

  Specified by:
    `start` in interface `org.jboss.system.Service`
  Throws:
    `Exception`

### stop

    public void stop()

  Closes the JE databases and environment, and nulls references to them. The environment and databases are not removed from the file system. Exceptions during close are ignored.

  Specified by:
    `stop` in interface `org.jboss.system.Service`

### setConfig

    public void setConfig(Properties props)

  Sets the configuration string for this cache loader.

  Specified by:
    `setConfig` in interface `CacheLoader`
  Parameters:
    `props` - A list of properties, defined in the XML file

### setCache

    public void setCache(TreeCache c)

  Sets the TreeCache owner of this cache loader.

  Specified by:
    `setCache` in interface `CacheLoader`
  Parameters:
    `c` - The cache on which this loader works

### getChildrenNames

    public Set getChildrenNames(Fqn name)
                         throws Exception

  Returns an unmodifiable set of relative children names (strings), or returns null if the parent node is not found or if no children are found. This is a fairly expensive operation, and is assumed to be performed by browser applications. Calling this method as part of a run-time transaction is not recommended.

  Specified by:
    `getChildrenNames` in interface `CacheLoader`
  Parameters:
    `name` - The FQN of the parent
  Returns:
    Set. A list of children. Returns null if no children nodes are present, or the parent is not present
  Throws:
    `Exception`

### get

    public Map get(Fqn name)
            throws Exception

  Returns a map containing all key-value pairs for the given FQN, or null if the node is not present. This operation is always non-transactional, even in a transactional environment.

  Specified by:
    `get` in interface `CacheLoader`
  Parameters:
    `name` -
  Returns:
    Map of keys and values for the given node. Returns null if the node was not found, or if the node has no attributes
  Throws:
    `Exception`

### get

    public Object get(Fqn name,
                      Object key)
               throws Exception

  Returns the data object stored under the given FQN and key, or null if the FQN and key are not present. This operation is always non-transactional, even in a transactional environment.

  Specified by:
    `get` in interface `CacheLoader`
  Parameters:
    `name` -
  Returns:
  Throws:
    `Exception`

### exists

    public boolean exists(Fqn name)
                   throws Exception

  Returns whether the given node exists.

  Specified by:
    `exists` in interface `CacheLoader`
  Parameters:
    `name` -
  Returns:
    True if node exists, false otherwise
  Throws:
    `Exception`

### put

    public Object put(Fqn name,
                      Object key,
                      Object value)
               throws Exception

  Stores a single FQN-key-value record. Intended to be used in a non-transactional environment, but will use auto-commit in a transactional environment.

  Specified by:
    `put` in interface `CacheLoader`
  Throws:
    `Exception`

### put

    public void put(Fqn name,
                    Map values)
             throws Exception

  Stores a map of key-values for a given FQN, but does not delete existing key-value pairs (that is, it does not erase). Intended to be used in a non-transactional environment, but will use auto-commit in a transactional environment.

  Specified by:
    `put` in interface `CacheLoader`
  Parameters:
    `name` - The fully qualified name of the node
    `values` - A Map of attributes. Can be null
  Throws:
    `Exception`

### put

    public void put(List modifications)
             throws Exception

  Applies the given modifications. Intended to be used in a non-transactional environment, but will use auto-commit in a transactional environment.

  Specified by:
    `put` in interface `CacheLoader`
  Parameters:
    `modifications` - A List of modifications
  Throws:
    `Exception`

### remove

    public void remove(Fqn name)
                throws Exception

  Deletes the node for a given FQN and all its descendent nodes. Intended to be used in a non-transactional environment, but will use auto-commit in a transactional environment.

  Specified by:
    `remove` in interface `CacheLoader`
  Throws:
    `Exception`

### remove

    public Object remove(Fqn name,
                         Object key)
                  throws Exception

  Deletes a single FQN-key-value record. Intended to be used in a non-transactional environment, but will use auto-commit in a transactional environment.

  Specified by:
    `remove` in interface `CacheLoader`
  Throws:
    `Exception`

### removeData

    public void removeData(Fqn name)
                    throws Exception

  Clears the map for the given node, but does not remove the node.

  Specified by:
    `removeData` in interface `CacheLoader`
  Parameters:
    `name` -
  Throws:
    `Exception`

### prepare

    public void prepare(Object tx,
                        List modifications,
                        boolean onePhase)
                 throws Exception

  Begins a transaction and applies the given modifications.

  If onePhase is true, commits the transaction; otherwise, associates the txn value with the transaction and expects commit() or rollback() to be called later with the same tx value. Performs retries if necessary to resolve deadlocks.

  Specified by:
    `prepare` in interface `CacheLoader`
  Parameters:
    `tx` - The transaction, just used as a hashmap key
    `modifications` - List, a list of all modifications within the given transaction
    `onePhase` - Persist immediately and (for example) commit the local JDBC transaction as well. When true, we won't get a `CacheLoader.commit(Object)` or `CacheLoader.rollback(Object)` method call later
  Throws:
    `Exception`

### commit

    public void commit(Object tx)
                throws Exception

  Commits the given transaction, or throws IllegalArgumentException if the given key is not associated with an uncommited transaction.

  Specified by:
    `commit` in interface `CacheLoader`
  Parameters:
    `tx` -
  Throws:
    `Exception`

### rollback

    public void rollback(Object tx)

  Commits the given transaction, or throws IllegalArgumentException if the given key is not associated with an uncommited transaction.

  Specified by:
    `rollback` in interface `CacheLoader`
  Parameters:
    `tx` -

### loadEntireState

    public byte[] loadEntireState()
                           throws Exception

  Export the contents of the databases as a byte array. If the databases are empty a zero-lenth array is returned. The export format is two consecutive DbDumps.

  Specified by:
    `loadEntireState` in interface `CacheLoader`
  Throws:
    `Exception`

### storeEntireState

    public void storeEntireState(byte[] state)
                          throws Exception

  Replace the contents of the databases with the given exported data. If state is null or zero-length, the databases will be cleared. The export format is two consecutive DbDumps.

  Specified by:
    `storeEntireState` in interface `CacheLoader`
  Throws:
    `Exception`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2002 JBoss Group, LLC. All Rights Reserved.