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

org.firebirdsql.pool.FirebirdPool Maven / Gradle / Ivy

There is a newer version: 2.2.7
Show newest version
/*
 * Firebird Open Source J2ee connector - jdbc driver, public Firebird-specific 
 * JDBC extensions.
 *
 * Redistribution and use in source and binary forms, with or without 
 * modification, are permitted provided that the following conditions are met:
 *    1. Redistributions of source code must retain the above copyright notice, 
 *       this list of conditions and the following disclaimer.
 *    2. Redistributions in binary form must reproduce the above copyright 
 *       notice, this list of conditions and the following disclaimer in the 
 *       documentation and/or other materials provided with the distribution. 
 *    3. The name of the author may not be used to endorse or promote products 
 *       derived from this software without specific prior written permission.
 * 
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 
 * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 
 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 
 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
package org.firebirdsql.pool;

import java.sql.SQLException;

import org.firebirdsql.jdbc.FirebirdConnectionProperties;

/**
 * Configuration for the {@link org.firebirdsql.pool.FBWrappingDataSource} and
 * {@link org.firebirdsql.pool.FBConnectionPoolDataSource} objects.
 * 
 * Following properties are supported:
 * 
    *
  • blobBufferSize * size of the buffer used to transfer BLOB data. * *
  • blockingTimeout * time in milliseconds during which {@link javax.sql.DataSource#getConnection()} method will * block if no free connection is in pool. * *
  • charSet * similar to encoding, but takes Java character set name * instead of Firebird's encoding. * *
  • database * path to a database including the server name; for example * localhost/3050:c:/path/to/database.gdb. * *
  • encoding * character encoding for the JDBC connection. * *
  • freeSize * read-only: gives amount of free connections in the pool, when 0, blocking * will occur if workingSize is equal to maxPoolSize. * *
  • isolation * default transaction isolation level for connections as string; possible * values are: *
      *
    • TRANSACTION_READ_COMMITTED *
    • TRANSACTION_REPEATABLE_READ *
    • TRANSACTION_SERIALIZABLE *
    * *
  • loginTimeout * property from {@link javax.sql.DataSource}, in this context is a synonym * for blockingTimeout (however value is specified in seconds). * *
  • maxIdleTime * time in milliseconds after which idle physical connection in the * pool is closed. * *
  • maxStatements * maximum number of pooled prepared statements, if 0, pooling is switched * off. * *
  • maxPoolSize * maximum number of physical connections that can be opened by this data * source. * *
  • minPoolSize * minimum number of connections that will remain open by this data source. * *
  • nonStandardProperty * a non-standard connection parameter in form name[=value]. * *
  • password * password that is used to connect to database. * *
  • pingInterval * time interval during which connection will be proved for aliveness. * *
  • pooling * allows switching pooling off. * *
  • statementPooling * alternative way to switch statement pooling off. * *
  • socketBufferSize * size of the socket buffer in bytes. In some cases values used by JVM by * default are not optimal. This results in performance degradation * (especially when you transfer big BLOBs). Usually 8192 bytes provides * good results. * *
  • roleName * SQL role name. * *
  • tpbMapping * mapping of the TPB parameters to JDBC transaction isolation levels. * *
  • transactionIsolationLevel * default transaction isolation level, number from {@link java.sql.Connection} * interface. * *
  • totalSize * total number of allocated connections. * *
  • type * type of connection that will be created. There are four possible types: * pure Java (or type 4), type 2 that will use Firebird client library to * connect to the database, local-mode type 2 driver, and embedded that * will use embedded engine (access to local databases). Possible values * are (case insensitive): *
      *
    • "PURE_JAVA" or "TYPE4" * for pure Java (type 4) JDBC connections; * *
    • "NATIVE" or "TYPE2" * to use Firebird client library; * *
    • "LOCAL" * to use Firebird client library in local-mode (IPC link to server); * *
    • "EMBEDDED" * to use embedded engine. *
    * *
  • userName * name of the user that will be used to access the database. * *
  • workingSize * number of connections that are in use (e.g. were obtained using * {@link javax.sql.DataSource#getConnection()} method, but not yet closed). *
* * @author Roman Rokytskyy */ public interface FirebirdPool extends FirebirdConnectionProperties, ConnectionPoolConfiguration { void restart(); void shutdown(); /* * Properties of this datasource. */ int getBlockingTimeout(); void setBlockingTimeout(int blockingTimeoutValue); int getMaxIdleTime(); void setMaxIdleTime(int maxIdleTime); int getMaxStatements(); void setMaxStatements(int maxStatements); int getMaxPoolSize(); void setMaxPoolSize(int maxPoolSize); int getMinPoolSize(); void setMinPoolSize(int minPoolSize); int getPingInterval(); void setPingInterval(int pingIntervalValue); boolean isPooling(); void setPooling(boolean pooling); boolean isStatementPooling(); void setStatementPooling(boolean statementPooling); int getFreeSize() throws SQLException; int getWorkingSize() throws SQLException; int getTotalSize() throws SQLException; }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy