php oci 语句特别慢,PHP oci_connect()卡住了/没有超时

在Lumen5.2.x应用中遇到oci_connect()连接Oracle数据库超时的问题,尝试了多种超时设置如修改连接字符串、设置max_execution_time和set_time_limit以及更新sqlnet.ora文件,但均未成功。当数据库迁移至新主机时,应用无法响应。最终发现一个适用于Oracle的Laravel软件包解决了问题。
摘要由CSDN通过智能技术生成

我们正在使用Lumen 5.2.x(Laravel)应用程序从Oracle数据库获取数据.因此,我们使用oci_connect()连接到数据库. (其他信息:我们使用Oracle InstantClient)

由于未知原因,该应用程序没有响应,也不会返回任何数据.经过大量的调试,我们发现它陷入了同样的方法:oci_connect().显然,该函数未返回“超时”消息或类似内容.

后来,数据库似乎移到了另一台主机,这就是它无法连接的原因.但是,我们期望出现错误,而不是等待大量时间.

这就是我们试图强制设置超时的原因,直到现在还没有解决.

我们尝试过的事情:

>将其添加到连接字符串:(CONNECT_TIMEOUT = 10)(RETRY_COUNT = 3),该字符串将被完全忽略.

>将max_execution_time和set_time_limit设置为1

>使用设置添加sqlnet.ora:

TCP.CONNECT_TIMEOUT = 10

SQLNET.INBOUND_CONNECT_TIMEOUT = 10

SQLNET.OUTBOUND_CONNECT_TIMEOUT = 10

我们尝试过的所有方法都失败了,有人知道如何解决此错误吗?任何帮助表示赞赏!

编辑:

系统信息:

Windows Server 2012 R2,IIS 8,PHP 5.6

解决方法:

下面是用于oracle的laravel软件包,您可以尝试一下,

标签:lumen,laravel,oci,php

来源: https://codeday.me/bug/20191025/1927170.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值