sadovnikov писал(а) 15. Июня 2007 :: 03:38:Все, потеряли человека... Жаль...
Ничего подобного, никто никого не потерял.... НО, не так просто оказалось добиться стабильного вылета.
из 3 выходных косяк вылез только во вторник после 6 часов беспрерывной работы.
Методика тестирования, а точнее даже не тестирования а просто организации обмена:
на филиальном серваке запущена обработка по таймеру (раз в 10 минут выгружать финансовый итог текущего дня, а также те дни фин.результат которого был изменен задним числом по отношению к ТекущейДате)
Соответственно получается стэк (первый пришел - последний ушел) выгрузки :
День 1 - 4 файла по видам отчетности.
День 2 - 4 файла по видам отчетности.
День 3 - 4 файла по видам отчетности.
...
День n - 4 файла по видам отчетности.
Таких клиентов на данный момент запущено 5, то есть все они пытаются передать финансовый результат в консолидированную базу данных.
Соответственно на сервере главной базы запущена Обработка которая опять же по очереди обрабатывает эти файлы пришедшие от клиентов.
В какой-то, неизвестный мне пока, момент СЕРВЕР принимает файлы, а клиенты считают что файл не отправлен.
ВООБЩЕ:
организация следующая
Филиал i:
ОчередьДанных (Тип: ИТЗ в файле на диске, заполняется в момент события изменения задним числом)->
ОчередьОтправки (класс 1С++ с использованием Rik_Inet, отправка данных на сервер главной базы, удаление отправленных данных из ОчередиДанных):
Главная (консолидированная) база:
Получение файлов от филиалов (класс 1С++ в который передаются глобальные методы Rik_Inet, а также отвечает клиенту об успешном получении файлов)
ОчередьЗагрузкиДанных(обработка ,работает по таймеру, которая производит загрузку данных из файлов и запись базу данных, а также заполняет ОчередьПроведения)
ОчередьПроведения (ИТЗ в файле на диске, содержит ссылки на документы требующие перепроведения, работает тоже по таймеру)
Вот так у меня пока сделана Очередь выгрузки к примеру
СерверОбменаTCP - это КОП,
Сервер - объект Структура.
Попытка
Результат = СерверОбменаTCP.КомпонентаАвтообмен.ОтправитьФайл(Сервер.IPАдрес,Сервер.Порт, ИмяФайла, 1, 1, 3);
Если Результат=1 Тогда
//Сообщить("Отправлено");
НомерПозиции = СтэкВыгрузки.НайтиЗначение(ЗначениеСтэка);
СтэкВыгрузки.УдалитьЗначение(НомерПозиции);
Иначе
//<ОжидатьОтвета>, <УдалятьФайл>, <ТаймАут>
КонецЕсли;
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
Тестирование могу производить только на выходных так как серваки в будние дни используются в реальной работе