COM+的事件订阅分两种:永久的和短暂的。
通过COM+管理程序增加的事件订阅属于前者,每次激发事件时要创建一个新的实例。
像你这种情况应该使用短暂型的事件订阅,通过COM+ Catalog的接口IEventSubscription增加订阅信息即可。
通过COM+管理程序增加的事件订阅属于前者,每次激发事件时要创建一个新的实例。
像你这种情况应该使用短暂型的事件订阅,通过COM+ Catalog的接口IEventSubscription增加订阅信息即可。
解决方案 »
- VC2008 MFC 下无法使用 AfxMessageBox?
- 为什么不同的电源管理软件显示的电池信息不一样呢?
- 游戏开发群欢迎加入
- 用类向导添加消息时出现a duplicate insert blocke exist for class XXXX in XXX.h XXX.cpp
- 菜鸟刚学vc,建立了两个窗体,但我想程序运行时先显示第二个窗体,怎么办呢?
- 各位大哥哥,大姐姐请帮帮我解决1个问题,好吗?
- 我在doc 类中声明了一个 view 类的成员,这个成员却不能在doc类的一个static 成员函数中使用,为什么呢?
- 关于编写计算机引导程序的问题。在线等待!!!
- 路由器如何对待ttl超时的tcp报文?
- ************************请教一个很基础的问题****************************
- VC中左视窗LeftView的点击怎么响应。
- 无内容,测试一下发送软件,不好意思!
或者,除了MSDN以外,还有哪里可以找到这些系统接口的编程使用方法呢?
如果有,请给我EMAIL吧。感激涕零。 [email protected]
路径为:
MSDN-Library
Platform SDK
Component Services
Reference
多订阅者并行时要等到最后一个完成,这样如果一个订阅者阻塞会不会造成事件的发起者
阻塞?怎么解决呢?
因为我想需要做到这样:事件源异步地Fire事件,而不会因为订阅者僵死而阻塞,事件
在一定时间内未被处理应被系统抛弃。这样的话会需要一种事件缓冲的机制,不知道
COM+事件系统怎么解决呢?
(1)订阅事件时有一个“Fire In Parallel”标记可以使多个事件并行进行,COM+采用多线程实现,但不保证顺序。
(2)把COM+的事件机制和异步机制结合起来,把事件类标记成QC组件。
其实你用了(2)就可以不用(1)了。
看起来你的应用很先进,已经用上COM+了,而且还用到了这些新的特性。难得。
COM+组件管理中也没有找到如何将事件类标记为QC。
还有,事件类的线程模式采用何种最好呢?
另外,我还没有做成功这个:一个正在执行的exe进程使用一个订阅者组件接受事件。
也就是说IEventSubscription如何使用来实现以上目的呢?
三个问题盼复。再次感谢。
by the way,我没有找到IMDB的影子,是否被取消了?
(1)将组件标记为QC应该不成问题,是否你没找对地方?现在版本的VC不能认QUEUEABLE,以后的版本应该可以。
(2)线程模型,为简单起见,建议使用Apartment模型;如果考虑效率,可采用COM+的native(?)模型。
(3)在 COM Catalog的层次目录中,从根对象COMAdminCatalog开始找到订阅对象为止,然后调用IEventSubscription的方法。
另外,IMDB和Load Balance Server在Windows 2000的Server版本中都被去掉了,但是在Advanced Server中保留了Load Balance Server。
我没有做过COM+的应用,只是凭理解和以前看过的技术资料回答你的问题。关键还需要你自己摸索。
地方,是否在别的地方,亦或组件需要满足什么条件呢?
要是pam大哥能够给我个VB或VC的例子说明如何让一个exe进程获得指定事件类的临时事件订阅能力就太感谢了。如果这里写不下,请给我发email:[email protected] 或 [email protected] 。例子呀!!!
如果你有时间的话,万分感激。
因为我对这些系统对象编程还没有入门,所以MSDN对我来说太不形象了。
Dirtory服务器,看来不适用于一些简单的无服务器的对等机器间的异步事件。
但我看见Windows2000还有一个AsynCall,是否是你所说的异步机制。
如果有空的话,请帮帮我吧。教我怎么使用IEventSubstription来做一个临时订阅。
十万分感激。
要完成这项工作,你必须熟悉对象库的用法,特别要弄清楚COM Catalog对象树的结构,现在除了我前面提到的MSDN中的资料,没有其他的信息可供使用。我建议你可以参考MMC程序的Component Service add-on的对象层次结构,它也是用COM Catalog对象库实现的,但只是一个子集。
在Windows2000中,类似这样的技术还有很多,最典型的是活动目录的管理,你可以通过ADSI管理所有的网络资源。所以掌握这项技术对于以后在Windows平台上开展工作非常有帮助。
另外,我觉得MSMQ不需要活动目录的支持,但需要相应的服务。
我现在没有环境,可能帮不上忙了,你试一试吧。如果不行,也不用沮丧,毕竟不是你的错,是MS的问题,是正常现象。
[email protected]。
现在我想解决如下问题:
1。如何创建临时订阅者在运行期间接收COM+事件系统的事件?
2。如何订阅另一台机器上的事件呢?
COM+真是神奇呀。
另外,看了MSJ的一篇关于COM+事件系统的文章,里面好像提到现有的COM+版本不支持订阅的跨机器边界的能力。
另外一点,IEventSubscription不是从COMAdminCatalog取得,而是从IEventSystem取得。COMAdminCatalog中注册的仍然是永久订阅。
国外的这类书要是国内有影印版就好了,可以快一点和便宜一点。
《COM原理与应用》性价比很高。不过里面还是有一点遗憾,就是例子不够详尽。
大概是应为内容太多的缘故。祝出更多的书,造福全人类。