我目前在我的java服务器应用程序中面对ORA-27101。启动时,它工作正常几天,然后出现故障并且应用程序丢失。我只能在日志上看到这些 ORA。数据库可能关闭了一两个小时。但在那段时间之后,该应用程序再也没有恢复使用。重新启动后,一切都很好。
所以我的问题是:是什么导致了应用程序的这种行为?当此异常出现在我的应用程序中时,我该怎么办?重新启动是唯一的方法,还是我可以在应用程序中处理此问题?
操作系统是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)
此错误表示数据库已关闭。
ORA-01034:甲骨文不可用 原因:甲骨文未启动。 可能的原因包括: - SGA需要的空间比分配给它的空间要多。
- 指向实例的操作系统变量定义不正确。
操作:请参阅随附的消息以了解可能的原因和 更正其他消息中提到的问题。如果甲骨文有 已初始化,然后在某些操作系统上验证 Oracle 已正确链接。请参阅特定于平台的 Oracle 文档。
此错误有多种原因:
- 服务器崩溃
- 某些数据库操作导致数据库处于不稳定状态。
- 没有足够的空间