product
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
import oracledb
|
||||
from logging_config import get_logger
|
||||
|
||||
logger = get_logger(__name__)
|
||||
|
||||
class OracleConnector:
|
||||
def __init__(self, config):
|
||||
self.config = config
|
||||
self.pool = None
|
||||
|
||||
def initialize_pool(self):
|
||||
try:
|
||||
self.pool = oracledb.create_pool(
|
||||
user=self.config.db_user,
|
||||
password=self.config.db_password,
|
||||
dsn=self.config.db_dsn,
|
||||
min=1,
|
||||
max=5,
|
||||
increment=1
|
||||
)
|
||||
logger.info("Oracle connection pool initialized")
|
||||
except Exception:
|
||||
logger.error("Failed to initialize Oracle pool", exc_info=True)
|
||||
raise
|
||||
|
||||
def get_connection(self):
|
||||
if not self.pool:
|
||||
self.initialize_pool()
|
||||
return self.pool.acquire()
|
||||
|
||||
def close(self):
|
||||
if self.pool:
|
||||
try:
|
||||
self.pool.close()
|
||||
logger.info("Oracle pool closed")
|
||||
except Exception:
|
||||
logger.error("Error closing pool", exc_info=True)
|
||||
Reference in New Issue
Block a user