Interface StatisticsImplementor

All Superinterfaces:
Serializable, Service, Statistics
All Known Implementing Classes:
StatisticsImpl

public interface StatisticsImplementor extends Statistics, Service
A service SPI for collecting statistics about various events occurring at runtime.

A custom implementation may be provided via a StatisticsFactory.

  • Method Details

    • openSession

      void openSession()
      Callback about a session being opened.
    • closeSession

      void closeSession()
      Callback about a session being closed.
    • flush

      void flush()
      Callback about a flush occurring
    • connect

      void connect()
      Callback about a connection being obtained from ConnectionProvider
    • prepareStatement

      void prepareStatement()
      Callback about a statement being prepared.
    • closeStatement

      void closeStatement()
      Callback about a statement being closed.
    • endTransaction

      void endTransaction(boolean success)
      Callback about a transaction completing.
      Parameters:
      success - Was the transaction successful?
    • loadEntity

      void loadEntity(String entityName)
      Callback about an entity being loaded. This might indicate a proxy or a fully initialized entity, but in either case it means without a separate SQL query being needed.
      Parameters:
      entityName - The name of the entity loaded.
    • fetchEntity

      void fetchEntity(String entityName)
      Callback about an entity being fetched. Unlike loadEntity(java.lang.String) this indicates a separate query being performed.
      Parameters:
      entityName - The name of the entity fetched.
    • updateEntity

      void updateEntity(String entityName)
      Callback about an entity being updated.
      Parameters:
      entityName - The name of the entity updated.
    • upsertEntity

      void upsertEntity(String entityName)
      Callback about an entity being upserted.
      Parameters:
      entityName - The name of the entity upserted.
    • insertEntity

      void insertEntity(String entityName)
      Callback about an entity being inserted
      Parameters:
      entityName - The name of the entity inserted
    • deleteEntity

      void deleteEntity(String entityName)
      Callback about an entity being deleted.
      Parameters:
      entityName - The name of the entity deleted.
    • optimisticFailure

      void optimisticFailure(String entityName)
      Callback about an optimistic lock failure on an entity
      Parameters:
      entityName - The name of the entity.
    • loadCollection

      void loadCollection(String role)
      Callback about a collection loading. This might indicate a lazy collection or an initialized collection being created, but in either case it means without a separate SQL query being needed.
      Parameters:
      role - The collection role.
    • fetchCollection

      void fetchCollection(String role)
      Callback to indicate a collection being fetched. Unlike loadCollection(java.lang.String), this indicates a separate query was needed.
      Parameters:
      role - The collection role.
    • updateCollection

      void updateCollection(String role)
      Callback indicating a collection was updated.
      Parameters:
      role - The collection role.
    • recreateCollection

      void recreateCollection(String role)
      Callback indicating a collection recreation (full deletion + full (re-)insertion).
      Parameters:
      role - The collection role.
    • removeCollection

      void removeCollection(String role)
      Callback indicating a collection removal.
      Parameters:
      role - The collection role.
    • entityCachePut

      void entityCachePut(NavigableRole entityName, String regionName)
      Callback indicating a put into second level cache.
      API Note:
      `entityName` should be the root entity name
    • entityCacheHit

      void entityCacheHit(NavigableRole entityName, String regionName)
      Callback indicating a get from second level cache resulted in a hit.
      API Note:
      `entityName` should be the root entity name
    • entityCacheMiss

      void entityCacheMiss(NavigableRole entityName, String regionName)
      Callback indicating a get from second level cache resulted in a miss.
      API Note:
      `entityName` should be the root entity name
    • collectionCachePut

      void collectionCachePut(NavigableRole collectionRole, String regionName)
      Callback indicating a put into second level cache.
      Parameters:
      collectionRole - The collection's "path"
      regionName - The name of the cache region
    • collectionCacheHit

      void collectionCacheHit(NavigableRole collectionRole, String regionName)
      Callback indicating a get from second level cache resulted in a hit.
      Parameters:
      collectionRole - The collection's "path"
      regionName - The name of the cache region
    • collectionCacheMiss

      void collectionCacheMiss(NavigableRole collectionRole, String regionName)
      Callback indicating a get from second level cache resulted in a miss.
      Parameters:
      collectionRole - The collection's "path"
      regionName - The name of the cache region
    • naturalIdCachePut

      void naturalIdCachePut(NavigableRole rootEntityName, String regionName)
      Callback indicating a put into natural id cache.
    • naturalIdCacheHit

      void naturalIdCacheHit(NavigableRole rootEntityName, String regionName)
      Callback indicating a get from natural id cache resulted in a hit.
    • naturalIdCacheMiss

      void naturalIdCacheMiss(NavigableRole rootEntityName, String regionName)
      Callback indicating a get from natural id cache resulted in a miss.
    • naturalIdQueryExecuted

      void naturalIdQueryExecuted(String rootEntityName, long executionTime)
      Callback indicating execution of a natural id query
    • queryCachePut

      void queryCachePut(String hql, String regionName)
      Callback indicating a put into the query cache.
      Parameters:
      hql - The query
      regionName - The cache region
    • queryCacheHit

      void queryCacheHit(String hql, String regionName)
      Callback indicating a get from the query cache resulted in a hit.
      Parameters:
      hql - The query
      regionName - The name of the cache region
    • queryCacheMiss

      void queryCacheMiss(String hql, String regionName)
      Callback indicating a get from the query cache resulted in a miss.
      Parameters:
      hql - The query
      regionName - The name of the cache region
    • queryExecuted

      void queryExecuted(String hql, int rows, long time)
      Callback indicating execution of a sql/hql query
      Parameters:
      hql - The query
      rows - Number of rows returned
      time - execution time
    • updateTimestampsCacheHit

      void updateTimestampsCacheHit()
      Callback indicating a hit to the timestamp cache
    • updateTimestampsCacheMiss

      void updateTimestampsCacheMiss()
      Callback indicating a miss to the timestamp cache
    • updateTimestampsCachePut

      void updateTimestampsCachePut()
      Callback indicating a put to the timestamp cache
    • queryPlanCacheHit

      default void queryPlanCacheHit(String query)
      Callback indicating a get from the query plan cache resulted in a hit.
      Parameters:
      query - The query
    • queryPlanCacheMiss

      default void queryPlanCacheMiss(String query)
      Callback indicating a get from the query plan cache resulted in a miss.
      Parameters:
      query - The query
    • queryCompiled

      default void queryCompiled(String hql, long microseconds)
      Callback indicating compilation of a sql/hql query
      Parameters:
      hql - The query
      microseconds - execution time
    • slowQuery

      default void slowQuery(String sql, long executionTime)
      Register the execution of a slow SQL query.
    • getSlowQueries

      default Map<String,Long> getSlowQueries()
      Description copied from interface: Statistics
      If "hibernate.log_slow_query" is enabled, a map from the SQL query to the maximum execution time in milliseconds.
      Specified by:
      getSlowQueries in interface Statistics
      See Also: