COM+组件object pool 请教高手! (50分)

  • 主题发起人 主题发起人 生命如歌
  • 开始时间 开始时间

生命如歌

Unregistered / Unconfirmed
GUEST, unregistred user!
我用cb6 做了一个事务数据模板COM+ 和一个事务对象COM+ 都设置了object pool 但事务对设为
object pool 后不能用,出错,改为不用object pool 就可以,而事务数据模板COM+两种情况都
没问题,错误提示为
asserte: intf !=0 @ d:/program files/borland/cbuilder6/include/vcl/utilcls.h/2912
press[Y]es to terminate,[N]o to continue and [C]ancel to Debug
 
我的程序给Object Pooling打上了勾,调用时很正常。我是在Type Library里设的,然后
重新编译,安装到COM+中。你是怎么做的?
 
请问你是不是用的CB6,如果是事务模板的没问题,就是事务对象设为object pool 后就不行
在新建这个事务对象实例时出现错,你是怎么建的
 
我用的是CB6/Win2000 SP2。
客户端代码:
TCOMIDMServer Obj1;
Obj1 = CoDMServer::Create();
S = Obj1->GetMyData();
ShowMessage(S);
 
请问 TCOMIDMServer Obj1;
是事务数据模板,或是事务对象
 
是一个Transaction DataModule对象,事务类型为需要事务。
 
DataModule对象,我也没问题,麻烦你试一个 事务对象的 谢谢
 
换了个Transaction Object也很正常,要不我把源码发给你?虽然程序非常简单,但把所有
东西都贴出来还是嫌多。(你拿去用了要再不行的话恐怕就是系统就问题了)
 
谢谢,请发到cqwydz@163.com
 
已发出,收到否?
 
谢谢兄弟,已收到,不过你的代码没有实现真正的object pool 哟! 你看W2K 中的管理工具
组件服务,找到那个组件,查看他的属性,灰色不能设置,如果设了,速度快很多。
 
我也不知道组件管理器中的选框为什么会变成不能选,但我在Type Library里是设了的。我
看了我机器上的所有COM+组件,“启用对象池”那里不是灰的就是白的,就是没有打了勾的,
是不是灰的就算是有了?
另外,你怎么知道速度会更快?我觉得除了第一次调用(因为要启动组件)比较慢以外,之
后都很快的呀。
 
我做的事务数据模板和事务对象都可以设置那个, 除了你设的那个位置,在CPP中
STDMETHODIMP_(BOOL) TQUERY_DATImpl::CanBePooled()
{
return TRUE;
改成TRUE
}
线程要设为both 才能在事务管理中设,我试过,效率才出来,要快得多
如方便,用QQ: 1072387 联系
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部