0. hogik 428 28.10.07 09:21 Сейчас в теме

DBEng32 (6.0.4.2, Advantage 8.1/9.1) - клиент/серверное использование DBFной версии 1С:Предприятие 7.7

Данная разработка позволяет использовать систему 1С:Предприятие 7.7 (DBFная версия) в режиме клиент/сервер на базе сервера Advantage 8.1/9.1 разработанного фирмой Extended Systems Inc. Предлагаемое решение позволяет устранить основные недостатки DBFной реализации поддержки баз данных 1С:Предприятие 7.7.
Аналогичная разработка: http://infostart.ru/projects/811/

Перейти к публикации

Комментарии
Избранное Подписка Сортировка: Древо
200. hogik 428 05.01.12 00:51 Сейчас в теме
(197)
Делаем это (199 сообщение) на копии.
Увеличиваем размер журнала ошибок до числа 100000 (100 мегабайт).
201. hogik 428 05.01.12 01:00 Сейчас в теме
(197)
Я посмотрел содержание транзакции, где обрабатывается 1SACCSEL.DBF - думаю, всё будет хорошо, если пересчитать итоги. :-) Возможно (лучше), придется удалить заранее:
1SACCSEL.CDX 1SACCSEL.DBF 1SSBSEL.CDX 1SSBSEL.DBF
203. hogik 428 05.01.12 01:14 Сейчас в теме
(197)
Посмотрел присланные файлы.
Подтверждаю свою уверенность в содержании сообщений 198-201.
Проблему полностью понял. Всё логично и объяснимо... :-)
Причина сбоя описана в History.doc по версии 6038.
Но!
Рекомендую посмотреть сообщение (177) данной темы.
Т.к. замена терминал-серверного режима на ADS может огорчить пользователей по скорости в некоторых задачах.
202. sonirk 05.01.12 01:09 Сейчас в теме
Все как было сказано сделал, и версию 6.0.4.2 уже поставил, вот только файл DBEng32.ini я не удалял из каталога БД и сделал уже переиндексацию - там же увеличен размер страницы в индексных файлах с 512 до 1024? Или нужно обязательно его удалять, а потом повторить переиндексацию?

И еще, " придется удалить заранее: 1SACCSEL.CDX 1SACCSEL.DBF 1SSBSEL.CDX 1SSBSEL.DBF " - разве это автоматически в 4.2. версии не удаляется?
204. hogik 428 05.01.12 01:22 Сейчас в теме
(202)
Размер страницы считывается из INI файла только в момент создания индексов. Можно оставить и 1024. Но возможно некоторое замедление на некоторых задачах. А на некоторых - ускорение ;-) Мы работаем с размером в 512. Точнее, если не задано явное значение, то в DBEng32 оно вычисляется из разумных соображений. Но, по жизни всегда меньше, чем 1024 байт.
Файлы 1SACCSEL.CDX 1SACCSEL.DBF 1SSBSEL.CDX 1SSBSEL.DBF в версии 6042 не удаляются. Удаляются все записи в них (команда ZAP по FoxPro аналогии). В этой версии значительно быстрее чем в предыдущих. Но если он сбойный, то могут возникнуть проблемы. Т.е. удалить надо в текущем случае. А потом они будут нормально чиститься и без ручного удаления.
205. sonirk 05.01.12 01:25 Сейчас в теме
В общем, делаю все, как описано в сообщениях 198-201. В принципе, как и писал раньше, вопросов никаких с dbf версией баз не было, вот только наши 1С-ники, которые конфигураций и доработками бухгалтерии занимаются, настаивали, что может быть проблема с файлами больше гигабайта. Рекомендовали присмотреться в Вашей разработке или перейти на 8. С 8 руководство переходит и так по плану, но постепенно, а проблему 1 гигабайта и потенциального искажения данных быдо сказано предотвратить немедленно. Хотя, в общем, на скорость особо не жаловались, хотя я полностью понимал и предупреждал вопрос о скорости заранее.

Остались пока лично у меня вопросы:
1) Что было не так, почему выскочила ошибка 7001 - я предварительно не удалил файлы, как было в последнем комментарии к версии 6.0.3.8?
2) Нужно ли эти файлы удалять вручную теперь при каждой смене периода, ведь версия 4.2. решает этот вопрос автоматически?

Пока писал, на вопрос 2) Вы ответили однозначно, остался вопрос 1) :)

p.s. Сейчас пошла смена периода, причем довольно быстро - за 10 минут 7 млн. операций. Это чуть ли не в 10 раз быстрее, чем было до всех изменений.
206. hogik 428 05.01.12 01:41 Сейчас в теме
(205)
Причиной ошибки 7001 была огромная транзакция. А возникала она потому, что разработчики 1С-а для родной DBF-ной версии выдают команду ZAP внутри транзакции для огромной таблицы. Что допустимо в родном движке на старом CodeBase (команда исключается из транзакции). По сути их алгоритм - полный бред в этой части. Но ZAP не может выполниться в ADS и CodeBase 6.5 (новый). Поэтому мне пришлось чистить эти два файла путем удаления каждой записи. Т.е. варианта было два: закрывать и открывать транзакцию или удалять каждую запись. А т.к. у нас нет этих файлов, то проблемы и не возникало... Ну, вот я собрался. Разобрал их транзакцию детально. И пришел к выводу, что ей можно закрыть сделать ZAP и запустить заново. И еще пришел к выводу, что данную (мою) разработку никто не использует. Ну, или использует там где нет бухгалтерских итогов. :-)
207. hogik 428 05.01.12 01:45 Сейчас в теме
(206)
Про 1GB.
Лучше поставьте Kernel3x, если в Вашей системе не используются прямые запросы на FoxPro. А потом на "восьмерку"... :-) Думаю, с ADS-ом это пустая трата времени и увеличение рисков поиметь проблемы.
P.S. Хотя, на родном движке, Вашу систему поджидает еще вот эТТо: http://infostart.ru/public/77617/
208. sonirk 05.01.12 02:09 Сейчас в теме
Спасибо огромное, все ясно и доходчиво разъяснили. Пересчет в DBF версии занял около 3х часов. Посмотрю и отпишу, сколько займет в ADS. В любом случае, лучше медленно, но верно. И побыстрее переходить на 8 :)

p.s. В ads версии пересчет занял около 4,5 часов, что теперь более, чем приемлемо. Ошибок нет, работает все хорошо.
209. AdepTcs 03.05.12 02:36 Сейчас в теме
Добрый день. Ваша разработка реально спасла нас. Как то упустили факт разрастания базы и RG328.DBF перерос 2ГБ. По быстродействию немного медленнее терминал-серверной, но быстрее SQL - скорость работы достаточно критична.

Использовали ADS 10.10 (с версией разработки для 9.10)
Перейти сразу не удалось, решили сначала попробовать стандартную выгрузку-загрузку, но загрузка вываливалась с ошибкой файла транзакций, т.к. он разрастался ровно до 4 ГБ и, видимо, запись в него дальше невозможна. Есть ли способ на время первоначальной загрузки отключить журнал транзакций?? или иным способом избежать этой ошибки? В будущем всё же придётся создавать новые периферии :)

В итоге сконвертировали базу при помощи ConvDBF (сначала не смогли так сделать из-за нескольких сетевых на сервере).

Так же попробовали вашу разработку на CB (в режиме ПДБД), но количество памяти на 10 пользователей сильно смутило (а надо 20 хотя бы), зато очень порадовала скорость работы и выгрузка - загрузка прошла без ошибок.

Спасибо :)
210. hogik 428 03.05.12 03:55 Сейчас в теме
(209)
1) "он разрастался ровно до 4 ГБ и, видимо, запись в него дальше невозможна"(с)
На размер файла транзакций нет реального ограничения если используется NTFS. Если только такое ограничение не появилось в версии 10.1. ;-) Я не проверял в этой версии. Но, судя по числу "4 ГБ" у Вас используется FAT32, и в этой файловой системе еще существует ограничение на размер таблиц базы данных (на размер файлов вообще). Лимиты описаны в документации по ADS-у.
2) "Есть ли способ на время первоначальной загрузки отключить журнал транзакций??"(с)
Для отключения транзакций должна быть 100% уверенность в том, что приложение не будет использовать функцию "Откатить транзакцию" (AdsRollbackTransaction). У меня нет такой уверенности в части "стандартной выгрузки-загрузки". Но ускорить конвертирование, при использовании ConvDBF.exe, можно. Для этого надо запускать это приложение в режиме "Local Server". И я могу гарантировать, что ConvDBF.exe не использует "Откатить транзакцию". Теоретически (только теоретически!!!) в этом же режиме "можно" было бы запускать "стандартную выгрузку-загрузку", т.к. "Local Server" не использует и не поддерживает транзакций. И игнорирует все функции работы с транзакцией в приложении.
3) "Так же попробовали вашу разработку на CB (в режиме ПДБД),"(с)
На страничке этой разработки есть объявление от 30.03.2010. Рекомендую его прочесть и если возникнут вопросы - задать их. Допускаю, что я плохо изложил в этом объявлении информацию о проблемах с режимом ПДБД.
4) "количество памяти на 10 пользователей сильно смутило"(с)
В "CodeBase 6.5" есть "ошибка" (несуразность) по выделению оперативной памяти под приложение на машине с большой оперативной памятью. Об этом написано в DBEng32.doc в разделе про ПДБД. И еще про режим ПДБД написано в http://forum.infostart.ru/forum24/topic20588/message423963/#message423963
5) "разрастался ровно до 4 ГБ "(с)
Надеюсь Вы используете http://infostart.ru/public/15364/
211. AdepTcs 03.05.12 05:45 Сейчас в теме
(210)

1. NTFS, про ограничения читал, не встретил ни слова про файл TPS, потому и спросил у Вас :)
2. Ясно, спасибо :)
3,4. Я внимательно прочитал все объявления и полностью все комментарии, прекрасно представляю себе все риски при использовании CB в режиме ПДБД, потому и запустил в итоге на ADS (правда по началу, кажется, ADS и загружала базу в режиме "Local Server", т.к. проблема с несколькими сетевыми не была решена... и тот же ConvDBF не мог найти сервер).
5. А проблема то в этом и была, спасибо еще раз:))
212. dreamadv 136 11.09.16 13:45 Сейчас в теме
А реально прикрутить одностороннюю репликацию ? хотелось бы иметь онлайн бекап на всякий случай, сейчас используется в WMS конфигурации. Не смотря на Raid все равно страшно :)
213. hogik 428 11.09.16 20:45 Сейчас в теме
(212) Андрей (dreamadv).
Вот текст из раздела "Replication Overview" документации по ADS:
"A Data Dictionary is required in order to use replication. For security reasons, replication cannot be used with free connections."(с)
Но, у меня не получилось задействовать "Data Dictionary" в свой разработке из-за особенностей работы с файлами/таблицами базы данных родного движка 1С-а. В частности, отсюда и появились расширение файлов DBF при использовании ADT-формата таблиц. Кроме этого, мне так и удалось реализовать инструмент прямых SQL запросов. Т.к. запросы не работают нормально для "Free Tables".
Если Вы хотите "иметь онлайн бекап"(с), то частично ;-) можно решить эту задачу используя разработку http://infostart.ru/public/86647/ В дополнение к ней я могу, специально для Вас (без "открытой" публикации и при участии Вас в тестировании), доделать программу быстрого копирование только ИБД "1С:Предприятие 7.7" в среде ADS.
214. dreamadv 136 12.09.16 14:08 Сейчас в теме
Спасибо за ответ... но к сожалению бекапы даже каждый час не спасут ситуацию при динамике документов в WMS.
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Бобров
зарплата от 100 000 руб. до 150 000 руб.
Временный (на проект)

Студент (стажер) 1С
Нижний Новгород
зарплата от 25 000 руб.
Полный день

Программист 1С
Санкт-Петербург
зарплата от 120 000 руб.
Полный день

Программист 1С
Нижний Новгород
зарплата до 100 000 руб.
Полный день

Программист 1С
Новосибирск
зарплата от 80 000 руб.
Полный день