java.sql.SQLException: ORA-01012: not logged on

最近在忙于整合代码.其中的工作主要是把原来的jsp页面,改造成flex的.为了方便开发和测试.使用spring配置了一个简易数据源.配置如下:

<!-- 定义数据源 -->
 <bean id="dataSource"
  class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
  <property name="driverClassName">
  <value>${jdbc.driver}</value>
  </property>
  <property name="url">
  <value>${jdbc.url}</value>
  </property>
  <property name="username">
  <value>${jdbc.username}</value>
  </property>
  <property name="password">
  <value>${jdbc.password}</value>
  </property>
  <property name="initialSize">
  <value>${jdbc.initialSize}</value>
  </property>
  <property name="maxActive">
  <value>${jdbc.maxActive}</value>
  </property>
  </bean>

系统在使用一段时间后,时常出现数据库异常,异常信息如下:

Caused by: java.sql.SQLException: ORA-01012: not logged on

 at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
 at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
 at oracle.jdbc.ttc7.Oopen.receive(Oopen.java:120)
 at oracle.jdbc.ttc7.TTC7Protocol.open(TTC7Protocol.java:586)
 at oracle.jdbc.driver.OracleStatement.<init>(OracleStatement.java:385)
 at oracle.jdbc.driver.OracleConnection.privateCreateStatement(OracleConnection.java:772)
 at oracle.jdbc.driver.OracleConnection.createStatement(OracleConnection.java:712)
 at org.apache.commons.dbcp.DelegatingConnection.createStatement(DelegatingConnection.java:224)
 at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.createStatement(PoolingDataSource.java:205)
 at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:390)
 ... 34 more

参考http://forum.springsource.org/archive/index.php/t-31110.html

的说明是DBCP 数据源的一个bug.DBCP 在数据库中断后,重连数据库方面存在BUG.

更改数据源采用proxool方式,问题解决.

proxool的配置方式可参考以下页面:

http://www.blogjava.net/lizongbo/archive/2006/04/07/39835.html

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值