oracle ORA-01013 - Weblogic 设置错误?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/17238595/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-19 01:44:50  来源:igfitidea点击:

ORA-01013 - Weblogic setting error?

oracleoracle11gweblogic

提问by Orangecrush

I am running a banking program, coded in Oracle PL/SQL. This program runs for 2-3 hours everyday, as part of the End of Day processing.

我正在运行一个用 Oracle PL/SQL 编码的银行程序。该程序每天运行 2-3 小时,作为日终处理的一部分。

Till yesterday, it was working fine. Today when I run it today, after around 30 mins, the program terminates with the error ORA-01013: user requested cancel of current operation. I am not terminating the program manually.

直到昨天,它运行良好。今天,当我今天运行它时,大约 30 分钟后,程序以错误终止ORA-01013: user requested cancel of current operation。我没有手动终止程序。

I feel this could be a weblogic (where the application is deployed) setting problem. I am not fluent in weblogic and am not sure what parameter can be changed to stop this error. Please help!!!

我觉得这可能是 weblogic(部署应用程序的地方)设置问题。我不精通 weblogic,不确定可以更改什么参数来阻止此错误。请帮忙!!!

Oracle version: 11.2.0.3
Oracle weblogic server: 11g

Oracle 版本:11.2.0.3
Oracle weblogic 服务器:11g

回答by Alex Poole

This sounds like a JDBC timeout. From the WebLogic console go to Services->Data Sources and click the name of your data source to see its settings. Click the Connection Pool tab, and expand the Advanced section at the bottom of the page. Look for the Statement Timeout setting.

这听起来像是 JDBC 超时。从 WebLogic 控制台转到“服务”->“数据源”,然后单击数据源的名称以查看其设置。单击连接池选项卡,然后展开页面底部的高级部分。查找Statement Timeout 设置

From the documentation:

文档

When Statement Timeout is set to -1, (the default) statements do not timeout.

当 Statement Timeout 设置为 -1 时,(默认)语句不会超时。

The behaviour you're seeing suggests the timeout is set to 1800 if it's timing out after 30 minutes.

您所看到的行为表明,如果 30 分钟后超时,则超时设置为 1800。

However, this won't have changed on its own, and if it was already set then it was being ignored previously, which would need some investigation - has anything else changed?

然而,这不会自己改变,如果它已经被设置,那么它之前会被忽略,这需要一些调查 - 还有什么改变了吗?

Another possibility is that your code is making several calls within the 3-4 hour window and one of them is now exceeding the timeout on its own, which might be the case if the timeout is lower than 1800. Without seeing your code or the current timeout value I'm just guessing, obviously.

另一种可能性是您的代码在 3-4 小时内进行了多次调用,其中一个现在自己超过了超时,如果超时低于 1800,可能就是这种情况。没有看到您的代码或当前超时值我只是猜测,显然。