方法一:
服务器的操作系统是Windows吗?如果是,那么找到“Configuration and Migration Tools、Administration Assistant for Windows NT(AAW)”,在AAW的树里找到你的Oracle主目录的叶结点,点右键,选属性,在属性对话框里添加一个名为“USE_SHARED_SOCKET”值为“TRUE”的参数,然后重启服务器。
问题原因在于,ORACLE回应每个客户端的请求时,生成一个线程(或者是进程,我记不清了),在这个线程里,它用一个随机端口与客户端通信。而设置了上述参数后,则都用统一的端口了(缺省是TCP1521)。
方法二:
在注册表:HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0上新建一个字符串值:USE_SHARED_SOCKET=true。如果安装了多个目录,则每个类似的目录都要设置:HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMEx (x目录编号)
设置后要求重新启动实例(只重启listener发现没有效果)
图一
图二