IBM Maximo: SQL Queries - CRONTASKS & ESCALATIONS
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)))