【问题标题】:How in Oracle kill user session silent or reproduce error 17410?如何在 Oracle 中杀死用户会话静默或重现错误 17410?
【发布时间】:2012-07-07 11:39:45
【问题描述】:

我需要测试我的应用程序是否存在网络问题的稳健性。但我无法物理访问网络。我只能以 SYS 身份访问 Oracle。是否有可能静默杀死用户会话,所以当应用程序尝试从连接 jdbc 驱动程序获取数据时会生成错误 17410?

oracle: No more data to read from socket 

当我尝试通过 sid 终止会话时 - oracle 发送有关终止会话的警报,这不是 17410 错误。

【问题讨论】:

    标签: oracle session jdbc kill silent


    【解决方案1】:

    如果您只能访问数据库并且您知道要终止的会话的 SID 和序列号,则可以发出

    ALTER SYSTEM KILL SESSION 'sid,serial#';
    

    查看此链接了解更多选项。

    http://www.oracle-base.com/articles/misc/killing-oracle-sessions.php

    【讨论】:

    • 是的,我使用这个 - 但是客户端部分的 jdbc 驱动程序会收到有关已终止会话的警报,例如 ORA-00028: your session has been deleted 。我需要收到错误 17410
    • 对不起,我没有正确关注你。您需要以某种方式模拟 17410 错误吗?
    • 是的,我无法物理断开连接,因为远程服务器上的数据库和客户端。但有时会发生网络问题。我已经修复了客户端应用程序,但需要检查我的修复是否有效。
    【解决方案2】:

    您可以使用 PRAGMA EXCEPTION_INIT 引发任何错误代码。

    DECLARE
      e_no_more_data EXCEPTION
      pragma exception_init( e_no_more_data , -17410  );
    BEGIN
      RAISE e_no_more_data;
    END;
    /
    

    不知道是不是真的模拟了错误。

    【讨论】:

      猜你喜欢
      • 2018-02-24
      • 1970-01-01
      • 2019-12-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-21
      • 2011-08-11
      • 2011-10-29
      • 2012-04-03
      相关资源
      最近更新 更多