Процедура Intersystems Cache для записи информации о процессе в файл в локальной системе?

Я заинтересован в создании подпрограммы, которая будет запрашивать запущенные в данный момент процессы кэширования, а затем записывать эту информацию в файл. Как это можно было сделать в Cache 2008.2?


person MattUebel    schedule 26.07.2010    source источник


Ответы (1)


PERFMON может быть тем, что вы ищете. Это приложение со своим собственным пользовательским интерфейсом, но вы также можете вызывать его функции напрямую, как API.

Проверьте документы Cache для «Руководства по мониторингу кэша». Это даст вам ссылки на документы PERFMON, а также документы для других инструментов мониторинга системы.

Вы можете найти что-то полезное в Справочнике по классам в пакетах %SYSTEM, %SYS и %Monitor.

Для получения некоторой информации о процессе вам может потребоваться раскошелиться на ОС. В этом случае проверьте функцию $ZF. Это позволит вам вызывать команды уровня ОС из кэша.

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

Если вы это сделаете, вы можете использовать Cache SQL для создания любого отчета, который вам нужен. (Кэш автоматически сгенерирует таблицу SQL, соответствующую вашему постоянному классу.) Кэш поддерживает ODBC, поэтому вы можете использовать для этой части внешний инструмент, такой как Crystal Reports или Access.

Очевидно, что это потребует больше работы, чем просто вывод данных в файл, но потребуется какая-то структура, если вы собираетесь делать с этой информацией что-то интересное.

person Clayton    schedule 21.08.2010