Имя: Пароль:
1C
1С v8
Технологический журнал, собрать данные о падении платформы при работе с COM объектом
0 kanalex
 
16.04.22
13:56
Доброго дня, Коллеги!

Подскажите, как правильно и возможно ли вообще настроить ТЖ так, что бы отловить падение платформы в результате кривой работы СОМ компоненты?
Собственно, проблема была локализована другими средствами, но попытки использовать ТЖ не дали результата, а хотелось бы

Проблема была в получении ответа на запрос через СОМ объект  КлиентSQL = Новый COMОбъект("Microsoft.XMLHTTP");
Передавался кривой запрос... В старых версиях платформы она не падала, отрабатывала Попытка Исключение... или просто не получала ответа и шла дальше.
А сейчас, в 8.3.20 - на этом кривом запросе платформа просто падает.
Соотв, не отрабатывает ни Попытка Исключение, ни в журнале ничего не появляется...
Причем, последние ощущения, что это происходит не только при передаче откровенно кривого запроса, но и при передаче запроса, который не возвращает результата.

Есть возможность настроить ТЖ так, чтобы увидеть в нем место и причины такой ситуации? Или это уже выходит за рамки отработки платформы в ее живом состоянии?
1 VladZ
 
16.04.22
19:15
Оказаться от com и забыть о проблеме
2 ДедМорроз
 
16.04.22
20:21
Если у компоненты проблемы с памятью или вызывается assert,то это заваливает процесс - при этом,он не может это даже перехватить.
Можно,конечно,через Com+ заставить Com-сервнр работать в отдельном потоке,тогда он ничего не завалит,кроме себя,но скорость работы снизится в разы,а в целях отладки можно попробовать.

(1)асинхронный http-запрос обещают в новых версиях платформы,поэтому,от Com отказаться очень сложно,ьак как даже чтобы запустить скачивание в файл в отдельном процессе без окна все равно придется идти на поклон к Shell.Application.
3 kanalex
 
17.04.22
11:44
Поставили вторым кластер той же версии. Запустились под ним...
Картина слегка изменилась, но все равно падает:(

полез сравнить версии СОМ компоненты на разных серверах...
На новом она, посвежее, конечно.
Старый   8.110.14393.4704
а Новый  8.110.17763.1911
Возможно дело в этом:(

Пойду копать, чем можно заменить этот СОМ...

Если есть проверенные пути, подскажите.
4 kanalex
 
18.04.22
04:02
ну что ж...
Решение нашлось в использовании КлиентSQL = Новый COMОбъект("MSXML2.ServerXMLHTTP.6.0");
В свежей версии, даже при не корректном запросе все отрабатывает корректно.
5 ДедМорроз
 
18.04.22
21:10
(4)это объект без проверок безопасности.
Вполне вероятно,что при кривом запросе проверка безопасности вышибает процесс.
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.