powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Странные сбои в программе
10 сообщений из 10, страница 1 из 1
Странные сбои в программе
    #34514343
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем еще раз ;)
Есть программа, база на SQL Server, каждые n-секунд обращается к базе, через ADO.
Каждый шаг в программе отображается в текстовом логе, типа "проверка новых данных...", "новых данные нет...", "данные для обработки..." и т.д.
все нормально работает, периодическая проверка данных идет через стандартный Timer.
Иногда вот эта проверка тормозит. К примеру так:
1. Проверка новых данных...
2. Новых данных нет...
3. Проверка новых данных...
4. Данные для обработки...
5. Данные обработаны...
6. Проверка новых данных...
7. Новых данных нет...
8. Данные для обработки...
9. Данные обработаны...
10. Проверка новых данных...
11. Новых данных нет...
12. Проверка новых данных...
13. Новых данных нет...
И раз все дальше уже ничего не выполняется, т.е. следующая генерация Timer'а не происходит, нету никаких ошибок, все ошибки перехватываются и записываются в логе. Соотвественно должно же было дальше работать или ошибку выдавать, ничего нет.
С SQL Server'ом только начал работать, слышал про блокировки, может ли такое быть? Т.е. произошла блокировка и уже следующее обращение к базе не выполняется или выполняется слишком долго, что приводит к зависанию проги, или слишком длинному обращению к данным?
Или же здесь какой-то глюк в стандартном таймере? Или что? Посоветуйте пожалуйста.
Спасибо.
...
Рейтинг: 0 / 0
Странные сбои в программе
    #34514485
shady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А код этих опросов можно посмотреть?
Предпологаю - открывается connection и не закрывается.
Что за SQL? Количество подключений какое при этих "тормозах"
...
Рейтинг: 0 / 0
Странные сбои в программе
    #34514502
shady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пардон. Не "тормозах" а "Сбоях"
...
Рейтинг: 0 / 0
Странные сбои в программе
    #34514507
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
    strSQL = "SELECT TOP 1 * FROM TblContragentMessages WHERE (Checked=0) AND (MessageStatusID=1)"
    If rstTemp.State <>  0  Then rstTemp.Close
    rstTemp.Open strSQL, cnnMain, adOpenForwardOnly, adLockReadOnly
    If Not rstTemp.EOF Then
        lngMessageID = rstTemp.Fields("ID").Value
	.....
	processing...
	.....
        strSQL = "UPDATE TblContragentMessages SET Checked=1,CheckedDateTime=GETDATE() WHERE ID=" & lngMessageID
	cnnMain.Execute strSQL
    End If
...
Рейтинг: 0 / 0
Странные сбои в программе
    #34514525
Фотография ILL HEAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
клиент один ?
после возникновения "сбоя" проверить на сервере заблокированные объекты
sp_lock и sp_who . подробности в BOL
...
Рейтинг: 0 / 0
Странные сбои в программе
    #34514526
Фотография ILL HEAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ошибки в таймере обрабатываем ?
...
Рейтинг: 0 / 0
Странные сбои в программе
    #34514529
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ILL HEADклиент один ?
после возникновения "сбоя" проверить на сервере заблокированные объекты
sp_lock и sp_who . подробности в BOL
в смысле программа обработки сообщений? или вообще подключенные к SQL Server'у?
Если 1ое то только один клиент, в данный момент, если второе, тогда две программы одновременно подключены.
Ошибки в таймере тоже обрабатываются, везде короче обработчики стоят, с записью ошибок в лог-файл.
Если была блокировка в SQL Server'е, никаких ошибок не будет чтоли?
Т.е. при следующей попытке проверки данных?
Спасибо
...
Рейтинг: 0 / 0
Странные сбои в программе
    #34515259
Melkiades
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы минимизировать влияние блокировок, добавьте к запросу хинт NOLOCK, т.е.
Код: plaintext
 strSQL = "SELECT TOP 1 * FROM TblContragentMessages (NOLOCK) WHERE (Checked=0) AND (MessageStatusID=1)"
А чтобы посмотреть сетевую активность вашей программы, используйте Profiler.
...
Рейтинг: 0 / 0
Странные сбои в программе
    #34516136
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MelkiadesЧтобы минимизировать влияние блокировок, добавьте к запросу хинт NOLOCK, т.е.
Код: plaintext
 strSQL = "SELECT TOP 1 * FROM TblContragentMessages (NOLOCK) WHERE (Checked=0) AND (MessageStatusID=1)"
А чтобы посмотреть сетевую активность вашей программы, используйте Profiler.
спасибо
...
Рейтинг: 0 / 0
Странные сбои в программе
    #34516138
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробую такой метод
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Странные сбои в программе
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]