跳转到主要内容

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在 developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。

所有提交的信息确保安全。

  • 关闭 [x]

当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

所有提交的信息确保安全。

  • 关闭 [x]

Informix 日志分析工具 onlog 及其在事务跟踪分析中的应用

邓宗海 (zhdeng@cn.ibm.com), 技术支持工程师, IBM
作者在客户支持过程中的实际经历写作而成是一名有丰富经验的技术支持工程师,本文就是根据工作过程中的实际经历写作而成。

简介: Informix 数据库安装简单,管理方便,性能强大,大量应用在金融电信领域的联机交易系统中。 Informix 提供的一系列管理工具帮助系统管理员快速的监控并收集数据库的信息,快速诊断问题提供了有效的手段。本文介绍使用 onlog 工具在一实际案例中怎么追踪分析事务处理过程,并最终排除系统故障。

发布日期: 2008 年 4 月 11 日
访问情况 : 1608 次浏览
评论: 


onlog 工具简介

onlog 命令可以用来显示 Informix 数据库的逻辑日志内容,在数据库处于 offline 状态时,onlog 命令只读取磁盘上的逻辑日志;而数据库处于 quiescent 或者 online 模式,onlog 还会同时把共享内存中逻辑日志缓冲区的内容一并读出。因此 onlog 对分析追踪数据库在某个交易处理过程中对数据库做了哪些修改,非常有用。

onlog 命令可以带不同的参数来调用,详细的命令说明请参考 Informix 《系统管理员参考手册》。onlog –l 列出了详细的逻辑日志记录,从中可以对一个事务相关动作进行跟踪分析。

onlog –l 的输出中 type 字段包含了该逻辑日志记录的类型,BEGIN 类型记录标志了一个事务的开始,时间是该事务的开始时间。一个完整的事务处理状态在数据库的逻辑日志中是由一个记录序列来记载的,由 BEGIN 型记录开始,以 COMMIT 或 ROLLBACK 型记录结束。如下图 1 所示.


图 1。 逻辑日志片段示例
图 1。 逻辑日志片段示例

应用分析

某银行系统对交易中间件平台做了版本升级,涉及到数个应用系统:核心业务系统、网上银行、IC 卡交易及国际结算。升级之后 IC 卡和网上银行系统出现交易做不了的情况,网上银行系统的跨域交易未能提交到数据库系统( Informix ),中间件层面返回交易超时失败。

经过对数据库进行监控分析,数据库没有任何的故障现象,但是在交易中间件环节除了收到超时失败错误信息,也无法定位更详细的错误情况。

于是便只有从从数据库事务跟踪的层次来追踪在整个事务处理过程中数据库做了哪些动作,用 onlog –l 生成逻辑日志的详细记录,并根据时间找到相应时间段的逻辑日志记录。从下面的逻辑日志片段中,我们找到了与我们失败交易事务时间接近的 addr 为 cfb018、type 为 BEGIN 一条逻辑日志记录;下一条记录是 addr 为 cfb040、type 为 HUPBEF 的记录。


图 2。通过日志跟踪事务进程
图 2。通过日志跟踪事务进程

继续往下可以找到下面的逻辑日志记录信息,addr 为 cfd14c,type 为 XAPRECOM,是 TP/XA 跨库访问的预提交指令,这条记录表明数据库已经做好提交的准备,一旦接受到 COMMIT 指令,则对整个事务进行提交。


图 3。查找事务提交时的日志
图 3。查找事务提交时的日志

继续往下检查逻辑日志记录,我们找到一条 XAPRECOM 的后续记录,addr 为 d05050,类型为 ROLLBACK 的记录,数据库在接到 XAPRECOM 指令后,没有做 COMMIT,而是做了一个 ROLLBACK。


图 4。查找事务的执行情况日志
图 4。查找事务的执行情况日志

进一步比较 BEGIN 记录到 ROLLBACK 记录的时间,从 17:23:33 至 17:28:42 经历了 5 分 09 秒。

检查数据库的 onconfig 配置参数,发现下面的设置:

TXTIMEOUT                                 0x12c

这是缺省的事务超时时间:5 分钟, Informix 在接受到 XAPRECOM 指令后,等了 5 分中没有收到中间件的的 COMMIT 或 ROLLBACK 指令,对 TP/XA 型事务在超时后自动做出了回滚。

据此判断,交易的失败原因不在数据库层面,客户进一步集中精力在中间件层面进行分析,最终排除了故障。


总结

Informix 的 onlog 命令提供了很好的数据库事务级追踪分析手段,在上面的实际案例应用中有效的通过事务追踪排除了数据库层面的问题,为准确定位问题并促成问题的最终解决提供了诊断手段。


参考资源

通过查看 IM 专区 Informix 产品资源中心获得更多的有关 Informix 的文章、教程和多媒体课件等技术学习资源。

通过下载 Informix Dynamic Server Enterprise V11 试用版 体验 Informix 强大的联机事务处理(OLTP)功能。

通过学习 IBM 认证考试 918:Informix Dynamic Server 11 系统管理认证指南系列 掌握 Informix 的更多管理知识和技能。


关于作者

作者在客户支持过程中的实际经历写作而成是一名有丰富经验的技术支持工程师,本文就是根据工作过程中的实际经历写作而成。

关于报告滥用的帮助

报告滥用

谢谢! 此内容已经标识给管理员注意。


关于报告滥用的帮助

报告滥用

报告滥用提交失败。 请稍后重试。


developerWorks:登录


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 使用条款

 


当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在 developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。

请选择您的昵称:

当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

(长度在 3 至 31 个字符之间)


单击提交则表示您同意developerWorks 的条款和条件。 使用条款.

 


为本文评分

评论

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Information Management
ArticleID=300811
ArticleTitle=Informix 日志分析工具 onlog 及其在事务跟踪分析中的应用
publish-date=04112008
author1-email=zhdeng@cn.ibm.com
author1-email-cc=

标签

Help
使用 搜索 文本框在 My developerWorks 中查找包含该标签的所有内容。

使用 滑动条 调节标签的数量。

热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。

我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。

使用搜索文本框在 My developerWorks 中查找包含该标签的所有内容。热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。