我有一个工具可以设置为查询我们的Clearquest数据库,每9000毫秒自动向用户返回一次信息。我今天进来了,连接已经超时了周末,我在oSession对象中发现了一个“检查心跳”功能,但我不确定这是我想用来确定我是否需要“重新登录” “,我看到了一个db.timeoutinterval,但我似乎找不到任何关于如何调用它的好参考,因为oSession对象实际上并没有调用它,并且API指南中的任何引用实际上都提到了它使用adminsession对象创建数据库。我需要创建什么“对象”来访问超时间隔以及如何?感谢您的帮助!或者使用“检查心跳功能”更好,它会根据当前的登录状态返回真或假吗?
答案 0 :(得分: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
到目前为止,我还没有超时,所以我无法真正测试出来。如果到时候我有一个超时。然后我会更新我发现的内容。
答案 1 :(得分:0)
CheckHeartbeat仅用于许可。它不会影响或检查会话超时。 CheckHearbeat将向许可证服务器发送心跳,告知许可证仍在使用中。查看会话是否已超时的唯一方法是尝试某些操作并查看是否发生错误。
如果您计划在较长的时间间隔内执行CQ操作,最好的办法是注销,然后在需要重做操作时再次登录。这会立即释放Db连接。
另请注意,您可以更改数据库超时,如果要确保连接不能保持太长时间,则可能不建议这样做。更改数据库超时的属性位于Database对象及其名为TimeoutInterval的属性上。然后,您需要调用ApplyPropertyChanges将它们应用于数据库。更改是永久性的,即所有将来的会话都使用新的超时。您可以随时再次更改它。