May 20th, 2010

UML. ДЗ 3.

Рисуем диаграмму последовательностей для выбранного примера.

Подсказка. Если вы в StarUML добавите sequence диаграмму в модель (справа вверху, model explorer), в которой уже есть диаграмма классов или объектов, то вы сможете перетаскивать на нее уже созданные ранее классы или объекты непосредственно из самой модели.

О винде - таки счастливый конец :)

Начало - тут

Обратился значит я в техсаппорт, и через несколько дней саппорт начал помогать.

Начали они, конечно же, с отметания "ламерских" вариантов, которые правда отпали достаточно быстро, и спустя еще пару дней я уже сидел на телефоне с челом из техсаппорта, подключившегося при этом ремоут десктопом к моему компу.

Заняло все "всего лишь" три часа :) За это время я ознакомился с дебаггером под винду (windows debugging tools) и узнал, что таблицы символов к винде можно бесплатно скачать с сайта микрософта :)

Дебаггер сузил проблему, но все равно не указал ее суть. Чел из техподдержки, просматривая результаты, несколько раз полувслух сказал, что похоже им надо меньше прятать коды ошибок и сообщать их "наружу" сразу по мере возникновения :)

В итоге все опять закончилось почти ничем - чел, запустив логгер всех событий, "поймал" в него возникающую ошибку и удалился его изучать :)

Еще через пару дней пришло очередное письмо, что они нашли настоящий код ошибки: 80040154, что означает REGDB_E_CLASSNOTREG, и в качестве решения набрать в командной строке "wscript –regserver"

Ага, было бы слишком просто :) Не помогло. Следующим шагом стала загрузка еще одного монитора: http://technet.microsoft.com/en-gb/sysinternals/bb896645.aspx (кстати, интересная тулзовина!) и запись лога возникновения ошибки.

На этот раз в 6 мегабайтном логе (сгенерированном менее чем за пару секунд!) был найден виновник!!! Wscript валился, не найдя вот такой вот ключ в реестре:

HKCU\Software\Classes\CLSID\{0D43FE01-F093-11CF-8940-00A0C9054228}

который со слов техсаппорта отвечал за сервис SCRRUN.DLL

Последняя рекомендация набрать в командной строке "regsvr32 scrrun.dll" решила проблему!

Единственное, что осталось неясным - так это почему этот процесс вдруг изчез из системы...

Что же, признаю, что техсаппорт у Микрософта вполне себе работает, по крайней мере, в корпоративном сегменте, поскольку делал я все это от имени компании, достаточно плотно с Микрософтом сотрудничающей и много чего у них покупающей...

Но БЛИН насколько бы было все проще, если бы вместо "ActiveX component can't create object" винда выдавала бы "scrrun.dll not registered"! Ведь ВСЯ информация об ошибке была, но была спрятана в "недрах" операционки и без дополнительных инструментов недоступна "простым смертным"...