/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.tomcat.dbcp.pool2.impl; import java.util.List; import java.util.Map; /** * Defines the methods that will be made available via JMX. * * NOTE: This interface exists only to define those attributes and methods that * will be made available via JMX. It must not be implemented by clients * as it is subject to change between major, minor and patch version * releases of commons pool. Clients that implement this interface may * not, therefore, be able to upgrade to a new minor or patch release * without requiring code changes. * * @param <K> The type of keys maintained by the pool. * * @since 2.0 */ public interface GenericKeyedObjectPoolMXBean<K> { // Expose getters for configuration settings /** * See {@link GenericKeyedObjectPool#getBlockWhenExhausted()} * @return See {@link GenericKeyedObjectPool#getBlockWhenExhausted()} */ boolean getBlockWhenExhausted(); /** * See {@link GenericKeyedObjectPool#getFairness()} * @return See {@link GenericKeyedObjectPool#getFairness()} */ boolean getFairness(); /** * See {@link GenericKeyedObjectPool#getLifo()} * @return See {@link GenericKeyedObjectPool#getLifo()} */ boolean getLifo(); /** * See {@link GenericKeyedObjectPool#getMaxIdlePerKey()} * @return See {@link GenericKeyedObjectPool#getMaxIdlePerKey()} */ int getMaxIdlePerKey(); /** * See {@link GenericKeyedObjectPool#getMaxTotal()} * @return See {@link GenericKeyedObjectPool#getMaxTotal()} */ int getMaxTotal(); /** * See {@link GenericKeyedObjectPool#getMaxTotalPerKey()} * @return See {@link GenericKeyedObjectPool#getMaxTotalPerKey()} */ int getMaxTotalPerKey(); /** * See {@link GenericKeyedObjectPool#getMaxWaitMillis()} * @return See {@link GenericKeyedObjectPool#getMaxWaitMillis()} */ long getMaxWaitMillis(); /** * See {@link GenericKeyedObjectPool#getMinEvictableIdleTimeMillis()} * @return See {@link GenericKeyedObjectPool#getMinEvictableIdleTimeMillis()} */ long getMinEvictableIdleTimeMillis(); /** * See {@link GenericKeyedObjectPool#getMinIdlePerKey()} * @return See {@link GenericKeyedObjectPool#getMinIdlePerKey()} */ int getMinIdlePerKey(); /** * See {@link GenericKeyedObjectPool#getNumActive()} * @return See {@link GenericKeyedObjectPool#getNumActive()} */ int getNumActive(); /** * See {@link GenericKeyedObjectPool#getNumIdle()} * @return See {@link GenericKeyedObjectPool#getNumIdle()} */ int getNumIdle(); /** * See {@link GenericKeyedObjectPool#getNumTestsPerEvictionRun()} * @return See {@link GenericKeyedObjectPool#getNumTestsPerEvictionRun()} */ int getNumTestsPerEvictionRun(); /** * See {@link GenericKeyedObjectPool#getTestOnCreate()} * @return See {@link GenericKeyedObjectPool#getTestOnCreate()} * @since 2.2 */ boolean getTestOnCreate(); /** * See {@link GenericKeyedObjectPool#getTestOnBorrow()} * @return See {@link GenericKeyedObjectPool#getTestOnBorrow()} */ boolean getTestOnBorrow(); /** * See {@link GenericKeyedObjectPool#getTestOnReturn()} * @return See {@link GenericKeyedObjectPool#getTestOnReturn()} */ boolean getTestOnReturn(); /** * See {@link GenericKeyedObjectPool#getTestWhileIdle()} * @return See {@link GenericKeyedObjectPool#getTestWhileIdle()} */ boolean getTestWhileIdle(); /** * See {@link GenericKeyedObjectPool#getTimeBetweenEvictionRunsMillis()} * @return See {@link GenericKeyedObjectPool#getTimeBetweenEvictionRunsMillis()} */ long getTimeBetweenEvictionRunsMillis(); /** * See {@link GenericKeyedObjectPool#isClosed()} * @return See {@link GenericKeyedObjectPool#isClosed()} */ boolean isClosed(); // Expose getters for monitoring attributes /** * See {@link GenericKeyedObjectPool#getNumActivePerKey()} * @return See {@link GenericKeyedObjectPool#getNumActivePerKey()} */ Map<String,Integer> getNumActivePerKey(); /** * See {@link GenericKeyedObjectPool#getBorrowedCount()} * @return See {@link GenericKeyedObjectPool#getBorrowedCount()} */ long getBorrowedCount(); /** * See {@link GenericKeyedObjectPool#getReturnedCount()} * @return See {@link GenericKeyedObjectPool#getReturnedCount()} */ long getReturnedCount(); /** * See {@link GenericKeyedObjectPool#getCreatedCount()} * @return See {@link GenericKeyedObjectPool#getCreatedCount()} */ long getCreatedCount(); /** * See {@link GenericKeyedObjectPool#getDestroyedCount()} * @return See {@link GenericKeyedObjectPool#getDestroyedCount()} */ long getDestroyedCount(); /** * See {@link GenericKeyedObjectPool#getDestroyedByEvictorCount()} * @return See {@link GenericKeyedObjectPool#getDestroyedByEvictorCount()} */ long getDestroyedByEvictorCount(); /** * See {@link GenericKeyedObjectPool#getDestroyedByBorrowValidationCount()} * @return See {@link GenericKeyedObjectPool#getDestroyedByBorrowValidationCount()} */ long getDestroyedByBorrowValidationCount(); /** * See {@link GenericKeyedObjectPool#getMeanActiveTimeMillis()} * @return See {@link GenericKeyedObjectPool#getMeanActiveTimeMillis()} */ long getMeanActiveTimeMillis(); /** * See {@link GenericKeyedObjectPool#getMeanIdleTimeMillis()} * @return See {@link GenericKeyedObjectPool#getMeanIdleTimeMillis()} */ long getMeanIdleTimeMillis(); /** * See {@link GenericKeyedObjectPool#getMaxBorrowWaitTimeMillis()} * @return See {@link GenericKeyedObjectPool#getMaxBorrowWaitTimeMillis()} */ long getMeanBorrowWaitTimeMillis(); /** * See {@link GenericKeyedObjectPool#getMaxBorrowWaitTimeMillis()} * @return See {@link GenericKeyedObjectPool#getMaxBorrowWaitTimeMillis()} */ long getMaxBorrowWaitTimeMillis(); /** * See {@link GenericKeyedObjectPool#getCreationStackTrace()} * @return See {@link GenericKeyedObjectPool#getCreationStackTrace()} */ String getCreationStackTrace(); /** * See {@link GenericKeyedObjectPool#getNumWaiters()} * @return See {@link GenericKeyedObjectPool#getNumWaiters()} */ int getNumWaiters(); /** * See {@link GenericKeyedObjectPool#getNumWaitersByKey()} * @return See {@link GenericKeyedObjectPool#getNumWaitersByKey()} */ Map<String,Integer> getNumWaitersByKey(); /** * See {@link GenericKeyedObjectPool#listAllObjects()} * @return See {@link GenericKeyedObjectPool#listAllObjects()} */ Map<String,List<DefaultPooledObjectInfo>> listAllObjects(); }