{message:Parsed configuration file: 'class path resource [mybatisConfig.xml]'}启动卡死
2014-05-07 15:53
447 查看
问题描述:
重新启动一个早已经运行很长时间的项目,当进行到如下进度时,启动卡死,没有抛出任何异常:
从日志中可以看出,一直到11:32,也就是过了47分钟之后,才继续往下启动。
原因分析:
spring加载mybatisCofig.xml,考虑是不是数据库连接问题,查询配置信息如下:
initialSize=10
maxActive=20
maxWait=60000
1.考虑连接数据库连接数问题,经查,数据库连接数有300,已使用还只有100多
2.考虑连接等待时间问题,将maxWait时间改为6000,也就是6s,启动之后还是一样卡死
3,查询dbcp连接配置,增加如下配置,打印dbcp连接日志:
<!--removeAbandoned: 是否自动回收超时连接-->
<property name="removeAbandoned" value="true"/>
<!--removeAbandonedTimeout: 超时时间(以秒数为单位)-->
<property name="removeAbandonedTimeout" value="180"/>
<!--maxWait: 超时等待时间以毫秒为单位 6000毫秒/1000等于60秒-->
同时spring中做相应配置改变。
此时启动,发现启动不再卡死,很快就启动完毕,同时抛出异常。
2014-05-07 11:59:18 [DEBUG] [org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1498)] -- {message:Invoking afterPropertiesSet() on bean with name 'sqlSessionFactory'}
2014-05-07 11:59:19 [DEBUG] [org.apache.ibatis.logging.commons.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:46)] -- {message:Parsed configuration file: 'class path resource [mybatisConfig.xml]'}
AbandonedObjectPool is used (org.apache.commons.dbcp.AbandonedObjectPool@2cea3932)
LogAbandoned: true
RemoveAbandoned: true
RemoveAbandonedTimeout: 10
2014-05-07 12:00:25 [ERROR] [org.apache.ibatis.logging.commons.JakartaCommonsLoggingImpl.error(JakartaCommonsLoggingImpl.java:38)] -- {message:Could not get a databaseId from dataSource}
org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Io 异常: Connection reset)
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1244)
at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:882)
at org.apache.ibatis.mapping.VendorDatabaseIdProvider.getDatabaseProductName(VendorDatabaseIdProvider.java:76)
at org.apache.ibatis.mapping.VendorDatabaseIdProvider.getDatabaseName(VendorDatabaseIdProvider.java:61)
at org.apache.ibatis.mapping.VendorDatabaseIdProvider.getDatabaseId(VendorDatabaseIdProvider.java:49)
at org.mybatis.spring.SqlSessionFactoryBean.buildSqlSessionFactory(SqlSessionFactoryBean.java:445)
at org.mybatis.spring.SqlSessionFactoryBean.afterPropertiesSet(SqlSessionFactoryBean.java:336)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1514)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1452)
证明是数据库本身存在问题,最终重启oracle,解决问题。
重新启动一个早已经运行很长时间的项目,当进行到如下进度时,启动卡死,没有抛出任何异常:
2014-05-07 10:45:23 [DEBUG] [org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:504)] -- {message:Eagerly caching bean 'org.springframework.transaction.annotation.AnnotationTransactionAttributeSource#0' to allow for resolving potential circular references} 2014-05-07 10:45:23 [DEBUG] [org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)] -- {message:Finished creating instance of bean 'org.springframework.transaction.annotation.AnnotationTransactionAttributeSource#0'} 2014-05-07 10:45:23 [DEBUG] [org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)] -- {message:Finished creating instance of bean 'org.springframework.transaction.config.internalTransactionAdvisor'} 2014-05-07 10:45:23 [DEBUG] [org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)] -- {message:Finished creating instance of bean 'dataSource'} 2014-05-07 10:45:23 [DEBUG] [org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1498)] -- {message:Invoking afterPropertiesSet() on bean with name 'sqlSessionFactory'} 2014-05-07 10:45:23 [DEBUG] [org.apache.ibatis.logging.commons.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:46)] -- {message:Parsed configuration file: 'class path resource [mybatisConfig.xml]'} 2014-05-07 11:32:02 [DEBUG] [org.apache.ibatis.logging.commons.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:46)] -- {message:Property 'mapperLocations' was not specified or no matching resources found} 2014-05-07 11:32:02 [DEBUG] [org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:245)] -- {message:Returning cached instance of singleton bean 'org.springframework.transaction.config.internalTransactionAdvisor'} 2014-05-07 11:32:02 [DEBUG] [org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)] -- {message:Finished creating instance of bean 'sqlSessionFactory'}
从日志中可以看出,一直到11:32,也就是过了47分钟之后,才继续往下启动。
原因分析:
spring加载mybatisCofig.xml,考虑是不是数据库连接问题,查询配置信息如下:
initialSize=10
maxActive=20
maxWait=60000
1.考虑连接数据库连接数问题,经查,数据库连接数有300,已使用还只有100多
2.考虑连接等待时间问题,将maxWait时间改为6000,也就是6s,启动之后还是一样卡死
3,查询dbcp连接配置,增加如下配置,打印dbcp连接日志:
<!--removeAbandoned: 是否自动回收超时连接-->
<property name="removeAbandoned" value="true"/>
<!--removeAbandonedTimeout: 超时时间(以秒数为单位)-->
<property name="removeAbandonedTimeout" value="180"/>
<!--maxWait: 超时等待时间以毫秒为单位 6000毫秒/1000等于60秒-->
同时spring中做相应配置改变。
此时启动,发现启动不再卡死,很快就启动完毕,同时抛出异常。
2014-05-07 11:59:18 [DEBUG] [org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1498)] -- {message:Invoking afterPropertiesSet() on bean with name 'sqlSessionFactory'}
2014-05-07 11:59:19 [DEBUG] [org.apache.ibatis.logging.commons.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:46)] -- {message:Parsed configuration file: 'class path resource [mybatisConfig.xml]'}
AbandonedObjectPool is used (org.apache.commons.dbcp.AbandonedObjectPool@2cea3932)
LogAbandoned: true
RemoveAbandoned: true
RemoveAbandonedTimeout: 10
2014-05-07 12:00:25 [ERROR] [org.apache.ibatis.logging.commons.JakartaCommonsLoggingImpl.error(JakartaCommonsLoggingImpl.java:38)] -- {message:Could not get a databaseId from dataSource}
org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Io 异常: Connection reset)
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1244)
at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:882)
at org.apache.ibatis.mapping.VendorDatabaseIdProvider.getDatabaseProductName(VendorDatabaseIdProvider.java:76)
at org.apache.ibatis.mapping.VendorDatabaseIdProvider.getDatabaseName(VendorDatabaseIdProvider.java:61)
at org.apache.ibatis.mapping.VendorDatabaseIdProvider.getDatabaseId(VendorDatabaseIdProvider.java:49)
at org.mybatis.spring.SqlSessionFactoryBean.buildSqlSessionFactory(SqlSessionFactoryBean.java:445)
at org.mybatis.spring.SqlSessionFactoryBean.afterPropertiesSet(SqlSessionFactoryBean.java:336)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1514)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1452)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) Caused by: java.sql.SQLException: Io 异常: Connection reset at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:111) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:145) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:254) at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:386) at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:413) at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:164) at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:34) at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:752) at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38) at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:294) at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1266) at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1240) ... 83 more
证明是数据库本身存在问题,最终重启oracle,解决问题。
相关文章推荐
- springMVC+mybatis 进行单元测试时 main SqlSessionFactoryBean - Parsed configuration file: 'class path resource' 无限的读取xml文件
- junit测试时找不到资源路径java.io.FileNotFoundException: class path resource [config/EBSConfig.xml] cannot be o
- [SSM/Junit]java.io.FileNotFoundException: class path resource [spring-mybatis.xml] cannot be opened
- springMVC+mybatis 进行单元测试时 main SqlSessionFactoryBean - Parsed configuration file: 'class path resource' 无限的读取xml文件
- class path resource [logConfig.xml] cannot be resolved to URL because it does not exist
- Caused by: java.io.FileNotFoundException: class path resource [applicationContext.xml] cannot be ope
- Error creating bean with name 'sqlSessionFactory' defined in class path resource [spring-mybatis.xml
- Invalid bean definition with name 'dataSource' defined in class path resource [spring-mybatis.xml]:
- Caused by: java.io.FileNotFoundException: class path resource [applicationContext.xml] cannot be ope
- java.io.FileNotFoundException: class path resource [META-INF/xfire/services.xml] cannot be opene
- new ClassPathXmlApplicationContext、ClassPathResource出现FileNotFoundException
- 【Bug解决】Spring配置错误:java.io.FileNotFoundException: class path resource [cxd/entity/User.hbm.xml] canno
- java.io.FileNotFoundException: class path resource [applicationContext.xml] cannot be opened because
- filepath = XmlUtils.class.getClassLoader().getResource("users.xml").getPath();无法处理空格( )
- Parsed configuration file: 'class path resource [Configuration.xml]'
- Maven项目启动失败:class path resource [config/spring/] cannot be resolved to URL because it does not exist
- java.io.FileNotFoundException: class path resource [META-INF/xfire/services.xml] cannot be opened b
- 异常解决 java.io.FileNotFoundException: class path resource [spring/applicationContext_*.xml]
- java.io.FileNotFoundException: class path resource [spring/ApplicationCont.xml] cannot be opened be
- Caused by: java.io.FileNotFoundException: class path resource [com/ncs/bean/News.hbm.xml] cannot be