2012-06-19 27 views
1

有利的是,當我訂閱事件(通過sp_CreateEvent)時,該事件創建的級別是什麼?每個連接?每個客戶端?數據庫廣泛?事件通知訂閱的範圍是什麼?

該應用程序是我有一個長時間運行的應用程序,偶爾廣告連接因錯誤而重置。在創建新連接時,除了重新訂閱(sp_WaitForEvent)之外,還需要重新創建(sp_CreateEvent)嗎?

另外,有沒有辦法來檢查某個事件是否已經存在我給定的連接/應用程序/無論什麼級別的事件存在?

回答

2

事件是在每個數據庫級別創建的,但是任何希望等待事件的連接都必須使用sp_CreateEvent創建事件。認爲它更像sp_CreateEvent註冊一個事件的連接,而不是創建它。

如果想要等待事件,所有連接都必須創建/註冊該事件,因此如果連接因錯誤而死亡並被重新創建,則必須再次調用sp_CreateEventsp_WaitForEvent

沒有辦法簡單地檢查一個事件是否存在。可能最好的檢查方法是致電sp_WaitForEvent並檢查是否有錯誤。如果您希望立即返回,請爲超時指定0。您也可以撥打sp_CreateEventsp_DropEvent並檢查錯誤,但如果事件存在或不存在,您可能會產生意想不到的後果。

在我們的在線文檔中瞭解更多關於events的信息。