Java Oracle 数据库警报 opiodr 中止进程 ORA-609
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/21915591/
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
Oracle database alert opiodr aborting process ORA-609
提问by Rishi P
I am running a batch java application. The application runs every 10/20 minutes in my Production and UAT environment and I get database alerts like this:
我正在运行一个批处理 Java 应用程序。该应用程序在我的生产和 UAT 环境中每 10/20 分钟运行一次,我收到如下数据库警报:
Thu Feb 06 15:15:08 2014 opiodr aborting process unknown ospid (28246400) as a result of ORA-609
2014 年 2 月 6 日星期四 15:15:08 由于 ORA-609 导致 opiodr 中止进程未知 ospid (28246400)
After researching a bit on the internet the suggested fix for these alerts is to change INBOUND_CONNECT_TIMEOUT as:
在互联网上进行了一些研究后,这些警报的建议修复方法是将 INBOUND_CONNECT_TIMEOUT 更改为:
Sqlnet.ora: SQLNET.INBOUND_CONNECT_TIMEOUT=180
Listener.ora: INBOUND_CONNECT_TIMEOUT_listener_name=120
We have changed the setting on the database server side but don't know where to change in the client application. We are using c3p0 to create a connection pool and we are setting only these parameters:
我们已经更改了数据库服务器端的设置,但不知道在客户端应用程序中更改的位置。我们使用 c3p0 创建一个连接池,我们只设置这些参数:
dataSource.setAcquireRetryDelay(30000);
dataSource.setMaxPoolSize(50);
dataSource.setMinPoolSize(20);
dataSource.setInitialPoolSize(10);
We have other web services running on the same server as the batch application and they use Tomcat's DBCP pool and they don't seem to create any alerts. Also strangely enough, our batch application doesn't generate the alerts in lower test environments. They happen once in a while but the UAT and PROD environments get these alerts very frequently based on the schedule. Any suggestions what configurations to set in the c3p0 pool or should I try changing to another pool API like DBCP?
我们在与批处理应用程序相同的服务器上运行其他 Web 服务,它们使用 Tomcat 的 DBCP 池,它们似乎没有创建任何警报。同样奇怪的是,我们的批处理应用程序不会在较低的测试环境中生成警报。它们偶尔会发生,但 UAT 和 PROD 环境会根据计划非常频繁地收到这些警报。任何建议在 c3p0 池中设置什么配置,或者我应该尝试更改为另一个池 API,如 DBCP?
Update:I have added a few more parameters in the datasource and the frequency of alerts has reduced. I added the following and the number of alerts have gone down from 15 an hour to 4 an hour.
更新:我在数据源中添加了更多参数,并且警报频率降低了。我添加了以下内容,警报数量从每小时 15 次下降到每小时 4 次。
dataSource.setLoginTimeout(120);
dataSource.setAcquireRetryAttempts(10);
dataSource.setCheckoutTimeout(60000);
采纳答案by Rishi P
I moved to DBCP connection pooling and it seems to have fixed the issue. I tried changing a few more c3p0 settings mentioned above but nothing changed. The alerts were reduced but didn't go completely. So we decided to try DBCP. I am using all default values in DBCP except for the pool size. I'm using the tomcat version of DBCP available in tomcat's lib folder (tomcat-dbcp.jar).
我转移到 DBCP 连接池,它似乎解决了这个问题。我尝试更改上面提到的更多 c3p0 设置,但没有任何改变。警报减少了,但没有完全消失。所以我们决定尝试 DBCP。除了池大小之外,我在 DBCP 中使用了所有默认值。我使用的是在 tomcat 的 lib 文件夹 (tomcat-dbcp.jar) 中可用的 tomcat 版本的 DBCP。