原来是它(Oracle.ManagedDataAccess.Client)(2)

10-6月 -2015 16:27:09 * (CONNECT_DATA=(SERVICE_NAME=hoegh)(CID=(PROGRAM=D:\\HOEGHATS\\HOEGH.exe)(HOST=)(USER=Administrator))) * (ADDRESS=(PROTOCOL=tcp)(HOST=3.16.11.50)(PORT=4528)) * establish * hoegh * 0
根据大家的建议,我尝试在监听配置文件Listener.ora中添加了静态监听,其中黄色部分为新添加内容。
但是,效果不大。

SID_LIST_LISTENER =
 
  (SID_LIST =

(SID_DESC =

(SID_NAME = PLSExtProc)

(ORACLE_HOME = c:\\oracle\\product\\10.2.0\\db_1)

(PROGRAM = extproc)

)

(SID_DESC =

(SID_NAME = hoegh)

(ORACLE_HOME = c:\\oracle\\product\\10.2.0\\db_1)

)
  )

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = DBSERVER)(PORT = 1521))

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))

)

)

增大processes初始化参数
黔驴技穷,我又使了这招,可是丝毫不起作用,不同的是以往连接总数是一百三四十,现在增加到了二百七八十,问题依旧。
 结合上面的静态监听,我再次查看listener.log,发现大量TNS-12518和TNS-12560报错,以及少量的TNS-12514报错:

15-6月 -2015 15:39:13 * 12502
 
TNS-12502: TNS: 监听程序没有从客户机收到 CONNECT_DATA

15-6月 -2015 15:39:13 * (CONNECT_DATA=(SERVICE_NAME=hoegh)(CID=(PROGRAM=D:\\HOEGHATS\\HOEGH.exe)(HOST=CLIENT5)(USER=work))) * (ADDRESS=(PROTOCOL=tcp)(HOST=3.16.210.94)(PORT=55359)) * establish * hoegh * 12518

TNS-12518: TNS: 监听程序无法分发客户机连接

TNS-12560: TNS: 协议适配器错误

15-6月 -2015 15:39:13 * (CONNECT_DATA=(SERVICE_NAME=hoegh)(CID=(PROGRAM=D:\\HOEGHATS\\HOEGH.exe)(HOST=)(USER=JDWL))) * (ADDRESS=(PROTOCOL=tcp)(HOST=3.20.16.50)(PORT=2200)) * establish * hoegh * 12518

TNS-12518: TNS: 监听程序无法分发客户机连接

TNS-12560: TNS: 协议适配器错误

15-6月 -2015 15:39:13 * (CONNECT_DATA=(SERVICE_NAME=hoegh)(CID=(PROGRAM=D:\\HOEGHATS\\HOEGH.exe)(HOST=DISPATCHER1)(USER=work))) * (ADDRESS=(PROTOCOL=tcp)(HOST=3.16.210.92)(PORT=50761)) * establish * hoegh * 12518

TNS-12518: TNS: 监听程序无法分发客户机连接

TNS-12560: TNS: 协议适配器错误

15-6月 -2015 15:39:13 * 12502

TNS-12502: TNS: 监听程序没有从客户机收到 CONNECT_DATA

15-6月 -2015 15:39:13 * (CONNECT_DATA=(SERVICE_NAME=hoegh)(CID=(PROGRAM=D:\\HOEGHATS\\HOEGH.exe)(HOST=WINOW-BWMCG6U3V)(USER=JDWL))) * (ADDRESS=(PROTOCOL=tcp)(HOST=3.20.1.52)(PORT=3487)) * establish * hoegh * 12518

TNS-12518: TNS: 监听程序无法分发客户机连接

TNS-12560: TNS: 协议适配器错误

15-6月 -2015 15:39:13 * (CONNECT_DATA=(SERVICE_NAME=hoegh)(CID=(PROGRAM=D:\\HOEGHATS\\HOEGH.exe)(HOST=ATSSERVER1)(USER=Administrator))) * (ADDRESS=(PROTOCOL=tcp)(HOST=3.16.210.74)(PORT=3404)) * establish * hoegh * 12518

TNS-12518: TNS: 监听程序无法分发客户机连接

TNS-12560: TNS: 协议适配器错误

15-6月 -2015 15:39:13 * (CONNECT_DATA=(SERVICE_NAME=hoegh)(CID=(PROGRAM=D:\\HOEGHATS\\HOEGH.exe)(HOST=CLIENT2)(USER=Administrator))) * (ADDRESS=(PROTOCOL=tcp)(HOST=3.16.210.66)(PORT=2229)) * establish * hoegh * 12518

TNS-12518: TNS: 监听程序无法分发客户机连接

TNS-12560: TNS: 协议适配器错误

重建监听器
重启设备是一个“大招”,以前碰到“疑难杂症”重启往往能够收到奇效。最后,我甚至都想着重建数据库了,不过考虑着动静有点大,可能会影响其他人工作,只好作罢;那我重建一下监听试一下吧。

于是,我通过netca删除原有监听,重建监听程序listener,都采用默认配置。

可是,问题依旧。

更换微软驱动System.Data.OracleClient
真是没招了,最后和部门的架构师一起讨论这个问题,会不会和数据库驱动有关系呢。
 我们的应用程序是用C#开发的,连接数据库需要数据驱动支持,以前我们采用的是微软的数据库驱动System.Data.OracleClient,最近这个项目换成了Oracle官方驱动Oracle.ManagedDataAccess.Client。至于为什么要换,最主要是考虑Oracle官方驱动部署方便,无需安装Oracle数据库客户端。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/3c2c522fe1fee94ad29c43eb9ac4a938.html