这是我从电子书上抄来的一段:
6. 资源
由于对象一直在不停地被创建、关闭,事务处理到处都在进行,因此MTS 必须提供一条途径让多个
对象共享某些有限或重要的资源。利用资源管理器(resource manager)和资源分配器(resource dispenser),
MTS就可以完成这一点。资源管理器用于管理持久型数据,如收支余额和财产总量等。Microsoft在MSSQL Server 中提供了一个资源管理器。资源分配器管理非持久资源,如数据库连接等。Microsoft为
ODBC 数据库连接提供了资源分配器,而Borland 为BDE 数据库连接提供了资源分配器。
如果一项事务用到了某些类型的资源,它就取得这些资源,使其成为事务的一部分,这样在事务
过程中对资源所做的改变就能够参与事务的提交或回滚操作。上面是抄的,按道理说链接应该是临时资源,但是应该MTS管理器不会立即关闭并释放
资源以便可以接受下一次的调用。你可以在MTS管理程序中设定关闭服务器的时间间隔。
上面是我根据书籍和自己编写程序的感觉。
6. 资源
由于对象一直在不停地被创建、关闭,事务处理到处都在进行,因此MTS 必须提供一条途径让多个
对象共享某些有限或重要的资源。利用资源管理器(resource manager)和资源分配器(resource dispenser),
MTS就可以完成这一点。资源管理器用于管理持久型数据,如收支余额和财产总量等。Microsoft在MSSQL Server 中提供了一个资源管理器。资源分配器管理非持久资源,如数据库连接等。Microsoft为
ODBC 数据库连接提供了资源分配器,而Borland 为BDE 数据库连接提供了资源分配器。
如果一项事务用到了某些类型的资源,它就取得这些资源,使其成为事务的一部分,这样在事务
过程中对资源所做的改变就能够参与事务的提交或回滚操作。上面是抄的,按道理说链接应该是临时资源,但是应该MTS管理器不会立即关闭并释放
资源以便可以接受下一次的调用。你可以在MTS管理程序中设定关闭服务器的时间间隔。
上面是我根据书籍和自己编写程序的感觉。
2. 如果后端是SQL的话, 用SQLOLEDB去连数据库. 在连之前disable OLEDB 的session pooling - 这是通过registry中OLEDB Service实现的. MSDN 中有详细步骤.不过, 我觉得不是"关闭服务器的时间间隔"的原因.
COM+组件编程技术内幕的书。有VC VB Java的范例。
问题的关键应该是如果dllhost仍然在, 那object被deactivated 后是不是会保持原状态. 我还没有reproduce这问题, 不过理论上是应该不会保持的确 - 除非是object pooling(VC) 或OLEDB Session Pooling 的原因.
這樣你都要頂?
那你不是成日都要頂了?
怎麼還有空上這來轉啊
呵呵。。
兩次調用的是同一連接嗎
沒有用Pooling嗎?(到MMC裡面看清除點啊!)
連接真的是共用的嗎?還有。。自己琢磨琢磨吧。。
我也說不了這麼多啦
這樣你都要頂?
那你不是成日都要頂了?
怎麼還有空上這來轉啊
呵呵。。
兩次調用的是同一連接嗎
沒有用Pooling嗎?(到MMC裡面看清除點啊!)
連接真的是共用的嗎?還有。。自己琢磨琢磨吧。。
我也說不了這麼多啦我也頂。
我是用VB写的,使用sqloledb连接服务器SQL7。
可能是oledb的session pooling的关系,我再放一个静态变量进去应该就能够知道了。
不过如果connection对象被销毁了,oledb的pooling如何自动恢复到connection对象上的?
估计只有组件实现了iobjectcontrol接口才能真正使用到JIT功能。
to GoldenLion:能不能推荐几本关于COM+的书,我看了<深入理解COM+>,可都是点到为止,不够看.