public class Sequence extends java.lang.Object implements java.io.Closeable
|Modifier and Type||Method and Description|
Closes a sequence.
Returns the next available element in the sequence and changes the sequence value by
Returns the Database handle associated with this sequence.
Returns the DatabaseEntry used to open this sequence.
Returns statistical information about the sequence.
public void close() throws DatabaseException
The sequence handle may not be used again after this method has been called, regardless of the method's success or failure.
WARNING: To guard against memory leaks, the application should discard all references to the closed handle. While BDB makes an effort to discard references from closed objects to the allocated memory for an environment, this behavior is not guaranteed. The safe course of action for an application is to discard all references to closed BDB objects.
public long get(Transaction txn, int delta) throws DatabaseException
delta. The value of
deltamust be greater than zero. If there are enough cached values in the sequence handle then they will be returned. Otherwise the next value will be fetched from the database and incremented (decremented) by enough to cover the
deltaand the next batch of cached values. This method is synchronized to protect updating of the cached value, since multiple threads may share a single handle. Multiple handles for the same database/key may be used to increase concurrency.
txn handle must be null if the sequence handle was
opened with a non-zero cache size.
For maximum concurrency, a non-zero cache size should be specified
prior to opening the sequence handle, the
txn handle should
SequenceConfig.setAutoCommitNoSync should be called to disable log
txn- For a transactional database, an explicit transaction may be specified, or null may be specified to use auto-commit. For a non-transactional database, null must be specified.
delta- the amount by which to increment or decrement the sequence
SequenceOverflowException- if the end of the sequence is reached and wrapping is not configured.
SequenceIntegrityException- if the sequence record has been deleted.
OperationFailureException- if one of the Write Operation Failures occurs.
EnvironmentFailureException- if an unexpected, internal or environment-wide failure occurs.
java.lang.IllegalArgumentException- if the delta is less than or equal to zero, or larger than the size of the sequence's range.
public Database getDatabase()
public DatabaseEntry getKey()
public SequenceStats getStats(StatsConfig config) throws DatabaseException
In the presence of multiple threads or processes accessing an active sequence, the information returned by this method may be out-of-date.
The getStats method cannot be transaction-protected. For this reason, it should be called in a thread of control that has no open cursors or active transactions.
Copyright (c) 2002, 2017 Oracle and/or its affiliates. All rights reserved.