COM+包含事务的类调用时的-2147164157错误原因和解决
来源:互联网 发布:同学帮软件 编辑:程序博客网 时间:2024/05/17 13:09
COM+包含事务的类调用时的-2147164157错误原因和解决
一个需要事务的类每次当创建另一个COM+对象时就出现如下错误:
Method '~' of object '~' failed
错误号:-2147164157
调试良久,终不得其解,google新闻组搜索,得到下面信息
Error Number:
0x8004E003 ( -2147164157 )
Error Description:
You made a method call on a COM+ component
that has a transaction that has already aborted or
in the process of aborting.
This can be caused by two things that are known at this time:
1) SetComplete has been called after SetAbort was already called in the
transaction, and then a method of the object in the transaction is called
2) The method on the object is called when the transactions has been
cleaned
up due to a transaction timeout.
*** TRY THIS ***
1) After Calling SetAbort() raise an error (Err.Raise) to the caller so
they can handle
the abort correctly 2) Increase the transaction timeout for long queries,
or updates.
According to your description, you are pretty sure Child calls SetAborts
and Parent calls SetAborts. However its important to manually raise the
error from the child using Err.Raise after calling SetAbort.
Also, if you are using W2K, install SP1
以上信息似乎对我还是没有用,突然间我想到COM+的事务管理不支持嵌套,那么会不会在不同的包(package)之间其事务边界(bound)已经失效呢?因为我为了安装代理包方便,把组件按照功能和类型放在了不同的COM+应用程序中,这样的话就有了跨包(package)的调用和创建对象,当不使用事务时,没有什么问题;一旦在事务中调用和创建,便出现如上错误。我原来也碰到过这个情况,当时以为是COM+的事务不支持跨计算机的调用,现在终于明白了。
解决方法:把组件全部放在一个包内,调试通过。
- COM+包含事务的类调用时的-2147164157错误原因和解决
- COM+包含事务的类调用时的-2147164157错误原因和解决
- 和事务有关的几个问题 包含 com+ 事务 处理
- (用iis调用com来操纵Excel) 检索 COM 类工厂中 CLSID 为{00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005。8000401A的错误解决方法
- RTX Server SDK发提醒 解决:检索 COM 类工厂中 CLSID 为的组件时失败,原因是出现以下错误: 80070005
- AE调用GP工具“对COM组件的调用返回了错误 HRESULTE_FAIL”解决
- AE调用GP工具“对COM组件的调用返回了错误 HRESULTE_FAIL”解决
- 解决AE中GP工具错误 对 COM 组件的调用返回了错误 HRESULT E_FAIL
- 错误"控件包含代码块(即 <% ... %>),因此无法修改控件集合"的原因和解决方法
- 5.23飞快的内脑子解决:对COM 组件的调用返回了错误 HRESULT E_FAIL
- 在VS2010中调用COM Interop DLL操作Excel通过get_Range去获取Range时,会发生Object does not contain a definition for get_Range的错误。其原因和解决方案
- LNK2005错误的原因与解决
- 一个COM调用时出现的错误及解决办法
- 解决:对COM 组件的调用返回了错误 HRESULT E_FAIL
- 解决:对COM 组件的调用返回了错误 HRESULT E_FAIL
- 解决:对COM 组件的调用返回了错误 HRESULT E_FAIL
- 解决:对COM组件的调用返回了错误HRESULT E_FAIL
- C#操作IE浏览器 解决:COM 组件的调用返回了错误 HRESULT E_FAIL
- 简单的hibernate数据库插入例子
- 把asp程序封装成可执行文件(无需IIS web服务器)直接运行的管理系统
- 关于中小公司的测试组织与人力资源配备
- 字符串与二进制互相转化(不包含汉字)
- 在TDBGrid控件中为作修改过的记录进行标识!
- COM+包含事务的类调用时的-2147164157错误原因和解决
- VB编码规范
- 慎用或尽量不要用微软自带的sqlserver的jdbc驱动
- 小议学习java的浮躁心态(1)——引出篇
- 小议学习Java的浮躁心态(2)——分析篇
- 工作流模型分析(3)——流程发散聚合模型
- 工作流模型分析(3)——流程发散聚合模型(有图)
- 工作流模型分析_version_1.1
- 听用友总裁何经华先生讲座随感