使用Tomcat的Oracle连接错误

问题描述:

我正在使用Eclipse Galileo和Tomcat 6.0。我收到类似这样的错误:使用Tomcat的Oracle连接错误

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文件夹中的文件夹部署。

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

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/

+0

数据库工作正常,我能够使用SQLDeveloper访问它。 – rishi 2010-08-17 09:16:05

+0

@ rishi你可以检查你正在访问与你的程序使用的数据库相同的数据库吗? – YoK 2010-08-17 11:18:23

+0

我已经添加了几个链接供您参考 – YoK 2010-08-17 11:25:35

这是发生在服务器启动时(也许DEVE环境下,Tomcat和甲骨文都在同一台服务器上) ? Tomcat通常会比数据库启动得更快,所以它可能会在数据库准备好之前尝试连接。

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

从v $ instance中选择startup_time;

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

尽管此错误表示正在进行初始化或关机,但可能有很多原因导致此错误。请参阅我的回答在类似的职位 - https://*.com/a/20444726/2789764