All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.hfg.sql.jdbc.JDBCConnectionPoolSettings Maven / Gradle / Ivy

There is a newer version: 20240423
Show newest version
package com.hfg.sql.jdbc;

import com.hfg.setting.IntSetting;

//------------------------------------------------------------------------------
/**
 Settings for a JDBC-compatible connection pool.
 
@author J. Alex Taylor, hairyfatguy.com
*/ //------------------------------------------------------------------------------ // com.hfg XML/HTML Coding Library // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // J. Alex Taylor, President, Founder, CEO, COO, CFO, OOPS hairyfatguy.com // [email protected] //------------------------------------------------------------------------------ public class JDBCConnectionPoolSettings extends JDBCConnectionSettings { private static final String MAX_CONNECTIONS = "max_connections"; private static final String MIN_CONNECTIONS = "min_connections"; private static final String MAX_IDLE_TIME_SEC = "max_idle_time_sec"; private static final String AVAILABILITY_TIMEOUT_SEC = "availability_timeout_sec"; private static int sDefaultMaxConnections = 10; private static int sDefaultMinConnections = 0; private static int sDefaultMaxIdleTimeSec = 600; private static int sDefaultAvailabilityTimeoutSec = 10; //########################################################################### // CONSTRUCTORS //########################################################################### //--------------------------------------------------------------------------- public JDBCConnectionPoolSettings() { super(); } //--------------------------------------------------------------------------- @Override protected void init() { super.init(); add(new IntSetting(MAX_CONNECTIONS, sDefaultMaxConnections)); add(new IntSetting(MIN_CONNECTIONS, sDefaultMinConnections)); add(new IntSetting(MAX_IDLE_TIME_SEC, sDefaultMaxIdleTimeSec)); add(new IntSetting(AVAILABILITY_TIMEOUT_SEC, sDefaultAvailabilityTimeoutSec)); } //########################################################################### // PUBLIC METHODS //########################################################################### //--------------------------------------------------------------------------- public JDBCConnectionPoolSettings setMaxConnections(Integer inValue) { get(MAX_CONNECTIONS).setValue(inValue); return this; } //--------------------------------------------------------------------------- public Integer getMaxConnections() { return (Integer) get(MAX_CONNECTIONS).getValue(); } //--------------------------------------------------------------------------- public JDBCConnectionPoolSettings setMinConnections(Integer inValue) { get(MIN_CONNECTIONS).setValue(inValue); return this; } //--------------------------------------------------------------------------- public Integer getMinConnections() { return (Integer) get(MIN_CONNECTIONS).getValue(); } //--------------------------------------------------------------------------- /** Specifies the maximum amount of time that a connection above the minimum number of pool connections can sit idle before potentially being closed. * @param inValue maximum idle time in seconds * @return this settings object */ public JDBCConnectionPoolSettings setMaxIdleTimeSec(Integer inValue) { get(MAX_IDLE_TIME_SEC).setValue(inValue); return this; } //--------------------------------------------------------------------------- /** Returns the maximum amount of time that a connection above the minimum number of pool connections can sit idle before potentially being closed. * @return maximum idle time in seconds */ public Integer getMaxIdleTimeSec() { return (Integer) get(MAX_IDLE_TIME_SEC).getValue(); } //--------------------------------------------------------------------------- /** Specifies the maximum amount of time to wait for a connection to become available when requesting a connection from the pool. * @param inValue maximum wait time in seconds * @return this settings object */ public JDBCConnectionPoolSettings setAvailabilityTimeoutSec(Integer inValue) { get(AVAILABILITY_TIMEOUT_SEC).setValue(inValue); return this; } //--------------------------------------------------------------------------- /** Returns the maximum amount of time to wait for a connection to become available when requesting a connection from the pool. * @return maximum wait time in seconds */ public Integer getAvailabilityTimeoutSec() { return (Integer) get(AVAILABILITY_TIMEOUT_SEC).getValue(); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy