ORA-27101使用通用连接池

时间:2012-05-22 05:49:07

标签: java oracle jdbc ucp

我目前在我的java服务器应用程序中面对ORA-27101。当它启动时它工作好几天,然后失败出现,应用程序丢失。我只能在日志中看到这些ORA。数据库可能会停机一两个小时。但也是在那段时间之后,应用程序再也没有回来过。重启后一切都很好。

所以我的问题是: 什么导致应用程序的这种行为? 当我的应用程序中出现此异常时,我该怎么办?重启是唯一的方法,还是我可以在应用程序中处理它?<​​/ p>

操作系统是Windows Server 2008,Oracle数据库是11g。我正在使用oracle jdbc驱动程序和通用连接池来管理多个连接。

最后是堆栈跟踪:

java.sql.SQLException: Exception while getting connection: oracle.ucp.UniversalConnectionPoolException: cannot get connection from datasource: java.sql.SQLRecoverableException: ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
           at oracle.ucp.util.UCPErrorHandler.newSQLException(UCPErrorHandler.java:488)
           at oracle.ucp.util.UCPErrorHandler.throwSQLException(UCPErrorHandler.java:163)
           at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:928)
           at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:863)
           at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:855)

1 个答案:

答案 0 :(得分:1)

此错误表示您的数据库已关闭。

  

ORA-01034:ORACLE不可用原因:Oracle未启动。   可能的原因包括:    - SGA需要的空间比为其分配的空间要多。

     
      
  • 指向实例的操作系统变量未正确定义。
  •   
     

操作:请参阅随附的消息,了解可能的原因和   纠正其他消息中提到的问题。如果Oracle有   已初始化,然后在某些操作系统上验证Oracle   是正确的链接。请参阅特定于平台的Oracle文档。

此错误有多种原因:

  1. 服务器崩溃
  2. 某些数据库操作导致数据库处于不稳定状态。
  3. 空间不足