我目前在我的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)
答案 0 :(得分:1)
此错误表示您的数据库已关闭。
ORA-01034:ORACLE不可用原因:Oracle未启动。 可能的原因包括: - SGA需要的空间比为其分配的空间要多。
- 指向实例的操作系统变量未正确定义。
操作:请参阅随附的消息,了解可能的原因和 纠正其他消息中提到的问题。如果Oracle有 已初始化,然后在某些操作系统上验证Oracle 是正确的链接。请参阅特定于平台的Oracle文档。
此错误有多种原因: