vendredi 17 octobre 2008

Monitoring IFS Applications et dbms_scheduler ( Oracle 10GR2 )

IFS Applications possède une fonctionnalité de monitoring de ses composants ( tâches de fonds, print server, serveur d'applications, ...).
Dans l'outil d'administration, on peut visualiser l'état des différents éléments.
Et via des requêtes SQL, on peut ajouter ses propres alertes.

La planification de l'exécution du monitoring permet d'être alerté si un élément est en dehors des bornes définies via la gestion des évènements.

IFS Applications possède son propre scheduler mais il ne permet pas de planification avancée.
Par exemple, il n'est pas possible de gérer le cas de l'arrêt des services IFS Applications pour une sauvegarde.

Pour contourner le problème, on peut utiliser le package dbms_scheduler.

Pour cela, il faut ajouter le privilège create job à l'utilisateur IFSAPP.

Puis, utilisez le code suivant pour planifier le monitoring :

DECLARE

BEGIN
dbms_scheduler.create_job (
job_name => 'FND1_MONITOR1',
job_type => 'PLSQL_BLOCK',
job_action => 'BEGIN FND_MONITOR_ENTRY_API.PERFORM_MONITORING__; END;',
start_date => SYSTIMESTAMP,
repeat_interval => 'freq=minutely;byhour=03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22;interval=5;byday=MON,TUE,WED,THU,FRI',
end_date => NULL,
enabled => TRUE,
comments => 'Monitoring Foundation1 semaine');
END;
/

Le paramètre repeat_interval => 'freq=minutely;byhour=03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22;interval=5;byday=MON,TUE,WED,THU,FRI' définit une exécution toutes les 5 minutes ( interval = 5 et freq = minutely ) les lundi, mardi, ..., vendredi ( byday=MON,TUE,WED,THU,FRI ) et certaines heures ( byhour=03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22 )

Le suivi du job peut se faire ensuite dans la DBConsole Oracle ( Administration -> Travaux ) ou en effectuant une requête sur la vue USER_SCHEDULER_JOBS.