Related Posts
- Получение логина и пароля техподдержки 1С из базы
- Класс для вывода отчета в Excel
- Счет-фактура для УПП
- Библиотека классов для создания внешней компоненты 1С на C#
- Акт об оказании услуг (со скидками) — внешняя печатная форма для Управление торговлей 11.1.10.86
- Прайс-лист с артикулом в отдельной колонке
все гениальное — просто! Спасибо Вам за эту публикацию, как никогда кстати!
(1) сам несказанно рад. тупил год на решением проблемы, чего только не хотел сделать. А решение вот оно где оказывается.
(2) мне до сих пор стыдно(
Я не только на мисте, я и тут есть
Изредка следил за твоими исканиями по мелькавшим темам. Молодец, у тебя получилось ))
Опять же главное — сделать обмен вида 1 база — 7 баз — 7х10 баз — так и не реализовано, а это очень сильно снижает время выгрузок (если одни и те же данные ходят во много узлов), 7 «промежуточных» баз можно вынести на отдельный сервер, чтобы они не мешали работе основного.
(6) да. но это из пушки по воробьям. Меня устроила выгрузка в пять потоков на 70 точек.
Грузит, конечно, сервак на 100%, но быстро. Терпимо.
Да, спасибо большое за решение. 😉
(5) да, стремлюсь к идеалу.
Что-то не понял как 14 узлов в одну настройку обмена запихнуть??? У меня один узел соответствует одной настройке, потом цикл по справочнику с настройками запускается и стартует последовательно. Правда у меня всего 5 узлов.
(8) не путайте «настройка выполнения обмена» (сюда именно запихиваются 14 узлов) и «настройка обмена»
Хм. Сам как то бился над решением данного вопроса. Fragster, fixin — молодцы.
Вроде бы элементарное решение, сам до него за пару часов додумался, когда проблемы возникли и другие действия не помогали… Но, видимо, не всем сразу в голову может прийти. Молодец что написал в помощь молодым!
(11) а прикинь, я год парился. и не новичок.
кстати, у меня розница переделана была в режим управляемых блокировок. но думаю, что и в обычном режиме должна норм работать.
Что-то все равно не понятно где в спр. «настройка выполнения обмена» указать 14 узлов, узел же указывается в шапке справочника «настройка обмена». Если 70 обменов следовательно 70 элементов справочника «настройка обмена», далее цикл переборка каждого элемента справочника и запуск обмена, или я что-то не понимаю ?
Еще вопрос. У Вас обмен файлами через ФТП ресурс настроен, или как-то по другому? Файлы каждого магазина в отдельной папочке на ФТП ресурсе, или по названиям ищите (если что не так пойдет)? Потом из Розницы в какую базы выгружаете? Просто мне предстоит настроить 15 магазинов розницы РИБ, а потом выгрузку из центрального узла в Комплексную автоматизацию. Хочу все типовыми средствами делать. Думаю как бы на «грабли не наступить».
C настройкой спр. «настройка выполнения обмена» разобрался, почему то табличная часть «Выполняемые действия» была скрыта в демо-базе Розница 1.0
(14) у нас VPN, обмен происходит через расшаренный каталог центрального сервера. То бишь никакого ФТП.
я думаю, что обмен по 1 элементу, это слишком мелко. почему не использовать блоки по 5-10 элементов, найти эту золотую середину? Или тут смысл немного в другом ?
Мир этому дому!
Спасибо за предложенное решение! Думаю скоро пригодится.
(17) лучшее — враг хорошего. И так работает. Вот на 200 не работало. 😉
Ну их нафиг, эти транзакции, рассадник блокировок.
(18) спасибо.
(14) rosinfo1, у нас 12 магазинов, обмен был настроен по http://ftp... выгружал последовательно, параллельно тупило( после этой статьи попробовал — все ок, выгрузказагрузка проходят за 30-40 секунд, тормозов замеченно не было… удачи в настройке!
Наверное не сравнивали время выгрузки при различных настройках 200 и 1? Если сопоставимы тогда гуд.
Мы же делаем выгрузки последовательно растягивается конечно часа на 2-3 (8 точек). Надо попробовать, интересно посмотреть на результат. Больше всего конечно напрягают взаимные блокировки в случае параллельности…
22 магазина файлы ходят эпические, так как картинок много. Супер это решило проблемму.
дед локи ушли
«Не изучал…», «Спросил совета…». Метод тыка, ё-моё.
Лучше б товарищ Fragster сам словил означенные плюсы.
(23) коллеги, давайте относиться к вещам реалистично. Товарищ Фрагстер много знает и спасибо ему за это.
Но если бы я не постарался, вы ды до сих пор не знали, что есть такая методика. Не думаю что в планах товарища Фрагстера было публиковать такую статью на ИС.
Так что плюсы мои заслуженные. 😉
Можете купить мне на пиво обработку за 1000 рублей 🙂
http://infostart.ru/public/197614/
(25) не могу, я бедный.
оказывается все так просто, спасибо за совет
(0)
Без обид конечно, но эта информация давно есть в инете:
«Количество элементов в транзакции» – определяет максимальное число элементов данных, которые помещаются в сообщение в рамках одной транзакции базы данных. Если значение параметра равно 0 (значение по умолчанию), то все данные помещаются в рамках одной транзакции. Такой режим является рекомендуемым, так как гарантирует согласованность данных, помещаемых в сообщение. Но при создании сообщения в многопользовательском режиме могут быть конфликты блокировок между транзакцией, в которой данные помещаются в сообщение, и транзакциями, выполняемыми другими пользователями. Для снижения вероятности возникновения таких конфликтов можно задать значение этого параметра, отличное от значения по умолчанию. Чем меньше значение параметра, тем меньше вероятность конфликта блокировок, но выше вероятность помещения в сообщение несогласованных данных.
Я так понимаю, по фразе «элементов в транзакции при выгрузке данных» в яндексе эта статья на втором месте)))
(28) привет, КЭП. В интернете есть все. Вопрос в том, чтобы применить то что есть в интернете.
Не замечаете своей логической ошибки?
(28) gallam99, Это даже в синтакс помощнике есть, если что…
(30) коллега, я не в первый раз подымаю эту тему. И никто ничего не мог сказать, пока я не провел эксперимент и не внедрил. Одно дело знать, что это влияет на блокировки, другое дело быть уверенным, что будет параллельность.
Так что не надо выдавать неочевидные факты за очевидные.
(29) «Вы год бились по вашим словам», а то что написано в туче материалов не прочитали, досадно.
И второе, прежде чем говорить об этой «супер находке», надо бы предупредить людей о проблеме «согласованности данных», на которую они могут наступить. И должны это учитывать для конкретной ситуации.
У нас был практический опыт организации параллельных загрузок/выгрузок и не только в разрезе периферийных БД, а в размере объектов одной периферийной БД (и это возможно).
Проще было проанализировать на чем у вас блокировка (какой ресурс блокируется) и можно было бы ли его расшить, тем более, что узел присутствует в таблице регистрации изменений (логических проблем быть не должно).
(32) вам проще одно, мне другое. Проблема рассогласования данных решается проще, чем построение хитрых схем параллельности. 😉
Видите ли, на практике все упирается в стоимость решения. Это решение дешевое и довольно надежное.
вообще, при выгрузке данных для узла блокируется только этот узел, так что не вижу проблемы в параллельной выгрузке данных для N-Узлов.
саму проблему ожидания завершения транзакции для одного объекта выгружаемого в N-узлов одновременно не решили :), да это и не под силу в рамках платформы :).
проблема согласованности данных по-моему мнимая, к тому же самоустраняющаяся в следующем сообщении.
Зайдя сюда решил было что вы одно сообщение раздаёте всем узлам, хорошо что не так 🙂
И ещё одно, пока есть процессы выгрузки сообщений, возможно, не стоит начинать приём сообщений? Если данные интенсивно мигрируют не только вертикально, но и горизонтально.
(34) Jogeedae, При определении состава сообщения блокируется вся ТРИ, иначе блокировки при параллельных выгрузках не возникали бы. Это баг, не убирающийся управляемыми блокировкаии. Я пробовал устанавливать режим управляемых блокировок в РИБ Розница — ничего не дало.
Спасибо за проделанную работу. Очень пригодилось!
Вот так вот. На очередном примере подтверждается старинная русская поговорка: «Хорошего понемногу».
Транзакции в небольшом количестве — добро, в большом — уже зло 🙂
Вы такой молодец! объяснили
У меня стоит 200 как у Вас. база слетает по часам. невозможно сделать выгрузки. сбоит
Зачет!!! Сделал как сказано тут, но при выгрузке были блокировки и ничего не выгружалось. Погуглил еще интернет и нашлось решение
1. В конфигураторе сделал Режим управления блокировкой данных Автоматический и управляемый (было Автоматический)
2. На sql выполнил запрос
ALTER DATABASE <ИМЯ БАЗЫ>
SET ALLOW_SNAPSHOT_ISOLATION ON
ALTER DATABASE <ИМЯ БАЗЫ>
SET READ_COMMITTED_SNAPSHOT ON
Не стал разбивать на количество потоков базы, для каждой базы создана отдельная настройка выполнения обмена. В обработке одновременно запускаются все 40 обменов, на серваке 8 потоков выделено. Выгрузка обновлений конфигурации занимает 15 минут, до этого было 90 :)))
(40) молодцом! грамотно применили идею.