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

Outils Sybase Discussion :

SQLBrowser, analyse batch ciblée


Sujet :

Outils Sybase

  1. #1
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut SQLBrowser, analyse batch ciblée
    Bonjour,

    J'ai réussi à faire fonctionner l'analyse batch de SQLBrowser. Mais après avoir chercher dans la documentation, j'ai deux questions sans réponse :

    1. Est-il possible de lui faire analyser uniquement un type d'erreur ? Je n'ai besoin que des MUBC (pour Unbalanced begin tran/commit tran - Misc),
    2. Est-il possible de faire l'analyse sans ouverture de la fenêtre SQLBrowser ?

    Merci.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 307
    Points : 1 828
    Points
    1 828
    Par défaut
    Sous File->Options dans le tab <defects> on peut enabler/disabler la detection de chaque defect.

    Pour l'exec en mode batch je me renseigne...

    Michael
    Michael Peppler
    Membre de TeamSybase - www.teamsybase.com

    "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson

  3. #3
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Merci, je teste de suite

    Et j'ai une autre question sur la détection des fameux MUBC : il trouve plusieurs erreurs de "unbalanced begin tran/commit tran" dans plusieurs procédures stockées. Mais dans certaines, lorsque je les analyse, toutes les transactions se terminent correctement par un commit ou un rollback. Donc SQLBrowser ne prendrait pas en compte les rollback comme fermeture de transaction ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 307
    Points : 1 828
    Points
    1 828
    Par défaut
    Citation Envoyé par dinobogan Voir le message
    Et j'ai une autre question sur la détection des fameux MUBC : il trouve plusieurs erreurs de "unbalanced begin tran/commit tran" dans plusieurs procédures stockées. Mais dans certaines, lorsque je les analyse, toutes les transactions se terminent correctement par un commit ou un rollback. Donc SQLBrowser ne prendrait pas en compte les rollback comme fermeture de transaction ?
    Je pense que si.

    Il doit y avoir un chemin d'exécution théorique dans la proc où le commit ou rollback ne serait pas exécuté. Si tu peux poster un example qui illustre la situation on pourrait peut-être identifier le problème.

    Michael
    Michael Peppler
    Membre de TeamSybase - www.teamsybase.com

    "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson

  5. #5
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Je suis parti d'une procédure détectée comme problématique avec SQLBrowser. En retirant le maximum de code, voici le problème isolé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    CREATE Procedure proc_analyse
        @ETAT varchar ( 4 )= "0200"
    AS
    BEGIN
     
        begin transaction RECHARGEMENT
     
        if @ETAT <> '0200'
        begin
            commit transaction RECHARGEMENT
            goto Erreur
        end
     
        commit transaction RECHARGEMENT
     
        Erreur:
        return 0
    END
    GO
    Avec cette procédure, SQLBrowser détecte une erreur MUBC
    Je pensais qu'une erreur MUBC décrivait une transaction non fermée par commit ou rollback, mais ce n'est manifestement pas le cas

    Pourtant, dans la description de l'erreur MUBC trouvée dans le compte-rendu d'analyse, il est dit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    Unbalanced begin tran/commit tran	Misc
    example
     
    begin tran
    ...
    [no commit/rollback tran]
     
    comment
    Unbalanced begin tran/commit/rollback is bad practice
    consequence
    Bad transaction handling
    fix
    The good template for transactions, in normal Transact-SQL unchained mode is:
     
    proc P
      begin tran
      exec ...
      if [bad_status] goto fail
      update ...
      if @@error != 0 goto fail
      ...
      commit tran
      return [good_status]
    fail:
      rollback tran
      return [bad_status]
    J'aimerais bien qu'on mexplique
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  6. #6
    Membre chevronné

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 307
    Points : 1 828
    Points
    1 828
    Par défaut
    J'ai discutté avec l'auteur de SQLBrowser.

    En fait il compte les BEGIN TRAN et les COMMIT TRAN, sans vraiment prendre en compte les branchements dans le code. Dans ton cas il y a un BEGIN TRAN et deux COMMIT - même si les deux COMMIT ne peuvent pas être exécutés en même temps.

    Parenthèse - il est en principe pas recommendé d'utiliser des transactions nommées (BEGIN TRAN <tran name>) dans des procs stockées. Cela donne l'illusion que les transactions sont indépendantes, ce qui n'est pas le cas.

    Michael
    Michael Peppler
    Membre de TeamSybase - www.teamsybase.com

    "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson

  7. #7
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Citation Envoyé par mpeppler Voir le message
    En fait il compte les BEGIN TRAN et les COMMIT TRAN, sans vraiment prendre en compte les branchements dans le code.
    Après pleins de tests, j'arrivai à peu près à la même conclusion.
    Entre temps, j'ai amélioré mon script, qui prend en compte les branchements, les commentaires...

    En tout cas, merci d'avoir pris de ton temps.

    Je mets "résolu".
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Qu'est ce qu'une analyse fonctionelle
    Par sandrine dans le forum Débats sur le développement - Le Best Of
    Réponses: 22
    Dernier message: 28/02/2015, 19h03
  2. Analyse image cible fléchettes (cercles concentriques)
    Par predalpha dans le forum OpenCV
    Réponses: 8
    Dernier message: 02/11/2014, 01h33
  3. [11gR2] Calcul des stats ciblé dans un batch ?
    Par tropiko dans le forum Oracle
    Réponses: 2
    Dernier message: 22/10/2013, 11h38
  4. [Batch] Analyser une chaine en batch
    Par pignon007 dans le forum Scripts/Batch
    Réponses: 8
    Dernier message: 04/03/2010, 10h43
  5. Outil d'analyse de code
    Par Bloon dans le forum Outils
    Réponses: 8
    Dernier message: 07/08/2007, 09h04

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