BoneCP

Software Screenshot:
BoneCP
Software Details:
Version: 0.7.1
Upload Date: 11 May 15
Developer: Wallace Wadge
Distribution Type: Freeware
Downloads: 18

Rating: nan/5 (Total Votes: 0)

BoneCP is an open source and fast Java database connection pool (JDBC Pool). If you are familiar with C3P0 and DBCP then you already what this means. For the rest, this is a library that will manage a database connection for you to get faster database access in your application.
 
Why write another alternative to C3P0/DBCP?

In our case, the available solutions were simply not fast enough. C3P0 worked great for small workloads but as we pushed it harder, it became clear that it was slowing our throughput down (especially in terms of CPU usage). DBCP was not recommended for production use at the time we needed it (and was slower in some cases anyway).
 
In the end, we have produced a new connection pool library that is fast, sometimes almost 25 times faster than the next fastest option. Don't take our word for it though, run the provided benchmark test yourself or go ahead and create your own.
 
Disclaimer

Despite having 100% unit test coverage, this project is still considered to be beta software. Use with care!

What is new in this release:

  • Several statistics enhancements
  • OSGi fixes
  • Allow datasource getConnection(username, password)
  • Recognize new postgresql SQLstate to trigger a pool restart
  • Added config option externalAuth to obtain connections without passing in username/password directly.
  • Allow customization hook of what is considered a broken connection
  • Allow max connections == 1
  • Add pool name to unclosed connection warning
  • Keep original exception for jdk6users
  • Publish to maven central
  • add defaultReadonly, defaultAutoCommit, defaultTransactionIsolation, etc
  • Add overloaded methods for BoneCPConfig to allow for specification of TimeUnit
  • Connection Tester Thread modifications to allow independant idleMaxAge/idleconnectionTestPeriod
  • Grab SQLExceptions only
  • Consider sqlState 08s01 as a db failure now
  • Use correct ExecutorService for connection max age
  • Use object equality instead of field equality. equals() has been renamed to hasSameConfiguration instead.
  • Remove thread-locals when storing statements
  • Don't fill batch SQL if connection hook is configured
  • Fix for false statementCache warning that statement isn't closed when releaseHelper statementCache closeConnectionWatch is configured.
  • Fix for potential race condition
  • Handle close properly in cache
  • Fix for cache.putIfAbsent
  • If we failed but still replaced connection, keep track of that
  • Be less strict on what to consider as a connection failure
  • Start tracking connection and incrementing creation count before the connection is given out
  • If driverProperties doesn't contain username/pass settings but config username does, keep them in sync
  • Allow connectionMaxAge thread to utilize lifo mode correctly
  • Stop monitoring this connection if it has been returned to the pool
  • Pass in lifo/fifo mode to connecitonMaxAge param
  • On connection destroy, remove from finalizable ref queue even if thread is still alive
  • If transaction replay blows up, throw the unwrapped exception
  • MemoritzeTransaction: InvocationTargetException fix
  • Guard logger statements
  • Use a nicer debug message clearer when a datasource ben is in use
  • Fix acquireRetryAttempts off-by-one error
  • Rename XXX -> xxxinSeconds/Minutes/etc
  • defaultTransactionIsolation: Read committed --> read_committed
  • Don't start connection testing thread right away
  • Make config retain connectionTimeout value set to 0 as 0 instead of Long.MAX

What is new in version 0.7.0:

  • An architectural change was done to make the pool faster.
  • Bugs were fixed.
  • A bunch of new features were added.

What is new in version 0.6.7.2:

  • Fixes were made for idleMaxAge/idleConnectionTester, multiple nodes in XML configuration, and an NPE on getConnection timeout.
  • Batch statements are logged properly.
  • The onAcquireFail hook was enhanced, and a tiny bug was fixed in the process.
  • A driver properties option was added.
  • The connection is no longer closed off when shutting down.
  • A bug in the close connection watch debug tool was fixed.
  • All release helpers are terminated when shutting down.

What is new in version 0.6.6:

  • A driver properties option was added.
  • XML-based configuration support was added.
  • onAcquireFail was enhanced.
  • A connection timeout configuration option was added.
  • Full JDK5 compatibility was added. Internal statements are exposed.
  • The onConnectionException hook was added.
  • Disabling connection tracking is now allowed.
  • Batch statements are now logged properly.
  • A lazy init race was fixed.
  • A potential race is now avoided.
  • Statics were removed from finalizers.
  • A potential bug in adding a new connection was fixed.
  • There are now 125 unit tests, which provide 100% unit test coverage.

What is new in version 0.6.4:

  • Revamped statement caching + statement warnings if application failed to close.

What is new in version 0.5.4:

  • Keep better track of connections in case of a DB disconnect (thanks 'ninja' !)

What is new in version 0.5.3 RC1:

  • Fixes statement caching bug.

Requirements:

  • Java 2 Standard Edition Runtime Environment

Similar Software

RazorSQL
RazorSQL

17 Feb 15

LiquiBase
LiquiBase

17 Jul 15

pgmigrate2
pgmigrate2

14 Apr 15

Other Software of Developer Wallace Wadge

Comments to BoneCP

Comments not found
Add Comment
Turn on images!