Имя: Пароль:
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)это объект без проверок безопасности.
Вполне вероятно,что при кривом запросе проверка безопасности вышибает процесс.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший