WEB开发网
开发学院数据库DB2 DB2 for Linux, UNIX, and Windows 的锁事件,第 ... 阅读

DB2 for Linux, UNIX, and Windows 的锁事件,第 3 部分: 使用 DB2 9.7 中的锁事件监控器来解决并发性问题

 2010-08-03 00:00:00 来源:WEB开发网   
核心提示: 在另一个会话中,执行另一个事务,DB2 for Linux, UNIX, and Windows 的锁事件,第 3 部分: 使用 DB2 9.7 中的锁事件监控器来解决并发性问题(4),根据现有薪水给每个经理 10% 的奖金,如清单 7 所示,为了让操作系统找到 Java 编译器,javac 二

在另一个会话中,执行另一个事务,根据现有薪水给每个经理 10% 的奖金,如清单 7 所示。

清单 7. 第二个事务:给所有经理 10% 的奖金

db2 "CONNECT TO SAMPLE" 
db2 +c "UPDATE EMPLOYEE SET BONUS = SALARY * 0.1 WHERE JOB = 'MANAGER'" 

由于第一个事务锁住所有经理和其他员工行,锁超时 10 秒后发生(记住 LOCKTIMEOUT 参数设置),第二个事务的 UPDATE 语句失败。

清单 8. DB2 返回的锁超时错误

SQL0911N The current transaction has been rolled back because of a deadlock or timeout 
  Reason code "68". SQLSTATE=40001 

锁超时事件的信息被写入非格式化表 EMDATA.TAB_LOCKING 中:执行 CREATE EVENT MONITOR 语句时所指定的。为了读取并格式化锁监控器收集的信息,使用名为 db2evmonfmt 的工具,它是用 Java 编写的。在第一次使用前,必须先编译。可以在 DB2 安装目录的 samples 子目录找到该工具的源代码(包括相应 XML 表单的样式表)。在编译 Java 源代码之前,将两个文件(源代码 + 样式表)复制到当前工作目录,如清单 9 所示。

清单 9. 复制 db2evmonfmt 工具的源文件

copy "C:\Program Files\IBM\SQLLIB\samples\java\jdbc\db2evmonfmt.java" . 
copy "C:\Program Files\IBM\SQLLIB\samples\java\jdbc\DB2EvmonLocking.xsl" . 

需要 JDK (Java Development Kit) 来编译 db2evmonfmt 工具。由于 JDK 是随每个 DB2 服务器产品安装的,可以使用 DB2 安装程序的 Java 编译器(javac)。为了让操作系统找到 Java 编译器,javac 二进制文件必须在调用前包含在 PATH 变量中,如清单 10 所示。

上一页  1 2 3 4 5 6 7 8  下一页

Tags:DB for Linux

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接