【发布时间】:2015-11-07 04:41:33
【问题描述】:
我在 oracle 数据库中设置了数据库驻留连接池。 配置完成后,我可以使用几种方法从池中获取持久连接:
$conn = oci_pconnect('scott', 'tiger', 'ORCL_POOL');
或者,我可以使用 Zend\Db:
$db = new \Zend\Db\Adapter\Adapter(array(
'persistent' => true,
'username' => 'scott',
'password' => 'tiger',
'driver' => 'oci8',
'instance' => 'ORCL_POOL', //configured in tnsnames with (SERVER=POOLED)
));
到目前为止一切顺利,我可以看到连接正在通过 oracle 视图(例如 V$CPOOL_CC_STATS)从池中重用
我有一个使用 PDO 的第 3 方库,但我不知道如何配置它以使用持久连接。 PDO::ATTR_PERSISTENT 选项听起来不错,但似乎使用了自己的连接缓存(每次都会获得一个新连接,并在V$CPOOL_CC_STATS 中显示为“未命中”)。
例如:
$pdo = new \PDO('oci:dbname=ORCL_POOL', 'scott', 'tiger',
array(PDO::ATTR_PERSISTENT => true));
所以它使用 OCI 进行连接,我已经告诉它使用持久连接...?
【问题讨论】:
-
我不明白你的问题。