У нас есть устаревшее приложение COBOL, основанное на OpenVMS, для которого у нас нет четкого представления о конфигурации. В этом контексте под «конфигурацией» я имею в виду:
- Какие исполняемые файлы составляют приложение;
- Какие нетронутые исходные файлы соответствуют исполняемым файлам.
Может показаться странным, что 1 выше — это нечто неизвестное, но со временем произошло то, что исполняемые файлы «появлялись и исчезали» (и многие из них до сих пор используются). Информация о том, какие исполняемые файлы составляют приложение, существующее сегодня, неизвестно, поскольку информация о том, какие исполняемые файлы больше не требуются, со временем утеряна. С практической точки зрения, команда добросовестно компилирует все файлы исходного кода и развертывает полученные исполняемые файлы, несмотря на то, что явно есть программы, которые больше не используются.
Само собой разумеется, что не существует формального процесса управления конфигурацией, а исходный код не хранится в системе контроля версий. Поскольку приложение работает на OpenVMS, соответствующая файловая система на основе Files-11 поддерживает старые версии. файлов (включая исходные файлы), и это долгое время было оправданием для того, чтобы не помещать исходный код приложения в систему контроля версий (несмотря на то, что причины использования VCS выходят далеко за рамки простого наличия записи предыдущих версий).
Конечно, есть несколько способов определить конфигурацию, но я хотел бы начать с первого «маленького шага», а именно: определить набор исполняемых файлов, составляющих приложение. Здесь я должен упомянуть, что исполняемые компоненты приложения не ограничиваются образами OpenVMS, но также и командными файлами DCL. Я хотел бы:
- Регистрировать все обращения к изображениям, находящимся в определенном каталоге или наборе каталогов;
- Регистрируйте все вызовы командных файлов, которые находятся в определенном каталоге или наборе каталогов.
Если мы запустим это ведение журнала в нашей производственной системе в течение длительного периода времени, скажем, двух месяцев, мы сможем получить довольно хорошее представление о том, что представляет собой приложение. Вместе с консультацией пользователей мы сможем подтвердить необходимость исполняемых файлов, которые не вызываются.
Я думаю, что у меня есть идея, как сделать 1 выше, хотя я не уверен в специфике, то есть использовать SET/AUDIT
. Вторую часть, на данном этапе, я понятия не имею, как это сделать.
Таким образом, главный критерий для этих усилий заключается в том, чтобы как можно меньшее влияние на существующую систему было получено для получения вышеуказанной информации. Из-за знака вопроса вокруг конфигурации (и полного отсутствия автоматизированных тестов) изменение чего-либо является нервным занятием.
Использование сервисов уровня операционной системы, таких как SET/AUDIT
, позволит узнать, что запускается, без необходимости менять исходный код и/или перекомпилировать что-либо. Итак, мой вопрос многопартийный:
- Это оптимальный способ сделать это на OpenVMS?
- Что мне нужно сделать, чтобы ограничить
SET/AUDIT
просмотром изображений только в определенном каталоге? - Как мне зарегистрировать вызов командного файла без изменения исходных файлов
.COM
? - Чего мне следует ожидать в плане снижения производительности в результате регистрации такой информации?
Lib$Find_Image_Symbol
для выполнения поздней привязки для необязательных код. Вы чувствуете себя счастливым? - person HABO   schedule 26.11.2015