Class BasicUUIDFactory
java.lang.Object
org.apache.derby.impl.services.uuid.BasicUUIDFactory
- All Implemented Interfaces:
UUIDFactory
A hack implementation of something similar to a DCE UUID
generator. Generates unique 128-bit numbers based on the
current machine's internet address, the current time, and
a sequence number. This implementation should be made to
conform to the DCE specification. ("DEC/HP, Network Computing
Architecture, Remote Procedure Call Runtime Extensions
Specification, version OSF TX1.0.11," Steven Miller, July
23, 1992. This is part of the OSF DCE Documentation.
Chapter 10 describes the UUID generation algorithm.)
Some known deficiencies:
- Rather than using the 48-bit hardware network address, it uses the 32-bit IP address. IP addresses are not guaranteed to be unique.
- There is no provision for generating a suitably unique number if no IP address is available.
- Two processes running on this machine which start their respective UUID services within a millisecond of one another may generate duplicate UUIDS.
However, the intention is that UUIDs generated from this class will be unique with respect to UUIDs generated by other DCE UUID generators.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate longprivate static final longprivate longprivate static final longprivate static final longprivate static final longprivate long -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate voidGenerate a new UUID.private static ModuleFactoryPrivileged Monitor lookup.recreateUUID(String uuidstring) Recreate a UUID previously generated UUID value.private void
-
Field Details
-
majorId
private long majorId -
timemillis
private long timemillis -
MODULUS
private static final long MODULUS- See Also:
-
MULTIPLIER
private static final long MULTIPLIER- See Also:
-
STEP
private static final long STEP- See Also:
-
INITIAL_VALUE
private static final long INITIAL_VALUE- See Also:
-
currentValue
private long currentValue
-
-
Constructor Details
-
BasicUUIDFactory
public BasicUUIDFactory()
-
-
Method Details
-
createUUID
Generate a new UUID.- Specified by:
createUUIDin interfaceUUIDFactory- Returns:
- The UUID.
- See Also:
-
recreateUUID
Recreate a UUID previously generated UUID value.- Specified by:
recreateUUIDin interfaceUUIDFactory- Returns:
- The UUID.
- See Also:
-
bumpMajor
private void bumpMajor() -
resetCounters
private void resetCounters() -
getMonitor
Privileged Monitor lookup. Must be private so that user code can't call this entry point.
-