我有一个工具,它被设置为查询我们的Clearquest数据库,以每9000毫秒自动向用户返回信息。我今天来了,上周末连接超时了,我在oSession对象中发现了一个“检查心跳”函数,但我不确定这是不是我想用来决定是否需要“重新登录”的函数。我看到了一个db.timeoutinterval,但我似乎找不到任何关于如何调用它的参考资料,因为oSession对象实际上并不调用它,并且API指南中的任何引用都提到了使用adminsession对象创建数据库的实际情况。我需要创建什么“对象”来访问超时间隔以及如何访问?谢谢你的帮助!或者使用“检查心跳功能”更好,它会根据当前登录状态返回true还是false?
发布于 2010-04-15 20:52:16
长话短说,我不知道检查心跳到底是做什么的,但是在我尝试做一些清晰的任务(查询之类的事情)之前,我会用我的oSession对象进行一个调用。我不确定检查心跳是否会在会话过期时返回布尔值,因此我将其放在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到目前为止,我还没有超时,所以我无法真正测试它。如果时间到了,我就会暂停。然后我会更新我发现的东西。
发布于 2017-01-28 05:31:37
CheckHeartbeat仅适用于许可证。它不会影响或检查会话超时。CheckHearbeat将向许可证服务器发送心跳信号,告诉它许可证仍在使用中。查看会话是否已超时的唯一方法是尝试某些操作,并查看是否发生错误。
如果您计划在较长的时间间隔之间执行CQ操作,则最好的做法是注销,然后在需要重做该操作时重新登录。这会立即释放Db连接。
还要注意,您可以更改数据库超时,如果您希望确保连接不会保持太长时间,则可能不建议这样做。用于更改数据库超时的属性位于数据库对象及其名为TimeoutInterval的对象上。然后,您需要调用ApplyPropertyChanges将它们应用于数据库。此更改是永久性的,即所有将来的会话都使用新的超时。您可以随时再次更改它。
https://stackoverflow.com/questions/2623152
复制相似问题