Тайм-аут базы данных 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, чтобы применить их к базе данных. Изменение является постоянным, то есть все будущие сеансы используют новый тайм-аут. Вы измените это снова в любое время.

Другие вопросы по тегам