2011-09-22 104 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你將不得不編寫自己的計時器。 –