我们一个客户的系统今天坏了。先大致介绍一下该系统的简单构成。
一个 web 服务器,一个数据库服务器。 数据库服务器是 SQL server 2000, 处在局域网里,中间有防火墙分隔,不能从外界直接访问。
web 服务器上是 Windows 2000 server, IIS 5.0, 跑的 ASP + COM+ 程序。

以前跑的好好的程序,这几天忽然出现以下的错误现象:
在某个页面, 一提交就要等很久才有响应,然后提示一个超时错误。以及下列提示:

Microsoft OLE DB Provider for SQL Server 错误 '8004d00a'

不能在指定的事务处理器中获得新事务。

或者

Microsoft OLE DB Provider for SQL Server 错误 '8004d00a'

新事务不能登记到指定的事务处理器中。

我查看了一下,这个页面是我原先对旧系统改造的时候做的。以前别人做的 ASP 程序在复杂的数据库操作时居然没有加事务。我用 MTS 的事务功能简单的加了事务控制。大致像下面这样,大家都熟悉的,不再罗嗦。

<%@ Transaction=Required %>
<%
做一些数据库操作
.
if 某个条件 then
 ObjectContext.SetAbort
else
 ObjectContext.SetComplete
end if

function OnTransactionAbort
    Response.Write("Transaction Aborted.")
end function


function OnTransactionCommit
    Response.Write("Transaction Commited.")
end function
%>

为了诊断,我首先写了一个最简单的页面,其中简单的打开数据库连接,然后 SetComplete. 结果发现失败。。
然后注释掉声明事务处理的所有代码,Response.Write conn.State 查看数据库连接的状态。发现能正确的输出 1, 说明连接数据库是没有问题的。
而我一旦加入开始那句 <%@ Transaction=Required %> 则会立马重现原先的那个错误。
至此可以断定是系统的 MTS 服务出了问题。可是具体什么问题呢?
google 搜索了一堆有丝毫联系的文章,最终看到这个 http://support.microsoft.com/default.aspx?scid=kb;zh-cn;329332 还算有点帮助。当我照着做的时候才发现原来这个问题讲得是 Windows server 2003, 在 windows 2000 上不存在文中说的那个选项。
郁闷,只好继续搜。看了一堆不太相干的国外论坛上的帖子,最终找到了:
http://support.microsoft.com/default.aspx?scid=kb;en-us;250367
文中提到,如果要使用 MTS 分布式事务,有一个前提条件是两台机器之间能够通过 NetBIOS 或者 DNS 解析对方的机器名。而这个能否解析可以通过 ping 命令来验证。
我立刻在 web 服务器上执行了
ping db
结果却不是预想的 192.168.2.5, 而是 211.99.193.150 , 一个 internet 上的 ip 地址。
但是奇怪的是,我
ping -a 192.168.2.5 能够正确地解析为 db
不管怎么说,现在基本上可以判断这就是问题的所在了。只要把那个错误的解析给去掉就应该可以了。

后面我修改了本机的 lmhosts 文件强行加入一行
192.168.2.5 db
并且
ipconfig /flushdns
nbtstat -r
都执行了之后还重启都没用。

最终 icuc88 (http://www.jaron.cn/inspiration/) 提醒我修改了 hosts 文件。 同样是加入这个地址映射。
然后 ping 成功解析之后,我赶紧打开 IE, 测试一下程序,
Everything is OK now !

(因为问题比较少见,暂放首页, 希望对遇到类似问题的人有帮助)

转载于:https://www.cnblogs.com/RChen/archive/2005/03/09/115720.html

一次难忘的 MTS 故障的排除过程相关推荐

  1. 计算机常考应用分析题,计算机常见故障及排除

    这是我们东坡下载为大家准备的一篇计算机应用中的常见问题分析与故障排除,有需要想了解计算机常见故障及排除的朋友们可以来我们这里免费的下载这篇word,丰富详细的内容肯定是你们所需要的! 计算机应用中的常 ...

  2. V.35协议转换器指示灯告警常见故障以及排除方法解析

    我们在使用协议转换器的时候,可能常常会遇到一些故障问题,这个可能会困扰到很多朋友,在这里,杭州飞畅的小编专门整理了V.35系列协议转换器在使用过程中的一些常见的故障问题及解决方法,感兴趣的朋友可以一起 ...

  3. 串口服务器工作方式及常见异常故障问题排除方法介绍

    串口设备联网服务器就像一台带CPU.实时操作系统和TCP/IP协议的微型电脑,方便在串口和网络设备中传输数据.您可以在世界任何位置通过网络,用您的计算机来存取,管理和配置远程的设备.但是我们在实际使用 ...

  4. 2场直播丨MySQL 数据库最常见的 6 类故障的排除方法、2020数据技术嘉年华·金融峰会暨数据库大咖讲坛(第4期)...

    一.MySQL 数据库最常见的 6 类故障的排除方法 - 2020年11月12日 20:00 - 2020年11月12日 21:00 MySQL 无法启动?MySQL 连接不上?MySQL 挂起(hu ...

  5. SQL Server不存在或拒绝访问故障的排除

    SQL Server不存在或拒绝访问故障的排除 2012-05-16 11:35 王有翦 字号:T | T 某企业正常使用的一套C/S模式进销存系统,新增加的一台客户机在连接数据库服务器(安装SQL ...

  6. Windows XP系统常见故障简单排除

    转自:微点阅读  https://www.weidianyuedu.com/content/3617756289910.html 一. 开机故障 开机遇到的以下几种故障都可通过进入[安全模式]下进行处 ...

  7. 计算机故障诊断与失误,计算机系统故障诊断与维护常见故障及排除.ppt

    计算机系统故障诊断与维护常见故障及排除.ppt 第12章 常见故障及排除 12.1 计算机系统故障诊断与维护的步骤和原则 12.2 主机硬件设备故障分析 12.3 外部设备的故障 12.4 故障排除后 ...

  8. 计算机主机箱故障排除,计算机维护及常见故障的排除

    第13章计算机维护及常见故障的排除 1.CPU.().内存是计算机系统稳定运行的基础,这三者中的任何一个性能不稳定或不匹配都会对计算机的正常运行造成不良影响 A网卡 B键盘 C主板 D声卡 2.屏幕显 ...

  9. 计算机软件故障的排除方法,Windows 7系统常见小故障以及排除方法

    腾讯视频/爱奇艺/优酷/外卖 充值4折起 与XP相比,Windows 7的易用性和安全性有了很大提高,因此很多朋友都在使用Windows 7,不过系统用久了,这样那样的问题也随之而来,下面列出几个经典 ...

最新文章

  1. Spring Cloud下微服务权限方案
  2. python从1到n出现了多少个1-Python解决 从1到n整数中1出现的次数
  3. java中添加数组元素
  4. unity3D打包发布Apk详细步骤
  5. “我的父老乡亲”公益征文活动 ——讲述平凡故事,记录小的伟大
  6. 文件包含——apache日志文件包含shell(四)
  7. CCF2018-3-2 碰撞的小球
  8. 关于 Swift 单例的例子
  9. 全网首发:FreeType加载字体图像的几个关键函数
  10. Python+pyecharts研究周杰伦歌词中的 秘密
  11. MATLAB有限元二维编程(三角单元)
  12. 京东物流启动最大规模“春节也送货”,海拔近4000米拉萨也能送
  13. 反素数java_【Java自学】 反素数
  14. 今日头条自媒体搬运原创视频批量去水印消重包推荐0基础教程如何快速找素材进行伪原创-自媒体爆文之如...
  15. Linux之jkd、tomcat、mysql安装
  16. 数据结构--栈--两栈共享空间
  17. 100000 行级别数据的 Excel 导入优化之路
  18. 华为 OSPF基本概念与基础配置
  19. 避免常见的六种HTML5错误用法
  20. ##方法参数类型以及类型问题的研究

热门文章

  1. 简单粗暴的多目标跟踪神器 – DeepSort
  2. CVPR2020 | 当目标跟踪遇上对抗攻击
  3. 再添一所!华中科技大学成立人工智能与自动化学院
  4. Camera TTC估计
  5. 面向小姐姐的编程——java面向对象之final、static关键字
  6. 获取3的倍数_植物分类的基础——获取广泛来源的资料【乱翻书】
  7. php+js实现异步图片上传,JavaScript实现异步图像上传功能
  8. 计算机考研408试题及答案,2015年计算机专业408考研试题及答案
  9. java集合合并_【Java必修课】各种集合类的合并(数组、List、Set、Map)
  10. sc925 文档服务器,dell服务器磁盘阵列配置手册.docx