快照监视器自描述数据流
在使用 db2GetSnapshot API 捕获快照之后,API 以自描述数据流的形式返回快照输出。 自描述数据包括数据属性,例如元素名称和大小。
图1 显示了数据流的结构, 表1 提供了可能返回的逻辑数据组和监控元素的一些示例。
备注 :示例和表格中的标识符使用描述性名称。 在实际数据流中,将在这些名称前加上 SQLM_ELM_
前缀。 例如,COLLECTED 在快照监视器输出中将显示为 SQLM_ELM_COLLECTED。 在实际数据流中,将在类型前加上
SQLM_TYPE_ 前缀。 例如,HEADER 在数据流中将显示为 SQLM_TYPE_HEADER。

- 每个逻辑数据组以指示其大小和名称的头开始。 此大小不包括头本身占用的数据量。
- 已收集头中的大小返回快照的总大小。
- 其他头中的大小元素指示该逻辑数据组中的所有数据的大小,包括所有下级分组。
- 监视元素信息在逻辑数据组头后面,并且也是自描述格式。
| 逻辑数据组 | 数据流 | 描述 |
|---|---|---|
| collected | 1000
标题 已收集 |
快照数据的大小(以字节计)。
指示逻辑数据组的开头。 逻辑数据组的名称。 |
4
u32bit server_db2_type sqlf_nt_server |
此监视元素中存储的数据的大小。
监视元素类型 - 不带符号的 32 位数字。 收集的监视元素的名称。 此元素的已收集值。 |
|
2
u16bit node_number 3 |
此监视元素中存储的数据的大小。
监视元素类型 - 不带符号的 16 位数字。 收集的监视元素的名称。 此元素的已收集值。 |
|
| db2 | 200
标题 db2 |
快照中级别数据部分的大小。
指示逻辑数据组的开头。 逻辑数据组的名称。 |
4
u32bit sort_heap_allocated 16 |
此监视元素中存储的数据的大小。
监视元素类型 - 不带符号的 32 位数字。 收集的监视元素的名称。 此元素的已收集值。 |
|
4
u32bit local_cons 3 |
此监视元素中存储的数据的大小。
监视元素类型 - 不带符号的 32 位数字。 收集的监视元素的名称。 此元素的已收集值。 |
|
. . .
|
. . .
|
|
| appl | 100
标题 应用 |
快照中的应用程序元素数据的大小。
指示逻辑数据组的开头。 逻辑数据组的名称。 |
4
u32bit locks_held 3 |
此监视元素中存储的数据的大小。
监视元素类型 - 不带符号的 32 位数字。 收集的监视元素的名称。 此元素的已收集值。 |
|
. . .
|
. . .
|
|
| agent | 50
标题 代理 |
应用程序结构的代理程序部分的大小。
指示逻辑数据组的开头。 逻辑数据组的名称。 |
4
u32bit agent_pid 12 |
此监视元素中存储的数据的大小。
监视元素类型 - 32 位数字。 收集的监视元素的名称。 此元素的已收集值。 |
|
. . .
|
. . .
|
db2GetSnapshot() 例程在用户提供的缓冲区中返回自描述格式快照数据。 将在与要捕获的快照类型相关联的逻辑数据分组中返回数据。
快照请求返回的每一项都包含指定大小和类型的字段。 该字段可用来对返回的数据进行语法分析。 字段的大小还可用来跳过逻辑数据组。 例如,要跳过数据库记录,需要确定数据流中的字节数。 使用以下公式来计算要跳过的字节数:
size of the db2 logical data grouping + sizeof(sqlm_header_info)