请问关于MTS组件的问题!欢迎大家讨论! (300分)

  • 主题发起人 主题发起人 flintsoft
  • 开始时间 开始时间
F

flintsoft

Unregistered / Unconfirmed
GUEST, unregistred user!
大家知道在创建MTS对象的时候可以选择线程模式,有Single,Apartment和Both。
第一个问题
据说要使用object pooling的话,则要求使用Both模式,但在D5开发的MTS中好象不
支持object pooling,那么BOTH模式是否没有用了?
第二个问题
D6开发MTS是否支持object pooling,如果支持应如何进行设置和编码,有什么要注意的地方?
第三个问题
在组件管理中看到的池化是否就是指object pooling,既对象被移动到池中,D5开发的MTS
是否实现了资源pooling和数据库连接pooling?
我也看了许多的书,包括李维的,但书中大多只介绍的相应的概念,不是十分具体,希望大家
帮忙解答。
 
1.object pooling与线程模式无关,一般采用Apartment(书中建议)
2.MTS object pooling 不需要特别的编码,只要在COM+下设置该属性就可以了。MTS object pooling的对象一定要是无状态的。
3.组件管理中看到的池化就是指object pooling。 这些pooling的实现更需要操作系统的底层支持,Delphi仅仅是调用这些底层支持
 
Object pooling is different from Database connection pooling.
 
那么要如何实现object pool呢?
在组件管理的属性页中“启用对象池”的选项不可选,着表示是已经启用了还是没有启用啊?
如果没有启用那么该如何启用呢?
 
DELPHI中可以设定组件的类型库的object pool属性来启用它
在WIN2000下组件管理的属性页中“启用对象池”的选项不可选,我也不清楚为什么,[:(]
 
1、object pooling指的是对象池化。COM组件能否支持池化与线程方式有直接的关系。
  Both和Neutral模式可以进行池化设置。
2、对于需要进行池化的COM组件,设计时一定要保证其“无状态”性,因为客户端
  获得的组件都是由对象池中取出的。
3、资源Pooling是由COM+直接在底层实现的。
4、Database Pooling是由数据库驱动部分来实现的,COM+只是
  使用者。
 
我试过了,设置COM对象为Neutral就可以在组件管理器中设置池化了。
多谢 weic !
 
多谢weic,通过设置线程,可以在组件管理器中设置池化了。
能否请大家介绍一下关于那几个线程和要实现池化或优化性能提高程序执行速度的关系。
 
多人接受答案了。
 
后退
顶部