2010-04-12 76 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将它们应用于数据库。该更改是永久的,也就是说,所有未来的会话都使用新的超时。您随时可以再次更改。