Имя: Пароль:
1C
 
Лечится ли ошибка "out of memory" возникающая при выгрузке xml?
0 IamAlexy
 
08.03.09
21:26
Есть база 7.7
Выгружаю из нее данные для перехода на 8ку.
База не очень большая.. элементов справочника контрагентов имеющих остатки порядка 600 тысяч..

при выгрузке в xml после пары тройки часов вываливается  с "out of memory" причем на компе естественно никакой нехваткой памяти, процессорной мощности или жесткого диска и не пахнет.

вопрос это лечится или придется резать стандартные правила для перевода "по кускам" ?

естественно что платформы все обновлены, релизы и правила последние.
1 ТелепатБот
 
гуру
08.03.09
21:26
2 Злопчинский
 
08.03.09
21:35
гаечки поштучно учитываете?
3 IamAlexy
 
08.03.09
21:36
(2) именно.. и болтики в отдельном справочнике...
мало того в справочнике договоров хранится "левая резьба" один договор и "правая резьба" другой договор...


а по существу мысли есть?
4 Aleksey_3
 
08.03.09
21:48
Только бить, и выгружать частями
5 IamAlexy
 
08.03.09
21:50
(4) угу. просто хотел уточнить.. а то потрачу время а окажется что есть какойнить "обновленный драйвер для xml" который позволяет работать с файлами больше чем 1 гиг.
6 Cap_1977
 
08.03.09
21:50
(0) У тебя валиться XML-парсер, тот который от мелкософта. Валиться он изза того что пытается отожрать больше 2 Гб памяти (он _весь_ формируемый/считывамый xml-файл держит в памяти + его собственные глюки). Попробуй формировать выходной файл вручную - xml этоже по сути текст ))).
7 milan
 
08.03.09
21:54
(6) Скорее всего не удастся выгрузить в последовательный файл, хотя чем черт не шутит.
8 IamAlexy
 
08.03.09
22:01
(7) даже не буду пытаться.
либо по оле выгружу либо правила покоцаю чтобы частями выгружать.. подумаю еще что именно делать...
9 milan
 
08.03.09
22:04
(8) Не по спортивному получается ;)
10 ДенисЧ
 
08.03.09
22:10
поставить 64бит систему и соотв скл.
Написать выгрузку через скл.
и 8ку взять 64бит.
11 IamAlexy
 
08.03.09
22:12
(10) быстрее по оле + лицензии на х64 сервер предприятия нету :)
а система и так х64
12 milan
 
08.03.09
22:15
(11) Сдается мне что по ОЛЕ не быстро 600К контрагентов с остатками выгрузится ;)
13 IamAlexy
 
08.03.09
22:18
(12) ну думаю быстрее чем переписывать правила под SQL + смена платформ на x64 + неясный результат в итоге :)

причем по оле можно запустить в несколько потоков.
1с не занимает все ядра в процессе работы. тоесть на четырехядерном проце можно запустить четыре потока и они будут нормально в полную силу выгружаться :)
14 milan
 
08.03.09
22:21
(13)Под ОЛЕ есть готовая обработка ???

и потом непонятно как бить на части, по буквам алфавита ???
15 IamAlexy
 
08.03.09
22:22
(14) на 80% готовая.
а зачем по оле бить на части?
16 milan
 
08.03.09
22:25
(15)
>>на четырехядерном проце можно запустить четыре потока и они будут нормально в полную силу выгружаться :)
Или 4 раза одно и тоже выгружать ???
17 Cap_1977
 
08.03.09
22:26
(13) "1с не занимает все ядра в процессе работы." - правильно, семерка писалась когда о гипертрейдинге и двухголовости еще не слыхали.
"тоесть на четырехядерном проце можно запустить четыре потока и они будут нормально в полную силу выгружаться :)" - издешь ))) будкт использваться только один камень.
18 IamAlexy
 
08.03.09
22:27
(17) хм. нужно думаешь разные процессы всеравно на первый будут вешаться ?
19 IamAlexy
 
08.03.09
22:29
(16) зачем одно и тоже:
первый выгружает допустим остатки по 62ым счетам
второй допустим по 60ым
третий какойнить там 10ый счет

естественно перед этим предварительно полная синхронизация справочников.
20 Cap_1977
 
08.03.09
22:32
(18) Да. всегда грузиться первый камень. Хочешь чтоб нагрузка распределялась на все: ставь линь (или бсд) поверх нее wmware esx server. на него гостевую вынь 2003; тогда у тебя будут загружены _все_ камни - nix разрулит.
21 milan
 
08.03.09
22:35
(19) Сами по себе остатки - мелочь, там по ссылкам цепляется всякая фигня, вот и растет файл выгрузки.
Как раз >>полная синхронизация справочников.
и занимает большую часть места в выгрузке, они же виноваты в том что для выгрузки в хмл ипользуется DOM.

(20) Закусывать надо. Операционка сама вешает процессы на разные ядра, или как она посчитает нужным. Вот распаралелить один процесс с 1с она не может.
22 IamAlexy
 
08.03.09
22:36
(20) Set Affinity в таск менеджере решает данную проблему без линуха,бсд и вмваре
23 milan
 
08.03.09
22:37
(22) Опять не по спортивному, а так поставил в вмваре линух, там в виртуалбох вин2003 а там и 1с запустил - благодать
24 IamAlexy
 
08.03.09
22:38
(23) тучные, потные, ленивые программисты 1с с отдышкой и пивом далеки от спорта...
25 Cap_1977
 
08.03.09
22:49
(21) Предложенная схема была реализована в Казани, фирмы Прогресс, база РарусАльфаАвто, никак не оптимизированная, только доточенная, юзеров онлайн сидело 60+. железка была "супермикро", 4 гига оперативы, 4 камня. Тянула еще второй DC.
26 milan
 
08.03.09
23:08
(25) Что-то я не понимаю смысл огорода. Один процесс 1С никакой вмваре или линух на несколько потоков никак не разложат. Поднимать линух, на нем вин2003 ... непонятно.
27 IamAlexy
 
08.03.09
23:10
(26) там было поднято три вмваре.
каждому вмваре по ядру
в каждом вмваре по 20 пользователей :)
28 Cap_1977
 
08.03.09
23:10
(26) Смысл огорода в том, что поднимая линух и ставя на него гостевую внь ты уходишь от того что один процесс 1С исполняется на одном камне; линь раскидывает нагрузку по всем процам.
29 Aleksey_3
 
08.03.09
23:12
(27,28) А смысл? Каждый юзер юзает свой процесс 1С. А ОС сама эти процессы раскидывет по ядрам. Поэтому смысл ставить на тормознутую вирт. машину?
30 Cap_1977
 
08.03.09
23:14
(27) думмаю что так настроить было можно ))) но как то архисложно получается )))
(29) юзать то он зюзает. ыопросов нет. о только терминал на винде, в котором сидят пользователи, упорно грузит один камень.
31 Aleksey_3
 
08.03.09
23:15
Ну у меня отдельная машина под 1С и отдельная под терминал, и там и там юзаются все ядра, без извращений. На филиале все во одном, и тоже не замечал, чтобы ядра простаивали.
32 Cap_1977
 
08.03.09
23:19
(31) Установил 2003. Роль назначил: сервер терминалов. Настроил юзерам коннекты к серверу. Установил на серваке 1С. Базы положил локально. Пользователи заходят в 1С, работают. ДЗ выдает загрузку 1-го камня. Что я делаю не так ?
33 Aleksey_3
 
08.03.09
23:24
2003 какой чистый или R2? Сколько юзеров? А если в ручную назначить 1С у юзера другой камень?
34 milan
 
08.03.09
23:28
(32) Что-то делаешь не так, не нужно ставить сервер терминалов, чтобы разные процессы 1с грузили разные ядра. Запусти на локальной машине две одинески и будешь приятно удивлен.
Может что-то там с лицензиями в вин2003 ???
35 Aleksey_3
 
08.03.09
23:34
(32) Так чисто, чтобы мы понимали о чем речь. 1С у 1 юзера под виндоус не может занимать N ядер. 1С однаядерная, т.е. 1 экземпляр = 1 ядро. Но ОС может раскидывать разные экземпляры 1С на разные ядра, т.е. каждый экземпляр 1С будет занимать свое отдельное ядро (в общем случае).
36 milan
 
08.03.09
23:40
(35) В общем случае не обязательно "Каждый экземпляр 1С будет занимать свое отдельное ядро", разложит как посчитает нужным, и не факт что несколько 1с на первом ядре это плохо. На самом деле 1С довольно слабо грузит проц, в основном грузится дисковая подсистема за счет всяких временных ДБФов и прочей ахинеи.
37 Cap_1977
 
08.03.09
23:41
никс раскидывает задачи одного юзера на несколько камней.
38 milan
 
08.03.09
23:44
(37) Ты утверждаешь, что однопоточный процесс никс раскладывает на несколько ядер ???
39 Aleksey_3
 
08.03.09
23:47
(37) При этом тормоза вирт машины сводят этот плюс на нет.
Если бы у тебя было бы 20 камней и 4 юзера, тогда да. Но у тебя и так на каждом камни сидит по 5 юзеров, поэтому смысл раскидывать на то, что уже занято?
40 Cap_1977
 
08.03.09
23:51
(38) таг. в (25) мну указал что твориться если поставить никс. В (32) я задал вопрос. В (37) - вывод. Неявный вывод, но все таки.
1. Где утверждкние ?
2. Смысл ловить меня за язык ? Не работает так как как утверждаю в 25 - я мутаг. Готов сменить картинку в профиле.
3. Что мешает тебе попробывать а не молоть языком ?
41 IamAlexy
 
08.03.09
23:55
лучше бы придумали где взять волшебный_патч_заставляющий_виндовых_xml_понимать_файлы_больше_2GB
42 Cap_1977
 
09.03.09
00:05
(41) звонить в_подддержку_не пользоваться_вынью_взять_в_руки_фзыкпрограммирования. Быть, а не казаться.
43 IamAlexy
 
09.03.09
00:12
(42) см (24)
44 Cap_1977
 
09.03.09
00:17
43 это:
   Перейти Метка;
...
~Метка:
   Сообщить("Сам дурак");

или я чего то не понимаю ?
45 milan
 
09.03.09
00:32
(40) Человеку свойственно ошибаться, как в 25 проверять не стану, ибо лень. Да и никаких рекомендаций от 1с в эту сторону нет. Опять же проверять что вин2003 работает производительнее под вмварью из под никса не хочется.
а то что такая система будет работать я не сомневаюсь.
К тому же тут другая задача.
(41) переписывай под сакс модель выгрузку от 1С ;) тогда будет ограничение только на размер файла на ФС ;)
46 Cap_1977
 
09.03.09
00:34
(45) благодарю
48 romix
 
модератор
09.03.09
04:05
49 НП
 
09.03.09
08:26
(0) Перегружать справочники лучше при помощи COM-соединения. Размер программы -операторов 15-20 плюс по оператору на каждый реквизит справочника. Запускется в режиме транзакций с периодическим завершением и началом транзакции через 200-300 элементов справочника.
50 dk
 
09.03.09
08:53
хм, а 64-битного парсера хмл мелкомягкие не выпустили?
51 w2k3
 
09.03.09
08:57
хм... у меня такая ошибка была не в 1с а просто когда открываешь файл... после перезапуска исчезает.. оказался банально вирус... он перехватывал запрос проги на достаточность памяти и посылал неверный ответ в следствии чего прогама сама по се вылетала!
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс