29.02.2008, 16:53 | #1 |
Участник
|
Синхронизация доступа к SQL таблице
На SQL Server 2005 есть БД. Я из аксапты подключаюсь к этой БД и выгружаю в нее некоторые данные. Если будут заходить разные пользователи и запускать эту обработку то данные будут выгружаться в разные таблицы. Нужно сделать чтобы если пользователь запустил эту обработку в одной сессии аксапты, потом открыл другую сессию и запустил эту же обработку, то info("обработка уже запущена в другой сессии"). Каким способом лучше отлавливать момент, что обработка этим пользователем уже запущена?
|
|
29.02.2008, 17:12 | #2 |
Участник
|
Табличка "пользователь, состояние обработки"
|
|
29.02.2008, 17:13 | #3 |
Участник
|
А если первая сессия заврешится аварийно? Строка в этой табличке зависнет и как тогда определять что строка не зависшая?
|
|
29.02.2008, 17:18 | #4 |
Участник
|
а нельзя никак различить работает ли человек в данный конкретный момент или уже не работает. Можно использовать только таймаут той или иной величины.
Можно сделать эту таблицу доступной админу и включить поля аудита. Тогда он сможет отстреливать зависшие процессы. |
|
29.02.2008, 17:27 | #5 |
Участник
|
А у SQL сервера можно как-нибудь "спросить" пишет сейчас кто-то в нужную мне таблицу или нет?
|
|
29.02.2008, 17:33 | #6 |
Участник
|
Можно спросить про блокировки - если есть, значит пишет ;-)
|
|