我需要将 Oracle12 DRCP 连接池与 Django (1.8)、cx_Oracle 5.2 和 python33 一起使用
这是我的配置
TNS名称配置
TNS_NAME_DRCP =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = my_host_name)(PORT = 1521))
(CONNECT_DATA =
(SID = MY_SID)
(SERVER = POOLED)
)
)
Django 连接设置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.oracle',
'NAME': 'TNS_NAME_DRCP',
'USER': 'USERNAME',
'PASSWORD': 'PASSWORD',
'HOST': '',
'PORT': '',
'CONN_MAX_AGE': 10000,
'OPTIONS': {
'purity': cx_Oracle.ATTR_PURITY_SELF,
'cclass': 'MY_CLASS_NAME',
'threaded': True,
},
}
}
连接和应用程序运行良好。 但是当我尝试通过查询查看连接池是否正常工作时
SQL> select num_hits, num_misses,num_requests from v$cpool_cc_stats;
我的点击率为零。 (100% 未命中) 我检查了以下页面以获取更多信息
数据库驻留连接池 (DRCP) 带有 cx_Oracle 的 DRCP 似乎未按预期工作
有什么提示我可能做错了什么吗?
Django 5.2 将把连接池功能扩展到 Oracle 后端! python-oracledb 驱动程序 2.3.0+ 版本将支持该功能。
为了效率,建议DRCP连接与python-oracledb的本地连接池配合使用。
Django 5.2 预计将于 2025 年 4 月发布,但您始终可以使用此 PR 来工作和测试。它已经过测试和批准。您可以使用连接池测试 DRCP 并提供反馈。