View Javadoc
1 /*** 2 * Redistribution and use of this software and associated documentation 3 * ("Software"), with or without modification, are permitted provided 4 * that the following conditions are met: 5 * 6 * 1. Redistributions of source code must retain copyright 7 * statements and notices. Redistributions must also contain a 8 * copy of this document. 9 * 10 * 2. Redistributions in binary form must reproduce the 11 * above copyright notice, this list of conditions and the 12 * following disclaimer in the documentation and/or other 13 * materials provided with the distribution. 14 * 15 * 3. The name "Exolab" must not be used to endorse or promote 16 * products derived from this Software without prior written 17 * permission of Exoffice Technologies. For written permission, 18 * please contact info@exolab.org. 19 * 20 * 4. Products derived from this Software may not be called "Exolab" 21 * nor may "Exolab" appear in their names without prior written 22 * permission of Exoffice Technologies. Exolab is a registered 23 * trademark of Exoffice Technologies. 24 * 25 * 5. Due credit should be given to the Exolab Project 26 * (http://www.exolab.org/). 27 * 28 * THIS SOFTWARE IS PROVIDED BY EXOFFICE TECHNOLOGIES AND CONTRIBUTORS 29 * ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT 30 * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 31 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL 32 * EXOFFICE TECHNOLOGIES OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 33 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 34 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 35 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 36 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 37 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 38 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 39 * OF THE POSSIBILITY OF SUCH DAMAGE. 40 * 41 * Copyright 2000-2003 (C) Exoffice Technologies Inc. All Rights Reserved. 42 */ 43 package org.exolab.jms.persistence; 44 45 46 /*** 47 * All concrete {@link DBConnectionManager} instances can extend this class. 48 * 49 * @version $Revision: 1.5 $ $Date: 2003/10/28 07:27:29 $ 50 * @author <a href="mailto:jima@intalio.com">Jim Alateras</a> 51 * @see org.exolab.jms.persistence.DBConnectionManager 52 */ 53 public abstract class AbstractConnectionManager 54 implements DBConnectionManager { 55 56 /*** 57 * The user name 58 */ 59 private String _user; 60 61 /*** 62 * The user's password 63 */ 64 private String _password; 65 66 /*** 67 * The JDBC driver class name 68 */ 69 private String _driver; 70 71 /*** 72 * The JDBC url 73 */ 74 private String _url; 75 76 /*** 77 * The maximum no. of active connections 78 */ 79 private int _maxActive; 80 81 /*** 82 * The maximum no. of idle connections 83 */ 84 private int _maxIdle; 85 86 /*** 87 * The minimum time that a connection may remain idle before it may be 88 * evicted, in seconds 89 */ 90 private long _minIdleTime; 91 92 /*** 93 * The interval between checking idle connections for eviction, in seconds 94 */ 95 private long _evictionInterval; 96 97 /*** 98 * The SQL query to validate connections 99 */ 100 private String _testQuery; 101 102 /*** 103 * Determines if connections should be tested before use, 104 * using {@link #_testQuery} 105 */ 106 private boolean _testBeforeUse = false; 107 108 109 /*** 110 * Sets the user name that is used to obtain the connection 111 * 112 * @param name the user name 113 */ 114 public void setUser(String name) { 115 _user = name; 116 } 117 118 /*** 119 * Returns the user's name 120 * 121 * @return the user's name 122 */ 123 public String getUser() { 124 return _user; 125 } 126 127 /*** 128 * Sets the user's password that is used to access the database 129 * 130 * @param password the user's password 131 */ 132 public void setPassword(String password) { 133 _password = password; 134 } 135 136 /*** 137 * Returns the user's password 138 * 139 * @return the user's password 140 */ 141 public String getPassword() { 142 return _password; 143 } 144 145 /*** 146 * Sets the JDBC driver class name 147 * 148 * @param driver the JDBC driver class name 149 */ 150 public void setDriver(String driver) { 151 _driver = driver; 152 } 153 154 /*** 155 * Returns the JDBC driver class name 156 * 157 * @return the JDBC driver class name 158 */ 159 public String getDriver() { 160 return _driver; 161 } 162 163 /*** 164 * Sets the URL to the database 165 * 166 * @param url the JDBC URL 167 */ 168 public void setURL(String url) { 169 _url = url; 170 } 171 172 /*** 173 * Returns the JDBC URL 174 * 175 * @return the JDBC URL 176 */ 177 public String getURL() { 178 return _url; 179 } 180 181 /*** 182 * Sets the maximum number of active connections that can be allocated from 183 * this pool at the same time, or zero for no limit. 184 * 185 * @param active the maximum number of active connections 186 */ 187 public void setMaxActive(int active) { 188 _maxActive = active; 189 } 190 191 /*** 192 * Returns the maximum number of active connections that can be allocated 193 * from this pool at the same time. 194 * 195 * @return the maximum number of active connections 196 */ 197 public int getMaxActive() { 198 return _maxActive; 199 } 200 201 /*** 202 * Sets the maximum number of connections that can sit idle in the 203 * connection pool, before connections are evicted. 204 * 205 * @param idle the maximum number of idle connections 206 */ 207 public void setMaxIdle(int idle) { 208 _maxIdle = idle; 209 } 210 211 /*** 212 * Returns the maximum number of connections that can sit idle in the 213 * connection pool, before connections are evicted. 214 * 215 * @return the maximum number of idle connections 216 */ 217 public int getMaxIdle() { 218 return _maxIdle; 219 } 220 221 /*** 222 * Sets the minimum time that a connection may remain idle 223 * before it may be evicted, or zero for no eviction. 224 * 225 * @param time the idle time, in seconds 226 */ 227 public void setMinIdleTime(long time) { 228 _minIdleTime = time; 229 } 230 231 /*** 232 * Returns the minimum time that a connection may remain idle 233 * before it may be evicted 234 * 235 * @return the minimum idle time, in seconds 236 */ 237 public long getMinIdleTime() { 238 return _minIdleTime; 239 } 240 241 /*** 242 * Sets the interval between checking idle connections for eviction. 243 * Idle connections are removed after {@link #setMinIdleTime} seconds, 244 * or if {@ link #testQuery} is specified, and the query fails. 245 * 246 * @param interval the eviction interval, in seconds 247 */ 248 public void setEvictionInterval(long interval) { 249 _evictionInterval = interval; 250 } 251 252 /*** 253 * Returns the interval between checking idle connections for eviction. 254 * 255 * @return the eviction interval, in seconds 256 */ 257 public long getEvictionInterval() { 258 return _evictionInterval; 259 } 260 261 /*** 262 * Specifies an SQL query to validate connections. This query 263 * should return at least one row, and be fast to execute. 264 * 265 * @param query the test query 266 */ 267 public void setTestQuery(String query) { 268 _testQuery = query; 269 } 270 271 /*** 272 * Returns the SQL query to validate connections. 273 * 274 * @return the test query 275 */ 276 public String getTestQuery() { 277 return _testQuery; 278 } 279 280 /*** 281 * Determines if connections should be tested before use. 282 * If true, each connection is tested before being returned. 283 * If a connection fails, it is discarded, and another connection 284 * allocated. This ensures a higher reliability, at the cost of 285 * performance. 286 * 287 * @param test if <code>true</code>, each connection is tested use. 288 */ 289 public void setTestBeforeUse(boolean test) { 290 _testBeforeUse = test; 291 } 292 293 /*** 294 * Returns if connections should be tested before use. 295 * 296 * @return <code>true</code> if each connection should be tested before 297 * being used. 298 */ 299 public boolean getTestBeforeUse() { 300 return _testBeforeUse; 301 } 302 303 } //-- AbstractConnectionManager

This page was automatically generated by Maven