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: */
017:
018: package org.apache.commons.dbcp;
019:
020: /**
021: * Configuration settings for handling abandoned db connections.
022: *
023: * @author Glenn L. Nielsen
024: * @version $Revision: 482015 $ $Date: 2006-12-03 19:22:09 -0700 (Sun, 03 Dec 2006) $
025: * @deprecated This will be removed in a future version of DBCP.
026: */
027: public class AbandonedConfig {
028:
029: /**
030: * Whether or not a connection is considered abandoned and eligible
031: * for removal if it has been idle longer than the removeAbandonedTimeout
032: */
033: private boolean removeAbandoned = false;
034:
035: /**
036: * Flag to remove abandoned connections if they exceed the
037: * removeAbandonedTimeout.
038: *
039: * Set to true or false, default false.
040: * If set to true a connection is considered abandoned and eligible
041: * for removal if it has been idle longer than the removeAbandonedTimeout.
042: * Setting this to true can recover db connections from poorly written
043: * applications which fail to close a connection.
044: *
045: * @return true if abandoned connections are to be removed
046: */
047: public boolean getRemoveAbandoned() {
048: return (this .removeAbandoned);
049: }
050:
051: /**
052: * Flag to remove abandoned connections if they exceed the
053: * removeAbandonedTimeout.
054: *
055: * Set to true or false, default false.
056: * If set to true a connection is considered abandoned and eligible
057: * for removal if it has been idle longer than the removeAbandonedTimeout.
058: * Setting this to true can recover db connections from poorly written
059: * applications which fail to close a connection.
060: *
061: * @param removeAbandoned true means abandoned connections will be
062: * removed
063: */
064: public void setRemoveAbandoned(boolean removeAbandoned) {
065: this .removeAbandoned = removeAbandoned;
066: }
067:
068: /**
069: * Timeout in seconds before an abandoned connection can be removed
070: */
071: private int removeAbandonedTimeout = 300;
072:
073: /**
074: * Timeout in seconds before an abandoned connection can be removed.
075: *
076: * Defaults to 300 seconds.
077: *
078: * @return abandoned timeout in seconds
079: */
080: public int getRemoveAbandonedTimeout() {
081: return (this .removeAbandonedTimeout);
082: }
083:
084: /**
085: * Timeout in seconds before an abandoned connection can be removed.
086: *
087: * Defaults to 300 seconds.
088: *
089: * @param removeAbandonedTimeout abandoned timeout in seconds
090: */
091: public void setRemoveAbandonedTimeout(int removeAbandonedTimeout) {
092: this .removeAbandonedTimeout = removeAbandonedTimeout;
093: }
094:
095: /**
096: * Determines whether or not to log stack traces for application code
097: * which abandoned a Statement or Connection.
098: */
099: private boolean logAbandoned = false;
100:
101: /**
102: * Flag to log stack traces for application code which abandoned
103: * a Statement or Connection.
104: *
105: * Defaults to false.
106: * Logging of abandoned Statements and Connections adds overhead
107: * for every Connection open or new Statement because a stack
108: * trace has to be generated.
109: *
110: * @return boolean true if stack trace logging is turned on for abandoned
111: * Statements or Connections
112: *
113: */
114: public boolean getLogAbandoned() {
115: return (this .logAbandoned);
116: }
117:
118: /**
119: * Flag to log stack traces for application code which abandoned
120: * a Statement or Connection.
121: *
122: * Defaults to false.
123: * Logging of abandoned Statements and Connections adds overhead
124: * for every Connection open or new Statement because a stack
125: * trace has to be generated.
126: * @param logAbandoned true turns on abandoned stack trace logging
127: *
128: */
129: public void setLogAbandoned(boolean logAbandoned) {
130: this.logAbandoned = logAbandoned;
131: }
132:
133: }
|