Имя: Пароль:
1C
1С v8
Web-Сервис... непонятная ошибка
0 Мистикан
 
20.10.15
06:33
При большом количестве в ответе сервиса (более 3000 элементов) вылетает ошибка.

Ошибка SOAP сервера:  Неизвестная ошибка. bad allocation.

перенес платформу с сервисами на другую машину с 8gb оперативки.. тот же результат.

Запрос рабочий. проверенно ограничением выборки до 2000 элементов при формировании ответа сервиса.
1 Мистикан
 
20.10.15
06:35
Описание сервиса. Синхронизация Управленческой базы с мобильной платформой, первая выгрузка.
2 magicSan
 
20.10.15
07:10
8 ггов стало многго чтоли ...
3 Мистикан
 
20.10.15
07:12
тож не понимаю... 3000 (контрагенты) и на 4гб норм выгружается. а 5500 (контактные лица) и на 8 не хочет.
я вот думаю а апач 32 на это не влияет ли случаем
4 magicSan
 
20.10.15
07:12
нук у тя размер контейнеров то какой?
5 magicSan
 
20.10.15
07:12
контактные там и телефоны наверное
6 magicSan
 
20.10.15
07:14
а файл подкачки резиновым пробывал делать?
7 Мистикан
 
20.10.15
07:19
хмлсхема-строка, булево, инт.. вроде ничего сверхестественного. Да, адреса,телефоны,наименования,GUID...
ща попробую файл подкачки сделать больше
8 Мистикан
 
20.10.15
07:31
16гб файл подкачки = тот же результат. оперативу всю не съедает.. пик на +1гб и ошибка
9 Мистикан
 
20.10.15
07:48
пипец...
в регистре сведений контактная информация записи телефонов (моб,раб) хранятся в 2 различных записях, в запросе я сделал попростенькому, 2 соединения к регистру без временных таблиц. так отрабатывало быстрее. на уровне платформы косяка нет, но веб сервис загинается (

проблема решена
10 magicSan
 
20.10.15
08:35
в чем было то ???
11 Мистикан
 
20.10.15
11:30
"ВЫБРАТЬ ПЕРВЫЕ 2000
        |   КонтактныеЛица.Ссылка,
        |   КонтактныеЛица.Наименование,
        |   КонтактныеЛица.Должность,
        |   КонтактныеЛица.Роль,
        |   КонтактнаяИнформация.Представление КАК Рабочий,
        |   КонтактнаяИнформация1.Представление КАК Мобильный
        |ИЗ
        |   Справочник.КонтактныеЛица КАК КонтактныеЛица
        |       ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
        |       ПО КонтактныеЛица.Ссылка = КонтактнаяИнформация.Объект
        |       ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация1
        |       ПО (КонтактныеЛица.Ссылка = КонтактнаяИнформация.Объект)
        |ГДЕ
        |   КонтактнаяИнформация.Вид = &Рабочий
        |   И КонтактнаяИнформация1.Вид = &Мобильный";

С таким запросом веб сервис возвращает ошибку.



"ВЫБРАТЬ
        |    КонтактныеЛица.Ссылка,
        |    КонтактныеЛица.Наименование,
        |    КонтактныеЛица.Должность,
        |    КонтактныеЛица.Роль,
        |    КонтактнаяИнформация.Представление КАК Рабочий
        |ПОМЕСТИТЬ Временная
        |ИЗ
        |    Справочник.КонтактныеЛица КАК КонтактныеЛица
        |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
        |        ПО КонтактныеЛица.Ссылка = КонтактнаяИнформация.Объект
        |ГДЕ
        |    КонтактнаяИнформация.Вид = &Рабочий
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    Временная.Наименование,
        |    Временная.Роль,
        |    Временная.Должность,
        |    Временная.Рабочий,
        |    Временная.Ссылка,
        |    КонтактнаяИнформация.Представление КАК Мобильный
        |ИЗ
        |    Временная КАК Временная
        |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
        |        ПО Временная.Ссылка = КонтактнаяИнформация.Объект
        |ГДЕ
        |    КонтактнаяИнформация.Вид = &Мобильный";

А с этим все нормально
12 Мистикан
 
20.10.15
11:30
первый запрос без "ПЕРВЫЕ 2000"
13 Мистикан
 
20.10.15
11:32
видимо при двойном соединении в регистру с 20000+ записей веб сервису становилось плохо.

Хотя первый вариант запроса отрабатывает быстрее второго
14 DmitrO
 
20.10.15
11:34
(8) сервер 1С небось 32-битный?
15 Гёдза
 
20.10.15
11:35
Апач 32
16 Serginio1
 
20.10.15
11:42
(12) Передавай как ХранилищеЗначение с максимальным сжатием
17 Serginio1
 
20.10.15
11:48
16 + Кстати такой подход используют и в БП
Процедура ДоставитьСообщенияПолучателю(КонечнаяТочка, Знач Сообщения)
    
    Поток = "";
    
    ОбменСообщениямиВнутренний.СериализоватьДанныеВПоток(Сообщения, Поток);
    
    ОбменСообщениямиПовтИсп.WSПроксиКонечнойТочки(КонечнаяТочка, 10).DeliverMessages(ОбменСообщениямиВнутренний.КодЭтогоУзла(), Новый ХранилищеЗначения(Поток, Новый СжатиеДанных(9)));
    
КонецПроцедуры
18 Мистикан
 
21.10.15
09:43
(14) какой сервер... файловая =)