jboss wildfly connexion de source de données à défaut - Pas de connexions gérées disponible dans le délai de blocage configuré
J'ai un jboss wildfly serveur connecté à une base de données mysql via une source de données configuré sur le serveur d'application.
Il hapens un certain temps que la base de données mysql n'est pas accessible pour un montant de temps (netework problème etc...), lorsque le serveur mysql n'est pas accessible-je recevoir dans les journaux du message :
09:42:30,015 ERROR [org.jboss.seam.async.AsynchronousExceptionHandler] (4pm_services_QuartzScheduler_Worker-4) Exception thrown whilst executing asynchronous call: java.
lang.RuntimeException: javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: Cannot open connection
ce qui est attendu comme ton mysql n'est pas disponible à ce moment, le problème est que lorsque le serveur mysql est de nouveau en ligne l'erreur persiste, et le serveur jboss est incapable d'obtenir une valable à partir du pool de connexion.
J'ai:
wildfly 8.1
mysql 5.5
utiliser JPA pour comunicating avec la base de données
ici est la source de données de configuration:
<datasource jta="true" jndi-name="java:jboss/services_DS" pool-name="fourPmDSServices" enabled="true" use-java-context="true">
<connection-url>jdbc:mysql://192.168.10.110:3306/FOUR_PM__SERVICES?useUnicode=true&characterEncoding=UTF-8</connection-url>
<driver>mysql</driver>
<new-connection-sql>select 1</new-connection-sql>
<transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
<pool>
<min-pool-size>1</min-pool-size>
<max-pool-size>5</max-pool-size>
<prefill>true</prefill>
<use-strict-min>false</use-strict-min>
</pool>
<security>
<user-name>*********</user-name>
<password>*********</password>
</security>
<validation>
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/>
<check-valid-connection-sql>select 1</check-valid-connection-sql>
<stale-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLStaleConnectionChecker"/>
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter"/>
</validation>
<statement>
<prepared-statement-cache-size>10</prepared-statement-cache-size>
<share-prepared-statements>true</share-prepared-statements>
</statement>
</datasource>
Et c'est ici la trace de la pile complète de l'erreur:
00:00:00,017 WARN [org.hibernate.util.JDBCExceptionReporter] (4pm_services_QuartzScheduler_Worker-2) SQL Error: 0, SQLState: null
00:00:00,018 ERROR [org.hibernate.util.JDBCExceptionReporter] (4pm_services_QuartzScheduler_Worker-2) javax.resource.ResourceException: IJ000453: Unable to get managed connection for java:jboss/services_DS
00:00:00,018 ERROR [org.jboss.seam.async.AsynchronousExceptionHandler] (4pm_services_QuartzScheduler_Worker-2) Exception thrown whilst executing asynchronous call: java.lang.RuntimeException: javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: Cannot open connection
at si.arctur.fourPmServices.scheduleJobs.QuartzJobBase.executeInternal(QuartzJobBase.java:91) [4pm_services-ejb.jar:]
at si.arctur.fourPmServices.scheduleJobs.QuartzJobBase.schedule(QuartzJobBase.java:76) [4pm_services-ejb.jar:]
at sun.reflect.GeneratedMethodAccessor98.invoke(Unknown Source) [:1.6.0_32]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.6.0_32]
at java.lang.reflect.Method.invoke(Method.java:622) [rt.jar:1.6.0_32]
at org.jboss.seam.util.Reflections.invoke(Reflections.java:22) [jboss-seam.jar:2.2.2.Final]
at org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:32) [jboss-seam.jar:2.2.2.Final]
at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:56) [jboss-seam.jar:2.2.2.Final]
at org.jboss.seam.transaction.RollbackInterceptor.aroundInvoke(RollbackInterceptor.java:28) [jboss-seam.jar:2.2.2.Final]
at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68) [jboss-seam.jar:2.2.2.Final]
at org.jboss.seam.core.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:77) [jboss-seam.jar:2.2.2.Final]
at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68) [jboss-seam.jar:2.2.2.Final]
at org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:44) [jboss-seam.jar:2.2.2.Final]
at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68) [jboss-seam.jar:2.2.2.Final]
at org.jboss.seam.async.AsynchronousInterceptor.aroundInvoke(AsynchronousInterceptor.java:52) [jboss-seam.jar:2.2.2.Final]
at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68) [jboss-seam.jar:2.2.2.Final]
at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:107) [jboss-seam.jar:2.2.2.Final]
at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:185) [jboss-seam.jar:2.2.2.Final]
at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:103) [jboss-seam.jar:2.2.2.Final]
at si.arctur.fourPmServices.scheduleJobs.emailSender.MailChecker_$$_javassist_seam_2.schedule(MailChecker_$$_javassist_seam_2.java) [4pm_services-ejb.jar:]
at sun.reflect.GeneratedMethodAccessor104.invoke(Unknown Source) [:1.6.0_32]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.6.0_32]
at java.lang.reflect.Method.invoke(Method.java:622) [rt.jar:1.6.0_32]
at org.jboss.seam.util.Reflections.invoke(Reflections.java:22) [jboss-seam.jar:2.2.2.Final]
at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:144) [jboss-seam.jar:2.2.2.Final]
at org.jboss.seam.async.AsynchronousInvocation$1.process(AsynchronousInvocation.java:62) [jboss-seam.jar:2.2.2.Final]
at org.jboss.seam.async.Asynchronous$ContextualAsynchronousRequest.run(Asynchronous.java:80) [jboss-seam.jar:2.2.2.Final]
at org.jboss.seam.async.AsynchronousInvocation.execute(AsynchronousInvocation.java:44) [jboss-seam.jar:2.2.2.Final]
at org.jboss.seam.async.QuartzDispatcher$QuartzJob.execute(QuartzDispatcher.java:243) [jboss-seam.jar:2.2.2.Final]
at org.quartz.core.JobRunShell.run(JobRunShell.java:202) [quartz.jar:1.6.0]
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:529) [quartz.jar:1.6.0]
Caused by: javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: Cannot open connection
at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1389) [hibernate-core.jar:3.6.10.Final]
at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1317) [hibernate-core.jar:3.6.10.Final]
at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:255) [hibernate-core.jar:3.6.10.Final]
at si.arctur.fourPmServices.scheduleJobs.emailSender.MailChecker.checkQueue(MailChecker.java:37) [4pm_services-ejb.jar:]
at si.arctur.fourPmServices.scheduleJobs.emailSender.MailChecker.execute(MailChecker.java:26) [4pm_services-ejb.jar:]
at si.arctur.fourPmServices.scheduleJobs.QuartzJobBase$TransactionalWork.work(QuartzJobBase.java:144) [4pm_services-ejb.jar:]
at org.jboss.seam.util.Work.workInTransaction(Work.java:61) [jboss-seam.jar:2.2.2.Final]
at si.arctur.fourPmServices.scheduleJobs.QuartzJobBase.executeInternal(QuartzJobBase.java:89) [4pm_services-ejb.jar:]
... 30 more
Caused by: org.hibernate.exception.GenericJDBCException: Cannot open connection
at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:140) [hibernate-core.jar:3.6.10.Final]
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:128) [hibernate-core.jar:3.6.10.Final]
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66) [hibernate-core.jar:3.6.10.Final]
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:52) [hibernate-core.jar:3.6.10.Final]
at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:449) [hibernate-core.jar:3.6.10.Final]
at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:167) [hibernate-core.jar:3.6.10.Final]
at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:161) [hibernate-core.jar:3.6.10.Final]
at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1700) [hibernate-core.jar:3.6.10.Final]
at org.hibernate.loader.Loader.doQuery(Loader.java:801) [hibernate-core.jar:3.6.10.Final]
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:274) [hibernate-core.jar:3.6.10.Final]
at org.hibernate.loader.Loader.doList(Loader.java:2542) [hibernate-core.jar:3.6.10.Final]
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2276) [hibernate-core.jar:3.6.10.Final]
at org.hibernate.loader.Loader.list(Loader.java:2271) [hibernate-core.jar:3.6.10.Final]
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:459) [hibernate-core.jar:3.6.10.Final]
at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:365) [hibernate-core.jar:3.6.10.Final]
at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196) [hibernate-core.jar:3.6.10.Final]
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1268) [hibernate-core.jar:3.6.10.Final]
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102) [hibernate-core.jar:3.6.10.Final]
at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:246) [hibernate-core.jar:3.6.10.Final]
... 35 more
Caused by: java.sql.SQLException: javax.resource.ResourceException: IJ000453: Unable to get managed connection for java:jboss/services_DS
at org.jboss.jca.adapters.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:137)
at org.hibernate.ejb.connection.InjectedDataSourceConnectionProvider.getConnection(InjectedDataSourceConnectionProvider.java:71) [hibernate-core.jar:3.6.10.Final]
at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:446) [hibernate-core.jar:3.6.10.Final]
... 49 more
Caused by: javax.resource.ResourceException: IJ000453: Unable to get managed connection for java:jboss/services_DS
at org.jboss.jca.core.connectionmanager.AbstractConnectionManager.getManagedConnection(AbstractConnectionManager.java:390)
at org.jboss.jca.core.connectionmanager.tx.TxConnectionManagerImpl.getManagedConnection(TxConnectionManagerImpl.java:368)
at org.jboss.jca.core.connectionmanager.AbstractConnectionManager.allocateConnection(AbstractConnectionManager.java:464)
at org.jboss.jca.adapters.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:129)
... 51 more
Caused by: javax.resource.ResourceException: IJ000655: No managed connections available within configured blocking timeout (30000 [ms])
at org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreArrayListManagedConnectionPool.getConnection(SemaphoreArrayListManagedConnectionPool.java:377)
at org.jboss.jca.core.connectionmanager.pool.AbstractPool.getTransactionNewConnection(AbstractPool.java:495)
at org.jboss.jca.core.connectionmanager.pool.AbstractPool.getConnection(AbstractPool.java:374)
at org.jboss.jca.core.connectionmanager.AbstractConnectionManager.getManagedConnection(AbstractConnectionManager.java:329)
... 54 more
OriginalL'auteur simonC | 2015-01-29
Vous devez vous connecter pour publier un commentaire.
Il semble que vous devez définir une couleur de la stratégie de l'échec à des connexions.
cochez la case "flush-stratégie" param.
Un bon point de départ est ici:
https://docs.jboss.org/author/display/WFLY8/DataSource+configuration
Elles font référence à cette XSD:
http://www.ironjacamar.org/doc/schema/datasources_1_1.xsd
Et le XSD description est ici:
http://www.ironjacamar.org/doc/userguide/1.2/en-US/html_single/index.html#deployingds
Dans votre cas, je voudrais essayer de comprendre les problèmes de réseau.
Indépendamment de cela. Je serais dans ton cas (avec un mauvais problèmes de connexion) rincer ma connexion complète de la piscine:
flush-stratégie => EntirePool
bonne chance pour la fixation d'une étrange question
ne pas oublier la prime 😉 concernant le VPN, peut-être que je peux aider aussi... le Mieux est d'ouvrir une nouvelle question et de fournir les vpn détails.
OriginalL'auteur cilap
Que signifie Le Message " Pas de Connexion administrée Disponibles?
Cela signifie que toutes les connexions à la base de données sont en cours d'utilisation et/ou qu'un thread a de délai d'attente pour une connexion à ouvrir.
Solutions possibles:
Augmenter votre pool de connexion de taille
Ajouter
<max-pool-size>whatever</max-pool-size>
à votre ds.xml fichier pour augmenter
le nombre de connexions disponibles. La valeur par défaut est de 20
Il y a un attribut
MaxConnectionsInUse
visible sur le jmx-console contre la
ManagedConnectionPool
qui peuvent vous aider à comprendre comment beaucoup de connexions vous avez vraiment besoin.
Dites à votre fils à attendre plus longtemps pour une connexion à ouvrir
Ajouter
<blocking-timeout-millis>whatever</blocking-timeout-millis>
à votre ds.xml fichier pour augmenter la longueur de temps d'attente. La valeur par défaut est 30 000 (5000 avant JBoss-3.2.4) milli-secondes.
Assurez-vous de fermer correctement les connexions ouvertes
en augmentant le pool de connexion ne peut pas vous aider. Puisque vous avez déjà ouvert les connexions, qui tentent d'obtenir la connexion à la base de données. Donc, il ne fera qu'augmenter la quantité de connexions ouvertes sur le serveur.
En augmentant le pool de connexion ne se remplissent de nouvelles connexions qui ne peut pas atteindre la base de données. Et dès que les connexions sont de retour, votre base de données aurez à faire beaucoup de travail... je suis un admin et de limiter les demandes de threads simultanés/connexions à la base de données. Donc, la question serait d'autant plus problématique dans le jboss côté.
OriginalL'auteur Harsh
J'ai rencontré ce problème ainsi. Cependant, ma connexion a travaillé brièvement, puis a cessé de fonctionner après un certain nombre de demandes. Il s'est avéré être un unclosed de connexion à la base de données, qui a causé des connexions à être consommés, et finit par épuiser le pool de connexions. Il suffit d'augmenter le pool de connexion de taille ne feront que retarder l'éventuelle erreur. Vous aurez besoin d'identifier où vous avez pas la bonne fermeture de votre connexion afin de résoudre ce problème.
OriginalL'auteur Robert Hines
debug="true" erreur="true" dans la JCA dans standalone-ha.xml
Vérifier qu'il existe dans le jca sous-système et de définir debug="true".
...
...
Puis dans le serveur.journal, il va écrire de si les connexions ne sont pas de clôture avec la trace de la pile du code.
OriginalL'auteur srinivasa dutt pulipaka
J'ai eu un problème similaire que j'ai fixé avec la réponse de @Dures dit. J'ai augmenté la maxpoolsize de 20 à 100 et le problème a disparu.
OriginalL'auteur Rafael Capretz
Causés par: javax.de la ressource.ResourceException: IJ000655: Pas de connexions gérées disponible dans le délai de blocage configuré (30000 [ms])
Dit ce message, qui a configuré la piscine ne peut pas fournir toute connexion à l'intérieur configuré délai de 3sec (3000msec). Votre piscine est trop faible ou vos connexions ne sont pas fermés après utilisation, peut-être l'augmentation de la taille du pool fonctionne.
Également de vérifier que la connexion à proximité de JBoss.
OriginalL'auteur Naman
Causés par: javax.de la ressource.ResourceException: IJ000453: Impossible d'obtenir de connexions gérées pour java:jboss/services_DS
Il semble que le problème est lié à certaines table de base de données et de configuration java comme hbm.xml. Pour chaque Type de Table de paramètre de l'api java ouvre une connexion à une base de données ou en raison de l'environnement de configuration.
Veuillez consulter le lien suivant ici, vous aurez le même problème avec la solution.
https://developer.jboss.org/thread/211940
http://www.coderanch.com/t/556721/JBoss/Jboss-Datasource-configured-correctly-unable
OriginalL'auteur Ranjitsinh