Краткое описание :
докомпилятор не работает корректно на первасиве, если
запускать по сетке (а некоторые иначе не могут работать)Описание :
Общие вопросы по компонентам C_*Что измененно :
Клиент докомпилировал БД на платформе Pervasive расположенной в
сети. Утилита докомпиляции сообщила, что всё хоршо и прошло без ошибок. Клиент
не стал анализировать протоколы докомпиляции. Выборочно проверили интерфейсы,
вроде всё хорошо. После чего пользователи начали работать с системой. В течении
дня начались жалобы пользователей о отсутствии данных.
Позже выяснилось, что в отче докомпиляции содержится протокол btrv_drv.log с
ошибками вида:
Error. Не удалось создать таблицу Y:D_STAFF\Advises.dat с кодом 0. Код ошибки 94
Error. Не удалось создать таблицу Y:D_STAFF\appoint.dat с кодом 0. Код ошибки 94
Error. Не удалось создать таблицу Y:D_ZARPL\ArchRate.dat с кодом 0. Код ошибки
94
Error. Не удалось создать таблицу Y:D_ZARPL\ArxShtrf.dat с кодом 0. Код ошибки
94
Error. Не удалось создать таблицу Y:D_STAFF\ContDoc.dat с кодом 0. Код ошибки 94
Пока поняли, что таблицы пустые - прошло время. Пришлось срочно восстанавливать
БД, заново конвертировать и снова вводить данные за день.
Необходимо, чтобы утилита докомпиляции диагностировала подобные ошибки
платформы Pervasive и не говорила, что всё Ок. А так же реализовать работу
докомпилятора на клиенте.
Как измененно :
Рекомендации по устранению причины:
В результате анализа данной ситуации было установлено, что некоторые версии
СУБД PERVASIVE PSQL не совместимы с операционными системами семейства Windows
NT 6.0 и выше (такими как Windows Vista/7, Windows Server 2008 и выше).
Перечисленные в проблеме ошибки являются следствием использования в данных
операционных системах сетевого протокола SMB версии 2.
Согласно документации по установке системы Галактика ERP 9.1, раздел "УСТАНОВКА
СИСТЕМЫ > УСТАНОВКА КОМПОНЕНТОВ СУБД PERVASIVE PSQL".
Для предотвращения подобных ошибок необходимо в реестре Windows компьютера
сервера БД создать следующий параметр и перезагрузить компьютер:
REGEDIT4
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters]
"Smb2"=dword:00000000
Данный параметр отключает возможность использования протокола smb версии 2 (в
результате на сервере должна использоваться версия 1 данного протокола).
При выключенном протоколе SMB2 Докомпиляция на платформе СУБД PERVASIVE PSQL
проходит без потери информации и без ошибиок в протоколе btrv_drv.log.
Доработки утилиты докомпиляции Alter_Cumulative.exe:
В утилите докомпиляции реализована дополнительная диагностика вероятных
ошибочных ситуаций. Утилита автоматически обнаруживает дополнительные протоколы
ошибок Ora90drv.log Ms70drv.Log btrv_drv.log и анализирует их содержимое. При
этом в отчет о докомпиляции могут выдаваться дополнительно обнаруженные ошибки
вида:
- Процесс ASQL.EXE завершился с ошибками, см. файл протокола Btrv_Drv.log
- Процесс ASQL.EXE завершился с ошибками, см. файл протокола Ora90drv.log
- Процесс ASQL.EXE завершился с ошибками, см. файл протокола Ms70drv.log
Также в отчет включаются строки данных протоколов содержащие слова: Error,
Ошибка, [RPC Error], [NAPSrv], [Microsoft], [ODBC SQL Server Driver], [SQL
Server], ORA-ххххх.
Дополнительно реализована еще она проверка утилиты докомпиляции. На этапе
"Проверка структуры таблиц на готовность к докомпиляции" может выдаваться
ошибка "Получен пустой список таблиц (TableListBefore.txt [0, 0])". Которая
также является вероятным последствием подключения к БД Pervasive по
несовместимому сетевому протоколу SMB2.
# ИНСТРУКЦИЯ ПО НАСТРОЙКЕ: При использовании докомпилятора для СУБД Pervasive
на операционных системах семейства Windows NT 6.0 и выше (Windows Vista/7,
Windows Server 2008 и выше). Рекомендуется выполнять докомпиляцию БД
Pervasive.SQL локально, на том же компьютере, где расположена база.
Или для докомпиляции по сети выполните отключение протокола SMB2 на сервере
СУБД.
Для этого необходимо в реестре Windows на сервера БД создать следующий параметр
и перезагрузить компьютер:
REGEDIT4
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters]
"Smb2"=dword:00000000
Дополнительная инструкция содержится в пункте 6 в раздела "Подготовка к
докомпиляции" файлах Doc\Alter_Cumulative.pdf и Exe\Help\Alter_Cumulative.chm