最近遇到这个Spring datasouces closed的错误:
[admin@server4 ~]$ tail -300 /duitang/logs/usr/crawler/crawler.log
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.duitang.dboss.service.ServiceInvoker.doaccept2(ServiceInvoker.java:127)
... 10 more
Caused by: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: Data source is closed
at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:80)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:573)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:637)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:666)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:674)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:714)
at org.springframework.jdbc.core.JdbcTemplate.queryForList(JdbcTemplate.java:785)
at com.duitang.biz.common.SqlServiceImpl.queryForLong(SqlServiceImpl.java:262)
... 14 more
Caused by: java.sql.SQLException: Data source is closed
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1362)
at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
at com.duitang.common.data.RouterDataSource.getConnection(RouterDataSource.java:103)
at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:111)
at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:77)
... 21 more
ERROR 08-21 10:03:59 item:171 dboss invoke ERROR: url =dboss2://sqlService/queryForLong?q=%5B%22select+id+from+message_messagesource+where+img_src_sum+%3D+%3F%22%2C+%22%5B%5C%22e6e01b2184f47acca40dcfb0476b5d15%5C%22%5D%22%5D
message=500com.duitang.dboss.remote.oio.DbossException: java.lang.reflect.InvocationTargetException
at com.duitang.dboss.service.ServiceInvoker.doaccept2(ServiceInvoker.java:136)
at com.duitang.dboss.service.ServiceInvoker.accept(ServiceInvoker.java:46)
at com.duitang.dboss.remote.nio.DbossServerHandler.messageReceived(DbossServerHandler.java:40)
at org.jboss.netty.channel.SimpleChannelHandler.handleUpstream(SimpleChannelHandler.java:98)
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:560)
at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:796)
at org.jboss.netty.handler.execution.ChannelEventRunnable.run(ChannelEventRunnable.java:69)
at org.jboss.netty.handler.execution.OrderedMemoryAwareThreadPoolExecutor$ChildExecutor.run(OrderedMemoryAwareThreadPoolExecutor.java:307)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.GeneratedMethodAccessor256.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.duitang.dboss.service.ServiceInvoker.doaccept2(ServiceInvoker.java:127)
... 10 more
Caused by: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: Data source is closed
at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:80)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:573)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:637)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:666)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:674)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:714)
at org.springframework.jdbc.core.JdbcTemplate.queryForList(JdbcTemplate.java:785)
at com.duitang.biz.common.SqlServiceImpl.queryForLong(SqlServiceImpl.java:262)
... 14 more
Caused by: java.sql.SQLException: Data source is closed
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1362)
at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
at com.duitang.common.data.RouterDataSource.getConnection(RouterDataSource.java:103)
at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:111)
at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:77)
... 21 more
Caused by: org.springframework.jdbc.UncategorizedSQLException: SqlMapClient operation; uncategorized SQLException for SQL []; SQL state [null]; error code [0];
--- The error occurred in com/duitang/model/mysql/blog/AlbumDO.xml.
--- The error occurred while executing query.
--- Check the select id,status,category,user_id,name,count,like_count,comment_count,album_album.desc,create_datetime from album_album where id =? .
--- Check the SQL Statement (preparation failed).
--- Cause: java.sql.SQLException: Data source is closed; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException:
--- The error occurred in com/duitang/model/mysql/blog/AlbumDO.xml.
--- The error occurred while executing query.
--- Check the select id,status,category,user_id,name,count,like_count,comment_count,album_album.desc,create_datetime from album_album where id =? .
--- Check the SQL Statement (preparation failed).
--- Cause: java.sql.SQLException: Data source is closed
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:83)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
at org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:203)
at org.springframework.orm.ibatis.SqlMapClientTemplate.queryForObject(SqlMapClientTemplate.java:268)
at com.duitang.model.mysql.AlbumDAO.findById(AlbumDAO.java:28)
at com.duitang.biz.blog.impl.AlbumQueryServiceImpl.findAlbum(AlbumQueryServiceImpl.java:533)
原因是远程服务已经退出。