org.apache.ojb.broker.util.sequence
Class SequenceManagerHighLowImpl

java.lang.Object
  extended byorg.apache.ojb.broker.util.sequence.AbstractSequenceManager
      extended byorg.apache.ojb.broker.util.sequence.SequenceManagerHighLowImpl
All Implemented Interfaces:
SequenceManager

public class SequenceManagerHighLowImpl
extends AbstractSequenceManager

High/Low sequence manager implementation generates unique and continuous id's (during runtime) by using sequences to avoid database access.

Implementation configuration properties:

Property Key Property Values
grabSize Integer entry determines the number of IDs allocated within the H/L sequence manager implementation. Default was '20'.
globalSequenceId If set 'true' implementation use global unique id's for all fields. Default was 'false'.
globalSequenceStart Set the start index of used global id generation (e.g. set 100000, id generation starts with 100001)
autoNaming Default was 'true'. If set 'true' OJB try to build a sequence name automatic if none found in field-descriptor and set this generated name as sequence-name in field-descriptor. If set 'false' OJB throws an exception if none sequence name was found in field-descriptor.

Limitations:



Version:
$Id: SequenceManagerHighLowImpl.java,v 1.26 2004/02/05 09:34:10 arminw Exp $
Author:
Armin Waibel
See Also:
SequenceManager, SequenceManagerFactory, SequenceManagerHelper

Field Summary
protected  int attempts
           
protected  long globalSequenceStart
           
protected  int grabSize
           
static java.lang.String PROPERTY_GLOBAL_SEQUENCE_ID
           
static java.lang.String PROPERTY_GLOBAL_SEQUENCE_START
           
static java.lang.String PROPERTY_GRAB_SIZE
           
protected static java.util.Map sequencesMap
           
protected  boolean useGlobalSequenceIdentities
           
 
Fields inherited from class org.apache.ojb.broker.util.sequence.AbstractSequenceManager
PROPERTY_AUTO_NAMING
 
Constructor Summary
SequenceManagerHighLowImpl(PersistenceBroker broker)
           
 
Method Summary
protected  long getMaxKeyForSequence(PersistenceBroker broker, FieldDescriptor field)
           
protected  HighLowSequence getSequence(PersistenceBroker brokerForSequence, FieldDescriptor field, java.lang.String sequenceName)
           
protected  long getUniqueLong(FieldDescriptor field)
          returns a unique long value for field.
protected  HighLowSequence lookupStoreSequence(PersistenceBroker broker, FieldDescriptor field, java.lang.String seqName)
           
protected  HighLowSequence newSequenceObject(java.lang.String sequenceName, FieldDescriptor field)
           
 
Methods inherited from class org.apache.ojb.broker.util.sequence.AbstractSequenceManager
afterStore, calculateSequenceName, getBrokerForClass, getConfigurationProperties, getConfigurationProperty, getPlatform, getUniqueValue, setConfigurationProperties, setConfigurationProperty, setReferenceFKs, useAutoNaming
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

PROPERTY_GRAB_SIZE

public static final java.lang.String PROPERTY_GRAB_SIZE
See Also:
Constant Field Values

PROPERTY_GLOBAL_SEQUENCE_ID

public static final java.lang.String PROPERTY_GLOBAL_SEQUENCE_ID
See Also:
Constant Field Values

PROPERTY_GLOBAL_SEQUENCE_START

public static final java.lang.String PROPERTY_GLOBAL_SEQUENCE_START
See Also:
Constant Field Values

sequencesMap

protected static java.util.Map sequencesMap

useGlobalSequenceIdentities

protected boolean useGlobalSequenceIdentities

grabSize

protected int grabSize

globalSequenceStart

protected long globalSequenceStart

attempts

protected int attempts
Constructor Detail

SequenceManagerHighLowImpl

public SequenceManagerHighLowImpl(PersistenceBroker broker)
Method Detail

getUniqueLong

protected long getUniqueLong(FieldDescriptor field)
                      throws SequenceManagerException
Description copied from class: AbstractSequenceManager
returns a unique long value for field. the returned number is unique accross all tables in the extent of clazz.

Specified by:
getUniqueLong in class AbstractSequenceManager
Throws:
SequenceManagerException

getSequence

protected HighLowSequence getSequence(PersistenceBroker brokerForSequence,
                                      FieldDescriptor field,
                                      java.lang.String sequenceName)
                               throws SequenceManagerException
Throws:
SequenceManagerException

lookupStoreSequence

protected HighLowSequence lookupStoreSequence(PersistenceBroker broker,
                                              FieldDescriptor field,
                                              java.lang.String seqName)

newSequenceObject

protected HighLowSequence newSequenceObject(java.lang.String sequenceName,
                                            FieldDescriptor field)

getMaxKeyForSequence

protected long getMaxKeyForSequence(PersistenceBroker broker,
                                    FieldDescriptor field)


Authors: Thomas Mahler and others. (C) 2000 - 2003 Apache Software Foundation
All rights reserved. Published under the Apache License.
http://db.apache.org/ojb
Version: 1.0.rc5, 2003-12-14