Django/cx_Oracle 与 Oracle DRCP 连接池

问题描述 投票:0回答:1

我需要将 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 oracle python-3.x connection-pooling cx-oracle
1个回答
0
投票

Django 5.2 将把连接池功能扩展到 Oracle 后端! python-oracledb 驱动程序 2.3.0+ 版本将支持该功能。

为了效率,建议DRCP连接与python-oracledb的本地连接池配合使用。

Django 5.2 预计将于 2025 年 4 月发布,但您始终可以使用此 PR 来工作和测试。它已经过测试和批准。您可以使用连接池测试 DRCP 并提供反馈。

© www.soinside.com 2019 - 2024. All rights reserved.