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

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

<bean id="baseDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">        <property name="driverClassName" value="${jdbc.driverClassName}"/>        <property name="url" value="${jdbc.url}"/>        <property name="username" value="${jdbc.username}"/>        <property name="password" value="${jdbc.password}"/>        <property name="maxActive" value="${front.datasource.maxActive}" />           <property name="maxIdle" value="30" />           <property name="maxWait" value="1000" />           <property name="defaultAutoCommit" value="true" />           <property name="removeAbandoned" value="true" />           <property name="removeAbandonedTimeout" value="60" />        <property name="validationQuery" value="select 1 from dual "/>        <property name="testOnBorrow" value="true"/>

原来是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(<generated>)        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

 

 

 

    </bean>

 

 

 



































































posted @ 2009-07-03 16:47  Rangerling  阅读(7045)  评论(0编辑  收藏  举报