有谁能指点关于调用需要事务的MTS组件首次运行慢的问题(200分)

  • 主题发起人 主题发起人 拓拓
  • 开始时间 开始时间

拓拓

Unregistered / Unconfirmed
GUEST, unregistred user!
我写了一个MTS组件,事务模式是Require a Transaction ,当客户端调用该
MTS组件的方法时,第一次运行要有几十秒时间(好像在启用事务),其后再运
行速度倒很快,不知哪位是否有解决办法.
另当有一段时间(大概几分钟)没有客户端调动此组件,再次调用时又需要几
十秒,但我已经将组件的关闭服务器项设置为空闲时保持运行(默认为3分钟
闲置关闭),是不是程序中要处理什么?难道我只有在中间层写一个每一两分
钟调用该组件的程序的这种办法吗?
开发环境:
中间层:win2k Server
客户端:win2k Professional ,win98se
 
MTS管理着一个商业对象池,当客户对MTS发出调用某个对象的请求时,MTS要从
注册表中找到它的存贮位置并调入商业对象池的内存中,并开始调用它的某一
方法以响应用户请求,完成后并不从池中删除该对象,而是保留它以快速响应其
它的客户端请求,直到内存不足且长时间没有新请求时才删除,这样做是为了提
高中间层的效率。
针对你的问题,好象可以用修改ODBC数据库联接的idletime空闲(分钟)改变
DATALINK对象的保留时间的办法来改善。
 
拓拓:如果你还要继续讨论请定期提前你的帖子,如果不想继续讨论请结束帖子。
 
迄今为止我还没有发现有效的解决办法,连合理的解释都没有找到。
望老猫保留一段时间,且慢慢研究着看 :-)
 
When you first call a mts component, Mts Server need create the component
and send it to client.So the process spends more time than you cost later.
If you call the component later,MTS Server just need get it from pool.
So I think the situation you meet is normal.
May be the time exceeds your expect.You could improve the performance of your
hardware.
 
把mts里com的属性改为支持, 第一次慢,以后就好了。
 
拓拓&一刀:下次再看到就杀了此贴
 
唉!此君看来是为了这个问题才注册的账号吧?估计不会再回来了?
可是这个问题呢?谁有答案?很多人问过,也有很多种回答,可是都不太“象”...
 
多人接受答案了。
 
to 拓拓:有答案了么?我想知道...
 
一刀:
第一次联接慢的问题看来目前还是无法解决,这不仅是Delphi写的MTS组件的问题,
我们这儿用VB,VC++写的MTS组件在第一次联接时均会出现此种情况(包括M$的Duwamish在
初始情况下启动也会有等待),看来这是MTS/COM+组件的"特性"了。
 
拓拓:
是的,肯定是MTS/COM自身的问题,我们的程序NT4.0下,客户是ASP
也有这个问题,其他人也是,与Delphi确实无关。
但是很多人说有解决办法,一看又是一些奇怪理由(忘了),所以也没有试验
以后有进展,可以互相通报着点... :-))
 

Similar threads

S
回复
0
查看
738
SUNSTONE的Delphi笔记
S
S
回复
0
查看
730
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部