我需要测试我的应用程序是否存在网络问题的稳健性。但我无法物理访问网络。我只能以 SYS 身份访问 Oracle。是否有可能静默杀死用户会话,因此当应用程序尝试从连接 jdbc 驱动程序获取数据时会生成错误 17410?
oracle: No more data to read from socket
当我尝试通过 sid 终止会话时 - oracle 发送有关终止会话的警报,这不是 17410 错误。
您可以使用 PRAGMA EXCEPTION_INIT 引发任何错误代码。
DECLARE
e_no_more_data EXCEPTION
pragma exception_init( e_no_more_data , -17410 );
BEGIN
RAISE e_no_more_data;
END;
/
不知道是不是真的模拟了错误。
如果您只能访问数据库并且您知道要终止的会话的 SID 和序列号,则可以发出
ALTER SYSTEM KILL SESSION 'sid,serial#';
检查此链接以获取更多选项。
http://www.oracle-base.com/articles/misc/killing-oracle-sessions.php