View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * The ASF licenses this file to You under the Apache License, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License.  You may obtain a copy of the License at
8    *
9    *      http://www.apache.org/licenses/LICENSE-2.0
10   *
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */
17  package org.apache.commons.pool2.impl;
18  
19  import java.util.List;
20  import java.util.Map;
21  
22  /**
23   * Defines the methods that will be made available via JMX.
24   * <h2>Note</h2>
25   * <p>
26   * 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
27   * 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
28   * new minor or patch release without requiring code changes.
29   * </p>
30   *
31   * @param <K> The type of keys maintained by the pool.
32   * @since 2.0
33   */
34  public interface GenericKeyedObjectPoolMXBean<K> {
35  
36      /**
37       * See {@link GenericKeyedObjectPool#getBlockWhenExhausted()}.
38       *
39       * @return See {@link GenericKeyedObjectPool#getBlockWhenExhausted()}.
40       */
41      boolean getBlockWhenExhausted();
42  
43      /**
44       * See {@link GenericKeyedObjectPool#getBorrowedCount()}.
45       *
46       * @return See {@link GenericKeyedObjectPool#getBorrowedCount()}.
47       */
48      long getBorrowedCount();
49  
50      /**
51       * See {@link GenericKeyedObjectPool#getCreatedCount()}.
52       *
53       * @return See {@link GenericKeyedObjectPool#getCreatedCount()}.
54       */
55      long getCreatedCount();
56  
57      /**
58       * See {@link GenericKeyedObjectPool#getCreationStackTrace()}.
59       *
60       * @return See {@link GenericKeyedObjectPool#getCreationStackTrace()}.
61       */
62      String getCreationStackTrace();
63  
64      /**
65       * See {@link GenericKeyedObjectPool#getDestroyedByBorrowValidationCount()}.
66       *
67       * @return See {@link GenericKeyedObjectPool#getDestroyedByBorrowValidationCount()}.
68       */
69      long getDestroyedByBorrowValidationCount();
70  
71      /**
72       * See {@link GenericKeyedObjectPool#getDestroyedByEvictorCount()}.
73       *
74       * @return See {@link GenericKeyedObjectPool#getDestroyedByEvictorCount()}.
75       */
76      long getDestroyedByEvictorCount();
77  
78      /**
79       * See {@link GenericKeyedObjectPool#getDestroyedCount()}.
80       *
81       * @return See {@link GenericKeyedObjectPool#getDestroyedCount()}.
82       */
83      long getDestroyedCount();
84  
85      /**
86       * See {@link GenericKeyedObjectPool#getFairness()}.
87       *
88       * @return See {@link GenericKeyedObjectPool#getFairness()}.
89       */
90      boolean getFairness();
91  
92      /**
93       * See {@link GenericKeyedObjectPool#getLifo()}.
94       *
95       * @return See {@link GenericKeyedObjectPool#getLifo()}.
96       */
97      boolean getLifo();
98  
99      /**
100      * See {@link GenericKeyedObjectPool#getLogAbandoned()}.
101      *
102      * @return See {@link GenericKeyedObjectPool#getLogAbandoned()}.
103      * @since 2.10.0
104      */
105     default boolean getLogAbandoned() {
106         return false;
107     }
108 
109     /**
110      * See {@link GenericKeyedObjectPool#getMaxBorrowWaitTimeMillis()}.
111      *
112      * @return See {@link GenericKeyedObjectPool#getMaxBorrowWaitTimeMillis()}.
113      */
114     long getMaxBorrowWaitTimeMillis();
115 
116     /**
117      * See {@link GenericKeyedObjectPool#getMaxIdlePerKey()}.
118      *
119      * @return See {@link GenericKeyedObjectPool#getMaxIdlePerKey()}.
120      */
121     int getMaxIdlePerKey();
122 
123     /**
124      * See {@link GenericKeyedObjectPool#getMaxTotal()}.
125      *
126      * @return See {@link GenericKeyedObjectPool#getMaxTotal()}.
127      */
128     int getMaxTotal();
129 
130     /**
131      * See {@link GenericKeyedObjectPool#getMaxTotalPerKey()}.
132      *
133      * @return See {@link GenericKeyedObjectPool#getMaxTotalPerKey()}.
134      */
135     int getMaxTotalPerKey();
136 
137     /**
138      * See {@link GenericKeyedObjectPool#getMaxWaitDuration()}.
139      *
140      * @return See {@link GenericKeyedObjectPool#getMaxWaitDuration()}.
141      */
142     long getMaxWaitMillis();
143 
144     /**
145      * See {@link GenericKeyedObjectPool#getMeanActiveTimeMillis()}.
146      *
147      * @return See {@link GenericKeyedObjectPool#getMeanActiveTimeMillis()}.
148      */
149     long getMeanActiveTimeMillis();
150 
151     /**
152      * See {@link GenericKeyedObjectPool#getMaxBorrowWaitTimeMillis()}.
153      *
154      * @return See {@link GenericKeyedObjectPool#getMaxBorrowWaitTimeMillis()}.
155      */
156     long getMeanBorrowWaitTimeMillis();
157 
158     /**
159      * See {@link GenericKeyedObjectPool#getMeanIdleTimeMillis()}.
160      *
161      * @return See {@link GenericKeyedObjectPool#getMeanIdleTimeMillis()}.
162      */
163     long getMeanIdleTimeMillis();
164 
165     /**
166      * See {@link GenericKeyedObjectPool#getMinEvictableIdleDuration()}.
167      *
168      * @return See {@link GenericKeyedObjectPool#getMinEvictableIdleDuration()}.
169      */
170     long getMinEvictableIdleTimeMillis();
171 
172     // Expose getters for monitoring attributes
173 
174     /**
175      * See {@link GenericKeyedObjectPool#getMinIdlePerKey()}.
176      *
177      * @return See {@link GenericKeyedObjectPool#getMinIdlePerKey()}.
178      */
179     int getMinIdlePerKey();
180 
181     /**
182      * See {@link GenericKeyedObjectPool#getNumActive()}.
183      *
184      * @return See {@link GenericKeyedObjectPool#getNumActive()}.
185      */
186     int getNumActive();
187 
188     /**
189      * See {@link GenericKeyedObjectPool#getNumActivePerKey()}.
190      *
191      * @return See {@link GenericKeyedObjectPool#getNumActivePerKey()}.
192      */
193     Map<String, Integer> getNumActivePerKey();
194 
195     /**
196      * See {@link GenericKeyedObjectPool#getNumIdle()}.
197      *
198      * @return See {@link GenericKeyedObjectPool#getNumIdle()}.
199      */
200     int getNumIdle();
201 
202     /**
203      * See {@link GenericKeyedObjectPool#getNumTestsPerEvictionRun()}.
204      *
205      * @return See {@link GenericKeyedObjectPool#getNumTestsPerEvictionRun()}.
206      */
207     int getNumTestsPerEvictionRun();
208 
209     /**
210      * See {@link GenericKeyedObjectPool#getNumWaiters()}.
211      *
212      * @return See {@link GenericKeyedObjectPool#getNumWaiters()}.
213      */
214     int getNumWaiters();
215 
216     /**
217      * See {@link GenericKeyedObjectPool#getNumWaitersByKey()}.
218      *
219      * @return See {@link GenericKeyedObjectPool#getNumWaitersByKey()}.
220      */
221     Map<String, Integer> getNumWaitersByKey();
222 
223     /**
224      * See {@link GenericKeyedObjectPool#getRemoveAbandonedOnBorrow()}.
225      *
226      * @return See {@link GenericKeyedObjectPool#getRemoveAbandonedOnBorrow()}.
227      * @since 2.10.0
228      */
229     default boolean getRemoveAbandonedOnBorrow() {
230         return false;
231     }
232 
233     /**
234      * See {@link GenericKeyedObjectPool#getRemoveAbandonedOnMaintenance()}.
235      *
236      * @return See {@link GenericKeyedObjectPool#getRemoveAbandonedOnMaintenance()}.
237      * @since 2.10.0
238      */
239     default boolean getRemoveAbandonedOnMaintenance() {
240         return false;
241     }
242 
243     /**
244      * See {@link GenericKeyedObjectPool#getRemoveAbandonedTimeoutDuration()}.
245      *
246      * @return See {@link GenericKeyedObjectPool#getRemoveAbandonedTimeoutDuration()}.
247      * @since 2.10.0
248      */
249     default int getRemoveAbandonedTimeout() {
250         return 0;
251     }
252 
253     /**
254      * See {@link GenericKeyedObjectPool#getReturnedCount()}.
255      *
256      * @return See {@link GenericKeyedObjectPool#getReturnedCount()}.
257      */
258     long getReturnedCount();
259 
260     /**
261      * See {@link GenericKeyedObjectPool#getTestOnBorrow()}.
262      *
263      * @return See {@link GenericKeyedObjectPool#getTestOnBorrow()}.
264      */
265     boolean getTestOnBorrow();
266 
267     /**
268      * See {@link GenericKeyedObjectPool#getTestOnCreate()}.
269      *
270      * @return See {@link GenericKeyedObjectPool#getTestOnCreate()}.
271      * @since 2.2
272      */
273     boolean getTestOnCreate();
274 
275     /**
276      * See {@link GenericKeyedObjectPool#getTestOnReturn()}.
277      *
278      * @return See {@link GenericKeyedObjectPool#getTestOnReturn()}.
279      */
280     boolean getTestOnReturn();
281 
282     /**
283      * See {@link GenericKeyedObjectPool#getTestWhileIdle()}.
284      *
285      * @return See {@link GenericKeyedObjectPool#getTestWhileIdle()}.
286      */
287     boolean getTestWhileIdle();
288 
289     /**
290      * See {@link GenericKeyedObjectPool#getDurationBetweenEvictionRuns}
291      *
292      * @return See {@link GenericKeyedObjectPool#getDurationBetweenEvictionRuns()}.
293      */
294     long getTimeBetweenEvictionRunsMillis();
295 
296     /**
297      * See {@link GenericKeyedObjectPool#isAbandonedConfig()}.
298      *
299      * @return See {@link GenericKeyedObjectPool#isAbandonedConfig()}.
300      * @since 2.10.0
301      */
302     default boolean isAbandonedConfig() {
303         return false;
304     }
305 
306     /**
307      * See {@link GenericKeyedObjectPool#isClosed()}.
308      *
309      * @return See {@link GenericKeyedObjectPool#isClosed()}.
310      */
311     boolean isClosed();
312 
313     /**
314      * See {@link GenericKeyedObjectPool#listAllObjects()}.
315      *
316      * @return See {@link GenericKeyedObjectPool#listAllObjects()}.
317      */
318     Map<String, List<DefaultPooledObjectInfo>> listAllObjects();
319 }