В z / OS CICS можно ли получить результат EMP, выполненного во время TASK, программой COBOL, которая выполнила EMP? - PullRequest
0 голосов
/ 04 апреля 2020

В z / OS я могу определить пользовательскую EMP (точку монитора событий) в CICS MCT (таблица управления монитором). Например, одна EMP может запускать тактовую частоту / таймер ЦП, а другая EMP может останавливать тактовую частоту ЦП. Затем я могу «выполнить» каждый EMP из моей программы COBOL во время ЗАДАЧИ, которая запускает программу. Выполнение EMP «№ 1» запустит часы, а выполнение EMP «№ 2» остановит часы.

Я знаю, что возможное значение часов CPU будет сохранено как часть SMF 110 записей, которые записываются после выполнения ЗАДАЧИ.

Мой вопрос: можно ли получить текущее значение тактовой частоты ЦП в программе COBOL, когда задание еще выполняется?

Если Итак, какое заявление CICS сделает это? и в какую структуру / схему и поле будут извлечены часы?

Причина, по которой я sh узнаю, состоит в том, что я хочу измерить время ЦП, которое требуется для выполнения определенного процесса программа. Один и тот же процесс может выполняться несколько раз в одной задаче, и я хочу использовать одни и те же тактовые частоты процессора для измерения каждый раз, когда выполняется процесс.

Большое спасибо,

Дэнни

1 Ответ

1 голос
/ 06 апреля 2020

EXE C НАБОР CICS COLLECT STATISTICS MONITOR (EIBTASKN) (ADDRESS OF DFHMNTDS) может использоваться для извлечения полей мониторинга работающей задачи - как указал Дэнни в комментарии ниже.

DFHMCT TYPE = макрос EMP с PERFORM = DELIVER может соответствовать вашим целям. Это приводит к тому, что данные класса Performance, накопленные для этой задачи до этой точки, доставляются в буферы мониторинга. См. Документ CICS: https://www.ibm.com/support/knowledgecenter/SSGMCP_5.5.0/reference/resources/macros/mct/emp.html

Если вы используете CICS TS V5.4 или новее, вы можете выделить процесс, который выполняется несколько раз в транзакции. Затем используйте «EXE C CICS RUN TRANSID CHILD», чтобы запустить транзакцию из текущей программы / задачи COBOL, которая запустит процесс как дочернюю задачу с измеряемым для нее процессором. Вы можете получить ответ от дочерней задачи, используя «EXE C CICS FETCH CHILD».

Подробную информацию об использовании двух API см. В статьях в Центре разработчиков CICS: https://developer.ibm.com/cics/category/asynchronous-api/

Спасибо и наилучшие пожелания, Дженни (разработка CICS, IBM Hursley Lab)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...