IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration Oracle Discussion :

Job non executé - cherche la source du problème


Sujet :

Administration Oracle

  1. #1
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut Job non executé - cherche la source du problème
    Bonjour!

    Sur une base de données Oracle 12 c Entreprise Edition, 12.2.0.1.0 - 64 Bit Production.
    Il y a un job dans un schéma qui est censé tourner toutes les 30 minutes. Il effectue un certain nombre d'actions, dont des actions du type "truncate table ...", "insert into...", rafraichissement de MVs, etc...
    Les départs et fins des actions sont enregistrés dans une table, toutes les erreurs aussi sont censées être catchées et stockées dans une table (jusqu'a preuve du contraire, ça fonctionne).

    Mon problème: pour la deuxième fois cette semaine, je viens de m'apercevoir que le job n'avait pas tourné après un certaine heure et ne tournait plus du tout.
    Par exemple, il a tourné cette nuit a 00:30 AM, et affichait "Next Date" = 1:00:00 AM. Mais aucune execution.
    Rien ne s'est déclenché, le job ne montre aucune erreur (Failures: 0), mais surtout rien n'a été executé.

    Question: comment faire pour trouver ce qu'il se passe et ou dois-je regarder?
    Je ne suis pas DBA, et je n'ai pas accès directement au serveur ou est installée la base de données. Je vais demander au DBA les logs / alerts (en espèrant une réponse...)
    En attendant, il y a t il qqchose que je puisse regarder afin d'essayer de comprendre?

    Note: une fois que le relance "manuellement" le job, il se remets a tourner toutes les 30 minutes, comme espéré. Jusqu'a quand, je ne sais pas...

    Merci d'avance !

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Décembre 2019
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Décembre 2019
    Messages : 1 157
    Points : 1 945
    Points
    1 945
    Par défaut
    Bonjour,

    As-tu vérifié dans la vue ALL_SCHEDULER_JOB_RUN_DETAILS si le job se terminait bien?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select job_name, status, error#, req_start_date, actual_start_date, run_duration, additional_info
    from all_scheduler_job_run_details
    where job_name = 'le_nom_de_ton_job'
    order by log_id desc;

  3. #3
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut
    Salut,

    J'ai oublié de préciser: le job a été créé via DBMS_JOB.SUBMIT.
    Donc, je pense que "ALL_SCHEDULER_JOB_RUN_DETAILS" ne va pas aider, correct?

    Merci
    @+

  4. #4
    Membre chevronné
    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Décembre 2019
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Décembre 2019
    Messages : 1 157
    Points : 1 945
    Points
    1 945
    Par défaut
    En effet. Avec DBMS_JOB aucun suivi possible. Peut-être des infos dans l'alert.log si le job ne peux pas s'exécuter.
    Je te conseille de créer ce job avec DBMS_SCHEDULER. Ce n'est pas compliqué, et tu auras un meilleur suivi.

  5. #5
    Membre émérite
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    1 998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 1 998
    Points : 2 501
    Points
    2 501
    Par défaut
    Petites précisions : DBMS_JOB est deprecated depuis la 12.2, utilise plutôt DBMS_SCHEDULER au lieu d'un vieux package qui n'évoluera plus.
    "The DBMS_JOB package has been deprecated since 12cR2. Oracle 19c takes the demise of the DBMS_JOB package a step further by converting any DBMS_JOB jobs to DBMS_SCHEDULER jobs".
    "The DBMS_JOB package has been superseded by the DBMS_SCHEDULER package. In particular, if you are administering jobs to manage system load, you should consider disabling DBMS_JOB by revoking the package execution privilege for users."

    Tu peux nous donner le code de création de ton job? Si je comprends bien, il ne s'exécute qu'une seule fois et jamais tu n'as eu deux exécutions consécutives, sauf si tu fais une relance manuelle?
    Je pense qu'un de tes paramètres n'est pas bon mais il nous faut ton code pour avancer.

  6. #6
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut
    Citation Envoyé par vanagreg Voir le message
    En effet. Avec DBMS_JOB aucun suivi possible. Peut-être des infos dans l'alert.log si le job ne peux pas s'exécuter.
    Je te conseille de créer ce job avec DBMS_SCHEDULER. Ce n'est pas compliqué, et tu auras un meilleur suivi.
    Citation Envoyé par Ikebukuro Voir le message
    Petites précisions : DBMS_JOB est deprecated depuis la 12.2, utilise plutôt DBMS_SCHEDULER au lieu d'un vieux package qui n'évoluera plus.
    "The DBMS_JOB package has been deprecated since 12cR2. Oracle 19c takes the demise of the DBMS_JOB package a step further by converting any DBMS_JOB jobs to DBMS_SCHEDULER jobs".
    "The DBMS_JOB package has been superseded by the DBMS_SCHEDULER package. In particular, if you are administering jobs to manage system load, you should consider disabling DBMS_JOB by revoking the package execution privilege for users."
    Salut,
    Merci à vous deux. Effectivement, sur ce coup, je dois bien reconnaitre que "on" (je ne suis pas seul sur ce coup) est pas très top.
    Et cette fois, ça pose un problème.
    Je vais refaire ça correctement.

    Citation Envoyé par Ikebukuro Voir le message
    Tu peux nous donner le code de création de ton job? Si je comprends bien, il ne s'exécute qu'une seule fois et jamais tu n'as eu deux exécutions consécutives, sauf si tu fais une relance manuelle?
    Je pense qu'un de tes paramètres n'est pas bon mais il nous faut ton code pour avancer.
    Non, non, il s'execute très bien pendant plusieurs jours et puis tout d'un coup ... " plop " * ... il s'arrête de tourner.
    Je crois que je vais:
    . voir si je peux choper les logs, histoire de voir si il y avait qqchose (pour comprendre)
    . passer sur DBMS_SCHEDULER

    Merci
    @+




    *: je ne suis pas sûr du bruit, c'est tout à fait fictif et sorti de mon imagination

  7. #7
    Membre émérite
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    1 998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 1 998
    Points : 2 501
    Points
    2 501
    Par défaut
    As-tu vu un motif qui se répète lors de l'arrêt de ton job ?
    Si, par exemple, ton job ne s'exécute que pendant les jours de la semaine ou que pendant 10 jours, c'est qu'il a été créé avec une périodicité non infinie.
    Si on avait le code de création du job, on y verrait plus clair

Discussions similaires

  1. Réponses: 18
    Dernier message: 25/09/2008, 09h10
  2. [SQL] Problème de non-execution de requete
    Par Logann dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 18/12/2007, 12h00
  3. erreur non comprise cherche solution
    Par debC++ dans le forum C++
    Réponses: 12
    Dernier message: 17/06/2005, 16h11
  4. css non execute
    Par hunter dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 13/05/2005, 09h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo