• 关于ODP.NET连接数监控及相应的windbg分析提示


    1、关于ODP.NET的Windows计数器问题

           使用微软的缺省驱动时,可以通过windows性能监视器很方便的监控数据库连接数,选择.NET Data Provider for Oracle/Sqlserver中的NumberOfPooledConnections即可。但是微软早就放弃了对Oracle驱动的更新,该驱动不仅在性能上比较差(读取40000 rows * 30 cols的数据,仅数据转换大约耗时25秒,而ODP.NET仅需5秒),更悲催的是System.Data.OracleClient还有不少bug….本人就在一个项目上遇到数据行翻倍的事情,更新使用ODP.NET后原来的计数器自然就不能使用了,安装Oracle客户端时选择ODP.NET组件后,Windows计数器中会出现Oracle Data Provider for .NET的选项,但选择对应的子项和实例后却看不到任何信息,原来缺省是没有启用的。可以通过修改注册表启用计数器:HKEY_LOCAL_MACHINESOFTWAREORACLEODP.NETAssembly_Version,找到PerformanceCounters,将该值改为4095即可,然后重启IIS或回收应用程序池。

    参考资料: http://blog.csdn.net/debug_fan/article/details/8973467

    另外,根据dump分析看,监视器中显示的NumberOfPooledConnections仅包含正在使用的连接,如果要看所有打开的连接应该在加上NumberOfFreeConnections计数器。

    image

    image

    2、关于ODP.NET在dump分析的查找

    使用windbg分析dump时,遇到ODP.NET在实现ADO.NET接口的内部实现特立独行的问题,按照微软缺省的方式找了半天,在此记录备忘。

    Command ---> m_connection [OracleConnection] ---> 1) m_conString [String] ; 2) m_opoConCtx [OpoConCtx] ---> pool [ConnectionPool] ---> m_connections [Collections.Stack]  ---> _s [Collections.Stack]  ---> _array (System.Object[])

    也可以通过 命令直接查找连接或连接池: 

    !dumpheap -type Oracle.DataAccess.Client.ConnectionPool

    !dumpheap -type Oracle.DataAccess.Client.OracleConnection

    另外,还有全托管驱动的问题Oracle.ManagedDataAccess.Client,该实现的命令及路径跟ODP.NET又有很大不同。

    Oracle.ManagedDataAccess.Client.OracleConnection

    具体实现是下面两个

    OracleInternal.ServiceObjects.OracleConnectionImpl

    OracleInternal.ConnectionPool.OraclePoolManager

    连接字符串也很特别,是在两处分开存储的: OracleConnection的ConnectionString  --->m_constring m_compString m_passwordlessConString 和OracleConnectionImpl 的 m_password

    image

    image

    image

  • 相关阅读:
    struct
    python Hbase Thrift pycharm 及引入包
    python 性能鸡汤
    hbase 0.96 单机伪分布式配置文件及遇到的问题 find命令
    ubuntu下配置protobuf
    hadoop 2.2.0 eclipse 插件编译 及相关eclipse配置图解
    hadoop2.2.0 单机伪分布式(含64位hadoop编译) 及 eclipse hadoop开发环境搭建
    install ubuntu
    ubuntu wubi安装注意事项
    HBase eclipse开发环境搭建
  • 原文地址:https://www.cnblogs.com/zhaoguan_wang/p/6433585.html
Copyright © 2020-2023  润新知