2010-04-12 70 views
0

我有一個工具,設置爲查詢我們的Clearquest數據庫,每9000毫秒自動向用戶返回信息。我今天進來了,連接在週末超時了,我在oSession對象中發現了一個「check heartbeat」函數,但我不確定這是我想用來確定是否需要「重新登錄「,我看到一個db.timeoutinterval,但我似乎找不到任何有關如何調用它的好的參考,因爲oSession對象實際上並沒有調用它,並且API指南中的任何引用都提到它實際上使用adminsession對象創建數據庫。我需要創建什麼「對象」來訪問超時間隔以及如何進行?感謝您的幫助!還是使用「檢查心跳功能」會更好一些,並根據當前的登錄狀態返回true或false?Clearquest數據庫超時

+0

哇....沒有.....當...我必須使用錯誤的版本控制..... LOL – onaclov2000 2010-04-14 17:44:45

回答

0

好,爲了長話短說,我不知道checkheartbeat實際上做了什麼,但在我嘗試做一些clearquest的東西(查詢之類的)之前,我用我的oSession對象進行了調用。我不能肯定,如果checkheartbeat會返回一個布爾值,如果會話已經過期,或者沒有,所以我把它放在一個try catch塊

Try 
    If Not oSession.CheckHeartbeat Then 
     'insert login function here 
     MsgBox("Had to re-login false Heartbeat") 
    End If 
Catch ex As Exception 
    'insert login function here 
    MsgBox("Had to re-login Exception style") 
End Try 

到目前爲止,我還沒有超時,所以我我一直無法真正地測試這一點。如果時間到了,我有一個超時。然後我會更新我發現的內容。

0

CheckHeartbeat僅適用於許可證。它不會影響或檢查會話超時。 CheckHearbeat會向許可證服務器發送心跳信號,告訴它許可證仍在使用中。查看會話是否超時的唯一方法是嘗試一些操作,看看是否發生錯誤。

如果您計劃在長時間間隔內執行CQ操作,最好的方法是註銷,然後在需要重做操作時重新登錄。這可以立即釋放Db連接。

另請注意,您可以更改數據庫超時值,如果要確保連接時間不會太長,可能不會推薦這種超時值。用於更改數據庫超時的屬性位於Database對象及其稱爲TimeoutInterval的位置。然後您需要調用ApplyPropertyChanges將它們應用於數據庫。該更改是永久的,也就是說,所有未來的會話都使用新的超時。您隨時可以再次更改。