哪位知道COM+中事务实现的原理?
问题如下:
写了一个数据库操作的类TDBOper,统一对数据库的操作嘛。
写了一个TThing类,用于向数据库中添加、修改或删除有关某种东西的记录,调用TDBOper类完成。为了调用方便,因此有关的事务就放在了TThing类中,外部调用时不用考虑事务了。
后来又写了个TPerson类,用于向数据库中添加、修改或删除有关人的记录。同样事务放在了TPerson类中,现在我想删除人的记录时顺便调用TThing类删除和人有关的东西,事务问题就出现啦:事务不能嵌套啊。如果先删除TThing,再重新声明事务删除TPerson,如果TPerson出错,还怎么回滚TThing?
现在想起COM+的好处了,组件间传递事务上下文,由最外层的组件负责事务的提交或回滚,真是精彩,可是它是怎么实现的啊?要是我这样的结构,该怎么实现这个功能?是否我的设计有问题,应该改一下?
各位还没回家过年的老兄们多多指点一下。