Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
1С 8.0 + MSSQL 2005 Express
|
|||
|---|---|---|---|
|
#18+
Помогите решить проблему, плиз :) Используется следующая архитектура: - Клиентские приложения 1С; - 1ПК = Сервер 1С:Предприятия 8.0 + сервер терминалов; - 1ПК = Microsoft SQL Server 2005 Express Edition. Очень часто возникает следующая ошибка: {Задача.новЗадача(47)}: Ошибка при вызове метода контекста (ВыполнитьЗадачу): Конфликт блокировок при выполнении транзакции: Microsoft OLE DB Provider for SQL Server: Transaction (Process ID 54) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction. HRESULT=80004005, SQLSTATE=40001, native=1205 Причем заблокированными оказываются в среднем 4 – 5 пользователей (работает при этом одновременно до 20 человек из них 10 – 15 в терминальном режиме). Отследить в отладчике не представляется возможным, т.к. данный процесс выполняется на сервере приложений (в 1С отладке подвластны только процессы, исполняемые на клиенте). В Express Edition в свою очередь нет возможности использования SQL Profiler, чтобы отследить инструкции, которые сервер 1С шлет на SQL Server (в Express его просто нет, а попытка использовать от MSSQL 2000 вызывает ошибку). Имеются интуитивные подозрения, что причина в том, что 1С при работе с необъектными сущностями – задачи относятся к ним – использует уровень изоляции транзакции: SERIALIZABLE, поэтому при выполнении задачи, а при этом происходит ее запись, блокируется диапазон записей, в которые попадают задачи других пользователей, также . Еще одна сложность в том, что язык 1С не позволяет проверить заблокирована ли запись другими пользователями перед выполнением задачи, есть идея попытаться сделать это средствами T-SQL через ADO из 1С, либо триггерами или ХП, но пока нет идеи, как получить из 1С значение ключевого поля, для того чтобы обратиться к записи средствами SQL, а уникальное в таблице только оно: _IDRRef ---------------------------------- 0xB9EE00112F07A62A11DB2D8F90F85015 Я не прошу готового решения, но может, кто-либо решал уже что-нибудь подобное, благодарен буду за любую помощь по вопросу, включая ссылки по теме, идеи и т.п. А также, буду очень признателен помощи в вопросе того, каким образом можно отследить, что происходит на сервере SQL в этот момент, чтобы пользоваться не интуицией, а фактической информацией для анализа. З.Ы. Предвосхищая критику, что вопрос не по теме форума: меня интересует мнение по этому вопросу именно специалистов по SQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2006, 13:19 |
|
||
|
1С 8.0 + MSSQL 2005 Express
|
|||
|---|---|---|---|
|
#18+
Я тоже столкнулся с такой проблемой. Посмотри http://sqlprofiler.googlepages.com ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2007, 12:04 |
|
||
|
1С 8.0 + MSSQL 2005 Express
|
|||
|---|---|---|---|
|
#18+
Для исключения deadlock используй FOR UPDATE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2007, 14:52 |
|
||
|
1С 8.0 + MSSQL 2005 Express
|
|||
|---|---|---|---|
|
#18+
эх. нет у меня возможности перекинуть в специализированный подфорум по 1С. А вопрос хорошо задан. Закрыл ветку. ShuraComp, пожалуйста, откройте ее в разделе про 1С. http://sql.ru/forum/actualtopics.aspx?bid=63 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2007, 15:09 |
|
||
|
|

start [/forum/topic.php?fid=29&fpage=46&tid=1527467]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
15ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 261ms |
| total: | 347ms |

| 0 / 0 |
