001/* 002 * Licensed to the Apache Software Foundation (ASF) under one or more 003 * contributor license agreements. See the NOTICE file distributed with 004 * this work for additional information regarding copyright ownership. 005 * The ASF licenses this file to You under the Apache License, Version 2.0 006 * (the "License"); you may not use this file except in compliance with 007 * the License. You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the License for the specific language governing permissions and 015 * limitations under the License. 016 */ 017package org.apache.commons.pool2.impl; 018 019import java.util.Set; 020 021/** 022 * Defines the methods that will be made available via JMX. 023 * 024 * NOTE: This interface exists only to define those attributes and methods that 025 * will be made available via JMX. It must not be implemented by clients 026 * as it is subject to change between major, minor and patch version 027 * releases of commons pool. Clients that implement this interface may 028 * not, therefore, be able to upgrade to a new minor or patch release 029 * without requiring code changes. 030 * 031 * @since 2.0 032 */ 033public interface GenericObjectPoolMXBean { 034 035 // Getters for basic configuration settings 036 037 /** 038 * See {@link GenericObjectPool#getBlockWhenExhausted()} 039 * @return See {@link GenericObjectPool#getBlockWhenExhausted()} 040 */ 041 boolean getBlockWhenExhausted(); 042 043 /** 044 * See {@link GenericObjectPool#getBorrowedCount()} 045 * @return See {@link GenericObjectPool#getBorrowedCount()} 046 */ 047 long getBorrowedCount(); 048 049 /** 050 * See {@link GenericObjectPool#getCreatedCount()} 051 * @return See {@link GenericObjectPool#getCreatedCount()} 052 */ 053 long getCreatedCount(); 054 055 /** 056 * See {@link GenericObjectPool#getCreationStackTrace()} 057 * @return See {@link GenericObjectPool#getCreationStackTrace()} 058 */ 059 String getCreationStackTrace(); 060 061 /** 062 * See {@link GenericObjectPool#getDestroyedByBorrowValidationCount()} 063 * @return See {@link GenericObjectPool#getDestroyedByBorrowValidationCount()} 064 */ 065 long getDestroyedByBorrowValidationCount(); 066 067 /** 068 * See {@link GenericObjectPool#getDestroyedByEvictorCount()} 069 * @return See {@link GenericObjectPool#getDestroyedByEvictorCount()} 070 */ 071 long getDestroyedByEvictorCount(); 072 073 /** 074 * See {@link GenericObjectPool#getDestroyedCount()} 075 * @return See {@link GenericObjectPool#getDestroyedCount()} 076 */ 077 long getDestroyedCount(); 078 079 /** 080 * See {@link GenericObjectPool#getFactoryType()} 081 * @return See {@link GenericObjectPool#getFactoryType()} 082 */ 083 String getFactoryType(); 084 085 /** 086 * See {@link GenericObjectPool#getLifo()} 087 * @return See {@link GenericObjectPool#getLifo()} 088 */ 089 boolean getFairness(); 090 091 /** 092 * See {@link GenericObjectPool#getFairness()} 093 * @return See {@link GenericObjectPool#getFairness()} 094 */ 095 boolean getLifo(); 096 097 /** 098 * See {@link GenericObjectPool#getLogAbandoned()} 099 * @return See {@link GenericObjectPool#getLogAbandoned()} 100 */ 101 boolean getLogAbandoned(); 102 103 /** 104 * See {@link GenericObjectPool#getMaxBorrowWaitTimeMillis()} 105 * @return See {@link GenericObjectPool#getMaxBorrowWaitTimeMillis()} 106 */ 107 long getMaxBorrowWaitTimeMillis(); 108 109 /** 110 * See {@link GenericObjectPool#getMaxIdle()} 111 * @return See {@link GenericObjectPool#getMaxIdle()} 112 */ 113 int getMaxIdle(); 114 115 /** 116 * See {@link GenericObjectPool#getMaxTotal()} 117 * @return See {@link GenericObjectPool#getMaxTotal()} 118 */ 119 int getMaxTotal(); 120 121 /** 122 * See {@link GenericObjectPool#getMaxWaitDuration()} 123 * @return See {@link GenericObjectPool#getMaxWaitDuration()} 124 */ 125 long getMaxWaitMillis(); 126 127 /** 128 * See {@link GenericObjectPool#getMeanActiveTimeMillis()} 129 * @return See {@link GenericObjectPool#getMeanActiveTimeMillis()} 130 */ 131 long getMeanActiveTimeMillis(); 132 133 /** 134 * See {@link GenericObjectPool#getMeanBorrowWaitTimeMillis()} 135 * @return See {@link GenericObjectPool#getMeanBorrowWaitTimeMillis()} 136 */ 137 long getMeanBorrowWaitTimeMillis(); 138 139 // Getters for monitoring attributes 140 141 /** 142 * See {@link GenericObjectPool#getMeanIdleTimeMillis()} 143 * @return See {@link GenericObjectPool#getMeanIdleTimeMillis()} 144 */ 145 long getMeanIdleTimeMillis(); 146 147 /** 148 * See {@link GenericObjectPool#getMinEvictableIdleDuration()} 149 * @return See {@link GenericObjectPool#getMinEvictableIdleDuration()} 150 */ 151 long getMinEvictableIdleTimeMillis(); 152 153 /** 154 * See {@link GenericObjectPool#getMinIdle()} 155 * @return See {@link GenericObjectPool#getMinIdle()} 156 */ 157 int getMinIdle(); 158 159 /** 160 * See {@link GenericObjectPool#getNumActive()} 161 * @return See {@link GenericObjectPool#getNumActive()} 162 */ 163 int getNumActive(); 164 165 /** 166 * See {@link GenericObjectPool#getNumIdle()} 167 * @return See {@link GenericObjectPool#getNumIdle()} 168 */ 169 int getNumIdle(); 170 171 /** 172 * See {@link GenericObjectPool#getNumTestsPerEvictionRun()} 173 * @return See {@link GenericObjectPool#getNumTestsPerEvictionRun()} 174 */ 175 int getNumTestsPerEvictionRun(); 176 177 /** 178 * See {@link GenericObjectPool#getNumWaiters()} 179 * @return See {@link GenericObjectPool#getNumWaiters()} 180 */ 181 int getNumWaiters(); 182 183 /** 184 * See {@link GenericObjectPool#getRemoveAbandonedOnBorrow()} 185 * @return See {@link GenericObjectPool#getRemoveAbandonedOnBorrow()} 186 */ 187 boolean getRemoveAbandonedOnBorrow(); 188 189 /** 190 * See {@link GenericObjectPool#getRemoveAbandonedOnMaintenance()} 191 * @return See {@link GenericObjectPool#getRemoveAbandonedOnMaintenance()} 192 */ 193 boolean getRemoveAbandonedOnMaintenance(); 194 195 /** 196 * See {@link GenericObjectPool#getRemoveAbandonedTimeoutDuration()} 197 * @return See {@link GenericObjectPool#getRemoveAbandonedTimeoutDuration()} 198 */ 199 int getRemoveAbandonedTimeout(); 200 201 /** 202 * See {@link GenericObjectPool#getReturnedCount()} 203 * @return See {@link GenericObjectPool#getReturnedCount()} 204 */ 205 long getReturnedCount(); 206 207 /** 208 * See {@link GenericObjectPool#getTestOnBorrow()} 209 * @return See {@link GenericObjectPool#getTestOnBorrow()} 210 */ 211 boolean getTestOnBorrow(); 212 213 // Getters for abandoned object removal configuration 214 215 /** 216 * See {@link GenericObjectPool#getTestOnCreate()} 217 * @return See {@link GenericObjectPool#getTestOnCreate()} 218 * @since 2.2 219 */ 220 boolean getTestOnCreate(); 221 222 /** 223 * See {@link GenericObjectPool#getTestOnReturn()} 224 * @return See {@link GenericObjectPool#getTestOnReturn()} 225 */ 226 boolean getTestOnReturn(); 227 228 /** 229 * See {@link GenericObjectPool#getTestWhileIdle()} 230 * @return See {@link GenericObjectPool#getTestWhileIdle()} 231 */ 232 boolean getTestWhileIdle(); 233 234 /** 235 * See {@link GenericObjectPool#getDurationBetweenEvictionRuns()} 236 * @return See {@link GenericObjectPool#getDurationBetweenEvictionRuns()} 237 */ 238 long getTimeBetweenEvictionRunsMillis(); 239 240 /** 241 * See {@link GenericObjectPool#isAbandonedConfig()} 242 * @return See {@link GenericObjectPool#isAbandonedConfig()} 243 */ 244 boolean isAbandonedConfig(); 245 246 /** 247 * See {@link GenericObjectPool#isClosed()} 248 * @return See {@link GenericObjectPool#isClosed()} 249 */ 250 boolean isClosed(); 251 252 /** 253 * See {@link GenericObjectPool#listAllObjects()} 254 * @return See {@link GenericObjectPool#listAllObjects()} 255 */ 256 Set<DefaultPooledObjectInfo> listAllObjects(); 257}