Hibernate 在配置的阻塞超时(30000[ms])内没有可用的托管连接

Hibernate 在配置的阻塞超时(30000[ms])内没有可用的托管连接,hibernate,jboss,wildfly,jta,wildfly-10,Hibernate,Jboss,Wildfly,Jta,Wildfly 10,我使用WildFly V 10.1.0和Mysql数据库 我在standalone.xml中的数据源配置中将最大池大小定义为100 但我仍然得到以下例外[1] 我没有看到任何网络问题。我还需要添加哪些其他设置 My persistence.xml <persistence-unit name="adb-persistence-unit" transaction-type="JTA"> <description>Forge Persistence Unit&

我使用WildFly V 10.1.0和Mysql数据库

我在standalone.xml中的数据源配置中将最大池大小定义为100

但我仍然得到以下例外[1]

我没有看到任何网络问题。我还需要添加哪些其他设置

My persistence.xml

<persistence-unit name="adb-persistence-unit"
    transaction-type="JTA">
    <description>Forge Persistence Unit</description>
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <jta-data-source>java:jboss/datasources/testDS</jta-data-source>        
    <shared-cache-mode>ALL</shared-cache-mode>
 <property name="jboss.as.jpa.providerModule" value="org.hibernate:5.2"/>

        <property name="hibernate.c3p0.min_size" value="5" />   
   <property name="hibernate.c3p0.max_size" value="500" />  
<property name="hibernate.c3p0.timeout" value="1800" />     
<property name="hibernate.c3p0.max_statements" value="100" /> 
    <property name="hibernate.c3p0.idle_test_period" value="3000" /> 
    <property name="hibernate.c3p0.acquire_increment" value="5" />  
<property name="hibernate.c3p0.validate" value="false" />
[1]

编辑

数据源

     <datasources>
            <datasource jndi-name="java:jboss/datasources/testDS" pool-name="lobDS" enabled="true" use-java-context="true" use-ccm="true">
                <connection-url>jdbc:mysql://${env.MYSQL_PORT_3306_TCP_ADDR:db.xx.com}:${env.MYSQL_PORT_3306_TCP_PORT:3306}/${env.MYSQL_DATABASE:testdb}?failOverReadOnly=false&amp;maxReconnects=10&amp;zeroDateTimeBehavior=convertToNull&amp;autoReconnect=true&amp;characterEncoding=UTF-8&amp;characterSetResults=UTF-8&amp;useUnicode=true&amp;interactiveClient=true&amp;sessionVariables=storage_engine=InnoDB</connection-url>
                <driver>mysql</driver>
                <pool>
                    <flush-strategy>IdleConnections</flush-strategy>
 <max-pool-size>100</max-pool-size>  
                </pool>
                <security>
                    <user-name>${env.MYSQL_USER:admin}</user-name>
                    <password>${env.MYSQL_PASSWORD:ss_password}</password>
                </security>
                <validation>
                    <check-valid-connection-sql>SELECT 1</check-valid-connection-sql>
                    <background-validation>true</background-validation>
                    <background-validation-millis>60000</background-validation-millis>
                </validation>
            </datasource>

jdbc:mysql://${env.mysql\u PORT\u 3306\u TCP\u ADDR:db.xx.com}:${env.mysql\u PORT\u 3306\u TCP\u PORT:3306}/${env.mysql\u DATABASE:testdb}?failOverReadOnly=false&;maxReconnects=10&;zeroDateTimeBehavior=convertToNull&;自动重新连接=正确&;characterEncoding=UTF-8&;characterSetResults=UTF-8&;useUnicode=true&;interactiveClient=true&;sessionVariables=storage\u engine=InnoDB
mysql
空闲连接
100
${env.MYSQL_USER:admin}
${env.MYSQL\u密码:ss\u密码}
选择1
真的
60000

您的数据源配置看起来如何?作为hibernate.c3p0.*属性被忽略,它正在使用服务器的数据源子系统中定义的数据源。为什么需要会话?(您应该只能使用EntityManager处理持久性)@ctomc我已经提供了我的数据源配置和persistence.xml配置。那么我如何修改我的配置?@JohnDonn我使用criteriaapi(而不是hql)来查询数据库。criteria=getSession().createCriteria(getEntityClass())@Ratha您可以使用EntityManager处理JPA标准。另外,据我所知,在Wildfly中,执行持久性的标准方法是使用JPA和EntityManager,因此我认为最好避免直接使用Hibernate,除非确实有必要。您的数据源配置看起来如何?作为hibernate.c3p0.*属性被忽略,它正在使用服务器的数据源子系统中定义的数据源。为什么需要会话?(您应该只能使用EntityManager处理持久性)@ctomc我已经提供了我的数据源配置和persistence.xml配置。那么我如何修改我的配置?@JohnDonn我使用criteriaapi(而不是hql)来查询数据库。criteria=getSession().createCriteria(getEntityClass())@Ratha您可以使用EntityManager处理JPA标准。另外,据我所知,在Wildfly中,实现持久性的标准方法是使用JPA和EntityManager,因此我认为最好避免直接使用Hibernate,除非确实有必要。
/20/2016 9:52:04 AMCaused by: java.sql.SQLException: javax.resource.ResourceException: IJ000453: Unable to get managed connection for java:jboss/datasources/testDS
10/20/2016 9:52:04 AM   at org.jboss.jca.adapters.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:146)
10/20/2016 9:52:04 AM   at org.jboss.as.connector.subsystems.datasources.WildFlyDataSource.getConnection(WildFlyDataSource.java:66)
10/20/2016 9:52:04 AM   at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:122)
10/20/2016 9:52:04 AM   at org.hibernate.internal.NonContextualJdbcConnectionAccess.obtainConnection(NonContextualJdbcConnectionAccess.java:35)
10/20/2016 9:52:04 AM   at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.acquireConnectionIfNeeded(LogicalConnectionManagedImpl.java:99)
10/20/2016 9:52:04 AM   ... 225 more
10/20/2016 9:52:04 AMCaused by: javax.resource.ResourceException: IJ000453: Unable to get managed connection for java:jboss/datasources/testDS
10/20/2016 9:52:04 AM   at org.jboss.jca.core.connectionmanager.AbstractConnectionManager.getManagedConnection(AbstractConnectionManager.java:656)
10/20/2016 9:52:04 AM   at org.jboss.jca.core.connectionmanager.tx.TxConnectionManagerImpl.getManagedConnection(TxConnectionManagerImpl.java:429)
10/20/2016 9:52:04 AM   at org.jboss.jca.core.connectionmanager.AbstractConnectionManager.allocateConnection(AbstractConnectionManager.java:747)
10/20/2016 9:52:04 AM   at org.jboss.jca.adapters.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:138)
10/20/2016 9:52:04 AM   ... 229 more
10/20/2016 9:52:04 AMCaused by: javax.resource.ResourceException: IJ000655: No managed connections available within configured blocking timeout (30000 [ms])
10/20/2016 9:52:04 AM   at org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreConcurrentLinkedDequeManagedConnectionPool.getConnection(SemaphoreConcurrentLinkedDequeManagedConnectionPool.java:565)
10/20/2016 9:52:04 AM   at org.jboss.jca.core.connectionmanager.pool.AbstractPool.getTransactionNewConnection(AbstractPool.java:699)
10/20/2016 9:52:04 AM   at org.jboss.jca.core.connectionmanager.pool.AbstractPool.getConnection(AbstractPool.java:598)
10/20/2016 9:52:04 AM   at org.jboss.jca.core.connectionmanager.AbstractConnectionManager.getManagedConnection(AbstractConnectionManager.java:590)
10/20/2016 9:52:04 AM   ... 232 more
10/20/
     <datasources>
            <datasource jndi-name="java:jboss/datasources/testDS" pool-name="lobDS" enabled="true" use-java-context="true" use-ccm="true">
                <connection-url>jdbc:mysql://${env.MYSQL_PORT_3306_TCP_ADDR:db.xx.com}:${env.MYSQL_PORT_3306_TCP_PORT:3306}/${env.MYSQL_DATABASE:testdb}?failOverReadOnly=false&amp;maxReconnects=10&amp;zeroDateTimeBehavior=convertToNull&amp;autoReconnect=true&amp;characterEncoding=UTF-8&amp;characterSetResults=UTF-8&amp;useUnicode=true&amp;interactiveClient=true&amp;sessionVariables=storage_engine=InnoDB</connection-url>
                <driver>mysql</driver>
                <pool>
                    <flush-strategy>IdleConnections</flush-strategy>
 <max-pool-size>100</max-pool-size>  
                </pool>
                <security>
                    <user-name>${env.MYSQL_USER:admin}</user-name>
                    <password>${env.MYSQL_PASSWORD:ss_password}</password>
                </security>
                <validation>
                    <check-valid-connection-sql>SELECT 1</check-valid-connection-sql>
                    <background-validation>true</background-validation>
                    <background-validation-millis>60000</background-validation-millis>
                </validation>
            </datasource>