Тайм-аут базы данных Clearquest
У меня есть инструмент, настроенный для запроса нашей базы данных Clearquest, чтобы автоматически возвращать информацию пользователю каждые 9000 миллисекунд. Я пришел сегодня, и время соединения истекло в выходные, я обнаружил в объекте oSession функцию "check heartbeat", но я не уверен, что это то, что я хочу использовать, чтобы определить, нужно ли мне "повторно войти в систему". Msgstr "я видел db.timeoutinterval, но не могу найти какой-либо хорошей ссылки на то, как его вызвать, поскольку объект oSession на самом деле не вызывает его, и любые ссылки в руководстве по API упоминают его относительно Создание БД с использованием объекта adminsession. Какой "объект" мне нужно создать, чтобы получить доступ к интервалу ожидания и как? Спасибо вам за помощь! Или лучше использовать "функцию проверки сердцебиения", и она будет возвращать true или false в зависимости от текущего состояния входа в систему?
2 ответа
Короче говоря, я понятия не имею, что на самом деле делает checkheartbeat, но прежде чем попытаться сделать что-то понятное (запросы и тому подобное), я звоню с моим объектом 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
До сих пор у меня не было тайм-аута, поэтому я не смог по-настоящему проверить это. Если придет время, у меня есть тайм-аут. Тогда я обновлю то, что узнаю.
CheckHeartbeat только для лицензий. Это не влияет и не проверяет время ожидания сеанса. CheckHearbeat отправит пульс на сервер лицензий, сообщая, что лицензия все еще используется. Единственный способ узнать, истекло ли время сеанса, - это попробовать что-то и посмотреть, произошла ли ошибка.
Если вы планируете выполнять операции CQ между большими интервалами, лучше всего выйти из системы, а затем снова войти в систему, когда вам нужно будет повторить операцию. Это немедленно освобождает соединение Db.
Также обратите внимание, что вы можете изменить тайм-аут базы данных, который не рекомендуется, если вы хотите, чтобы соединения не удерживались слишком долго. Свойство для изменения тайм-аута базы данных находится в объекте Database и называется TimeoutInterval. Затем вам нужно вызвать ApplyPropertyChanges, чтобы применить их к базе данных. Изменение является постоянным, то есть все будущие сеансы используют новый тайм-аут. Вы измените это снова в любое время.