图书目录

目    录

第1篇  入  门  篇

第1章  Tuxedo概述 2

1.1  什么是 Tuxedo 系统 2

1.2  Tuxedo 的历史及发展 2

1.1.1  Tuxedo的产生 3

1.2.2  Tuxedo 的发展 3

1.3  Tuxedo 支持的平台 5

1.4  Tuxedo的技术架构 6

1.4.1  客户机/服务器模式 6

1.4.2  Tuxedo ATMI体系结构 10

1.4.3  Tuxedo CORBA体系结构 13

1.4.4  ATMI与CORBA对比 17

1.5  Tuxedo 系统的关键特性 17

1.5.1  名字服务和位置透明性 17

1.5.2  强大的C/S通信能力 17

1.5.3  强大的联机交易性能 18

1.5.4  强大的分布式事务协调能力 18

1.5.5  完善的负载均衡机制 18

1.5.6  数据依赖路由 18

1.5.7  请求的优先级 19

1.5.8  容错和透明故障迁移 20

1.5.9  安全性 20

1.5.10  开放性和易用性 20

1.5.11  先进的组织架构 21

1.6  Tuxedo 与其他产品横向与纵向的比较 21

1.6.1  CICS 简介 21

1.6.2  Tuxedo 和 CICS 的对比 22

第2章  Tuxedo的简单安装和运行 24

2.1  安装前准备 24

2.1.1  检查软件包 24

2.1.2  必备的硬件和软件 24

2.1.3  如何获得安装介质及文档 24

2.1.4  Tuxedo许可证 24

2.2  快速安装 25

2.2.1  Tuxedo环境要求 25

2.2.2  内核参数的调整 25

2.2.3  进行Tuxedo安装 25

2.2.4  兼顾需要License的版本 28

2.3  部署应用(simpapp例子) 29

2.3.1  修改配置文件 29

2.3.2  加载配置文件 29

2.3.3  启动Tuxedo 30

2.3.4  相关的日志文件 30

2.4  编译和运行 30

2.4.1  编译程序 30

2.4.2  运行程序 31

2.5  卸载Tuxedo 31

第2篇  基  础  篇

第3章  OLTP基本知识 34

3.1  三层或多层C/S架构 34

3.2  事务的概念 35

3.2.1  什么是事务 35

3.2.2  什么是全局事务 35

3.2.3  XA规范 36

3.3  IPC机制简介 37

3.3.1  命名管道 37

3.3.2  消息队列 37

3.3.3  信号量 38

3.3.4  共享内存 38

3.3.5  IPC资源相关的操作系统内核参数 38

第4章  Tuxedo的基本概念 39

4.1  域Domain 39

4.1.1  域的概念和范围 39

4.1.2  为什么要使用域 39

4.2  逻辑机器Machine 39

4.2.1  Machine的概念和范围 39

4.2.2  为什么使用Machine 40

4.3  服务器组Group 40

4.3.1  组的概念和范围 40

4.3.2  为什么要使用组 40

4.4  服务进程Server和服务Service 40

4.4.1  什么是Server和Service 40

4.4.2  Server和Service的关系 40

4.4.3  服务进程中的主要函数 41

4.5  Tuxedo通信方式综述 41

4.5.1  请求/应答式通信 41

4.5.2  会话方式tpsend()/tprecv() 45

4.5.3  通知广播tpnotify()/tpbroadcast() 47

4.5.4  事件代理tppost()/tpsubscribe() 49

4.5.5  队列存储tpenqueue()/tpdequeue() 50

4.6  Tuxedo多机部署 52

4.6.1  Tuxedo集群 52

4.6.2  及多套Tuxedo应用之间的通信 52

4.7  Tuxedo远程客户端 52

4.7.1  什么是远程客户端 52

4.7.2  WSL/WSH配置与工作机理 53

4.7.3  Java远程客户端接入Jolt 54

第5章  Tuxedo主要的目录结构 57

5.1  总体目录结构分布 57

5.2  可执行文件说明 57

5.3  提要系统目录udataobj 58

5.4  C语言头文件和库 58

第6章  Tuxedo配置相关文件 59

6.1  几个关键环境变量 59

6.2  系统配置文件UBB及其内容 60

6.2.1  *RESOURCES 段的配置 61

6.2.2  *MACHINES段的配置 62

6.2.3  *GROUPS段的配置 63

6.2.4  *NETWORK段的配置 63

6.2.5  *SERVERS段的配置 63

6.2.6  *SERVICES段的配置 64

6.2.7  *ROUTING段的配置 64

6.3  域配置文件DMCONFIG及其内容 65

6.3.1  域(Domain)简介 65

6.3.2  Tuxedo域划分原则 65

6.3.3  域(Domain)的功能 66

6.3.4  Tuxedo Domain的配置 66

6.4  日志文件ULOG 67

第3篇  实  施  篇

第7章  Tuxedo应用的部署模式 70

7.1  单机SHM模式 70

7.2  多机MP模式 72

7.3  多域模式 77

7.4  各种模式的比较 81

7.5  Tuxedo与多种平台连通 83

7.5.1  与其他系统的互联概要 83

7.5.2  经典的WTC 83

7.5.3  JCA  Adapter新特性 88

第8章  Tuxedo常用的管理操作 90

8.1  启停Tuxedo应用 90

8.1.1  相关应用环境 90

8.1.2  启动Tuxedo应用 92

8.1.3  停止Tuxedo应用 92

8.2  管理和监控 93

8.2.1  一般管理监控tmadmin 93

8.2.2  域管理监控dmadmin 96

8.2.3  队列管理监控qmadmin 97

8.3  动态配置tmconfig 105

8.3.1  概述 105

8.3.2  配置tmconfig运行环境 105

8.3.3  tmconfig常用操作 106

8.4  TSAM 107

8.4.1  TSAM简介 107

8.4.2  TSAM安装 107

8.4.3  TSAM配置 112

8.4.4  TSAM监控 113

8.4.5  TSAM监测预警 114

8.5  高可用性 115

8.5.1  高可用性概述 115

8.5.2  高可用性详细分析 116

8.6  Tuxedo如何打补丁 118

8.6.1  备份 118

8.6.2  补丁升级 118

8.6.3  重启应用 119

第9章  如何用好全局事务 120

9.1  什么是全局事务 120

9.2  本地事务的优缺点 120

9.3  Tuxedo对事务的控制与管理 120

9.4  常用事务相关的函数 121

9.5  数据库连接 122

9.5.1  TMS介绍 122

9.5.2  XA模式与NO-XA模式 123

9.5.3  Tuxedo与各种数据库的连接 123

9.6  全局事务的使用规则 124

9.6.1  谁发起谁结束 124

9.6.2  不允许嵌套 125

9.6.3  处理好超时 125

9.7  事务挂起的问题 125

第10章  Tuxedo性能调优 127

10.1  目标描述 127

10.2  调优独立的Tuxedo服务 127

10.3  将相似的Tuxedo服务分组到一个SERVER 129

10.4  调整SERVER数量 131

10.5  FML性能 134

10.6  额外的性能参数 135

10.6.1  多个WSH连接 135

10.6.2  关闭WSL / WSH加密 136

10.6.3  打开WSL / WSH压缩 136

10.6.4  机器类型 136

10.6.5  SPINCOUNT 136

10.6.6  去掉授权和审计安全 137

10.6.7  关闭多线程处理 137

10.6.8  关闭XA事务 137

第4篇  诊  断  篇

第11章  Tuxedo监控 140

11.1  监控Tuxedo应用的方法 140

11.2  可以监控的系统和应用数据 141

11.3  使用管理控制台监控应用 141

11.4  使用命令行方式监控 141

11.5  使用EventBroker监视应用程序 141

11.5.1  相关API介绍 142

11.5.2  相关例子参考 143

11.6  使用MIB监视应用程序 144

11.7  使用日志文件来监控 147

11.7.1  Tuxedo日志的分类 147

11.7.2  Tuxedo事务日志 147

11.7.3  Tuxedo用户日志 149

第12章  服务core dump分析 151

12.1  什么是服务core dump文件 151

12.2  什么情况可以导致core dump文件生成 151

12.3  服务器core dump文件探查 151

12.3.1  检查系统环境以保证core dump生成 152

12.3.2  保存core文件 152

12.3.3  找到core文件并使用其探测错误成因 153

12.3.4  探查错误的根源 154

12.4  core dump成因案例 157

12.4.1  为strings分配太少的内存 157

12.4.2  使用已经释放的内存 158

12.4.3  在scanf调用丢掉& 158

12.4.4  用非法的参数调用函数 158

12.4.5  没有分配内存给指针 158

12.4.6  没有初始化变量 158

12.5  错误信息的含义 158

12.5.1  总线错误 159

12.5.2  内存错误 159

12.5.3  I/O陷阱 159

12.5.4  跟踪/BPT陷阱 159

12.5.5  浮点异常 160

12.5.6  分段错误 160

12.5.7  非法命令 160

第13章  异常高CPU占用率故障 161

13.1  异常高CPU占用率 161

13.2  异常高CPU占用率的伴随症状 161

13.3  异常高CPU占用率探查 161

13.3.1  探查概述 161

13.3.2  初步探查 162

13.3.3  进一步跟踪 162

13.4  异常高CPU占用率故障排除策略 165

第14章  常规服务器阻塞故障 166

14.1  确认是服务器阻塞 166

14.2  服务器阻塞的可能原因 166

14.3  服务器阻塞的探查 166

14.3.1  Solaris 167

14.3.2  Linux 170

14.3.3  AIX 171

14.3.4  HP-UX 172

14.3.5  Windows 173

14.4  故障排查清单 175

14.5  进程挂起例子分析 175

14.5.1  进程挂起在sleep循环中 175

14.5.2  进程一直等待数据库查询大数据 175

14.5.3  死锁:不同SERVER中的服务相互调用 175

第15章  内存不足和内存泄漏故障 177

15.1  问题描述 177

15.2  问题诊断 177

15.2.1  进程地址空间及物理内存的区别 177

15.2.2  为什么这个问题会发生 177

15.3  问题研究 178

15.4  分析与检测内存泄漏 179

15.4.1  监控进程虚拟内存大小 179

15.4.2  隔离应用程序来跟踪内存泄漏 183

15.4.3  隔离应用服务 184

15.4.4  隔离应用的组织机构的库/代码 184

15.5  内存分析工具 184

15.5.1  memwatch 184

15.5.2  Purify 185

15.5.3  Valgrind 186

15.5.4  Insure++ 186

15.6  常见的内存泄漏的原因 187

15.6.1  非成对使用tpalloc()/malloc()与tpfree()/free() 187

15.6.2  重写指针 187

15.6.3  C库函数的bug 188

第16章  与全局事务XA相关的故障 189

16.1  问题描述 189

16.2  通过配置让Tuxedo 支持事务 189

16.2.1  配置 Tuxedo XA 189

16.2.2  创建事务管理器和XA服务器 190

16.2.3  XA-OPENINFO 字符串 191

16.2.4  TMS服务器 192

16.3  运行时问题 193

16.3.1  调用tx_open() 或tpopen() 失败 193

16.3.2  启发式失败 193

16.3.3  xa_start ()返回XAER_RMERR 193

16.3.4  xa_start()= -9 问题 194

16.3.5  Oracle TMS挂起错误 195

16.4  XA跟踪 195

16.4.1  TMTRACE 195

16.4.2  DbgFl 196

第17章  IPC相关故障 198

17.1  Tuxedo使用的IPC 198

17.1.1  信号量(Semaphore) 198

17.1.2  消息队列(Message Queue) 198

17.1.3  共享内存(Shared Memory) 199

17.1.4  Tuxedo 使用的IPC资源 199

17.1.5  定义IPC限制 199

17.2  IPC设置 200

17.3  IPC命令 201

17.3.1  ipcs 202

17.3.2  ipcrm 202

17.3.3  tmipcrm 203

17.3.4  IPC 清除脚本 204

17.3.5  bbsread 204

17.4  IPC常见疑难问题 205

第18章  一般网络故障 207

18.1  防火墙及防火墙相关故障 207

18.2  网络状态查询netstat 207

18.3  网络报文追踪 208

18.4  其他网络工具 210

18.4.1  ping命令 210

18.4.2  telnet命令 211

18.4.3  ifconfig 212

18.4.4  ipconfig 212

18.4.5  网络压缩 213

18.5  Tuxedo多机架构(MP) 213

18.5.1  Tuxedo MP应用的注意事项 213

18.5.2  负载均衡网络应用程序 213

18.5.3  常见问题 214

18.5.4  用tmadmin监控 215

18.6  Tuxedo的多域架构(Domain) 217

18.6.1  DMCONFIG 常见配置问题 218

18.6.2  使用dmadmin监控domain 218

18.7  故障分类排除 219

18.7.1  Tuxedo MP应用 219

18.7.2  Tuxedo Domain应用 220

第19章  WTC和JOLT支持模式 221

19.1  重温什么是WTC和JOLT 221

19.1.1  概述 221

19.1.2  WebLogic Txuedo 连接器介绍 221

19.1.3  JOLT介绍 221

19.2  什么引发WTC和JOLT故障 222

19.2.1  JOLT和WTC问题主要的两种形式 222

19.2.2   选择适当技术:JOLT VS WTC 222

19.2.3  引发JOLT和WTC错误的主要原因 222

19.3  WTC和JOLT相关故障的症状及解决方法 223

19.3.1  JOLT常见问题及解决方法 223

19.3.2  WTC常见问题及解决方法 225

19.4  WTC和JOLT故障排查清单 226

19.4.1  WTC故障排除步骤 226

19.4.2  JOLT故障排除步骤 226

第5篇  高  阶  篇

第20章  Tuxedo的COBOL编程 228

20.1  运行环境配置 228

20.1.1  Tuxedo COBOL数据记录类型 228

20.1.2  如何使用FML 数据类型 233

20.1.3  Tuxedo COBOL客户端编程 236

20.1.4  Tuxedo COBOL服务器端编程 238

20.2  Tuxedo下使用COBOL编程与C语言编程的异同 245

20.3  使用COBOL编写Tuxedo程序的局限性 245

20.3.1  FML支持的局限性 245

20.3.2  COBOL语言编译的局限性 245

20.3.3  开发人员要求比较高 246

20.3.4  错误处理开销 246

20.3.5  数据类型的使用相对有限 246

20.4  Tuxedo下COBOL与C语言的混合编程及模块集成 246

20.4.1  混合编程规则 246

20.4.2  COBOL调用C 247

20.4.3  C调用COBOL 249

第21章  基于Tuxedo对大机应用的迁移——ART 251

21.1  ART简介 251

21.2  Application Rehosting Workbench作业运行环境 251

21.2.1  关键特性 251

21.2.2  优点 251

21.2.3  流程简介 252

21.2.4  详细流程 252

21.3  ART for CICS作业运行环境 255

21.3.1  关键特性 255

21.3.2  优点 255

21.3.3  流程简介 256

21.3.4  详细流程 256

21.4  ART for Batch 作业运行环境 259

21.4.1  流程简介 259

21.4.2  详细流程 260

后记 264

??

??

??

??

XII

叱咤风云:Tuxedo企业级运维实战

XI

目录