Skip to main content

Simple, light and nearly featureless database connection pool

Project description

DBCP Lite

A simple, light and nearly featureless database connection pool for Python.

Connections are added to the pool as needed up to max_size in number. Once added the connections will remain in the pool and no attempt is made to shrink the pool. In most cases it is recommended to set min_size == max_size.

Usage

import cx_Oracle
from dbcp_lite import DBConnectionPool

connect_args = ('scott', 'tiger', 'dbhost.example.com/orcl')
pool = DBConnectionPool(cx_Oracle.connect, 
                        create_args=connect_args, 
                        create_kwargs={'threaded': False}, 
                        min_size=1, 
                        max_size=4, 
                        name='scott@orcl')

with pool.acquire() as connection:
    ...

with pool.acquire_cursor() as cursor:
    ...

pool.close()

The acquire_cursor() is a convenience method that returns a Cursor using a Connection from the pool. Upon successful completion commit() will be called on the Connection and the Cursor will be closed.

Timeouts

A timeout can be provided to various methods. If no connections are available to be acquired or closed the methods will raise a PoolTimeout exception.

Lifecycle Methods

The following lifecycle methods are called during normal operations and alternate implementations can be provided if needed to perform specialized setup or cleanup.

on_acquire(self, connection) - no-op

on_return(self, connection) - default implementation calls connection.rollback()

on_close(self, connection) - default implementation calls connection.close()

For example, to implement auto-commit:

pool = ...
pool.on_return = lambda x: x.commit()

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for dbcp-lite, version 0.0.2
Filename, size File type Python version Upload date Hashes
Filename, size dbcp_lite-0.0.2-py3-none-any.whl (8.0 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size dbcp-lite-0.0.2.tar.gz (8.0 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page