网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > DotNet > ASP.NET > Windows群集开发:8)编写好的资源DLL的诫条  

Windows群集开发:8)编写好的资源DLL的诫条

2008-07-10  作者:  来源:  点评 投稿 收藏

        编写好的资源DLL的诫条

中国网管论坛bbs.bitsCN.com

        只要仔细注意几条规则和指引,编写好的资源DLL其实相当简单。大部分上文已经讨论过。本节是对编写资源DLL要牢记的关键事情的总结。

网管网www_bitscn_com

        使用Visual C++ 4.2b或以上(确保从www.microsoft.com安装了最新更新)和平台SDK来编写资源DLL和群集管理扩展DLL。高度整合的开发环境使得工作相当轻松。同样地,使用Visual C++调试器或WinDbg来调试DLL。 网管论坛bbs_bitsCN_com

        在资源DLL的Startup例程中初始化全局数据,在Open中初始化资源特定的数据。

网管u家u.bitsCN.com

        在资源DLL中,确保使用分离的线程来执行耗时比较长的操作,比如打开资源,联机,脱机,等等。分离线程的创建使与资源监视器(以及其上的群集服务)的通信流程更加高效。假如,举例来说,资源要花费超过300毫秒的时间来联机,派生一个分离的线程来完成这个操作,可以使得入口能够立即返回。

网管论坛bbs_bitsCN_com

        如果不想让资源DLL被群集服务的状态查询打断,返回一个事件句柄以通知群集服务不要调用LooksAlive。然后,使用该事件句柄向群集服务发送状态信息。

中国网管联盟bitsCN.com

        在任何可能的情况下使用回调函数。回调函数允许资源DLL和资源监视器进行异步通信。典型情况下,一般资源DLL使用LogEvent和SetResourceStatus函数向群集服务记录资源事件日志和进行调试。调用 SetResourceStatus向资源监视器发送状态信息。

网管网www_bitscn_com

        如果要求群集事件、节点事件、组状态改变、群集数据库改变或更新事件通知到资源,创建一个群集通知端口(使用CreateClusterNotifyPort)来处理事件通知。注意,如果在多线程中使用通知端口,要小心竞争条件。例如,一个线程可能调用CloseClusterNotifyPort关闭通知商品,而另一个线程则调用了GetClusterNotify,正等待着从同一端口获取信息。要防止这种情况,可以在调用GetClusternotify的线程加入对CLUSTER_CHANGE_HANDLE_CLOSE的检查。关于更多关于事件通知和产生通知的事件,请参考平台SDK。

网管论坛bbs_bitsCN_com

        支持CLUSCTL_RESOURCE_GET_PRIVATE_PROPERTIES控制功能以便于诸如Cluster.Exe之类的管理工具能够设置那些仍没有被设置的属性。

网管联盟bitsCN@com

        支持CLUSCTL_RESOURCE_VALIDATE_PRIVATE_PROPERTIES和CLUSCTL_RESOURCE_SET_PRIVATE_PROPERTIES控制功能以便于资源DLL能够在属性被存储之前进行校验。 中国网管联盟bitsCN.com

        支持CLUSCTL_RESOURCE_TYPE_GET_PRIVATE_PROPERTIES、CLUSCTL_RESOURCE_TYPE_VALIDATE_PRIVATE_PROPERTIES以及CLUSCTL_RESOURCE_TYPE_SET_PRIVATE_PROPERTIES控制功能,如果资源类型具有私有属性。 网管u家u.bitscn@com

        支持CLUSCTL_RESOURCE_GET_REQUIRED_DEPENDENCIES和CLUSCTL_RESOURCE_TYPE_GET_REQUIRED_DEPENDENCIES控制功能,如果资源需要依赖于另一资源。 中国网管论坛bbs.bitsCN.com

        如果可能,应该在在Open函数中读取属性。如果不可能,则应该在Online函数中读取。 网管u家u.bitsCN.com


TAGs
 上一篇:Windows群集开发:7)调试资源DLL   下一篇:Windows群集开发:9)线索和更多信息
Windows群集开发:8)编写好的资源DLL的诫条 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
最新推荐文章:
网管论坛交流: