TNS-12518: TNS:监听程序无法分发客户机连接 请问怎么回事啊?

[复制链接]
查看11 | 回复5 | 2005-2-28 12:57:00 | 显示全部楼层 |阅读模式
TNSPING是PING得通的,检查STATUS也是正常的,其他客户端也能连接ORACLE,但有一个程序连ORACLE时就会连不上,查listener.log有如下错误:
06-6月 -2005 14:40:26 * service_update * GAAC * 0
06-6月 -2005 14:43:22 * ping * 0
06-6月 -2005 14:43:56 * service_update * GAAC * 0
06-6月 -2005 14:44:29 * service_update * GAAC * 0
06-6月 -2005 14:46:23 * service_update * GAAC * 0
06-6月 -2005 14:47:44 * service_update * GAAC * 0
06-6月 -2005 14:49:35 * (CONNECT_DATA=(SID=gaac)(CID=(PROGRAM=)(HOST=__jdbc__)(USER=))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.16.254.158)(PORT=1324)) * establish * gaac * 12518
TNS-12518: TNS:监听程序无法分发客户机连接
TNS-12571: TNS: 包写入程序失败
请问怎么回事啊?如何解决啊?很急,请大家帮忙,谢谢!
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
TNS-12518: TNS:listener could not hand off client connection
Cause: The process of handing off a client connection to another process failed.
Action: Turn on listener tracing and re-execute the operation. Verify that the listener and database instance are properly configured for direct handoff. If problem persists, call Oracle Support.
看错误解析应该还是跟你的配置有关.
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
你的客户端安装的语言选项有问题,
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
这个错误在oracle 9.2-Oracle 10.2.X数据库的windows平台很常见,
原因:服务器可用的内存枯竭。
通常的解决办法如下:
1、enable 4GB开关,在C:\根目录下的boot.ini文件中增加/PAE参数,如下:
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Microsoft Windows 2000 Advanced Server" /PAE
注意:只支持Windows 2000高级服务器版,数据中心版和windows 2003企业版,数据中心版;如果没有4GB这个大的物理内存也不行。
2、在初始化文件中,加入参数:
USE_INDIRECT_DATA_BUFFERS=TRUE
同时,数据库告诉缓存必须使用DB_BLOCK_BUFFERS和db_block_size 调整;
3、减小总的SGA的大小;
4、用orastack更改Oracle.exe,TNSLSNR.exe的栈大小,如500K;
5、更改服务器从专用模式到共享模式。
总的来说,如果有比较大的内存会好办一些,如果内存较小,就只能减小SGA了,用orastack.exe更改栈大小效果不明显。
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
最近累了两天解决我遇到的这个问题,最后发现是绿坝软件导致的,非常、特别、极其郁闷。以后遇到这个问题,不能忘掉也要从os级找问题(os、杀毒软件、网管软件等等)
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
原帖由 wangsongzhou 于 2006-8-14 13:33 发表
这个错误在oracle 9.2-Oracle 10.2.X数据库的windows平台很常见,
原因:服务器可用的内存枯竭。
通常的解决办法如下:
1、enable 4GB开关,在C:\根目录下的boot.ini文件中增加/PAE参数,如下:
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Microsoft Windows 2000 Advanced Server" /PAE
注意:只支持Windows 2000高级服务器版,数据中心版和windows 2003企业版,数据中心版;如果没有4GB这个大的物理内存也不行。
2、在初始化文件中,加入参数:
USE_INDIRECT_DATA_BUFFERS=TRUE
同时,数据库告诉缓存必须使用DB_BLOCK_BUFFERS和db_block_size 调整;
3、减小总的SGA的大小;
4、用orastack更改Oracle.exe,TNSLSNR.exe的栈大小,如500K;
5、更改服务器从专用模式到共享模式。
总的来说,如果有比较大的内存会好办一些,如果内存较小,就只能减小SGA了,用orastack.exe更改栈大小效果不明显。

谁能告诉,是由于这个原因么!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行