php oci_connect连接oracle不稳定,连接失败,卡住了超时了怎么办

2022-11-23 17:23:03  浏览:621  作者:ttt

我需要使用oci_connect函数连接到远程oracle数据库; 但是发现经常不稳定


php oci_connect连接oracle不稳定,连接失败,卡住了超时了怎么办

可以使用 oci_new_connect 替换 oci_connect试试 oci_new_connect  没有缓存


----------------------------------------------

oci_new_connect

(PHP 5, PECL OCI8 >= 1.1.0)

oci_new_connect — 建定一个到 Oracle 服务器的新连接

说明

resource oci_new_connect string $username string $password [, string $db [, string $charset [, int $session_mode ]]] )

oci_new_connect() 创建一个到 Oracle 服务器的新连接并登录。与 oci_connect() 和 oci_pconnect() 不同, oci_new_connect() 不会缓冲连接,总是会返回一个全新的刚打开的连接句柄。这在应用程序需要在两组查询之间实现事务隔离很有用。

可选的第三个参数可以是本地 Oracle 实例的名字或者是在 tnsnames.ora 的条目中的名字。如果没有指定第三个参数, PHP 使用环境变量 ORACLE_SID 和 TWO_TASK 来分别确定本地 Oracle 实例的名字和 tnsnames.ora 的位置。

session_mode 参数自版本 1.1 起可用并接受如下值: OCI_DEFAULT  OCI_SYSOPER 和 OCI_SYSDBA 。如果指定了 OCI_SYSOPER 或 OCI_SYSDBA 其中之一, oci_new_connect() 将尝试使用外部认证信息建立特权连接。特权连接默认被禁止。要启用,需要将 oci8.privileged_connect 设为 On。

使用 Oracle 客户端库来确定字符集。字符集不需要与数据库的字符集相匹配。如果不匹配,Oracle 会尽可能地将数据从数据库字符集进行转换。因为依赖于字符集,可能不能给出可用的结果。转换也增加一些时间开销。

如果不指定,Oracle 客户端用 NLS_LANG 环境变量来决定字符集。

传递此参数可减少连接时间。


评论区

共 0 条评论
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~

【随机新闻】

返回顶部