org.apache.commons.dbcp.AbandonedConfig Maven / Gradle / Ivy
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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 org.apache.commons.dbcp;
import java.io.PrintWriter;
/**
* Configuration settings for handling abandoned db connections.
*
* @author Glenn L. Nielsen
* @version $Revision: 758745 $ $Date: 2009-03-26 13:02:20 -0400 (Thu, 26 Mar 2009) $
*/
public class AbandonedConfig {
/**
* Whether or not a connection is considered abandoned and eligible
* for removal if it has been idle longer than the removeAbandonedTimeout
*/
private boolean removeAbandoned = false;
/**
* Flag to remove abandoned connections if they exceed the
* removeAbandonedTimeout.
*
* Set to true or false, default false.
* If set to true a connection is considered abandoned and eligible
* for removal if it has been idle longer than the removeAbandonedTimeout.
* Setting this to true can recover db connections from poorly written
* applications which fail to close a connection.
*
* @return true if abandoned connections are to be removed
*/
public boolean getRemoveAbandoned() {
return (this.removeAbandoned);
}
/**
* Flag to remove abandoned connections if they exceed the
* removeAbandonedTimeout.
*
* Set to true or false, default false.
* If set to true a connection is considered abandoned and eligible
* for removal if it has been idle longer than the removeAbandonedTimeout.
* Setting this to true can recover db connections from poorly written
* applications which fail to close a connection.
*
* @param removeAbandoned true means abandoned connections will be
* removed
*/
public void setRemoveAbandoned(boolean removeAbandoned) {
this.removeAbandoned = removeAbandoned;
}
/**
* Timeout in seconds before an abandoned connection can be removed
*/
private int removeAbandonedTimeout = 300;
/**
* Timeout in seconds before an abandoned connection can be removed.
*
* Defaults to 300 seconds.
*
* @return abandoned timeout in seconds
*/
public int getRemoveAbandonedTimeout() {
return (this.removeAbandonedTimeout);
}
/**
* Timeout in seconds before an abandoned connection can be removed.
*
* Defaults to 300 seconds.
*
* @param removeAbandonedTimeout abandoned timeout in seconds
*/
public void setRemoveAbandonedTimeout(int removeAbandonedTimeout) {
this.removeAbandonedTimeout = removeAbandonedTimeout;
}
/**
* Determines whether or not to log stack traces for application code
* which abandoned a Statement or Connection.
*/
private boolean logAbandoned = false;
/**
* Flag to log stack traces for application code which abandoned
* a Statement or Connection.
*
* Defaults to false.
* Logging of abandoned Statements and Connections adds overhead
* for every Connection open or new Statement because a stack
* trace has to be generated.
*
* @return boolean true if stack trace logging is turned on for abandoned
* Statements or Connections
*
*/
public boolean getLogAbandoned() {
return (this.logAbandoned);
}
/**
* Flag to log stack traces for application code which abandoned
* a Statement or Connection.
*
* Defaults to false.
* Logging of abandoned Statements and Connections adds overhead
* for every Connection open or new Statement because a stack
* trace has to be generated.
* @param logAbandoned true turns on abandoned stack trace logging
*
*/
public void setLogAbandoned(boolean logAbandoned) {
this.logAbandoned = logAbandoned;
}
/**
* PrintWriter to use to log information on abandoned objects.
*/
private PrintWriter logWriter = new PrintWriter(System.out);
/**
* Returns the log writer being used by this configuration to log
* information on abandoned objects. If not set, a PrintWriter based on
* System.out is used.
*
* @return log writer in use
*/
public PrintWriter getLogWriter() {
return logWriter;
}
/**
* Sets the log writer to be used by this configuration to log
* information on abandoned objects.
*
* @param logWriter The new log writer
*/
public void setLogWriter(PrintWriter logWriter) {
this.logWriter = logWriter;
}
}