Форум: "Базы";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];
ВнизРабота через MS SQL Server клиентов Найти похожие ветки
← →
_sulent © (2004-04-06 08:34) [0]Доброго дня!
У меня возникла такая проблема! Есть программа, она работает замечательно, все делает прекрасно, но вот если работают люди по сети, с этой программой (как только не пробовал, и через терминал и локально устанавливал программу чтобы по сети работала), она виснет. Причем если они делают одну задачу, т.е. работают с одним набором таблиц, то все работает замечательно, а вот если кто-то из пользователей пытается подгрузить тругую форму с другим набором таблиц, хотя ссылочная целостность сохраняется, все остальные зависают. И могут отвиснуть только тогда, когда "виновник" этого всего полностью закроет программу.
Пробовал и права и подключения одновременные ставить, все равно виснет!
В чем может быть проблема, и как ее можно будет решить?
← →
ZrenBy © (2004-04-06 09:15) [1]dbcc opentran что показывает ?
← →
_sulent © (2004-04-06 09:27) [2]переведи что это такое, по конкретнее можешь сказать что посмотреть и что проверить?
Вообще что проверять, потому что весь исходник перерыл, все путем...
← →
Fiend © (2004-04-06 09:54) [3]Блокировка данных.
Какие то клиенты скажем делают select из таблицы скажем в 100 записей но весь набор не "фетчат", т.к. он им пока что весь не нужен, а другие вдруг делают апдейт для этой же таблицы, что вызывает "подвисание", т.к. селект заблокировал таблицу или страницу данных, это уже зависит от запроса.
Выход - управлять способом блокирования. Скажем при выполнении select указывать опцию with(nolock) - это чтобы выполнить вообще без блокирования данных. И вообще почитай про блокировки. Причиной могут быть так же как уже сказали выше и не завершенные транзакции
← →
_sulent © (2004-04-06 10:15) [4]С транзакциями все нормально, а вот это надо посмотреть... Просто эта программа была написана под MS Access, а пришлось переделывать на MS SQL Server. Причем раньше она работала нормально с аксесом, и все работало и не подвисало, просто вот что странно...
← →
sniknik © (2004-04-06 10:22) [5]курсор в коомпанентах используеш какой, серверный? да - перейди на локальный.
(и логику работы переделай :)
← →
Delirium © (2004-04-06 10:24) [6]"вот что странно..." - ничего странного, работать с уровнями изоляции надо грамотно, раз уж перешёл на серьёзную СУБД. Для начала поставь во всех TADOConnection IsolationLevel в ilReadUncommitted.
← →
_sulent © (2004-04-06 10:24) [7]мда... спасибо что не отказали, придется тогда все переделывать, господи.... а тама так много... ну ладно, другого выхода как я понял нет...
спасибо!
← →
Fay © (2004-04-06 11:25) [8]2Delirium © (06.04.04 10:24) [6]
>> поставь во всех TADOConnection IsolationLevel в lReadUncommitted.
Это, по-вашему, грамотно?
← →
_sulent © (2004-04-06 12:43) [9]Дело не в транзакции, я думал уже про это, думал даже на каждую операцию запускать транзакцию, но только что же тогда будет твориться с серваком?!
И вообще пока идет работа с занесением данных транзакция не врубается!
Запускаю я транзакцию только тогда, когда начинаю непосредственную запись! Тогда я просто не допускаю других пользователей на пользование таблиц! Естесственно могут они заниматься просмотром базы, но не редактированием.
Скорее всего просто где-то упустил выключение базы, и она скорее всего на этом деле и вылетает!
← →
Delirium © (2004-04-06 13:32) [10]> Fay ©
"Это, по-вашему, грамотно?" - это по нашему решение проблемы "Для начала". Дальнейшие действия, человек предпримет сам, когда получит время изучить вопрос.
← →
_sulent © (2004-04-06 13:38) [11]Решение проблемы на поверхности, если что... Уже проблема решена... так что не спорьте...
Спасибо!
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.027 c