【问题标题】:locked by transaction: @console:Oracle (INTELLIJ CLIENT)被事务锁定:@console:Oracle (INTELLIJ CLIENT)
【发布时间】:2016-04-16 02:08:32
【问题描述】:

我正在开发 IntelliJ IDEA 14.1.4,最近我们将数据库连接到客户端,它工作正常,直到最近开始出现错误

[2015-09-28 10:12:55] locked by transaction: @console:Oracle - <<DBName>>@localhost

现在我们无法执行任何事务,因为我们不断收到相同的错误。我们尝试用谷歌搜索错误,但找不到任何解决问题的方法。任何帮助将不胜感激!!!

【问题讨论】:

  • 我认为数据库上应该有一些行锁。如果您有 Oracle DBA,请检查表/行锁。如果发生事务异常并且回滚没有正确发生等,可能会发生这种情况。
  • 如何检查我是否有一些行锁,你能详细解释一下步骤吗...
  • 寻找这个问题stackoverflow.com/questions/1299694/… 你也可以使用 SQL Developermonitor session 工具找到锁
  • Have You Tried Turning It Off And On Again? — 这是唯一对我有用的东西。

标签: java oracle intellij-idea


【解决方案1】:

我之前运行的查询失败后发生了这种情况 - 使用 PyCharm,而不是 IntelliJ,但它是相同的 JetBrains 系统。我没有打开自动提交。由于某种原因,Pycharm 无法从失败的查询中恢复,并且它在数据库中留下了一个未解决的事务处于活动状态。我与数据库断开连接(点击数据库窗口中的红色停止按钮),然后我能够毫无问题地继续使用新查询。如果重新连接会给您带来问题,您也可以尝试使用 SQL 语句窗口顶部的回滚按钮。

【讨论】:

    【解决方案2】:

    为相同的评论提供答案。

    我认为数据库上应该有一些行锁。如果您有 Oracle DBA,请检查表/行锁。如果发生事务异常并且回滚未正确发生或事务仍处于打开状态的时间较长,则可能会发生这种情况。

    您可以执行以下查询来检查是否有交易未决。

    SELECT COUNT(*)
    FROM v$transaction t, v$session s, v$mystat m
    WHERE t.ses_addr = s.saddr
    AND s.sid = m.sid;
    

    其他资源:

    在进行初步研究后,请咨询您的 DBA。我不知道释放锁。

    【讨论】:

    • 以下 count 语句在执行时返回 0。此外,我的数据库在 Oracle SQL Developer 中运行良好。它只是导致此错误的 IntelliJ 数据库模块。
    • 在我的例子中,我无法在 PhpStorm 中运行建议的查询,因为它触发了事务锁定,并且当从 SQL*Plus 运行时它只是返回零。当我重新启动我的电脑时,问题最终消失了。
    • @ÁlvaroGonzález 如果 Oracle 服务器在您的 PC 中,那么重启可能已经解决 :)
    • @KarthikR 不,它是一台外部机器。我会说这完全是客户端问题。
    • @ÁlvaroGonzález 这让我大吃一惊;)感谢分享。我会看看正当的理由。
    猜你喜欢
    • 2017-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-25
    相关资源
    最近更新 更多