La connexion n'est pas associée à une gestion de la connexion.org.jboss.de la ressource.l'adaptateur.jdbc.jdk6.WrappedConnectionJDK6
Je suis de l'utilisation d'Hibernate sur un serveur JBoss. Je reçois le message d'erreur ci-dessous.
L'erreur qui se passe quand j'essaie de me connecter à la base de données pour la deuxième fois dans la même sesssion.
Aussi je reçois le message d'erreur "Fermeture de la connexion pour vous. Veuillez fermer votre connexion".
14:28:37,869 ERROR [HibernateUtil] HibernateException occurred in executeQuery method in HibernateUtil class
org.hibernate.exception.GenericJDBCException: could not execute query
at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:126)
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:114)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
at org.hibernate.loader.Loader.doList(Loader.java:2231)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2125)
at org.hibernate.loader.Loader.list(Loader.java:2120)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:401)
at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:361)
at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1148)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102)
at com.a.amc.dao.utils.HibernateUtil.executeQuery(HibernateUtil.java:154)
at com.a.amc.service.impl.CityServiceImpl.isCityExists(CityServiceImpl.java:142)
at com.a.amc.service.impl.CityServiceImpl.addCity(CityServiceImpl.java:38)
at com.a.amc.web.actions.CityAction.addCity(CityAction.java:50)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
14:28:37,869 ERROR [JDBCTransaction] Could not toggle autocommit
java.sql.SQLException: Connection is not associated with a managed connection.org.jboss.resource.adapter.jdbc.jdk6.WrappedConnectionJDK6@1269ca1
at org.jboss.resource.adapter.jdbc.WrappedConnection.lock(WrappedConnection.java:81)
at org.jboss.resource.adapter.jdbc.WrappedConnection.setAutoCommit(WrappedConnection.java:454)
at org.hibernate.transaction.JDBCTransaction.toggleAutoCommit(JDBCTransaction.java:228)
at org.hibernate.transaction.JDBCTransaction.rollbackAndResetAutoCommit(JDBCTransaction.java:220)
at org.hibernate.transaction.JDBCTransaction.rollback(JDBCTransaction.java:196)
at com.a.amc.dao.utils.HibernateUtil.executeQuery(HibernateUtil.java:159)
at com.a.amc.service.impl.CityServiceImpl.isCityExists(CityServiceImpl.java:142)
at com.a.amc.service.impl.CityServiceImpl.addCity(CityServiceImpl.java:38)
at com.a.amc.web.actions.CityAction.addCity(CityAction.java:50)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
14:28:37,869 ERROR [JDBCTransaction] JDBC rollback failed
java.sql.SQLException: Connection is not associated with a managed connection.org.jboss.resource.adapter.jdbc.jdk6.WrappedConnectionJDK6@1269ca1
at org.jboss.resource.adapter.jdbc.WrappedConnection.lock(WrappedConnection.java:81)
at org.jboss.resource.adapter.jdbc.WrappedConnection.rollback(WrappedConnection.java:496)
at org.hibernate.transaction.JDBCTransaction.rollbackAndResetAutoCommit(JDBCTransaction.java:217)
at org.hibernate.transaction.JDBCTransaction.rollback(JDBCTransaction.java:196)
at com.a.amc.dao.utils.HibernateUtil.executeQuery(HibernateUtil.java:159)
at com.a.amc.service.impl.CityServiceImpl.isCityExists(CityServiceImpl.java:142)
at com.a.amc.service.impl.CityServiceImpl.addCity(CityServiceImpl.java:38)
at com.a.amc.web.actions.CityAction.addCity(CityAction.java:50)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
14:28:37,869 ERROR [CityServiceImpl] Exception occurred in isCityExists method in CityServiceImpl
org.hibernate.TransactionException: JDBC rollback failed
at org.hibernate.transaction.JDBCTransaction.rollback(JDBCTransaction.java:204)
at com.a.amc.dao.utils.HibernateUtil.executeQuery(HibernateUtil.java:159)
at com.a.amc.service.impl.CityServiceImpl.isCityExists(CityServiceImpl.java:142)
at com.a.amc.service.impl.CityServiceImpl.addCity(CityServiceImpl.java:38)
at com.a.amc.web.actions.CityAction.addCity(CityAction.java:50)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
Ce qui pourrait être la cause, et comment puis-je résoudre cette situation?
OriginalL'auteur Rachit Agrawal | 2011-12-07
Vous devez vous connecter pour publier un commentaire.
Cette réponse peut effectivement trop tard puisque vous avez demandé cela il y a un an. mais il permettra d'aider ceux qui vont rencontrer cette erreur à l'avenir.
Votre erreur peut provenaient de différentes sources, mais dans mon cas, son tout sur le délai d'expiration de transaction, certains de la requête peut prendre le temps de sorte que le délai d'attente est de parvenir à hibernate et déclenche une exception. Dans mon cas, ce que j'ai fait a été de définir le délai d'expiration de transaction à plus de valeur. Qui résout mon problème.
Voici un lien utile.
La transaction n'est pas active!
La compréhension JDBC interne délais d'expiration de config
-bravo
OriginalL'auteur Ellie Fabrero
J'ai aussi rencontré ce problème dans un cadre entièrement étrangères pour le délai d'expiration de transaction.
Plus précisément, j'ai eu un bug dans mon code:
... comme vous pouvez le voir le code tente de définir un paramètre, même si la Chaîne SQL ne contient pas de
?
des espaces réservés. Qui a jeté une erreur et apparemment mis le lien dans un éclaté /pu être récupérée état. En tant que tel, au point où mon code de gestion des exceptions a été d'essayer decommit
la connexion avec un simpleconn.commit()
je voudrais obtenir la trace suivant qui est très semblable à la vôtre, même si rien à voir avec les délais d'expiration:Certes, le code de gestion des exceptions devraient avoir essayé de la place
rollback
la connexion, au lieu decommit
-ing, mais ceci est sans rapport avec ce problème, et pour ce que ça vaut, vous auriez encore à voir exactement la même exception, quoique avec un peu différente de trace:Ligne de fond est que cette exception peut-être également être générée lorsque vous essayez de faire quelque chose avec une connexion qui est entré dans une sorte d'erreur /état instable suite à une précédente SQLException. Il n'a pas à être un délai d'attente.
OriginalL'auteur Marcus Junius Brutus
Cela peut se produire lors de la fermeture d'une connexion, et ensuite, en utilisant à nouveau cette connexion.
Imaginer un scénario où pour un haricot appel, au début de la connexion est créée et à la fin de la connexion est fermée. L'opération elle-même utilise la connexion, pour toutes sortes d'opérations CRUD sur une base de données. Quelque part au cours de l'opération, la connexion est fermée et ensuite l'utiliser de nouveau.
En pseudo code:
Maintenant, supposons que quelque part dans
doOperations
vous faites quelque chose comme:L'exception renvoyée est:
Bas de ligne: ne pas fermer un
Connection
et ensuite l'utiliser à nouveau.OriginalL'auteur TT.