企业库中的一个小发现

一直被企业库中的几个问题困扰:
    1、企业库用了以后,event log中一直出现一堆一堆的错误,也不知道该如何去解决,除了影响了日志的阅读以外,倒也没什么其他问题
        Failed to create instances of performance counter 'Average Command Execution Time' - 请求的性能计数器不是自定义计数器,它必须初始化为只读。.
    2、Logging & Instrumentation Application Block这个block中,好像用来用去都只用到了一个logging,好像从来没有关Instrumentation 什么事,再加上对仪表盘这个玩意儿好像一直没有概念,也不知道干嘛用的(包括webcast讲座中好像也没有提到),所以就一直当作logging application block用下去了
    3、企业库中的Instrumentation到底实现了什么东西,其目的是什么
   
但是这几个问题对整个应用无伤大雅,所以也一直没空去管它,前段时间一直在看企业库的代码,才恍然大悟,原来这几个问题就是一个问题。

    Logging中的eventLog可能大家都比较熟悉,即使不用企业库,大家也可以通过System.Diagnostics名称空间下的类去实现,Instrumentation 其实应该就是PerformanceCounter。性能计数器???对了,在管理工具中有一个《性能》的系统工具,应该玩过吧,可以跟踪cpu、内存等等......这个可是压力测试也是常常要用的工具。
    我们都会想到用eventLog来trace,可是有没有想过也可以用性能计数器来跟踪我们的程序呢。跟踪什么???比如sql command执行的次数、执行时间、异常次数,并且性能计数器是可以用图形的方式展现的哦,酷吧。
     要这样做难吗???如果简单用企业库的计数器,非常简单
     其实企业库已经内置了自定义的PerformanceCounter,出现问题1的原因就是计数器没有被注册。如何注册??有两种方式:
    1、运行InstallServices.bat,把这个批处理拷到你的企业库dll目录下,运行注册
    2、如果你有制作你的安装程序,并且把企业库文件打包在你的程序包中,企业库可以自动注册性能计数器(看企业库已经实现了相关的类,但没做过相关测试,有兴趣的朋友可以试一把)

     好了,我们就可以看到这样的效果了:


        爽吧,即消灭了Event log 中的红色警告,还增加了一项新功能,哈哈,要做压力测试计划???正好用上!!

         还不够,还想自己做,不好意思,我也只是大概看了一下,把我看得东西和大家分享一下,不对的地方高手们多提意见
         性能计数器关键有两个类:PerformanceCounter和PerformanceCounterInstaller
        PerformanceCounter是真正的计数器,读者可以到企业库中找几个例子看一下其实现

        PerformanceCounterInstaller是负责计数器的安装注册,在企业库中(以2.0为例)Common.Instrumentation.Common.ReflectionInstaller是负责以反射的方式找到PerformanceCounterInstaller,如Data.Instrumentation.DataInstrumentationInstaller中,直接通过
    Installers.Add(new ReflectionInstaller<PerformanceCounterInstallerBuilder>());
就可以将PerformanceCounterInstaller注册到安装程序中,由安装程序或installUtil.exe进行注册安装。

        如果还不是很清楚的话,可以看一下单元测试中的一个很简单的范例:Microsoft.Practices.EnterpriseLibrary.Common.Instrumentation.Tests.PerfCounterInstaller,代码我就不贴了

        另外2.0中,仪表盘也不是必须了,ms已经对其解耦,允许用户在EntLibConfig.exe中对其是否启用进行配置(还没测试过),也算是一大改进




转载于:https://www.cnblogs.com/luckyzmw/archive/2006/03/26/359183.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值