These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 1 post ] 
Author Message
 Post subject: Problème de lock sur une base Sybase
PostPosted: Thu Feb 15, 2007 12:08 pm 
Newbie

Joined: Thu Feb 15, 2007 11:50 am
Posts: 3
Bonjour,

je précise que je travaille avec hibernate 3.1, jboss 4.0.5 ou websphere 5.1, et sybase 12.5.0.3.

j'ai un problème assez bizarre : lors de l'insertion d'un objet en base, en utilisant la méthode save de la session, j'ai parfois une exception qui est levée.
Je la catch normalement, je rollback ma transaction.

Malheureusement, malgré le rollback, une transaction bloquante reste active sur ma base, et bloque toutes requêtes qui pourrait se produire par la suite.
J'ai analysé le lock et c'est la requête suivante : select @@tranchained : une requête sur une variable globale de la base. C'est assez étrange.

J'ai réussi à reproduire ce plantage de deux facons, et ca génére à chaque fois le lock :
1) si j'insère un objet dont la clé existe déjà en base, malgré le rollback, le lock est présent avec la requête précisée auparavant.
2) dans certains cas, via l'IHM, des caractères invalides semblent présents dans une chaine et provoquent une levée d'exception pour la raison suivante :
Code:
com.sybase.jdbc2.jdbc.SybSQLException: Error converting client characters into server's character set.  Some character(s) could not be converted.

   at com.sybase.jdbc2.tds.Tds.processEed(Tds.java:2636)
   at com.sybase.jdbc2.tds.Tds.nextResult(Tds.java:1996)
   at com.sybase.jdbc2.jdbc.ResultGetter.nextResult(ResultGetter.java:69)
   at com.sybase.jdbc2.jdbc.SybStatement.nextResult(SybStatement.java:204)
   at com.sybase.jdbc2.jdbc.SybStatement.nextResult(SybStatement.java:187)
   at com.sybase.jdbc2.jdbc.SybStatement.updateLoop(SybStatement.java:1615)
   at com.sybase.jdbc2.jdbc.SybStatement.executeUpdate(SybStatement.java:1598)
   at com.sybase.jdbc2.jdbc.SybPreparedStatement.executeUpdate(SybPreparedStatement.java:89)
   at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2208)


J'aimerais savoir s'il s'agit un bug de l'API ? ca m'étonne puisque je fais mon rollback (je l'ai vérifié au débugger) et que je n'ai trouvé aucun moyen d'y remédier.

Si quelqu'un peut éclairer ma lanterne, merci d'avance.


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 1 post ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.