db2 应用的最常见状态(转)
db2 的应用最常见的状态为UOW Executing, UOW Waiting, Connect Completed等,这里做一个简单的介绍。
UOW全称是Unit Of Work, 可以认为是事务。
Connect Completed: 应用连库成功了。
UOW Executing: 应用正在执行某个SQL语句
UOW Waiting: 应用执行完一条SQL了,在等着执行同一事务中下一条SQL。 或者执行完了一个事务,在等着执行下一个事务。
Commit Active: 在做commit操作
Lock Wait: 在等其他应用hold住的锁
Rollback Active: 在做rollback操作
Pending Remote Quest: DPF环境下才有,在等其他节点的响应
Federated request pending: 联邦环境才有,在等联邦数据源的返回结果
下面的示例中,应用连接到数据库,完成了两个事务,并断开与数据库的连接,分别指示了各个时间的DB2应用的状态
$ db2 connect to sample <--Database Connect Pending <-- Connect Completed $ db2 +c "update t1 set id = 200 where id = 100" <--Uow Executing <--Uow Waiting $ db2 +c "insert into t1 values(300)" <--Uow Executing <--Uow Waiting $ db2 +c "select * from t1 where id = 300" <--Uow Executing <--Uow Waiting $ db2 commit <--Commit Active <--Uow Waiting $ db2 +c "insert into t2 values(200)" <--Uow Executing <--Uow Waiting $ db2 commit <--Commit Active <--Uow Waiting $ db2 terminate <--Database Disconnect Pending
补充解释1:
如果应用状态是UOW Waiting,如何判断它是“等着执行同一事务中下一条SQL”,还是“执行完了一个事务,在等着执行下一个事务”?
在db2 +c "select * from t1 where id = 300" 命令完成之后,抓取应用的snapshot,可以看到UOW stop timestamp为空,说明这个事务目前没有结束,在等着执行下一条SQL. Application Snapshot
Application handle =
Application status = UOW Waiting UOW start timestamp = -- ::32.931235
UOW stop timestamp =
UOW completion status =
在第一条commit命令之后,再查看snapshot,会发现UOW stop timestamp不为空了,说明上一个UOW完成,正等待执行下一个事务
UOW start timestamp = -- ::32.931235
UOW stop timestamp = 2017-03-07 13:24:47.092684
UOW completion status = Committed - Commit Statement
补充解释2:
有时应用的状态是Commit Active,Commit Active是指应用正在做提交操作,当db2loggw把日志记录写到磁盘上之后,这个状态就会消失。
如果一个应用保持CommitActive状态太久,比如好几秒钟,这说明有性能问题,原因要么是db2loggw太忙,要么是日志所在磁盘的IO太繁忙。
对于前者,可以加大LOGBUFSZ以避免log buffer full(可以从MON_GET_DATABASE表函数的num_log_buffer_full列查看log buffer full的次数) 对于后者,可以通过'iostat -DT 1'命令查看avgserv列,如果超过3 ms,这说明需要检查文件系统的布局和存储的配置了。最佳的实践是将容器磁盘和存放日志的磁盘物理上分开。
补充解释3:
事务占用日志情况
可以通过db2pd -db <dbname> -transactions 查看每个事务正在使用的日志的情况。
查看每个应用使用的日志大小 db2 "select application_handle,UOW_LOG_SPACE_USED,UOW_START_TIME FROM TABLE(MON_GET_UNIT_OF_WORK(NULL,-1)) order by UOW_LOG_SPACE_USED" 查看数据库整体日志的作用率:
https://www.ibm.com/support/knowledgecenter/en/SSEPGG_11.1.0/com.ibm.db2.luw.sql.rtn.doc/doc/r0060791.html 重点关注的参数有:
ApplHandl
The application handle of the transaction.
SpaceReserved
The amount of log space that is reserved for the transaction.
LogSpace
The total log space that is required for the transaction, including the used space and the reserved space for compensation log records.
db2 应用的最常见状态(转)的更多相关文章
- 了解一下Http常见状态码、Http协议的工作特点和原理、Http请求Post与Get的区别
HTTP协议常见状态码状态码的作用负责标记客户端请求服务器的返回结果,标记服务器端的处理是否正常,通知出现的错误等等职责,借助客户端可以知道客户端是否正常请求服务端.五大类:1XX(信息类状态码,接收 ...
- HTTP协议、HTTP请求方法、常见状态码、HTTP消息
HTTP协议 客户端请求,服务端响应.浏览器与服务器不建立持久连接,响应后连接失效. HTTP请求方法 一.GET GET方法用于获取请求页面的指定信息. 二.HEAD 除了服务器不能在响应里返回消息 ...
- http协议与常见状态码
什么是http: http是属于应用层(基于tcp的连接方式)的面向对象的协议,是计算机通过网络通信的规则,使得浏览器向web服务器请求信息和服务 http协议特点: http是一种无状态协议(对食物 ...
- tcp常见状态
常见状态 1.建立连接 2.关闭连接
- http常见状态码有哪些?
ajax常见面试题 1:什么是ajax?ajax作用是什么? 异步的javascript和xml AJAX 是一种用于创建快速动态网页的技术. ajax用来与后台交互 2:原生js ajax请求有几个 ...
- 计算机网络【9】—— HTTP1.0和HTTP1.1的区别及常见状态码
一.HTTP1.0与HTTP1.1的区别 1.HTTP 1.1支持长连接(PersistentConnection)和请求的流水线(Pipelining)处理 HTTP 1.0规定浏览器与服务器只保持 ...
- URI、URL、请求、响应、常见状态代码
URI:路径(统一资源标识符,包括本地地址和网络地址) URL是URI的一种子路径, URI范围比URL范围广. URL (Uniform Resource Locator,统一全球资源定位符): 通 ...
- Python Requests库 Get和Post的区别和Http常见状态码
(1) 在客户端,Get方式在通过URL提交数据,数据在URL中可以看到:POST方式,数据放置在HTML HEADER内提交. (2) GET方式提交的数据最多只能有1024 Byte,而P ...
- 19. HTTP协议二:HTTP请求与响应、常见状态码
HTTP请求与响应 HTTP请求 HTTP请求是指从客户端到服务器端的请求消息.HTTP请求主要由三部分构成,请求行.请求头(headers).body(请求数据). 上图是笔者用Charles抓包工 ...
随机推荐
- python2判断编码格式
def getCoding(strInput): ''' 获取编码格式 ''' if isinstance(strInput, unicode): return "unicode" ...
- 基于Ubuntu搭建Seafile专属网盘
系统要求: Ubuntu 16.04.1 LTS 64 位操作系统 安装 Seafile 服务器 安装依赖环境 在 Debian/Ubuntu 系统下,可以使用以下命令安装 MySQL: sudo a ...
- RabbitMQ使用技巧
一. net客户端介绍 http://www.cnblogs.com/hsyzero/p/6297644.html 二. RabbitMQ消息应答 执行一个任务可能需要花费几秒钟,你可能会担心如 ...
- OpenLayers典型部分概述
中文学习:http://www.openlayers.cn/portal.php 原文地址:https://www.jianshu.com/p/e693711a7008 一 OpenLayers核心职 ...
- 通过nginx中转获取不到IP的问题解决
第一步:在nginx.conf中配置反向代理时把真实IP带上,例如: server { listen 80; server_name myibook.com.cn; loca ...
- Git教程学习(四)
12. 分支管理场景 多人协同工作时,你在优化代码X,需要较长时间才能完成,未完成之前会影响整体代码的使用.于是写完的代码不能提交到版本库,提交就会影响别人使用整体的代码.不提交你就失去了git的版本 ...
- Spring Boot 2.0 整合Thymeleaf 模板引擎
本节将和大家一起实战Spring Boot 2.0 和thymeleaf 模板引擎 1. 创建项目 2. 使用Spring Initlizr 快速创建Spring Boot 应用程序 3. 填写项目配 ...
- What is the name of the “-->” operator?(Stackoverflow)
Question: After reading Hidden Features and Dark Corners of C++/STL on comp.lang.c++.moderated, I wa ...
- MXNET:多层感知机
从零开始 前面了解了多层感知机的原理,我们来实现一个多层感知机. # -*- coding: utf-8 -*- from mxnet import init from mxnet import nd ...
- 根据IP获取国家
国外的还算比较权威的IP地址库,而且免费,每天调用次数不超过1000免费.超过另收费. public string Ip2Country(string ip) { try { string url = ...