Тайм-аут базы данных Clearquest - PullRequest
0 голосов
/ 12 апреля 2010

У меня есть инструмент, настроенный для запроса нашей базы данных Clearquest, чтобы автоматически возвращать информацию пользователю каждые 9000 миллисекунд. Я пришел сегодня, и время соединения истекло в выходные, я обнаружил в объекте oSession функцию «check heartbeat», но я не уверен, что это то, что я хочу использовать, чтобы определить, нужно ли мне «повторно войти в систему». "Я видел db.timeoutinterval, но не могу найти какой-либо хорошей ссылки на то, как его вызвать, поскольку объект oSession на самом деле его не вызывает, и любые ссылки в руководстве по API упоминают его относительно Создание БД с использованием объекта adminsession. Какой «объект» мне нужно создать для доступа к интервалу времени ожидания и как? Спасибо вам за помощь! Или лучше использовать «функцию проверки сердцебиения», и она будет возвращать true или false в зависимости от текущего состояния входа в систему?

Ответы [ 2 ]

0 голосов
/ 28 января 2017

CheckHeartbeat только для лицензий. Это не влияет и не проверяет время ожидания сеанса. CheckHearbeat отправит пульс на сервер лицензий, сообщая, что лицензия все еще используется. Единственный способ узнать, истекло ли время сеанса, - это попробовать что-то и посмотреть, произошла ли ошибка.

Если вы планируете выполнять операции CQ между большими интервалами, лучше всего выйти из системы, а затем снова войти в систему, если вам нужно повторить операцию. Это немедленно освобождает соединение Db.

Также обратите внимание, что вы можете изменить тайм-аут базы данных, который не рекомендуется, если вы хотите, чтобы соединения не удерживались слишком долго. Свойство для изменения тайм-аута базы данных находится в объекте Database и называется TimeoutInterval. Затем вам нужно вызвать ApplyPropertyChanges, чтобы применить их к базе данных. Изменение является постоянным, то есть все будущие сеансы используют новый тайм-аут. Вы можете изменить его снова в любое время.

0 голосов
/ 15 апреля 2010

Короче говоря, я понятия не имею, что на самом деле делает 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

Пока у меня не было тайм-аута, поэтому я не смог по-настоящему проверить это. Если придет время, у меня есть тайм-аут. Тогда я обновлю то, что узнаю.

...