Class BasicUUIDFactory

java.lang.Object
org.apache.derby.impl.services.uuid.BasicUUIDFactory
All Implemented Interfaces:
UUIDFactory

public final class BasicUUIDFactory extends Object implements 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 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