关于多层的pooling(50分)

  • 主题发起人 主题发起人 caijitao
  • 开始时间 开始时间
C

caijitao

Unregistered / Unconfirmed
GUEST, unregistred user!
多层系统中,若使用Pooling缓冲,是否一定要使用session对象?我用的ADO,该怎么办?
 
如果是Com+的话,用ADO只要设置一下就能实现
 
我用的MIDAS,remote data modual,socketconnection,怎么设置法呢?
 
如果你用的是Delphi5以上的版本,
在RDM中的UpdateRegistry过程中使用RegisterPooled和UnregisterPooled(ClassID);
if Register then
begin
inherited UpdateRegistry(Register, ClassID, ProgID);
EnableSocketTransport(ClassID);
EnableWebTransport(ClassID);
//加上一句,参数你可以看帮助根据你的实际情况来设置
RegisterPooled(ClassID, 10, 60, False);
end else
begin
DisableSocketTransport(ClassID);
DisableWebTransport(ClassID);
//加上第二句
UnregisterPooled(ClassID);
inherited UpdateRegistry(Register, ClassID, ProgID);
end;
 
to lvloj:
我看到李维的书上说要有两个coclass,而我用type library查看却只有一个coclass,那么在我的RDM中应该怎么做呢?是否一定要两个coclass再加上你给出的语句才能实现pooling?
 
另外,我将com+项的Pooling选中了。这样还需不需要2个coclass?,还要不要使用RegisterPooled?
 
什么要有二个coclass?我不懂,学习...
如果你用的是COM+,线程模式是Both,在组件服务中就可以设置线程池了,更加的简单,就不需要RegisterPooled了.
 
1、二个coclass:
Delphi提供的DEMO(.../demos/midas/pooler/server.bpl)中使用了二个coclass,没用RegisterPooled(ClassID, 10, 60, False);
而且com+的pooling也未选中。
2、[red]若使用了RegisterPooled,其它还有什么地方需要设置?[/red]
3、>>如果你用的是COM+,线程模式是Both,在组件服务中就可以设置线程池了,更加的简单,就不需要RegisterPooled了.
怎么设置呢?是否就是type library中设定相应coclass的com+页的object pooling就可以了?
 
Delphi的DEMO是针对Delphi4的版本的,Delphi5以上就可以用RegisterPooled,如果你用的是
RDM就用RegisterPooled.
如果你用COM+,那么就在"控制面板"的"组件服务"里面设置,不需要重新编译程序就可以更改设置,所以更方便.
 
用RegisterPooled还要其它的设置吗?
 
据我所知,不需要了.我对DCOM的接触很少,现在用的是COM+,所以池化都是系统帮我解决的.^_^
 
:)呵呵,给分先。顺便问一句,开发com+的程序比较好的参考书有哪些?
 
我不知道那些比较好,我的学习COM+的参考书是<<ADO/MTS/COM+...>>, <<Delphi4技术内幕>>, <<Delphi5开发人员指南>>,这几本都不是完全讲COM+的...
 
后退
顶部