Class CoherenceRegionFactory

  • All Implemented Interfaces:
    Serializable, org.hibernate.cache.spi.RegionFactory, org.hibernate.service.Service, org.hibernate.service.spi.Stoppable

    public class CoherenceRegionFactory
    extends org.hibernate.cache.spi.support.RegionFactoryTemplate
    A CoherenceRegionFactory is a factory for regions of Hibernate second-level cache implemented with Oracle Coherence.
    Since:
    2.1
    Author:
    Randy Stafford, Gunnar Hillert
    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected com.tangosol.net.Session coherenceSession  
      protected CoherenceHibernateSystemPropertyResolver systemPropertyResolver  
      • Fields inherited from class org.hibernate.cache.spi.AbstractRegionFactory

        LEGACY_QUERY_RESULTS_REGION_UNQUALIFIED_NAMES, LEGACY_UPDATE_TIMESTAMPS_REGION_UNQUALIFIED_NAMES
      • Fields inherited from interface org.hibernate.cache.spi.RegionFactory

        DEFAULT_QUERY_RESULTS_REGION_UNQUALIFIED_NAME, DEFAULT_UPDATE_TIMESTAMPS_REGION_UNQUALIFIED_NAME
    • Constructor Summary

      Constructors 
      Constructor Description
      CoherenceRegionFactory()
      Default constructor.
      CoherenceRegionFactory​(com.tangosol.net.Session coherenceSession)
      Constructor that allows to pass-in an externally created Coherence Session.
    • Constructor Detail

      • CoherenceRegionFactory

        public CoherenceRegionFactory()
        Default constructor. Any Coherence instances created will implicitly require a shutdown of Coherence when AbstractRegionFactory.stop() is called via releaseFromUse().
      • CoherenceRegionFactory

        public CoherenceRegionFactory​(com.tangosol.net.Session coherenceSession)
        Constructor that allows to pass-in an externally created Coherence Session. In this case the external caller is responsible for any needed Coherence shut-downs when AbstractRegionFactory.stop() is called via releaseFromUse(). This means that call to AbstractRegionFactory.stop() will NOT result in a shutdown of Coherence; only the Session is closed.
        Parameters:
        coherenceSession - must not be null
    • Method Detail

      • getImplicitCacheKeysFactory

        protected org.hibernate.cache.spi.CacheKeysFactory getImplicitCacheKeysFactory()
        Overrides:
        getImplicitCacheKeysFactory in class org.hibernate.cache.spi.support.RegionFactoryTemplate
      • getCoherenceSession

        protected com.tangosol.net.Session getCoherenceSession()
        Returns the Coherence Session used by this CoherenceRegionFactory.
        Returns:
        the Coherence Session
      • setCoherenceSession

        protected void setCoherenceSession​(com.tangosol.net.Session coherenceSession)
        Sets the Coherence Session used by this CoherenceRegionFactory.
        Parameters:
        coherenceSession - the Coherence Session used by this CoherenceRegionFactory. May be null.
      • prepareForUse

        protected void prepareForUse​(org.hibernate.boot.spi.SessionFactoryOptions settings,
                                     Map configValues)
        Specified by:
        prepareForUse in class org.hibernate.cache.spi.AbstractRegionFactory
      • releaseFromUse

        protected void releaseFromUse()
        Specified by:
        releaseFromUse in class org.hibernate.cache.spi.AbstractRegionFactory
      • isMinimalPutsEnabledByDefault

        public boolean isMinimalPutsEnabledByDefault()
        see also https://stackoverflow.com/a/12389310/835934
        Specified by:
        isMinimalPutsEnabledByDefault in interface org.hibernate.cache.spi.RegionFactory
        Overrides:
        isMinimalPutsEnabledByDefault in class org.hibernate.cache.spi.AbstractRegionFactory
      • getDefaultAccessType

        public org.hibernate.cache.spi.access.AccessType getDefaultAccessType()
        Specified by:
        getDefaultAccessType in interface org.hibernate.cache.spi.RegionFactory
        Overrides:
        getDefaultAccessType in class org.hibernate.cache.spi.AbstractRegionFactory
      • nextTimestamp

        public long nextTimestamp()
        Specified by:
        nextTimestamp in interface org.hibernate.cache.spi.RegionFactory
        Overrides:
        nextTimestamp in class org.hibernate.cache.spi.AbstractRegionFactory
      • ensureNamedCache

        protected com.tangosol.net.NamedCache<?,​?> ensureNamedCache​(String cacheName)
        Ensure the initialization of a NamedCache of the argument name.
        Parameters:
        cacheName - the name of the NamedCache whose initialization to ensure
        Returns:
        a NamedCache for the argument name
      • createDomainDataStorageAccess

        protected org.hibernate.cache.spi.support.DomainDataStorageAccess createDomainDataStorageAccess​(org.hibernate.cache.cfg.spi.DomainDataRegionConfig regionConfig,
                                                                                                        org.hibernate.cache.cfg.spi.DomainDataRegionBuildingContext buildingContext)
        Overrides:
        createDomainDataStorageAccess in class org.hibernate.cache.spi.support.RegionFactoryTemplate
      • createTimestampsRegionStorageAccess

        protected org.hibernate.cache.spi.support.StorageAccess createTimestampsRegionStorageAccess​(String regionName,
                                                                                                    org.hibernate.engine.spi.SessionFactoryImplementor sessionFactory)
        Specified by:
        createTimestampsRegionStorageAccess in class org.hibernate.cache.spi.support.RegionFactoryTemplate
      • createQueryResultsRegionStorageAccess

        protected org.hibernate.cache.spi.support.StorageAccess createQueryResultsRegionStorageAccess​(String regionName,
                                                                                                      org.hibernate.engine.spi.SessionFactoryImplementor sessionFactory)
        Specified by:
        createQueryResultsRegionStorageAccess in class org.hibernate.cache.spi.support.RegionFactoryTemplate
      • createCoherenceRegion

        protected CoherenceRegion createCoherenceRegion​(String unqualifiedRegionName,
                                                        org.hibernate.engine.spi.SessionFactoryImplementor sessionFactory)
      • buildDomainDataRegion

        public org.hibernate.cache.spi.DomainDataRegion buildDomainDataRegion​(org.hibernate.cache.cfg.spi.DomainDataRegionConfig regionConfig,
                                                                              org.hibernate.cache.cfg.spi.DomainDataRegionBuildingContext buildingContext)
        Specified by:
        buildDomainDataRegion in interface org.hibernate.cache.spi.RegionFactory
        Overrides:
        buildDomainDataRegion in class org.hibernate.cache.spi.support.RegionFactoryTemplate
      • createCoherenceInstance

        protected com.tangosol.net.Coherence createCoherenceInstance​(SessionType sessionType,
                                                                     com.tangosol.net.CoherenceConfiguration coherenceConfiguration)
        Creates a Coherence instance with the CoherenceConfiguration provided. The created Coherence instance may either be a client Coherence instance (Coherence.client(CoherenceConfiguration)) or a cluster member instance (Coherence.clusterMember(CoherenceConfiguration).

        The rules for determining the instance type are as follows in descending priority:

        • Explicit configuration via parameter coherenceInstanceType.
        • Via the provided SessionType. As soon as SessionType.SERVER is provided, the Coherence instance is configured using Coherence.clusterMember(CoherenceConfiguration).
        • If the provided SessionType is null, the Coherence instances is configured using Coherence.clusterMember(CoherenceConfiguration).
        Parameters:
        sessionType - can be null
        coherenceConfiguration - must not be null
        Returns:
        the Coherence instance