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

Hibernate Java Discussion :

Gestion Accès concurent


Sujet :

Hibernate Java

  1. #1
    Membre du Club
    Inscrit en
    Mars 2009
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 93
    Points : 66
    Points
    66
    Par défaut Gestion Accès concurent
    Bonjour,

    J'ai un problème dans mon appli, j'ai de gros traitement qui peuvent prendre des minutes par exemple l'insertion de plus de 30000 lignes (j'utilise le batch insert) durant ce temps là il est impossible d'accèder en lecture à la table même à partir de SQL SERVER si je fais par exemple un select *. donc voici les deux question que je me pose:
    1-comment est ce qu'il est possible de gérer les accès concurrent de telle sorte que si une personne est entrain d'insérer une autre peut consulter (une fois je cherchai un autre sujet concernant hibernate et je suis tombé sur une doc qui traité de version et il y avait un champ qui devait être explicitement nommé version,est ce la solution?)
    2-Si un user est entrain d'insérer ou faire des MAJ sur une table est ce qu'il y a moyen d'obtenir avec hibernate qu'il y a une MAJ ou des insertion en cours dans cette table et ainsi bloquer le deuxième utilisateur d'insérer ou de faire des MAJ sur la même table .


    EDIT: je peux accèder en lecture si je fais select * from table (nolock)

    Cordialement.

  2. #2
    Membre actif Avatar de mOuLi
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2008
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2008
    Messages : 170
    Points : 257
    Points
    257
    Par défaut
    Je te suggère de jeter un coup d’œil aux niveaux d'isolation des transactions (c'est expliqué dans la FAQ JDBC). Avec Hibernate, ça se configure avec le paramètre hibernate.connection.isolation. Par exemple pour lire des données en cours de modifs, tu peux tenter de passer en isolation READ_UNCOMMITED pour faire des Dirty Read (c-a-d lire des données en cours de modification).

    Par contre, tous les SGBD ne traitent pas les niveaux d'isolation de la même manière (par exemple certains empêchent la consultation de données en cours de modif alors que d'autres renvoient la dernière valeur commitée). C'est pourquoi il vaut mieux que tu regardes la doc SQL Server pour déterminer comment réagira précisément ton SGBD.

    En ce qui concerne la "colonne version", c'est un pattern Hibernate (appelé verrou optimiste) pour gérer des accès concurrents en mise à jour. Si tu cherches à traiter de la concurrence sur mise à jour avec de la temporisation, peut-être que tu devrais utiliser des SELECT FOR UPDATE ?

Discussions similaires

  1. Accès concurents
    Par Endymion222 dans le forum Oracle
    Réponses: 7
    Dernier message: 15/12/2005, 17h04
  2. gestion accès concurrent? possible quand on ouvre un fichier
    Par af_airone dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 21/11/2005, 10h02
  3. Accès concurants
    Par John Fullspeed dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 05/11/2004, 09h38
  4. Accès concurent et ActiveX
    Par nico-pyright(c) dans le forum MFC
    Réponses: 3
    Dernier message: 15/06/2004, 15h44
  5. Réponses: 9
    Dernier message: 17/04/2004, 16h32

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