免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3801 | 回复: 0

Exchange传输组件(2) [复制链接]

论坛徽章:
27
水瓶座
日期:2014-08-22 21:06:34程序设计版块每日发帖之星
日期:2015-11-25 06:20:0015-16赛季CBA联赛之新疆
日期:2015-12-19 19:05:48IT运维版块每日发帖之星
日期:2015-12-25 06:20:31IT运维版块每日发帖之星
日期:2015-12-25 06:20:31IT运维版块每日发帖之星
日期:2015-12-25 06:20:3315-16赛季CBA联赛之上海
日期:2016-04-15 19:51:31程序设计版块每日发帖之星
日期:2016-04-17 06:23:29程序设计版块每日发帖之星
日期:2016-04-23 06:20:00程序设计版块每日发帖之星
日期:2016-05-26 06:20:00每日论坛发贴之星
日期:2016-05-26 06:20:0015-16赛季CBA联赛之辽宁
日期:2017-02-16 23:59:47
发表于 2008-11-03 14:12 |显示全部楼层
Exchange存储和传输模块之间的桥梁: Store Driver

需要进行投递的邮件来源包括SMTP引擎(Queue目录)和Exchange数据库, Exchange传输系统在工作时,会频繁的从硬盘的Queue目录和Exchange数据库中读取和写入邮件数据.我们知道,SMTP传输系统工作在 IIS的进程中,Exchange邮件数据库引擎工作在Store.exe进程中,如何使这两个进程可以快速的交换数据,是Exchange开发者所必须解决的问题.
高级对列引擎(AQE)在处理邮件时,在每个Event Sink之间传递代表邮件的MailMsg对象(具体过程请参考上期文章).MailMsg对象由待处理邮件的SMTP信封数据和一个指向实际邮件位置的指针(句柄)所组成.当传输引擎需要读取邮件的内容时,会通过这个指针访问磁盘上的Queue目录或者邮件数据库.微软采用NTFS Store Driver和Exchange Store Driver这两种技术,使这些访问能够以非常高效的方式进行.

为了使传输组件方便的访问磁盘上Queue目录中的邮件,微软采用了名为NTFS Store Driver的底层组件,这个组件可以帮助传输引擎使用指针(句柄)的方式快速的访问NTFS文件系统上的文件,而不是采用相对比较慢的 CreateFile的传统Win32 API方式进行访问.这个模块包含在Windows 2000 IIS 5.0中,在NTFSDrv.dll这个文件中被实现,Exchange只是\"借用\"了这个现成的组件.
为了解决传输组件访问Exchange数据库的性能问题,微软采用了Exchange Store Driver技术.Exchange Store Driver使传输引擎可以使用指针(句柄)的方式快速的访问Exchange的数据库中的内容,而不是采用非常低效率的MAPI接口,这样极大的提高了邮件传输的效率和性能.

为了把数据库中的邮件信息放置到AQE的pre-submission队列中,Exchange store driver成为了两个进程间数据交换的桥梁.Exchange store driver由一组Event Sink组成,主要包括如下三个文件:
Drviis.dll,这个DLL运行在IIS的进程空间,负责和AQE引擎进行通信.
ExSMTP.dll,这个DLL运行在Exchange数据库引擎的进程空间,这个组件负责建立数据库和Epoxy.dll的通信接口.
我们可以认为Drviis.dll和ExSMTP.dll是坐落在两个不同进程上桥墩,而Epoxy.dll,就是实现数据共享的桥梁本身.在 Epoxy.dll中,微软通过ExIPC连接Store和IIS,在这两个进程中,开启了一块可以共享的虚拟内存空间(基于Shared Memory Circular Queue技术).在这块共享内存的帮助下,Exchange得以在存储和传输引擎之间快速的进行数据交换.

为了有效的诊断和解决Exchange传输和路由系统中的问题,系统管理员必须对这些组件有深入的理解,包括组件之间的交互方式,邮件传输的路径,路由判断的依据等等.同时,管理员也应该对一些常用的工具做到了如指掌,在出现问题的时候, 可以对症下药.下面我们介绍一些用来诊断邮件传输问题工具.我们把常用的工具分为四个类别:Exchange管理器中集成的工具,日志记录工具,报表统计工具和跟踪工具.
在Exchange管理器中,常用的工具包括队列查看器和Message Tracking Center.通过队列查看器,可以观察到SMTP AQE各个队列中正在被处理的邮件数量,明确当前邮件传输的瓶颈位置;使用Message Tracking Center工具,可以获得一封邮件在Exchange系统中投递的详细过程,包括经过每一台服务器的时间和投递动作.
日志记录工具包括Exchange诊断日志和SMTP协议日志.管理员可以开启Exchange诊断日志来获得邮件服务器内部更加详细的信息,SMTP协议日志则将记录SMTP交互过程中的每一个细节.这两种日志默认情况下是关闭的,启用这些日志将影响系统的性能.
报表统计工具包括LDP,ADSIEdit,NetDiag,Winroute,目录复制工具,DsaDiag.使用LDP和ADSIEdit可以获得活动目录内部的细节数据;NetDiag可以诊断服务器网络设置是否有问题;Winroute可以查看Exchange的路由表;目录复制检测工具可以判断域控制器之间的复制是否完成;DsaDiag可以诊断Exchange和活动目录之间的连接是否存在问题.
跟踪工具包括Regtrace和Netmon.Regtrace是一个源代码级别的排错工具,它会记录传输组件内部每一个函数调用和参数,输出的文件需要由微软公司专门的技术人员进行分析,可以发现和定位非常隐蔽的问题.Netmon可以获取网络数据包并进行分析.
除了以上四个类别以外,还有一些常用的工具,包括:Telnet,Nslookup,Filever等
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP