使用Tomcat的Oracle连接错误

时间:2010-08-17 07:34:58

标签: eclipse oracle tomcat jdbc connection-pooling

我正在使用Eclipse Galileo和Tomcat 6.0。我收到这样的错误:

2010-08-17 00:09:42,684,JDBCExceptionReporter,WARN,,SQL Error: 0, SQLState: null
2010-08-17 00:09:42,684,JDBCExceptionReporter,ERROR,,Cannot create PoolableConnectionFactory (ORA-01033: ORACLE initialization or shutdown in progress
)
2010-08-17 00:09:42,684,SettingsFactory,WARN,,Could not obtain connection metadata
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (ORA-01033: ORACLE initialization or shutdown in progress
)
    at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1225)
    at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
    at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:82)

我将ojdbc14-9.2.0.8.jar放在Tomcat lib文件夹中,以及Tomcat webapps文件夹中的部署文件夹。

任何人都知道造成这种情况的原因是什么?

4 个答案:

答案 0 :(得分:1)

ORA-01033: ORACLE initialization or shutdown in progress

这表示DB正在启动或关闭,无法建立与此DB的连接。

检查您的数据库实例是否已启动。如果没有,那么在再次尝试程序之前从sqlplus提示符调用“startup”。

如果您使用SQLDeveloper,您还可以检查是否使用它连接到数据库。

很少有链接解释ora代码:

http://ora-01033.ora-code.com/

http://www.dbmotive.com/oracle_error_codes.php?errcode=01033

http://www.orafaq.com/forum/t/38120/2/

答案 1 :(得分:0)

这是在服务器启动时发生的(也许是tomcat和oracle在同一台服务器上的开发环境)? Tomcat通常比数据库启动得更快,因此很可能在数据库准备好之前尝试连接。

您(或您的DBA)应该能够运行以下查询以显示数据库何时启动。警报日志将是确定启动所需时间的地方。如果它突然关闭,它必须将重做日志应用于数据文件,然后才能允许其他会话连接。然后它必须回滚在关闭时未提交的任何事务,但它可以在此阶段处理其他会话。

从v $ instance;

中选择startup_time

答案 2 :(得分:0)

我不确定发生了什么,但问题似乎已经消失了。我将所有项目的所有支持jar放入部署文件夹。不确定这是否与此相关或者我很幸运,但我现在没有收到此错误。 :)

答案 3 :(得分:0)

虽然此错误表示正在进行初始化或关闭,但此错误可能有很多原因。请在类似的帖子中查看我的回答 - https://stackoverflow.com/a/20444726/2789764