我在Windows环境中使用ORACLE数据库并在tomcat中运行JSP / servlet Web应用程序。在我对应用程序执行某些操作后,它给出了以下错误。
ORA-12518,TNS:监听器无法切断客户端连接
任何人都可以帮我确定出现这个问题的原因并提出解决方案吗?
答案 0 :(得分:4)
这个问题的解决方案是增加进程数量:
1. Open command prompt
2. sqlplus / as sysdba; //login sysdba user
3. startup force;
4. show parameter processes; // This shows 150(some default) processes allocated, then increase the count to 800
5. alter system set processes=800 scope=spfile;
经过试验和测试。
答案 1 :(得分:2)
我遇到了同样的问题,在我的情况下,这是在新桌面上新安装的Oracle客户端出错,其他客户端正在工作,所以我知道它不会修复数据库配置。 tnsping工作正常,但sqlplus因ora-12518监听器错误而失败。
我有一个带有SID而不是service_name的tnsnames.ora条目,然后一旦我修复了它,仍然是同样的错误,发现我也有错误的service_name。一旦我解决了这个问题,错误就消失了。
答案 2 :(得分:2)
在我的情况下,我发现这是因为我还没有在我的应用程序中正确关闭数据库连接。打开的连接太多,Oracle无法建立更多连接。这是资源限制。后来当我查看oracle论坛时,我可以看到一些有关此问题的原因。其中一些是。
如果是第二个,请验证large_pool_size或check dispatcher是否足以进行所有连接。
您可以参考下面的链接了解更多详情。 https://community.oracle.com/message/1874842#1874842
答案 3 :(得分:0)
如果从一天到另一天问题显示无明显原因,请在listner.ora文件的底部添加以下这些行。如果您的oracle_home环境变量设置如下:
(ORACLE_HOME = C:\ oracle11 \ app \ oracle \ product \ 11.2.0 \ server)
要添加的行是:
ADR_BASE_LISTENER = C:\ oracle11 \ app \ oracle \
DIRECT_HANDOFF_TTC_LISTENER = OFF 的
答案 4 :(得分:0)
在我的应用程序中执行查询时遇到了同样的问题。我正在使用Ruby on Rails的Oracle客户端。
当我意外地与数据库建立多个连接并且没有关闭它们时,问题就开始了。
当我解决这个问题时,一切都恢复正常。
希望这可以帮助另一个有同样问题的人。
答案 5 :(得分:0)
答案 6 :(得分:0)
我有同样的问题。重新启动所有Oracle服务后,它再次运行。
答案 7 :(得分:0)
我遇到了同样的问题。 并且从oracle服务器侦听器日志中,可以看到更多信息。 并且我发现SERVICE_NAME与tnsnames.ora配置的服务名称不匹配。因此我将应用程序的数据源配置从SID值更改为Service_NAME值,并进行了修复。
23-MAY-2019 02:44:21 * (CONNECT_DATA=(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=XXXXXX$))(SERVICE_NAME=orclaic)) * (ADDRESS=(PROTOCOL=tcp)(HOST=::1)(PORT=50818)) * establish * orclaic * 12518
TNS-12518: TNS:listener could not hand off client connection
TNS-12560: TNS:protocol adapter error
TNS-00530: Protocol adapter error
64-bit Windows Error: 203: Unknown error
答案 8 :(得分:0)
我在实时应用程序中遇到了同样的问题,第二天该问题就自动消失了。检查后,发现服务器由于运行了其他进程而耗尽了内存。
所以在我的情况下,原因是服务器内存不足