Comparison of DBCP, C3P0, Proxool, BONECP Open source Connection Pool __ Database Technology

Source: Internet
Author: User
Tags connection pooling
DBCP, C3P0, Proxool, BONECP and other open source database connection pool Basic Introduction
Brief introduction Use evaluation Project Home
DBCP

DBCP is a database connection pool that relies on the Jakarta Commons-pool object pooling mechanism. DBCP can be used directly in the application


You can set the maximum and minimum connections, the connection wait time, and so on, the basic functions are, this connection pool continued to run the stability can still be, but slightly slower, under the pressure of large concurrent volume of stability declined, in addition to provide no connection pool monitoring


Http://homepages.nildram.

co.uk/~slink/java/dbpool/

C3p0 C3P0 is an open source JDBC Connection pool that is published with Hibernate in the Lib directory and includes connection objects that implement the statement and datasources pools for JDBC3 and JDBC2 extension specifications.

Connection pool can be set to the maximum and minimum connection, the connection wait time, basic functions are, the continuous operation of the connection pool stability is quite good, under the pressure of large concurrent volume stability also has a certain guarantee, in addition to provide no connection pool monitoring.


Http://sourceforge.net/projects/c3p0
Proxool This is a Java SQL driver driver that provides a connection pooling package for the other types of drivers you choose. Can be very simple to migrate to existing code. Fully configurable. Fast, mature, and robust. Can transparently add connection pooling capabilities to your existing JDBC driver. Connection pool can set up maximum and minimum connection, connection waiting time, etc., basic functions are, the continuous operation of the connection pool stability has a certain problem, have an advantage--connection pool monitoring http://proxool.sourceforge.net/
Bonecp BONECP is a fast, open source database connection pool. Help you manage your data connections so your applications can access the database more quickly. 25 times times faster than C3P0/DBCP connection pool A new data connection technology, which is known for its high efficiency and fast speed, can set up the maximum and minimum connections, the connection wait time, and so on, the basic functions have

Http://jolbox.com/about.html

DBCP, C3P0, Proxool, BONECP and other open source database connection pool parameter difference

Parameter description
 dbcp  datasource: The DataSource to be connected (usually we are not defined in Server.xml)
Defaultautocommit: whether the transaction Autocommit, the default value is True
Defaultreadonly: The default value is False for a database to be read
Driverclassname: The JDBC Driver Class used to connect to the database,
Ma Xactive: The maximum number of objects that can be fetched from the object pool, and 0 for no limit, the default is 8
Maxidle: The number in the maximum wait connection, set 0 to No limit (maximum number of objects in the object pool)
Minidle: The minimum number of objects in the object pool
Maxwait: Maximum wait seconds, the unit is MS, more than time will throw out the error message
Password: Login to the database password
URL: Connection to the database URL
Username: Log in to the database used by the account
Validationq Uery: Verify that the connection was successful, and that the SQL SELECT command should return at least one row of
Removeabandoned: whether to break itself, default is False
Removeabandonedtimeout: A few seconds later, the self interrupts, Removea Bandoned must be True
Logabandoned: Record interrupt event, default to False
Minevictableidletimemillis: greater than 0, make connection idle time judgment, or 0, do not validate for idle connections ; default 30-minute
Timebetweenevictionrunsmillis: fail-check thread run interval, if less than or equal to 0, no start checking thread, Default-1
Testonborrow: Whether to authenticate when getting objects, Check that the object is valid, default to False
Testonreturn: whether to validate when returning an object, check that the object is valid, default to False
Testwhileidle: Verify at idle, check if the object is valid, default to False
InitialSize: Number of initialization threads
C3p0 Acquireincrement: c3p0 The number of connections that are fetched at a time when the connection in the connection pool is depleted. Default:3
Acquireretryattempts: Defines the number of repeated attempts after a new connection has been failed to get from the database. Default:30
Acquireretrydelay: two times in the connection interval, in milliseconds. default:1000
Autocommitonclose: By default, all uncommitted operations are rolled back when the connection is closed. Defaul T:false
AUTOMATICTESTTABLE:C3P0 will build an empty table named Test and test it with its own query statement. If this parameter is defined, then the attribute preferredtestquery is ignored. You cannot do anything on this test table, it will only be used for C3P0 testing. Default:null
Breakafteracquirefailure: Getting a connection failure will cause all threads waiting to connect to get the connection to throw an exception. However, the data source remains valid and continues to attempt to get the connection the next time you call Getconnection (). If set to True, the data source will be declared disconnected and permanently closed after the attempt to acquire the connection fails. Default:false
Checkouttimeout: When the connection pool is exhausted, the client invokes getconnection () and waits for the new connection to be fetched, and the SqlException is thrown after the timeout, if set to 0 and waits indefinitely. Unit milliseconds. default:0
Connectiontesterclassname: Test the connection by implementing a class of Connectiontester or Queryconnectiont ester. The class name requires a full path. Default:com.mchange.v2.c3p0.impl.Def Aultconnectiontester
Factoryclasslocation: Specifies the path of the C3P0 libraries, if (usually the case) is locally available then without setting, default null can be Default:null
Idleconnectiontestperiod: Check for free connections in all connection pools every 60 seconds. Defaul t:0
Initialpoolsize: Gets three connections when initialized, and the value should be between Minpoolsize and Maxpoolsize. Default:3
MaxIdleTime: Maximum idle time, not used within 60 seconds, the connection is discarded. If 0, it will never be discarded. default:0
Maxpoolsize: The maximum number of connections reserved in the connection pool. Default:15
MAXSTATEMENTS:JDBC standard parameter to control the number of PREPAREDST atements loaded in the data source. However, because the cached statements belong to a single connection instead of the entire connection pool. So setting this parameter takes into account many factors. If both maxstatements and maxstatementsperconnection are 0, the cache is closed. default:0
Maxstatementsperconnection:maxstatementsperconnection defines the maximum number of cached statements that a single connection has within a connection pool. default:0
NUMHELPERTHREADS:C3P0 are asynchronous operations, and slow JDBC operations are accomplished through the help process. Extending these operations can effectively improve performance through multithreading to implement multiple operations at the same time. Default:3
Overridedefaultuser: When the user invokes getconnection (), the root becomes the user to obtain the connection. Used primarily when connecting a C3P0 data source to a pool connection. Default:null
Overridedefaultpassword: A parameter that corresponds to the Overridedefaultuser parameter. Default:null
Password: password. Default:null
User: Username. Default:null
Preferredtestquery: Defines the test statements that are executed by all connection tests. This one significantly increases the test speed when using connection tests. Note: The test table must exist at the initial data source. Default:null
Propertycycle: Wait up to 300 seconds before user modifies system configuration parameter execution. Defaul t:300
Testconnectiononcheckout: Because of the high performance, please use it only when you need it. If set to true then the validity is officers transferred Guevara for each connection submission. It is recommended that you use methods such as Idleconnectio ntestperiod or automatictesttable to enhance the performance of your connection tests. Default:false
Testconnectiononcheckin: If set to true then officers transferred Guevara the validity of the connection while obtaining the connection. Default:false
Proxool Acquireincrement: c3p0 The number of connections that are fetched at a time when the connection in the connection pool is depleted. Default:3
Fatal-sql-exception: It is a comma-separated piece of information. When an SQL exception occurs, his exception information is compared to this fragment of information. If present in fragment, this exception will be considered a fatal error (Fatal SQL exception). In this case, the database connection will be discarded. No matter what happens, this exception is thrown back to the consumer. The user is best to configure a different exception to throw.
Fatal-sql-exception-wrapper-class: As mentioned above, you'd better configure a different exception to throw. Using this property, the user can wrap the SqlException and make him another exception. This exception or inheritance SqlException or inherited characters Runtimeexception.proxool brought 2 implementations: ' Org.logicalcobwebs.proxool. Fatalsqlexception ' and ' Org.logicalcobweb s.proxool. Fatalruntimeexception '. The latter is more appropriate.
House-keeping-sleep-time:house keeper keeps the thread in the sleep state for the longest time, house keeper is responsible for checking the status of each connection and determining whether it needs to be destroyed or created.
House-keeping-test-sql: If a free database connection is found. House keeper will use this statement to test. This statement is best executed very quickly. If not defined, the test procedure is ignored.
Injectable-connection-interface: Allows Proxool to implement the Proxy Connection object method.
Injectable-statement-interface: Allows Proxool to implement proxy statement object methods.
Injectable-prepared-statement-interface: Allows Proxool to implement the proxy Prepareds Tatement object method.
Injectable-callable-statement-interface: Allows Proxool to implement the proxy Callablestat Ement object method.
JMX: If the property is true, a message bean is registered to the JMS service, the message Bean object name: "Proxool:type=pool, name=<alias>". The default value is False.
Jmx-agent-id: A comma-delimited list of JMX proxies, such as a connection pool registered with Mbeanserverfactory. Fi ndmbeanserver (String agentid). This property is valid only if the "JMX" attribute is set to "true". It is not certain that all registered JMX servers use this property
Jndi-name: The name of the data source
Maximum-active-time: If housekeeper detects that a thread's active time is greater than this number. It will kill the thread. So confirm the bandwidth of your server. Then set a suitable value. The default is 5 minutes.
Maximum-connection-count: Maximum number of database connections.
Maximum-connection-lifetime: Maximum lifetime of a thread.
Minimum-connection-count: Minimum number of database connections
Overload-without-refusal-lifetime: This will help us determine the status of the connection pool. If we have rejected a connection in this set value (milliseconds), then it is considered overloaded. The default is 60 seconds.
Prototype-count: The number of connections available in the connection pool. If the connection in the current connection pool is less than this number. New connections will be built (assuming no more than the maximum available). For example, we have 3 active connections to 2 available connections, and our prototype-count is 4, Then the database connection pool will attempt to establish another 2 connections. This is different from the minimum-connection-count. Minimum-connect Ion-count also calculates the connection of the activity. Prototype-count is the number of spare connections.
Recently-started-threshold: This can help us determine the status of the connection pool, the number of connections is less or more or overload. As long as at least one connection has been started in this value (milliseconds), or there are some redundant connections available, we assume that the connection pool is open. Default is 60 seconds
Simultaneous-build-throttle: This is the maximum number of connections we can establish at one time. That is the new connection request, but there is no connection available to use. Since a connection can use multiple threads to establish a connection between a limited amount of time to bring in the available connections, we need some way of confirming that some threads do not respond immediately to a connection request, by default, by 10.
Statistics: Connection pool usage statistics. Parameter "10s,1m,1d"
Statistics-log-level: Log statistics trace type. Parameter "ERROR" or "INFO"
Test-before-use: If True, the connection is serviced before each connection is tested, if one connection fails, it is discarded, another connection is processed, and if all connections fail, a new connection is established. Otherwise, a SqlException exception will be thrown.
Test-after-use: If True, the connection is serviced after each connection is tested and returned to the connection pool, which is discarded if the connection fails.
Trace: If true, each executed SQL statement will be logged (DEBUG level) during the execution period. You can also register for a connectionlistener (see Proxoolfacade) to get this information
Bonecp Acquireincrement: c3p0 The number of connections that are fetched at a time when the connection in the connection pool is depleted. Default:3
Driveclass: Database driven
Jdbcurl: Response-driven Jdbcurl
Username: User name for database
Password: password for database
Idleconnectiontestperiod: Check the interval of the connection between the control lines in the database connection pool, in minutes, by default: 240, if you want to cancel, set to 0
Idlemaxage: The maximum surviving time of unused links in the connection pool, unit is divided, default value: 60, if you want to live forever set to 0
Maxconnectionsperpartition: Maximum number of connections per partition
Minconnectionsperpartition: Minimum number of connections per partition
Partitioncount: partition number, default value 2, minimum 1, recommended 3-4, depending on the application
Acquireincrement: Each time to get the database connection time to take a few, the default value: 2
Statementscachesize: Cache prepared statements size, default value: 0
Releasehelperthreads: Release the number of link assistant processes per partition, default value: 3, unless you do a lot of work in a database connection, too many assistant processes can affect your performance


Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.