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

Sybase Discussion :

[SYBASE ASE 12.5.3]Message d'erreur réutilisable


Sujet :

Sybase

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 79
    Points : 78
    Points
    78
    Par défaut [SYBASE ASE 12.5.3]Message d'erreur réutilisable
    Bonjour,

    J'ai pour habitude d'utiliser les messages d'erreurs réutilisables.

    J'ai voulu rajouter un de ces messages sur une base.

    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
     
     
    /*
    ** Message d'erreur réutilisable
    ** 30001, "Erreur : update table '%1!' failed in database '%2!'."
    */
     
    use mutubatch
    go
     
    select * from sysusermessages where error=30001
     
    if @@rowcount <> 0
    begin
    exec sp_dropmessage 30001
    end
    go
     
    exec sp_addmessage 30001, "Erreur : update table '%1!' failed in database '%2!'."
    go
     
    select * from sysusermessages
    go
    Et voici le message obtenu :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    Msg 225, Level 16, State 3:
    Server 'MUTUDEV', Procedure 'sp_addmessage', Line 226:
    Cannot run query--referenced object (name NAME NOT RECOVERABLE) dropped during
    query optimization.
    (return status = -6)
    Je regarde le détail de l'erreur dans le guide "Troubleshooting and Error Messages"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    Some reasons for this error include:
    The value of the number of open objects configuration parameter is too low.
    A problem exists in Adaptive Server.
    Je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    exec sp_configure "number of open objects"
    go
    J'obtiens

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
     Parameter Name                 Default     Memory Used Config Value
    	 Run Value   Unit                 Type       
     ------------------------------ ----------- ----------- ------------
    	 ----------- -------------------- ---------- 
     number of open objects                 500         782         500 
    	         500 number               dynamic    
     
    (1 row affected)
    (return status = 0)
    Je cherche un peu et je décide de faire la même chose sur la base master du même serveur.
    Aucun problème, le message d'erreur réutilisable est bien créé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    Erreur : update table '<arg1>' failed in database '<arg2>'.
    The message has been inserted.
    (return status = 0)
    Le message est bien dans sysusermessages de master.

    Auriez vous une idée du problème qu'il peut y avoir sur mon autre base sachant que j'ai déjà ajouté des messages d'erreurs avec ce même script dans cette même base ?

    La base est elle corrompue ?

    Merci.

  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
    Je crois que c'était un problème transitoire, lié au niveau de charge (nombre d'utilisateurs, etc) au moment où la requète est passée.

    On peut utiliser "sp_monitorconfig 'all'" pour voir le niveau d'utilisation d'un certain nombre de paramètres (dont "number of open objects"), et ajuster ces paramètres vers le haut si nécessaire.

    ("number of open objects" à 500 est assez bas et il serait peut-être judicieux de le monter).

    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
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 79
    Points : 78
    Points
    78
    Par défaut
    Je tiens à préciser que je suis seul sur le serveur, il n'y a pas d'autres utilisateurs.

    Je suis passé à 5000 mais d'après le résultat sp_monitorconfig le max est 411 donc même à 500 c'était bon je pense.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    use mutubatch
    go
     
    exec sp_monitorconfig "number of open objects"
    go
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Name                      Num_free    Num_active  Pct_act Max_Used    Num_Reuse   
    ----                      ----------- ----------- ------- ----------- ----------- 
    number of open objects           4590         410   8.20          411           0
    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
     
    use mutubatch
    go
     
    /*
    ** Message d'erreur réutilisable
    ** 30001, "Erreur : update table '%1!' failed in database '%2!'."
    */
    select * from sysusermessages where error=30001
    if @@rowcount <> 0
    begin
    exec sp_dropmessage 30001
    end
    go
    exec sp_addmessage 30001, "Erreur : update table '%1!' failed in database '%2!'."
    go
    select * from sysusermessages
    go
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Parameter Name                 Default     Memory Used Config Value Run Value   Unit                 Type       
    --------------                 -------     ----------- ------------ ---------   ----                 ----       
    number of open objects                 500        7840        5000         5000 number               dynamic    
     
    error       uid         description                                                                                                                                             langid      dlevel      
    ----------- ----------- -----------                                     ----------- ----------- 
    error       uid         description                                                                                                                                             langid      dlevel      
    ----------- ----------- -----------                                     ----------- -----------
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    (1 row affected)
    (return status = 0)
    (0 rows affected)
    Server Message:  Number  225, Severity  16
    Server 'MUTUDEV', Procedure 'sp_addmessage', Line 226:
    Cannot run query--referenced object (name NAME NOT RECOVERABLE) dropped during query optimization. 
    (return status = -6)
    (0 rows affected)
    J'obtiens toujours ce message d'erreur.

    Par curiosité j'ai regardé "number of open objects" sur master.

    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
     
    use master
    go
     
    exec sp_configure "number of open objects"
    go
     
    /*
    ** Message d'erreur réutilisable
    ** 30001, "Erreur : update table '%1!' failed in database '%2!'."
    */
    select * from sysusermessages where error=30001
    if @@rowcount <> 0
    begin
    exec sp_dropmessage 30001
    end
    go
    exec sp_addmessage 30001, "Erreur : update table '%1!' failed in database '%2!'."
    go
    select * from sysusermessages
    go
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Parameter Name                 Default     Memory Used Config Value Run Value   Unit                 Type       
    --------------                 -------     ----------- ------------ ---------   ----                 ----       
    number of open objects                 500        7800        5000         5000 number               dynamic    
     
    error       uid         description                                                                                                                                                                                                                                                     langid      dlevel      
    ----------- ----------- -----------                                                                                                                                                                                                                                                     ----------- ----------- 
          30001           1 Erreur : update table '%1!' failed in database '%2!'.                                                                                                                                                                                                                  NULL           0 
     
    error       uid         description                                                                                                                                                                                                                                                     langid      dlevel      
    ----------- ----------- -----------                                                                                                                                                                                                                                                     ----------- ----------- 
          30001           1 Erreur : update table '%1!' failed in database '%2!'.                                                                                                                                                                                                                  NULL           0
    Pour la même configuration "number of open objects", sur master la modification passe bien, par contre elle ne marche pas sur les autres bases.

  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
    Est-ce que tu as chequé l'error log d'ASE?

    Si c'est faisable - fais un arrêt/relance du dataserver.

    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
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 79
    Points : 78
    Points
    78
    Par défaut
    C'est la première chose que j'ai fait et il y a rien.

    Je vais tenter d'obtenir l'autorisation pour faire stop/start du serveur.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 79
    Points : 78
    Points
    78
    Par défaut
    Je viens de faire un arrêt/relance du dataserver.
    J'ai relancé le script et j'ai toujours la même erreur.

  7. #7
    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
    Je suggère d'ouvrir un call avec le support Sybase...

    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

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 79
    Points : 78
    Points
    78
    Par défaut
    Ok, je vais les contacter et je te tiens au courant via le topic.
    Je te remercie pour toutes tes réponses.

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 79
    Points : 78
    Points
    78
    Par défaut
    Enfin la solution :

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    isql -Usa -P -SMUTUDEV
     
    1> use sybsystemprocs
    2> go
     
    1> select name, objspare from sysobjects where type='S'
    2> go
     
     name                           objspare
     ------------------------------ -----------
     sysobjects                               0
     sysindexes                               0
     syscolumns                               0
     systypes                                 0
     sysprocedures                            0
     syscomments                              0
     syssegments                              0
     syslogs                                  0
     sysprotects                              0
     sysusers                                 0
     sysalternates                            0
     sysdepends                               0
     syskeys                                  0
     sysgams                                  0
     sysusermessages                          0
     sysreferences                            0
     sysconstraints                           0
     systhresholds                            0
     sysroles                                 0
     sysattributes                            0
     syspartitions                            0
     systabstats                              0
     sysstatistics                            0
     sysxtypes                                0
     sysjars                                  0
     sysqueryplans                            0
     
    (26 rows affected)
    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
     
    1> sp_configure 'allow updates', 1
    2> go
     
     Parameter Name                 Default     Memory Used Config Value
             Run Value   Unit                 Type
     ------------------------------ ----------- ----------- ------------
             ----------- -------------------- ----------
     allow updates to system tables           0           0           1
                       1 switch               dynamic
     
    (1 row affected)
    Configuration option changed. The SQL Server need not be rebooted since the
    option is dynamic.
    Resulting configuration value and memory use have not changed from previous
    values: new configuration value 1, previous value 1.
    (return status = 0)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    1> use mutubatch
    2> go
     
    1> update sysobjects set objspare=0 where name='sysusermessages'
    2> go
    (1 row affected)
    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
     
    1> sp_configure 'allow updates',0
    2> go
     
     Parameter Name                 Default     Memory Used Config Value
             Run Value   Unit                 Type
     ------------------------------ ----------- ----------- ------------
             ----------- -------------------- ----------
     allow updates to system tables           0           0           0
                       0 switch               dynamic
     
    (1 row affected)
    Configuration option changed. The SQL Server need not be rebooted since the
    option is dynamic.
    Changing the value of 'allow updates to system tables' does not increase the
    amount of memory Adaptive Server uses.
    (return status = 0)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    1> shutdown
    2> go
     
    Server SHUTDOWN by request.
    The SQL Server is terminating this process.
    CT-LIBRARY error:
            ct_results(): network packet layer: internal net library error: Net-Libr
    ary operation terminated due to disconnect
    Relancer le serveur puis ré-exécuter la commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    use mutubatch
    go
     
    /*
    ** Message d'erreur réutilisable
    ** 30001, "Erreur : update table '%1!' failed in database '%2!'."
    */
    exec sp_addmessage 30001, "Erreur : update table '%1!' failed in database '%2!'."
    go
    Le message d'erreur réutilisable est ajouté.

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

Discussions similaires

  1. Sunopsis V4 Sybase ASE : erreur JZ0P1
    Par n.roussaly dans le forum ODI (ex-Sunopsis)
    Réponses: 1
    Dernier message: 20/06/2007, 16h10
  2. Sybase ASE : erreur JZ0P1
    Par n.roussaly dans le forum Sybase
    Réponses: 11
    Dernier message: 20/06/2007, 16h06
  3. Message d'erreur lors de l'installation de ASE 15
    Par coco_zouzou dans le forum Sybase
    Réponses: 1
    Dernier message: 22/05/2007, 18h17
  4. [Sybase ASE 12.5.3] Gestion d'erreur avec @@error
    Par lsone dans le forum Sybase
    Réponses: 5
    Dernier message: 24/07/2006, 22h25
  5. [ASE][T-SQL]Message d'erreur pendant INSERT
    Par Benjamin78 dans le forum Sybase
    Réponses: 3
    Dernier message: 23/03/2006, 10h38

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