/*
 * Copyright (C) 2013 Brett Wooldridge
 *
 * Licensed 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 com.zaxxer.hikari;

The javax.management MBean for a Hikari pool configuration.
Author:Brett Wooldridge
/** * The javax.management MBean for a Hikari pool configuration. * * @author Brett Wooldridge */
public interface HikariConfigMXBean {
Get the maximum number of milliseconds that a client will wait for a connection from the pool. If this time is exceeded without a connection becoming available, a SQLException will be thrown from DataSource.getConnection().
Returns:the connection timeout in milliseconds
/** * Get the maximum number of milliseconds that a client will wait for a connection from the pool. If this * time is exceeded without a connection becoming available, a SQLException will be thrown from * {@link javax.sql.DataSource#getConnection()}. * * @return the connection timeout in milliseconds */
long getConnectionTimeout();
Set the maximum number of milliseconds that a client will wait for a connection from the pool. If this time is exceeded without a connection becoming available, a SQLException will be thrown from DataSource.getConnection().
Params:
  • connectionTimeoutMs – the connection timeout in milliseconds
/** * Set the maximum number of milliseconds that a client will wait for a connection from the pool. If this * time is exceeded without a connection becoming available, a SQLException will be thrown from * {@link javax.sql.DataSource#getConnection()}. * * @param connectionTimeoutMs the connection timeout in milliseconds */
void setConnectionTimeout(long connectionTimeoutMs);
Get the maximum number of milliseconds that the pool will wait for a connection to be validated as alive.
Returns:the validation timeout in milliseconds
/** * Get the maximum number of milliseconds that the pool will wait for a connection to be validated as * alive. * * @return the validation timeout in milliseconds */
long getValidationTimeout();
Sets the maximum number of milliseconds that the pool will wait for a connection to be validated as alive.
Params:
  • validationTimeoutMs – the validation timeout in milliseconds
/** * Sets the maximum number of milliseconds that the pool will wait for a connection to be validated as * alive. * * @param validationTimeoutMs the validation timeout in milliseconds */
void setValidationTimeout(long validationTimeoutMs);
This property controls the maximum amount of time (in milliseconds) that a connection is allowed to sit idle in the pool. Whether a connection is retired as idle or not is subject to a maximum variation of +30 seconds, and average variation of +15 seconds. A connection will never be retired as idle before this timeout. A value of 0 means that idle connections are never removed from the pool.
Returns:the idle timeout in milliseconds
/** * This property controls the maximum amount of time (in milliseconds) that a connection is allowed to sit * idle in the pool. Whether a connection is retired as idle or not is subject to a maximum variation of +30 * seconds, and average variation of +15 seconds. A connection will never be retired as idle before this timeout. * A value of 0 means that idle connections are never removed from the pool. * * @return the idle timeout in milliseconds */
long getIdleTimeout();
This property controls the maximum amount of time (in milliseconds) that a connection is allowed to sit idle in the pool. Whether a connection is retired as idle or not is subject to a maximum variation of +30 seconds, and average variation of +15 seconds. A connection will never be retired as idle before this timeout. A value of 0 means that idle connections are never removed from the pool.
Params:
  • idleTimeoutMs – the idle timeout in milliseconds
/** * This property controls the maximum amount of time (in milliseconds) that a connection is allowed to sit * idle in the pool. Whether a connection is retired as idle or not is subject to a maximum variation of +30 * seconds, and average variation of +15 seconds. A connection will never be retired as idle before this timeout. * A value of 0 means that idle connections are never removed from the pool. * * @param idleTimeoutMs the idle timeout in milliseconds */
void setIdleTimeout(long idleTimeoutMs);
This property controls the amount of time that a connection can be out of the pool before a message is logged indicating a possible connection leak. A value of 0 means leak detection is disabled.
Returns:the connection leak detection threshold in milliseconds
/** * This property controls the amount of time that a connection can be out of the pool before a message is * logged indicating a possible connection leak. A value of 0 means leak detection is disabled. * * @return the connection leak detection threshold in milliseconds */
long getLeakDetectionThreshold();
This property controls the amount of time that a connection can be out of the pool before a message is logged indicating a possible connection leak. A value of 0 means leak detection is disabled.
Params:
  • leakDetectionThresholdMs – the connection leak detection threshold in milliseconds
/** * This property controls the amount of time that a connection can be out of the pool before a message is * logged indicating a possible connection leak. A value of 0 means leak detection is disabled. * * @param leakDetectionThresholdMs the connection leak detection threshold in milliseconds */
void setLeakDetectionThreshold(long leakDetectionThresholdMs);
This property controls the maximum lifetime of a connection in the pool. When a connection reaches this timeout, even if recently used, it will be retired from the pool. An in-use connection will never be retired, only when it is idle will it be removed.
Returns:the maximum connection lifetime in milliseconds
/** * This property controls the maximum lifetime of a connection in the pool. When a connection reaches this * timeout, even if recently used, it will be retired from the pool. An in-use connection will never be * retired, only when it is idle will it be removed. * * @return the maximum connection lifetime in milliseconds */
long getMaxLifetime();
This property controls the maximum lifetime of a connection in the pool. When a connection reaches this timeout, even if recently used, it will be retired from the pool. An in-use connection will never be retired, only when it is idle will it be removed.
Params:
  • maxLifetimeMs – the maximum connection lifetime in milliseconds
/** * This property controls the maximum lifetime of a connection in the pool. When a connection reaches this * timeout, even if recently used, it will be retired from the pool. An in-use connection will never be * retired, only when it is idle will it be removed. * * @param maxLifetimeMs the maximum connection lifetime in milliseconds */
void setMaxLifetime(long maxLifetimeMs);
The property controls the minimum number of idle connections that HikariCP tries to maintain in the pool, including both idle and in-use connections. If the idle connections dip below this value, HikariCP will make a best effort to restore them quickly and efficiently.
Returns:the minimum number of connections in the pool
/** * The property controls the minimum number of idle connections that HikariCP tries to maintain in the pool, * including both idle and in-use connections. If the idle connections dip below this value, HikariCP will * make a best effort to restore them quickly and efficiently. * * @return the minimum number of connections in the pool */
int getMinimumIdle();
The property controls the minimum number of idle connections that HikariCP tries to maintain in the pool, including both idle and in-use connections. If the idle connections dip below this value, HikariCP will make a best effort to restore them quickly and efficiently.
Params:
  • minIdle – the minimum number of idle connections in the pool to maintain
/** * The property controls the minimum number of idle connections that HikariCP tries to maintain in the pool, * including both idle and in-use connections. If the idle connections dip below this value, HikariCP will * make a best effort to restore them quickly and efficiently. * * @param minIdle the minimum number of idle connections in the pool to maintain */
void setMinimumIdle(int minIdle);
The property controls the maximum number of connections that HikariCP will keep in the pool, including both idle and in-use connections.
Returns:the maximum number of connections in the pool
/** * The property controls the maximum number of connections that HikariCP will keep in the pool, * including both idle and in-use connections. * * @return the maximum number of connections in the pool */
int getMaximumPoolSize();
The property controls the maximum size that the pool is allowed to reach, including both idle and in-use connections. Basically this value will determine the maximum number of actual connections to the database backend.

When the pool reaches this size, and no idle connections are available, calls to getConnection() will block for up to connectionTimeout milliseconds before timing out.

Params:
  • maxPoolSize – the maximum number of connections in the pool
/** * The property controls the maximum size that the pool is allowed to reach, including both idle and in-use * connections. Basically this value will determine the maximum number of actual connections to the database * backend. * <p> * When the pool reaches this size, and no idle connections are available, calls to getConnection() will * block for up to connectionTimeout milliseconds before timing out. * * @param maxPoolSize the maximum number of connections in the pool */
void setMaximumPoolSize(int maxPoolSize);
Set the password used for authentication. Changing this at runtime will apply to new connections only. Altering this at runtime only works for DataSource-based connections, not Driver-class or JDBC URL-based connections.
Params:
  • password – the database password
/** * Set the password used for authentication. Changing this at runtime will apply to new connections only. * Altering this at runtime only works for DataSource-based connections, not Driver-class or JDBC URL-based * connections. * * @param password the database password */
void setPassword(String password);
Set the username used for authentication. Changing this at runtime will apply to new connections only. Altering this at runtime only works for DataSource-based connections, not Driver-class or JDBC URL-based connections.
Params:
  • username – the database username
/** * Set the username used for authentication. Changing this at runtime will apply to new connections only. * Altering this at runtime only works for DataSource-based connections, not Driver-class or JDBC URL-based * connections. * * @param username the database username */
void setUsername(String username);
The name of the connection pool.
Returns:the name of the connection pool
/** * The name of the connection pool. * * @return the name of the connection pool */
String getPoolName();
Get the default catalog name to be set on connections.
Returns:the default catalog name
/** * Get the default catalog name to be set on connections. * * @return the default catalog name */
String getCatalog();
Set the default catalog name to be set on connections.

WARNING: THIS VALUE SHOULD ONLY BE CHANGED WHILE THE POOL IS SUSPENDED, AFTER CONNECTIONS HAVE BEEN EVICTED.

Params:
  • catalog – the catalog name, or null
/** * Set the default catalog name to be set on connections. * <p> * WARNING: THIS VALUE SHOULD ONLY BE CHANGED WHILE THE POOL IS SUSPENDED, AFTER CONNECTIONS HAVE BEEN EVICTED. * * @param catalog the catalog name, or null */
void setCatalog(String catalog); }