2011-09-22 101 views
2

如果需要超过10秒的时间,我需要中断oracle查询的执行,并给用户一条消息,通知他有关执行超时。 我GOOGLE了很多,但我没有找到有用的东西。 有什么办法来设置时间限制oci_execute设置oracle查询的时间限制

+0

我需要在PHP端做,因为我没有任何机会来管理数据库配置。 – Muflo

回答

2

配置文件可以使用,但是苛刻了一点。更好的解决方案是使用Oracle资源管理器。设置资源管理器计划,分配资源使用者组,决定如何将会话分配给资源使用者组,然后关闭。 当估计的运行时间超过允许的运行时间时,您甚至可以拒绝启动查询。 另外检查http://ronr.blogspot.com/2009/06/howto-configure-resource-manager-using.html

+0

我需要在PHP端做,因为我没有任何机会来管理数据库配置。 – Muflo

+0

在这种情况下,您需要能够在等待时间到期时发送取消消息。在PRO * c中这很容易(好吧,需要一点点oci来设置它)。在PHP中...我不知道这一点。如果你可以发送一个CTRL-C到正在运行的连接,它可以工作。 –

+0

如何http://www.php.net/manual/en/function.oci-cancel.php你将不得不编写自己的计时器。 –