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.dbcp2; 018 019import java.sql.SQLException; 020 021/** 022 * Defines the methods that will be made available via 023 * <a href="https://docs.oracle.com/javase/8/docs/technotes/guides/management/agent.html">JMX</a>. 024 * 025 * @since 2.9.0 026 */ 027public interface DataSourceMXBean { 028 029 /** 030 * See {@link BasicDataSource#getAbandonedUsageTracking()}. 031 * 032 * @return {@link BasicDataSource#getAbandonedUsageTracking()} 033 */ 034 boolean getAbandonedUsageTracking(); 035 036 /** 037 * See {@link BasicDataSource#getCacheState()}. 038 * 039 * @return {@link BasicDataSource#getCacheState()}. 040 */ 041 boolean getCacheState(); 042 043 /** 044 * See {@link BasicDataSource#getConnectionInitSqlsAsArray()}. 045 * 046 * @return {@link BasicDataSource#getConnectionInitSqlsAsArray()}. 047 */ 048 String[] getConnectionInitSqlsAsArray(); 049 050 /** 051 * See {@link BasicDataSource#getDefaultAutoCommit()}. 052 * 053 * @return {@link BasicDataSource#getDefaultAutoCommit()}. 054 */ 055 Boolean getDefaultAutoCommit(); 056 057 /** 058 * See {@link BasicDataSource#getDefaultCatalog()}. 059 * 060 * @return {@link BasicDataSource#getDefaultCatalog()}. 061 */ 062 String getDefaultCatalog(); 063 064 /** 065 * See {@link BasicDataSource#getDefaultReadOnly()}. 066 * 067 * @return {@link BasicDataSource#getDefaultReadOnly()}. 068 */ 069 Boolean getDefaultReadOnly(); 070 071 /** 072 * See {@link BasicDataSource#getDefaultSchema()}. 073 * 074 * @return {@link BasicDataSource#getDefaultSchema()}. 075 * @since 2.5.0 076 */ 077 default String getDefaultSchema() { 078 return null; 079 } 080 081 /** 082 * See {@link BasicDataSource#getDefaultTransactionIsolation()}. 083 * 084 * @return {@link BasicDataSource#getDefaultTransactionIsolation()}. 085 */ 086 int getDefaultTransactionIsolation(); 087 088 /** 089 * See {@link BasicDataSource#getDisconnectionSqlCodesAsArray()}. 090 * 091 * @return {@link BasicDataSource#getDisconnectionSqlCodesAsArray()}. 092 * @since 2.1 093 */ 094 String[] getDisconnectionSqlCodesAsArray(); 095 096 /** 097 * See {@link BasicDataSource#getDriverClassName()}. 098 * 099 * @return {@link BasicDataSource#getDriverClassName()}. 100 */ 101 String getDriverClassName(); 102 103 /** 104 * See {@link BasicDataSource#getFastFailValidation()}. 105 * 106 * @return {@link BasicDataSource#getFastFailValidation()}. 107 * @since 2.1 108 */ 109 boolean getFastFailValidation(); 110 111 /** 112 * See {@link BasicDataSource#getInitialSize()}. 113 * 114 * @return {@link BasicDataSource#getInitialSize()}. 115 */ 116 int getInitialSize(); 117 118 /** 119 * See {@link BasicDataSource#getLifo()}. 120 * 121 * @return {@link BasicDataSource#getLifo()}. 122 */ 123 boolean getLifo(); 124 125 /** 126 * See {@link BasicDataSource#getLogAbandoned()}. 127 * 128 * @return {@link BasicDataSource#getLogAbandoned()}. 129 */ 130 boolean getLogAbandoned(); 131 132 /** 133 * See {@link BasicDataSource#getLogExpiredConnections()}. 134 * 135 * @return {@link BasicDataSource#getLogExpiredConnections()}. 136 * @since 2.1 137 */ 138 boolean getLogExpiredConnections(); 139 140 /** 141 * See {@link BasicDataSource#getMaxConnLifetimeMillis()}. 142 * 143 * @return {@link BasicDataSource#getMaxConnLifetimeMillis()}. 144 */ 145 long getMaxConnLifetimeMillis(); 146 147 /** 148 * See {@link BasicDataSource#getMaxIdle()}. 149 * 150 * @return {@link BasicDataSource#getMaxIdle()}. 151 */ 152 int getMaxIdle(); 153 154 /** 155 * See {@link BasicDataSource#getMaxOpenPreparedStatements()}. 156 * 157 * @return {@link BasicDataSource#getMaxOpenPreparedStatements()}. 158 */ 159 int getMaxOpenPreparedStatements(); 160 161 /** 162 * See {@link BasicDataSource#getMaxTotal()}. 163 * 164 * @return {@link BasicDataSource#getMaxTotal()}. 165 */ 166 int getMaxTotal(); 167 168 /** 169 * See {@link BasicDataSource#getMaxWaitMillis()}. 170 * 171 * @return {@link BasicDataSource#getMaxWaitMillis()}. 172 */ 173 long getMaxWaitMillis(); 174 175 /** 176 * See {@link BasicDataSource#getMinEvictableIdleTimeMillis()}. 177 * 178 * @return {@link BasicDataSource#getMinEvictableIdleTimeMillis()}. 179 */ 180 long getMinEvictableIdleTimeMillis(); 181 182 /** 183 * See {@link BasicDataSource#getMinIdle()}. 184 * 185 * @return {@link BasicDataSource#getMinIdle()}. 186 */ 187 int getMinIdle(); 188 189 /** 190 * See {@link BasicDataSource#getNumActive()}. 191 * 192 * @return {@link BasicDataSource#getNumActive()}. 193 */ 194 int getNumActive(); 195 196 /** 197 * See {@link BasicDataSource#getNumIdle()}. 198 * 199 * @return {@link BasicDataSource#getNumIdle()}. 200 */ 201 int getNumIdle(); 202 203 /** 204 * See {@link BasicDataSource#getNumTestsPerEvictionRun()}. 205 * 206 * @return {@link BasicDataSource#getNumTestsPerEvictionRun()}. 207 */ 208 int getNumTestsPerEvictionRun(); 209 210 /** 211 * See {@link BasicDataSource#getRemoveAbandonedOnBorrow()}. 212 * 213 * @return {@link BasicDataSource#getRemoveAbandonedOnBorrow()}. 214 */ 215 boolean getRemoveAbandonedOnBorrow(); 216 217 /** 218 * See {@link BasicDataSource#getRemoveAbandonedOnMaintenance()}. 219 * 220 * @return {@link BasicDataSource#getRemoveAbandonedOnMaintenance()}. 221 */ 222 boolean getRemoveAbandonedOnMaintenance(); 223 224 /** 225 * See {@link BasicDataSource#getRemoveAbandonedTimeout()}. 226 * 227 * @return {@link BasicDataSource#getRemoveAbandonedTimeout()}. 228 */ 229 int getRemoveAbandonedTimeout(); 230 231 /** 232 * See {@link BasicDataSource#getSoftMinEvictableIdleTimeMillis()}. 233 * 234 * @return {@link BasicDataSource#getSoftMinEvictableIdleTimeMillis()}. 235 */ 236 long getSoftMinEvictableIdleTimeMillis(); 237 238 /** 239 * See {@link BasicDataSource#getTestOnBorrow()}. 240 * 241 * @return {@link BasicDataSource#getTestOnBorrow()}. 242 */ 243 boolean getTestOnBorrow(); 244 245 /** 246 * See {@link BasicDataSource#getTestOnCreate()}. 247 * 248 * @return {@link BasicDataSource#getTestOnCreate()}. 249 */ 250 boolean getTestOnCreate(); 251 252 /** 253 * See {@link BasicDataSource#getTestWhileIdle()}. 254 * 255 * @return {@link BasicDataSource#getTestWhileIdle()}. 256 */ 257 boolean getTestWhileIdle(); 258 259 /** 260 * See {@link BasicDataSource#getTimeBetweenEvictionRunsMillis()}. 261 * 262 * @return {@link BasicDataSource#getTimeBetweenEvictionRunsMillis()}. 263 */ 264 long getTimeBetweenEvictionRunsMillis(); 265 266 /** 267 * See {@link BasicDataSource#getUrl()}. 268 * 269 * @return {@link BasicDataSource#getUrl()}. 270 */ 271 String getUrl(); 272 273 /** 274 * See {@link BasicDataSource#getUsername()}. 275 * 276 * @return {@link BasicDataSource#getUsername()}. 277 * @deprecated Use {@link #getUserName()}. 278 */ 279 @Deprecated 280 String getUsername(); 281 282 /** 283 * See {@link BasicDataSource#getUsername()}. 284 * 285 * @return {@link BasicDataSource#getUsername()}. 286 * @since 2.11.0 287 */ 288 default String getUserName() { 289 return getUsername(); 290 } 291 292 /** 293 * See {@link BasicDataSource#getValidationQuery()}. 294 * 295 * @return {@link BasicDataSource#getValidationQuery()}. 296 */ 297 String getValidationQuery(); 298 299 /** 300 * See {@link BasicDataSource#getValidationQueryTimeout()}. 301 * 302 * @return {@link BasicDataSource#getValidationQueryTimeout()}. 303 */ 304 int getValidationQueryTimeout(); 305 306 /** 307 * See {@link BasicDataSource#isAccessToUnderlyingConnectionAllowed()}. 308 * 309 * @return {@link BasicDataSource#isAccessToUnderlyingConnectionAllowed()}. 310 */ 311 boolean isAccessToUnderlyingConnectionAllowed(); 312 313 /** 314 * See {@link BasicDataSource#isClearStatementPoolOnReturn()}. 315 * 316 * @return {@link BasicDataSource#isClearStatementPoolOnReturn()}. 317 * @since 2.8.0 318 */ 319 default boolean isClearStatementPoolOnReturn() { 320 return false; 321 } 322 323 /** 324 * See {@link BasicDataSource#isClosed()}. 325 * 326 * @return {@link BasicDataSource#isClosed()}. 327 */ 328 boolean isClosed(); 329 330 /** 331 * See {@link BasicDataSource#isPoolPreparedStatements()}. 332 * 333 * @return {@link BasicDataSource#isPoolPreparedStatements()}. 334 */ 335 boolean isPoolPreparedStatements(); 336 337 /** 338 * See {@link BasicDataSource#restart()} 339 * 340 * @throws SQLException if an error occurs initializing the data source. 341 * 342 * @since 2.8.0 343 */ 344 default void restart() throws SQLException { 345 // do nothing by default? 346 } 347 348 /** 349 * See {@link BasicDataSource#start()} 350 * 351 * @throws SQLException if an error occurs initializing the data source. 352 * 353 * @since 2.8.0 354 */ 355 default void start() throws SQLException { 356 // do nothing 357 } 358}