|
v7: Windows 2008 и 1С 7.7 SQL | ☑ | ||
---|---|---|---|---|
0
SiriuS15009
14.08.12
✎
10:50
|
Добрый день. Нужна помощь, советы.
Использую связку Win Server 2008 R2 + SQL Server 2008 R2 + 1C 7.7 (27 релиз) При обновлении конфигурации очень часто сталкиваюсь со следующей проблемой, когда при принятии изменений в конфигурации 1С выдает «База данных не может быть открыта в однопользовательском режиме». Помогает только остановка/запуск сервера или выждать по таймауту. Хотелось бы это решить кординально раз и на всегда. На форумах натолкнулся на следующий совет: Под MS SQL 2008 1С может при реструктуризации таблиц ИБ и обновлении MD выдавать ошибку «База данных не может быть открыта в однопользовательском режиме». a.Иногда помогает просто подождать 10-15 минут и ошибка проходит сама собой. 1С некорректно работает с сервером: она оставляет открытыми служебные соединения, которые ей же самой и мешают. Сервер сам закрывает такие соединения по таймауту. b.Чтобы кардинально избавиться от таких проблем можно пропатчить bkend.dll, заменив там все вхождения строки (их там 2): Select COUNT(*) from master..sysprocesses where dbid=DB_ID('%s') на вот такую:Select COUNT(*) from master..sysprocesses where kpid=DB_ID('%s') В результате 1С перестанет проверять наличие повисших сеансов и будет запускаться даже если они есть. В частности станет возможно пользоваться средством management studio параллельно с работой конфигуратора 1С. но не совсем понятно чем чревато такое игнорирование повисших сеансов, если подводные камни в таком решении |
|||
1
varelchik
14.08.12
✎
11:31
|
Для начала немешало бы объяснить каким образом вы уважаемый заставили 7.7 дружить с SQL 2008.
|
|||
2
SiriuS15009
14.08.12
✎
11:52
|
varelchik, помоему это не для кого не секрет:
- замена системных sqlsrv32.dll и sqlsrv32.rll - установка 1Cv_77_27_Unisetup - замена на пропатченый bkend.dll либо правка некоторых строк в нем ручками |
|||
3
ADirks
14.08.12
✎
11:53
|
есть более комплексное решение: http://infostart.ru/public/82018/
|
|||
4
spock
14.08.12
✎
11:57
|
(3)наоборот, симлексное :)
|
|||
5
SiriuS15009
14.08.12
✎
11:59
|
попадалось на глаза и такое решение, но насторожило:
- нет совместимости с некоторыми 1c++ запросами (ищу решение) Да и в моем варианте все устраивает, кроме как таких зависших сеансов, с ними бы найти способ как бороться. |
|||
6
shamashs
14.08.12
✎
11:59
|
я на 2012 поднял недавно, только пользы я думаю нет учитываю что библиотеки используются от 2005
|
|||
7
ADirks
14.08.12
✎
12:15
|
(5) мышки любят кактус?
стопиццот народу это решение юзает уже, а "некоторые запросы" ещё ухитриться написать надо |
|||
8
ЧеловекДуши
14.08.12
✎
12:27
|
(5)Пилите шура, они золотые :)
|
|||
9
ЧеловекДуши
14.08.12
✎
12:27
|
(7)Он себя считает умнее других :)
|
|||
10
ЧеловекДуши
14.08.12
✎
12:28
|
+ (0) Учись пользоваться ссылкой http://www.forum.mista.ru/find.php
...решения нет (есть грабли)... но было 1001 обсасывание проблемы... |
|||
11
varelchik
14.08.12
✎
12:43
|
Тебе же (3) носом ткнул о решении проблемы.
Я уже больше чем полгода работаю с их помощью. И никаких затыков вообще не наблюдал. Да и 1С стала намного надежнее работать. С учетом того что у меня 40 перефирийных баз. Полет просто замечательный с учетом того, что скорострельность 1С выросла в разы. И незабывайте что у меня половина системы работает на 1С++. Так что ненадо ляля. Слушайся ADirks, он то уже знает что говорит. |
|||
12
monsterZE
14.08.12
✎
13:07
|
а что показывает в этот момент скл-менеджмент-студио? там вполне можно мониторить ситуацию и кикать подвисшие сесси, если дело в них. не рестартуя весь скл-сервер..
|
|||
13
SiriuS15009
14.08.12
✎
13:26
|
ADirks, varelchik, ладно ладно убедили..не зачем так пинать, я понял что надо попробовать этот способ.
только вот скачать по этой ссылке не получается без проблем. Может есть альтернативный линк или можете выложить на какой-нибудь обменник, буду благодарен. И еще, раз этот способ позволяет работать без понижения до mssql 2000, то можно смело выставлять уровень совместимости для базы 2008(100)? |
|||
14
varelchik
14.08.12
✎
14:11
|
(13)Конечно.
стучись 477687116 и скину и помогу. |
|||
15
SiriuS15009
15.08.12
✎
15:05
|
Возник еще вопрос, забыл что проделывал над системой следующее:
Установить 1c_Vista_server_2008_fix.zip 1. Папку 1Cv7_SQLDriver и файл 1sfix.sdb скопировать в корень диска C 2. Импортировать в реестр файл 1C_SQL_ODBC.reg 3. С помощью команды sdbinst.exe [путь к файлу] 1sfix.sdb установить исправление. (Пуск -> Выполнить -> Набрать cmd. Выполнить команду: sdbinst.exe c:1sfix.sdb В самом файле реестра: Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\1C_SQL_ODBC] "Driver"=hex(2):43,00,3a,00,5c,00,31,00,43,00,76,00,37,00,5f,00,53,00,51,00,4c,\ 00,44,00,72,00,69,00,76,00,65,00,72,00,5c,00,53,00,51,00,4c,00,53,00,52,00,\ 56,00,33,00,32,00,2e,00,64,00,6c,00,6c,00,00,00 "UsageCount"=dword:00000001 "Setup"=hex(2):43,00,3a,00,5c,00,31,00,43,00,76,00,37,00,5f,00,53,00,51,00,4c,\ 00,44,00,72,00,69,00,76,00,65,00,72,00,5c,00,53,00,51,00,4c,00,53,00,52,00,\ 56,00,33,00,32,00,2e,00,64,00,6c,00,6c,00,00,00 "SQLLevel"="1" "FileUsage"="0" "DriverODBCVer"="02.50" "ConnectFunctions"="YYY" "APILevel"="2" "CPTimeout"="60" Дело в том, что после того как вернул родные sqlsrv32.dll и sqlsrv32.rll на место и убрал папку 1C_SQL_ODBC с корня диска 1С продолжала видеть данный путь и требовать их оттуда - почистил добавленную ветку реестра, но теперь 1С выдает следующее: [Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию Я так понимаю дело в этом (sdbinst.exe c:1sfix.sdb) а как откатить не знаю. |
|||
16
SiriuS15009
15.08.12
✎
17:23
|
Начал разбираться и как я пониаю произошла подмена путей к файлам sqlsrv32.dll и sqlsrv32.rll, вопрос в том как вернуть все на свои места.
В продолжение темы: патч VirtualRegistry. В кратце что делает патч совместимости: Как оказалось 1с при старте лезит в раздел реестра HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\SQL Server и из ключа Driver считывает путь к файлу sqlsrv32.dll который потом и грузит. Патч подменяет для программы 1с путь в реестре на HKEY_LOCAL_MACHINE\SOFTWARE\1C_SQL_ODBC в котором указан путь к нужному файлу sqlsrv32.dll который лежит в c:\1Cv7_SQLDriver Замечу что ни какие системные библиотеки и ключи реестра не изменяются. |
|||
17
SiriuS15009
16.08.12
✎
09:21
|
(15)(16) не актуальны, разобрался сам:
sdbinst.exe -u c:\1sfix.sdb |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |