2009-03-12 8 views
4

Nous développons un site qui est destiné à avoir plusieurs demandes par DEUXIÈMEMENT.-OptimisticLockException en essayant de récupérer les données de postgreSQL

Notre environnement actuel est JavaEE, JBoss 4.2.3, Struts2 pour MVC, Hibernate JPA avec comme ORM et Postgres comme DB.-

Ceci est le scénario: chaque fois qu'une requête arrive à l'une des pages, une action vérifie les informations dans la base de données pour remplir la page demandée (cette info se compose de plusieurs entités, certaines d'entre elles avec des collections cartographiées, certaines paresseuses, d'autres désireuses); tout fonctionne bien jusqu'à ce que nous recevions plusieurs requêtes simultanées (pas assez ... 2 est assez XD), alors hibernate lance une "OptimisticLockException" lors de la récupération de cette information.

La chose la plus drôle à ce sujet est que nous ne lisons que des informations !! N'écrivant jamais !!

Peut-être que nous avons oublié quelque chose ou quelque chose comme ça ... toute aide sera appréciée.

Merci d'avance.

+0

N'importe quel code source? Si vous n'écrivez pas une exception OptimisticLockException ne doit pas être lancée. Donc, il peut s'agir d'une erreur dans le code. – Timo

+0

Cette exception est lancée par hibernate, et malheureusement, il arrive dans de nombreuses pages avec un codage différent. Cela ressemble beaucoup plus à une transaction ou à un problème d'accès aux données de configuration ... = ( –

Répondre

3

Votre contrôle de transaction est peut-être défectueux. Si vous utilisez open-session dans la vue, assurez-vous de mettre la transaction en lecture seule, sinon, si vous faites obj.setXX(), une modification sera apportée et hibernate essaiera de mettre à jour la table. Jetez également un coup d'œil aux configurations de votre stratégie d'isolation des transactions. Finnaly, assurez-vous de mettre en œuvre correctement l'attribut version, ainsi que son mappage; et équivaut à des méthodes de hachage (en particulier lors de l'utilisation de collections).

+1

Ça sonne assez probablement ce qui se passe ... Je commence à détester JPA ... Je me sens comme si c'était une paire de cercueils plus une chaîne avec verrous ultra-sûr et en plus de cela étant en prison, dans ce que je peux faire avec la connexion à la base de données et l'interrogation ... –

Questions connexes