zhouu 发表于 2015-8-2 07:55:55

org.apache.commons.dbcp.BasicDataSource连接池创建时发生的问题

  
  在配置连接池时多配置了一项验证:

                                                                                                                 
  原来是mysql数据库时配置的validationQuery值是select 1
  改成Oracle时应该修改为 select 1 from dual,刚开始没有发现,报出了很多未找到要求的 FROM 关键字 的错误,
  报错如下,类似

  
  
  org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session for transaction; nested exception is org.hibernate.exception.GenericJDBCException: Cannot open connectionCaused by: org.hibernate.exception.GenericJDBCException: Cannot open connection      at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)      at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)      at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)      at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29)      at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:420)      at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144)      at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:119)      at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:57)      at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1326)      at org.springframework.orm.hibernate3.HibernateTransactionManager.doBegin(HibernateTransactionManager.java:510)      at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:349)      at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:259)      at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:102)      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)      at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:628)      at com.tsinghuatec.security.service.impl.FrontPermissionDetailsServiceImpl$$EnhancerByCGLIB$$4da294ed.initPermissionCache()      at com.tsinghuatec.security.intercept.web.FrontDBFilterInvocationDefinitionSource.lookupAttributes(FrontDBFilterInvocationDefinitionSource.java:84)      at org.acegisecurity.intercept.web.AbstractFilterInvocationDefinitionSource.getAttributes(AbstractFilterInvocationDefinitionSource.java:45)      at org.acegisecurity.intercept.AbstractSecurityInterceptor.beforeInvocation(AbstractSecurityInterceptor.java:239)      at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:104)      at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)      at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)      at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:110)      at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)      at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)      at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)      at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:217)      at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)      at org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:106)      at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)      at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:229)      at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)      at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:148)      at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)      at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)      at com.tsinghuatec.frontframework.web.StaticFilter.doFilter(StaticFilter.java:94)      at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)      at com.tsinghuatec.common.utils.ContextFilter.doFilterInternal(ContextFilter.java:47)      at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)      at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)      at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)      at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)      at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)      at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3229)      at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)      at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)      at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2002)      at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1908)      at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1362)      at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)      at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (ORA-00923: 未找到要求的 FROM 关键字)      at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1225)      at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)      at com.tsinghuatec.common.persistence.MultiDataSource.getConnection(MultiDataSource.java:35)      at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:81)      at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:417)      ... 46 more
  
  
  
  
  
  
  
页: [1]
查看完整版本: org.apache.commons.dbcp.BasicDataSource连接池创建时发生的问题