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.dbcp2;
18  
19  import java.sql.SQLException;
20  
21  /**
22   * Defines the methods that will be made available via
23   * <a href="https://docs.oracle.com/javase/8/docs/technotes/guides/management/agent.html">JMX</a>.
24   *
25   * @since 2.9.0
26   */
27  public interface DataSourceMXBean {
28  
29      /**
30       * See {@link BasicDataSource#getAbandonedUsageTracking()}.
31       *
32       * @return {@link BasicDataSource#getAbandonedUsageTracking()}
33       */
34      boolean getAbandonedUsageTracking();
35  
36      /**
37       * See {@link BasicDataSource#getCacheState()}.
38       *
39       * @return {@link BasicDataSource#getCacheState()}.
40       */
41      boolean getCacheState();
42  
43      /**
44       * See {@link BasicDataSource#getConnectionInitSqlsAsArray()}.
45       *
46       * @return {@link BasicDataSource#getConnectionInitSqlsAsArray()}.
47       */
48      String[] getConnectionInitSqlsAsArray();
49  
50      /**
51       * See {@link BasicDataSource#getDefaultAutoCommit()}.
52       *
53       * @return {@link BasicDataSource#getDefaultAutoCommit()}.
54       */
55      Boolean getDefaultAutoCommit();
56  
57      /**
58       * See {@link BasicDataSource#getDefaultCatalog()}.
59       *
60       * @return {@link BasicDataSource#getDefaultCatalog()}.
61       */
62      String getDefaultCatalog();
63  
64      /**
65       * See {@link BasicDataSource#getDefaultReadOnly()}.
66       *
67       * @return {@link BasicDataSource#getDefaultReadOnly()}.
68       */
69      Boolean getDefaultReadOnly();
70  
71      /**
72       * See {@link BasicDataSource#getDefaultSchema()}.
73       *
74       * @return {@link BasicDataSource#getDefaultSchema()}.
75       * @since 2.5.0
76       */
77      default String getDefaultSchema() {
78          return null;
79      }
80  
81      /**
82       * See {@link BasicDataSource#getDefaultTransactionIsolation()}.
83       *
84       * @return {@link BasicDataSource#getDefaultTransactionIsolation()}.
85       */
86      int getDefaultTransactionIsolation();
87  
88      /**
89       * See {@link BasicDataSource#getDisconnectionIgnoreSqlCodesAsArray()}.
90       *
91       * @return {@link BasicDataSource#getDisconnectionIgnoreSqlCodesAsArray()}.
92       * @since 2.13.0
93       */
94      default String[] getDisconnectionIgnoreSqlCodesAsArray() {
95          return Utils.EMPTY_STRING_ARRAY;
96      }
97  
98      /**
99       * See {@link BasicDataSource#getDisconnectionSqlCodesAsArray()}.
100      *
101      * @return {@link BasicDataSource#getDisconnectionSqlCodesAsArray()}.
102      * @since 2.1
103      */
104     String[] getDisconnectionSqlCodesAsArray();
105 
106     /**
107      * See {@link BasicDataSource#getDriverClassName()}.
108      *
109      * @return {@link BasicDataSource#getDriverClassName()}.
110      */
111     String getDriverClassName();
112 
113     /**
114      * See {@link BasicDataSource#getFastFailValidation()}.
115      *
116      * @return {@link BasicDataSource#getFastFailValidation()}.
117      * @since 2.1
118      */
119     boolean getFastFailValidation();
120 
121     /**
122      * See {@link BasicDataSource#getInitialSize()}.
123      *
124      * @return {@link BasicDataSource#getInitialSize()}.
125      */
126     int getInitialSize();
127 
128     /**
129      * See {@link BasicDataSource#getLifo()}.
130      *
131      * @return {@link BasicDataSource#getLifo()}.
132      */
133     boolean getLifo();
134 
135     /**
136      * See {@link BasicDataSource#getLogAbandoned()}.
137      *
138      * @return {@link BasicDataSource#getLogAbandoned()}.
139      */
140     boolean getLogAbandoned();
141 
142     /**
143      * See {@link BasicDataSource#getLogExpiredConnections()}.
144      *
145      * @return {@link BasicDataSource#getLogExpiredConnections()}.
146      * @since 2.1
147      */
148     boolean getLogExpiredConnections();
149 
150     /**
151      * See {@link BasicDataSource#getMaxConnLifetimeMillis()}.
152      *
153      * @return {@link BasicDataSource#getMaxConnLifetimeMillis()}.
154      */
155     long getMaxConnLifetimeMillis();
156 
157     /**
158      * See {@link BasicDataSource#getMaxIdle()}.
159      *
160      * @return {@link BasicDataSource#getMaxIdle()}.
161      */
162     int getMaxIdle();
163 
164     /**
165      * See {@link BasicDataSource#getMaxOpenPreparedStatements()}.
166      *
167      * @return {@link BasicDataSource#getMaxOpenPreparedStatements()}.
168      */
169     int getMaxOpenPreparedStatements();
170 
171     /**
172      * See {@link BasicDataSource#getMaxTotal()}.
173      *
174      * @return {@link BasicDataSource#getMaxTotal()}.
175      */
176     int getMaxTotal();
177 
178     /**
179      * See {@link BasicDataSource#getMaxWaitMillis()}.
180      *
181      * @return {@link BasicDataSource#getMaxWaitMillis()}.
182      */
183     long getMaxWaitMillis();
184 
185     /**
186      * See {@link BasicDataSource#getMinEvictableIdleTimeMillis()}.
187      *
188      * @return {@link BasicDataSource#getMinEvictableIdleTimeMillis()}.
189      */
190     long getMinEvictableIdleTimeMillis();
191 
192     /**
193      * See {@link BasicDataSource#getMinIdle()}.
194      *
195      * @return {@link BasicDataSource#getMinIdle()}.
196      */
197     int getMinIdle();
198 
199     /**
200      * See {@link BasicDataSource#getNumActive()}.
201      *
202      * @return {@link BasicDataSource#getNumActive()}.
203      */
204     int getNumActive();
205 
206     /**
207      * See {@link BasicDataSource#getNumIdle()}.
208      *
209      * @return {@link BasicDataSource#getNumIdle()}.
210      */
211     int getNumIdle();
212 
213     /**
214      * See {@link BasicDataSource#getNumTestsPerEvictionRun()}.
215      *
216      * @return {@link BasicDataSource#getNumTestsPerEvictionRun()}.
217      */
218     int getNumTestsPerEvictionRun();
219 
220     /**
221      * See {@link BasicDataSource#getRemoveAbandonedOnBorrow()}.
222      *
223      * @return {@link BasicDataSource#getRemoveAbandonedOnBorrow()}.
224      */
225     boolean getRemoveAbandonedOnBorrow();
226 
227     /**
228      * See {@link BasicDataSource#getRemoveAbandonedOnMaintenance()}.
229      *
230      * @return {@link BasicDataSource#getRemoveAbandonedOnMaintenance()}.
231      */
232     boolean getRemoveAbandonedOnMaintenance();
233 
234     /**
235      * See {@link BasicDataSource#getRemoveAbandonedTimeout()}.
236      *
237      * @return {@link BasicDataSource#getRemoveAbandonedTimeout()}.
238      */
239     int getRemoveAbandonedTimeout();
240 
241     /**
242      * See {@link BasicDataSource#getSoftMinEvictableIdleTimeMillis()}.
243      *
244      * @return {@link BasicDataSource#getSoftMinEvictableIdleTimeMillis()}.
245      */
246     long getSoftMinEvictableIdleTimeMillis();
247 
248     /**
249      * See {@link BasicDataSource#getTestOnBorrow()}.
250      *
251      * @return {@link BasicDataSource#getTestOnBorrow()}.
252      */
253     boolean getTestOnBorrow();
254 
255     /**
256      * See {@link BasicDataSource#getTestOnCreate()}.
257      *
258      * @return {@link BasicDataSource#getTestOnCreate()}.
259      */
260     boolean getTestOnCreate();
261 
262     /**
263      * See {@link BasicDataSource#getTestWhileIdle()}.
264      *
265      * @return {@link BasicDataSource#getTestWhileIdle()}.
266      */
267     boolean getTestWhileIdle();
268 
269     /**
270      * See {@link BasicDataSource#getTimeBetweenEvictionRunsMillis()}.
271      *
272      * @return {@link BasicDataSource#getTimeBetweenEvictionRunsMillis()}.
273      */
274     long getTimeBetweenEvictionRunsMillis();
275 
276     /**
277      * See {@link BasicDataSource#getUrl()}.
278      *
279      * @return {@link BasicDataSource#getUrl()}.
280      */
281     String getUrl();
282 
283     /**
284      * See {@link BasicDataSource#getUsername()}.
285      *
286      * @return {@link BasicDataSource#getUsername()}.
287      * @deprecated Use {@link #getUserName()}.
288      */
289     @Deprecated
290     String getUsername();
291 
292     /**
293      * See {@link BasicDataSource#getUsername()}.
294      *
295      * @return {@link BasicDataSource#getUsername()}.
296      * @since 2.11.0
297      */
298     default String getUserName() {
299         return getUsername();
300     }
301 
302     /**
303      * See {@link BasicDataSource#getValidationQuery()}.
304      *
305      * @return {@link BasicDataSource#getValidationQuery()}.
306      */
307     String getValidationQuery();
308 
309     /**
310      * See {@link BasicDataSource#getValidationQueryTimeout()}.
311      *
312      * @return {@link BasicDataSource#getValidationQueryTimeout()}.
313      */
314     int getValidationQueryTimeout();
315 
316     /**
317      * See {@link BasicDataSource#isAccessToUnderlyingConnectionAllowed()}.
318      *
319      * @return {@link BasicDataSource#isAccessToUnderlyingConnectionAllowed()}.
320      */
321     boolean isAccessToUnderlyingConnectionAllowed();
322 
323     /**
324      * See {@link BasicDataSource#isClearStatementPoolOnReturn()}.
325      *
326      * @return {@link BasicDataSource#isClearStatementPoolOnReturn()}.
327      * @since 2.8.0
328      */
329     default boolean isClearStatementPoolOnReturn() {
330         return false;
331     }
332 
333     /**
334      * See {@link BasicDataSource#isClosed()}.
335      *
336      * @return {@link BasicDataSource#isClosed()}.
337      */
338     boolean isClosed();
339 
340     /**
341      * See {@link BasicDataSource#isPoolPreparedStatements()}.
342      *
343      * @return {@link BasicDataSource#isPoolPreparedStatements()}.
344      */
345     boolean isPoolPreparedStatements();
346 
347     /**
348      * See {@link BasicDataSource#restart()}
349      *
350      * @throws SQLException if an error occurs initializing the data source.
351      *
352      * @since 2.8.0
353      */
354     default void restart() throws SQLException {
355         // do nothing by default?
356     }
357 
358     /**
359      * See {@link BasicDataSource#start()}
360      *
361      * @throws SQLException if an error occurs initializing the data source.
362      *
363      * @since 2.8.0
364      */
365     default void start() throws SQLException {
366         // do nothing
367     }
368 }