使用Proxool连接池连接MYSQL数据库的问题

发布于 2021-11-14 16:50:10 字数 5481 浏览 776 评论 4

应用布属在TOMCAT服务器下运行

错误信息如下:

[2012-09-06 08:14:18][ERROR][Prototyper.java Line:105 (sweep)] Prototype
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
	at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
	at com.mysql.jdbc.Util.getInstance(Util.java:386)
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1013)
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987)
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:982)
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927)
	at com.mysql.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:2291)
	at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2212)
	at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:797)
	at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
	at sun.reflect.GeneratedConstructorAccessor86.newInstance(Unknown Source)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
	at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
	at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:389)
	at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:305)
	at java.sql.DriverManager.getConnection(DriverManager.java:582)
	at java.sql.DriverManager.getConnection(DriverManager.java:154)
	at org.logicalcobwebs.proxool.DefaultConnectionBuilder.buildConnection(DefaultConnectionBuilder.java:39)
	at org.logicalcobwebs.proxool.Prototyper.buildConnection(Prototyper.java:159)
	at org.logicalcobwebs.proxool.Prototyper.sweep(Prototyper.java:102)
	at org.logicalcobwebs.proxool.PrototyperThread.run(PrototyperThread.java:44)
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
	at sun.reflect.GeneratedConstructorAccessor132.newInstance(Unknown Source)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
	at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
	at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1116)
	at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:348)
	at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2385)
	at com.mysql.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:2230)
	... 15 more
Caused by: java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
	at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
	at java.net.Socket.connect(Socket.java:529)
	at java.net.Socket.connect(Socket.java:478)
	at java.net.Socket.<init>(Socket.java:375)
	at java.net.Socket.<init>(Socket.java:218)
	at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:257)
	at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:298)
	... 17 more

我的连接池的配置是:

	<bean id="dataSource" class="org.logicalcobwebs.proxool.ProxoolDataSource">
	    <property name="driver"><value>${jdbc.driverClassName}</value></property>
	    <property name="driverUrl"><value>${jdbc.url}</value></property>
	    <property name="user" value="${jdbc.username}" />
	    <property name="password" value="${jdbc.password}" />
	    <property name="alias" value="Pool_dbname" />
	    <!-- 最小保持的空闲的连接数 -->
	    <property name="prototypeCount" value="2" />
	    <!-- 最大的数据库连接数. -->
	    <property name="maximumConnectionCount" value="100" />
	    <!-- 最小的数据库连接数 -->
	    <property name="minimumConnectionCount" value="2" />
	    <!-- 这是我们可一次建立的最大连接数。那就是新增的连接请求,但还没有可供使用的连接。由于连接可以使用多线程,在有限的时间之间建立联系从而带来可用连接,但是我们需要通过一些方式确认一些线程并不是立即响应连接请求的,默认是10 -->
	    <property name="simultaneousBuildThrottle" value="2" />
	     <!-- 一个线程的最大寿命.  -->
	    <property name="maximumConnectionLifetime" value="28800" />
	    <!-- 如果housekeeper 检测到某个线程的活动时间大于这个数值.它将会杀掉这个线程.所以确认一下你的服务器的带宽.然后定一个合适的值.默认是5分钟 -->
	     <property name="maximumActiveTime" value="20000" />
	     <!-- house keeper 保留线程处于睡眠状态的最长时间,house keeper 的职责就是检查各个连接的状态,并判断是否需要销毁或者创建.  -->
	    <property name="houseKeepingSleepTime" value="3000" />
	    <!-- 如果发现了空闲的数据库连接.house keeper 将会用这个语句来测试 -->
	    <property name="houseKeepingTestSql" value="select CURRENT_DATE" /> 
	</bean>
	

帮忙看看是哪里出错了,谢谢

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

悸初 2021-11-19 00:28:18

学习中!问题解决了吗?我也遇到了

心舞飞扬 2021-11-19 00:03:35

学习中。

永不分离 2021-11-18 18:26:13

请确认:

1.数据库服务器是否启动,从tomcat服务器所在机器是否网络联通?

2.是一直都连不上,还是间断性? 如果是间断性,考虑mysql的连接超时机制

3.请给出jdbc.driverClassName和jdbc.url几个配置信息?

类似:jdbc:mysql://localhost:3306/xxxuseUnicode=true&characterEncoding=utf8

牵你的手,一向走下去 2021-11-15 13:48:12

请确认:

1.数据库服务器是否启动,从tomcat服务器所在机器是否网络联通?

2.是一直都连不上,还是间断性? 如果是间断性,考虑mysql的连接超时机制

3.请给出jdbc.driverClassName和jdbc.url几个配置信息?

类似:jdbc:mysql://localhost:3306/xxxuseUnicode=true&characterEncoding=utf8

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文