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 :

Comportement bizarre d'une séquence


Sujet :

Administration Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de al85
    Profil pro
    Inscrit en
    Février 2004
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 158
    Par défaut Comportement bizarre d'une séquence
    Bonjour

    J'ai un ID dans une table qui est alimenté par une séquence.

    Suite à une modification, nous avons décidé d'alimenter cet ID par un numéro incrémenté avec un mécanisme extérieur. Donc la séquence n'a pas été utilisée pendant un certain temps.

    Mais finalement nous sommes revenus sur la séquence. J'ai donc effectué toute une série de select nextval from dual pour que la séquence rattrape son retard et arrive au même niveau que le dernier numéro que nous avions généré nous même.

    Or, depuis ce rattrapage forcé, à chaque fois que nous consommons la séquence, nous obtenons un numéro différent de ce qui est indiqué dans la propriété LAST_NUMBER de la séquence.

    Le résultat obtenu suit toujours la règle :
    numéro obtenu = (LAST_NUMBER - CACHE_SIZE) * 50

    Je précise que l'écriture en base se fait au moyen d'Hibernate, c'est donc lui qui est en charge de consommer la séquence.

    Y-a-t'il une explication logique à ce comportement ?
    Comment faire pour que la séquence retrouve un comportement normal ?

    Merci d'avance.

  2. #2
    Membre expérimenté Avatar de Laurent_du_78
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    138
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Juin 2007
    Messages : 138
    Par défaut
    bonjour,
    - soit ta séquence à un cache important, et à chaque arrêt relance de l'instance tu perds des numéros (ceux dans le cache),
    - soit l'incrément est différent de 1
    - soit le maxvalue est pas terrible (mais cela explique pas la valeur),
    - soit il reste dans ton code Hibernate des nextval inutilisé

  3. #3
    Membre confirmé Avatar de al85
    Profil pro
    Inscrit en
    Février 2004
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 158
    Par défaut
    Le cache est de 20. Même si le mets à 2, j'ai toujours le même problème.

    L'incrément est bien de 1.

    Le max est à 1E27

    Actuellement ma séquence est dans les 24 000, alors que ce que je récupère est plutot dans les 1 200 000. L'écart est trop important pour justifier de nextvals inutilisés. Si hibernate gardait des nextval en mémoire, ça serait flushé quand j'arrête le serveur, mais ce n'est pas le cas.

  4. #4
    Membre confirmé Avatar de al85
    Profil pro
    Inscrit en
    Février 2004
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 158
    Par défaut
    Problème résolu, c'était du à un paramètrage d'hibernate.

  5. #5
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 461
    Par défaut
    Citation Envoyé par al85 Voir le message
    Problème résolu, c'était du à un paramètrage d'hibernate.
    Et lequel ? Ca pourrait resservir aux copains, comme dans l'esprit d'un forum en quelque sorte...

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

Discussions similaires

  1. Comportement bizarre d'une variable dynamique
    Par scoutiste dans le forum Débuter
    Réponses: 4
    Dernier message: 21/08/2013, 13h36
  2. Réponses: 6
    Dernier message: 17/06/2009, 15h11
  3. Réponses: 3
    Dernier message: 10/04/2008, 15h06
  4. [Sybase] Comportement bizarre d'une table
    Par sdozias dans le forum Sybase
    Réponses: 4
    Dernier message: 03/02/2004, 10h39

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