首页 文章

Weblogic 10.3,JDBC,Oracle,SQL - 表或视图不存在

提问于
浏览
1

我有一个非常奇怪的问题,我没有任何成功的谷歌搜索 .

它开始发生,没有更改数据库,连接设置,代码等 .

问题是,当访问servlet时,其中一个EJB正在进行直接的SQL调用,非常简单

"select \n" + " value, \n" + " other_value \n" + " from \n" + " some_table \n" + " where some_condition = ? "

这显然不是直接的SQL,但非常接近 . 出于某种原因,这开始返回一个错误,指出“ORA-00942:表或视图不存在” .

该表存在,并且如果我在调试器中挂钩,在查询中更改空间或更小的内容(不更改查询本身),并且热部署更改,它就可以正常工作 . 这不是我第一次碰到这个 . 它似乎只发生在开发环境中(尚未在q / a,沙箱或 生产环境 中看到它),并不总是可复制的,并且让我严重疯狂 .

不总是可复制的,我的意思是偶尔进行干净的构建和重新部署有时会解决问题,但并非总是如此 . 它并不总是相同的表(尽管如果发生错误,它将继续使用相同的查询) .

只是向那里扔一个触角,看看是否有人之前遇到过这样的问题,以及他们可能发现了什么来修复它 .

1 回答

  • 1

    听起来好像JDBC池中的一个连接有问题,这可以解释间歇性的问题,而且重新部署只会有时修复它,因为之后你最终仍然可以使用相同的连接 . 您可以尝试重置连接池,而不是重新部署 . ( java weblogic.Admin -url t3://<server_url> RESET_POOL <pool_name> ,我想)

    您只有一个模式,但这是否意味着只存在一个模式,或者所有表都在一个模式下?是否有可能在某个地方做某个 ALTER SESSION SET CURRENT_SCHEMA ,以及哪个连接在主模式中看到任何东西了?这可能发生在包或触发器以及Java端,并且可能是在异常之后未被还原的'temporary'更改 . 听起来像是一些可能只存在于开发环境中的东西......

相关问题