IBM Maximo: SQL Queries - CRONTASKS & ESCALATIONS

From Wiki

Por padrão, a Crontask executa uma tarefa em um servidor escolhido aleatoriamente no cluster MXServerCRONnn (se você criou um cluster de servidores Crontask).

As seguintes propriedades controlam onde executar as crontasks:

  • mxe.crontask.donotrun: define os servidores onde você NÃO deseja que a tarefa cron específica seja executada
  • mxe.crontask.donrun: define os servidores onde você deseja que a tarefa cron específica seja executada

Quando uma instância de tarefa cron deve ser executada (determinada na tabela CRONTASKINSTANCE), todos os servidores Maximo em execução e habilitados tentarão executar a tarefa cron. Apenas um servidor será escolhido para executar a tarefa.

O serviço de tarefas cron atualizará a tabela TASKSCHEDULER com as últimas informações de execução. A partir desse momento, o último servidor em que uma tarefa cron foi executada (conforme determinado pela entrada da tabela TASKSCHEDULER) será escolhido. Se o servidor que executou a tarefa cron pela última vez não estiver em execução, outro servidor em execução e habilitado pegará a tarefa cron usando o mesmo processo lógico que a primeira execução da tarefa cron. A tabela TASKSCHEDULER é sempre atualizada com as últimas informações de execução para que o novo servidor se torne o servidor preferido para a tarefa cron.

Crontask/Escalation pode armazenar os tempos de execução da tarefa. Esse recurso é ativado quando marca a caixa de seleção 'Manter histórico' no crontask. Essas informações estão registradas na tabela CRONTASKHISTORY.

Veja também Setting the cron task clean up interval to keep the Maximum Number of Records for Keep History

Manutenção da tabela CRONTASKHISTORY

Crontask/Escalation can store the task execution times. This feature is enable when mark ‘Keep history’ checkbox in crontask. This information is recorded in CRONTASKHISTORY table

I use the following table to define history records and reduce the size of CRONTASKHISTORY table:

Schedule History Records Description
less than 1d 100 -
1d or greater 100 history of the last 100 days (3 months)
1w or greater 10 history of the last 10 weeks (3 months)

Principais tabelas

SQL Queries

Listar o total de crontasks executadas por Ano

select to_char(endtime,'YYYY') as yr, count(1) as cnt
from crontaskhistory
group by to_char(endtime,'YYYY')
order by to_char(endtime,'YYYY') desc

Listar o total de crontasks executadas por Crontask e Instancia

select crontaskname, instancename, count(1) as cnt 
from crontaskhistory
group by crontaskname, instancename
order by cnt desc

Com essa informações podemos melhorar o cleanup da tabela CRONTASKHISTORY. Basta desmarcar a opção Manter Histórico.

Maximo CronTask Monitor SQL

From Maximo CronTask Monitor SQL

Listar as crontasks executados com maior tempo de duração em SEGUNDOS nos últimos 30 dias

select crontaskname, instancename, servername, round((endtime-starttime)*24*60*60) exec_time, starttime, endtime
from crontaskhistory
where activity='ACTION'
and starttime > sysdate - 30
order by exec_time desc

Listar as crontasks executados com maior tempo de duração em MINUTOS nos últimos 7 dias

select crontaskname, instancename, servername, round((endtime-starttime)*24*60) exec_time_min, starttime, endtime
from crontaskhistory
where activity='ACTION'
and starttime > sysdate - 7
order by exec_time desc

Listar as crontasks executados por hora

select extract(hour from (cast(starttime as timestamp))) exec_hour, round(sum(endtime-starttime)*24*60*60,3) exec_time
from crontaskhistory
where activity='ACTION'
and starttime > sysdate - 30
group by extract(hour from (cast(starttime as timestamp)))
order by extract(hour from (cast(starttime as timestamp)))

Ver também