就是很普通的J2EE应用, Hibernate+JPA, 部署在WAS上, 建立连接池(Oracle 10g), deploy WAR, 测试, 没问题. 但是过不了几天, 就收到客户反应说系统有问题, 要来了日志文件, 发现是一个query没有成功执行, 输出的异常是 java.sql.SQLException: ORA-00942: table or view does not exist at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288) at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:745) at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:219) at 联系对方WAS admin, 检查连接池, 对方说已经在console里test过了, 提示connected. 让对方DBA检查数据库, 对方说没问题. 在WAS里重新启动这个 application 不能解决问题. 唯一的办法是重建连接池 (如果允许的话, 也许可以试试 先disable再enable连接池?) 但是这个问题三天两头出. 这个问题在我们内部的QA环境里从来没出过, 在对方dev环境里没出过, 大概1-2个月前迁移到他们的pre-production环境里, 最开始挺好, 这个问题是最近2-3周开始出现的. Hibernate/JPA 用到的配置文件应该从最开始写好就没改过, 做新的OR mapping都是在pojo里写的. 有经验的大大给说说, 有可能是WAR里面哪里配置的问题吗? 还是说这种情况一定是对方server端的问题, 有什么办法能举证吗? |