Example usage for org.hibernate.stat Statistics getConnectCount

List of usage examples for org.hibernate.stat Statistics getConnectCount

Introduction

In this page you can find the example usage for org.hibernate.stat Statistics getConnectCount.

Prototype

long getConnectCount();

Source Link

Document

Get the global number of connections asked by the sessions (the actual number of connections used may be much smaller depending whether you use a connection pool or not)

Usage

From source file:com.francetelecom.clara.cloud.scalability.helper.StatisticsHelper.java

License:Apache License

/**
 * Log the current statistics/*from  w  ww.ja  va  2s. c om*/
 *
 * @param stats hibernate statistics
 */
public static void logStats(Statistics stats) {

    logger.info("Database statistics");

    logger.info("  Number of connection requests : " + stats.getConnectCount());
    logger.info("  Session flushes : " + stats.getFlushCount());
    logger.info("  Transactions : " + stats.getTransactionCount());
    logger.info("  Successful transactions : " + stats.getSuccessfulTransactionCount());
    logger.info("  Sessions opened : " + stats.getSessionOpenCount());
    logger.info("  Sessions closed : " + stats.getSessionCloseCount());
    logger.info("  Queries executed : " + stats.getQueryExecutionCount());
    logger.info("  Max query time : " + stats.getQueryExecutionMaxTime());
    logger.info("  Max time query : " + stats.getQueryExecutionMaxTimeQueryString());

    logger.info("Collection statistics");

    logger.info("  Collections fetched : " + stats.getCollectionFetchCount());
    logger.info("  Collections loaded : " + stats.getCollectionLoadCount());
    logger.info("  Collections rebuilt : " + stats.getCollectionRecreateCount());
    logger.info("  Collections batch deleted : " + stats.getCollectionRemoveCount());
    logger.info("  Collections batch updated : " + stats.getCollectionUpdateCount());

    logger.info("Object statistics");

    logger.info("  Objects fetched : " + stats.getEntityFetchCount());
    logger.info("  Objects loaded : " + stats.getEntityLoadCount());
    logger.info("  Objects inserted : " + stats.getEntityInsertCount());
    logger.info("  Objects deleted : " + stats.getEntityDeleteCount());
    logger.info("  Objects updated : " + stats.getEntityUpdateCount());

    logger.info("Cache statistics");

    double chit = stats.getQueryCacheHitCount();
    double cmiss = stats.getQueryCacheMissCount();

    logger.info("  Cache hit count : " + chit);
    logger.info("  Cache miss count : " + cmiss);
    logger.info("  Cache hit ratio : " + (chit / (chit + cmiss)));

    String[] entityNames = stats.getEntityNames();
    Arrays.sort(entityNames);
    for (String entityName : entityNames) {
        Class<?> entityClass = null;
        try {
            entityClass = Class.forName(entityName);
        } catch (ClassNotFoundException e) {
            logger.error("Unable to load class for " + entityName, e);
        }
        entityStats(stats, entityClass);
    }
    //Uncomment these lines to trace every query (can generate a lot of logs)
    String[] qs = stats.getQueries();
    for (String q : qs) {
        queryStats(stats, q);
    }

    String[] slcrn = stats.getSecondLevelCacheRegionNames();
    for (String s : slcrn) {
        secondLevelStats(stats, s);
    }
}

From source file:com.francetelecom.clara.cloud.scalability.impl.ManageStatisticsImpl.java

License:Apache License

private Map<String, Long> getStatsValues(Collection<Class> entities) {
    Statistics stats = getStats();
    Map<String, Long> statistics = new HashMap<String, Long>();
    statistics.put("Number of connection requests", stats.getConnectCount());
    statistics.put("Sessions opened", stats.getSessionOpenCount());
    // statistics.put("Sessions closed", stats.getSessionCloseCount());
    statistics.put("Transactions", stats.getTransactionCount());
    // statistics.put("Successful transactions", stats.getSuccessfulTransactionCount());
    // statistics.put("Successful transactions", stats.getSuccessfulTransactionCount());
    statistics.put("Queries executed", stats.getQueryExecutionCount());
    for (Class entity : entities) {
        EntityStatistics eStats = stats.getEntityStatistics(entity.getName());
        statistics.put(entity.getSimpleName() + " Fetched", eStats.getFetchCount());
        statistics.put(entity.getSimpleName() + " Loaded", eStats.getLoadCount());
        statistics.put(entity.getSimpleName() + " Inserted", eStats.getInsertCount());
        statistics.put(entity.getSimpleName() + " Deleted", eStats.getDeleteCount());
        statistics.put(entity.getSimpleName() + " Updated", eStats.getUpdateCount());
    }/*from w ww .j  a v a  2 s . c o  m*/
    return statistics;
}

From source file:com.medigy.persist.util.HibernateUtil.java

License:Open Source License

public static void logStatistics() {

    Statistics stats = HibernateUtil.sessionFactory.getStatistics();
    if (!stats.isStatisticsEnabled()) {
        log.warn("Statistics are not enabled.");
        return;//w w  w  . j  a  v a 2 s.com
    }
    log.info("Connection count: " + stats.getConnectCount());
    log.info("Session open count: " + stats.getSessionOpenCount());
    log.info("Session close count: " + stats.getSessionCloseCount());

    log.info("Entities insert count: " + stats.getEntityInsertCount());
    log.info("Entities update count: " + stats.getEntityUpdateCount());
    log.info("Entities fetch count: " + stats.getEntityFetchCount());

    log.info("Collection fetch count: " + stats.getCollectionFetchCount());
    log.info("Collection load count: " + stats.getCollectionLoadCount());
    double queryCacheHitCount = stats.getQueryCacheHitCount();
    double queryCacheMissCount = stats.getQueryCacheMissCount();
    double queryCacheHitRatio = queryCacheHitCount / (queryCacheHitCount + queryCacheMissCount);
    log.info("Query Hit ratio:" + queryCacheHitRatio);
}

From source file:com.openkm.servlet.admin.HibernateStatsServlet.java

License:Open Source License

/**
 * Refresh stats//www .  ja v a 2 s.  c  o m
 */
private synchronized void refresh() {
    Statistics statistics = HibernateUtil.getSessionFactory().getStatistics();
    generalStatistics.set(0, statistics.getConnectCount());
    generalStatistics.set(1, statistics.getFlushCount());
    generalStatistics.set(2, statistics.getPrepareStatementCount());
    generalStatistics.set(3, statistics.getCloseStatementCount());
    generalStatistics.set(4, statistics.getSessionCloseCount());
    generalStatistics.set(5, statistics.getSessionOpenCount());
    generalStatistics.set(6, statistics.getTransactionCount());
    generalStatistics.set(7, statistics.getSuccessfulTransactionCount());
    generalStatistics.set(8, statistics.getOptimisticFailureCount());
    queryStatistics.clear();
    String[] names = statistics.getQueries();

    if (names != null && names.length > 0) {
        for (int i = 0; i < names.length; i++) {
            queryStatistics.put(names[i], statistics.getQueryStatistics(names[i]));
        }
    }

    entityStatistics.clear();
    names = statistics.getEntityNames();

    if (names != null && names.length > 0) {
        for (int i = 0; i < names.length; i++) {
            entityStatistics.put(names[i], statistics.getEntityStatistics(names[i]));
        }
    }

    collectionStatistics.clear();
    names = statistics.getCollectionRoleNames();

    if (names != null && names.length > 0) {
        for (int i = 0; i < names.length; i++) {
            collectionStatistics.put(names[i], statistics.getCollectionStatistics(names[i]));
        }
    }

    secondLevelCacheStatistics.clear();
    names = statistics.getSecondLevelCacheRegionNames();

    if (names != null && names.length > 0) {
        for (int i = 0; i < names.length; i++) {
            secondLevelCacheStatistics.put(names[i], statistics.getSecondLevelCacheStatistics(names[i]));
        }
    }
}

From source file:com.thoughtworks.go.server.service.support.HibernateInformationProvider.java

License:Apache License

@Override
public Map<String, Object> asJson() {
    LinkedHashMap<String, Object> json = new LinkedHashMap<>();
    Statistics statistics = sessionFactory.getStatistics();
    if (!statistics.isStatisticsEnabled()) {
        return json;
    }//www  .j a  va  2s .c o m
    json.put("EntityDeleteCount", statistics.getEntityDeleteCount());
    json.put("EntityInsertCount", statistics.getEntityInsertCount());
    json.put("EntityLoadCount", statistics.getEntityLoadCount());
    json.put("EntityFetchCount", statistics.getEntityFetchCount());
    json.put("EntityUpdateCount", statistics.getEntityUpdateCount());
    json.put("QueryExecutionCount", statistics.getQueryExecutionCount());
    json.put("QueryExecutionMaxTime", statistics.getQueryExecutionMaxTime());
    json.put("QueryExecutionMaxTimeQueryString", statistics.getQueryExecutionMaxTimeQueryString());
    json.put("QueryCacheHitCount", statistics.getQueryCacheHitCount());
    json.put("QueryCacheMissCount", statistics.getQueryCacheMissCount());
    json.put("QueryCachePutCount", statistics.getQueryCachePutCount());
    json.put("FlushCount", statistics.getFlushCount());
    json.put("ConnectCount", statistics.getConnectCount());
    json.put("SecondLevelCacheHitCount", statistics.getSecondLevelCacheHitCount());
    json.put("SecondLevelCacheMissCount", statistics.getSecondLevelCacheMissCount());
    json.put("SecondLevelCachePutCount", statistics.getSecondLevelCachePutCount());
    json.put("SessionCloseCount", statistics.getSessionCloseCount());
    json.put("SessionOpenCount", statistics.getSessionOpenCount());
    json.put("CollectionLoadCount", statistics.getCollectionLoadCount());
    json.put("CollectionFetchCount", statistics.getCollectionFetchCount());
    json.put("CollectionUpdateCount", statistics.getCollectionUpdateCount());
    json.put("CollectionRemoveCount", statistics.getCollectionRemoveCount());
    json.put("CollectionRecreateCount", statistics.getCollectionRecreateCount());
    json.put("StartTime", statistics.getStartTime());
    json.put("SecondLevelCacheRegionNames", statistics.getSecondLevelCacheRegionNames());
    json.put("SuccessfulTransactionCount", statistics.getSuccessfulTransactionCount());
    json.put("TransactionCount", statistics.getTransactionCount());
    json.put("PrepareStatementCount", statistics.getPrepareStatementCount());
    json.put("CloseStatementCount", statistics.getCloseStatementCount());
    json.put("OptimisticFailureCount", statistics.getOptimisticFailureCount());

    LinkedHashMap<String, Object> queryStats = new LinkedHashMap<>();
    json.put("Queries", queryStats);

    String[] queries = statistics.getQueries();
    for (String query : queries) {
        queryStats.put(query, statistics.getQueryStatistics(query));
    }

    LinkedHashMap<String, Object> entityStatistics = new LinkedHashMap<>();
    json.put("EntityStatistics", entityStatistics);

    String[] entityNames = statistics.getEntityNames();
    for (String entityName : entityNames) {
        entityStatistics.put(entityName, statistics.getEntityStatistics(entityName));
    }

    LinkedHashMap<String, Object> roleStatistics = new LinkedHashMap<>();
    json.put("RoleStatistics", roleStatistics);

    String[] roleNames = statistics.getCollectionRoleNames();
    for (String roleName : roleNames) {
        roleStatistics.put(roleName, statistics.getCollectionStatistics(roleName));
    }

    return json;
}

From source file:dao.proyectoHelper.java

public static void reportConeciones() {
    Statistics stats = HibernateUtil.getSessionFactory().getStatistics();
    stats.setStatisticsEnabled(true);//from w  w w.j a v a  2s  .  c  o  m

    System.out.println("recuento de conexin: " + stats.getConnectCount());

    //Numero de transacciones completadas (falladas y satisfactorias)
    System.out.println("recuento Trx: " + stats.getTransactionCount());

    //Numero de transacciones completadas (solo satisfactorias)
    System.out.println("Succ trx count: " + stats.getSuccessfulTransactionCount());

    // Numero de sesiones que el codigo ha abierto
    System.out.println("sesiones abiertas: " + stats.getSessionOpenCount());

    // Numero de sesiones que el codigo ha cerrado
    System.out.println("sesiones  cerradas: " + stats.getSessionCloseCount());

    // Numero total de queries ejecutados
    System.out.println("No. queries: " + stats.getQueryExecutionCount());
    //            esta();
}

From source file:de.iew.framework.hibernate.statistics.StatisticsLogger.java

License:Apache License

public void logStatistics() {
    Statistics statistics = this.sessionFactory.getStatistics();
    statistics.setStatisticsEnabled(true);
    StringBuilder sb = new StringBuilder("\nStatistics");
    sb.append("\nCloseStatementCount: ").append(statistics.getCloseStatementCount());

    sb.append("\nEntityDeleteCount: ").append(statistics.getEntityDeleteCount());
    sb.append("\nEntityInsertCount: ").append(statistics.getEntityInsertCount());
    sb.append("\nEntityLoadCount: ").append(statistics.getEntityLoadCount());
    sb.append("\nEntityFetchCount: ").append(statistics.getEntityFetchCount());
    sb.append("\nEntityUpdateCount: ").append(statistics.getEntityUpdateCount());
    sb.append("\nQueryExecutionCount: ").append(statistics.getQueryExecutionCount());
    sb.append("\nQueryExecutionMaxTime: ").append(statistics.getQueryExecutionMaxTime());
    sb.append("\nQueryExecutionMaxTimeQueryString: ").append(statistics.getQueryExecutionMaxTimeQueryString());
    sb.append("\nQueryCacheHitCount: ").append(statistics.getQueryCacheHitCount());
    sb.append("\nQueryCacheMissCount: ").append(statistics.getQueryCacheMissCount());
    sb.append("\nQueryCachePutCount: ").append(statistics.getQueryCachePutCount());
    sb.append("\nNaturalIdQueryExecutionCount: ").append(statistics.getNaturalIdQueryExecutionCount());
    sb.append("\nNaturalIdQueryExecutionMaxTime: ").append(statistics.getNaturalIdQueryExecutionMaxTime());
    sb.append("\nNaturalIdQueryExecutionMaxTimeRegion: ")
            .append(statistics.getNaturalIdQueryExecutionMaxTimeRegion());
    sb.append("\nNaturalIdCacheHitCount: ").append(statistics.getNaturalIdCacheHitCount());
    sb.append("\nNaturalIdCacheMissCount: ").append(statistics.getNaturalIdCacheMissCount());
    sb.append("\nNaturalIdCachePutCount: ").append(statistics.getNaturalIdCachePutCount());
    sb.append("\nUpdateTimestampsCacheHitCount: ").append(statistics.getUpdateTimestampsCacheHitCount());
    sb.append("\nUpdateTimestampsCacheMissCount: ").append(statistics.getUpdateTimestampsCacheMissCount());
    sb.append("\nUpdateTimestampsCachePutCount: ").append(statistics.getUpdateTimestampsCachePutCount());
    sb.append("\nFlushCount: ").append(statistics.getFlushCount());
    sb.append("\nConnectCount: ").append(statistics.getConnectCount());
    sb.append("\nSecondLevelCacheHitCount: ").append(statistics.getSecondLevelCacheHitCount());
    sb.append("\nSecondLevelCacheMissCount: ").append(statistics.getSecondLevelCacheMissCount());
    sb.append("\nSecondLevelCachePutCount: ").append(statistics.getSecondLevelCachePutCount());
    sb.append("\nSessionCloseCount: ").append(statistics.getSessionCloseCount());
    sb.append("\nSessionOpenCount: ").append(statistics.getSessionOpenCount());
    sb.append("\nCollectionLoadCount: ").append(statistics.getCollectionLoadCount());
    sb.append("\nCollectionFetchCount: ").append(statistics.getCollectionFetchCount());
    sb.append("\nCollectionUpdateCount: ").append(statistics.getCollectionUpdateCount());
    sb.append("\nCollectionRemoveCount: ").append(statistics.getCollectionRemoveCount());
    sb.append("\nCollectionRecreateCount: ").append(statistics.getCollectionRecreateCount());
    sb.append("\nStartTime: ").append(statistics.getStartTime());
    sb.append("\nQueries: ").append(statistics.getQueries());
    sb.append("\nEntityNames: ").append(statistics.getEntityNames());
    sb.append("\nCollectionRoleNames: ").append(statistics.getCollectionRoleNames());
    sb.append("\nSecondLevelCacheRegionNames: ").append(statistics.getSecondLevelCacheRegionNames());
    sb.append("\nSuccessfulTransactionCount: ").append(statistics.getSuccessfulTransactionCount());
    sb.append("\nTransactionCount: ").append(statistics.getTransactionCount());
    sb.append("\nPrepareStatementCount: ").append(statistics.getPrepareStatementCount());
    sb.append("\nCloseStatementCount: ").append(statistics.getCloseStatementCount());
    sb.append("\nOptimisticFailureCount: ").append(statistics.getOptimisticFailureCount());

    if (log.isDebugEnabled()) {
        log.debug(sb);/* w w  w  . j  a  va2  s. c  om*/
    }

}

From source file:es.ua.datos.cad.CAD.java

public void writeStatisticsLog(Statistics stats) {

    // Number of connection requests. Note that this number represents 
    // the number of times Hibernate asked for a connection, and 
    // NOT the number of connections (which is determined by your 
    // pooling mechanism).
    Date date = new Date();
    System.out.println("HORA: " + date);
    System.out.println("getConnectCount(): " + stats.getConnectCount());
    // Number of flushes done on the session (either by client code or 
    // by hibernate).
    System.out.println("getFlushCount(): " + stats.getFlushCount());
    // The number of completed transactions (failed and successful).
    System.out.println("getTransactionCount(): " + stats.getTransactionCount());
    // The number of transactions completed without failure
    System.out.println("getSuccessfulTransactionCount(): " + stats.getSuccessfulTransactionCount());
    // The number of sessions your code has opened.
    System.out.println("getSessionOpenCount(): " + stats.getSessionOpenCount());
    // The number of sessions your code has closed.
    System.out.println("getSessionCloseCount(): " + stats.getSessionCloseCount());
    // All of the queries that have executed.
    System.out.println("getQueries(): " + stats.getQueries());
    // Total number of queries executed.
    System.out.println("getQueryExecutionCount(): " + stats.getQueryExecutionCount());
    // Time of the slowest query executed.
    System.out.println("getQueryExecutionMaxTime(): " + stats.getQueryExecutionMaxTime());
}

From source file:net.welen.buzz.typehandler.impl.hibernate.HibernateStatisticsUnitHandler.java

License:Open Source License

public void getValues(BuzzAnswer values) throws TypeHandlerException {
    for (String name : getMeasurableUnits()) {
        boolean debug = LOG.isDebugEnabled();

        // Find the Hibernate Session Factory in JNDI
        SessionFactory sessionFactory = null;

        Object o;//from w ww  .ja v  a2  s.co  m
        try {
            if (debug) {
                LOG.debug("Looking up: " + name);
            }
            o = new InitialContext().lookup(name);
        } catch (NamingException e) {
            throw new TypeHandlerException(e);
        }
        if (debug) {
            LOG.debug("Found class: " + o.getClass().getName());
        }

        if (o.getClass().getName().equals("org.hibernate.ejb.EntityManagerFactoryImpl")) {
            // Hibernate 4
            sessionFactory = ((EntityManagerFactoryImpl) o).getSessionFactory();
        } else {
            // Hibernate 3
            sessionFactory = (SessionFactory) o;
        }

        // Get all values
        Statistics stats = sessionFactory.getStatistics();
        String measurementUnit = getMeasurementUnit();
        values.put(measurementUnit, name, "SessionOpenCount", stats.getSessionOpenCount());
        values.put(measurementUnit, name, "SessionCloseCount", stats.getSessionCloseCount());
        values.put(measurementUnit, name, "FlushCount", stats.getFlushCount());
        values.put(measurementUnit, name, "ConnectCount", stats.getConnectCount());
        values.put(measurementUnit, name, "PrepareStatementCount", stats.getPrepareStatementCount());
        values.put(measurementUnit, name, "CloseStatementCount", stats.getCloseStatementCount());
        values.put(measurementUnit, name, "EntityLoadCount", stats.getEntityLoadCount());
        values.put(measurementUnit, name, "EntityUpdateCount", stats.getEntityUpdateCount());
        values.put(measurementUnit, name, "EntityInsertCount", stats.getEntityInsertCount());
        values.put(measurementUnit, name, "EntityDeleteCount", stats.getEntityDeleteCount());
        values.put(measurementUnit, name, "EntityFetchCount", stats.getEntityFetchCount());
        values.put(measurementUnit, name, "CollectionLoadCount", stats.getCollectionLoadCount());
        values.put(measurementUnit, name, "CollectionUpdateCount", stats.getCollectionUpdateCount());
        values.put(measurementUnit, name, "CollectionRemoveCount", stats.getCollectionRemoveCount());
        values.put(measurementUnit, name, "CollectionRecreateCount", stats.getCollectionRecreateCount());
        values.put(measurementUnit, name, "CollectionFetchCount", stats.getCollectionFetchCount());
        values.put(measurementUnit, name, "SecondLevelCacheHitCount", stats.getSecondLevelCacheHitCount());
        values.put(measurementUnit, name, "SecondLevelCacheMissCount", stats.getSecondLevelCacheMissCount());
        values.put(measurementUnit, name, "SecondLevelCachePutCount", stats.getSecondLevelCachePutCount());
        values.put(measurementUnit, name, "QueryExecutionCount", stats.getQueryExecutionCount());
        values.put(measurementUnit, name, "QueryExecutionMaxTime", stats.getQueryExecutionMaxTime());
        values.put(measurementUnit, name, "QueryCacheHitCount", stats.getQueryCacheHitCount());
        values.put(measurementUnit, name, "QueryCacheMissCount", stats.getQueryCacheMissCount());
        values.put(measurementUnit, name, "QueryCachePutCount", stats.getQueryCachePutCount());
        values.put(measurementUnit, name, "TransactionCount", stats.getTransactionCount());
        values.put(measurementUnit, name, "OptimisticFailureCount", stats.getOptimisticFailureCount());

        // TODO What about?
        // sessionFactory.getStatistics().getEntityStatistics(<parameter from setup? OR loop?>).
        // sessionFactory.getStatistics().getCollectionStatistics(<parameter from setup? OR loop?>)
        // sessionFactory.getStatistics().getQueryStatistics(<<parameter from setup? OR loop?>)
    }
}

From source file:org.beangle.ems.dev.hibernate.web.action.CacheAction.java

License:Open Source License

public String index() {
    Statistics statistics = sessionFactory.getStatistics();
    Date lastUpdate = new Date();
    Date activation = null;/* w  w  w. j av a 2  s .c  o  m*/
    Date deactivation = null;

    List<Long> generalStatistics = CollectUtils.newArrayList(18);
    final String action = get("do");
    final StringBuilder info = new StringBuilder(512);

    if ("activate".equals(action) && !statistics.isStatisticsEnabled()) {
        statistics.setStatisticsEnabled(true);
        activation = new Date();
        getSession().put("hibernate.stat.activation", activation);
        getSession().remove("hibernate.stat.deactivation");
        info.append("Statistics enabled\n");
    } else if ("deactivate".equals(action) && statistics.isStatisticsEnabled()) {
        statistics.setStatisticsEnabled(false);
        deactivation = new Date();
        getSession().put("hibernate.stat.deactivation", deactivation);
        activation = (Date) getSession().get("hibernate.stat.activation");
        info.append("Statistics disabled\n");
    } else if ("clear".equals(action)) {
        activation = null;
        deactivation = null;
        statistics.clear();
        getSession().remove("hibernate.stat.activation");
        getSession().remove("hibernate.stat.deactivation");
        generalStatistics.clear();
        info.append("Statistics cleared\n");
    } else {
        activation = (Date) getSession().get("hibernate.stat.activation");
        deactivation = (Date) getSession().get("hibernate.stat.deactivation");
    }

    if (info.length() > 0)
        addMessage(info.toString());

    boolean active = statistics.isStatisticsEnabled();
    if (active) {
        generalStatistics.add(statistics.getConnectCount());
        generalStatistics.add(statistics.getFlushCount());

        generalStatistics.add(statistics.getPrepareStatementCount());
        generalStatistics.add(statistics.getCloseStatementCount());

        generalStatistics.add(statistics.getSessionCloseCount());
        generalStatistics.add(statistics.getSessionOpenCount());

        generalStatistics.add(statistics.getTransactionCount());
        generalStatistics.add(statistics.getSuccessfulTransactionCount());
        generalStatistics.add(statistics.getOptimisticFailureCount());
    }
    put("active", active);
    put("lastUpdate", lastUpdate);
    if (null != activation) {
        if (null != deactivation) {
            put("duration", deactivation.getTime() - activation.getTime());
        } else {
            put("duration", lastUpdate.getTime() - activation.getTime());
        }
    }
    put("activation", activation);
    put("deactivation", deactivation);
    put("generalStatistics", generalStatistics);
    return forward();
}