Interface DistributionPolicy

  • All Known Implementing Classes:
    DistributionPolicy.Default

    public interface DistributionPolicy
    Policy to select one of the physical databases referred as slice in which a given persistent instance will be stored. The user application is required to implement this interface. Slice will invoke the single method of this interface to determine the target slice for a newly persistent or a detached instance being merged.
    Author:
    Pinaki Poddar
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Interface Description
      static class  DistributionPolicy.Default
      Implements a default distribution policy to store the given instance to a randomly selected available slice.
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      java.lang.String distribute​(java.lang.Object pc, java.util.List<java.lang.String> slices, java.lang.Object context)
      Gets the name of the target slice where the given newly persistent or the detached, to-be-merged instance will be stored.
    • Method Detail

      • distribute

        java.lang.String distribute​(java.lang.Object pc,
                                    java.util.List<java.lang.String> slices,
                                    java.lang.Object context)
        Gets the name of the target slice where the given newly persistent or the detached, to-be-merged instance will be stored.
        If the current state of the given instance is sufficient to determine the target slice, return null. In that case, the runtime will callback this method again before the instance being flushed to the datastore. By then, the policy must be able to determine the target slice.
        Parameters:
        pc - The newly persistent or to-be-merged object.
        slices - list of names of the active slices. The ordering of the list is either explicit openjpa.slice.Names property or implicit i.e. alphabetic order of available identifiers if openjpa.slice.Names is unspecified.
        context - the generic persistence context managing the given instance.
        Returns:
        identifier of the slice. This name must match one of the given slice names.
        See Also:
        DistributedConfiguration.getActiveSliceNames()