我们正在使用Wildfly 10,并在standalone-full.xml中配置了JNDI数据源。现在我们已经开始使用Hibernate,但是由于MySQLserver在8小时内关闭了空闲连接,因此我们需要重新启动wildfly服务器。我们没有配置c3p0池。我们是否通过在wildfly的数据源设置中添加任何设置来解决此问题,然后继续使用其池,还是应该开始使用c3p0?
如果建议继续使用现有的wildfly数据源,则如何解决此超时问题而不延长超时时间或不将autoReconnect添加到JDBC URL。
如果我们应该开始使用c3p0,我们如何配置它? 我已经添加了此代码来获取数据源-
DataSource ds_unpooled = DataSources.unpooledDataSource("jdbc:mariadb://localhost:3306/db123",
"user1",
"test1");
Map overrides = new HashMap();
overrides.put("maxStatements", "200"); //Stringified property values work
overrides.put("maxPoolSize", new Integer(50)); //"boxed primitives" also work
// create the PooledDataSource using the default configuration and our overrides
ds_pooled = DataSources.pooledDataSource( ds_unpooled, overrides );
并将c3p0-service.xml放置在\ standalone \ configuration文件夹中-
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE server>
<server>
<mbean code="com.mchange.v2.c3p0.jboss.C3P0PooledDataSource"
name="jboss:service=C3P0PooledDataSource">
<attribute name="JndiName">java:jboss/sample</attribute> <!--same as the one being set in wildfly-standalone-full.xml -->
<attribute name="JdbcUrl">jdbc:mariadb://localhost:3306/db123</attribute>
<attribute name="DriverClass">org.mariadb.jdbc.Driver</attribute>
<attribute name="User">user1</attribute>
<attribute name="Password">test1</attribute>
<depends>jboss:service=Naming</depends>
</mbean>
</server>
此后,我仍然无法连接到数据库,并且没有合适的驱动程序异常-
Caused by: java.sql.SQLException: No suitable driver
at java.sql.DriverManager.getDriver(DriverManager.java:315)
at com.mchange.v2.c3p0.DriverManagerDataSource.driver(DriverManagerDataSource.java:224)
at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:120)
at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:122)
at org.hibernate.internal.NonContextualJdbcConnectionAccess.obtainConnection(NonContextualJdbcConnectionAccess.java:35)
at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.acquireConnectionIfNeeded(LogicalConnectionManagedImpl.java:106)
... 125 more
试图弄清楚如何将驱动程序详细信息传递给c3p0。
感谢您的帮助。
谢谢