Download as pdf or txt
Download as pdf or txt
You are on page 1of 378

Front cover

IBM TotalStoragee
Expert Reporting
How to Produce Built-In and Customized Reports

Get familiar with SQL and the tools you


need for reporting

See how to create built-in


reports

Learn to produce
customized reports

Daniel Demer
David McFarlane

ibm.com/redbooks
International Technical Support Organization

IBM TotalStorage Expert Reporting: How to


Produce Built-In and Customized Reports

October 2003

SG24-7016-00
Note: Before using this information and the product it supports, read the information in
“Notices” on page xi.

First Edition (October 2003)

This edition applies to Version 2, Release 1 of IBM TotalStorage Expert (product number
5648-TSE).

© Copyright International Business Machines Corporation 2003. All rights reserved.


Note to U.S. Government Users Restricted Rights -- Use, duplication or disclosure restricted by GSA ADP
Schedule Contract with IBM Corp.
Contents

Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii

Notices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
Trademarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii

Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii
The team that wrote this redbook. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii
Become a published author . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiv
Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiv

Chapter 1. IBM TotalStorage Expert reporting overview . . . . . . . . . . . . . . . 1


1.1 The scope and structure of this book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 What is IBM TotalStorage Expert? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Ordering information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

Chapter 2. TotalStorage Expert data gathering and storage. . . . . . . . . . . . 9


2.1 Product co-requisite components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2 Report mechanics and graphical presentation . . . . . . . . . . . . . . . . . . . . . 11
2.3 DB2 Universal Database (UDB) overview. . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3.1 Introduction and a brief history of DB2 . . . . . . . . . . . . . . . . . . . . . . . 13
2.3.2 DB2 database servers today. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3.3 DB2 and data management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3.4 RDBMS overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3.5 Entities between a user and the data . . . . . . . . . . . . . . . . . . . . . . . . 18
2.3.6 DB2 UDB user roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.3.7 DB2 UDB components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.4 TotalStorage Expert DB2 UDB tables overview . . . . . . . . . . . . . . . . . . . . 33
2.5 TotalStorage database table organization. . . . . . . . . . . . . . . . . . . . . . . . . 35
2.6 TotalStorage Expert database tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

Chapter 3. SQL overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45


3.1 Getting familiar with SQL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.2 Understanding a relational database table . . . . . . . . . . . . . . . . . . . . . . . . 46
3.2.1 Data types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.2.2 Keys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.2.3 Connecting to a database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.3 Writing Structured Query Language (SQL) . . . . . . . . . . . . . . . . . . . . . . . . 59
3.4 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

© Copyright IBM Corp. 2003. All rights reserved. iii


Chapter 4. Data extraction tools and tips . . . . . . . . . . . . . . . . . . . . . . . . . . 79
4.1 General recommendations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
4.2 Ways to run SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
4.3 IBM DB2 Utilities Command Center features . . . . . . . . . . . . . . . . . . . . . . 83
4.3.1 Command line processor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
4.3.2 Command Center . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
4.4 IBM DB2 DataJoiner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
4.5 QMF for Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
4.6 Requirements for reports. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

Chapter 5. TotalStorage Expert management built-in reports . . . . . . . . 113


5.1 Tree structure of TotalStorage built-in reports. . . . . . . . . . . . . . . . . . . . . 114
5.1.1 TotalStorage Expert Built-in reports for ESS by type . . . . . . . . . . . 114
5.1.2 TotalStorage Expert built-in reports for ETL (VTS) by type. . . . . . . 115
5.2 Extracting data from built in reports for customization . . . . . . . . . . . . . . 117
5.2.1 Performance report example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
5.2.2 Performance report example #2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
5.3 Viewing hardware asset management reports . . . . . . . . . . . . . . . . . . . . 127
5.3.1 Viewing an ESS hardware asset summary report. . . . . . . . . . . . . . 127
5.3.2 Viewing a detail report for an ESS . . . . . . . . . . . . . . . . . . . . . . . . . 129
5.3.3 Viewing an LIC summary report . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
5.4 Viewing the ESS capacity management reports . . . . . . . . . . . . . . . . . . . 130
5.4.1 Viewing an ESS summary report . . . . . . . . . . . . . . . . . . . . . . . . . . 131
5.4.2 Viewing a SCSI/FC host summary report . . . . . . . . . . . . . . . . . . . . 138
5.4.3 Viewing a historical capacity report. . . . . . . . . . . . . . . . . . . . . . . . . 141
5.4.4 Capacity management report considerations . . . . . . . . . . . . . . . . . 143
5.5 Viewing performance management reports . . . . . . . . . . . . . . . . . . . . . . 144
5.5.1 Viewing ranked performance reports . . . . . . . . . . . . . . . . . . . . . . . 145
5.5.2 Viewing performance and threshold summary reports . . . . . . . . . . 146
5.5.3 Viewing Logical Volume reports . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
5.5.4 Viewing Disk Utilization Summary report . . . . . . . . . . . . . . . . . . . . 148
5.5.5 Viewing disk information and Cache Summary report . . . . . . . . . . 149
5.5.6 Viewing Cache Summary report . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
5.5.7 Considerations on performance summary reports . . . . . . . . . . . . . 151
5.5.8 Viewing performance detail reports. . . . . . . . . . . . . . . . . . . . . . . . . 152
5.6 Viewing host volume and mapping reports . . . . . . . . . . . . . . . . . . . . . . . 160
5.6.1 Interface for viewing host volume data: Host data collected . . . . . . 160
5.6.2 Interface for viewing host volume data: No host data collected . . . 161
5.6.3 View data for a single volume by the LUN serial number . . . . . . . . 161
5.6.4 View data for a single volume by the device name on a host . . . . . 162
5.6.5 Neither asset/capacity or host data collected . . . . . . . . . . . . . . . . . 165

Chapter 6. Customized reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167

iv IBM TotalStorage Expert Customized Reports


6.1 Data exporting methods for TotalStorage Expert . . . . . . . . . . . . . . . . . . 168
6.1.1 Basic TotalStorage table extractions to a file . . . . . . . . . . . . . . . . . 168
6.2 Global table extractions to worksheet files . . . . . . . . . . . . . . . . . . . . . . . 171
6.3 Samples of customized reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
6.3.1 Sample ESS hourly cache transfer report by nickname . . . . . . . . . 171
6.3.2 Simple script output to a file or screen . . . . . . . . . . . . . . . . . . . . . . 175
6.3.3 Sample ESS disk level performance report . . . . . . . . . . . . . . . . . . 178
6.3.4 Asset/performance volume statistics data collection script . . . . . . . 183
6.3.5 Sample ESS hourly performance report . . . . . . . . . . . . . . . . . . . . . 184
6.3.6 Sample ESS threshold events report script . . . . . . . . . . . . . . . . . . 185
6.3.7 Sample ESS performance (highest utilized arrays) report . . . . . . . 187
6.3.8 Sample of assigned storage by ESS report . . . . . . . . . . . . . . . . . . 188
6.3.9 ESS Host volume assignment by attach type . . . . . . . . . . . . . . . . . 189
6.3.10 Sample ESS volume level performance data . . . . . . . . . . . . . . . . 190
6.3.11 Example of summary-hierarchical query statements . . . . . . . . . . 192
6.3.12 Example of ranked IO request query statement . . . . . . . . . . . . . . 193
6.3.13 Sample report using SAS script . . . . . . . . . . . . . . . . . . . . . . . . . . 195

Appendix A. Data extraction scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197


Scripts for extracting all database tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
Windows 2000 platform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
Sample script for extracting volume level performance data . . . . . . . . . . 204
Asset and performance volume statistics data collection script . . . . . . . . 208
AIX platform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
SAS custom script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220

Appendix B. TotalStorage Expert database table layouts . . . . . . . . . . . . 241

Appendix C. Additional material . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323


Locating the Web material . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
Using the Web material . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
System requirements for downloading the Web material . . . . . . . . . . . . . 324
How to use the Web material . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324

Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325

Related publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349


IBM Redbooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
Other publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
Online resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
fHow to get IBM Redbooks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
Help from IBM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350

Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351

Contents v
vi IBM TotalStorage Expert Customized Reports
Tables

2-1 Tables in the Expert database and their description . . . . . . . . . . . . . . . 38


3-1 Default values for NOT NULL WITH DEFAULT. . . . . . . . . . . . . . . . . . . 53
6-1 Example report table and column information . . . . . . . . . . . . . . . . . . . 180
B-1 Table: CUSRS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
B-2 Table: CUAUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
B-3 Table: CSCHD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
B-4 Table: CSCHT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
B-5 Table: CSCHH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
B-6 Table: CNODE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
B-7 Table: CNGRP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
B-8 Table: CNGDI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
B-9 Table: CSIPA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
B-10 Table: CSSTY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
B-11 Table: CSRVH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
B-12 Table: CGNRH. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
B-13 Table: CIGIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
B-14 Table: CMSGS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
B-15 Table: CMSAU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
B-16 Table: CDSTT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
B-17 Table: CDSSD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
B-18 Table: CUPRF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
B-19 Table: CURLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
B-20 Table: CURTA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
B-21 Table: CUSRV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
B-22 Table: CUSPT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
B-23 Table: CSNMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
B-24 Table: CSWCS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
B-25 Table: CPARM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
B-26 Table: COPEVENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
B-27 Table: CTHRESHOLD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
B-28 Table: VTSEQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
B-29 Table: VMPDX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
B-30 Table: VMASI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
B-31 Table: VMASE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
B-32 Table: VCLUA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
B-33 Table: VCLUL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
B-34 Table: VMCAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
B-35 Table: VMDDM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258

© Copyright IBM Corp. 2003. All rights reserved. vii


B-36 Table: VCLUC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
B-37 Table: VHSTC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
B-38 Table: VHSTX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
B-39 Table: VHSTV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
B-40 Table: VVOLX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
B-41 Table: VCUIC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
B-42 Table: VCUIV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
B-43 Table: VCMTOP1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
B-44 Table: VCMTOP2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
B-45 Table: VCMDDM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
B-46 Table: VCMCLUST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
B-47 Table: VCMCUISUM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
B-48 Table: VCMCUIVOL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
B-49 Table: VCMCKD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
B-50 Table: VCMHOSTCAP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
B-51 Table: VCMHOSTVOL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
B-52 Table: VSXDALVL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
B-53 Table: VSXDALDT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
B-54 Table: VSXDATOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
B-55 Table: VSXDARCK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
B-56 Table: VSXDACLU. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
B-57 Table: VSXDALIC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
B-58 Table: VSXDSTYP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
B-59 Table: VPVPD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
B-60 Table: VPCFG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
B-61 Table: VPVOL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
B-62 Table: VPCRK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
B-63 Table: VPCCH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
B-64 Table: VPHVOL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
B-65 Table: VPHARCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
B-66 Table: VPHADCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
B-67 Table: VPHCLCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
B-68 Table: VPSNX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
B-69 Table: VPCUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
B-70 Table: VPHSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
B-71 Table: VPHAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
B-72 Table: VPHAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
B-73 Table: VSCHT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
B-74 Table: VTSTATM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
B-75 Table: VTSTATS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
B-76 Table: VMKHCAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
B-77 Table: VCMPORT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
B-78 Table: VHNICKX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300

viii IBM TotalStorage Expert Customized Reports


B-79 Table: VCMHNICK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
B-80 Table: VCMHNICKV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
B-81 Table: VHOSTDC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
B-82 Table: VSCHHDC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
B-83 Table: VHLPATH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
B-84 Table: VHLNICK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
B-85 Table: VHLHOST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
B-86 Table: VHDCSTAT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
B-87 Table: VTHRESHOLD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
B-88 Table: VOPEVENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
B-89 Table: TDATASRC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
B-90 Table: TDATA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
B-91 Table: TTHRESHOLD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
B-92 Table: TALARMDISPLAY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
B-93 Table: TSASSET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
B-94 Table: TSPERF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
B-95 Table: TVASSET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
B-96 Table: TVCAPC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
B-97 Table: TVPERF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
B-98 Table: TVCHNDIST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
B-99 Table: TVACTDIST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
B-100 Table: TGPERF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
B-101 Table: TVREAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
B-102 Table: TTEMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
B-103 Table: TREPINFO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321

Tables ix
x IBM TotalStorage Expert Customized Reports
Notices

This information was developed for products and services offered in the U.S.A.

IBM may not offer the products, services, or features discussed in this document in other countries. Consult
your local IBM representative for information on the products and services currently available in your area.
Any reference to an IBM product, program, or service is not intended to state or imply that only that IBM
product, program, or service may be used. Any functionally equivalent product, program, or service that
does not infringe any IBM intellectual property right may be used instead. However, it is the user's
responsibility to evaluate and verify the operation of any non-IBM product, program, or service.

IBM may have patents or pending patent applications covering subject matter described in this document.
The furnishing of this document does not give you any license to these patents. You can send license
inquiries, in writing, to:
IBM Director of Licensing, IBM Corporation, North Castle Drive Armonk, NY 10504-1785 U.S.A.

The following paragraph does not apply to the United Kingdom or any other country where such provisions
are inconsistent with local law: INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES
THIS PUBLICATION "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF NON-INFRINGEMENT,
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Some states do not allow disclaimer
of express or implied warranties in certain transactions, therefore, this statement may not apply to you.

This information could include technical inaccuracies or typographical errors. Changes are periodically made
to the information herein; these changes will be incorporated in new editions of the publication. IBM may
make improvements and/or changes in the product(s) and/or the program(s) described in this publication at
any time without notice.

Any references in this information to non-IBM Web sites are provided for convenience only and do not in any
manner serve as an endorsement of those Web sites. The materials at those Web sites are not part of the
materials for this IBM product and use of those Web sites is at your own risk.

IBM may use or distribute any of the information you supply in any way it believes appropriate without
incurring any obligation to you.

Information concerning non-IBM products was obtained from the suppliers of those products, their published
announcements or other publicly available sources. IBM has not tested those products and cannot confirm
the accuracy of performance, compatibility or any other claims related to non-IBM products. Questions on
the capabilities of non-IBM products should be addressed to the suppliers of those products.

This information contains examples of data and reports used in daily business operations. To illustrate them
as completely as possible, the examples include the names of individuals, companies, brands, and products.
All of these names are fictitious and any similarity to the names and addresses used by an actual business
enterprise is entirely coincidental.

COPYRIGHT LICENSE:
This information contains sample application programs in source language, which illustrates programming
techniques on various operating platforms. You may copy, modify, and distribute these sample programs in
any form without payment to IBM, for the purposes of developing, using, marketing or distributing application
programs conforming to the application programming interface for the operating platform for which the
sample programs are written. These examples have not been thoroughly tested under all conditions. IBM,
therefore, cannot guarantee or imply reliability, serviceability, or function of these programs. You may copy,
modify, and distribute these sample programs in any form without payment to IBM for the purposes of
developing, using, marketing, or distributing application programs conforming to IBM's application
programming interfaces.

© Copyright IBM Corp. 2003. All rights reserved. xi


Trademarks
The following terms are trademarks of the International Business Machines Corporation in the United States,
other countries, or both:
DFSMSdfp™ OS/390®
Redbooks (logo) ™ DFSMSdss™ OS/400®
IBM ™ DFSMShsm™ QMF™
e-business on demand™ DFSMSrmm™ Redbooks™
ibm.com® DRDA® RACF®
iSeries™ Enterprise Storage Server® RISC System/6000®
z/OS® Everyplace® RMF™
zSeries® ECKD™ S/370™
AIX® ES/9000® S/390®
AS/400® ESCON® System/370™
CICS/ESA® FlashCopy® System/38™
CICS/MVS® FICON™ System/390®
CICS® Informix® SQL/DS™
Database 2™ Intelligent Miner™ SQL/400®
DataJoiner® IBM® Tivoli®
Distributed Relational Database IMS™ TotalStorage®
Architecture™ Lotus® TME®
DB2 Connect™ MVS™ WebSphere®
DB2 Universal Database™ MVS/ESA™ 1-2-3®
DB2® NUMA-Q®
DFSMS/MVS® OS/2®

The following terms are trademarks of other companies:

ActionMedia, LANDesk, MMX, Pentium and ProShare are trademarks of Intel Corporation in the United
States, other countries, or both.

Microsoft, Windows, Windows NT, and the Windows logo are trademarks of Microsoft Corporation in the
United States, other countries, or both.

Java and all Java-based trademarks and logos are trademarks or registered trademarks of Sun
Microsystems, Inc. in the United States, other countries, or both.

C-bus is a trademark of Corollary, Inc. in the United States, other countries, or both.

UNIX is a registered trademark of The Open Group in the United States and other countries.

SET, SET Secure Electronic Transaction, and the SET Logo are trademarks owned by SET Secure
Electronic Transaction LLC.

Other company, product, and service names may be trademarks or service marks of others.

xii IBM TotalStorage Expert Customized Reports


Preface

This IBM® Redbook provides the basic knowledge, tools, and samples to show
you how to extract report data from built-in reports, and create customized
reports from the IBM TotalStorage® ESS Expert application and database. This
book examines the fundamentals of the DB2® Universal Database™, the
Structured Query Language that is used as the basis for sample reports, and the
methodology to create customized ESS reports based on your enterprise
requirements.

This redbook complements TotalStorage Hands-On Usage Guide, SG24-6102,


by providing comprehensive documentation and tools to most effectively use the
TotalStorage Expert for enterprise storage resource management.

This book has been written with a wide range of end-user knowledge and
capabilities in mind. The range of expertise for the target audience is for DB2 and
SQL beginners just getting started, and also contains information and reference
materials for those much more comfortable with the capabilities of the Expert
data management components. We strive to provide enough information in a
manner that most users will be able to derive the greatest value from the
information presented.

The team that wrote this redbook


This redbook was produced by a team of specialists from around the world
working at the International Technical Support Organization, San Jose Center.

Daniel Demer is a TotalStorage Product Engineer in the Systems Group in


Tucson, Arizona. He is IBM AIX® Support Certified and has 12 years of
experience in the Technical Customer Support field, including hospital and
clinical laboratory information systems specializing in instrument interfacing and
AIX systems support. He holds a bachelor’s degree from the University of
Arizona. He has worked at IBM for over three years. His areas of open systems
support expertise at IBM include; ESS Expert, ESS Specialist, ESS Copy
Services, Subsystem Device Driver (SDD), and Modular Storage Server
mid-range storage. He is a co-author of the TotalStorage Expert Hands-On
Usage Guide, SG024-6102-02.

David McFarlane is a Technical Solutions Architect in Australia. He has 19 years


of experience in the I/T industry. His areas of expertise include storage
management, VTS, and z/Series solutions. He has participated in two other

© Copyright IBM Corp. 2003. All rights reserved. xiii


ITSO residencies: IBM Totalstorage Virtual Tape server: Planning, Implementing
and Monitoring, SG24-2229-04, and produced course materials for GDPS, XRC,
PPRC, and VTS Peer to Peer.

Thanks to the following people for their contributions to this project:

Maritza M. Dubec
Mary Lovelace
Bart Steegmans
International Technical Support Organization, San Jose Center

Richard Dow
Larry Mills
Ray Koehler
John Aschoff
Jake Kelly
Will Scott

Hai-Yann Hwang, PhD.


IBM TotalStorage Expert development

Chris Katsura
IBM TotalStorage Expert development

Become a published author


Join us for a two- to six-week residency program! Help write an IBM Redbook
dealing with specific products or solutions, while getting hands-on experience
with leading-edge technologies. You'll team with IBM technical professionals,
Business Partners and/or customers.

Your efforts will help increase product acceptance and customer satisfaction. As
a bonus, you'll develop a network of contacts in IBM development labs, and
increase your productivity and marketability.

Find out more about the residency program, browse the residency index, and
apply online at:
ibm.com/redbooks/residencies.html

Comments welcome
Your comments are important to us!

xiv IBM TotalStorage Expert Customized Reports


We want our Redbooks™ to be as helpful as possible. Send us your comments
about this or other Redbooks in one of the following ways:
򐂰 Use the online Contact us review redbook form found at:
ibm.com/redbooks
򐂰 Send your comments in an Internet note to:
redbook@us.ibm.com
򐂰 Mail your comments to:
IBM Corporation, International Technical Support Organization
Dept. QXXE Building 80-E2
650 Harry Road
San Jose, California 95120-6099

Preface xv
xvi IBM TotalStorage Expert Customized Reports
1

Chapter 1. IBM TotalStorage Expert


reporting overview
This chapter provides an overview of how the book is structured; what uses each
section has; and directs experienced users to the information they need right
away. The audience for this book is a wide range of end-users and administrators
with differing skill levels with relational databases. This chapter also contains a
brief description of IBM TotalStorage Expert, and the ordering information for the
product.

The topics in this book are quite technical and can be the basis of years of
continuing education, use, and programming. In an effort to limit the breadth of
the information provided, we have been diligent in limiting topics in order to keep
the publication manageable and more easily utilized by most end-users. There is
already an extensive amount of information currently available on the topic of
DB2 relational databases and the Structured Query Language (SQL). Since
TotalStorage Expert customized reports are the main focus of our efforts, enough
information to provide a foundation for creating and extracting these reports is
presented.

© Copyright IBM Corp. 2003. All rights reserved. 1


1.1 The scope and structure of this book
We believe it is important that we incorporate real-life field experiences into the
reports that are detailed in this book, and have made efforts to achieve this goal.
This is invaluable information and will complement the TotalStorage Expert
built-in reporting functionality that exists. In order to provide the user with a more
comprehensive product, we include instructions on how to export the online
built-in GUI reports presented in TotalStorage Expert to Microsoft Excel, Lotus®
123, or any other popular spreadsheet applications for further manipulation or
enterprise dissemination purposes.

There is a Windows 2000 Server emphasis in the subject matter presentation.


This is due to the fact that many enterprise storage environments use the DB2
and SQL tools in a GUI capacity on that server platform. However, there are
many AIX implementations of the TotalStorage Expert, so it is important that we
provide as many useful tools in a platform independent manner. For our AIX
customers, we provide KORN shell scripting examples. This book could have
been written in separate Windows 2000 and AIX sections, but we decided it
would be more useful to focus on a report-centric and information focus rather
than a platform-centric focus.

The database used for examples in this book was taken from an IBM
TotalStorage Expert 2.1 host, which was monitoring IBM storage servers during
2002 and briefly in 2003. This database includes information from open systems
attached servers and OS/390® attached servers with both SCSI, FC, and
ESCON® connections to the F20 and Model 800 storage servers. We have also
merged ETL table information into the database so that you can access this type
of information also. This database has been loaded and is now in use at the
TotalStorage demo Web site at the following URL. You may set up and view any
of the built-in reports available at the demo site using this database:
http://storwatch.dfw.ibm.com/index2.html

Wherever possible, we provide URL locations for further information to assist you
with exploiting the TotalStorage Expert for your reporting needs. In addition to the
scripting provided, some instructions and examples of spreadsheet macro setups
are provided. The work done while creating the reports is documented
thoroughly and includes graphical examples, steps used, and tools incorporated
in producing the final reports. The scripts, tools, and other related documentation
have been made available for download from a File Transfer Protocol (FTP) site
for use in your environment.

Structure
The chapters contained herein are explained briefly in this section:
򐂰 Chapter 1, “IBM TotalStorage Expert reporting overview” on page 1

2 IBM TotalStorage Expert Customized Reports


This chapter provides a broad overview of this document and the
TotalStorage Expert product.
򐂰 Chapter 2, “TotalStorage Expert data gathering and storage” on page 9
This chapter describes the co-requisite products of the TotalStorage Expert
and a brief presentation of their functions and structure in relation to this
book. The tables used as the framework of the Expert DB2 database are also
outlined and briefly described in this chapter.
򐂰 Chapter 3, “SQL overview” on page 45
This chapter is intended to be a primer for use in getting acquainted with the
Structured Query Language, which is the basic method of storing, extracting,
and manipulating TotalStorage Expert database information.
򐂰 Chapter 4, “Data extraction tools and tips” on page 79
There are many tools, methods, and manners with which to gather data and
present it in a useful form for management, analysts, system administrators,
and storage specialists. We provide the relevant information in this chapter,
which will enable you to get started, or to increase your use of the
TotalStorage Expert database and reports.
򐂰 Chapter 5, “TotalStorage Expert management built-in reports” on page 113
This chapter contains a nested listing of the built-in reports, which are
accessed through the TotalStorage Expert application. There are also
instructions and examples of how to export this information into other data
management applications such as spreadsheets and reports for your
Enterprise Storage reporting requirements.
򐂰 Chapter 6, “Customized reports” on page 167
To complement the abundant information already provided through the built-in
reports in the previous section, we have created, compiled, tested, and
documented report generating scripts in a variety of ways. We realize that no
two enterprise storage environments are the same, and no two have the
identical resources available or reporting needs for managing that
environment. We have made a goal of providing a variety of reports and SQL
queries based on different types of scenarios and tool availability.
The examples documented are both platform specific and independent. We
provide enough insight into the TotalStorage Expert database tables and
information contained therein to enable you to use this chapter as a basis for
creation of your own customized reports to effectively address the reporting
needs of your enterprise.
򐂰 Appendix A, “Data extraction scripts” on page 197
In this appendix, we provide the script source code for extracting data from
the TotalStorage Expert database tables.

Chapter 1. IBM TotalStorage Expert reporting overview 3


򐂰 Appendix B, “TotalStorage Expert database table layouts” on page 241
A detailed description of TotalStorage Expert DB2 table schema and
structure, which complements the content of the last section of Chapter 2.,
“TotalStorage Expert data gathering and storage” on page 9.

1.2 What is IBM TotalStorage Expert?


IBM TotalStorage Expert is an application in the IBM TotalStorage software
family, which helps you manage your Enterprise Storage Server® (ESS) and
Enterprise Tape Library (ETL) using a Web browser user interface. IBM
TotalStorage Expert has two available features, the ESS feature which supports
ESS, and the ETL feature which supports the three Enterprise Tape Library
products. The two features are licensed separately. There are also upgrade
features for users of StorWatch Expert V1 with either the ESS or the ETL feature,
or both, who want to migrate to TotalStorage Expert V2.1.

The TotalStorage Expert is designed to augment commonly used IBM


performance tools such as Resource Management Facility (RMF™), DFSMS
Optimizer, AIX Performance Toolkit, and similar host-based performance
monitors. While these tools provide performance statistics from the host system’s
perspective, the TotalStorage Expert provides statistics from the ESS and ETL
system perspective. By complementing other performance tools, the
TotalStorage Expert provides a more comprehensive view of performance. The
data retrieved and stored in the product database also provides the “raw
materials” for the creation of customized reports through SQL data extraction and
manipulation.

TotalStorage Expert gathers and presents information, which provides a


complete management solution for storage monitoring and administration.
TotalStorage Expert helps storage administrators by increasing the productivity
of storage resources.

The TotalStorage ESS Expert simplifies performance management for the ESS,
a disk storage system that provides industry-leading availability, performance,
and scalability. The ESS is ideal for businesses with multiple heterogeneous
servers including S/390®, UNIX, Windows NT, Windows 2000, Novell NetWare,
HP/UX, SUN Solaris, and AS/400® servers.

With Version 2.1, the TotalStorage ESS Expert is packaged with the TotalStorage
ETL Expert. The ETL Expert provides performance, asset, and capacity
management for IBM’s three ETL solutions; IBM TotalStorage Enterprise
Automated Tape Library; IBM TotalStorage Virtual Tape Server; and IBM
TotalStorage Peer-to-Peer Virtual Tape Server. There are also a variety of built-in
and customizable reports for the ETL, which are discussed later in this book.

4 IBM TotalStorage Expert Customized Reports


Both tools can run on the same server, share a common database, efficiently
monitor storage resources from any location within the enterprise, and provide a
similar look and feel through a Web browser user interface. Together they provide
a complete solution that helps optimize the potential of IBM disk and tape
subsystems.

The ESS and ETL features provide capabilities for performance, asset, volume,
and capacity management. The information provided within these categories
varies significantly because of the different characteristics of disk and tape
products, and are described in separate sections in order to differentiate them
more clearly.

The infrastructure benefits provided by the TotalStorage Expert include:


򐂰 Keeping track of the total capacity, assigned capacity, and free capacity of the
disk storage on all the ESSs in the enterprise
򐂰 ESS and ETL components of Expert are packaged together, run on the same
server, share a common database, and offer seamless integration with a
common look and feel.
򐂰 The two features can be separately licensed to accommodate users who may
only be interested in one component.

The TotalStorage Expert helps you do the following tasks in addition to providing
several powerful new features:
򐂰 Performance management
Capability to customize and enable threshold events relating to ESS
performance metrics including disk utilization
򐂰 Asset management
Hosts disk mapping through a Logical Unit Number (LUN), providing
complete information on logical volumes including physical disks and
adapters from the host perspective. Host mapping for AIX 4.3.3 and 5L,
Windows NT, Windows 2000 Server and Advanced Server, HP UX, and Sun
Solaris.
򐂰 Capacity management
Storage capacity, including storage that is assigned to application server
hosts, formatted into volumes, but not yet assigned to an application server
host and free space.
򐂰 Use of Simple Network Management Protocol (SNMP) alerts for ESS
exception events that exceed customized threshold values
򐂰 Support for Windows 2000 Server and Advanced Server operating systems
򐂰 Enhanced usability characteristics:

Chapter 1. IBM TotalStorage Expert reporting overview 5


– A drill-down view of volumes per host, including the volumes accessible to
a particular host, for each ESS
– A drill-down view of capacity assigned to each application server and
shared between application servers, as well as the names and types of
each application server that can access the ESS.
– A volume drill-down capability that provides information about a particular
volume, and identifies all the application server hosts that can access it.

Before exploring each task in detail, we explain how the TotalStorage Expert
product can help you perform these tasks. Figure 1-1 presents a typical
environment for TotalStorage Expert.

Figure 1-1 TotalStorage Expert in a TCP/IP network

The TotalStorage Expert solicits your ESS and ETL to send information about
capacity or performance. When the TotalStorage Expert receives this

6 IBM TotalStorage Expert Customized Reports


information, it is stored into tables within a DB2 database. Thus, you can prepare
and produce customized reports, in addition to the built-in Expert reports,
containing just the information you need using traditional SQL commands.

IBM TotalStorage Expert Version 2.1 uses the security and auditability features of
the host operating system. The host administrator is responsible for evaluation,
selection, and implementation of security features, administrative procedures,
and appropriate controls in application systems and communication facilities.

Let the product pre-format the ESS performance data


After the TotalStorage Expert has collected data through data collection tasks, it
needs to pre-format performance data through data preparation tasks. In order to
view performance reports, you have to define and schedule the data preparation
tasks.

Please note that there are no data preparation tasks for asset and capacity
management. Data preparation tasks are exclusive to ESS performance
management. The ETL reports do not require these data preparation tasks to be
defined. During the data preparation cycle, the TotalStorage Expert performs a
myriad of SQL queries and parsing activities that prepare the raw data into a
presentable format for the built-in Web user interface (WUI) reporting functions.
Since there are no calculations or further data manipulation done on the other
data types (asset, capacity, volume), there is no need to process this raw data
any further prior to presentation in the WUI report feature.

Ask the TotalStorage Expert to create reports to fit your needs


Now you are ready to review the ESS and ETL report for capacity, asset, or
performance management. Make sure that the data preparation tasks have been
completed before you try to view ESS performance reports. You can review the
asset capacity report after the data collection tasks have completed, since this
does not require data preparation tasks.

The TotalStorage Expert creates reports for viewing in the Web browser not only
in tabular view, but also as graphical charts, such as bar graphs and pie charts.
Later in this book, we will detail methods of capturing and exporting this graphical
and tabular information for further manipulation or reporting needs.

1.3 Ordering information


The TotalStorage Expert is a fee-based product, which can be purchased
through your IBM marketing or sales representative, or through a third party
vendor. There are a wide range of pricing options tailored to address your

Chapter 1. IBM TotalStorage Expert reporting overview 7


organizational requirements. In addition, there are a variety of service support
plans to provide you with the professional technical support you demand.

8 IBM TotalStorage Expert Customized Reports


2

Chapter 2. TotalStorage Expert data


gathering and storage
The TotalStorage Expert application is an enterprise storage monitoring tool,
which contains the capability to build reports and extract data that can be used to
analyze trends and isolate areas of your environment, which require special
attention and problem resolution.

In this chapter, we list the co-requisites for TotalStorage Expert and explain the
reporting mechanism requirements. Then we provide information to help you
become acquainted with the IBM DB2 Universal Database (UDB) by providing
the overview and brief history. We also describe the organization of TotalStorage
Expert database, and list the tables used by TotalStorage Expert.

© Copyright IBM Corp. 2003. All rights reserved. 9


2.1 Product co-requisite components
The following products are installed as co-requisites of the TotalStorage Expert
product. They interface with the product to provide services and user interface
capabilities, capture, and present data gathered from the enterprise
environment.

IBM WebSphere® Application Server


IBM WebSphere Application Server is a Java-based application used for building,
deploying, and managing Internet and intranet Web application server needs.
These needs might range from the simple to the advanced, and may be
applicable at the enterprise level. This product provides advanced services to a
Web server. Such services include servlet (a Java program that runs as part of a
network service) support, compiled HTML pages, pooled database connections,
and much more.

IBM HTTP Server


IBM HTTP Server, based on the Apache HTTP Server, enhances this server with
secure sockets layer (SSL) support to ensure secure transactions. IBM offers full
technical support, as it would with any other IBM product. IBM supplies the
Apache-powered HTTP Server separately and with products that run on AIX, and
it is also available for Windows 2000, and other platforms. The HTTP Server
works with the WebSphere Application Server to process the Web user interface
requests.

InfoSpace SpaceSQL (formerly know as Viador Sage)


InfoSpace SpaceSQL is a program that interfaces with the Java level
components to present extracted data from the DB2 database. It then provides
charting functions for data that is collected from the attached storage network
nodes managed by the IBM TotalStorage Expert V2.1.

IBM DB2 Universal Database 7.2: Workgroup Edition


The IBM DB2 Universal Database (UDB) is a relational database that is used by
IBM TotalStorage Expert V2.1. For more information about DB2, see 2.3, “DB2
Universal Database (UDB) overview” on page 12 for the DB2 Universal Database
description and functional descriptions.

IBM Developer Kit for the Java Platform (JDK) 1.3


IBM Developer Kit for the Java Platform (JDK) is a product that provides the
environment required for programming in Java. The Java code layer within the
product utilizes .class files to parse data and read data extracted from the DB2
tables by embedded SQL statements.

10 IBM TotalStorage Expert Customized Reports


2.2 Report mechanics and graphical presentation
ESS Specialist uses an agent (SDDSRV) on the host systems for information
gathering. TotalStorage Expert is able to provide user defined SNMP alerts and
can generate report information, block level capacity data, and performance
tuning related information for the ESS subsystem in relation to the attached
hosts.

The data collecting tasks that include asset, capacity, and volume information are
performed by the TotalStorage Expert in a passive mode. There is no active
interaction with the connected hosts, ESS, or VTS environment subsystems.

For the performance data collection tasks, the TotalStorage Expert has more of a
“handshake” interaction with the ESS Specialist code layer. When a performance
task initiates, the Expert sends out information to the ESS, which responds after
security requirements are satisfied. An ODM object is set on the ESS to inform
the Specialist that a data collection “listening” mode is set to on, which port will
be opened for receiving the ESS data, which TCP/IP address (of the
TotalStorage Expert host initiating the performance task), and the interval
frequency to be used to emit data to the Expert host. The Expert host will then
revert to a passive mode while the ESS Specialist emits data on the defined
intervals (how many seconds between data transmittal, 150, 300, 600). When the
task stopping time occurs, the Expert then signals the ESS Specialist to
discontinue data transmittal and the ODM object for data transmission is set to
OFF, and the ports opened for emission host data receiving are closed until
needed again.

TotalStorage Expert captures and presents information to the user for:


򐂰 Performance information on disk I/O in all ESS(s) in a customer enterprise
򐂰 Information on the physical capacity in the ESS, and the physical capacity of
each LUN (a LUN is a virtual disk)
򐂰 Information on host to LUN mapping for each ESS
򐂰 Information on tape library asset, capacity, and performance

Other information presented in Expert built-in reports is stored in DB2 UDB


tables, and is used by Expert to generate these types of reports:
򐂰 ESS performance management
Allows the customer to monitor disk utilization from a LUN perspective and
the capability to customize and enable threshold events relating to ESS
performance metrics including disk utilization.
򐂰 ESS asset management

Chapter 2. TotalStorage Expert data gathering and storage 11


Hosts disk mapping through a logical unit number (LUN), providing complete
information on logical volumes including physical disks and adapters from the
host perspective - microcode levels.
򐂰 ESS capacity management
Storage capacity, including storage that is assigned to application server
hosts formatted into volumes, but not yet assigned to an application server
host and freespace.

You can also utilize the DB2 UDB database table data to create and produce
your own reports to present comprehensive analysis, trend, and forecasting
information for managing your unique storage environment.

The graphical interface for the TotalStorage built-in reports uses a combination of
WebSphere, Java, InfoSpace SpaceSQL, and HTML components to extract DB2
table data, and display it in a usable format to the end-user. Through the nested
layers of report options, the user can drill down to examine particular areas of
interest or concern regarding the ESS, ETL, or connected host subsystems.
Although graphical reports cannot be saved or printed directly from the
SpaceSQL icons in the Expert, the resulting graphics and tabular information can
be exported using methods described in Chapter 4, “Data extraction tools and
tips” on page 79. For further details about the Graphical Report Presentation,
refer to the TotalStorage Expert Hands-On User’s Guide, SG024-6012.

2.3 DB2 Universal Database (UDB) overview


DB2 UDB is a relational database management system (RDBMS) that enables
you to create, update, and control relational databases using the Structured
Query Language (SQL). The DB2 UDB family of products is designed to meet
the information needs of small and large businesses alike.

IBM’s DB2 database software is the worldwide market share leader in the
relational database industry. It is multimedia and Web-ready relational database
management system delivering leading capabilities in reliability, performance,
and scalability with less skill and fewer resources. DB2 is built on open standards
for ease of access and sharing of information, and is the database of choice for
customers and partners developing and deploying critical solutions. There are
more than 60 million DB2 users from 400,000 companies worldwide relying on
IBM DB2 Information Management technology.

The TotalStorage Expert product utilizes the DB2 UDB as the backbone for its
data storage and reporting functions. It is important to understand how the
TotalStorage Expert allocates and uses DB2 resources so that you can efficiently
customize and use the information provided by the TotalStorage Expert.

12 IBM TotalStorage Expert Customized Reports


2.3.1 Introduction and a brief history of DB2
In 1970, E. F. Codd of IBM Research published a paper that led to a new way for
computers to manage information. His paper, A Relational Model of Data for
Large Shared Data Banks, proposed a new architecture for storing, managing
and interacting with digital data. This new relational model freed application
developers from having to know details about the data being managed.

Four years later, IBMers Don Chamberlin and Ray Boyce published SEQUEL: A
Structured English Query Language, which became the basis for the SQL
language standard. Questions written in the new SQL language became more
important than how the data was stored and organized on disk. New, more
powerful questions could be asked and answered. Applications could be built
much more quickly. The relational database system itself took on more of the
burden of managing the data, leaving applications more freedom to focus on
business logic.

Since 1970, IBM has developed a complete family of relational database


management system (RDBMS) software now called DB2 Universal Database
(DB2 UDB). In addition, IBM has built additional information management
software with DB2 as its “engine” for purposes that include data warehousing,
data analysis, data mining, media asset management, enterprise content
management and information integration. In the following sections, we introduce
DB2 UDB and the IBM DB2 information management portfolio, which represent
one element of what IBM calls middleware, software that serves as the glue
uniting systems and software applications.

A series of research projects have been a steady source of technology for the
DB2 family since the beginning. The System R project resulted in the first IBM
implementation of the relational model. The project called ARIES delivered
row-level locking technology used throughout the database industry today.
Cost-based query optimization has been an area of intense effort and innovation
ever since the System R days. Subsequent projects extended the relational
model to distributed system environments, focused on making the relational
model extensible to handle new forms of information and new kinds of
optimization strategies, and brought an emphasis on data federation, allowing
data in diverse systems, not just DB2 systems, to be managed together. Most
recently, a technical preview based on DB2 has demonstrated the integration of
information from Web services and the use of XQuery as an additional and
powerful query language for managing XML content.

The first implementation of relational technologies from the initial System R


project was the database integrated into the System/38™ server in 1980. In
1982, the SQL/DS™ product was delivered on the mainframe operating systems
VM and VSE, also based on System R. DB2, formally called DATABASE 2, was
born in 1983 on MVS™™. The database manager in OS/2®® Extended Edition

Chapter 2. TotalStorage Expert data gathering and storage 13


in 1987 was the first relational database on distributed systems. SQL/400®® for
the new AS/400® server emerged in 1988. New DB2 editions were delivered on
AIX® (1993), HP-UX and Solaris (1994), Windows® (1995), and Linux (1999).

2.3.2 DB2 database servers today


Today, the DB2 family spans a wide variety large and mid-range of platforms and
operating systems such as:
򐂰 IBM iSeries™™ (OS/400®® operating system)
򐂰 IBM zSeries®™ (OS/390®, z/OS®®, VM, VSE, and Linux)
򐂰 MVS/ESA ®
򐂰 AIX®
򐂰 HP-UX®
򐂰 NUMA-Q®®
򐂰 Solaris®
򐂰 Windows NT/2000®

DB2 Everyplace®™ supports handheld devices and embedded Linux


environments and provides data synchronization with larger systems. Common
tools have been delivered for application development and database
administration across the family. Innovations from all family members, and the
Informix® database line acquired in 2001, feed the growth of the entire family.

DB2 technologies of today address emerging customer requirements in several


new areas:
򐂰 Autonomic computing requires that servers, operating systems, and
middleware including DB2, diagnose and correct problems without human
intervention. Database self-management and automation for the database
administrator are areas of particular emphasis in the most recent edition of
DB2.
򐂰 Standards-based Web services have emerged as a new style of application
processing with full support from DB2.
򐂰 Grid computing, or the idea of large-scale computing resources used as a
utility or service, including database services, takes advantage of the vast
clustered scalability of DB2 to support large databases and large numbers of
simultaneous users in a highly available manner. Standards-based Web
services are another key component of grid computing supported by DB2.
򐂰 The e-business on demand™ business model requires an operating
environment built on open standards to allow quick and cost-effective
innovation and reconfiguration. The infrastructure to support e-business on
demand must be reliable, scalable, and secure. DB2 is part of that
infrastructure.

14 IBM TotalStorage Expert Customized Reports


򐂰 DBA automation and self-management enhancements combine with low
price to provide remarkable value to DB2 customers.

The purpose of this chapter is to provide a broad overview of particular


technology areas addressed by capabilities in DB2, and of the role of DB2 in the
IBM e-business on demand strategy. DB2 Universal Database (UDB) provides a
full-function, robust, relational database management system (RDBMS), along
with a set of related products and components designed for universal database
platforms. DB2 UDB brings to these platforms the support of the IBM SQL
technology that is available on all members of the DB2 family.

2.3.3 DB2 and data management


Organizations use many ways to store large volumes of data. The storage
methods range from papers in a drawer to simple computer files to complex
databases. Data that must be accessed quickly is usually stored on a computer.
The data might, for example, be stored in a spreadsheet program. Spreadsheet
programs store data in a column-and-row format. Most spreadsheets have
functions that add columns of data, search and retrieve rows of data, and format
data.

Spreadsheets lack security capabilities, however, and some lack concurrency.


Concurrency is the shared use of resources by multiple interactive users or
application processes at the same time. Few spreadsheet programs are capable
of giving specific users read-and-change access to specific areas of spreadsheet
data. Many spreadsheet programs allow only one person at a time to change
information.

Other data storage options, such as storing files on diskettes, hard drives, tapes,
and cartridges, have the same limitations that spreadsheets have. These file
systems do not allow multiple applications to access the same data at the same
time. As a result, each application must queue up for access to the data, and the
applications are executed serially.

This presents a problem for multiple users needing access to the data. One
solution is to replicate the data. This would solve the concurrency problem. Many
applications could produce reports against copies of the same data at the same
time. However, replicating data, which is often done in the mainframe
environment, can be problematic, especially if any of the applications need to
change data. Synchronization of the duplicated data is a formidable task and can
cause discrepancies. To compound this problem, the redundant data begins to
take on its own personality over time. Even though the data field names remain
the same, one application’s definition of net sales may not be the same as
another’s.

Chapter 2. TotalStorage Expert data gathering and storage 15


What many companies really need to solve their data storage problems is
something that has the ability to handle concurrency, but eliminates the
requirement to replicate data or serialize work. Refer to the IBM UDB SQL
Getting Started, SC09-2973 manual for more entry level information.

2.3.4 RDBMS overview


A relational database management system (RDBMS), such as IBM DB2 UDB, is
an application program that performs the complex task of applying the set of
business and data processing rules that manage and control the data in a
database. Data stored in a relational database is perceived as being stored in a
set of columns and rows. The technical term for a set of columns and rows is a
relation. The more common term for a set of columns and rows is a table.

People work with common tables of data every day. A common example of table
data is a phone book. Many phone books have information stored in columns,
such as customer name and phone number. Every listing in the phone book is a
row in the table.

An RDBMS provides many automated services, such as security, concurrency,


optimization, tracing, and data integrity. The following are a brief description of
these services:
򐂰 Security
Security is provided by granting authorization to specific database users.
Authorizations are given with a Structured Query Language (SQL) GRANT
statement, and are stored in catalog tables. As each authority is given, the
database manager writes information to the catalog about the given authority,
who gave the authority, and to whom the authority was given. Each time an
SQL statement is executed the database manager checks the authorization
catalog tables to ensure that the user identification (user ID) executing the
statement is authorized to do so.
򐂰 Concurrency
Concurrency is the shared use of resources by multiple interactive users or
application processes at the same time. RDBMS can allow multiple users to
access a table’s data at the same time, as long as they do not interfere with
one another. For example, one user cannot try to change the same row that
another user is reading or changing. Only a changing application can see a
row it has changed prior to the change being made permanent. If the data
was stored in a file instead of being managed by an RDBMS, applications
would have to wait to access the data.

16 IBM TotalStorage Expert Customized Reports


򐂰 Optimization
Optimization is the process in which the database manager determines the
most efficient way to access the needed data.
򐂰 Tracing
The tracing feature produces a record of significant events within the RDBMS.
This information is used to handle billing issues, identify poorly performing
transactions, or analyze system-resource use. DB2 UDB utilities can trace,
backup, and recover data to help ensure database availability. Refer to 4.3,
“IBM DB2 Utilities Command Center features” on page 83.
򐂰 Integrity
Integrity has two aspects. One is to ensure that while a row is in the process
of being changed, no unauthorized user or application can access the row
until the change process is completed. This aspect is handled by the lock
manager.
Row locking helps to maintain the integrity of a table. When rows are locked,
DB2 UDB allows approved users to work concurrently within the table.
However, if two users attempt to change a row at the same time, DB2 UDB
locks the row on behalf of the first user accessing the row. The row will remain
locked until that user’s processing is completed.
Another aspect of integrity involves a logical unit of work. A logical unit of
work is a recoverable sequence of operations that are treated as one
operation. All operations within the unit of work can be committed or rolled
back as if the operations are a single operation. In this situation, the database
manager ensures that if an application is changing a set of rows, then all the
rows in the set are changed, or none of the rows are changed.

RDBMS understands a standard language known as Structured Query


Language (SQL). The word structured in the language name means that some
strict rules are associated with the language. These rules give SQL its structure.

SQL is a non-navigational language. An SQL statement tells DB2 UDB what to


do, not how to do it (Figure 2-1). DB2 UDB determines the best way to
accomplish the SQL statement. After a table is created, you can use SQL to
modify aspects of the table without having to take the table offline. This is a part
of the flexibility provided by an RDBMS. With SQL, you can add new columns to
an existing table, or add business rules to the table’s definition.

Chapter 2. TotalStorage Expert data gathering and storage 17


Figure 2-1 SQL acronym

Refer to the IBM DB2 Universal Database SQL Reference Volume 1,


SC09-2974, and IBM DB2 Universal Database SQL Reference Volume 2,
SC09-2975, manuals for more information on developing SQL statements.

2.3.5 Entities between a user and the data


At a minimum, three major entities exist between a user and the data: the login
process, the application manager, and the data manager (Figure 2-2). The user
must be authorized to log on to the system. An ID and password combination
controls the logon process. The ID and password are checked by the operating
system security, such as Windows 2000, AIX, or z/OS.

18 IBM TotalStorage Expert Customized Reports


Figure 2-2 Components of database management system

When a user logs on the system, the application manager, which controls and
manages application programs, intercepts the user’s request. As a security
measure, the application manager ensures that only authorized IDs are allowed
to run specific programs. Then the application manager loads the correct
program into memory to process the user’s request. On larger servers in the
z/OS environment, the application manager can be Information Management
System (IMS™), Customer Information Control System (CICS®), Transaction
Server, or Time Sharing Option (TSO). On other platforms, the operating
systems, or a transaction manager such as CICS TS, can directly manage the
applications.

In addition to handling the requests from user terminals, the application manager
also communicates with the data manager on behalf of any programs requiring
data services. In a DB2 UDB environment, the application manager informs DB2
UDB whom, or which ID, is requesting work. During program execution, a data
request is sent to DB2 UDB. The DB2 UDB retrieves the requested data and
returns it to the program. Data transfer operations recur as the program
continues to request additional data.

Chapter 2. TotalStorage Expert data gathering and storage 19


Figure 2-3 User interface with DB2 UDB

In order to view data (Figure 2-3) from the TotalStorage DB2 database, the user
logs on to the system and enters an SQL request to view or update the
TotalStorage ESS or ETL data. The user’s ID and the SQL request are passed to
DB2 UDB. TotalStorage Expert uses as default the user name and password of
db2admin for the authorization to connect to the SWDATA (default) database,
and this is done manually by the user when accessing the database through a
command line or DB2 utilities.

Before processing the change request, DB2 UDB verifies that the user has the
authority to make the request. DB2 UDB maintains a catalog in which all
information about the data, such as the table and column names, data owner,
authorized users, and user’s privileges are stored (Figure 2-4).

20 IBM TotalStorage Expert Customized Reports


Figure 2-4 User update permission for DB2

If the user is not authorized to view or update the database, DB2 UDB returns a
code indicating that it has refused the request. For this example, the user is
properly authorized and the request is accepted.

To ensure that a second requestor is not allowed to change the same data that
this user is changing, DB2 UDB locks the data. This lock keeps other
applications from accessing the data until the change is complete (Figure 2-5).

Chapter 2. TotalStorage Expert data gathering and storage 21


Figure 2-5 Lock on DB2 database

DB2 UDB reads the data the user wants to change into a special memory area in
DB2 UDB called the buffer. DB2 UDB does not make the change out in the
storage media; the change actually occurs in the buffer (Figure 2-6).

22 IBM TotalStorage Expert Customized Reports


Figure 2-6 Data read into DB2 memory buffer

Using the data in the buffer, DB2 UDB writes a before the change copy of the
data to a log. It then updates the row in the buffer, and writes an after the change
copy of the row to the log (Figure 2-7). This log keeps track of activities such as
who updated or deleted data, or when a utility copied the data.

Chapter 2. TotalStorage Expert data gathering and storage 23


Figure 2-7 DB2 updates to log

When the user tells DB2 UDB that the change is complete, which is done by
committing the change, the commit is also written to the log (Figure 2-8).

24 IBM TotalStorage Expert Customized Reports


Figure 2-8 DB2 write commit update to log

Since the user is finished with this data, DB2 UDB releases the lock on the row
and the data becomes available to other users. You may perceive the changed
data as being written to direct access storage devices (DASD) at this point, but in
reality DB2 UDB batches the writes of the buffer.

2.3.6 DB2 UDB user roles


In the RDBMS environment an individual may have one or more roles. Some of
the various roles of individuals working with DB2 UDB are system administrator,
database administrator, operator, programmer, and end-user.

System administrator (SYSADM)


Depending on the shop, the system programmer, administrator, and the
SYSADM performs the DB2 UDB install. The person installing DB2 UDB usually
becomes the DB2 UDB administrator, or the install SYSADM, who has ultimate
authority over DB2 UDB and grants authority to other users. The SYSADM sets
appropriate environment variables and creates the necessary system level
objects.

In the z/OS environment, after DB2 UDB is installed, the install SYSADM can
grant system administration authority to other IDs. In larger shops, individuals
with SYSADM authority further define what will exist on DB2 UDB. In a

Chapter 2. TotalStorage Expert data gathering and storage 25


one-computer, single-user implementation shop, the installer may be the
SYSADM, DBADM, programmer, operator, and end-user.
The SYSADM is very concerned with how everything works together at the
system level. The SYSADM uses tools to monitor the system, and takes
whatever actions are necessary to ensure smooth operations. Figure 2-9
illustrates the roles of the DB2 system administrator.

Figure 2-9 DB2 UDB system administrator roles

Note: SYSADM is not a granted authority in DB2 UDB for UNIX/Intel. In DB2
UDB, a group ID is designated as the SYSADM group, and members of that
group are system administrators for that environment.

Database administrator (DBADM)


When DB2 UDB for TotalStorage Expert is installed, other than the catalog, it is
conceptually empty. The DBADM or TotalStorage Expert installer creates a
database called SWDATA, and grants authority to one or more users.

TotalStorage Expert contains functionality to create the database to be used for


the application. This is done by the product installer during the configuration
stage of the TotalStorage Expert installation, in addition to setting up user roles
and authority.

In other implementations of DB2 UDB, it is usually the database administrator


(DBADM or DBA) that builds objects within the database. The DBADM builds the
tables that hold the data, the indexes that DB2 UDB uses to efficiently access the
data, and the views that define sets of columns and rows that may be accessed

26 IBM TotalStorage Expert Customized Reports


through a SQL statement. In a UNIX, Intel, or OS/2 environment any user that is
assigned to the administration group can create new objects within the database.

After the DB2 UDB objects are created, the DBADM can then disperse privileges
for use of specific objects, such as reading data from a customer table, changing
salary values in the personnel table, or creating new indexes on specific tables.

When programmers finish writing and testing their application programs on a test
system, the DBADM, or a specially designated ID, takes the programs through
the program preparation process on the production system. This process
includes a precompile step, and compile and link-edit steps. The compiler checks
the host language code and converts it into a machine-readable form called an
object module. The DBADM takes the SQL portion of an application program
through a process called BIND.

The DBADM is also responsible for maintaining the database. The DBADM
populates the tables, gathers statistics about the data, and places those statistics
in the DB2 UDB catalog. The DBADM, on a regular basis, copies the data. In the
event of a data problem, the DBADM can recover the data using the last copy of
the data.

Operator
An operator has the authority to run many of the utilities that a DBADM and a
SYSADM can run such as loading and backing up the data, restoring a
database, or importing data into DB2 UDB. An operator relieves the SYSADM
and DBADM from some of the maintenance burdens. While operators have the
authority to run utilities, they do not have inherent authority to view the data
(Figure 2-10).

Chapter 2. TotalStorage Expert data gathering and storage 27


Figure 2-10 DB2 UDB operator roles

Programmer
The DBADM usually creates test environments for major production applications.
For many new applications, the programmer may have the authority to create the
test environment. Most programmers do not code SQL statements into an
application until the statements have been coded, and proven to be syntactically
and logically correct. This process is called SQL prototyping.

Before a programmer embeds an SQL statement into an application that may run
hundreds or thousands of times a day, an hour, a minute, or a second, the
programmer should understand the steps DB2 UDB follows to execute the SQL
statement. DB2 UDB outline of steps involved in executing an SQL statement is
called explaining the SQL. After DB2 UDB explains the SQL, the programmer will
have an idea about how efficiently the SQL statement will access data. Of
course, the programmer is responsible for writing the programs and embedding
SQL into them. They may also write programs called stored procedures.
When the program is ready for testing, it must undergo the program preparation
steps. The programmer follows all of the same program preparation steps that
the DBADM follows before the program is put into production. The programmer
precompiles, compiles, and link-edits the program. The programmer must also
take the SQL part of the program through the bind process. Figure 2-11
illustrates the DB2 programmer’s roles.

28 IBM TotalStorage Expert Customized Reports


Figure 2-11 DB2 UDB programmer roles

End-user
An end-user is anyone who runs an SQL statement usually included inside an
application. The applications may require input, use the input to perform an
operation, and return a result. Inside the application may be SQL statements that
are doing some or all of the work. End-users may not even know that they are
using DB2 UDB. The applications may read data and produce reports; they may
change data and produce reports; they may just change data. The application
executes SQL statements to perform end-user functions without an end-user
understanding of SQL.

Many end-users must write their own SQL to change data and produce reports.
Some of these end-users will use tools to write SQL statements for them, instead
of having to learn the SQL syntax.

The scope of this book contains information that will assist in writing SQL queries
and database macros to mine data from the TotalStorage Expert database in
your environment. This information can then be used for reporting, management
review, performance analysis, and other functions.

2.3.7 DB2 UDB components


The following section provides details of the components of DB2 UDB and
describes their functions and interactions.

Chapter 2. TotalStorage Expert data gathering and storage 29


The DB2 UDB component that provides the base functions and configuration
files needed to use the database is called a database engine. The database
engine is responsible for:
򐂰 Managing and controlling all access to data
򐂰 Generating packages (stored access paths to the data)
򐂰 Providing transaction management
򐂰 Ensuring data integrity and data protection
򐂰 Providing concurrency control

The basic elements of the database engine are database objects, system
catalogs, directories, and configuration files. All access to data takes place
through the SQL interface. You can run DB2 UDB as just the database server,
with no additional products required. For remote clients, additional products are
necessary.

Instead of running DB2 UDB as a stand-alone database server, users frequently


access DB2 UDB in a two-tier or three-tier architecture from remote clients. This
requires the use of other DB2 UDB components. The communication support
layer provides remote clients the ability to access the DB2 UDB server
(Figure 2-12).

Figure 2-12 DB2 UDB two-tier architecture components

The server products of DB2 UDB provide support for communication to the
database server using protocols such as TCP/IP, SNA, or IPX/SPX. This, then,

30 IBM TotalStorage Expert Customized Reports


allows access from remote clients running the Administration Client, Run-Time
Client, or Application Development Client.

With the DB2 Administration Client component (Figure 2-13), you can remotely
administer DB2 UDB or DB2 Connect™ servers using the Administration Tools.
The Administration Tools are a part of the Administration Client installation. They
are a collection of graphical user interface (GUI) tools that help to manage and
administer databases. These tools include:
򐂰 Control Center for configuration, backup and recovery, and directory
management
򐂰 Command Center for issuing commands and creating command scripts
򐂰 Script Center for issuing SQL and creating SQL scripts
򐂰 Event Analyzer for examining event information
򐂰 Journal for analyzing the status of submitted jobs
򐂰 Alert Center for identifying problem areas
򐂰 Tools Settings for setting up replications, setting termination characters, and
setting Alert Center options

Figure 2-13 DB2 UDB Administration Client

Chapter 2. TotalStorage Expert data gathering and storage 31


The Run-Time Client component contains a subset of functions provided by DB2
UDB that enables pre-coded applications to run on a remote machine and
access DB2 UDB database servers (Figure 2-14).

Figure 2-14 DB2 UDB Run-Time Client component

The Run-Time Client supplies the Command Line Processor (CLP), which has
the capability to catalog and uncatalog node and database directories, and bind
packages. CLP is a character-based interface for entering SQL statements and
database manager commands. It may be used to access local workstation
databases, remote workstation databases, or remote Distributed Relational
Database Architecture™ (DRDA®) Application Server databases by means of
DB2 Connect.

The Application Development Client component is a collection of tools that are


designed to meet the needs of database application developers. It includes
libraries, header files, documented APIs, and sample programs to build
character-based, multimedia, or object-oriented applications (Figure 2-15).

32 IBM TotalStorage Expert Customized Reports


Figure 2-15 DB2 UDB Application Development Client

A platform-specific version of the DB2 Application Development Client is


available on each server CD-ROM. If you need to develop applications on a
machine other than the server, you should acquire the Developer’s Edition
product appropriate to your needs.

Through a DB2 client, these applications can access all servers and, by using the
DB2 Connect, they can also access DB2 for iSeries, DB2 for OS/390 and z/OS,
and DB2 for VSE and VM database servers.

2.4 TotalStorage Expert DB2 UDB tables overview


The following list provides a very basic description of terminology of some basic
terms in a relational database context:
򐂰 Schema
A schema is a collection of named objects (tables and views, for example). A
schema provides a logical classification of objects in the database. A schema
is created implicitly when you create a table, a view or any other named
object. Or, you can create it explicitly using the CREATE SCHEMA statement.
When you create a named object, you can qualify (associate) its name with
the name of the particular schema. You will not need to create or alter the

Chapter 2. TotalStorage Expert data gathering and storage 33


default schema for the TotalStorage Expert database. Named objects have
two-part names, where the first part of the name is the schema name to which
the object is assigned.
If you do not specify a schema name, the object is assigned to the default
schema. The name of the default schema is the authorization ID of the user
executing the statement (DB2ADMIN in this book).
For interactive SQL, the method used to execute some of the examples in this
book, the authorization ID is the user ID specified with the CONNECT
statement. For TotalStorage Expert for example, if the name of a table is
CMSGS, and the user ID specified is DB2ADMIN (default), then the qualified
table name is DB2ADMIN.CMSGS. See 3.2.3, “Connecting to a database” on
page 58 for details on the CONNECT statement. Some schema names are
reserved.
When executing SQL query statements, you may have to qualify the table
names used by prefixing them with the schema name and a period if you
prefer. This is not a necessity for the TotalStorage Expert database tables. For
examples in this book, the default schema is assumed to be DB2ADMIN. So,
you could refer to the table CUAUT as DB2ADMIN.CUAUT.
򐂰 Tables
Tables are logical structures made up of a defined number of columns and a
variable number of rows, which is collected and parsed into the table by the
Expert application.
򐂰 Column
A column is a set of values of the same data type.
򐂰 Row
A row is a sequence of values composing a single record in the table. The
rows are not necessarily ordered within a table. To order the result set, you
have to explicitly specify an ordering in database language statement that
selects data from the table.
򐂰 Value
At the intersection of every column and row is a specific data item called a
value.
򐂰 Base table
A base table holds user data and is created with the CREATE TABLE
statement. There is a set of base tables created when the TotalStorage
Expert is implemented for the first time (or a new database is created) on a
Windows 2000 Server or AIX host machine.

34 IBM TotalStorage Expert Customized Reports


򐂰 Result table
A result table is a set of rows that the database manager selects or generates
from one or more base tables to satisfy a query.
򐂰 Query
A query is a structured database language statement that extracts information
from a table(s) and produces output to an application, screen, or file.
򐂰 For further information on the description of the structure, components, and
function of tables, refer to Chapter 2.4, “TotalStorage Expert DB2 UDB tables
overview” on page 33, and to the manuals:
IBM DB2 Universal Database SQL Reference Volume 1, SC09-2974
IBM DB2 Universal Database SQL Reference Volume 2, SC09-2975

2.5 TotalStorage database table organization


This section contains a listing of all the TotalStorage Expert tables that can be
used in both the built-in and the customized reports. This reference will be
invaluable when you create your own SQL queries. All of the tables are outlined
by their function and briefly described. Refer to Appendix B, “TotalStorage Expert
database table layouts” on page 241 for the detailed table definitions and
parameters.

The listing below is not an exhaustive list of the tables, but contains information
on the most widely used tables in the database. The Appendix A contains the
entire list of the TotalStorage database tables for reference.

The logical organization for IBM TotalStorage Expert database tables associated
with IBM Enterprise Storage Server (ESS) data is as follows:
򐂰 Root table: VMPDX
Contains serial number of each ESS, a corresponding index, a user-defined
nickname, other ESS-level information
򐂰 Asset and Capacity tables updated by the Expert asset/capacity data
collection tasks); (The indices in VMPDX identify the ESS’s in these tables.)
– Historical tables (most tables updated only when content changes.
VMCAP, VHOSTC, VCLUC are updated each time task runs)
Asset data:
VCLUA, VCLUL Cluster IP and ESS micro code level information
VMASI, VMASE Expansion rack data
Capacity data:
VMCAP Storage-server-level capacity data

Chapter 2. TotalStorage Expert data gathering and storage 35


VCLUC Cluster-level capacity data
VMDDM Number and type of ddms per ESS
VCUIC, VCUIV CKD capacity data
VHSTC, VHSTX Open systems host capacity data, indices for open
systems hosts
VHSTC Open systems host capacity data
VHSTX Global indices for open systems hosts
VHNICKX ESS-local open system host indices
VVOLX Indices for fixed block volumes per ESS
– Current data tables (an assembly of the most recently collected data for
each ESS):
Tables starting with VCM - most recently collected capacity data (including
host-volume relationships in VCMHOSTVOL). These tables include:
VCMHOSTVOL Most recent open system host-volume
relationships, using global indices for open systems
hosts
VCMHNICK Most recent ESS open systems host nicknames for
each ESS (using ESS-local open system host
indices)
VCMHNICKV Most recent open system host-volume
relationships, using ESS-local open system host
indices
VCMPORT Most recent IO Bay and other info for FC attached
open system hosts
Tables starting with VSXDA - most recently collected asset data
򐂰 Open systems host/volume data
Information for host data collection tasks:
VSCHHDC Auxiliary data for host data collection tasks
VHOSTDC Current list of Host IP/Network names used in host
data collection task definitions
VHDCSTAT Status summary data for completed host data
collection tasks
Results of Collection from Hosts:
VHLPATH Vpath and hard disk data for ESS volumes (volume
serial number)

36 IBM TotalStorage Expert Customized Reports


VHLNICK Corresponding host nicknames on each ESS
VHLHOST Level of SDD Server for given Host IP
򐂰 Performance tables sample data updated by performance data collection
task, hourly tables updated by the data preparation task:
Sample data:
VPCCH Sample interval data (volume statistics)
VPCRK Sample interval data (RAID array-level statistics)
VPVPD |
VPCFG | tables for conversion of ESS internal address
scheme to location of volumes and arrays VPVOL |
Hourly data:
VPHVOL Volume-level statistics
VPHAR, VPHARCAC RAID array -level statistics
VPHAD, VPHADCAC Device adapter/loop level statistic s
VPHCLCAC Cluster-level statistics
VPHSS ESS-level statistics (not displayed by the Expert)
VPSNX Index table for each ESS with performance
statistics.
VPCUT Date and hour last processed by data preparation
task
These indices identify the ESS's in the VPH tables. The indices in VMPDX
and VPSNX are correlated by ESS serial number.
򐂰 Various tables related to the tasks themselves:
VSTATS Results of data collection tasks
VTSEQ, VSCHT Usage depends on type of task
򐂰 Threshold and notification tables
VTHRESHOLD ESS Threshold setting table (for performance metrics)
VOPEVENT Notification rules for ESS Expert operational
(task-oriented) events

Chapter 2. TotalStorage Expert data gathering and storage 37


2.6 TotalStorage Expert database tables
Each table is known by a unique name and contains a set of unique data. The
data (fields) within each table have at least one key field, and from two to many
data fields.

The table definitions set forth in this database are intended to be used with IBM
TotalStorage Expert only. The definitions are provided for informational purposes
only, and are not intended as a programming interface. IBM does not support
user modifications to the table definitions, and IBM does not recommend using
the definitions to make modifications to the IBM TotalStorage Expert
environment. Modification of the tables, or any program code that depends on
these table definitions, may produce unreliable results in future releases of the
IBM TotalStorage Expert Product.

Table 2-1 describes the tables by giving the tablespace name and a brief
description of the purpose the contents of the database tables are fully presented
in Appendix B, “TotalStorage Expert database table layouts” on page 241.

Note: It is not recommended to make any modifications to the existing


TotalStorage database. Only viewing of the original database should be done.
Further manipulation of the data saved from the database can be achieved
making a copy of the database to a safe disk area other than the default DB2
database directory for TotalStorage Expert. (Also, see the chapter “Managing
the TotalStorage Expert database” in the TotalStorage Expert Hands-On
Usage Guide, SG24-6102 for further details.) The database may be saved out
and the saved copy can be manipulated in other ways using the TotalStorage
Expert SWImport and SWExport utilities.

Table 2-1 Tables in the Expert database and their description


Table Description

CUSRS list of users defined to StorWatch [key: I_USER]

CUAUT list of authorities for users [key: I_USER, C_AUTH_FUNC]

CSCHD scheduled tasks [key: I_USER, C_SCHD_TASK_TYPE, I_SCHD_TASK]

CSCHH history of executed scheduled tasks [key: I_USER, C_SCHD_TASK_TYPE,


I_SCHD_TASK, I_SCHH_TASK_SEQ]

CNODE node names and IP addresses of hosts discovered by StorWatch [key: I_IP_ADDR,
I_NODE_NAME]

CNGRP general node group information [key: I_NODE_GROUP]

38 IBM TotalStorage Expert Customized Reports


Table Description

CNGDI IP address patterns that define the node groups [key: I_NODE_GROUP,
I_IP_ADDR]

CSIPA IP address patterns that make up the StorWatch management scope [key:
I_IP_ADDR]

CSSTY service types that StorWatch will discover [key: C_SERVICE_TYPE, N_PORT]

CSRVH history of services found on each discovered node [key: I_NODE_ENTITY,


C_SERVICE_TYPE, N_PORT, I_SCHH_TASK_SEQ]

CNGRH history of node group membership by node [key: I_NODE_ENTITY,


I_NODE_GROUP, I_SCHH_TASK_SEQ]

CIGEN index generation table [key: I_INDEX_NAME]

CMSGS log, trace and alert messages [key: none]

CMSAU alert message authorities [key: I_MSGID, D_ISSUED, C_AUTH_FUNC]

CDSTT discovery summary statistics [key: I_SCHH_TASK_SEQ]

CDSSD discovery detail statistics [key: I_SCHH_TASK_SEQ, C_SERVICE_TYPE,


C_SERV_TYPE_STATUS]

CUPRF user profile table [key: I_USER, I_PRF_KEY]

CURLE user role description [key: I_USER_ROLE]

CURTA user role to authority association [key: I_USER_ROLE, C_AUTH_FUNC]

CUSRV user defined services [key: C_SERVICE_TYPE]

CUSPT user defined service ports [key: C_SERVICE_TYPE, N_PORT]

CSNMP SNMP managers [key: I_SNMP_IP_ADDR, N_SNMP_PORT]

CSWCS configuration data [key: I_CFG_KEY]

CPARM general parameters -- can be used by all StorWatch components [key: I_PRM_KEY,
C_PRM_COMP, I_PRM_SCOPE]

COPEVENT Core operation events [key: EVENTID]

CTHRESHOLD use for database monitor [key: METRIC]

VTSEQ Historical list of asset/capacity task sequence numbers and the associated date
and time that each task ran. [key: I_TASK_SEQ_IDX]

VMPDX VMPDX contains the basic, seldom-changing attributes associated with each
storage server the ESS Expert has communicated with. One record exists for each
storage server “known” to the ESS Expert. [key: I_VSM_IDX]

Chapter 2. TotalStorage Expert data gathering and storage 39


Table Description

VMASI Historical table containing the basic attributes associated with asset information for
each storage server. New row inserted whenever these attributes of a storage
server changes.[key: I_VSM_IDX,I_TASK_SEQ_FIRST]

VMASE Historical table containing expansion feature attributes for each storage server. New
row inserted whenever these attributes of a storage server changes. [key:
I_VSM_IDX,I_TASK_SEQ_FIRST,I_VSM_RACK_SN]

VCLUA Historical table containing the asset management type attributes for each cluster in
a storage server. New row inserted whenever these attributes of a cluster changes.
[key: I_VSM_IDX,I_TASK_SEQ_FIRST,I_CLU_NO]

VCLUL Historical table containing licensed internal code attributes for each cluster in a
storage server. New row inserted whenever these attributes change [key:
I_VSM_IDX,I_TASK_SEQ_FIRST,I_CLU_NO,I_CLU_LIC_SRC]

VMCAP Historical storage server capacity table. New rows inserted each time
asset/capacity collection runs. [key: I_VSM_IDX,I_TASK_SEQ_IDX]

VMDDM historical list of types of DDMs (disk drive modules/actual physical disks) in the
storage server, and their quantity. When the quantity changes, a new row is added.
[key: I_VSM_IDX,I_DDM_TYPE,I_TASK_SEQ_FIRST]

VCLUC historical cluster capacity table. New row added whenever the memory attributes of
a cluster changes [key: I_VSM_IDX,I_CLU_NO,I_TASK_SEQ_FIRST]

VHSTC Historical Open System host capacity table: records the capacity for all hosts, per
storage server, each time asset/capacity data is collected from the storage servers
[key: I_VSM_IDX,I_TASK_SEQ_IDX,I_HOST_IDX]

VHSTX Index table for Open system (SCSI-attached and FC-attached) hosts. New row
added whenever a new host or host attachment type is detected or when the
attributes of a host changes. [key:
I_HOST_IDX,I_HOST_ATTACH,I_TASK_SEQ_FIRST]

VHSTV Host-Volume association table. Recreated each time asset/capacity collection runs.
[key: I_VSM_IDX,I_TASK_SEQ_IDX,I_HOST_IDX,I_VOL_IDX]

VVOLX Index table for fixed block, logical volumes. New row added whenever a new fixed
block volume is detected or the attributes of an existing volume changes.[key:
I_VSM_IDX,I_VOL_IDX,I_TASK_SEQ_FIRST]

VCUIC Historical table containing capacity data for logical control units in each storage
server. New rows inserted with each capacity collection run. [key:
I_VSM_IDX,I_CUI_IMAGE_NUM,I_TASK_SEQ_IDX]

VCUIV Historical table summarizing S/390 volumes of a given type and total capacity, per
logical control unit. New rows added each capacity collection run. [key:
I_VSM_IDX,I_CUI_IMAGE_NUM,I_CUI_VOL_TYPE,I_TASK_SEQ_IDX]

40 IBM TotalStorage Expert Customized Reports


Table Description

VCMTOP1 Most recently collected data for storage server capacity, logical control units, and
Open System hosts. Table is recreated each capacity collection run. [key:
I_VSM_IDX]

VCMTOP2 Most recently collected data for capacity-related hardware attributes in each
storage server. Table is recreated each capacity collection run. [key: I_VSM_IDX]

VCMDDM Most recently collected data for list of types of DDMs. Table is recreated each
capacity collection run. [key: I_VSM_IDX,I_DDM_GB_CAPACITY,I_DDM_RPM]

VCMCLUST Most recently collected data for cluster capacity. Table is recreated each capacity
collection run. [key: I_VSM_IDX,I_CLU_NO]

VCMCUISUM Most recently collected data for capacity values of logical control units in each
storage server. Table is recreated each capacity collection run. [key:
I_VSM_IDX,I_CUI_IMAGE_NUM]

VCMCUIVOL Most recently collected data for. Table is recreated each capacity collection run.
[key: I_VSM_IDX,I_CUI_IMAGE_NUM,I_CUI_VOL_TYPE]

VCMCKD Most recently collected data for S/390 volumes in each storage server. Table is
recreated each capacity collection run. [key:
I_VSM_IDX,I_CUI_IMAGE_NUM,I_VOL_NUM]

VCMHOSTCAP Most recently collected data for the capacity for Open System hosts, per storage
server. Table is recreated each capacity collection run. [key:
I_VSM_IDX,I_HOST_IDX]

VCMHOSTVOL Most recently collected data for Open System hosts/fixed block volume connections
in each storage server. Table is recreated with each capacity collection run. [key:
I_VSM_IDX,I_HOST_IDX,I_VOL_IDX]

VSXDALVL Most recently collected data for the basic identifying information for each storage
server. Table is recreated each capacity collection run. [key: I_VSM_IDX]

VSXDALDT Most recently collected data for the active level of licensed internal code for each
cluster. Table is recreated each time capacity collection run. [key:
I_VSM_IDX,I_CLU_NO]

VSXDATOP Most recently collected data for the basic attributes associated with asset
information for each storage server. Table is recreated each capacity collection
run.[key: I_VSM_IDX]

VSXDARCK Most recently collected data for the expansion feature attributes associated with
each storage server. Table is recreated each capacity collection run. [key:
I_VSM_IDX]

VSXDACLU Most recently collected data for the asset management type attributes for each
cluster in a storage server. Table is recreated each capacity collection run. [key:
I_VSM_IDX,I_CLU_NO]

Chapter 2. TotalStorage Expert data gathering and storage 41


Table Description

VSXDALIC Most recently collected data for the licensed internal code attributes for each
cluster. Table is recreated each capacity collection run. [key:
I_VSM_IDX,I_CLU_NO,I_CLU_LIC_SRC]

VSXDSTYP Most recently collected data for storage server summary by type. Table is recreated
each capacity collection run. [key: I_VSM_TYPE]

VPVPD Cluster-level and storage server-level configuration data; generated at start of


Performance Collection [KEY: P_TASK,M_MACH_SN,M_CLUSTER_N]

VPCFG Logical array configuration data; generated at start of Performance Collection


[key:P_TASK,M_MACH_SN,M_CLUSTER_N,M_CARD_NUM,M_LSS_LA,M_AR
RAY_ID]

VPVOL Logical volume configuration data; generated at start of Performance Collection


[key: P_TASK,M_MACH_SN,M_LSS_LA,M_VOL_NUM]

VPCRK Logical array-level performance data (for subsystem requests issued to the lower
interface); updated by Performance Collection
[key:P_TASK,PC_INDEX,M_MACH_SN,M_CLUSTER_N,M_LSS_LA,M_ARRAY_
ID,PC_DATE_B,PC_TIME_B]

VPCCH Volume-level performance data (for I/O requests, or “command chains”, including
those causing cache/DASD transfers); updated by Performance Collection [key:
P_TASK,PC_INDEX,M_MACH_SN,M_CLUSTER_N,M_LSS_LA,M_ARRAY_ID,M
_VOL_NUM,PC_DATE_B,PC_TIME_B]

VPHVOL Hourly performance statistics for logical volumes (based on VPCCH); generated by
data preparation task
[key:I_PR_SEQ_IDX,I_MACH_IDX,I_CLUSTER_NO,I_CARD_NO,I_LOOP_ID,I_
DISK_GRP_NO,I_DISK_NUM,I_VOL_NUM,D_PR_DATE,I_PR_HOUR]

VPHARCAC Hourly performance statistics for logical arrays (based on VPCCH); generated by
data preparation task
[key:I_PR_SEQ_IDX,I_MACH_IDX,I_CLUSTER_NO,I_CARD_NO,I_LOOP_ID,I_
DISK_GRP_NO,I_DISK_NUM,D_PR_DATE,I_PR_HOUR]

VPHADCAC Hourly performance statistics for adapter/loops (from VPCCH data); generated by
data preparation task
[key:I_PR_SEQ_IDX,I_MACH_IDX,I_CLUSTER_NO,I_CARD_NO,D_PR_DATE,I
_PR_HOUR]

VPHCLCAC Hourly performance statistics for clusters (from VPCCH data); generated by data
preparation task [key:
I_PR_SEQ_IDX,I_MACH_IDX,I_CLUSTER_NO,D_PR_DATE,I_PR_HOUR]

VPSNX List of storage servers and their internal indices for which preparation of
performance data has occurred. Updated by Perf. Rollup [key: I_VSM_IDX]

42 IBM TotalStorage Expert Customized Reports


Table Description

VPCUT Container for the cutoff time for the most recently run data preparation task.
Updated by data preparation task [key: I_ITEM_NO]

VPHSS hourly performance statistics for storage servers (from data for logical arrays,
mostly in VPCRK); generated by data preparation task [key:
I_PR_SEQ_IDX,I_VSM_PERF_IDX,D_PR_DATE,I_PR_HOUR]

VPHAR hourly performance statistics for logical arrays (from data for logical arrays, mostly
VPCRK); generated by data preparation task [key:
I_PR_SEQ_IDX,I_VSM_PERF_IDX,I_ARRAY_ID,D_PR_DATE,I_PR_HOUR]

VPHAD hourly performance statistics for adapter/loops (from data for logical arrays, mostly
in VPCRK); generated by data preparation task [key:
I_PR_SEQ_IDX,I_VSM_PERF_IDX,I_LSS_LA,D_PR_DATE,I_PR_HOUR]

VSCHT Contains information to assist ESS Expert identify the storage servers that belong
to a scheduled data collection task. [key:
I_SCHD_TASK,I_USER,C_SCHD_TASK_TYPE,I_VSM_IDX]

VTSTATM Task completion table for ESS Expert tasks which initiate work concurrently on
multiple storage servers. Updated when such a task completes. [key:
I_SCHH_TASK_SEQ]

VTSTATS Task completion table for ESS Expert tasks which perform work procedurally for a
set of storage servers. [key: I_SCHH_TASK_SEQ]

VMKHCAP Historical capacity data to be kept for 4 years.

VCMPORT Most recently collected data for Fibre Channel (FC) adapter ports and attached
open system hosts, if any. [key:
I_VSM_IDX,I_PORT_BAY,I_PORT_CARD,I_PORT_ID,I_HOST_EXISTS,I_HOST
_WWPN]

VHNICKX Container for all hnick-type indices created in this Expert. Unique index per ESS
and open system host Nickname in ESS. [key:
I_HNICK_IDX,I_VSM_IDX,I_HNICK_NAME]

VCMHNICK Contains the HNICK host indices (one index per ESS and host nickname) most
recently collected from each ESS [key: I_HNICK_IDX,I_VSM_IDX]

VCMHNICKV Contains the volume-host assignments and volume locations most recently
collected from the storage server [key: I_VSM_IDX,I_HNICK_IDX,I_VOL_IDX]

VHOSTDC Contains most recently entered network addresses of open systems host
nicknames [key: I_VSM_SN,I_HNICK_NAME,I_HOST_CONN_IP]

VSCHHDC Contains information that identifies the open systems hosts associated with a host
data collection task. [key:
I_SCHD_TASK,I_USER,C_SCHD_TASK_TYPE,I_HNICK_IDX,I_HOST_CONN_I
P]

Chapter 2. TotalStorage Expert data gathering and storage 43


Table Description

VHLPATH The volume path information most recently collected from open systems hosts [key:
I_HOST_CONN_IP,I_VSM_IDX,I_VOL_SN,I_PATH_ID,I_TASK_SEQ_IDX]

VHLNICK The most recent set of host nicknames per ESS associated with an open systems
host [key:
I_HOST_CONN_IP,I_HNICK_IDX,I_VSM_IDX,I_VOL_SN,I_TASK_SEQ_IDX]

VHLHOST Certain host-specific information provided by the subsystem device driver (SDD),
which is updated each time data is collected from the host [key:
I_HOST_CONN_IP]

VHDCSTAT Task completion table for ESS Expert host data collection tasks [key:
I_SCHH_TASK_SEQ]

VTHRESHOLD A list of threshold definitions currently recognized by the ESS Expert and used to
detect and optionally issue alerts for threshold-overflow conditions. [key: METRIC,
SCOPE]

VOPEVENT A list of events currently recognized by the ESS Expert which are used to optionally
issue alerts if an ESS task experiences certain types of failures. [key: EVENTID]

TDATASRC Data source table

TDATA Data description table

TTHRESHOLD Threshold registration table

TALARMDISPLAY Alarm display registration table

TSASSET S3494 asset table

TSPERF S3494 performance table

TVASSET VTS asset table

TVCAPC VTS capacity table

TVPERF VTS performance table

TVCHNDIST VTS channel distribution table

TVACTDIST VTS active data distribution table

TGPERF Gemini performance table

TVREAL VTS-18 real-time data table

TTEMP Temporary storage table

TREPINFO ETL report information

44 IBM TotalStorage Expert Customized Reports


3

Chapter 3. SQL overview


Structured Query Language (SQL) is a standardized interactive and
programming language for defining and manipulating data in a relational
database. Although SQL is both an ANSI and an ISO standard, many database
products support SQL with proprietary extensions to the standard language.

This chapter discusses the basics of SQL. To illustrate the concepts, we have
included examples from the TotalStorage Expert database tables. After this
chapter, you should be familiar enough with the commands and syntax to begin
writing your own SQL query statements for extracting information from the
TotalStorage Expert database. If you are already familiar with SQL, you may want
to skip this chapter.

© Copyright IBM Corp. 2003. All rights reserved. 45


3.1 Getting familiar with SQL
The TotalStorage Expert application utilizes code in statements that are executed
by a database manager. A database manager is a computer program that
manages the data. When these statements, often called SQL queries, are
executed in the TotalStorage Expert, they are done automatically without any
user intervention. If they are created and executed interactively (manually),
queries take the form of a command language that lets you select, insert, update,
find out the location of data, and so forth. There is also a programming interface
available within the DB2 UDB utilities, which is described in 4.3, “IBM DB2
Utilities Command Center features” on page 83.

The original version of SQL, called SEQUEL (structured English query


language), was designed by an IBM research center in 1974 and 1975. Although
there are different dialects of SQL, it is nevertheless the closest thing to a
standard query language that currently exists. In 1986, ANSI approved a
rudimentary version of SQL as the official standard, but most versions of SQL
since then have included many extensions to the ANSI standard. In 1991, ANSI
updated the standard. The new standard is known as SAG SQL.

Historically, SQL has been the favorite query language for database
management systems running on minicomputers and mainframes. Increasingly,
however, SQL is being supported by PC database systems because it supports
distributed databases (databases that are spread out over several computer
systems). This enables several users on a local-area network to access the
same database simultaneously. A partitioned relational database is a relational
database where the data is managed across multiple partitions (also called
nodes). A simple way to think of partitions is to consider each partition as a
physical computer. In this book, we will focus our attention on the single partition
database used by the TotalStorage Expert product.

A good source of fundamental SQL information is the following SQL standards


home page:
http://www.jcc.com/SQLPages/jccs_sql.htm

3.2 Understanding a relational database table


In a relational database, data is stored in tables. A table is a collection of rows
and columns. Columns (vertical) and rows (horizontal) have been marked on the
figure (Figure 3-1). Structured Query Language (SQL) is used to retrieve or
update data by specifying columns, tables, and the various relationships between
them.

46 IBM TotalStorage Expert Customized Reports


Figure 3-1 Visualization of a database table

Tables are created in DB2 Universal Database (UDB) using the SQL CREATE
statement. However, in order to create tables in DB2 UDB, you must first have
the authority to do so. This authority is found in the authorization ID, which is a
character string that designates a set of privileges. The default authorization ID
and password for the TotalStorage database (default:SWDATA) is db2admin.
During the configuration step of the TotalStorage Expert installation, you created
the tables and other structure of the database (Figure 3-2).

Figure 3-2 TotalStorage database creation during configuration

Chapter 3. SQL overview 47


Example 3-1 is an example of creating a TotalStorage Expert (CMSGS) table
manually using an SQL statement.

Example 3-1 SQL statement for creating table CSMGS


CREATE TABLE CMSGS (I_MSGID CHAR(9) NOT NULL, \
C_SEVERITY CHAR(1) NOT NULL, \
D_ISSUED TIMESTAMP NOT NULL, \
C_MSGTYPE CHAR(1) NOT NULL, \
I_COMPONENT CHAR(4) NOT NULL, \
I_SCHH_TASK_SEQ INTEGER, \
I_THREADID VARCHAR(128), \
X_MESSAGE VARCHAR(1024) NOT NULL, \
EVENTID CHAR(25), \
CORRELATEKEY VARCHAR(100));

Enclosed in parentheses of the CREATE TABLE statement are the column


description areas. Each of the table columns must be assigned at least the
following three attributes, as shown in Figure 3-3:
򐂰 Column name
򐂰 Data type/length
򐂰 Null characteristic

Figure 3-3 Table column attributes

When defining table and column names, the first character of the name must
begin with an alphabetic character or one of the national symbols. These include

48 IBM TotalStorage Expert Customized Reports


the letters A-Z, the dollar sign $, the at sign @, and the number sign #. After the
first character, subsequent characters of the name can be alphabetic characters,
numeric characters such as 0-9, and the underscore _ The underscore is used in
most cases as a visual separator. Table and column names can be from 1 to at
least 18 characters long. Newer releases of DB2 UDB support longer table and
column names.

Figure 3-4 illustrates the requirements for these DB2 object names.

Figure 3-4 Table definition standards

DB2 UDB accepts names with characters outside of the standard NAME
character set, such as +, -, or a space. However, if these characters are used,
the names must be enclosed in double quotation marks ""

Reserved words such as SELECT and INSERT can be used in a table or column
names if the reserved word is enclosed in double quotation marks ("SELECT").
There are more than 100 reserved words in DB2 UDB, and they are listed in the
manuals IBM DB2 Universal Database SQL Reference Volume 1, SC09-2974,
and IBM DB2 Universal Database SQL Reference Volume 2, SC09-2975, for
each platform.

Chapter 3. SQL overview 49


Tablespace
The storage area in which a table is kept is called a tablespace (Figure 3-5). DB2
UDB divides a tablespace into sections called pages. The creator of the
tablespace specifies the page size for that tablespace. Depending on the release
of DB2 UDB page sizes may be 4 K (4096 bytes), 8 K (8192 bytes), or 32 K
(32768 bytes), to name a few.

Agents
Client Buffer Pool
Application
(Memory)

Agents
Client
Application

Table Space
(Hard Disk)

Figure 3-5 Tablespace is storage area for database

3.2.1 Data types


Data types define acceptable values for constants, columns, host variables,
functions, expressions, and special registers. This section describes the data
types referred to in the examples. The most common data types assigned as
column attributes fall within three generic categories. They are character data,
numeric data, and date and time. For a full list and complete description of other
data types refer to the IBM DB2 Universal Database SQL Reference Volume 1,
SC09-2974, and IBM DB2 Universal Database SQL Reference Volume 2,
SC09-2975 manuals.

Character strings
A character string is a sequence of bytes. The length of the string is the number
of bytes in the sequence. If the length is zero, the value is called the empty string.
The most common character string data types are the following:

50 IBM TotalStorage Expert Customized Reports


򐂰 CHAR(x)
CHAR(x) is a fixed length character string. The length attribute x must be
between 1 and 254, inclusive.
򐂰 VARCHAR(x) and LONG VARCHAR(x)
VARCHAR(x) and LONG VARCHAR(x) are varying-length character strings.

For CHAR(x), the x specifies the number of characters the column will contain for
each row in a table. If values shorter than the x are placed into that column, DB2
UDB will pad the short values with spaces (blanks) to fill up the fixed length. The
maximum value x can be is 254.

VARCHAR(x) types are varying-length strings, so a string of length 9 can be


inserted into VARCHAR(15) but will still have a string length of 9. The x specifies
the maximum number of characters that DB2 UDB allows into the column. If a
lesser number of characters than the maximum is stored, DB2 UDB will not pad
the string to fill the column. DB2 UDB will store only the characters placed into
the column. Generally, VARCHAR is used to write a string longer than 254 bytes,
or to save space. DB2 stores only the actual value in the field. The maximum
length is 2 bytes (or page size).

One of the rules DB2 UDB enforces is that a row of data cannot cross a page
boundary. Therefore, the maximum size the value of x in VARCHAR(x) can be is
the size of the page, less the size of all other columns within the row, less any
overhead bytes DB2 UDB uses to manage the page. For each VARCHAR
column, DB2 UDB builds a two-byte length field in front of the column. The length
field is used to keep track of the length of the value placed in the VARCHAR
column.

Numeric data types


Two of the three most common numeric data types are SMALLINT and
INTEGER (INT). These tell DB2 UDB to allow only whole numbers (no fractions
or decimal values) into columns of these data types. The difference between a
SMALLINT and an INTEGER column is how much storage DB2 UDB sets aside
for the column. SMALLINT tells DB2 UDB to set aside 2 K of storage while
INTEGER tells DB2 UDB to set aside 4 K of storage. The numerical values are
stored as binary values.

Important: It is very important that the creator of a table know approximately


the largest and smallest value, or the range of values a column can contain.
By specifying SMALLINT as a column’s data type, DB2 UDB allows only
values between 0 and plus or minus approximately 32000. For example, if
someone puts a value of 33000 in a SMALLINT column, the change fails and
an error code is returned.

Chapter 3. SQL overview 51


The third common numeric data type is DECIMAL. It is denoted by DEC(x,y) or
DECIMAL(x,y). The x value specifies the maximum number of digits DB2 UDB is
to allow in the column. The y value tells DB2 UDB how many of those digits are to
the right of the decimal point. The decimal point is not included in the total
number of digits.

Date, time, and timestamp data types


Date and time data types are denoted by DATE, TIME, and TIMESTAMP. Dates,
times, and timestamps are stored internally as numbers to save space.
Externally, in SQL statements, they are treated as character strings because of
the separation characters between the pieces of a date, time, and timestamp. In
an SQL statement, character strings must be enclosed in single quotes.

Important: The DATE and TIME data formats are very important in
TotalStorage Expert database table fields due to the fact that they are stored
in the manner described below, but are derived from the system time of the
host where the product is installed.

The United States (USA) external date format is MM/DD/YYYY. When the month
portion of the date is listed first, the slash / must be used as the separation
character. The Europe (EUR) external date format is DD.MM.YYYY. When the
DAY portion of the date is listed first the period . must be used as the separation
character. DB2 UDB allows you to use any of the following external date formats
within your SQL statements:
򐂰 USA - MM/DD/YYYY
򐂰 International Standards Organization (ISO) - YYYY-MM-DD
򐂰 Europe (EUR) - DD.MM.YYYY
򐂰 Japanese Industrial Standard (JIS) - YYYY-MM-DD

Without single quotes around dates, times, or timestamps, DB2 UDB might
register these values as an invalid numeric value. DB2 UDB might also try to
perform the math represented by the separation character, dividing where
slashes are encountered, and subtracting where there are dashes.

DOUBLE data type


In the TotalStorage Expert databases (see hourly performance tables such as
VPHVOL and VPHARCAC for examples), there are a number of DOUBLE data
type fields defined. A DOUBLE (double-precision floating-point number) is a
64 bit approximation of a real number. DOUBLE is also referred to as FLOAT.

52 IBM TotalStorage Expert Customized Reports


NULL characteristic
Another column attribute assigned in the CREATE TABLE statement is the null
characteristic. The null characteristic is assigned to each column in a table. The
null characteristic tells DB2 UDB whether or not to mark a column as: The value
for this column, for this row, is unknown.

The table creator has three types of null characteristics from which to choose:
NOT NULL, NOT NULL WITH DEFAULT, and nullable.

NOT NULL tells DB2 UDB to enforce the rule that there must always be a value
in this column. If an attempt is made to add a row to this table and the row does
not have a value for the NOT NULL columns, the attempt fails and DB2 UDB
returns an error message. An example of a NOT NULL characteristic in the
TotalStorage tables is the T_TASK_TIME which indicates the time when the ESS
Expert most recently collected asset and capacity data from any storage server.

When a column’s null characteristic is nullable, DB2 UDB builds an extra byte in
front of the column. This extra byte is used as a flag to indicate whether or not the
column has a known value. This unknown value is not zero or blank; the value is
simply unknown. A middle-initial column is a good example of a column that
could be defined as nullable, since not everyone has a middle name.

NOT NULL WITH DEFAULT tells DB2 UDB that there must always be a value in
this column. However, if a row being added to the table does not include a value
for this column, DB2 UDB provides one based on the data type of the column.
The chart above shows the default value DB2 UDB will use for NOT NULL WITH
DEFAULT columns of a given data type.

Table 3-1 Default values for NOT NULL WITH DEFAULT


Data type Default value

Numeric 0

Fixed-length character string Blanks

Varying-length character string A string of length 0

Fixed-length graphic string Double-byte blanks

Varying-length graphic string A string of length 0

Date For existing rows, a date corresponding to


January 1, 0001. For added rows, the
current date.

Time For existing rows, a time corresponding to


0 hours, 0 minutes, and 0 seconds. For
added rows, the current time.

Chapter 3. SQL overview 53


Data type Default value

Timestamp For existing rows, a date corresponding to


January 1, 0001, and a time corresponding
to 0 hours, 0 minutes, 0 seconds and 0
microseconds. For added rows, the current
timestamp.

Binary string (blob) A string of length 0

Within the CREATE TABLE statement, also some other attributes of the table
may be defined. For a full list and complete description of other data types, refer
to the IBM DB2 Universal Database SQL Reference Volume 1, SC09-2974, and
IBM DB2 Universal Database SQL Reference Volume 2, SC09-2975 manuals.

3.2.2 Keys
The three types of keys used in DB2 UDB are the following:
򐂰 Unique key
򐂰 Primary key
򐂰 Foreign key

Unique key
A unique key is a column or set of columns that contain unique values. Without a
unique key, you cannot find a specific row in a table. An example of a unique key
in the TotalStorage Expert database tables would be the Serial Number,
nickname, or TCP/IP address for each ESS or ETL known to Expert.

A table does not have to have a unique key, but you will find that most tables have
at least one unique key designed into them. A table can have as many unique
keys as it has columns. Keys can be simple or compound. The simple unique key
consists of a single column, whereas compound unique keys include multiple
table columns.

54 IBM TotalStorage Expert Customized Reports


Important: There are two tables used in TotalStorage Expert, which are
frequently referenced due to the key information they contain:
򐂰 VMPDX core table
This table contains the serial number of each ESS (I_VSM_SN), a
corresponding index (I_VSM_IDX), a user-friendly nickname
(I_SHORT_NAME), and other ESS-level information. This table is used
frequently in lookups and is considered a backbone for asset and capacity
reporting.
򐂰 VPSNX
This is the index table for each ESS with performance statistics. It serves
as the backbone for performance reporting.

Figure 3-6 VMPDX core table example

The VMPDX table (Figure 3-6) shown has three unique identifiers: I_VSM_IDX
and I_VSM_SN, and I_SHORT_NAME.

Primary key
A primary key is a designation given to the unique key that best identifies the
data being stored in the table. Only one of a table’s unique keys may be defined
to DB2 UDB as the primary key. The null characteristic of all columns that make
up the primary key must be NOT NULL.

In the TotalStorage Expert example in the graphic (Figure 3-7), since I_VSM_SN
and I_SHORT_NAME represent the table's data equally well, I_VSM_IDX is
designated as the primary key, for one reason, because it is a shorter field than
the I_VSM_SN column. The I_VSM_IDX primary key for asset and capacity
related tables has a counterpart in the performance tables.

The primary key for the performance tables is I_MACH_IDX. This is the column
name for internally generated identifiers (index) for a storage server that has
performance summary data available in the database. The I_VSM_IDX column

Chapter 3. SQL overview 55


contains rows of data that are internally generated identifiers (indexes) for
storage servers that have asset and capacity data.

Figure 3-7 Primary key example

Foreign key
A foreign key is a column or set of columns that contain values from some table’s
unique key. Foreign keys are designed into tables to define relationships between
rows.

Figure 3-8 shows examples of foreign keys. In the VPSNX table, the foreign key
is I_VSM_IDX, which refers to the primary key of the VPHARCAC table
I_MACH_IDX. In the VPHCAC table, M_MACH_SN contains a subset of the
values in the VPSNX table's primary key, I_CLUSTER_NO. In the table
VPHARCAC, I_CLUSTER_NO contains a subset of values in the VPSNX table’s
unique key, I_VSM_SN.

56 IBM TotalStorage Expert Customized Reports


Figure 3-8 Foreign key example

Each key type can be defined through an SQL statement. Primary and foreign
keys may be designated in the column description area of a CREATE TABLE
statement. Unique keys may be defined through a CREATE UNIQUE INDEX
statement. Example 3-2 shows an example of a CREATE TABLE statement for
the table CNODE in TotalStorage Expert. This is the table that contains
information about nodes discovered during a node discovery task.

Example 3-2 Create table statement


CREATE TABLE CNODE (I_IP_ADDR CHAR(30) NOT NULL, \
I_NODE_NAME CHAR(224) NOT NULL, \
I_NODE_ENTITY INTEGER NOT NULL, \
PRIMARY KEY(I_IP_ADDR,I_NODE_NAME));

Chapter 3. SQL overview 57


Each node has a unique TCP/IP address and node name. This CREATE TABLE
statement tells DB2 UDB that it should not allow a row to be added to this table
unless an TCP/IP address and node name are provided. I_IP_ADDR, and
I_NODE_NAME are defined as the primary key.

For an example of relationships between TotalStorage data tables, the storage


system administrator needs to know which node names are in which node group.
The CNGRP table will provide this information. Since there is no direct keys
between CNODE and CNGRP, there are two tables that will provide this
information. Using the I_IPADDR column value in the CNODE table, the Expert
program code can query the CNGDI table for the I_NODE_GROUP value for the
respective I_IP_ADDR value and return the I_NODE_GROUP value. That data
then has a relational connection to the CNGRP table in the I_NODE_GROUP
column data (Figure 3-9).

Figure 3-9 Table relationship example

3.2.3 Connecting to a database


You need to connect to a database before you can use SQL statements to query
or manipulate it. The CONNECT statement associates a database connection
with a user name. Example 3-3 shows an example of a command that can be
entered in the DB2 Command Line Processor to connect to the SWDATA
database.

58 IBM TotalStorage Expert Customized Reports


Example 3-3 Connect command example
CONNECT TO SWDATA USER DB2ADMIN USING DB2ADMIN

Be sure to choose a user ID and password that are valid on your server system.
In this example, user ID is DB2ADMIN and password is also DB2ADMIN.
Example 3-4 shows the messages you can expect after the successful
connection has been established.

Example 3-4 Connect success message example


Database Connection Information
Database product = DB2/NT 7.2.0
SQL authorization ID = DB2ADMIN
Local database alias = SWDATA

Once you are connected, you can start extracting information or executing SQL
statements against the database. For further details on connections, refer to the
CONNECT statement in the IBM DB2 Universal Database SQL Reference
Volume 1, SC09-2974, and IBM DB2 Universal Database SQL Reference
Volume 2, SC09-2975 manuals.

3.3 Writing Structured Query Language (SQL)


The program code within TotalStorage Expert has query statements built into its
structure. The following section provides a basic insight into creating and
executing your own SQL query statements to extract data from the TotalStorage
Expert database. Our goal is to show you how to use the tools to put these query
statements together into scripts that can then be used for the basis of your report
gathering and data mining from the database.

SQL consists of the following components:


򐂰 Data manipulation language (DML)
DML comprises the SELECT, UPDATE, INSERT, and DELETE statements
򐂰 Data definition language (DDL)
DDL comprises the CREATE, ALTER, and DROP statements
򐂰 Data control language (DCL)
DCL comprises the GRANT and REVOKE statements

Many information technology products have the ability to interact with DB2 UDB,
so that the end-user need not understand the syntax of an SQL statement in
order to work with DB2 UDB. Some of these products provide an editor in which

Chapter 3. SQL overview 59


end-users can write SQL statements to INSERT, UPDATE, DELETE, and read
data. Other products provide a graphical user interface, or GUI, that permits
users to generate syntactically correct SQL statements through a guided series
of steps.

Tip: The TotalStorage product media includes the DB2 UDB 7.2 Workgroup
Edition, and it is installed by default. This includes a suite of tools available to
you for creating your own SQL query statements and saving them. This topic
is discussed in detail in a later chapter (4.3, “IBM DB2 Utilities Command
Center features” on page 83).

This section provides a foundation in ways to communicate with DB2 UDB and in
the syntax of several types of SQL statements as an end-user. Anyone issuing an
SQL statement is an end-user. For example, the system administrator
(SYSADM) and the database administrator (DBADM) are end-users while they
perform their system and database administration tasks.

At times the end-user is not the writer of the SQL statement, and may not realize
DB2 UDB is running SQL statements. End-users do not always directly use or
see SQL. However, they can run an application that requires input, such as in the
example in the graphic. They fill in the blanks and press Enter. The application
then populates the values into the SQL statements that are part of the program.

SQL statements (Figure 3-10) are similar to sentences except that they are more
compactly structured. SQL statements also contain clauses, each of which is
simply a distinct part of an SQL statement. The sequence in which the clauses
are written is the syntax, or structure, of the SQL language. Each clause begins
with a keyword. In some SQL statements, certain clauses are required while
others are optional and are used only when their services are required.

60 IBM TotalStorage Expert Customized Reports


Figure 3-10 SQL statements

Example 3-5 shows a description for a table named CMSGS, a TotalStorage


Expert table which contains log, trace, and alert messages. End-users require
such descriptions in order to understand the characteristics of the tables with
which they will be working.

Example 3-5 SQL table create statement


CREATE TABLE CMSGS (I_MSGID CHAR(9) NOT NULL, \
C_SEVERITY CHAR(1) NOT NULL, \
D_ISSUED TIMESTAMP NOT NULL, \
C_MSGTYPE CHAR(1) NOT NULL, \
I_COMPONENT CHAR(4) NOT NULL, \
I_SCHH_TASK_SEQ INTEGER, \
I_THREADID VARCHAR(128), \
X_MESSAGE VARCHAR(1024) NOT NULL, \
EVENTID CHAR(25), \
CORRELATEKEY VARCHAR(100));

Table descriptions are customarily provided by the database administrator, or the


owner of the table. In this book, an overview of the TotalStorage Expert database
tables is provided in 2.4, “TotalStorage Expert DB2 UDB tables overview” on
page 33, and full details are contained in Appendix B, “TotalStorage Expert
database table layouts” on page 241.

As with any table, each row contains entries of associated data, with the rows
identified by a unique key. In the VMPDX table shown (Figure 3-11), the
I_VSM_IDX column is the only column that will contain unique information. As

Chapter 3. SQL overview 61


such, it is a unique key, and will be the designated primary key. The table
columns are too wide for this graphic, so the lower table is a continuation of the
right side of the actual table view.

Figure 3-11 VMPDX table unique key example

As with any table, each row contains entries of associated data, with the rows
identified by a unique key. In the VMPDX table shown (Figure 3-11), the
I_VSM_IDX column is the only column that will contain unique information. As
such, it is a unique key, and will be designated as the primary key. The table
columns are too wide for this graphic, so the lower table is a continuation of the
right side of the actual table view.

Example 3-6 shows another example of a table description. This is for a table
called VCMHOSTVOL.

Example 3-6 VCMHOSTVOL table description


VCMHOSTVOL = Most recently collected data for Open System hosts/fixed block
volume connections in each storage server. Table is recreated with each
capacity collection run. [key: I_VSM_IDX,I_HOST_IDX,I_VOL_IDX]
VCMHOSTVOL.I_VSM_IDX = An internally generated identifier (index) for a storage
server. See VMPDX for storage server data associated with this index.
[INTEGER, NOT NULL]
VCMHOSTVOL.I_HOST_IDX = An internally generated identifier (index) for an Open
System host connected to one or more storage servers. See VHSTX for host data
associated with this index. [INTEGER, NOT NULL]
VCMHOSTVOL.I_VOL_IDX = An internally generated identifier (index) for a fixed
block, logical volume assigned to at least one Open System host. See VVOLX for
volume data associated with this index. [INTEGER, NOT NULL]
VCMHOSTVOL.I_VOL_SN = Serial number of the fixed block volume (LUN serial
number) [CHAR(16)]
VCMHOSTVOL.Q_VOL_SIZE = capacity of the fixed block volume, in gigabytes*100
units [INTEGER]

62 IBM TotalStorage Expert Customized Reports


VCMHOSTVOL.I_VOL_TYPE_ID = type of the fixed block volume (as defined by the
ESS Specialist). For example, open systems and AS/400 are volume types.
[CHAR(16)]
VCMHOSTVOL.I_VOL_STOR_TYPE = Value is 1 if volume resides on RAID storage;
value is 0 otherwise [SMALLINT]
VCMHOSTVOL.I_VOL_CLU_NUM = Cluster number for this fixed block volume
[SMALLINT]
VCMHOSTVOL.I_VOL_SLOT_NUM = Card number of adapter associated with this fixed
block volume [SMALLINT]
VCMHOSTVOL.I_VOL_SSALOOP_ID = SSA Loop Identifier (e.g., A or B) associated
with the disk group containing this fixed block volume [CHAR(1)]
VCMHOSTVOL.I_VOL_DISK_GROUP = Identifying number of the disk group containing
this fixed block volume [SMALLINT]
VCMHOSTVOL.I_VOL_DISK_NUM = Disk number of the disk group, if an independent
disk, 0 otherwise [SMALLINT]
VCMHOSTVOL.I_VOL_NUM = Identifying number of this fixed block volume (and
lowest level identifier of the volume) [SMALLINT]
VCMHOSTVOL.Q_VOL_TOTAL_HOSTS = Total number of SCSI-attached hosts attached to
this volume [SMALLINT]
VCMHOSTVOL.Q_VOL_DAISY_HOSTS = Total number of SCSI-attached hosts attached to
this volume on ports where other hosts are also connected to the volume.
[SMALLINT]
VCMHOSTVOL.I_VOL_DAISY_HOST = For this host/fixed block volume connection,
value is 1 if this host shares a port with another host to connect to this
volume, value is 0 otherwise [SMALLINT]
VCMHOSTVOL.Q_VOL_HOST_PORTS = For this host/fixed block volume connection, the
number of ports used by this host to connect to this volume [SMALLINT]
VCMHOSTVOL.I_HOST_NAME = The name of the host, as defined to the ESS Specialist
[CHAR(254)]
VCMHOSTVOL.I_HOST_HW_TYPE = Internally defined numeric indicator for the type
of operating system of the host [SMALLINT]
VCMHOSTVOL.I_HOST_ATTACH = Flag for a attached host connected to one or more
storage servers, 2 if FC attached, 1 if SCSI attached. [INTEGER, NOT NULL
DEFAULT 1]
VCMHOSTVOL.I_HOST_FC_WWPN = The World-Wide Port-Name for this host on the Fibre
Channel fabric. [CHAR(16), NOT NULL DEFAULT]
VCMHOSTVOL.I_HOST_FC_CAPBL = Fibre channel capability of this host system, 0 if
ReportLUNS, 1 WalkTheBus, else if not apllicable. [SMALLINT, NOT NULL DEFAULT
9]
VCMHOSTVOL.Q_VOL_SCSI_HOSTS = Number of SCSI-attached hosts connected to this
storage server [SMALLINT, NOT NULL DEFAULT]
VCMHOSTVOL.Q_VOL_FC_HOSTS = Number of FC-attached hosts connected to this
storage server [SMALLINT, NOT NULL DEFAULT]

VCMHOSTVOL table contains the most recently collected data for open system
hosts with fixed block volume connections in each storage server. This table is
recreated with each capacity collection task that is run. Notice in the descriptor
area for the table the keys of the table are also listed. At the end of each column

Chapter 3. SQL overview 63


descriptor line there is also a data type identifier and field length descriptor if
applicable. This information can be used to setup column widths in
spreadsheets, scripting, data-mining, and other report uses.

Example 3-7 shows the description for the table VMPDX.

Example 3-7 VMPDX table description


VMPDX = VMPDX contains the basic, seldom-changing attributes associated with
each storage server the ESS Expert has communicated with. One record exists
for each storage server "known" to the ESS Expert. [key: I_VSM_IDX]
VMPDX.I_VSM_IDX = An index for each unique storage server, generated when the
storage server is first discovered by StorWatch. This index is used in many
tables related to asset/capacity data. [INTEGER, NOT NULL]
VMPDX.I_VSM_SN = The serial number of the storage server. This field is filled
in when the storage server is first discovered by StorWatch. [CHAR(16), NOT
NULL]
VMPDX.I_VSM_TYPE = The higher level identifier for the storage server product,
for example 2105. This field is filled in when the storage server is first
discovered by StorWatch. [CHAR(16)]
VMPDX.I_VSM_MODEL_NO = The model number for the storage server, for example
E10. This field is filled in when the storage server is first discovered by
StorWatch. [CHAR(10)]
VMPDX.I_SHORT_NAME = An alias name provided by an authorized end user for this
storage server. This field is empty until a user provides a name through the
Web user interface. [CHAR(16)]
VMPDX.I_VSM_MANFR_DATE = The date of manufacture for this storage server. This
field is filled in when the ESS Expert first successfully collects asset and
capacity data from the storage server. [CHAR(32)]
VMPDX.I_TASK_SEQ_FIRST = A numeric identifier corresponding to the date and
time when the ESS Expert first successfully collects asset and capacity data
from the storage server. [INTEGER]
VMPDX.D_TASK_DATE_FIRST = The date when the ESS Expert first successfully
collected asset and capacity data from the storage server. [DATE]
VMPDX.T_TASK_TIME_FIRST = The time of day when the ESS Expert first
successfully collected asset and capacity data from the storage server. [TIME]
VMPDX.I_TASK_SEQ_LATEST = A numeric identifier corresponding to the date and
time when the ESS Expert most recently collected asset and capacity data from
the storage server. [INTEGER]
VMPDX.D_TASK_DATE_LATEST = The date when the ESS Expert most recently collected
asset and capacity data from the storage server. [DATE]
VMPDX.T_TASK_TIME_LATEST = The time when the ESS Expert most recently collected
asset and capacity data from the storage server. [TIME]
# 658 Changed next 2 lines (If the field is null...)
VMPDX.I_DU_THRESHOLD = The percentage (0-100) above which a disk utilization
value is reported as an exception. If this field is NULL, a default value is
used by data preparation. [SMALLINT]

64 IBM TotalStorage Expert Customized Reports


VMPDX.I_AVH_THRESHOLD = The integral value for average holding time threshold.
A holding time below this threshold is displayed as an exception. If this
field is NULL, a default value is used by data preparation. [SMALLINT]
#
VMPDX.I_VSM_FC_WWNN = The World-Wide Node-Name for this storage server, where
this storage server is attached to a Fibre Channel fabric. Otherwise this field
is blank. [CHAR(16), NOT NULL]
# @P1 add 9
VMPDX.I_FC_ACCESS_MODE = The Access mode for this storage server, 1 if
Access-any, 0 if Access-restricted, else 9 if not applicable. [SMALLINT NOT
NULL]

The following are the rules applied to the table VMPDX:


򐂰 The table contains the basic, seldom-changing attributes associated with
each storage server the TotalStorage Expert has communicated with. The
initial communication the TotalStorage Expert has made with the storage
server is when the node discovery task is run for the first time. When
additional storage servers are added to your network this task is run again,
and the table repopulated with this new information. One record exists for
each storage server “known” to the TotalStorage Expert. Every storage server
must have a unique identifier known as a storage server serial number
(I_VSM_SN).
򐂰 Every storage server may have a nickname or alias (I_SHORT_NAME) that is
defined if desired by the storage administrator in the TotalStorage Expert Web
User Interface (WUI). If defined, this will also be a unique identifier of a
particular storage server and it has a direct relationship with the I_VSM_SN
column value.
򐂰 Each storage server also has a unique manufacture date
(I_VSM_MANFR_DATE) and this data is collected upon the first asset and
capacity task run against a particular storage server. This information is then
directly related to the data for the same storage server in the
D_TASK_DATA_FIRST column value. This indicates the first time that
TotalStorage Expert successfully collected asset and capacity data from the
storage server.
򐂰 If this storage server is connected to a SAN fabric, the I_VSM_FC_WWNN
column value is populated to indicate that. This column stores a unique
World-Wide-Port-Name unique identifier for the storage server.

In this example, you can see that the storage server has several unique
identifiers. Although any of them could potentially be used as a primary key, other
considerations such as database performance and relationships to other keys
are taken into account when the database is being planned. In this example, the
primary key is the column I_VSM_IDX. This is an index number created for each
storage server and is generated when TotalStorage Expert discovers it for the

Chapter 3. SQL overview 65


first time. This index is then related to the storage server as an identifier in other
tables when subsequent SQL statements are run against the database. Multiple
tables contain this unique index key, and has a counterpart in the performance
tables in the column I_MACH_IDX. This is the index number that TotalStorage
Expert uses as an internally generated identifier for storage servers that have
performance data available for it in the database.

Although there are other keys in the tables that can be used, I_VSM_IDX and
I_MACH_IDXDEPT are the shorter, more concise fields, and are the better
choice to be the primary key for two reasons:
򐂰 There will be potentially fewer typographical errors in SQL statements
referencing data values in that column if entered manually.
򐂰 Less storage will be needed if values from the unique key are used as foreign
keys.

Figure 3-12 Foreign keys review example

66 IBM TotalStorage Expert Customized Reports


Remember that a foreign key is a column or set of columns that contain values
from a table's unique key. The unique keys in the three tables we have looked at
are I_VSM_IDX, I_MACH_IDX, M_MACH_SN, and I_CLUSTER_NO
(Figure 3-12). I_MACH_IDX in the VPHARCAC table is a foreign key containing
data from the primary key in the VPSNX table (I_VSM_IDX). The column
M_CLUSTER_N in the VPCCH table contains data from the key of the
VPHARCAC table (I_CLUSTER_NO).

The sequences of steps we have just discussed are called mental joins. Many
times, if you can write down the steps toward answers to similar queries, you will
find that those steps translate relatively easily to clauses in an SQL SELECT
statement.

SELECT statement clauses are used when building queries in SQL. Every
SELECT statement must have a SELECT clause and a FROM clause always in
this sequence, while remaining clauses are optional and mainly used to refine
and organize returned data. Example 3-8 shows an example of a complete
SELECT statement.

Example 3-8 Sample ‘select all table data’ statement


select *
-- The asterisk specifies all columns
From VPHSS
-- No Where Clause Means Return All
-- Rows

This statement is, in fact, the shortest syntactically correct SELECT statement
that can be written, and it returns all information in the VPHSS table (hourly
performance statistics for storage servers extracted from data for logical arrays,
mostly in the table VPCRK).

The asterisk in the SELECT clause indicates that all columns should be returned
from the table. Alternatively, this clause could be written SELECT VPHSS.*;
however, it would still be necessary to include VPHSS in the FROM clause. In
some query editors, you may provide comments with your SQL. The comments
are prefixed by two consecutive hyphens, and do not affect the functionality of the
statement.

In the absence of a WHERE clause, DB2 UDB will return data from every row in
the table. Since end-users rarely need all data in a given table, this statement is
not frequently used in the production environment and when specific information
is extracted for report data extractions.

Chapter 3. SQL overview 67


Tip: It is usually easier to manipulate the data with a discreet SQL statement
than to further “massage” the data later in a spreadsheet or other application.

Example 3-9 shows a query that returns two columns of data (D_PR_DATE and
I_PR_HOUR) from the VPHSS table where the set of rows whose
Q_HR_MAX_IOIN value is greater than 99999999.

Example 3-9 Discreet select statement from VPHSS


SELECT D_PR_DATE, I_PR_HOUR
FROM VPHSS
WHERE Q_HR_MAX_IOIN > 99999999

The column values for Q_HR_MAX_IOIN indicate the maximum I/O intensity in
this hour (maximum of sample interval-level PC_IOR_AVG * PC_MSR_AVG *
1000 for all logical arrays in this storage server). The column value for
PC_IOR_AVG indicates the average subsystem I/O rate for all requests issued to
a specific logical array in a particular time period (total requests/interval seconds)
and comes from the VPCRK table. The column value PC_MSR_AVG indicates
the average millisecond time to satisfy all subsystem I/O requests issued to a
particular logical array in a specific time period (total millisecond time/total
requests).

DB2 UDB first invokes the FROM clause indicating the table from which data will
be returned, checking to ensure that the user ID issuing the query has
permission to execute it against the VPHSS table. Next, the WHERE clause
identifies all rows having a value of 99999999 in the Q_HR_MAX_IOIN column,
and copies them into an intermediate table. This intermediate table is
conceptual, in that DB2 UDB may or may not physically create an intermediate
table. The end result, however, is as though DB2 UDB had, in fact, taken the step
of creating this table.

Finally, DB2 UDB applies the SELECT clause against the intermediate table,
retrieving the D_PR_DATE and I_PR_HOUR values from every row in the
intermediate table. Note that these columns are retrieved, left to right, in the
sequence in which they appear in the SELECT clause. In the example, the
Q_HR_MAX_IOIN column has been sorted in descending order for viewing
(Figure 3-13).

68 IBM TotalStorage Expert Customized Reports


Figure 3-13 VPHSS select results

You can use the following comparison operators in DB2 UDB SQL statements:
򐂰 Operators(>, <>, <, >=, <=)
򐂰 Boolean (AND, OR)
򐂰 Partial values (LIKE '_A% )
򐂰 Value in row (RAID>NONRAID)
򐂰 Calculated value (HOURS/2)
򐂰 In some environments != is accepted to mean “not equal”

Example 3-10 shows the various ways to make comparisons in SQL WHERE
clauses.

Example 3-10 Comparisons made in WHERE clauses


select * from VPHAR
Where (Q_HR_DU_NO_EXCEPTS/Q_HR_INTERVALS) > 5
And I_LOOP_ID Like 'B%'

In this example, all columns are to be retrieved from the VPHAR table. The
VPHAR table is generated from data in a TotalStorage Expert data preparation
task, and contains hourly performance statistics for logical arrays (from data for
logical arrays, mostly VPCRK). The columns will not be retrieved from every row,
but from the set of rows whose I_LOOP_ID values begin with the letter B, if and
only if the row’s Q_HR_DU_NO_EXCEPTS divided by Q_HR_INTERVALS value
exceeds 5 %. Partial string searches using the LIKE keyword can only be
performed on character string data. Q_HR_DU_NO_EXCEPT is the column to

Chapter 3. SQL overview 69


store data for maximum disk utilization values (0-100), for all sample time period
disk utilization values exceeding the threshold defined by default or by the user
(or zero, if threshold not exceeded). The column Q_HR_INTERVALS represents
the data for the number of sample time periods detected in a particular hour.

When used with the LIKE keyword, the percent sign (%) becomes a masking
character and functions like a wildcard, masking from zero to any number of
characters. One or more underscores may also be used as a masking character
in partial character string searches. Every underscore occurrence masks exactly
one character.

Tip: Use the LIKE predicate to search for strings that have certain patterns.
The pattern is specified through percentage signs and underscores:
򐂰 The underscore character _ represents any single character.
򐂰 The percent sign % represents a string of zero or more characters.
򐂰 Any other character represents itself.

SQL functions
The two types of SQL functions are column functions and scalar functions.
Column functions produce one summary row for each set of rows, whereas
scalar functions produce one value for each row within the set. The column
functions are sometimes also called summary functions, and they include:
򐂰 SUM
򐂰 AVG
򐂰 MIN
򐂰 MAX
򐂰 COUNT(*)
򐂰 COUNT(distinct column name)

The COUNT and SUM column functions are example of most commonly used
column functions. Example 3-11 shows a very simple example of the COUNT(*)
and SUM column functions.

Example 3-11 Simple COUNT and SUM function statement


Select SUM (Q_VSM_FB_RAID) as SUM_FC_RAID,
count (*) as Count
From VMCAP
Where I_VSM_IDX=4

The COUNT(*) counts rows that meet the WHERE clause conditions.
SUM(Q_VSM_FB_RAID) adds up the known values in the Q_VSM_FB_RAID
(amount of fixed-block storage that is defined as RAID storage, in gigabytes)

70 IBM TotalStorage Expert Customized Reports


column for the set of rows, which meet the WHERE clause conditions. This is
done for the storage server that has an index of 4.

DB2 UDB will execute the statement by first finding the VMCAP table and
confirming end-user authorization. Next, it will extract into the conceptual
intermediate table the rows qualified by the WHERE clause, in this case those
whose I_VSM_IDX ((Internally generated identifier (aka index) for a storage
server, also see VMPDX for storage server data associated with this index))
columns contain the value of 4. DB2 UDB then applies the select list to the
intermediate table, creating a two-column result row by adding up the non-null
Q_VSM_FB_RAID values and counting the rows. For this query, DB2 UDB
produces a one row, two-column result table (which could be then related to the
storage serial number in the VMPDX table).

A scalar function is a function that when applied to a row, returns a value. When
applied to a set of rows meeting the WHERE clause criteria, a scalar function
returns a value for each row in the set. There are more than 100 scalar functions.
Scalar functions are also applied to a set of rows, but they produce a value for
each row in the set. Example 3-12 shows the DIGITS scalar function that is being
applied to the SMALLINT column I_VSM_IDX.

Example 3-12 DIGITS scalar function


Select DIGITS(I_VSM_IDX) as Server_Index
From VMCAP

The purpose of DIGITS is to convert a numeric value into a character string


(Server_Index in this example). This is done by removing the sign of the number
and any decimal point, and converting the leading blanks to zeros.

A SMALLINT data type column supports 5 digit values, plus or minus


approximately 32,000. The leading blanks are changed to zeroes as the DIGITS
scalar function converts the numeric value to its character string representation.
Therefore, the numeric value of 10 becomes the character value of 00010.

Note that within a SELECT clause a column can be renamed using an AS


clause. We will present more information on custom column headings later.

Very often data is stored with mixed case characters either on purpose or
because of data entry errors. Within TotalStorage Expert, the data is extracted
from the storage server and attached hosts and therefore there is no injection of
erroneous data due to user data into the tables. This is possible only if the Expert
data tables are manipulated through commands that write directly to the tables.

Chapter 3. SQL overview 71


Restriction: It is strongly recommended to never edit the tables directly or
manipulate the Expert database other than reading from it. If this is done,
there is a very high potential for database corruption. Always make changes or
manipulate data that has been extracted from the database. You may also
undertake these tasks through an exported version of the database using the
TotalStorage utility called SWExport, in order to leave the production database
intact.

It is also strongly recommended to never merge databases within the


TotalStorage Expert. There is a very great risk of corrupting the databases
due to the unique, application generated index numbers which may overwrite
each other in different database instances.

For example, the UPPER scalar function allows searches that are not case
sensitive. The UPPER function converts data in the specified column to upper
case characters prior to doing the comparison to the constant. This function may
also be invoked under the name UCASE().

If there are column functions (SUM, AVG, MIN, MAX, COUNT) in a query select
list, along with columns not in a column function, the query must have a GROUP
BY clause. Example 3-13 shows the SELECT statement in its properly coded
sequence.

Example 3-13 SELECT with GROUP and ORDER BY clauses


SELECT
DB2ADMIN.VPHARCAC.Q_HR_CACHE_HIT_RR AS Q_HR_CACHE_HIT_RR,
DB2ADMIN.VPHARCAC.I_MACH_IDX AS I_MACH_IDX,
DB2ADMIN.VPHARCAC.I_DISK_NUM AS I_DISK_NUM,
DB2ADMIN.VPHARCAC.Q_HR_CACHE_HITS AS Q_HR_CACHE_HITS
FROM
DB2ADMIN.VPHARCAC
WHERE
(
( DB2ADMIN.VPHARCAC.Q_HR_CACHE_HITS <> 0 )
AND ( DB2ADMIN.VPHARCAC.Q_HR_CACHE_HIT_RR > 10 )
)
GROUP BY
DB2ADMIN.VPHARCAC.Q_HR_CACHE_HIT_RR,
DB2ADMIN.VPHARCAC.I_MACH_IDX,
DB2ADMIN.VPHARCAC.I_DISK_NUM,
DB2ADMIN.VPHARCAC.Q_HR_CACHE_HITS
HAVING
DB2ADMIN.VPHARCAC.I_MACH_IDX BETWEEN 1 AND 3
ORDER BY

72 IBM TotalStorage Expert Customized Reports


Q_HR_CACHE_HITS DESC

Every column in the select list that is not an argument of a column function must
appear in the GROUP BY clause. DB2 UDB evaluates and processes the
clauses in the following order:
1. FROM VPHARCAC
First, the FROM clause is applied and DB2 UDB locates the VPHARCAC
table and checks user authorization. VPHARCAC is the table containing
hourly performance statistics for logical arrays (based on VPCCH) and are
generated by a data preparation task in TotalStorage Expert.
2. WHERE Q_HR_CACHE_HITS <> 0
Assume that in the Q_HR_CACHE_HITS column, a value of 0 represents no
cache hits, and any non-zero number represents the total number of cache
hits occurring in this hour for this logical array (command chains that were
completed without requiring access to any DASD).
Next, the WHERE clause pulls a copy of all qualifying rows into an
intermediate table. In this case, all rows qualify except those with a zero
value. Essentially, the WHERE clause defines the set of rows that will be
processed further. Recall that this intermediate table is conceptual and
represents a complex series of steps executed by DB2 UDB.
3. GROUP BY I_MACH_IDX, I_DISK_NUM
The GROUP BY clause is next applied, sorting the intermediate table into
sets based on the I_MACH_IDX and I_DISK_NUM values. There is one group
for each unique set of values within the grouping columns.
4. HAVING Q_HR_CACHE_HIT_RR >10
DB2 UDB applies the HAVING clause. Like the WHERE clause, the HAVING
clause contains tests, conditions, or predicates. These tests are applied to
each group. In this example, the HAVING clause prompts DB2 UDB to further
process only groups that have a cache hit ratio greater than 10. The column
Q_HR_CACHE_HIT_RR indicates the Cache hit ratio * 1000 for read
requests (total read cache hits/read I/O requests * 1000).
5. SELECT Q_HR_CACHE_HIT_RR, I_MACH_IDX, I_DISK_NUM, Q_HR_CACHE_HITS
At this point, the SELECT list is applied to the qualified groups to create one
summary result row for each group, which contains the Cache Hit Ratio, the
storage server index number, the disk number of the disk group (the lowest
level identifier of a logical array), and the total number of cache hits occurring
in this hour.
6. ORDER BY Q_HR_CACHE_HITS DESC

Chapter 3. SQL overview 73


Finally, the ORDER BY clause is applied to sort the four column result rows
based on values in the ORDER BY columns. In this example, the ORDER BY
clause specifies that rows will be sorted in descending order based on the
third item in the SELECT clause, which is Q_HR_CACHE_HITS.
When it is used, ORDER BY is always the last clause in a statement, and its
function is to control the sequence of the rows in the result table.

Figure 3-14 shows the sample output from the previous query. The script was
executed using DB2 Utilities Command Center Script interactive function.

Figure 3-14 SELECT with GROUP and ORDER BY clauses output

Customizing column names


There will be occasions when it is desirable to customize names for the columns
in reports. This can be done within the SELECT list as shown in Example 3-14.

Example 3-14 Customized column name


SELECT Q_HR_CACHE_HIT_RR "Cache Hit Ratio",
Q_HR_TOT_IO_R + Q_HR_TOT_IO_W AS Activity
FROM.....

In the SELECT list, you can assign a label to a column name, expression, literal,
or function by using the AS clause followed by the label name (a character string
that follows the DB2 UDB naming convention). The AS keyword is optional. If you

74 IBM TotalStorage Expert Customized Reports


do not specify it, then the next string in the statement will be interpreted as a
label name. To avoid confusion, we recommend that you use the AS clause.

Tip: We have created a Microsoft Excel worksheet, which contains the


TotalStorage Expert table column names and their respective, more intuitive
column names. For example, Q_HR_AVG_IOIN is translated in spreadsheet
as AVG IO INTENSITY/HR. You can use a copy of this worksheet as a starting
point to customize it for your needs. This topic is discussed in detail in
Chapter 6, “Customized reports” on page 167.

Custom column names can contain non-standard characters, such as those


characters that are not A-Z, 0-9, $, @, #, _. To use non-standard characters, the
name must be enclosed in double quotes " The expression AS "multi part
name" demonstrates that capability, as the blanks between the three words multi
part name are non-standard characters. Note that the AS keyword is optional,
and that in its absence DB2 UDB will recognize the double-quoted name as one
to which AS logic must be applied.

Join predicates
Drawing data from multiple tables is a very easy procedure, and is primarily a
matter of naming the desired tables in the FROM clause. If you did no more than
that, however, DB2 UDB would take every row in the first table named and
logically connect it to each and every row of the second table named in the
FROM clause. Usually, every row in one table is not related to each and every
row in a second table.

Based on a knowledge of the VPHARCAC and VPCCH tables, it is evident that


each storage server (machine index) is assigned to one and only one storage
server.

When joining rows from one table to another, in addition to naming in the FROM
clause the tables to be joined, the end-user must tell DB2 UDB the exact way in
which our tables are related. This is done in the WHERE clause, or in a clause
called an ON clause, which is an extension to the FROM clause. This part of a
WHERE clause or an ON clause is called a join predicate, which relates the
tables by columns containing common data. A join predicate is added to these
clauses to describe how rows in one table are related to rows in the other table.

Earlier in this chapter, you learned about the steps involved in extracting
information from tables. In this example, the column Q_VSM_TOTAL_CAP
contains the total amount of capacity (counted in unformatted bytes) in a
particular storage server, in gigabytes. If you wanted to find the percentage of the

Chapter 3. SQL overview 75


total amount of storage defined (Q)VSM_RAID_GB) as RAID storage, in
gigabytes, in the storage server, you would take the following steps:
1. Find the row for the I_VSM_SN value of a particular storage server (see table
VMPDX for storage server data associated with a machine index number)
2. Read the associated I_VSM_IDX value
3. Go to the table that contains information about storage servers, VMPDX, and
find the matching value in the I_VSM_IDX column
4. Read across that row to the Q_VSM_TOTAL_CAP and the
Q_VSM_RAID_GB column
5. Divide the value in the Q_VSM_RAID_GB by the value in the
Q_VSM_TOTAL_CAP

You could easily locate a row in the VMCAP table and then its related row in the
VMPDX table. It is possible to identify the rows that are related because they
have a column that contain a common value (_I_VSM_IDX).

Writing an SQL join simply requires stating those steps as clauses in a query. In
order for DB2 UDB to recognize the relationship between the VMCAP and
VMPDX tables, however, it is necessary to incorporate join predicates into the
queries. It is very important to include the comma between the table names.
Forgetting the comma between the table names tells DB2 UDB to rename the
first table by assigning it the name of the second table. It works just like the
assigning of custom column names in a SELECT list. JOIN predicates may be
formulated using a traditional syntax or an alternate syntax. Example 3-15 shows
how a traditional JOIN statement might be written.

Example 3-15 Simple JOIN statement


SELECT
DB2ADMIN.VMPDX.I_VSM_SN AS I_VSM_SN,
DB2ADMIN.VPSNX.I_VSM_SN AS I_VSM_SN,
DB2ADMIN.VMPDX.I_SHORT_NAME AS I_SHORT_NAME
FROM
DB2ADMIN.VMPDX,
DB2ADMIN.VPSNX
WHERE
((DB2ADMIN.VPSNX.I_VSM_SN = DB2ADMIN.VMPDX.I_VSM_SN))

76 IBM TotalStorage Expert Customized Reports


Important: In this example, the join predicate in the WHERE clause prompts
DB2 UDB to only connect rows having common values between the
I_VSM_SN and I_VSM_SN columns. These two tables are the backbones of
the asset/capacity (VMPDX) and performance (VPSNX) functionality. If the
serial number (SN) values in the column names (I_VSM_IDX) in both tables
are identical, then all the associated row information will be in a relationship.
This join predicate is telling DB2 UDB to connect I_SHORT_NAME (storage
server “nickname”) rows of the VMPDX table to the row of the serial number it
belongs to in the VPSNX table. In this way, you can associate the short name
of a server with performance or asset/capacity information as long as there
are corresponding values in the I_VSM_SN column values of the VMPDX and
VPSNX tables.

Figure 3-15 shows the results table when the statement is executed from the
DB2 UDB Command Center Interactive function.

Figure 3-15 JOIN statement output example

3.4 Summary
There are many ways in which to employ the SQL when in relation to the
TotalStorage Expert database or any compatible relational database. For brevity,
this chapter does not cover a myriad of other ways to data mine, extract, and
manipulate data. For further information, refer to the IBM DB2 Universal
Database SQL Reference Volume 1, SC09-2974, and IBM DB2 Universal
Database SQL Reference Volume 2, SC09-2975 manual for each platform.

Chapter 3. SQL overview 77


78 IBM TotalStorage Expert Customized Reports
4

Chapter 4. Data extraction tools and


tips
One of the most frequently asked questions about the TotalStorage Expert is:

“How can I extract performance data from the TotalStorage Expert, so that I can
keep and use it outside of TotalStorage Expert?”

This chapter contains useful information about the different tools and methods of
extracting, manipulating, and exporting data from the TotalStorage Expert
database. We will also examine the requirements and the important safe
database practices to avoid causing unnecessary grief to yourself and your data.
The goal of this chapter is to have you prepared to start efficiently and quickly,
using your skills while getting the most out of your TotalStorage Expert storage
server and attached host data.

© Copyright IBM Corp. 2003. All rights reserved. 79


4.1 General recommendations
In this section, we have gathered a list of recommendations and practices that
should help you in managing the TotalStorage Expert database and the data:
򐂰 Backup your database regularly
This is always a safe practice and will save time if drop backs or restorations
are required for any reason. For more details regarding TotalStorage Expert
database backups, see the redbook TotalStorage Expert Hands-On Usage
Guide, SG24-6102.
򐂰 Purge your database occasionally
The frequency will depend upon your environment based on factors such as
the number of storage servers and host being monitored, the frequency with
which tasks are run, the granularity of the tasks run, and hard disk space for
storage. This process can be easily done through the TotalStorage Expert.
For more details regarding DB2 database purge tasks refer to the
TotalStorage Expert Hands-On Usage Guide, SG24-6102.
򐂰 Practice your SQL query skills
Practice SQL as much as you can, and your skill and comfort level will
increase. You will also be capable of performing more complex queries and
generate much more useful and timely reports.
򐂰 Explore other database access and reporting tools
There are many on the market and IBM has many useful data extraction,
manipulation, and reporting tools available for a wide variety of purposes.
Some of these tools are discussed later on this chapter.
򐂰 Write out and test (prototype) your SQL statements as simply as possible
This will quickly show an estimate of how much processing and DB2
resources your queries are using.
򐂰 Keep your iterative query sequences to a minimum
This will reduce the overhead for your operating system processor and speed
up the output of query results. Especially try to keep database queries to a
minimum during time periods where there is increased data traffic within your
database. This is highest during data collection, and especially during
performance data collection.
򐂰 Write out simply and exactly what you like to accomplish
Write out simply and exactly what it is you would like to accomplish with a
query in a paragraph, numbered, or tree diagram format. Try to modularize
what it is you want from different tables and rows, and how they will fit
together in a relationship. Once you have done this, you will more easily be

80 IBM TotalStorage Expert Customized Reports


able to diagram your visualization for the end result, and translate this
conceptualized report into a query statement script.
򐂰 Keep your queries as simple as possible.
Write out and test (prototype) your SQL statements as simply as possible.
This will quickly show an estimate of how much of a processor and DB2
resources your queries are using.
Build upon what works and the complexity will increase while decreasing your
potential frustration. Build your queries up from a basic report output prior to
defining more conditions, joins, grouping, and so on. This will keep the query
troubleshooting process more simple. You can use the DB2 Command Center
Interactive utility to have a more visualized conception of what you are trying
to put together. This utility will also enable you to type less and reduce syntax
errors. You can also use the utility to test, change, and save your scripts when
they are performing as desired.
򐂰 Keep a record and organizational documentation for your scripts
This will provide you an administrative record as well as a basis for building
more complex and nested query statements in the future.
򐂰 Do not exercise queries against the TotalStorage Expert database when you
are doing a data preparation task
This will cause a significantly diminished level of performance of both the
query and the data preparation completion task.
򐂰 Do not write to your production database or modify tables (columns or rows)
Only reading from your database is safe and recommended. The production
database is not a place for experimentation. Use an exported or test version
of your database if you are going to be writing to your database.
򐂰 Keep your TotalStorage Expert within the same firewall as your storage server
and monitored hosts.
For more information on this, please refer to TotalStorage Expert Hands-On
Usage Guide, SG24-6102.
򐂰 Use DB2 Connect Personal Edition on the query system (laptop, desktop)
and a portable programming language for more complex scripting and
incorporation of SQL statements
򐂰 Change the default password for the db2admin
It is a good security measure to change the default password for the
db2admin user ID as soon as possible after installation of the TotalStorage
Expert product. DB2 creates this account by default. This is a trivial password
and a serious threat vector for potential viruses and attacks. It is strongly
recommended to change this for a secure database environment. As always,

Chapter 4. Data extraction tools and tips 81


keep a record of this password and disseminate as needed for your
environment.
򐂰 Write and export your query scripts in a language and format that is
compatible with your environment
This will also increase the portability of the query scripts within your system
and allow for script sharing.

4.2 Ways to run SQL


In this section, you will learn about several applications from which Structured
Query Language (SQL) can be written and executed. This is far from an
exhaustive list of the tools and applications available for implementing SQL
queries in your environment. You can run a SQL statement using one of several
platform-specific tools for writing and executing SQL statements. The best
suggestion is to determine which is the most appropriate interface, tool, or
application for your particular needs.

For DB2 Universal Database (UDB) UNIX and Intel platforms, you can use the
Command Center or the Command Line Processor (CLP). There is a fully
compatible version loaded with the TotalStorage Expert product for your use. You
may be familiar with tools such as Query Management Facility (QMF™) for
Windows. It is a graphical user interface (GUI) that connects to any DB2 UDB.

There are numerous other tools and applications such as IBM DB2 Intelligent
Miner™, IBM Object REXX, LotusScript, which contain powerful scripting and
report formatting capabilities, and can access DB2 UDB on UNIX or Intel,
iSeries, z/OS, as well as any database manager connected to DataJoiner®.

Please refer to following Web sites for more information about these other tools:
򐂰 DB2 Intelligent Miner:
http://www.ibm.com/software/data/iminer
򐂰 Object REXX
http://www.ibm.com/software/awdtools/obj-rexx/
򐂰 LotusScript
http://www.ibm.com/software/data/db2/db2lotus/db2lscpt.htm

There are no direct solutions to print the built-in reports or save the report files
directly from TotalStorage Expert. However, you can issue standard SQL
statements to extract the data. All asset, capacity, and performance data is
available in the form of DB2 tables. DB2 UDB management tools will be useful in
utilizing your table data in the most efficient manner.

82 IBM TotalStorage Expert Customized Reports


For methods of extracting report information and graphics directly from
TotalStorage Expert, refer to 5.2, “Extracting data from built in reports for
customization” on page 117.

4.3 IBM DB2 Utilities Command Center features


Any of the query commands used in this book, in addition to your own custom
queries can be set up as scripts with the IBM DB2 Utilities Command Center
feature. This section describes some of the functionality available to you in the
Command Center and provides examples.

4.3.1 Command line processor


In current releases of DB2 UDB, Command Line Processor starts in the
interactive mode, which is indicated by a DOS-looking command prompt db2=>.
In this mode, end-users may enter one DB2 UDB command or one SQL
statement by typing it in at the prompt, and then pressing the Enter key.

Figure 4-1shows an example query in an IBM DB2 Command Line Processor


window.

Chapter 4. Data extraction tools and tips 83


Figure 4-1 DB2 UDB Command Line Processor example

In this example, a connect DB2 UDB command was executed to connect to the
database named SWDATA (TotalStorage database alias). When this command
was executed, the end-user then entered a SELECT SQL statement against the
VPCUT table in the SWDATA database. The commands are not case sensitive.
The interactive mode is exited by typing QUIT and pressing Enter.

The DB2 UDB utility center also has another CLP, which operates in a
non-interactive mode. It may be opened up from the START --> IBM DB2
pull-down menu. The SQL queries are invoked by starting each SQL statement
with the characters DB2, such as: db2 connect to database_a

4.3.2 Command Center


In this section we describe the two major ways to create and execute SQL
queries within the IBM UDB Command Center. They are the following:
򐂰 Script mode
򐂰 Interactive mode

84 IBM TotalStorage Expert Customized Reports


Script mode
DB2 UDB Command Center is a useful GUI tool that has options that should suit
your SQL query needs related to the TotalStorage Expert database. This section
describes how to navigate the menus, and provides some examples of actual
basic queries.

Use the Control Center to add systems, instances, and databases to the object
tree. If you install a new computer system or create a new instance of the
TotalStorage Expert database, and you want to use the Control Center to
perform tasks on it, you must add it to the object tree as follows:
1. Open the Command Center window (see Figure 4-2).

Figure 4-2 IBM DB2 Command Center pull down menu

2. Select the Script tab within Command Center (see Figure 4-3).

Chapter 4. Data extraction tools and tips 85


Figure 4-3 IBM DB2 Command Center Script window

3. Within the Script window, you can input your SQL commands in the upper
window, and then save them as a script with an appropriate name. Figure 4-4
shows another example of an SQL query in the script window.

86 IBM TotalStorage Expert Customized Reports


Figure 4-4 Simple select statement for performance information

4. It is easy to save your new script as a new name after you have entered at
least one line in the upper window. Before executing the lines of script, go to
the menu bar at the top of the window, select Script -> Save Script As....
(see Figure 4-5).

Chapter 4. Data extraction tools and tips 87


Figure 4-5 IBM DB2 Command Center Save Script As... pulldown menu

5. After you have selected the Save Script As... option (Figure 4-5), the Save
As window will open with the parameters you can define for your new script
name (see Figure 4-6).

88 IBM TotalStorage Expert Customized Reports


Figure 4-6 IBM DB2 Command Center Save As window

6. After clicking the OK button, the message DBA2061I appears indicating that
the script has been saved. If there were errors during the save process, you
will be provided a relevant message (Figure 4-7).

Chapter 4. Data extraction tools and tips 89


Figure 4-7 Successful saving of query script

7. You can select the Help button for additional information and select OK when
you have completed your parameter definitions (Figure 4-8).

90 IBM TotalStorage Expert Customized Reports


Figure 4-8 DB2 command center help screen example

Interactive mode
Working within the DB2 UDB Command Center, you can run SQL statements,
DB2 UDB commands, and operating system commands in an interactive mode.
Like with most DB GUI tools, you will first connect to the database that you want
to run your queries against. From there, Command Center can display a list of
tables to which you have access. Command Center can also assist in writing the
query by allowing you to pick table names, column names, filters, conditions,
predicates, and other table signifies from its windows.

You can also execute a stack of SQL statements within the Script tab portion of
the window (Figure 4-9). Multiple SQL statements can be executed as a unit of
work (UOW), which means each statement must complete successfully for the
others to complete successfully. If any statement fails, the work done by all
previously completed statements will be rolled back.

Chapter 4. Data extraction tools and tips 91


Figure 4-9 Execute commands one line at a time

If you are more comfortable with an interactive mode of building your SQL query
statements, you can select the Interactive tab from within the Command Center
at any time. For the following examples, we will be discussing how to navigate
through the Interactive options, and what is available to you in the way of tools
and options to build your query statements. There are useful help screens
available to explain content and assist you through the tasks. You can select
them by selecting the Help tab in the menu bar at the top of the window.

Next, we are introducing a new example of using the Interactive mode to create a
new SQL statement through the process of adding DB2 Universal Database
systems, instances, and databases to the object tree as follows:
1. After opening the Command Center, select the Interactive tab (Figure 4-10).

92 IBM TotalStorage Expert Customized Reports


Figure 4-10 Select Interactive script default screen

2. If the Command Center has a history of the TotalStorage Expert database


instance (Figure 4-10) you have connected to in the past, it will display this in
the command history window.
If you remove a database, or uncatalog it outside of the Control Center, and
you want to use the Control Center to perform tasks on it, you must add it to
the object tree. To add systems, instances, or databases to the object tree:
a. Open the Control Center.
b. Expand the object tree to display the folder for the type of object (system,
instance, or database) that you want to add.
c. Right-click the folder. A pop-up menu of all of the available actions for the
object opens.
d. Select the Add menu item. The Add window opens to guide you through
the process for adding the object.
e. In the Add window, you can get a list of existing remote systems,
instances, or databases by using the Refresh push button.

Chapter 4. Data extraction tools and tips 93


3. You may start the SQL Assist interactive process by selecting the SQL Assist
button on the right side of the initial Interactive frame. This will open the SQL
Assist Start page. Use the Start page to choose the type of SQL statement
that you want to create (Figure 4-11).

Figure 4-11 Start the interactive script process by choosing Select

The types of statements that you can create might be limited, depending on
the application that you were using when you started SQL Assist. The
following selections in the Start Screen are as follows:
a. Select: Creates a statement that returns rows that are based on criteria
that you specify on the SQL Assist notebook pages.
b. Insert: Adds rows, one at a time, to a table.
c. Update: Changes values in a table.
d. Delete: Removes rows from a table.

Note: Never insert, update, or delete anything within the TotalStorage


Expert production database.

You may now select the Logon tab to connect to a database once you have
selected the Select radio button on the start screen. You must be connected to a
database to use SQL Assist. If you are connected to a database when you start

94 IBM TotalStorage Expert Customized Reports


SQL Assist, you might not see the Logon page. Enter the field values
appropriately and select the Connect button (Figure 4-12).

Figure 4-12 Logon in interactive mode

a. In the Database URL field, type the connection information. For example,
you might type jdbc:db2:SWDATA, where jdbc is the connection type, db2 is
the database type, and sample is the database name (SWDATA is the
default name for TotalStorage Expert).
b. In the User ID field, type the user ID that you want to use to connect to the
database.
c. In the Password field, type the password for the user ID.
d. In the Driver identifier field, select the type of database to which you are
connecting.
e. In the Other field, type the location and name of the JDBC driver that you
want to use. This field might already contain a value, based on the
selection that you made in the Driver identifier field.
f. Connect: Connects to the server that is specified in the Database URL
field.
g. Disconnect: Disconnects from the server that is specified in the Database
URL field.
h. If you exit SQL Assist by clicking OK, the information that you enter on the
Logon page is saved and displayed the next time that you start SQL
Assist.

Chapter 4. Data extraction tools and tips 95


4. Another method of selecting a database to connect to is the Browse button on
the right hand side of the first Command Center Interactive window Database
Connection field. This will open a Select Database window and a graphical
tree diagram of your current system and database instances from which to
choose (if you have more than one) (Figure 4-13).

Figure 4-13 Select a database sample screen

5. The next step in the SQL Assist task series is specifying the tables for an SQL
statement. Use the Tables page (Figure 4-14) to specify the tables that your
SQL statement will access.
a. The table names that you select in the Tables page are displayed in the
FROM clause of the SQL statement on the Review page. The Available
tables list displays the tables that you can use in your statement. These
tables are stored in the database to which you are currently connected. By
default, the tables listed are those whose schema is the user ID specified
for the database connection. If no tables in the database have that
schema, all the tables in the database are listed.

96 IBM TotalStorage Expert Customized Reports


Figure 4-14 Add tables to script example screen

b. You can use the Filter schemas and Filter tables push buttons to limit the
number of tables that are displayed in the Available tables list
(Figure 4-15).

Chapter 4. Data extraction tools and tips 97


Figure 4-15 Filter tables window example

6. Use the Columns page to specify the columns that will be included in the
result set (Figure 4-16). The column names are displayed in the SELECT
clause of the SQL statement on the Review page. If you do not specify any
columns, all columns are selected, because the default SQL statement that is
generated is SELECT * FROM table name.

98 IBM TotalStorage Expert Customized Reports


Figure 4-16 Select columns example screen

7. Use the Join page to join tables in an SQL statement (Figure 4-17). The Join
page displays the columns of each table selected on the Tables page. To
request a join:
a. Select a column in one of the tables. The tables are displayed in the order
that they are shown in the Selected tables list on the Tables page.
b. Select a column in another table.
c. If the columns have compatible data types, a grey line is displayed,
connecting the columns, and the Join button is available.
d. If the columns do not have compatible data types, an error message is
displayed in the status area at the bottom of the window.
e. Click Join to create the join. By default, a join is assumed to be an inner
join. You can also request other types of joins by clicking Join Type. The
following types of joins are available:

Chapter 4. Data extraction tools and tips 99


i. Inner join. Joins only the rows where the values of the two columns
match.
ii. Left outer join. Joins rows where the values of the two columns match
and any additional rows in the left table (as viewed in the Join page).
iii. Right outer join. Joins rows where the values of the two columns match
and any additional rows in the right table (as viewed in the Join page).
iv. Full outer join. Joins all rows from both tables.
To request additional joins, repeat the previous steps. To remove a join:
a. Select the joined columns, or navigate to the join that you want to remove
by clicking > or <. A red line indicates an incompatible (data) join. Other
joins are indicated by blue lines.
b. Click Unjoin. The join line is removed.

Figure 4-17 Select JOIN statements example screen

100 IBM TotalStorage Expert Customized Reports


8. Specifying search conditions for rows. Use the Conditions page to exclude
duplicate rows from the result set (Figure 4-18), and to specify a search
condition that will return specific rows. You can specify multiple search
conditions on this page. You can use the controls on the Conditions page to
create conditions, or you can type conditions directly into the Conditions field.
a. To exclude duplicate rows, select the Exclude duplicate rows (SELECT
DISTINCT) check box. This action eliminates all but one of each set of
duplicate rows in the result set.

Figure 4-18 Example of column condition definition

Chapter 4. Data extraction tools and tips 101


Note: The Find button is very useful to determine what values are
available in the database. We recommend that you select the Exclude
Duplicate Rows box prior to clicking the Find button.

b. To build complex conditions, select Advanced Expression (Figure 4-19).


The Expression Builder - Conditions window is displayed. For help on
using the Expression Builder, select Building expressions from the Help
menu.
c. Use the Expression Builder to create expressions. You can type your
expression directly into the Expression field, or you can use the fields and
controls in the Expression Builder to build your expression.

Figure 4-19 Column expression builder window example

102 IBM TotalStorage Expert Customized Reports


9. Use the Groups page to specify which columns to use for grouping results.
When you group results, the data in the result set is divided into groups by the
values in the specified columns. One row of data is returned for each group.
You can group more than one column. However, the groups will not be sorted;
use the Order page to sort the result set.
10.You may sort the result set by selecting the Order tab (Figure 4-20). Use the
Order page to specify the order of rows in the result set. You specify the order
by identifying one or more columns to be used as sort columns. You can
specify multiple sort columns. To sort the result set:
a. Select one or more columns from the Available columns list. You can
expand or collapse a table to display or hide the columns that are included
in that table:
i. Because the Display output columns only radio button is selected,
the Available columns list is limited to those columns that are shown in
the Selected columns list on the Columns page. You can display all of
the columns in all the tables that are specified in the Selected tables list
on the Tables page, and any column expressions that are specified on
the Columns page, by selecting the Display all available columns
radio button.
ii. If the Exclude duplicate rows (SELECT DISTINCT) check box is
selected on the Conditions page, you cannot select the Display all
available columns radio button on the Order page. The Available
columns list is limited to those columns that are shown in the Selected
columns list on the Columns page.
b. Click > to add the columns to the Selected columns list. If you want to add
all of the columns from all of the tables in the Available columns list to the
Selected columns list, select >>.
i. To remove one or more columns from the Selected columns list, select
on the columns, then select<. To remove all of the columns from the
Selected columns list, select <<.
c. Select the order by which to sort the result set. If you select Ascending
(up arrow), the result set is ordered in ascending order by values in the
selected columns. If you select Descending (down arrow), the result set is
ordered in descending order by values in the selected columns.
The rows of the result set are ordered by the values in the sort columns. If you
specify multiple sort columns, the rows of the result set are ordered by the
values in the first sort column, then by the values in the second sort column,
and so on. To change the order of the sort columns, click on a column name,
then click Move Up or Move Down.

Chapter 4. Data extraction tools and tips 103


Figure 4-20 Column value sort example window

11.Use the Review page to display the SQL statement that was generated from
selections on the other pages (Figure 4-21). You can go to the Review page at
any time to see the current state of your SQL statement. After you display the
SQL statement, you can go to other pages in SQL Assist and change your
selections. When you are satisfied with the SQL statement, you can go to the
Review page and copy the statement to the clipboard, run it, or save it to a
file.

104 IBM TotalStorage Expert Customized Reports


Figure 4-21 Review SQL statement screen example

– Copying the SQL statement


To copy the SQL statement to the clipboard, select the portion of the SQL
statement that you want to copy, then use Ctrl+C on your keyboard to copy
the statement. You can then paste the SQL statement into other windows.
– Editing the SQL statement
You can change any part of the SQL statement by selecting the
appropriate page in SQL Assist and changing the selections on that page.

Chapter 4. Data extraction tools and tips 105


Depending on the application that you were using when you started SQL
Assist, you might also be able to edit the statement by typing directly into
the SQL statement field on the Review page.
If you manually edit the statement on the Review page, the other tabs are
not available. You must click Undo to remove the changes that were made
on the Review page and enable the tabs. When you click Undo, a
confirmation window is displayed. Click OK in the confirmation window to
remove the changes and enable the tabs. Click Cancel to keep the
changes.
– Saving the SQL statement
Click Save to save the SQL statement to a file. You cannot use SQL Assist
to retrieve the saved file.
– Testing the SQL statement
Click Run to run the SQL statement (). The SQL statement runs on the
database to which you are currently connected.
If the SQL statement contains a host variable, the Variable Values window
is displayed when you run the statement. Use this window to enter a value
for the specified host variable.
The result set is displayed in the Results window (Figure 4-22). From this
window, you can:
• Click Copy to clipboard to copy the result set to the clipboard.
• Click Save results to save the result set to a file.

106 IBM TotalStorage Expert Customized Reports


Figure 4-22 Testing the SQL statement window results example

12.To complete the SQL Assist tasks, select the Finish tab (Figure 4-23).

Figure 4-23 Finish the SQL assist tasks example window

Control Center
The DB2 UDB Utilities includes the Control Center, which provides an insight into
the database you are using. You can use the Control Center to manage systems,
DB2 Universal Database instances, DB2 Universal Database for OS/390
subsystems, databases, and database objects such as tables and views. In the
Control Center, you can display all of your systems, databases, and database
objects, and perform administration tasks on them. From the Control Center, you
can also open other centers and tools to help you optimize queries, jobs, and
scripts, perform data warehousing tasks, create stored procedures, and work
with DB2 commands. The following is a brief overview of how to discover useful
information about the TotalStorage Expert database, and how to use this as the
basis for your query statement creation.

Chapter 4. Data extraction tools and tips 107


Note: Never make any modifications to your existing TotalStorage Expert
database. If you want to learn and experiment, create a new database or
export your production database and perform operations on the exported
database only.

Once you have opened the DB2 UDB Control Center, you can drill down to you
Expert database (SWDATA in this example) by using the Explorer window on the
left hand side of the window (Figure 4-24).

Figure 4-24 Control center main window

On the right hand side of the Control Center main window, you can view the
tables of the SWDATA database (since the Tables folder is highlighted on the left
hand side). In this following graphic, we are going to explore the CNODE table
further by viewing the columns (Figure 4-25). This is done by double clicking the
particular table you want to view details on. The column attributes are listed
under the window column headers.

108 IBM TotalStorage Expert Customized Reports


Figure 4-25 Control center CNODE columns explore example

From this window, you can further explore the table by selecting the tabs on the
upper portion of the window. We will now view the Primary Key(s) window for the
CNODE table (Figure 4-26). This is very useful information when you are
creating your own query statements. It will reduce the amount of research time
spent digging through hardcopy documentation.

Figure 4-26 Control center primary key window example

Chapter 4. Data extraction tools and tips 109


Additional database information is available from within the Control Center, and
useful help is available as needed.

4.4 IBM DB2 DataJoiner


DB2 DataJoiner enables you to view all your data such as IBM, multi-vendor,
relational, non-relational, local, remote, and geographic as if it were local data.
These are the highlights of this product:
򐂰 With a single SQL statement, you can access and join tables located across
multiple data sources without needing to know the source location.
򐂰 Native support for popular relational data sources: DB2 Family, Informix,
Microsoft SQL Server, Oracle, Sybase SQL Server, Teradata, and others.
򐂰 Client access (using DB2 clients) from a multitude of platforms, including
Java™ (using JDBC).
򐂰 Integrated replication administration
򐂰 DDL statements to easily create, drop, and alter data source mappings,
users, data types and functions (user-defined and built-in).
򐂰 Excellent performance and intelligent use of pushdown and remote query
caching.

Please refer to the following Web site for more information about IBM DataJoiner:
http://www.ibm.com/software/data/datajoiner/

4.5 QMF for Windows


QMF for Windows provides a Windows or Java interface to build queries or
execute predefined queries with easy-to-use, point-and-click, drag-and-drop form
creation for fast aggregation, grouping, or formatting performed directly in the
query results. It provides easy manipulation and integration with important
commercial or custom Windows applications such as spreadsheets, desktop
databases, and executive information systems.

DB2 QMF Version 8.1 transforms business data into a visual information platform
for the entire enterprise with visual data on-demand. Highlights of this release
include:
򐂰 Support for DB2 Universal Database Version 8 functionality including IBM
DB2 Cube Views, long names, unicode, and enhancements to SQL.
򐂰 The ability to easily build OLAP analytics, SQL queries, pivot tables, and other
business analysis and reports with simple drag-and-drop actions.

110 IBM TotalStorage Expert Customized Reports


򐂰 Visual information appliances such as executive dashboards that offer rich
interactive functionality specific to virtually any information need.
򐂰 A database explorer for easily browsing, identifying, and referencing database
assets.
򐂰 DB2 QMF for WebSphere, a tool that lets any Web browser become a
zero-maintenance thin client for visual on-demand access to enterprise DB2
business data.
򐂰 Simplified packaging for easier ordering

For more information about QMF for Windows, refer to the following Web sites:
http://www.ibm.com/software/data/qmf/
http://www.rocketsoftware.com/qmf/

You can download the free QMF for Windows Try and Buy version from the
following Web site:
http://www-3.ibm.com/software/data/qmf/reporter/june98/downloads.html

4.6 Requirements for reports


In this section we have outlined some of the requirements for getting the most out
of the TotalStorage Expert database. This is not an exhaustive list, but these are
things to keep in mind when you are trying to make acquisition and expenditure
decisions with respect to exporting data, creating, and disseminating custom
reports:
򐂰 DB2 Connect Personal Edition is required on the query system (laptop,
desktop)
򐂰 Portable programming language and other tools for data extraction and
parsing:
– REXX
– C & C++ (can be compiled and disseminated in AIX environment)
– ESSCLI (asset and capacity data only)
– CLI
– Python
– QMF
򐂰 Platform specific:
– AIX
– WIN2K Server
򐂰 Quick print-to-screen reports
򐂰 Parsed and formatted SQL query output

Chapter 4. Data extraction tools and tips 111


– Data output types:
• Data to files (compressed and uncompressed)
• Binary, ASCII, etc.
– DELimited (ASCII)
– WKS (worksheet)

112 IBM TotalStorage Expert Customized Reports


5

Chapter 5. TotalStorage Expert


management built-in reports
In this chapter, we describe how the TotalStorage Expert creates the ESS reports
you need.

After the nodes have been discovered, data collection tasks been defined and
scheduled, and data collected successfully from the ESSs, you can view, copy
and insert the data into your preferred spreadsheet package.

The TotalStorage Expert V2.1 provides the following ESS Performance Report
modifications:
򐂰 Upgraded performance reports
The ESS performance reports show a sequential I/Os percentage column
within the disk utilization reports, and six additional columns are added into
cache reports.
򐂰 New ranked performance reports
The ranked performance reports provide the data in the reports in descending
order for disk utilization, number of I/O requests, total cache hits, and NVS
cache full situations.

© Copyright IBM Corp. 2003. All rights reserved. 113


5.1 Tree structure of TotalStorage built-in reports
The TotalStorage Expert management report types are the following:
򐂰 Asset
򐂰 Capacity
򐂰 Volume
򐂰 Performance

The following lists show the tree structure of these reports by storage type (ESS
versus ETL).

5.1.1 TotalStorage Expert Built-in reports for ESS by type


Asset statistics:
򐂰 View recent data
– Summary by storage server
– Summary of licensed internal code levels

Capacity statistics:
򐂰 View recent data
– Summary all storage servers
• Logical view
• Physical view
– Summary all SCSI hosts
– Summary all FC hosts
򐂰 View historical data
– Capacity growth report
• Growth by storage server
• Growth by open system attached host
• Specify start date
• Specify end date
• Period Interval (month, quarter, every 6 months, year, week)

Volume statistics:
򐂰 View Volumes by Single ESS volume by Logical Unit Number (LUN)
򐂰 View Volumes by Group of volumes on a specific ESS

Performance statistics:
򐂰 Storage Server with Available Performance Data

114 IBM TotalStorage Expert Customized Reports


– Server ID/date range
򐂰 Start date
򐂰 Report navigation:
– View performance reports by summary: hierarchical
– View performance reports ranked by:
• Disk group: disk utilization
• Logical volume: IO requests
• Logical volume: total cache hits
• Logical Volume: NVS cache full

5.1.2 TotalStorage Expert built-in reports for ETL (VTS) by type


Assets summary:
򐂰 Server
򐂰 Reporting period
򐂰 System name/ID
򐂰 Type:
– VTS
– Library
– Composite
򐂰 VTS model number
򐂰 Physical drives installed
򐂰 Physical drives available

Capacity summary:
򐂰 Server
򐂰 Reporting period
򐂰 System name/ID
򐂰 Type:
– VTS
– Library
– Composite
򐂰 Library
򐂰 Name of composite
򐂰 Active data
– Logical volumes

Chapter 5. TotalStorage Expert management built-in reports 115


– Average size (MB)
– Total size (GB)
– Maximum (GB)
򐂰 Free storage:
– Total (GB)
– Alarm level (throttling value)
򐂰 Stacked volumes managed by VTS:
– Scratch
– Private
– Total
– <25% active data
• Number
• % of private
򐂰 Reclaim threshold (%)
򐂰 Backstore compression
򐂰 Ratio

Performance summary:
򐂰 Server
򐂰 Reporting period
򐂰 System name/ID
򐂰 Type:
– VTS
– Library
– Composite
򐂰 Library
򐂰 Name of composite
򐂰 Virtual mount time (sec)
– Overall:
• Maximum
• Average
– Cache-miss:
• Maximum
• Average
– Fast-ready:
• Maximum

116 IBM TotalStorage Expert Customized Reports


• Average
򐂰 Cache-misses (%)
򐂰 Least average age in cache (hours)
򐂰 Throttle value:
– Overall
– Recall
– Write overrun
򐂰 Data transferred:
– Written (MB)
– Read (MB)
– Throughput (MB/sec.)
– % of Blocks < 4 KB in size

5.2 Extracting data from built in reports for


customization
The TotalStorage Expert does not lend itself to easily providing tabular data for
post processing by either spreadsheet applications or programs. Data must be
either extracted by using copy and paste or through the scripting mechanisms
described in Chapter 6, “Customized reports” on page 167, and Appendix A,
“Data extraction scripts” on page 197. Such scripts should format the data either
into Comma Separated Variable (CSV) or Worksheet format (WKS). We assume
that the user has sufficient skills in their chosen platform to be able to copy data
into the spreadsheet.

Certain Excel (.XLS) workbooks are provided on the FTP site to cater for some of
the data extracted from the standard built in reports and can be customized to
provide data views not provided for by the standard reports. This data can
subsequently be easily linked into office reports for either formal presentations,
or as part of regular management reporting.

5.2.1 Performance report example


Figure 5-1 shows an example of a set of performance report graphs. The
following section describes the methodology used to create these graphs.

Chapter 5. TotalStorage Expert management built-in reports 117


Figure 5-1 Built-in report graph

We start with displaying the detailed performance built-in report for a Disk Cache
report at the device adapter level, where we selected the data for the device
adapter 4 for both loops.

The following steps describe the location of the report. We are selecting the data
from how to drill down to the particular reports:
1. Select View Reports.

118 IBM TotalStorage Expert Customized Reports


Figure 5-2 Built-in reports: Select View Reports

2. Select Show Reports.

Figure 5-3 Built-in reports: Select Show Reports

Chapter 5. TotalStorage Expert management built-in reports 119


3. Select the date to be extracted.

Figure 5-4 Built-in reports: select the date to extract

4. Select the report type.

Figure 5-5 Built-in reports: select the report type

5. Highlight the header row and right-click and select Copy to copy the
highlighted data to the clipboard.

Figure 5-6 Highlighted built-in report copy

6. Switch across to Microsoft Excel and open a new workbook. In all our
examples we have used Microsoft Excel 2002.

120 IBM TotalStorage Expert Customized Reports


7. Select cell A1 and paste the copied data into the spreadsheet.

Figure 5-7 Built-in report heading paste

8. Next delete the column heading and column for Graph Device Adapter by
highlighting the column, and selecting the Delete function from the Edit menu.

Figure 5-8 Built-in report heading adjustment

9. Next go to the Expert display tables and extract the data required for the
graph.

Chapter 5. TotalStorage Expert management built-in reports 121


Figure 5-9 Built-in reports: select the data to extract - loop A

Figure 5-10 Built-in reports: select the data to extract - loop B

10.This data are then copied and pasted into the spreadsheet worksheets in the
Built-in Example.xls workbook found in the following FTP site under the folder
Spreadsheet Examples:
ftp://www.redbooks.ibm.com/redbooks/SG247016
A graph is automatically created from the specific cell references. It is vital
that the sets of data match as the columns for the graphs are intermingled.

122 IBM TotalStorage Expert Customized Reports


The best way to follow these instructions is to actually have the Excel
workbook open at the same time as the Expert data is being copied.

Figure 5-11 Built-in reports: the data pasted into Excel

Once you become familiar with the Excel workbook, you can expand the scope of
your reports; these instructions are not intended to be comprehensive enough to
cover all the options you may wish to explore.

5.2.2 Performance report example #2


The entire tables from the Expert can be cut and paste to Excel in its entirety if
you want just to reproduce the standard available graphs in Excel for custom
printing. An example of this presented here. Copy the entire table beginning at
the header, progressing through to the last data item including the 23rd hour of
data.

Chapter 5. TotalStorage Expert management built-in reports 123


Figure 5-12 Example of copy entire table

Paste this copied data into a new workbook in Excel.

124 IBM TotalStorage Expert Customized Reports


Figure 5-13 Built in report copied directly to Excel

The data from this or any other ESS Expert report can be copied in the same
manner and then manipulated and graphed with Microsoft Excel to produce
graphs and reports. Simply find a spare set of cells in the same worksheet, and
reference the data that you want to see in your report.

Chapter 5. TotalStorage Expert management built-in reports 125


Figure 5-14 Built-in data referenced in Excel

The data can then be graphed using the Microsoft Graphing button to create
your own representation of the ESS Expert data. Figure 5-15 is an example of a
crude graph created without further customization within the Excel graphing tool,
obviously with greater exposure to the tool, you will be able to enhance the
presentation of this data.

126 IBM TotalStorage Expert Customized Reports


Figure 5-15 Built-in data customized in Excel

5.3 Viewing hardware asset management reports


To create an ESS asset related report with the TotalStorage Expert click:
Manage ESS -> Manage Assets -> View Recent Data

5.3.1 Viewing an ESS hardware asset summary report


The TotalStorage Expert will provide you a report summarized by the ESS (see
Figure 5-16).

Chapter 5. TotalStorage Expert management built-in reports 127


Figure 5-16 Asset report summarized by the ESS

This report displays a summary of your storage server hardware assets. It allows
you to view information on all the ESSs discovered at your installation. For
example, you can receive the ESS serial numbers and the fibre connectivity
mode of your installation. If you would like to know the meaning of each field, you
can check it by using the online help.

Date and time in reports is based on the TotalStorage Expert server


Please note that all the date and time information appearing in the TotalStorage
Expert reports is based on the machine where the TotalStorage Expert runs. As
for our report examples in this book, the TotalStorage Expert shows the date and
time in Pacific Standard Time (PST), as the TotalStorage Expert server is located
in San Jose, California, USA.

128 IBM TotalStorage Expert Customized Reports


5.3.2 Viewing a detail report for an ESS
When you click the Nickname/Serial Number field, the TotalStorage Expert
shows you the detailed report about the ESS you selected (see Figure 5-17).

Figure 5-17 Hardware profile of ESS cluster 1

This panel displays a summary of your storage server assets. This report shows
information like IP addresses assigned to the ESS and LIC level information. If
you need further information about the ESS, you can launch the ESS Specialist
for this ESS by using the Launch ESS Specialist hotlink beside the nickname
and serial number.

5.3.3 Viewing an LIC summary report


If you click the underscored text Summary of License Internal Code level (see
Figure 5-17) appearing at the top of the figure, the TotalStorage Expert shows
you the LIC level summary report panel (see Figure 5-18).

Chapter 5. TotalStorage Expert management built-in reports 129


Figure 5-18 LIC level summary report

This report tells you the current LIC level on all ESSs at your installation. Certain
functions of the ESS, such as Copy Services, require a specific level of LIC. Even
if you do not use those advanced functions, IBM may provide you a LIC upgrade.
This report helps you to identify if you need to install a new LIC.

5.4 Viewing the ESS capacity management reports


In order to have the TotalStorage Expert create reports regarding the capacity of
your ESSs, click Manage ESS -> Manage Capacity -> View Recent Data. Or,
click Manage ESS -> Manage Capacity -> View Historical Data. For the option
View Recent Data reports, you will see the following three summary boxes below
the message area (see Figure 5-19).

Figure 5-19 Select a type of summary report

130 IBM TotalStorage Expert Customized Reports


By clicking one of these three boxes, you can select a certain type of summary
report. These boxes appear on every screen panel under View Recent Data. This
allows you to see any summary report at the same time you are viewing the
Recent Data capacity management report.

5.4.1 Viewing an ESS summary report


The following report we describe is the All ESS summary report. You can also
see this report without clicking the box as we described above, as this is the first
report that the TotalStorage Expert shows you after selecting View Recent Data.
The report consists of two tables. One shows a logical view and the other one
shows a physical view.

Viewing a Logical View report


The following is an example of a Logical View report (see Figure 5-20).

Figure 5-20 Capacity Logical View summary

As you can see, Logical View gives you the overview of capacity distribution and
host connectivity.

Note that the Total Raw Capacity column includes both parity (if you configure
the RAID-5 portion) and emulation overhead (for logical volumes). The Fixed
Block column and the S390 (CKD) column does not. More precisely, capacity per
DDM times the number of DDMs loaded on your ESS (except spare DDMs) is
equal to the number appearing in Total Raw Capacity column.

Viewing a S/390 capacity report


The numbers in the Logical Control Units column shows how many logical
control units can be accessed through S/390 hosts. For example, see the first
row in Figure 5-20. You can see that the ESS called COTTLE_ROAD has four logical

Chapter 5. TotalStorage Expert management built-in reports 131


control units defined. When you click the number 4, you will see a detail report as
shown in Figure 5-21.

Figure 5-21 Capacity report by Logical Control Unit

Numbers appearing in the Logical Control Unit column show the logical
address of each emulated storage control. This is also known as a CUADD
parameter in the CNTLUNIT macro on an IOCP, or the equivalent definition in
HCD.

Figure 5-22 shows the report, that you get, when you click on the underscored
text Volume Summary by Logical Control Unit.

132 IBM TotalStorage Expert Customized Reports


Figure 5-22 Volume Summary by Logical Control Unit

When you click a number appearing in the Total S/390 Volumes columns (see
Figure 5-21), or a number appearing in Total Volumes (see Figure 5-22) in the
field, you will see a report like presented in Figure 5-23.

Chapter 5. TotalStorage Expert management built-in reports 133


Figure 5-23 S390/CKD volume details

As you can see, this report shows you detailed information about logical
volumes, such as device addresses (or unit addresses) assigned to these logical
volumes, and the number of alias addresses each volume has. Refer to
Figure 5-42 on page 153 for a diagram that will help you interpret the location
information appearing in this report.

Viewing an open capacity report


Refer back to Figure 5-20 on page 131 and you can see the Attached Host
column. Under this column you can see the number of hosts that are attached
through SCSI connections or fibre connections. Note that numbers appearing
here do not indicate the actual number of hosts attached to an ESS. This
depends on how open host systems are defined through a corresponding ESS
Specialist. Therefore, the number you see here may be larger than the actual
number of hosts that have live connections.

Just like an S/390 report, you can click a number appearing in either the SCSI
Hosts or FC Hosts column to see the capacity report for the respective
attachment type. Figure 5-24 shows an example of a SCSI hosts capacity report.

134 IBM TotalStorage Expert Customized Reports


Figure 5-24 Capacity report by SCSI attached hosts

This report shows you how many logical volumes each SCSI host owns. If these
volumes are shared with another host system, it also gives you a breakdown of
how many volumes are shared across multiple hosts attached through either
SCSI or fibre connections.

Viewing a Physical View report


The Physical View is beneath the Logical View on the same page. Figure 5-25
shows an example of a Physical View report.

Chapter 5. TotalStorage Expert management built-in reports 135


Figure 5-25 Physical View report

This report gives you information on the ESSs from a hardware viewpoint, such
as fibre connection mode, number of host adapters and their types, and so on.
Two additional reports are available from this report. The one contains Disk Drive
Module (DDM) information, and the other one contains cluster information.

DDM information
When you click a number that appears in the Total DDMs column, the
TotalStorage Expert shows information on DDMs, which are loaded in the
corresponding ESS (see Figure 5-26). Note that the Quantity column of DDMs
does not include the number of spare DDMs on your ESS.

136 IBM TotalStorage Expert Customized Reports


Figure 5-26 DDM report

Cluster information
When you click the text VIEW, which appears in the Cluster Info column of the
Physical View report (refer back to Figure 5-25), you see a cluster information
report like presented in Figure 5-27. You can see the amount of cache and NVS
installed on the ESS you selected.

Figure 5-27 Cluster information report

Chapter 5. TotalStorage Expert management built-in reports 137


5.4.2 Viewing a SCSI/FC host summary report
When you click Summary All SCSI Hosts (see Figure 5-27) the TotalStorage
Expert shows you all host systems, which have access to your ESSs through the
SCSI connections (see Figure 5-28).

Figure 5-28 SCSI host summary report

And when you click Summary All FC Hosts, the TotalStorage Expert shows you
all host systems, which have access to your ESSs through fibre connections (see
Figure 5-29).

138 IBM TotalStorage Expert Customized Reports


Figure 5-29 FC hosts summary report

On either report, you can click a number that appears in the Number of Storage
Servers column to have the TotalStorage Expert show you how much capacity is
assigned for the corresponding host (see Figure 5-30).

Figure 5-30 Host centric capacity report

Chapter 5. TotalStorage Expert management built-in reports 139


Attention: Use a unique host name. This host information is based on the
definitions you created through the ESS Specialist. Therefore, if you do not
define them correctly, the TotalStorage Expert cannot produce a valid report.

How is the number of shared volumes calculated?


The SCSI and FC columns under Subset by host attachment (as shown in figure
Figure 5-28) give you an overview of how many volumes are shared across host
systems. Here are the meanings of these fields:
򐂰 SCSI: If a logical volume belongs to two or more hosts through a SCSI
connection, the volume will be accumulated into the SCSI column.
򐂰 FC: If a logical volume belongs to two or more hosts through a fibre
connection, the volume will be accumulated into the FC column.

Figure 5-31 shows an example of these calculations.

V O L1
S C S I= 1
FC=1

HOST1
To ta l = 2 V O L2
S C S I= 1 F C = 2 A n y T y p e = 2

S C S I= 0
FC=1
HOST2
To ta l = 2
S C S I= 1 F C = 2 A n y T y p e = 2

V O L3
HOST3 S C S I= 1
To ta l = 2
S C S I= 2 F C = 1 A n y T y p e = 2 FC=0

HOST4
To ta l = 3 V O L4
S C S I= 2 F C = 1 A n y T y p e = 2

S C S I= 0
S C S I p a th (s )
FC=0
F ib r e C h a n n e l p a t h ( s )

Figure 5-31 How to count shared volumes

The ESS has two Fibre Channel access modes:


򐂰 Access-Any mode
Access-Any mode allows all Fibre Channel attached host systems that do not
have an access profile to access all non-AS/400 open systems logical
volumes you have defined on the ESS.

140 IBM TotalStorage Expert Customized Reports


򐂰 Access-Restricted mode
Access-Restricted mode specifies that all Fibre Channel attached host
systems that do not have an access profile can access none of the logical
volumes that you have defined on the ESS. This is the default mode.

The TotalStorage Expert cannot take account of hosts which have access to the
ESS through Fibre Channel and do not have access profiles, since it does not
have a way to know whether your ESS is run under Access-Any mode.

5.4.3 Viewing a historical capacity report


In order to see a historical capacity report, click Manage Capacity -> View
Historical Data, and the TotalStorage Expert prompts for your input on how you
want to create a report (see Figure 5-32).

Figure 5-32 View Historical Data report

The TotalStorage Expert shows you the earliest date available to create a report.

The possible reporting period depends on the following:


򐂰 How you schedule Data Collection tasks
򐂰 How you schedule the Purge Database task

This report can cover a time period of up to 3 years.

Chapter 5. TotalStorage Expert management built-in reports 141


Viewing a capacity growth report by the ESS
When you select Capacity Growth Report Type as Growth by Storage Server
and click Show Report, you can see a report like Figure 5-33. To select and view
the report Growth by Open System Attached Host, the action is similar.

Figure 5-33 Capacity Growth report by Storage Sever

As you can see on this figure, this report shows you the historical capacity report
by the ESS, along with the Graph column. If you see a date cell in your report with
an asterisk *, the data will be the projected value. The TotalStorage Expert will
project values if at least three historical dates are available.

In our example, we have the TotalStorage Expert create a weekly capacity


growth report. The actual period for which the TotalStorage Expert had collected
data was between August 02 and August 22, 2002. Therefore, more than three
historical dates are available. But, if we had the TotalStorage Expert create a
monthly report, the TotalStorage Expert would not show projected values, as only
one historical date is available.

142 IBM TotalStorage Expert Customized Reports


When you click the bar graph icon, the TotalStorage Expert creates a graphical
report, by taking the X axis as the time period you specified, and the Y axis as
capacity (see Figure 5-34). You can optionally choose another type of chart, such
as a line chart, by clicking the fourth icon from the left.

Figure 5-34 Graphical report by the ESS

5.4.4 Capacity management report considerations


In this section, we describe how to manage your ESS storage capacity in
conjunction with the ESS capacity reports, and we discuss considerations on
using the capacity management reports.

Using a capacity report for open host systems


In general, it is not a good idea to assign all available storage to all of the host
systems, unless it is definitely required.

The TotalStorage Expert gives you a report on how much capacity is assigned to
a certain host, so when you have the following administration policy, capacity
reports will help you plan additional storage.

Chapter 5. TotalStorage Expert management built-in reports 143


Assign a minimal amount at first, then assign on demand
You may keep the number of volumes to be assigned as small as possible at the
first usage. If you can keep an entire rank (or disk group) as spare space; you do
not have to configure or format it, as the TotalStorage Expert accumulates
formatted space as fixed block capacity. And when users need additional space,
you may assign a logical volume to the host.

When you use this method, the TotalStorage Expert’s capacity growth report
would come close to the logical space utilization report. Thus, you can use the
historical report to analyze or project demand on capacity, and it will help you
plan to install additional capacity.

Considerations on capacity management reports


One of the most important things you have to know about capacity management
reports is that the TotalStorage Expert does not show you who consumes the
space in logical volumes. Only the software, such as the operating system or
database management system, which manages the usage of logical volumes,
can know how their assigned space is occupied.

When you have defined all available space to logical volumes, and you have
assigned all fixed block storage to your open systems through the ESS
Specialist, the TotalStorage Expert shows you the same information, and the
historical report plot is flat, unless you have additional capacity features.

5.5 Viewing performance management reports


The information in performance reports can help you make informed decisions
about volume placement, capacity, and isolate I/O constraints. In order to view
performance management reports, you have to make sure that data preparation
tasks have been run (as explained in TotalStorage Expert Hands-On Usage
Guide, SG24-6102). Otherwise, the TotalStorage Expert cannot produce any
performance reports.

After you have scheduled data collection and data preparation, you can view
detailed information about disk utilization and Disk <>Cache transfer rates. When
you would like to see performance management reports, click Manage ESS ->
Manage Performance -> View Reports and the TotalStorage Expert prompts
you to input how you want to create reports (see Figure 5-35).

144 IBM TotalStorage Expert Customized Reports


Figure 5-35 Specify an ESS and a period to view Summary Hierarchical or Ranked
reports

After you have selected an ESS and reporting period, and either the Summary or
the Ranked report option, click the Show Reports button.

5.5.1 Viewing ranked performance reports


The Ranked Disk Group Utilization report shows in descending order the top ten
ranked hourly disk utilization values for each hour of the report date (see
Figure 5-36).

Chapter 5. TotalStorage Expert management built-in reports 145


Figure 5-36 Ranked Disk Utilization report

5.5.2 Viewing performance and threshold summary reports


The Storage Server Performance Statistics and Thresholds Summary report
(see Figure 5-37) summarizes the performance statistics settings, and also
reports on the most recent threshold exceptions per ESS within 7 days. You can
adjust the date range for the 7 days to the required time frame. If you have any
threshold exceptions, it will color code the cell and provide the link to the relevant
performance report.

146 IBM TotalStorage Expert Customized Reports


Figure 5-37 Storage Server Performance and Threshold Summary report

5.5.3 Viewing Logical Volume reports


The Logical Volume Level report (see Figure 5-38) is based on the raw
performance data samples for the specified hour. This report shows, for example,
the rate of system activity in input or output operation initiations per second.
Comparing I/O rates at the device adapter, disk group, and logical volume levels
is helpful to identify where the greatest demand is occurring for storage system
resources.

Chapter 5. TotalStorage Expert management built-in reports 147


There is a cross link between the Logical Volume Level report and the Capacity
Logical Volume Detail report, and also the reverse link back. To get the crosslink
to the Capacity Logical Volume Detail report, you have to click the appropriate
Volume Serial number, for example SSID:2203.

Figure 5-38 Cache Report Logical Volume Level

5.5.4 Viewing Disk Utilization Summary report


The first report within the Summary-hierarchical reports is the Disk Utilization
Summary report (Figure 5-39).

148 IBM TotalStorage Expert Customized Reports


Figure 5-39 Disk Utilization Summary report

The Disk Utilization Summary report shows how busy the DDMs on an ESS were
during the reporting period. As you can see, dates appearing in the left-most
column indicate that a browser drill down hyperlink is available. If you would like
to see a detailed report for a specific day, click the date you want to see.

5.5.5 Viewing disk information and Cache Summary report


When you click the text Disk < > Cache summary, which appears in the middle
box at the top of Figure 5-39, the TotalStorage Expert shows you a report as in
Figure 5-40.

Chapter 5. TotalStorage Expert management built-in reports 149


Figure 5-40 Disk to/from Cache transfer summary report

The Disk <> Cache report shows you how many I/O operations occurred
between DDMs and the Cluster cache, known as staging and destaging. Like the
Disk Utilization Summary report, if you would like to see a detailed report for a
specific day, click the date you want to see.

5.5.6 Viewing Cache Summary report


When you click the text Cache Report Summary, which appears in the
right-most box at the top of Figure 5-39 or Figure 5-40, the TotalStorage Expert
shows you a report as in Figure 5-41.

150 IBM TotalStorage Expert Customized Reports


Figure 5-41 Cache Summary report

The Cache Summary report shows you how well the cluster cache works for your
application. Like the other two summary reports, if you would like to see a
detailed report for a specific day, click the date you want to see.

5.5.7 Considerations on performance summary reports


In this section we describe some considerations on these summary reports.

Summary reports show daily averages


All average numbers appearing in these summary reports are daily averaged
values, so we recommend that you drill down to detail reports, even though the
summary reports appear to be adequate. For example, let us say you take
performance sample data every 5 minutes and monitor for 24 hours (therefore,
taking 288 samples a day), and 12 contiguous samples show the disk utilization
as 90 percent for an hour, while the rest show zero (0%). In this case, the Disk
Utilization report shows a 3.75% daily average with 90% as an hourly maximum.
So, we recommend checking both of these values.

Chapter 5. TotalStorage Expert management built-in reports 151


Be careful when a configuration change has occurred
Either the Disk Utilization Summary report or Cache Summary reports show you
whether a configuration change on the ESS has occurred during the monitor
interval. If this happens, you need to reschedule Data Collection tasks. For
example, if you have added a logical volume and begun using it while a Data
Collection task is running, performance sample data from the task will not contain
any data regarding the volume. As a nature of the ESS architecture, access to
the volume also affects the ESS resources, such as DDMs and cluster cache.
Therefore, performance sample data for the new logical volume should be taken
into account to see how your ESS works accurately.

5.5.8 Viewing performance detail reports


As you go through these performance summary reports, when you click a date
column, the TotalStorage Expert gives you the respective detailed reports for that
day. For example, if you click a date field on the Cache summary report, you will
see the Cache detail report. Therefore, we have three types of detail reports:
Disk Utilization, Disk-Cache, and Cache Detail.

Four levels of detail reports per type


The TotalStorage Expert provides four levels of reports under each type. The
levels are Cluster, Device Adapter, Disk Group, and Logical Volume. Figure 5-42
shows the relationship between these levels and ESS components, as well as its
location information appearing in the TotalStorage Expert reports.

152 IBM TotalStorage Expert Customized Reports


Cluster Cluster SSA loop ID: A
Device Adaptor Device Adaptor
S
Disk Group 2 Disk Group 1
S
S

SSA loop ID: B


DA1 DA1
S

S S
S S

S
Disk Group
DA2 DA2
S

Cluster 1

Cluster 2
Cache

Cache
S

S
S
DA3 DA3
S

DA4
S
DA4 ...
S

S Logical Volumes

Figure 5-42 Scope of each level of report, and ESS component location information

Cluster reports show entire subsystem performance


An ESS has two clusters, and each cluster independently provides major
functions for the disk subsystem. Some examples include directing host adapters
for data transferring to and from host processors, managing cache resources,
and directing lower device interfaces for data transferring to and from physical
disks. Thus, this level of report gives you a performance overview from the
viewpoint of a subsystem.

Note that Disk Utilization reports do not have cluster level reports, as Disk
Utilization reports deal with physical device performance.

Device Adapter reports show I/O distribution across clusters


Each cluster on an ESS has four device adapters. As you can see in Figure 5-42,
a device adapter in a cluster is paired with the other cluster’s device adapter, and
each device adapter pair has up to two SSA disk loops. Though they make a pair,
they usually work independently, and each manages separate groups of DDMs
under normal operation. Device adapter level reports help you understand the
I/O workload distribution among device adapters and loops on either cluster on
an ESS.

Chapter 5. TotalStorage Expert management built-in reports 153


Disk group reports show I/O distribution in a device adapter
A disk group is a collection of seven or eight DDMs, which are behind the same
SSA loop. It is also a unit of logical disk emulation control, also known as a rank.
A rank can be either RAID-5 format, or non-RAID, which is referred to as Just a
Bunch Of Disks (JBODs). The rank belongs to a device adapter, and the device
adapter controls it under normal operation. So, this level of reports helps you
understand I/O workload distribution among disk groups in a loop in a certain
device adapter.

Note: The ESS reports show a Disk Group and a Disk Number. If a rank is
used as JBODs, the TotalStorage Expert will show a Disk Number for each
disk. If a rank is in RAID-5, the TotalStorage Expert will show the Disk Number
as “N/A”.

Logical volume reports show I/O distribution in a disk group


A logical volume belongs to a disk group. Host systems consider a logical volume
as if it were a physical hard disk unit. A disk group has multiple logical volumes,
depending on your definition. So, this level of report helps you understand I/O
workload distribution among logical volumes in a disk group.

Note that disk utilization reports do not have this level of report, as disk utilization
reports deal with physical device performance.

Understanding navigation among performance detail reports


The following is an example of detail reports, which will be displayed if you click a
date field in the Cache Report (see Figure 5-43).

154 IBM TotalStorage Expert Customized Reports


Figure 5-43 Cache Report Cluster Level

There is a collection of small boxes at the top right corner of the report, which we
refer to as the Performance Navigator Matrix. The following is an expanded
image of the Performance Navigator Matrix (see Figure 5-44).

Chapter 5. TotalStorage Expert management built-in reports 155


Figure 5-44 Performance Navigator Matrix

Every performance detail report has a Performance Navigator Matrix at the top
right corner of the report, and you can simply click whichever one of the boxes
you would like to see.

The columns DU, DC, and CR stand for Disk Utilization, Disk to/from Cache, and
Cache Report respectively. So, these refer to the type of report. The rows C, DA,
DG, and LV stand for Cluster, Device Adapter, Disk Group, and Logical Volume
respectively.

The box in a light gray color indicates the report that you are currently looking at.
For example, in Figure 5-43 and Figure 5-45, it shows the cluster level of the
Cache Detail report. You can click the other boxes in a dark gray color to see the
other detail reports.

Creating a graph from a detail report


Every performance detail report shows hourly average statistics and creates
graphical reports for you. In order to view graphical reports, just click the graph
icon appearing in the detail report of your choice.

Figure 5-45 shows an example of graphical reports. We created this graph by


clicking the graph icon that appears in Figure 5-43.

156 IBM TotalStorage Expert Customized Reports


Figure 5-45 An example of a performance graph chart

Viewing a granular report


The TotalStorage Expert has the new capability to create more granular
performance reports. For example, if you collect performance data every 15
minutes, you can view performance reports showing 15 minute intervals. These
reports are created directly from performance sample data.

When you click the Hour of Day column on a detail report, you can see the exact
performance sample data taken for the respective hour. Figure 5-46 is an
example of the granular report.

Chapter 5. TotalStorage Expert management built-in reports 157


Figure 5-46 An example of granular report

When you click the graph icon, the TotalStorage Expert shows you graph charts
from the report. Figure 5-47 shows an example of a graph chart showing the
number of I/O request distributions.

158 IBM TotalStorage Expert Customized Reports


Figure 5-47 An example of graph chart from a granular report

Considerations on performance detail reports


In this section we describe some considerations that you should aware of when
viewing performance detail reports.

Go up to the cluster level, then drill down to other cluster reports


Device Adapter or lower level reports have an affinity with either Cluster 1 or
Cluster 2. Therefore, you cannot drill down to see the device adapter, disk group,
or logical volume report for Cluster 2 while you are looking at one of these level
reports for Cluster 1. If you would like to view the other side of a cluster’s data,
you have to refer back to the cluster level of reports, then drill down.

Note that the TotalStorage Expert will not break this affinity even if performance
data is captured after failover. For example, if Cluster 1 fails and failover has
completed, Cluster 2 will control all of the disk groups (ranks). However, views
from the TotalStorage Expert will not be changed.

Number of samples may vary


Assume you have scheduled a data collection task, which asks the ESS
Specialist to collect performance sample data every 5 minutes. Some detail
reports show you the actual number of samples the TotalStorage Expert has

Chapter 5. TotalStorage Expert management built-in reports 159


received, and you might expect that the TotalStorage Expert will show that it
received exactly 12 samples per hour. But the actual number varies for the
following reasons:
򐂰 The ESS Specialist sends performance data on a “best effort” basis.
The ESS Specialist runs under the ESS, so it cannot sacrifice its functions as
an I/O subsystem. If the ESS has higher priority tasks than sending
performance data to the TotalStorage Expert, it cannot send the data.
򐂰 Network traffic problems may impact the sending of data.
If very heavy network traffic or some network problem prevents a set of
performance data from reaching the TotalStorage Expert in the correct order,
the TotalStorage Expert will discard data which is out of sequence. For
example, if the TotalStorage Expert gets data for 11:05, 11:15, and 11:10 in
this order, the ESS will ignore the data for 11:10. However, notice that the
ESS keeps updating performance statistics. Therefore, the activity between
11:05 to 11:10 will be accumulated into the data for 11:15. This means only a
level of granularity will be lost.

Daily reports show you an hourly average


Regardless of the number of performance data samples available per hour, the
TotalStorage Expert shows you average data on an hourly basis. We recommend
that you collect as much performance sample data as possible, and view detail
reports along with granular reports, so that you can get a more accurate
measurement of the performance of your ESS.

5.6 Viewing host volume and mapping reports


TotalStorage Expert V2R1 provides the ability to view individual volumes or
groups of volumes on selected ESSs. You can select volumes from the following
categories:
򐂰 Single ESS volume by logical unit serial number
򐂰 Single ESS volume by logical device name on a specific host
򐂰 Group of volumes on a specific ESS

5.6.1 Interface for viewing host volume data: Host data collected
From the Expert navigation tree, select Manage ESS->Manage Volume
Data->View Recent Data to bring up this panel (see Figure 5-48).

160 IBM TotalStorage Expert Customized Reports


Figure 5-48 View host data: Data collected

5.6.2 Interface for viewing host volume data: No host data collected
If no host data has been collected and only asset and capacity collection has
been completed, the View Recent Data panel has only the contents in
Figure 5-49.

Figure 5-49 View host data when data not collected

5.6.3 View data for a single volume by the LUN serial number
One way to view the report for a single volume, is to enter a valid LUN serial
number (9 characters in length), as it is known by a storage server, and click OK
(see Figure 5-50).

Figure 5-50 View Data for a Single Volume (by specifying the LUN serial number)

Chapter 5. TotalStorage Expert management built-in reports 161


If a valid serial number is entered, the Storage Server Capacity-Logical Volume
Details report for this volume can be viewed. If an invalid serial number is
entered, a message as in Figure 5-51, to the right of the megaphone, is
displayed.

Figure 5-51 View Data for a Single Volume (by specifying an invalid LUN serial number)

5.6.4 View data for a single volume by the device name on a host
If you choose to enter the Host Address first, select radio button for Single ESS
volume by logical device name on a specific host, on the main View Recent
Data panel (this will automatically select the Host Address radio button), pick a
host address from the drop down and click OK (See Figure 5-52).

Figure 5-52 View Data for a Single Volume (by specifying device name on a host)

On the dialog that pops up (see Figure 5-53), select the logical device name to
which the volume maps and click OK to view the Storage Server Capacity -
Logical Volume Details report.

162 IBM TotalStorage Expert Customized Reports


Figure 5-53 Viewing a specific logical device (Selecting a host address first)

If you choose to enter the Logical Device Name first, select the Logical Device
Name option (see Figure 5-53), and enter the logical device name to which the
volume maps on the host, and click OK.

In the panel in Figure 5-54 select the host and click OK to view the Storage
Server Capacity - Logical Volume Details report for the volume identified by the
host and the logical device name.

Figure 5-54 Viewing hosts

If, on the main View Recent Data panel you enter an invalid logical device name
(either misstype it, or if there are no hosts that have this logical device name
defined) and click OK, a popup message appears indicating that there is no data
in the TotalStorage Expert database for this device (see Figure 5-55).

Chapter 5. TotalStorage Expert management built-in reports 163


Figure 5-55 Error message - the logical device name is invalid

To view data for a group of open system volumes within an ESS (see
Figure 5-56), select the option for Group of volumes on a specific ESS on the
main View Recent Data panel, choose an ESS and click OK.

Figure 5-56 Viewing a group of volumes on a specific ESS

Subsequently, you will see a panel (Figure 5-57) containing disk group
information for the selected ESS. You can click the hyperlink for the Disk Group
of interest to view data for the volumes.

Figure 5-57 Disk group selection panel

164 IBM TotalStorage Expert Customized Reports


5.6.5 Neither asset/capacity or host data collected
From the Expert navigation bar, if you select Manage ESS-> Manage Volume
Data-> View Recent Data, the following panel (Figure 5-58) comes up if host
data collection has not been completed.

Figure 5-58 No asset or capacity data has been collected

Chapter 5. TotalStorage Expert management built-in reports 165


166 IBM TotalStorage Expert Customized Reports
6

Chapter 6. Customized reports


For your normal reporting, the TotalStorage Expert provides built-in reports,
which should satisfy your general requirements. This chapter provides
information for those who have a need to export ESS Expert DB2 table
information for other reporting purposes. If you are comfortable with DB2 SQL
queries, scripting, and spreadsheet manipulation, you will be able to create
custom reports, which address your specific needs. Since the custom reporting
activities for each customer can vary greatly, we are presenting only a few
general examples of custom reports in this section.

Important: We recommend that you are conservative with your manual


manipulation of the DB2 data and subsequent reports until you are
comfortable with the ESS Expert DB2 table structures and information it
contains. If you are unfamiliar with the DB2 SQL command language (SQL)
and spreadsheet management, we strongly recommended that you obtain
education on these topics prior to experimenting with manual or scripted data
extraction and reporting.

Starting off with simple statements and reports and then increasing the
complexity will aid in the report creation and in troubleshooting syntax and
calculations.

© Copyright IBM Corp. 2003. All rights reserved. 167


6.1 Data exporting methods for TotalStorage Expert
In this section, we discuss the ways of extracting information from the
TotalStorage Expert database tables using SQL query statements.

Important: We recommend that you back up your database prior to doing any
manipulation of it. We also strongly recommend that you refrain from editing
your original database tables. You should edit only copies of the database to
avoid severe corruption of the existing original database.

6.1.1 Basic TotalStorage table extractions to a file


It is very important to exercise caution when editing the DB2 tables and creating
or dropping indices. You run the risk of losing the information within the tables
and completely corrupting the DB2 database on the host machine by these
activities. The TotalStorage Expert database release 2.1.x has already been
optimized through indexing. There is no need for you to perform any further
indexing on the database. Over-indexing can cause as many, or more, problems
for your database performance as not having enough indexing.

SQL commands to extract data to a file


You will want to extract specific DB2 table information for use in another
applications, or to export it to another DB2 database. Using SQL commands, you
need to redirect DB2 select statement output to a file in a Windows or AIX
environment.

Solution: Using SQL commands


The following is a comparison of using the two different methods to extract the
same information depending on your requirements. The explanation of the
command is given in the first example (A) and the corresponding commands are
given without explanation in the second example (B). These commands may be
executed from a command prompt or from the DB2 Command Window (db2
needs to prefix every line of the command) or Command line processor (see
4.3.1, “Command line processor” on page 83 for more information). We use the
Command line processor for the examples below.

A) Export data to file format DEL (delimited), WorkSheet Format (WSF), Comma
Separated Variables (CSV), or Integrated Exchange Format (IXF). The
commands provided below use SQL. The examples provided are on a Microsoft
Windows platform. The only difference is the path syntax that makes them
compatible on an AIX platform.

168 IBM TotalStorage Expert Customized Reports


Note: The Integrated Exchange Format (IXF) data interchange architecture
is a host file format designed to enable exchange of relational database
structure and data. The personal computer version of the IXF format
(PC/IXF) is a database manager adaptation of the host IXF format. A
PC/IXF file contains a structured description of a database table or view.
Data that was exported in PC/IXF format can be imported or loaded into
another DB2 database.

Create a folder to for the output files of the data extract. For example:
c:\ibmout
1. Start-> Programs-> IBM DB2-> click Command Line Processor (CLP).
2. Connect to the DB2 using the following command in the CLP window:
connect to swdata user db2admin using db2admin
The response should be a few lines, which says that you are connected and
the level of DB2 is 7.2. If you should replace the word db2admin (following
using) with the actual password you are using for your database instance.
3. Issue the following command to extract the data from the VPVPD table
substituting the folder and replacing the mmdd with the date of the extract (The
VPVPD table contains cluster-level and storage server-level configuration
data generated at the start of Performance Data Collection):
export to c:\ibmout\vpvpdmmdd.txt of del select * from vpvpd
4. Issue the following command to extract a specific day’s worth of data from the
VPCRK table, substituting the date to be extracted and the same substitution
as in #3 for the filename (VPCRK table contains logical array-level
performance data):
export to c:\ibmout\vpcrkmmdd.txt of del select * from vpcrk where
pc_date_b = 'mm/dd/yyyy'
Please be patient while this process takes place. The prompt will return when
the process is complete.

B) Redirect output to a file (instead of to your screen).


1. Start the DB2 Command Line Processor. (The backslash \ character is used
to continue a statement onto another line.)
2. Enter the following commands and press the Enter key at the end of each
command line entry:
connect to swdata user db2admin using db2admin
quit
db2 (select * from vpvpd) > c:\ibmout\vpvpdmmdd.txt

Chapter 6. Customized reports 169


db2 (select * from vpcrk where pc_date_b = 'mm/dd/yyyy') > \
c:\ibmout\vpcrkmmdd.txt

The following can also be performed through the DB2 Utilities Command Line
Interface or Command Center. The commands are not case sensitive, and are
presented below and include the following explanations:
1. First, we connected to the database with the following command, where
swdata is the TotalStorage Expert DB2 database, user db2admin, using the
password of db2admin:
connect to swdata user db2admin using db2admin
2. Select all (column) information from table CNODE, all rows are implied by the
asterisk * :
select * from cnode
3. The result is stored as a table with columns (field names) and rows (field
values). The sample output is as shown in Example 6-1.

Example 6-1 Select * from CNODE output example

I_IP_ADDR I_NODE_NAME I_NODE_ENTITY


--------- ----------- -------------
8.111.99.333 micah.mytown.ibm.com 2
8.111.77.173 micah.mytown.ibm.com 1
2 record(s) selected.

Select all (column) information from table CNODE and return the (column/field)
for I_NODE_ENTITY information matches the row value of 2. Example 6-2 shows
the sample statement and output for this.

Example 6-2 Sample SQL query condition on I_NODE_ENTRY column


select * from cnode where (I_NODE_ENTITY=2)

I_IP_ADDR I_NODE_NAME I_NODE_ENTITY


--------- ----------- -------------
8.111.99.333 micah.mytown.ibm.com 2
1 record(s) selected.

The following will give you the IP addresses and ESS serial numbers of each
cluster in your environment:
SELECT * FROM VCLUA

170 IBM TotalStorage Expert Customized Reports


Tip: You can use the FETCH clause in your SQL statement when testing your
queries and scripts. This will limit your large script output to how many rows
you have defined in the FETCH clause. Remember to remove the FETCH
clause when your testing is completed to eliminate the erroneous output from
your scripts.

6.2 Global table extractions to worksheet files


For this redbook, there are platform specific script files, which extract
TotalStorage Expert tables in their entirety and compress (zip) them into a file.
These individual table files are in WSF format and can be imported into
spreadsheets such as Lotus 123, Microsoft Excel. Please refer to Appendix A.,
“Data extraction scripts” on page 197 for the script file contents and instructions
for use. These script files can also be used as the basis for customized table data
gathering, and SQL statements for your reporting needs.

6.3 Samples of customized reports


In this section we provide a brief overview of a customer report example, and the
relevant tables and columns that contain the required data. The data can be
extracted using DB2 scripts or CLI commands. For more information regarding
the ESS Expert DB2 tables, see Appendix B, “TotalStorage Expert database
table layouts” on page 241.

Important: The following scripts were used in the DB2 UDB Utilities
Command Center Interactive mode with SQL assist (unless noted otherwise).
If you save these scripts, or copy them to the script tool within the DB2 utilities,
you will need to use a semi-colon ; at the end of every SQL statement. For
example, you would place a semi-colon at the end of the connect statement in
the DB2 Utilities script tool, Command Line Processor, or Command Window.
You will need to connect to the database prior to issuing query statements
against it, or set up a script to do this.

6.3.1 Sample ESS hourly cache transfer report by nickname


The following example describes some of the main steps in creating an SQL
query and example graphics. The DB2 UDB Utilities Command Center
Interactive SQL Assist tool was used in the creation of this script.

Chapter 6. Customized reports 171


For an overview of how to navigate the Command Center in Interactive Mode,
refer to “Interactive mode” on page 91.

After the Command Center is started, select the Interactive tab and then the SQL
Assist button on the right hand side of the window. Sign into the database and
select the tables and columns for your report. The tables VMPDX (asset/capacity
root table, VPSNX (performance root table), and VPHSS (hourly performance
statistics for storage servers) were selected to allow linking of the serial number
and ESS nickname to the cache transfer information.

Once the columns are selected, you can proceed to set up the JOIN clause of
your query. Figure 6-1 shows an example of the join defined for this example
query statement. You can select from any two or more tables to define your JOIN
clause.

Right-click on the first column ID you want to join and then on the second. When
you click on the second (or subsequent) column IDs, a line will be displayed to
indicate a join is selected. If a join has incompatible values between the column
IDs, the lines will appear in red. If the join is compatible, the link line will appear
as blue.

When you are satisfied with a JOIN linkage, click the JOIN button on the right
hand side of the window and the linkage line will appear in green designating the
most recent linkage selected and joined. You can define a special JOIN type
(outer, inner, and so on) by selecting the Join Type button on the right hand side
of the window, and selecting the appropriate radio button in the secondary
window that displays.

At any time, you can unjoin linkages one step at a time by clicking the Unjoin
button on the right hand side of the JOIN window. For further details and
examples, refer to the application help screens by selecting the Help button on
the Command Center menu bar.

172 IBM TotalStorage Expert Customized Reports


Figure 6-1 Command Center JOIN clause window example

Example 6-3 shows a query script that will extract data for a report, which selects
two weeks worth of data from the VPHVOL table. This discreetly selected (not all
rows of VPHSS table) data is grouped by cluster, adapter card, arrays, by all
hours of each day performance data is collected.

The date range (11/01/2002...11/14/2002) and ESS nickname


(I_SHORT_NAME)(rpk%) are hard coded in this example. The column values
that appear in the resulting report have had custom names defined as an
example. These sample column titles follow the AS condition in the query
statement and must be contained within double quotes (“ ”).

This sample script can be found in this redbook’s FTP site in the folder Scripts
with the file name hour_perf_by_ess.txt.

Chapter 6. Customized reports 173


Example 6-3 ESS array level cache report example
SELECT
DB2ADMIN.VMPDX.I_SHORT_NAME AS "Nickname",
DB2ADMIN.VMPDX.I_VSM_MODEL_NO AS "Model#",
DB2ADMIN.VMPDX.I_VSM_SN AS "Serial #",
DB2ADMIN.VPHSS.D_PR_DATE AS "Date",
DB2ADMIN.VPHSS.I_PR_HOUR AS "Hour",
DB2ADMIN.VPHSS.Q_HR_ADAPTERS AS "#Adapters/Loops",
DB2ADMIN.VPHSS.Q_HR_ARRAYS AS "#Arrays",
DB2ADMIN.VPHSS.Q_HR_TOT_SECS AS "#Seconds",
DB2ADMIN.VPHSS.Q_HR_TOT_IOS AS "TOT IOs",
DB2ADMIN.VPHSS.Q_HR_TOT_RESP_TIME AS "Resp Time",
DB2ADMIN.VPHSS.Q_HR_MAX_IOR AS "MAX IO",
DB2ADMIN.VPHSS.Q_HR_MAX_MSR AS "MAX IO Req",
DB2ADMIN.VPHSS.Q_HR_MAX_IOIN AS "MAX IO Intensity",
DB2ADMIN.VPHSS.Q_HR_AVG_IOR AS "AVG IO",
DB2ADMIN.VPHSS.Q_HR_AVG_MSR AS "AVG IO Req",
DB2ADMIN.VPHSS.Q_HR_AVG_IOIN AS "AVG IO Intensity",
DB2ADMIN.VPHSS.C_PR_CONFIG_CHG AS "Array Exist?"
FROM
DB2ADMIN.VMPDX,
DB2ADMIN.VPSNX,
DB2ADMIN.VPHSS
WHERE
(
(
DB2ADMIN.VPSNX.I_VSM_SN = DB2ADMIN.VMPDX.I_VSM_SN AND
DB2ADMIN.VPHSS.I_VSM_PERF_IDX = DB2ADMIN.VPSNX.I_VSM_IDX
)
AND
(( DB2ADMIN.VMPDX.I_SHORT_NAME like 'rpk%' )
AND ( DB2ADMIN.VPHSS.D_PR_DATE between '11/01/2002' and '11/14/2002' ))
)

In the Command Center Condition window, the condition BETWEEN was used to
specify what date range to search and extract data from the VPHSS table.

Figure 6-2 represents the sample output from the previous query. The number of
rows have been truncated for this graphic example.

174 IBM TotalStorage Expert Customized Reports


Figure 6-2 Example of ESS hourly performance cache transfer report

6.3.2 Simple script output to a file or screen


The following is an example of executing an SQL script at the Command Line
Processor. Notice that the connect statement and end-of-statement delimiter
semicolon ; are in the correct locations. This section uses the script created
(Example 6-3) in the previous section as the basis for the following example
script.

Chapter 6. Customized reports 175


Note: The script was created in the DB2 Utilities Command Center with SQL
Assist (see 6.3.1, “Sample ESS hourly cache transfer report by nickname” on
page 171). The script was then saved to the hard drive with a .scr extension so
that the DB2 commands would recognize it as a script. The Windows 2000
operating system will recognize this script (.scr) as a screen saver. The script
file can be edited with NotePad or WordPad, or any ASCII text editor. The file
can also be saved and executed as a .bat (batch) file, or as a Korn shell script
in AIX using the syntax conventions of the global table extraction scripts in
Appendix , “Windows 2000 platform” on page 198, and Appendix , “AIX
platform” on page 212.

1. Open the Command Line Processor by selecting Start --> Run --> Open: and
then type in db2cmd and click OK (Figure 6-3). You can also go to the DB2
UDB Utilities in Programs and then select Command Line Processor.

Figure 6-3 Open db2cmd window

2. Change the directory to where you have the script file(s) stored. In this
example we are using the C:\TEMP\ directory. They may be stored anywhere
you prefer.
3. Type the command db2 -tf scriptname.xxx to output the results in an
unformatted fashion to your screen. This is only useful for small script outputs.
For larger output, redirect the script output to a text file. In this case, type the
following command (see also Figure 6-4):
db2 -tf scriptname.xxx > c:\TEMP\scriptname_output.xxx
where scriptname is the name of the script xxx is the extension you prefer. A
plain text file output is useful. You can also export the data in DEL, CSV, or
WKS format for exporting the data for further manipulation.

176 IBM TotalStorage Expert Customized Reports


Figure 6-4 Sqlscript Command Line Processor execution example

The script executed in this example is provided here (Example 6-4). On this
redbook’s FTP site, this script can be found as a file sqlscript.scr in the folder
Scripts.

Example 6-4 Example of sqlscript.txt


connect to swdata user db2admin using db2admin;
SELECT
DB2ADMIN.VMPDX.I_SHORT_NAME AS "Nickname",
DB2ADMIN.VMPDX.I_VSM_MODEL_NO AS "Model#",
DB2ADMIN.VMPDX.I_VSM_SN AS "Serial #",
DB2ADMIN.VPHSS.D_PR_DATE AS "Date",
DB2ADMIN.VPHSS.I_PR_HOUR AS "Hour",
DB2ADMIN.VPHSS.Q_HR_ADAPTERS AS "#Adapters/Loops",
DB2ADMIN.VPHSS.Q_HR_ARRAYS AS "#Arrays",
DB2ADMIN.VPHSS.Q_HR_TOT_SECS AS "#Seconds",
DB2ADMIN.VPHSS.Q_HR_TOT_IOS AS "TOT IOs",
DB2ADMIN.VPHSS.Q_HR_TOT_RESP_TIME AS "Resp Time",
DB2ADMIN.VPHSS.Q_HR_MAX_IOR AS Q_HR_MAX_IOR,
DB2ADMIN.VPHSS.Q_HR_MAX_MSR AS Q_HR_MAX_MSR,
DB2ADMIN.VPHSS.Q_HR_MAX_IOIN AS Q_HR_MAX_IOIN,

Chapter 6. Customized reports 177


DB2ADMIN.VPHSS.Q_HR_AVG_IOR AS Q_HR_AVG_IOR,
DB2ADMIN.VPHSS.Q_HR_AVG_MSR AS Q_HR_AVG_MSR,
DB2ADMIN.VPHSS.Q_HR_AVG_IOIN AS Q_HR_AVG_IOIN,
DB2ADMIN.VPHSS.C_PR_CONFIG_CHG AS C_PR_CONFIG_CHG
FROM
DB2ADMIN.VPHAD,
DB2ADMIN.VPSNX,
DB2ADMIN.VMPDX,
DB2ADMIN.VPHSS
WHERE
(
(
DB2ADMIN.VPSNX.I_VSM_IDX = DB2ADMIN.VPHAD.I_VSM_PERF_IDX AND
DB2ADMIN.VMPDX.I_VSM_SN = DB2ADMIN.VPSNX.I_VSM_SN
)
AND
(( DB2ADMIN.VPHAD.I_VSM_PERF_IDX = 2 )
AND ( DB2ADMIN.VPHSS.D_PR_DATE >= '2002-11-01' )
AND ( DB2ADMIN.VPHSS.D_PR_DATE <= '2002-11-14' ))
)fetch first 10 rows only;

Note the final line contains fetch first 10 rows only; as this will only extract
the first 10 rows the script finds, and returns that in the report (Figure 6-5). If you
use this technique for limiting your test script output, remember to remove the
FETCH clause prior to using it in your production environment.

Figure 6-5 Sqlscript output report example

6.3.3 Sample ESS disk level performance report


You have a need to view and report on disk level performance within your ESSs.
For example, your Data Warehouse personnel have mentioned that over the last
few days it was taking three times longer than previously to load their databases.
Because of this, they request performance reports from the ESSs. In order to get

178 IBM TotalStorage Expert Customized Reports


this information, you need to know which disks are involved, and then drill down
to the disk level. This can be done within ESS Expert, but only on a daily basis.

If you want to know the performance of a database on a weekly level or monthly


level, you must drill down for each day separately and compare the information
which can be quite time consuming. If this information was in a spreadsheet, you
could process the data to provide an historical view of the performance at the
granularity you require.

It is possible to create a daily, weekly, and monthly view option similar to what
ESS Expert provides at higher levels within the ESSs. Here is how you currently
drill down to the disk level currently for a given database within ESS Expert:
1. Select a Storage Server, for example, Silvertip1.
2. Select the Start Date - 10/01/2002.
3. Select the End Date - 12/31/2002
4. Select Adapter: 4, Loop: B.
5. Select Group: 2, Number: N/A.
6. Then select the upper right matrix box buttons LV-DC.
7. Select Disk Group Disk Number 2: N/A.
8. Then select Show Report.

This is where the Disk <> Cache Transfer Report at the Volume Level is
displayed. You then select the lower right box of the Level Report matrix (LV-CR)
and you can view the Cache Report at the Logical Volume Level. This data is
only displayed for the selected day. You want to get this data presented over
different periods of time like a week, a month, or six months.

The initial challenge for you is to gather data over a period of time to establish a
baseline performance level. After this is established, you are in a better position
to determine if you are experiencing a performance bottleneck for a given
incident, an application load, or some other root cause.

Currently, you have no baseline levels to compare the daily numbers to. It will be
very time consuming to collect this data (for example, the past month) for every
ESS or host disk or disk group you need to analyze. This would require a
significant amount of data extraction and massaging, which you rarely have the
time to devote to this task.

Through the ESS, it appears that the volume ID (nnn-ESS serial number) is a
common name through which the you can discuss issues with your open
systems administrative personnel about specific performance aspects of physical
components of storage. You are planning on using these names (volume IDs) to
identify which disks make up the databases you need to monitor and provide
information about.

Chapter 6. Customized reports 179


The starting point for this exercise is the following:
򐂰 You can use the volume ID name as a selection within the TotalStorage
Expert report features for discrete comparisons.
򐂰 The report needs to provide you the capability to select the volume name and
then select over which period of time (day, week, month, year) data should be
presented.

We provide a sample script for this purpose in Appendix , “Sample script for
extracting volume level performance data” on page 204.

In the example script, we use the cache report information from table VPHVOL.
In this script, we only select one ESS Serial Number for two weeks worth of data,
you can also select for multiple ESSs or search by ESS nickname and multiple
dates if the script is modified. You could also filter for particular hours of the day
and then view trends through time.

Table 6-1 lists the tables and related columns, which can also be used to extract
the information you may want to use for an historical Volume ID-Host report.
There are more tables and column information you may want to use, depending
on your particular requirements.

Table 6-1 Example report table and column information


Table name Table description Columns related to example report

VHLPATH Results of Collection I_HOST_CONN_IP


from Hosts, vpath and The user-specified DNS network name or IP address of
hard disk data for ESS the host
volumes (volume serial I_VOL_SN
Serial number of the fixed block volume (LUN serial
number)
number)
I_PATH_ID
A numeric value associated with this path on the host to
the ESS volume.
I_PATH_ADP_NAME
The name of the adapter within the host server to which
the path is attached.
I_PATH_DSK_NAME
The name of the ESS volume as known to SDD. This is
the logical device to which this path is bound.
D_TASK_DATE
The date when the most recent successful data
collection occurred for this volume on this host.
T_TASK_TIME
The time when the most recent successful data
collection occurred for this volume on this host.

180 IBM TotalStorage Expert Customized Reports


Table name Table description Columns related to example report

VCMHOSTVOL Most recent open I_VOL_SN


system host-volume Serial number of the fixed block volume (LUN serial
relationships, using number)
global indices for open Q_VOL_SIZE
Capacity of the fixed block volume, in gigabytes*100
system hosts (capacity
units
data)
I_VOL_NUM
Identifying number of this fixed block volume (and
lowest level
Q_VOL_TOTAL_HOSTS
Total number of SCSI-attached hosts attached to this
volume
I_HOST_NAME
The name of the host, as defined to the ESS Specialist
I_HOST_ATTACH
Flag for a attached host connected to one or more
storage servers, 2 if FC attached, 1 if SCSI attached.
Q_VOL_SCSI_HOSTS
Number of SCSI-attached hosts connected to this
storage server
Q_VOL_FC_HOSTS
Number of FC-attached hosts connected to this storage
server

VPCCH Performance Sample M_MACH_SN


interval data (volume Serial number of the storage server
level statistics) M_CLUSTER_N
Cluster number for this logical volume
M_VOL_NUM
Identifying number of this logical volume (and lowest
level identifier of the logical volume)
PC_DATE_B
Date this sample time period began (i.e., performance
counters were collected)
PC_DATE_E
Date this sample time period ended (i.e., performance
counters were collected
again)
Note: For further column performance related
information, refer to the table definition (cache hits, I/O
read/write requests, disk to cache transfers, cache to
disk transfers, and other data)

Chapter 6. Customized reports 181


Table name Table description Columns related to example report

VPHVOL Performance Hourly Data I_CLUSTER_NO


(volume level statistics) Cluster number for this logical volume
Note: This information I_CARD_NO
would be useful for a more Card number of adapter associated with this logical
granular level of analysis volume
of the volume I_DISK_GRP_NO
performance. Identifying number of the disk group containing this
logical volume
I_DISK_NUM
Disk number of the disk group, if an independent disk, 0
otherwise
I_VOL_NUM
Identifying number of this logical volume within the disk
group (and lowest level identifier of the logical volume)
I_VOL_ADDR
LUN serial number if the logical volume is an open
systems volume,
SSID + Base device address if an S/390 volume
D_PR_DATE
Date to which this performance data applies
Note: For further column performance related
information, refer to the table definition (cache hits, I/O
read/write requests, disk to cache transfers, cache to
disk transfers, and other data)

This example report would use the VPCCH table column PC_DATE_B to collect
days or weeks worth of related data. You could join the required tables by data
and volume ID (and any other information you prefer to have in your report). You
can use time ranges that fall between certain dates for historical information and
derive averages, peaks, and trends from that information.

You may have resources available to you for data such as experience with DB2
administration and spreadsheets. Scripting can be used within the ESS Expert
DB2 Utilities to aid in the database table export process (see 4.3, “IBM DB2
Utilities Command Center features” on page 83, or use the TotalStorage Expert
SWExport and SWImport utilities for details) as well as within most commercial
spreadsheet products. The following section provides a brief overview of the
select SQL statements. The select command reads data from specific areas
within tables of your database, and displays the results on your screen.

182 IBM TotalStorage Expert Customized Reports


6.3.4 Asset/performance volume statistics data collection script
We provide a script for collecting asset and performance volume statistics data in
Appendix , “Asset and performance volume statistics data collection script” on
page 208. In this example, variables are used within the script to extract a
particular date range for performance and related asset data. The
TSE21VOLPERF script may be used to provide a global view of volume level
performance in relation to a particular ESS and its associated attached hosts.
From there, trouble areas can be viewed more specifically to determine problem
resolution options.

The file name, which follows the name of the batch file to be executed, can be
called anything meaningful that you prefer. The batch file collects all TotalStorage
Expert 2.1 volume performance data from the DB2 database and parses the
information into worksheet (WSF) file format. The utility will create a .zip file
named filename.zip in the current directory, and it includes separate WSF files for
selected information extracted from tables VCMHOSTVOL, VHLPATH, (VPCCH),
VPHVOL in the TotalStorage Expert DB2 database. The VPCCH file is quite
large, and is also incorporated into the script. The start and stop date variables
may be used to extract data from VPCCH, but as a default, the script has the
VPCCH data extraction commented (rem) out so it will not execute.

The script output will provide a specific range of open-system host volume
relationships; vpath and hard disk data for ESS volumes (VOLSER or volume
serial number); volume level sample interval statistics (if desired); and hourly
data volume level statistics. Variables for particular hours can also be
incorporated into the script if desired using the date example from the script.
Hourly data can be extracted from the VPCCH and VPHVOL tables if hourly
variables are used within the script where appropriate. Please keep in mind that
depending on your environment, this data extraction filter can become time and
resource consuming for your processor, and may inhibit the TotalStorage Expert
performance during high processor usage periods.

Note: Please keep in mind that the more restrictive the queries, the more
tables that are queried, and the extent of data to be gathered will all have an
impact on the performance of the host where TotalStorage Expert is running,
how long the script execution will take, and the resulting performance
degradation that the TotalStorage Expert may experience with concurrent
tasks such as performance data collection and data preparation. Be
conservative with prototyping your SQL queries prior to incorporating them
into scripts. Keep your queries simple, and build more complex statements
upon what is currently working. This will simplify query and script
troubleshooting.

Chapter 6. Customized reports 183


6.3.5 Sample ESS hourly performance report
Example 6-5 shows the script that collects all hourly performance data from all
ESSs known to TotalStorage Expert by date (date range can be modified),
adapter (card), loop, and cluster (the unique ESS index, date, loop, card, and
cluster are hard coded in this example). The same report can be set up to
retrieve data based on the ESS short name if preferred.

Example 6-5 All hourly perf query by date, card, loop, cluster
SELECT
*
FROM
DB2ADMIN.VPHAD,
DB2ADMIN.VPSNX,
DB2ADMIN.VMPDX
WHERE
(
(
DB2ADMIN.VPSNX.I_VSM_IDX = DB2ADMIN.VPHAD.I_VSM_PERF_IDX AND
DB2ADMIN.VMPDX.I_VSM_SN = DB2ADMIN.VPSNX.I_VSM_SN
)
AND
(( DB2ADMIN.VPHAD.I_VSM_PERF_IDX = 2 ) and ( DB2ADMIN.VPHAD.D_PR_DATE=
'2002-06-06' )
AND ( DB2ADMIN.VPHAD.I_LOOP_ID = 'B' )
AND ( DB2ADMIN.VPHAD.I_CARD_NO = 1 )
AND ( DB2ADMIN.VPHAD.I_CLUSTER_NO = 1 ))
)

This sample script can also be found in this redbook’s FTP site in the folder
Scripts with the file name hour_perf_by_date_loop_card_cluster. Figure 6-6
shows an example of the output generated by the previous script. This was
generated within the DB2 Utilities Command Center. The variables for the loop,
card, date, and cluster are hard coded in this query example, but can be set by
the use of variables in a script if desired.

184 IBM TotalStorage Expert Customized Reports


Figure 6-6 Example output for hour_perf_by_date_loop_card_cluster

6.3.6 Sample ESS threshold events report script


You can use the following script for data mining since TotalStorage Expert 2.1.0
and up supports the following ESS Threshold Events:
򐂰 essDiskUtilizedTooHigh
– HSWV5851T
• Disk Utilization reached {4}%
• Over threshold ({5}%)
• For ESS {2}
• At cluster {3}
• Task {0}
• With Reference ID {1}
򐂰 essCacheHoldTimeTooLow
– HSWV5852T
• Cache Holding Time reached {4} seconds
• Under threshold ({5} seconds)
• For ESS {2}
• At cluster {3}
• Task {0}
• With Reference ID {1}
򐂰 essNVSCacheFullTooHigh
– HSWV5853T
• NVS Cache was {4}% Full
• Over threshold ({5}%)

Chapter 6. Customized reports 185


• For ESS {2}
• At cluster {3}
• Task {0}
• With Reference ID {1}

The events are logged in CMSGS table. Queries such as the following assist in
identifying trouble areas in which to undertake a more granular analysis.

Example 6-6 ESS threshold report script example


SELECT
DB2ADMIN.CMSGS.I_MSGID AS I_MSGID,
DB2ADMIN.CMSGS.D_ISSUED AS D_ISSUED,
DB2ADMIN.CMSGS.X_MESSAGE AS X_MESSAGE,
DB2ADMIN.CMSGS.I_COMPONENT AS I_COMPONENT,
DB2ADMIN.CMSGS.C_MSGTYPE AS C_MSGTYPE,
DB2ADMIN.CMSGS.C_SEVERITY AS C_SEVERITY,
DB2ADMIN.CMSGS.EVENTID AS EVENTID,
DB2ADMIN.CMSGS.CORRELATEKEY AS CORRELATEKEY
FROM
DB2ADMIN.CMSGS
WHERE
(
( DB2ADMIN.CMSGS.C_SEVERITY = 'S' )
OR ( DB2ADMIN.CMSGS.C_SEVERITY = 'E' )
OR ( DB2ADMIN.CMSGS.C_SEVERITY = 'W' )
AND ( DB2ADMIN.CMSGS.EVENTID like '%ess%' )
)
ORDER BY
D_ISSUED DESC

This sample script can also be found in this redbook’s FTP site in the folder
Scripts with the file name threshold.txt. Figure 6-7 shows an example of the
script output.

186 IBM TotalStorage Expert Customized Reports


Figure 6-7 Example of event_ess output

6.3.7 Sample ESS performance (highest utilized arrays) report


To data mine directly from the performance data table VPHAR, queries such as
the following help us to detect the highest 200 utilized arrays (in a given time
interval). Example 6-7 shows a script that can be altered to prompt for user input
for host variables, or they can be hard-coded into the query statement as in the
example.

Example 6-7 ESS performance highest utilized arrays script example


SELECT
I_VSM_PERF_IDX,
I_ARRAY_ID,
I_LOOP_ID,
I_DISK_GRP_NUM,
I_DISK_NUM,
I_LSS_LA,
I_CLUSTER_NO,
I_CARD_NUM,
D_PR_DATE,
I_PR_HOUR,
Q_HR_DEV_UTIL,
Q_HR_SAMPLES,
Q_HR_TOT_SECS,
Q_HR_TOT_IOS,
Q_HR_TOT_RESP_TIME,
Q_HR_MAX_IOR,

Chapter 6. Customized reports 187


Q_HR_MAX_MSR,
Q_HR_MAX_IOIN,
Q_HR_AVG_IOR,
Q_HR_AVG_MSR,
Q_HR_AVG_IOIN,
Q_HR_INTERVALS,
Q_HR_DU_NO_EXCEPTS,
Q_HR_DU_MAX_EXCEPT,
I_DU_THRESHOLD,
C_PR_CONFIG_CHG,
Q_HR_SEQ_IOS,
Q_HR_TOT_VOL_IOS
FROM VPHAR
WHERE C_PR_CONFIG_CHG >=0
D_PR_DATE = “06/06/2002”, AND I_PR_HOUR = (15,16), **
ORDER BY Q_HR_DEV_UTIL DESC FETCH FIRST 200 ROWS ONLY;

**D_PR_DATE, I_PR_HOUR, -- include some condition about date/ time

This sample script can also be found in this redbook’s FTP site in the folder
Scripts with the file name 200_hi_arrays_date_time.txt.

6.3.8 Sample of assigned storage by ESS report


In this query example, the script defines each table to a value T1, T2, T3, T4,
selects the columns and assigns them custom column names. The script then
links the columns appropriately and orders by the ESS short name.

Example 6-8 shows an example of a simple report that shows the capacity (in
GB) for each ESS by nickname.

Example 6-8 Sample capacity report by ESS


select T1.I_SHORT_NAME Shark
,T1.I_VSM_SN Serial
,T1.I_VSM_TYPE Type
,T1.I_VSM_MODEL_NO Mod
,T2.I_CLU_LIC_VRSN Code
,T4.Q_EXPN_RACKS + 1 as Frames
,T3.Q_VSM_RAID_GRPS Arrays
,T3.Q_VSM_FB_TOT_GB TotalGB
,T3.Q_VSM_FB_ASSIGNED Assigned
,T3.Q_VSM_FB_TOT_GB - T3.Q_VSM_FB_ASSIGNED as FreeGB
,T3.D_TASK_DATE Date

from vmpdx T1
,vsxdaldt T2
,vmcap T3

188 IBM TotalStorage Expert Customized Reports


,vmasi T4

where T1.I_VSM_IDX = T2.I_VSM_IDX and T2.I_VSM_IDX = T3.I_VSM_IDX


and T3.I_VSM_IDX = T4.I_VSM_IDX
and T2.I_CLU_NO = 1
and not exists (select *
from vmcap T5
where T1.I_VSM_IDX = T5.I_VSM_IDX
and T5.I_TASK_SEQ_IDX > T3.I_TASK_SEQ_IDX)

order by T1.I_SHORT_NAME;

This sample script can also be found in this redbook’s FTP site in the folder
Scripts with the file name total_gb_by_ess. Example 6-9 shows an example of
output from the previous SQL query statement.

Example 6-9 Example of output from total_gb_by_ess query


Shark Serial Mod-Type Code Frames Arrays TotGB Assigned Free Date
rpkm35 IBM-FCA28 2105-F20 1.5.2.58 2 47 5490 3176 2314 20030606

6.3.9 ESS Host volume assignment by attach type


Example 6-10 uses the CASE SQL expression as a condition for host attachment
type. It is an SQL equivalent of an IF-THEN-ELSE statement. It is used to
translate a row value for another value.

Example 6-10 CASE host volume assignment example


SELECT
DB2ADMIN.VCMHOSTCAP.I_HOST_NAME AS "HOSTNAME",
DB2ADMIN.VCMHOSTCAP.I_HOST_FC_CAPBL AS "HOST FC CAPBL",
DB2ADMIN.VCMHOSTCAP.Q_HOST_ASSIGN_CAP AS "FB Cap/GB",
DB2ADMIN.VCMHOSTCAP.Q_HOST_ASSIGN_SHR AS "Host Asgn Shr",
DB2ADMIN.VCMHOSTCAP.Q_HOST_VOLS AS "Tot Host Vols",
DB2ADMIN.VCMHOSTCAP.Q_HOST_VOLS_SHR AS "Host Vols Shr",
DB2ADMIN.VCMHOSTCAP.D_TASK_DATE AS "Date",
CASE DB2ADMIN.VCMHOSTCAP.I_HOST_ATTACH WHEN 1 THEN 'SCSI' ELSE 'FC' END
AS "Atch Type",
DB2ADMIN.VCMHOSTCAP.I_HOST_FC_WWPN AS "Host FC WWPN",
DB2ADMIN.VCMHOSTCAP.Q_HOST_FC_VOL_SHR AS "Host FC Vol Shr",
DB2ADMIN.VCMHOSTCAP.Q_HOST_MIXD_VOLSHR AS "#Host Mixd VolShr"
FROM
DB2ADMIN.VCMHOSTCAP
ORDER BY
I_HOST_NAME DESC,
Q_HOST_ASSIGN_CAP DESC,

Chapter 6. Customized reports 189


Q_HOST_VOLS_SHR DESC

This sample script can also be found in this redbook’s FTP site in the folder
Scripts with the file name host_vol_assign.txt. Figure 6-8 shows output from a
DB2 Utilities Command Center session for the previous script.

Figure 6-8 Sample ESS Host Volume Assignments Report

6.3.10 Sample ESS volume level performance data


Example 6-11 is a script that will output a file, which contains ESS volume level
performance information.

Example 6-11 Sample script for volume level performance


connect to sw2003 user db2admin using db2admin;
SELECT
DB2ADMIN.VMPDX.I_SHORT_NAME AS I_SHORT_NAME,
DB2ADMIN.VPSNX.I_VSM_SN AS I_VSM_SN,
DB2ADMIN.VPCCH.M_CLUSTER_N AS M_CLUSTER_N,
DB2ADMIN.VPCCH.M_LSS_LA AS M_LSS_LA,
DB2ADMIN.VPCCH.M_ARRAY_ID AS M_ARRAY_ID,

190 IBM TotalStorage Expert Customized Reports


DB2ADMIN.VPCCH.M_VOL_NUM AS M_VOL_NUM,
DB2ADMIN.VPCCH.PC_DATE_B AS PC_DATE_B,
DB2ADMIN.VPCCH.PC_DATE_E AS PC_DATE_E,
DB2ADMIN.VPCCH.PC_N_IO_R AS PC_N_IO_R,
DB2ADMIN.VPCCH.PC_N_IO_W AS PC_N_IO_W,
DB2ADMIN.VPCCH.PC_N_CH_R AS PC_N_CH_R,
DB2ADMIN.VPCCH.PC_N_CH_W AS PC_N_CH_W,
DB2ADMIN.VPCCH.PC_S_IO_R AS PC_S_IO_R,
DB2ADMIN.VPCCH.PC_S_IO_W AS PC_S_IO_W,
DB2ADMIN.VPCCH.PC_S_CH_R AS PC_S_CH_R,
DB2ADMIN.VPCCH.PC_S_CH_W AS PC_S_CH_W,
DB2ADMIN.VPCCH.PC_D2C AS PC_D2C,
DB2ADMIN.VPCCH.PC_SEQ_D2C AS PC_SEQ_D2C,
DB2ADMIN.VPCCH.PC_C2D AS PC_C2D,
DB2ADMIN.VPCCH.PC_RHR_AVG AS PC_RHR_AVG,
DB2ADMIN.VPCCH.PC_WHR_AVG AS PC_WHR_AVG,
DB2ADMIN.VPCCH.PC_THR_AVG AS PC_THR_AVG,
DB2ADMIN.VPCCH.PC_SHR_AVG AS PC_SHR_AVG,
DB2ADMIN.VPCCH.PC_NHR_AVG AS PC_NHR_AVG,
DB2ADMIN.VPCCH.PC_RMR_IO AS PC_RMR_IO,
DB2ADMIN.VPCCH.PC_RMR_CH AS PC_RMR_CH,
DB2ADMIN.VPCCH.PC_RMRHR_AVG AS PC_RMRHR_AVG,
DB2ADMIN.VPCCH.PC_DFW_IO AS PC_DFW_IO,
DB2ADMIN.VPCCH.PC_DFW_DELAY AS PC_DFW_DELAY,
DB2ADMIN.VPCCH.PC_DFW_AVG AS PC_DFW_AVG,
DB2ADMIN.VPCCH.PC_INT_SECS AS PC_INT_SECS,
DB2ADMIN.VPCCH.PC_B_HR_PRCT AS PC_B_HR_PRCT,
DB2ADMIN.VPCCH.P_OWNER AS P_OWNER,
DB2ADMIN.VPCCH.P_COMM AS P_COMM,
DB2ADMIN.VPCCH.PC_Q_W_PR AS PC_Q_W_PR
FROM
DB2ADMIN.VMPDX,
DB2ADMIN.VPSNX,
DB2ADMIN.VPCCH
WHERE
(
(
DB2ADMIN.VPSNX.I_VSM_SN = DB2ADMIN.VMPDX.I_VSM_SN AND
DB2ADMIN.VPCCH.M_MACH_SN = DB2ADMIN.VPSNX.I_VSM_SN
)
AND
(( DB2ADMIN.VMPDX.I_SHORT_NAME = 'XXXXXX' )
AND ( DB2ADMIN.VPCCH.PC_DATE_B >= 'YYYY-MM-DD' )
AND ( DB2ADMIN.VPCCH.PC_DATE_E <= 'YYYY-MM-DD' ))
)fetch first 10 rows only;

This sample script can also be found in this redbook’s FTP site in the folder
Scripts with the file name pers_vpcch.

Chapter 6. Customized reports 191


The ESS nickname (I_SHORT_NAME) and start and end date of the data
collection (PC_DATE_B and PC_DATE_E) are hard coded and may be changed
or set to variables depending on how you implement the script. Remember to
remove the FETCH clause after you are done testing the script. Figure 6-9 shows
an (right truncated) example of the script output.

Figure 6-9 Sample script perfs_vpcch output file

6.3.11 Example of summary-hierarchical query statements


Here is the breakdown of the SQL queries in order to put together the very first
performance report when you select Summary-hierarchical within TotalStorage
Expert. This example is to aid you in understanding the query steps used to
deliver the report within Expert. You can use this same type of logic in creating
your own sample scripts and reports.

Query: VPSNX
select I_VSM_IDX
from VPSNX
where I_VSM_SN='ESS serial number'

Now we have an index value that is associated with the ESS serial number. We
will call this value X for this example. Now for the next query:

Query: VPHCLCAC
select I_CLUSTER_NO,
MAX(Q_HR_ADAPTERS),
MAX(Q_HR_ARRAYS),
MAX(Q_HR_VOLUMES),
D_PR_DATE
from VPHCLCAC
where I_MACH_IDX = X
AND D_PR_DATE >='BeginDate'

192 IBM TotalStorage Expert Customized Reports


AND D_PR_DATE <='EndDate'
GROUP BY D_PR_DATE,
I_CLUSTER_NO
ORDER BY D_PR_DATE, I_CLUSTER_NO

The code will loop through the results of this query.

From each row, take the cluster, max adapter value, max array value, and max
volume value.

Query: VPHAD
select AVG(Q_HR_DEV_UTIL),
MAX(Q_HR_DEV_UTIL),
MAX(C_PR_CONFIG_CHG),
MAX(I_DU_THRESHOLD)
from VPHAD
where I_VSM_PERF_IDX = X
AND D_PR_DATE ='value of D_PR_DATE from VPHCLCAC query'
AND I_CLUSTER_NO ='value of I_CLUSTER_NO from VPHCLCAC query'

Now the code will parse all of the values taken from both tables and compile it
into a report.

6.3.12 Example of ranked IO request query statement


Here is the breakdown of the SQL queries in order to put together the very first
performance report when you select a report for a report ranked by IO requests
at the Logical Volume Level within TotalStorage Expert. This example is to aid
you in understanding the query steps used to deliver the report within Expert.
You can use this same type of logic in creating your own sample scripts and
reports.

Ranked by IO Requests: Logical Volume Level report


The code gets the following input from TotalStorage Expert (properties file);
nickname, interval, servername, serverlist, and input date (selections within the
report selection screen).

Query: VPSNX
select I_VSM_IDX
from VPSNX
where I_VSM_SN='ESS serial number'

Now we have an index value that is associated with the ESS serial number. We
will call this value ‘X’ for this example. Now for the next query we will look in table
VPHVOL to get the top ten ranked IO for each hour;

Chapter 6. Customized reports 193


Query: VPHVOL
select I_PR_HOUR
from VPHVOL
where I_MACH_IDX = X
and D_PR_DATE = 'input begin date'
group by I_PR_HOUR
order by I_PR_HOUR

Now the code will loop through the VPHVOL table query results. For each row,
we will get the cache holding time for each cluster for this hour:

Query: VPHCLCAC
select I_CLUSTER_NO,
MAX(Q_HR_AVG_HOLD_TIME)
from VPHCLCAC
where I_MACH_IDX = X
and D_PR_DATE = 'input begin date'
and I_PR_HOUR = 'I_PR_HOUR result from VPHVOL query'
Group by I_CLUSTER_NO

Now, the code will loop through each row of results from the VPHCLCAC table
query, and take the cluster and max hold time:

Query: VPHVOL
select I_CLUSTER_NO,
I_CARD_NO,
I_LOOP_ID,
I_DISK_GRP_NO,
I_DISK_NUM,
I_VOL_NUM,
I_VOL_TYPE,
I_VOL_ADDR,
AVG(Q_HR_IO_RATE),
AVG(Q_HR_NIO_R),
AVG(Q_HR_SIO_R),
AVG(Q_HR_NIO_W),
AVG(Q_HR_SIO_W),
AVG(Q_HR_RMR),
Q_HR_NVS_DELAY / Q_HR_TOT_IO_REQS,
AVG(Q_HR_CACHE_HIT_R),
AVG(Q_HR_CACHE_HIT_RR),
AVG(Q_HR_CACHE_HIT_WR),
AVG(Q_HR_TOT_IO_REQS),
AVG(Q_HR_TOT_IO_R)
from VPHVOL
WHERE I_MACH_IDX =X
AND D_PR_DATE ='input begin date'
AND I_PR_HOUR = 'I_PR_HOUR result from VPHVOL query'

194 IBM TotalStorage Expert Customized Reports


AND Q_HR_TOT_IO_REQS > 0
GROUP BY I_CLUSTER_NO,
I_CARD_NO,I_LOOP_ID,
I_DISK_GRP_NO,
I_DISK_NUM,
I_VOL_NUM,
I_VOL_TYPE,
I_VOL_ADDR,
Q_HR_IO_RATE,
Q_HR_NIO_R,
Q_HR_SIO_R,
Q_HR_NIO_W,
Q_HR_SIO_W,
Q_HR_RMR,
Q_HR_NVS_DELAY,
Q_HR_CACHE_HIT_R,
Q_HR_CACHE_HIT_RR,
Q_HR_CACHE_HIT_WR,
Q_HR_TOT_IO_REQS,
Q_HR_TOT_IO_R
ORDER BY Q_HR_IO_RATE DESC

Now the code will loop through each row of the results of the VPHVOL table
query, and uses each of the row results for the report.

6.3.13 Sample report using SAS script


SAS can be used to manipulate the data from the Expert database, for this
example, you will also require SASGraph. SAS is a program sold by the SAS
Corporation, it is not either provided by IBM nor is this a recommendation for its
use in reporting on TotalStorage Expert data. An example of the output that this
will produce is presented as Figure 6-10, the script itself is in Appendix , “SAS
custom script” on page 220.

Chapter 6. Customized reports 195


Figure 6-10 SAS example output

196 IBM TotalStorage Expert Customized Reports


A

Appendix A. Data extraction scripts


In this appendix we provide the script source code for extracting data from the
TotalStorage Expert database tables. This information can be used to assist you
in customizing your own scripts, provides you some ideas for creating new
scripts, and can be used as examples for syntax and structure. Most of these
scripts are on the simple to moderately complex. As you become familiar with the
principles discussed in this book, you will be able to formulate and write your own
scripts at differing levels of complexity.

© Copyright IBM Corp. 2003. All rights reserved. 197


Scripts for extracting all database tables
In this section, we provide the source scripts and their instructions for use. These
scripts are intended for extracting the entire table contents from the default
location of TotalStorage Expert installation. You may use these scripts as you
prefer. You may change them to match the directory structure of your custom
installation of Expert, and extract the information using a different file format
other than WSF (for example, DEL, CSV, IXF). You may also want to use the
scripts as the basis for more complex scripts, which have complex SQL
statements embedded within.

Windows 2000 platform


Instructions for script usage
Filename: 21W2K Instructions
1. Login to the Expert WIN2K Server (or Advanced Server) host as DB2ADMIN.
2. Ensure that you installed Expert in its default location. Its
components should be located as follows:
DB2 - C:\SQLLIB
Expert - C:\StorWatch
If these are not the current locations of the various components, the
script will need to be edited to reflect the actual directory locations.
Otherwise, proceed.
3. Copy the TSE21W2KEXT file to a directory on a drive with at least 10 MB
of free space. (eg. C:\Temp)
4. Open a DB2 command window by selecting "Start->Programs->IBM
DB2->Command Window"
5. cd into the directory in which you placed the attached file. (eg.
C:\Temp)
6. Execute the TSE DB2 table extraction dump batch file as follows:
TSE21W2KEXT somethinguseful
The file name, which follows the name of the batch file to be executed, can
be called anything meaningful that you prefer. The batch file collects all
TotalStorage Expert 2.1 data from the DB2 database and parses the
information into worksheet (WSF) file format. The utility will create a
.zip file named somethinguseful.zip in the current directory and it
includes separate WSF files for each table in the TSExpert DB2 database.

Script source
Filename: TSE21W2KEXT
@echo off
rem Usage: TSE21W2KEXT filename
rem RPTNAME: The Report Name as defined in command execution
rem (ex: filename = JUNE12345.perf)
rem

198 IBM TotalStorage Expert Customized Reports


rem Version 1.0
rem Initialize
echo Initializing
rem Default Paths
set _db2_path=C:\SQLLIB
set _was_path=C:\WebSphere\AppServer
rem Log Locations
rem set _mkdb="%_db2_path%\swmakedb.log"
set _jar="%_was_path%\java\bin\jar.exe"
rem Other Locations
set _db2="%_db2_path%\bin\db2.exe"
set _wrk_path=".\TSE21W2KEXT"
rem Other Vars
set _db2extract_log=db2extract.log
set _db2extract_version=1.3
set _RPTNAME=%1
rem Creating Extraction Directory
echo Creating Extraction Directory
mkdir %_wrk_path%
pushd %_wrk_path%
del /Q *.*
:db2
rem DB2 Information
---------------------------------------------------------------
echo Gathering TSE Database Table Information
echo Gathering TSE Database Table Information >> %_db2extract_log%
%_db2% db2start > db2start.txt
%_db2% list database directory > databases.txt
%_db2% connect to swdata > connectswdata.txt
echo Expert 2.1 for Windows 2000 Server >> %_RPTNAME%.SWDATAEXT
date /T >> %_RPTNAME%.SWDATAEXT
time /T >> %_RPTNAME%.SWDATAEXT
echo %_RPTNAME% >> %_RPTNAME%.SWDATAEXT
echo
echo TSExpert DB2 Table Information
echo Expt21_DBINFO.txt > %_RPTNAME%.SWDATAEXT
%_db2% export to dbs_tables.123 of wsf select * from sysstat.tables >>
%_db2extract_log%
%_db2% export to dbs_indexes.123 of wsf select * from sysstat.indexes >>
%_db2extract_log%
%_db2% export to dbs_columns.123 of wsf select * from sysstat.columns >>
%_db2extract_log%
rem Root Table
%_db2% export to db_vmpdx_root.123 of wsf select * from vmpdx >>
%_db2extract_log%
rem Asset Data Tables
%_db2% export to db_vclua_adat.123 of wsf select * from vclua >>
%_db2extract_log%

Appendix A. Data extraction scripts 199


%_db2% export to db_vclul_adat.123 of wsf select * from vclul >>
%_db2extract_log%
%_db2% export to db_vmasi_adat.123 of wsf select * from vmasi >>
%_db2extract_log%
%_db2% export to db_vmase_adat.123 of wsf select * from vmase >>
%_db2extract_log%
%_db2% export to db_vsxdalvl_adat.123 of wsf select * from vsxdalvl >>
%_db2extract_log%
%_db2% export to db_vsxdaldt_adat.123 of wsf select * from vsxdaldt >>
%_db2extract_log%
%_db2% export to db_vsxdatop_adat.123 of wsf select * from vsxdatop >>
%_db2extract_log%
%_db2% export to db_vsxdarck_adat.123 of wsf select * from vsxdarck >>
%_db2extract_log%
%_db2% export to db_vsxdaclu_adat.123 of wsf select * from vsxdaclu >>
%_db2extract_log%
%_db2% export to db_vsxdalic_adat.123 of wsf select * from vsxdalic >>
%_db2extract_log%
%_db2% export to db_vsxdstyp_adat.123 of wsf select * from vsxdstyp >>
%_db2extract_log%
rem Capacity Data Tables
%_db2% export to db_mcap_capdat.123 of wsf select * from vmcap >>
%_db2extract_log%
%_db2% export to db_vcluc_capdat.123 of wsf select * from vcluc >>
%_db2extract_log%
%_db2% export to db_vmddm_capdat.123 of wsf select * from vmddm >>
%_db2extract_log%
%_db2% export to db_vcuic_capdat.123 of wsf select * from vcuic >>
%_db2extract_log%
%_db2% export to db_vcuiv_capdat.123 of wsf select * from vcuiv >>
%_db2extract_log%
%_db2% export to db_vhstc_capdat.123 of wsf select * from vhstc >>
%_db2extract_log%
%_db2% export to db_vhstx_capdat.123 of wsf select * from vhstx >>
%_db2extract_log%
%_db2% export to db_vhstv_capdat.123 of wsf select * from vhstv >>
%_db2extract_log%
%_db2% export to db_vhstc_capdat.123 of wsf select * from vhstc >>
%_db2extract_log%
%_db2% export to db_vhnickx_capdat.123 of wsf select * from vhnickx >>
%_db2extract_log%
%_db2% export to db_vvolx_capdat.123 of wsf select * from vvolx >>
%_db2extract_log%
%_db2% export to db_vcmtop1_capdat.123 of wsf select * from vcmtop1 >>
%_db2extract_log%
%_db2% export to db_vcmtop2_capdat.123 of wsf select * from vcmtop2 >>
%_db2extract_log%
%_db2% export to db_vcmddm_capdat.123 of wsf select * from vcmddm >>
%_db2extract_log%

200 IBM TotalStorage Expert Customized Reports


%_db2% export to db_vcmclust_capdat.123 of wsf select * from vcmclust >>
%_db2extract_log%
%_db2% export to db_vcmcuisum_capdat.123 of wsf select * from vcmcuisum >>
%_db2extract_log%
%_db2% export to db_vcmcuivol_capdat.123 of wsf select * from vcmcuivol >>
%_db2extract_log%
%_db2% export to db_vcmtckd_capdat.123 of wsf select * from vcmckd >>
%_db2extract_log%
%_db2% export to db_vcmhostcap_capdat.123 of wsf select * from vcmhostcap
>> %_db2extract_log%
rem Current Data Tables
%_db2% export to db_vcmhostvol_curdat.123 of wsf select * from vcmhostvol
>> %_db2extract_log%
%_db2% export to db_vcmhnick_curdat.123 of wsf select * from vcmhnick >>
%_db2extract_log%
%_db2% export to db_vcmhnickv_curdat.123 of wsf select * from vcmhnickv >>
%_db2extract_log%
%_db2% export to db_vcmport_curdat.123 of wsf select * from vcmport >>
%_db2extract_log%
%_db2% export to db_vsxda_curdat.123 of wsf select * from vsxda >>
%_db2extract_log%
rem Open System/Host Volume Data
%_db2% export to db_vschhdc_oshvol.123 of wsf select * from vschhdc >>
%_db2extract_log%
%_db2% export to db_vhostdc_oshvol.123 of wsf select * from vhostdc >>
%_db2extract_log%
%_db2% export to db_vhdcstat_oshvol.123 of wsf select * from vhdcstat >>
%_db2extract_log%
%_db2% export to db_vhlpath_oshvol.123 of wsf select * from vhlpath >>
%_db2extract_log%
%_db2% export to db_vhlnick_oshvol.123 of wsf select * from vhlnick >>
%_db2extract_log%
%_db2% export to db_vhlhost_oshvol.123 of wsf select * from vhlhost >>
%_db2extract_log%
rem Performance Tables (Sample Data)
%_db2% export to db_vpcch_perfs.123 of wsf select * from vpcch >>
%_db2extract_log%
%_db2% export to db_vpcrk_perfs.123 of wsf select * from vpcrk >>
%_db2extract_log%
%_db2% export to db_vpvpd_perfs.123 of wsf select * from vpvpd >>
%_db2extract_log%
%_db2% export to db_vpcfg_perfs.123 of wsf select * from vpcfg >>
%_db2extract_log%
%_db2% export to db_vpvol_perfs.123 of wsf select * from vpvol >>
%_db2extract_log%
rem Performance Tables (Hourly Data)
%_db2% export to db_vphvol_perfh.123 of wsf select * from vphvol >>
%_db2extract_log%

Appendix A. Data extraction scripts 201


%_db2% export to db_vphar_perfh.123 of wsf select * from vphar >>
%_db2extract_log%
%_db2% export to db_vpharcac_perfh.123 of wsf select * from vpharcac >>
%_db2extract_log%
%_db2% export to db_vphad_perfh.123 of wsf select * from vphard >>
%_db2extract_log%
%_db2% export to db_vphardcac_perfh.123 of wsf select * from vphardcac >>
%_db2extract_log%
%_db2% export to db_vphclcac_perfh.123 of wsf select * from vphclcac >>
%_db2extract_log%
%_db2% export to db_vphss_perfh.123 of wsf select * from vphss >>
%_db2extract_log%
%_db2% export to db_vpsnx_perfh.123 of wsf select * from vpsnx >>
%_db2extract_log%
%_db2% export to db_vpcut_perfh.123 of wsf select * from vpcut >>
%_db2extract_log%
%_db2% export to db_vphadcac_perfh.123 of wsf select * from vphadcac >>
%_db2extract_log%
rem Various Task related Tables
%_db2% export to db_vstats_task.123 of wsf select * from vstats >>
%_db2extract_log%
%_db2% export to db_vtseq_task.123 of wsf select * from vtseq >>
%_db2extract_log%
%_db2% export to db_vscht_task.123 of wsf select * from vscht >>
%_db2extract_log%
%_db2% export to db_vthreshold_task.123 of wsf select * from vthreshold >>
%_db2extract_log%
%_db2% export to db_vopevent_task.123 of wsf select * from vopevent >>
%_db2extract_log%
%_db2% export to db_vtstats_task.123 of wsf select * from vtstats >>
%_db2extract_log%
%_db2% export to db_vtstatm_task.123 of wsf select * from vtstatm >>
%_db2extract_log%
%_db2% export to db_vmkhcap_task.123 of wsf select * from vmkhcap >>
%_db2extract_log%
rem TotalStorage Administrative Tables
%_db2% export to db_cusrs_admin.123 of wsf select * from cusrs >>
%_db2extract_log%
%_db2% export to db_cuaut_admin.123 of wsf select * from cuaut >>
%_db2extract_log%
%_db2% export to db_cschh_admin.123 of wsf select * from cschh >>
%_db2extract_log%
%_db2% export to db_cssty_admin.123 of wsf select * from cssty >>
%_db2extract_log%
%_db2% export to db_csrvh_admin.123 of wsf select * from csrvh >>
%_db2extract_log%
%_db2% export to db_cngrh_admin.123 of wsf select * from cngrh >>
%_db2extract_log%

202 IBM TotalStorage Expert Customized Reports


%_db2% export to db_cigen_admin.123 of wsf select * from cigen >>
%_db2extract_log%
%_db2% export to db_cmsgs_admin.123 of wsf select * from cmsgs >>
%_db2extract_log%
%_db2% export to db_cmsau_admin.123 of wsf select * from cmsau >>
%_db2extract_log%
%_db2% export to db_cdstt_admin.123 of wsf select * from cdstt >>
%_db2extract_log%
%_db2% export to db_cdssd_admin.123 of wsf select * from cdssd >>
%_db2extract_log%
%_db2% export to db_cuprf_admin.123 of wsf select * from cuprf >>
%_db2extract_log%
%_db2% export to db_curle_admin.123 of wsf select * from curle >>
%_db2extract_log%
%_db2% export to db_curta_admin.123 of wsf select * from curta >>
%_db2extract_log%
%_db2% export to db_cusrv_admin.123 of wsf select * from cusrv >>
%_db2extract_log%
%_db2% export to db_cuspt_admin.123 of wsf select * from cuspt >>
%_db2extract_log%
%_db2% export to db_csnmp_admin.123 of wsf select * from csnmp >>
%_db2extract_log%
%_db2% export to db_cswcs_admin.123 of wsf select * from cswcs >>
%_db2extract_log%
%_db2% export to db_cparm_admin.123 of wsf select * from cparm >>
%_db2extract_log%
%_db2% export to db_copevent_admin.123 of wsf select * from copevent >>
%_db2extract_log%
%_db2% export to db_cthreshold_admin.123 of wsf select * from cthreshold >>
%_db2extract_log%
rem Miscellaneous Tables
%_db2% export to db_cschd_misc.123 of wsf select * from cschd >>
%_db2extract_log%
%_db2% export to db_cnode_misc.123 of wsf select * from cnode >>
%_db2extract_log%
%_db2% export to db_cngrp_misc.123 of wsf select * from cngrp >>
%_db2extract_log%
%_db2% export to db_cngdi_misc.123 of wsf select * from cngdi >>
%_db2extract_log%
%_db2% export to db_csipa_misc.123 of wsf select * from csipa >>
%_db2extract_log%
rem VTS/ETL Tables
%_db2% export to db_tdatasrc_vtsetl.123 of wsf select * from tdatasrc >>
%_db2extract_log%
%_db2% export to db_tdata_vtsetl.123 of wsf select * from tdata >>
%_db2extract_log%
%_db2% export to db_tthreshold_vtsetl.123 of wsf select * from tthreshold
>> %_db2extract_log%

Appendix A. Data extraction scripts 203


%_db2% export to db_talarmdisplay_vtsetl.123 of wsf select * from
talarmdisplay >> %_db2extract_log%
%_db2% export to db_tsasset_vtsetl.123 of wsf select * from tsasset >>
%_db2extract_log%
%_db2% export to db_tsperf_vtsetl.123 of wsf select * from tsperf >>
%_db2extract_log%
%_db2% export to db_tvasset_vtsetl.123 of wsf select * from tvasset >>
%_db2extract_log%
%_db2% export to db_tvcapc_vtsetl.123 of wsf select * from tvcapc >>
%_db2extract_log%
%_db2% export to db_tvperf_vtsetl.123 of wsf select * from tvperf >>
%_db2extract_log%
%_db2% export to db_tvchndist_vtsetl.123 of wsf select * from tvchndist >>
%_db2extract_log%
%_db2% export to db_tvactdist_vtsetl.123 of wsf select * from tvactdist >>
%_db2extract_log%
%_db2% export to db_tgperf_vtsetl.123 of wsf select * from tgperf >>
%_db2extract_log%
%_db2% export to db_tvreal_vtsetl.123 of wsf select * from tvreal >>
%_db2extract_log%
%_db2% export to db_ttemp_vtsetl.123 of wsf select * from ttemp >>
%_db2extract_log%
%_db2% export to db_trepinfo_vtsetl.123 of wsf select * from trepinfo >>
%_db2extract_log%
%_db2% connect reset >> %_db2extract_log%
rem Build Zip and Cleanup
---------------------------------------------------------
echo Building Zip File %_RPTNAME%.zip
echo Command line was %0 >> %_db2extract_log%
echo Building Zip File %_RPTNAME%.zip >> %_db2extract_log%
%_jar% -cf ../%_RPTNAME%.zip *.*
echo Cleaning Up.
del /Q *.*
popd
rem rmdir %_wrk_path%
echo Completed Database Table Extraction
echo
.........................................................................
echo . You may now unzip %_RPTNAME%.ZIPped file to the %_wrk_path%
echo . working directory and extract files if you prefer
echo
.........................................................................

Sample script for extracting volume level performance data


The following script is hardcoded to capture two weeks worth of data (11/01/2002
through 11/30/2002) on one ESS (SN 013-22616). It can be altered to
accommodate variables for the date and which ESS serial number to filter for. It

204 IBM TotalStorage Expert Customized Reports


is meant to be more as a sample than a robust and comprehensive script, which
will fulfill all your analysis needs. However, it should provide you some ideas of
what is possible and how the tables are linked.

Instructions for script usage


Filename: 21W2KPERF Instructions
1. Login to the Expert WIN2K Server (or Advanced Server) host as DB2ADMIN.
2. Ensure that you installed Expert in its default location. Its
components should be located as follows:
DB2 - C:\SQLLIB
Expert - C:\StorWatch
If these are not the current locations of the various components, the
script will need to be edited to reflect the actual directory locations.
Otherwise, proceed.
3. Copy the TSE21W2KPERF file to a directory on a drive with at least 10 MB
of free space. (eg. C:\Temp)
4. Open a DB2 command window by selecting "Start->Programs->IBM
DB2->Command Window"
5. cd into the directory in which you placed the attached file. (eg.
C:\Temp)
6. Execute the TSE DB2 table extraction dump batch file as follows:
TSE21W2KPERF somethinguseful
The file name, which follows the name of the batch file to be executed, can
be called anything meaningful that you prefer. The batch file collects all
TotalStorage Expert 2.1 data from the DB2 database and parses the
information into worksheet (WSF) file format. The utility will create a
.zip file named somethinguseful.zip in the current directory and it
includes separate WSF files for each table in the TSExpert DB2 database.

Filename: TSE21W2KPERF

Example: A-1 TSE21W2KPERF script example


@echo off

rem Usage: TSE21W2KEXT filename startdate enddate nickname


rem RPTNAME: The Report Name as defined in command execution
rem (ex: filename = JUNE12345.perf
rem startdate = 08/01/2003 MM/DD/YYYY
rem enddate = 08/14/2003 MM/DD/YYYY
rem essSN = essserialnumber)
rem
rem Version 1.0

rem Initialize
echo Initializing

rem Default Paths

Appendix A. Data extraction scripts 205


set _db2_path=C:\SQLLIB
set _was_path=C:\WebSphere\AppServer

rem Log Locations


rem set _mkdb="%_db2_path%\swmakedb.log"
set _jar="%_was_path%\java\bin\jar.exe"

rem Other Locations


set _db2="%_db2_path%\bin\db2.exe"
set _wrk_path=".\TSE21W2KPERFS"

rem Other Vars


set _db2extract_log=perfs_extract.log
set _db2extract_version=1.3
set _RPTNAME=%1
rem Potential variables for this script set _startdate=%2
rem set _enddate=%3
rem set _essSN=%4

rem Creating Extraction Directory


echo Creating Extraction Directory
mkdir %_wrk_path%
pushd %_wrk_path%
del /Q *.*

:db2

rem DB2 Information


---------------------------------------------------------------
echo Gathering TSE Database Table Information
echo Gathering TSE Database Table Information >> %_db2extract_log%

%_db2% db2start > db2start.txt


%_db2% list database directory > databases.txt
%_db2% connect to sw2003 > connectswdata.txt

echo Expert 2.1 for Windows 2000 Server >> %_RPTNAME%.SWDATAPERFS


date /T >> %_RPTNAME%.SWDATAEXT
time /T >> %_RPTNAME%.SWDATAEXT
echo %_RPTNAME% >> %_RPTNAME%.SWDATAEXT
echo
echo TSExpert DB2 Table Information
echo Expt21_DBINFO.txt > %_RPTNAME%.SWDATAEXT

%_db2% export to dbs_tables.123 of wsf select * from sysstat.tables >>


%_db2extract_log%

206 IBM TotalStorage Expert Customized Reports


%_db2% export to dbs_indexes.123 of wsf select * from sysstat.indexes >>
%_db2extract_log%

%_db2% export to dbs_columns.123 of wsf select * from sysstat.columns >>


%_db2extract_log%

rem Root Tables

%_db2% export to db_vcmhostvol_perf.123 of wsf SELECT


DB2ADMIN.VCMHOSTVOL.I_HOST_NAME AS I_HOST_NAME,
DB2ADMIN.VCMHOSTVOL.I_VOL_SN AS I_VOL_SN, DB2ADMIN.VCMHOSTVOL.Q_VOL_SIZE AS
Q_VOL_SIZE, DB2ADMIN.VCMHOSTVOL.I_VOL_TYPE_ID AS I_VOL_TYPE_ID,
DB2ADMIN.VCMHOSTVOL.Q_VOL_TOTAL_HOSTS AS Q_VOL_TOTAL_HOSTS,
DB2ADMIN.VCMHOSTVOL.I_HOST_ATTACH AS I_HOST_ATTACH,
DB2ADMIN.VCMHOSTVOL.I_HOST_HW_TYPE AS I_HOST_HW_TYPE,
DB2ADMIN.VCMHOSTVOL.I_HOST_FC_WWPN AS I_HOST_FC_WWPN,
DB2ADMIN.VCMHOSTVOL.I_HOST_FC_CAPBL AS I_HOST_FC_CAPBL,
DB2ADMIN.VCMHOSTVOL.Q_VOL_SCSI_HOSTS AS Q_VOL_SCSI_HOSTS,
DB2ADMIN.VCMHOSTVOL.Q_VOL_FC_HOSTS AS Q_VOL_FC_HOSTS FROM
DB2ADMIN.VCMHOSTVOL, DB2ADMIN.VHNICKX WHERE ((DB2ADMIN.VHNICKX.D_TASK_DATE
between '11/01/2002' and '11/30/2002')) ORDER BY I_HOST_NAME DESC >>
%_db2extract_log%

%_db2% export to db_vhlpath_perf.123 of wsf SELECT DB2ADMIN.VMPDX.I_VSM_SN


AS I_VSM_SN, DB2ADMIN.VMPDX.I_SHORT_NAME AS I_SHORT_NAME,
DB2ADMIN.VMPDX.I_DU_THRESHOLD AS I_DU_THRESHOLD,
DB2ADMIN.VMPDX.I_AVH_THRESHOLD AS I_AVH_THRESHOLD,
DB2ADMIN.VHOSTDC.I_HNICK_NAME AS I_HNICK_NAME,
DB2ADMIN.VHLPATH.I_HOST_CONN_IP AS I_HOST_CONN_IP,
DB2ADMIN.VHLPATH.I_SDD_DEV_NAME AS I_SDD_DEV_NAME,
DB2ADMIN.VHLPATH.I_PATH_ID AS I_PATH_ID, DB2ADMIN.VHLPATH.I_PATH_ADP_NAME
AS I_PATH_ADP_NAME, DB2ADMIN.VHLPATH.I_PATH_DSK_NAME AS I_PATH_DSK_NAME,
DB2ADMIN.VHLPATH.I_PATH_STATE AS I_PATH_STATE, DB2ADMIN.VHLPATH.I_PATH_MODE
AS I_PATH_MODE FROM DB2ADMIN.VMPDX, DB2ADMIN.VPSNX, DB2ADMIN.VHLPATH,
DB2ADMIN.VHLNICK, DB2ADMIN.VHOSTDC WHERE (( DB2ADMIN.VPSNX.I_VSM_SN =
DB2ADMIN.VMPDX.I_VSM_SN AND DB2ADMIN.VHOSTDC.I_VSM_SN =
DB2ADMIN.VPSNX.I_VSM_SN AND DB2ADMIN.VHOSTDC.I_VSM_IDX =
DB2ADMIN.VHLNICK.I_VSM_IDX AND DB2ADMIN.VHLNICK.I_VSM_IDX =
DB2ADMIN.VHLPATH.I_VSM_IDX) AND ((DB2ADMIN.VHLPATH.D_TASK_DATE between
'11/01/2002' and '11/30/2002') AND (DB2ADMIN.VMPDX.I_SHORT_NAME like
'013-22616'))) ORDER BY I_HNICK_NAME DESC >> %_db2extract_log%

%_db2% export to db_vpcch_perf.123 of wsf SELECT * FROM DB2ADMIN.VPCCH


WHERE ((DB2ADMIN.VPCCH.PC_DATE_B between '11/01/2003' and '11/30/2003'))
ORDER BY M_MACH_SN DESC >> %_db2extract_log%

%_db2% export to db_vphvol_perf.123 of wsf SELECT * FROM DB2ADMIN.VPHVOL,


DB2ADMIN.VMPDX, DB2ADMIN.VPSNX, DB2ADMIN.VHOSTDC WHERE

Appendix A. Data extraction scripts 207


((DB2ADMIN.VPSNX.I_VSM_SN = DB2ADMIN.VMPDX.I_VSM_SN AND
DB2ADMIN.VHOSTDC.I_VSM_SN = DB2ADMIN.VPSNX.I_VSM_SN) AND
((DB2ADMIN.VPHVOL.D_PR_DATE between '11/01/2002' and '11/30/2002') AND
(DB2ADMIN.VMPDX.I_VSM_SN like '013-22616'))) ORDER BY I_HNICK_NAME DESC >>
%_db2extract_log%

%_db2% connect reset >> %_db2extract_log%

rem Build Zip and Cleanup


---------------------------------------------------------
echo Building Zip File %_RPTNAME%.zip
echo Command line was %0 >> %_db2extract_log%
echo Building Zip File %_RPTNAME%.zip >> %_db2extract_log%
%_jar% -cf ../%_RPTNAME%.zip *.*

echo Cleaning Up.


del /Q *.*
popd
rem rmdir %_wrk_path%

echo Completed Database Table Extraction


echo
.........................................................................
echo . You may now unzip %_RPTNAME%.ZIPped file to the %_wrk_path%
echo . working directory and extract files if you prefer
echo
.........................................................................

Asset and performance volume statistics data collection script


Script instructions:
1. Log in to the Expert WIN2K Server (or Advanced Server) host as DB2ADMIN.
2. Ensure that you installed Expert in its default location. Its components should
be located as follows:
DB2 - C:\SQLLIB
Expert - C:\StorWatch
If these are not the current locations of the various components, the script will
need to be edited to reflect the actual directory locations. Otherwise,
proceed.
3. Copy the TSE21VOLPERF file to a directory on a drive with at least 10 MB of
free space (eg. C:\Temp).

208 IBM TotalStorage Expert Customized Reports


4. Open a DB2 command window by selecting Start->Programs->IBM
DB2->Command Window.
5. cd into the directory in which you placed the attached file (eg. C:\Temp).
6. Execute the TSE Volume Performance Reporting Script dump batch file as
follows:
TSE21VOLPERF filename startdate enddate essSN hname
Where the following variables respresent:
filename: The Report Name as defined in command execution (for
example: filename = JUNE12345.perf
startdate = 08/01/2003 MM/DD/YYYY
enddate = 08/14/2003 MM/DD/YYYY
essSN = ESS Serial Number (013-99999)
hname = Host Name)
The file name, which follows the name of the batch file to be executed, can be
called anything meaningful that you prefer. The batch file collects all
TotalStorage Expert 2.1 volume performance data data from the DB2
database and parses the information into worksheet (WSF) file format. The
utility will create a .zip file named filename.zip in the current directory, and it
includes separate WSF files for selected information extracted from tables
VCMHOSTVOL, VHLPATH, (VPCCH), VPHVOL in the TotalStorage Expert
DB2 database.

Script source
Example: A-2 Asset and performance volume statistics data collection script
@echo off

rem Usage: TSE21VOLPERF filename startdate enddate essSN hname


rem filename: The Report Name as defined in command execution
rem (ex: filename = JUNE12345.perf
rem startdate = 08/01/2003 MM/DD/YYYY
rem enddate = 08/14/2003 MM/DD/YYYY
rem essSN = ESS Serial Number (013-99999)
rem hname = Host Name)
rem
rem Version 1.0

rem Initialize
echo Initializing

rem Default Paths


set _db2_path=F:\SQLLIB

Appendix A. Data extraction scripts 209


set _was_path=F:\WebSphere\AppServer

rem Log Locations


rem set _mkdb="%_db2_path%\swmakedb.log"
set _jar="%_was_path%\java\bin\jar.exe"

rem Other Locations


set _db2="%_db2_path%\bin\db2.exe"
set _wrk_path=".\TSE21VOLPERF"

rem Other Vars


set _db2extract_log=perfs_extract.log
set _db2extract_version=1.0
set _RPTNAME=%1
set _start=%2
set _end=%3
set _essSN=%4
set _hname=%5

rem Creating Extraction Directory


echo Creating Extraction Directory
mkdir %_wrk_path%
pushd %_wrk_path%
del /Q *.*

:db2

rem DB2 Information


---------------------------------------------------------------
echo Gathering TSE Database Table Information
echo Gathering TSE Database Table Information >> %_db2extract_log%

%_db2% db2start > db2start.txt


%_db2% list database directory > databases.txt
%_db2% connect to swdata > connectswdata.txt

echo Expert 2.1 for Windows 2000 Server >> %_RPTNAME%.SWDATAPERFS


date /T >> %_RPTNAME%.SWDATAEXT
time /T >> %_RPTNAME%.SWDATAEXT
echo %_RPTNAME% >> %_RPTNAME%.SWDATAEXT
echo
echo TSExpert DB2 Table Information
echo Expt21_DBINFO.txt > %_RPTNAME%.SWDATAEXT
echo
echo _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
echo _/ This process may take some time depending _/

210 IBM TotalStorage Expert Customized Reports


echo _/ on the amount of data gathered _/
echo _/ Please be patient, Thank You _/
echo _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

rem %_db2% export to dbs_tables.123 of wsf select * from sysstat.tables >>


%_db2extract_log%

rem %_db2% export to dbs_indexes.123 of wsf select * from sysstat.indexes >>


%_db2extract_log%

rem %_db2% export to dbs_columns.123 of wsf select * from sysstat.columns >>


%_db2extract_log%

rem Root Tables

%_db2% export to db_vcmhostvol_perf.123 of wsf SELECT


DB2ADMIN.VCMHOSTVOL.I_HOST_NAME AS I_HOST_NAME, DB2ADMIN.VCMHOSTVOL.I_VOL_SN AS
I_VOL_SN, DB2ADMIN.VCMHOSTVOL.Q_VOL_SIZE AS Q_VOL_SIZE,
DB2ADMIN.VCMHOSTVOL.I_VOL_TYPE_ID AS I_VOL_TYPE_ID,
DB2ADMIN.VCMHOSTVOL.Q_VOL_TOTAL_HOSTS AS Q_VOL_TOTAL_HOSTS,
DB2ADMIN.VCMHOSTVOL.I_HOST_ATTACH AS I_HOST_ATTACH,
DB2ADMIN.VCMHOSTVOL.I_HOST_HW_TYPE AS I_HOST_HW_TYPE,
DB2ADMIN.VCMHOSTVOL.I_HOST_FC_WWPN AS I_HOST_FC_WWPN,
DB2ADMIN.VCMHOSTVOL.I_HOST_FC_CAPBL AS I_HOST_FC_CAPBL,
DB2ADMIN.VCMHOSTVOL.Q_VOL_SCSI_HOSTS AS Q_VOL_SCSI_HOSTS,
DB2ADMIN.VCMHOSTVOL.Q_VOL_FC_HOSTS AS Q_VOL_FC_HOSTS, DB2ADMIN.VMPDX.I_VSM_SN
AS SERIAL_NUM, DB2ADMIN.VHNICKX.D_TASK_DATE AS DATE FROM DB2ADMIN.VCMHOSTVOL,
DB2ADMIN.VMPDX, DB2ADMIN.VHNICKX WHERE (DB2ADMIN.VMPDX.I_VSM_IDX =
DB2ADMIN.VCMHOSTVOL.I_VSM_IDX) AND (DB2ADMIN.VHNICKX.I_VSM_IDX =
DB2ADMIN.VMPDX.I_VSM_IDX) AND (DB2ADMIN.VMPDX.I_VSM_SN = '%_essSN%') AND
(DB2ADMIN.VCMHOSTVOL.I_HOST_NAME = '%_hname%') AND
(DB2ADMIN.VHNICKX.D_TASK_DATE BETWEEN '%_start%' and '%_end%') ORDER BY
I_HOST_NAME DESC >> %_db2extract_log%

%_db2% export to db_vhlpath_perf.123 of wsf SELECT DB2ADMIN.VMPDX.I_VSM_SN AS


I_VSM_SN, DB2ADMIN.VMPDX.I_SHORT_NAME AS I_SHORT_NAME,
DB2ADMIN.VMPDX.I_DU_THRESHOLD AS I_DU_THRESHOLD, DB2ADMIN.VMPDX.I_AVH_THRESHOLD
AS I_AVH_THRESHOLD, DB2ADMIN.VHOSTDC.I_HNICK_NAME AS I_HNICK_NAME,
DB2ADMIN.VHLPATH.I_HOST_CONN_IP AS I_HOST_CONN_IP,
DB2ADMIN.VHLPATH.I_SDD_DEV_NAME AS I_SDD_DEV_NAME, DB2ADMIN.VHLPATH.I_PATH_ID
AS I_PATH_ID, DB2ADMIN.VHLPATH.I_PATH_ADP_NAME AS I_PATH_ADP_NAME,
DB2ADMIN.VHLPATH.I_PATH_DSK_NAME AS I_PATH_DSK_NAME,
DB2ADMIN.VHLPATH.I_PATH_STATE AS I_PATH_STATE, DB2ADMIN.VHLPATH.I_PATH_MODE AS
I_PATH_MODE, DB2ADMIN.VHLPATH.D_TASK_DATE AS DATE FROM DB2ADMIN.VMPDX,
DB2ADMIN.VPSNX, DB2ADMIN.VHLPATH, DB2ADMIN.VHLNICK, DB2ADMIN.VHOSTDC WHERE
(DB2ADMIN.VPSNX.I_VSM_SN = DB2ADMIN.VMPDX.I_VSM_SN) AND
(DB2ADMIN.VHOSTDC.I_VSM_SN = DB2ADMIN.VPSNX.I_VSM_SN) AND

Appendix A. Data extraction scripts 211


(DB2ADMIN.VHOSTDC.I_VSM_IDX = DB2ADMIN.VHLNICK.I_VSM_IDX) AND
(DB2ADMIN.VHLNICK.I_VSM_IDX = DB2ADMIN.VHLPATH.I_VSM_IDX) AND
(DB2ADMIN.VMPDX.I_VSM_SN = '%_essSN%') AND (DB2ADMIN.VHLPATH.D_TASK_DATE
BETWEEN '%_start%' and '%_end%') AND (DB2ADMIN.VMPDX.I_VSM_SN = '%_essSN%')
ORDER BY I_HNICK_NAME DESC >> %_db2extract_log%

rem %_db2% export to db_vpcch_perf.123 of wsf SELECT * FROM DB2ADMIN.VPCCH


WHERE (DB2ADMIN.VPCCH.M_MACH_SN = '%_essSN%') AND (DB2ADMIN.VPCCH.PC_DATE_B
BETWEEN '%_start%' AND '%_end%') ORDER BY M_MACH_SN DESC >> %_db2extract_log%

%_db2% export to db_vphvol_perf.123 of wsf SELECT * FROM DB2ADMIN.VPHVOL,


DB2ADMIN.VMPDX, DB2ADMIN.VPSNX, DB2ADMIN.VHOSTDC WHERE (DB2ADMIN.VPSNX.I_VSM_SN
= DB2ADMIN.VMPDX.I_VSM_SN) AND (DB2ADMIN.VPSNX.I_VSM_IDX =
DB2ADMIN.VPHVOL.I_MACH_IDX) AND (DB2ADMIN.VHOSTDC.I_HNICK_NAME = '%_hname%')
AND (DB2ADMIN.VHOSTDC.I_VSM_SN = DB2ADMIN.VPSNX.I_VSM_SN) AND
(DB2ADMIN.VPHVOL.D_PR_DATE BETWEEN '%_start%' AND '%_end%') AND
(DB2ADMIN.VMPDX.I_VSM_SN = '%_essSN%') ORDER BY I_HNICK_NAME DESC >>
%_db2extract_log%

%_db2% connect reset >> %_db2extract_log%

rem Build Zip and Cleanup


---------------------------------------------------------
echo Building Zip File %_RPTNAME%.zip
echo Command line was %0 >> %_db2extract_log%
echo Building Zip File %_RPTNAME%.zip >> %_db2extract_log%
%_jar% -cf ../%_RPTNAME%.zip *.*

echo Cleaning Up.


del /Q *.*
popd
rem rmdir %_wrk_path%

echo Completed Database Table Extraction


echo .........................................................................
echo . You may now unzip %_RPTNAME%.ZIPped file to the %_wrk_path%
echo . working directory and extract files if you prefer
echo .........................................................................

AIX platform
AIX script instructions
Filename: 21AIX Instructions
1. Login to the Expert 2.1 AIX host as root.

212 IBM TotalStorage Expert Customized Reports


2. Ensure that you installed Expert in its default location. Its
components should be located as follows:
DB2 - /home/db2inst1/sqllib
Expert - /usr/lpp/IBMTSExpert
If these are not the current locations of the various components, the
script will need to be edited to reflect the actual directory locations.
Otherwise, proceed.
3. Copy the TSE21AIXEXT file to a directory on a drive with at least 10 MB
of free space. (eg. C:\Temp)
4. Ensure that the both root and db2inst1 users have execute rights to the
snap utility.
5. cd into the directory in which you placed the attached file. (eg. /tmp)
6. Execute the TSE DB2 table extraction dump batch file as follows:
./TSE21AIXEXT somethinguseful
The file name, which follows the name of the batch file to be executed, can
be called anything meaningful that you prefer. The batch file collects all
TotalStorage Expert 2.1 data from the DB2 database and parses the
information into worksheet (WSF) file format. The utility will create a
.zip file named somethinguseful.zip in the current directory and it
includes separate WSF files for each table in the TSExpert DB2 database.

AIX script source


Filename: TSE21AIXEXT
#!/bin/ksh
#
# Expert 2.1 AIX TSExpert DB2 Table Extraction Utility
#
# Usage: TSE21W2KEXT
# RPTNAME: The Report Name as defined in command execution
# (ex: JUNE12345.Extension)
#
# Version 1.0
###########################################################################
# Function Declarations
###########################################################################
Initialize () {
#Default User IDs
export _db2inst1=db2inst1
#Default Paths:
export _db2_path=/home/$_db2inst1/sqllib
export _was_path=/usr/WebSphere/AppServer
export _wrk_path=/tmp/TSE21AIXEXT
#Other Vars
export _user=$(whoami)
export _RPTNAME=$_p1
export _xhistory=$_wrk_path/history
export _db2extract_log=$_user.db2extract.log
export _extract_version=1.0

Appendix A. Data extraction scripts 213


export _curdir=$(pwd)
export _start_cmd=$0
export _qtype=WSF
export _qext=123
export _jar=$_was_path/java/bin/jar
}
CheckUser () {
if [[ $_user != 'root' && ! -f $_xhistory ]];
then
echo Script must be run by root.
exit 1
fi
}
InitWorkPath () {
if [[ $_user = 'root' ]];
then
mkdir $_wrk_path
chmod 777 $_wrk_path
chmod 755 $_start_cmd
cd $_wrk_path
fi
}
DoRootWork () {
echo Getting Expert Fix Level info >> $_db2extract_log
#ls -l $_sw_path/fixes > ptfs.txt
echo Gathering TSE Database Table Information >> $_db2extract_log
find $_db2_path -ls > db2_files.txt 2>> $_db2extract_log
# Building TSE Database Extraction Information file.
echo TSExpert 21 for AIX >> $_RPTNAME.SWDATAEXT
echo $(date) >> $_RPTNAME.SWDATAEXT
echo $_RPTNAME >> $_RPTNAME.SWDATAEXT
echo TSExpert 21 DB2 Table Information >> $_RPTNAME.SWDATAEXT
echo Expt21_DBINFO.txt >> $_RPTNAME.SWDATAEXT
}
DoDb2inst1Work () {
# DB2 Information
------------------------------------------------------------------
echo Gathering DB2 Information
echo Gathering DB2 Information >> $_db2extract_log
db2 db2start > db2start.txt 2>> $_db2extract_log
db2 "list database directory" > databases.txt 2>> $_db2extract_log
db2 "connect to swdata" > connectswdata.txt 2>> $_db2extract_log
db2 "get database configuration for swdata" > config.txt 2>>
$_db2extract_log
db2 "list tables" > tables.txt 2>> $_db2extract_log
db2 "list database directory" > directory.txt 2>> $_db2extract_log
db2 "export to dbs_tables.123 of wsf select * from sysstat.tables" >>
$_db2extract_log

214 IBM TotalStorage Expert Customized Reports


db2 "export to dbs_indexes.123 of wsf select * from sysstat.indexes" >>
$_db2extract_log
db2 "export to dbs_columns.123 of wsf select * from sysstat.columns" >>
$_db2extract_log
# Root Table
db2 "export to db_vmpdx_root.123 of wsf select * from vmpdx" >>
$_db2extract_log
# Asset Data Tables
db2 "export to db_vclua_adat.123 of wsf select * from vclua" >>
$_db2extract_log
db2 "export to db_vclul_adat.123 of wsf select * from vclul" >>
$_db2extract_log
db2 "export to db_vmasi_adat.123 of wsf select * from vmasi" >>
$_db2extract_log
db2 "export to db_vmase_adat.123 of wsf select * from vmase" >>
$_db2extract_log
db2 "export to db_vsxdalvl_adat.123 of wsf select * from vsxdalvl" >>
$_db2extract_log
db2 "export to db_vsxdaldt_adat.123 of wsf select * from vsxdaldt" >>
$_db2extract_log
db2 "export to db_vsxdatop_adat.123 of wsf select * from vsxdatop" >>
$_db2extract_log
db2 "export to db_vsxdarck_adat.123 of wsf select * from vsxdarck" >>
$_db2extract_log
db2 "export to db_vsxdaclu_adat.123 of wsf select * from vsxdaclu" >>
$_db2extract_log
db2 "export to db_vsxdalic_adat.123 of wsf select * from vsxdalic" >>
$_db2extract_log
db2 "export to db_vsxdstyp_adat.123 of wsf select * from vsxdstyp" >>
$_db2extract_log
# Capacity Data Tables
db2 "export to db_mcap_capdat.123 of wsf select * from vmcap" >>
$_db2extract_log
db2 "export to db_vcluc_capdat.123 of wsf select * from vcluc" >>
$_db2extract_log
db2 "export to db_vmddm_capdat.123 of wsf select * from vmddm" >>
$_db2extract_log
db2 "export to db_vcuic_capdat.123 of wsf select * from vcuic" >>
$_db2extract_log
db2 "export to db_vcuiv_capdat.123 of wsf select * from vcuiv" >>
$_db2extract_log
db2 "export to db_vhstc_capdat.123 of wsf select * from vhstc" >>
$_db2extract_log
db2 "export to db_vhstx_capdat.123 of wsf select * from vhstx" >>
$_db2extract_log
db2 "export to db_vhstv_capdat.123 of wsf select * from vhstv" >>
$_db2extract_log
db2 "export to db_vhstc_capdat.123 of wsf select * from vhstc" >>
$_db2extract_log

Appendix A. Data extraction scripts 215


db2 "export to db_vhnickx_capdat.123 of wsf select * from vhnickx" >>
$_db2extract_log
db2 "export to db_vvolx_capdat.123 of wsf select * from vvolx" >>
$_db2extract_log
db2 "export to db_vcmtop1_capdat.123 of wsf select * from vcmtop1" >>
$_db2extract_log
db2 "export to db_vcmtop2_capdat.123 of wsf select * from vcmtop2" >>
$_db2extract_log
db2 "export to db_vcmddm_capdat.123 of wsf select * from vcmddm" >>
$_db2extract_log
db2 "export to db_vcmclust_capdat.123 of wsf select * from vcmclust" >>
$_db2extract_log
db2 "export to db_vcmcuisum_capdat.123 of wsf select * from vcmcuisum" >>
$_db2extract_log
db2 "export to db_vcmcuivol_capdat.123 of wsf select * from vcmcuivol" >>
$_db2extract_log
db2 "export to db_vcmtckd_capdat.123 of wsf select * from vcmckd" >>
$_db2extract_log
db2 "export to db_vcmhostcap_capdat.123 of wsf select * from vcmhostcap" >>
$_db2extract_log
#Current Data Tables
db2 "export to db_vcmhostvol_curdat.123 of wsf select * from vcmhostvol" >>
$_db2extract_log
db2 "export to db_vcmhnick_curdat.123 of wsf select * from vcmhnick" >>
$_db2extract_log
db2 "export to db_vcmhnickv_curdat.123 of wsf select * from vcmhnickv" >>
$_db2extract_log
db2 "export to db_vcmport_curdat.123 of wsf select * from vcmport" >>
$_db2extract_log
db2 "export to db_vsxda_curdat.123 of wsf select * from vsxda" >>
$_db2extract_log
# Open System/Host Volume Data
db2 "export to db_vschhdc_oshvol.123 of wsf select * from vschhdc" >>
$_db2extract_log
db2 "export to db_vhostdc_oshvol.123 of wsf select * from vhostdc" >>
$_db2extract_log
db2 "export to db_vhdcstat_oshvol.123 of wsf select * from vhdcstat" >>
$_db2extract_log
db2 "export to db_vhlpath_oshvol.123 of wsf select * from vhlpath" >>
$_db2extract_log
db2 "export to db_vhlnick_oshvol.123 of wsf select * from vhlnick" >>
$_db2extract_log
db2 "export to db_vhlhost_oshvol.123 of wsf select * from vhlhost" >>
$_db2extract_log
# Performance Tables (Sample Data)
db2 "export to db_vpcch_perfs.123 of wsf select * from vpcch" >>
$_db2extract_log
db2 "export to db_vpcrk_perfs.123 of wsf select * from vpcrk" >>
$_db2extract_log

216 IBM TotalStorage Expert Customized Reports


db2 "export to db_vpvpd_perfs.123 of wsf select * from vpvpd" >>
$_db2extract_log
db2 "export to db_vpcfg_perfs.123 of wsf select * from vpcfg" >>
$_db2extract_log
db2 "export to db_vpvol_perfs.123 of wsf select * from vpvol" >>
$_db2extract_log
rem Performance Tables (Hourly Data)
db2 "export to db_vphvol_perfh.123 of wsf select * from vphvol" >>
$_db2extract_log
db2 "export to db_vphar_perfh.123 of wsf select * from vphar" >>
$_db2extract_log
db2 "export to db_vpharcac_perfh.123 of wsf select * from vpharcac" >>
$_db2extract_log
db2 "export to db_vphad_perfh.123 of wsf select * from vphard" >>
$_db2extract_log
db2 "export to db_vphardcac_perfh.123 of wsf select * from vphardcac" >>
$_db2extract_log
db2 "export to db_vphclcac_perfh.123 of wsf select * from vphclcac" >>
$_db2extract_log
db2 "export to db_vphss_perfh.123 of wsf select * from vphss" >>
$_db2extract_log
db2 "export to db_vpsnx_perfh.123 of wsf select * from vpsnx" >>
$_db2extract_log
db2 "export to db_vpcut_perfh.123 of wsf select * from vpcut" >>
$_db2extract_log
db2 "export to db_vphadcac_perfh.123 of wsf select * from vphadcac" >>
$_db2extract_log
# Various Task related Tables
db2 "export to db_vstats_task.123 of wsf select * from vstats" >>
$_db2extract_log
db2 "export to db_vtseq_task.123 of wsf select * from vtseq" >>
$_db2extract_log
db2 "export to db_vscht_task.123 of wsf select * from vscht" >>
$_db2extract_log
db2 "export to db_vthreshold_task.123 of wsf select * from vthreshold" >>
$_db2extract_log
db2 "export to db_vopevent_task.123 of wsf select * from vopevent" >>
$_db2extract_log
db2 "export to db_vtstats_task.123 of wsf select * from vtstats" >>
$_db2extract_log
db2 "export to db_vtstatm_task.123 of wsf select * from vtstatm" >>
$_db2extract_log
db2 "export to db_vmkhcap_task.123 of wsf select * from vmkhcap" >>
$_db2extract_log
# TotalStorage Administrative Tables
db2 "export to db_cusrs_admin.123 of wsf select * from cusrs" >>
$_db2extract_log
db2 "export to db_cuaut_admin.123 of wsf select * from cuaut" >>
$_db2extract_log

Appendix A. Data extraction scripts 217


db2 "export to db_cschh_admin.123 of wsf select * from cschh" >>
$_db2extract_log
db2 "export to db_cssty_admin.123 of wsf select * from cssty" >>
$_db2extract_log
db2 "export to db_csrvh_admin.123 of wsf select * from csrvh" >>
$_db2extract_log
db2 "export to db_cngrh_admin.123 of wsf select * from cngrh" >>
$_db2extract_log
db2 "export to db_cigen_admin.123 of wsf select * from cigen" >>
$_db2extract_log
db2 "export to db_cmsgs_admin.123 of wsf select * from cmsgs" >>
$_db2extract_log
db2 "export to db_cmsau_admin.123 of wsf select * from cmsau" >>
$_db2extract_log
db2 "export to db_cdstt_admin.123 of wsf select * from cdstt" >>
$_db2extract_log
db2 "export to db_cdssd_admin.123 of wsf select * from cdssd" >>
$_db2extract_log
db2 "export to db_cuprf_admin.123 of wsf select * from cuprf" >>
$_db2extract_log
db2 "export to db_curle_admin.123 of wsf select * from curle" >>
$_db2extract_log
db2 "export to db_curta_admin.123 of wsf select * from curta" >>
$_db2extract_log
db2 "export to db_cusrv_admin.123 of wsf select * from cusrv" >>
$_db2extract_log
db2 "export to db_cuspt_admin.123 of wsf select * from cuspt" >>
$_db2extract_log
db2 "export to db_csnmp_admin.123 of wsf select * from csnmp" >>
$_db2extract_log
db2 "export to db_cswcs_admin.123 of wsf select * from cswcs" >>
$_db2extract_log
db2 "export to db_cparm_admin.123 of wsf select * from cparm" >>
$_db2extract_log
db2 "export to db_copevent_admin.123 of wsf select * from copevent" >>
$_db2extract_log
db2 "export to db_cthreshold_admin.123 of wsf select * from cthreshold" >>
$_db2extract_log
# Miscellaneous Tables
db2 "export to db_cschd_misc.123 of wsf select * from cschd" >>
$_db2extract_log
db2 "export to db_cnode_misc.123 of wsf select * from cnode" >>
$_db2extract_log
db2 "export to db_cngrp_misc.123 of wsf select * from cngrp" >>
$_db2extract_log
db2 "export to db_cngdi_misc.123 of wsf select * from cngdi" >>
$_db2extract_log
db2 "export to db_csipa_misc.123 of wsf select * from csipa" >>
$_db2extract_log

218 IBM TotalStorage Expert Customized Reports


# VTS/ETL Tables
db2 "export to db_tdatasrc_vtsetl.123 of wsf select * from tdatasrc" >>
$_db2extract_log
db2 "export to db_tdata_vtsetl.123 of wsf select * from tdata" >>
$_db2extract_log
db2 "export to db_tthreshold_vtsetl.123 of wsf select * from tthreshold" >>
$_db2extract_log
db2 "export to db_talarmdisplay_vtsetl.123 of wsf select * from
talarmdisplay" >> $_db2extract_log
db2 "export to db_tsasset_vtsetl.123 of wsf select * from tsasset" >>
$_db2extract_log
db2 "export to db_tsperf_vtsetl.123 of wsf select * from tsperf" >>
$_db2extract_log
db2 "export to db_tvasset_vtsetl.123 of wsf select * from tvasset" >>
$_db2extract_log
db2 "export to db_tvcapc_vtsetl.123 of wsf select * from tvcapc" >>
$_db2extract_log
db2 "export to db_tvperf_vtsetl.123 of wsf select * from tvperf" >>
$_db2extract_log
db2 "export to db_tvchndist_vtsetl.123 of wsf select * from tvchndist" >>
$_db2extract_log
db2 "export to db_tvactdist_vtsetl.123 of wsf select * from tvactdist" >>
$_db2extract_log
db2 "export to db_tgperf_vtsetl.123 of wsf select * from tgperf" >>
$_db2extract_log
db2 "export to db_tvreal_vtsetl.123 of wsf select * from tvreal" >>
$_db2extract_log
db2 "export to db_ttemp_vtsetl.123 of wsf select * from ttemp" >>
$_db2extract_log
db2 "export to db_trepinfo_vtsetl.123 of wsf select * from trepinfo" >>
$_db2extract_log
db2 "connect reset" >> $_db2extract_log
}
Cleanup () {
# Build .zip and cleanup
--------------------------------------------------------
echo "Building $_RPTNAME.zip"
echo "Building $_RPTNAME.zip" >> $_db2extract_log
cd $_curdir
$_jar -cf $_RPTNAME.zip $_wrk_path
rm -r $_wrk_path
}
###########################################################################
# Main Routine
###########################################################################
export _p1=$1
export _p2=$2
Initialize
CheckUser

Appendix A. Data extraction scripts 219


InitWorkPath
echo User = $_user > $_db2extract_log
echo Command = $0 $1 $2 $3 $4 >> $_db2extract_log
echo Start dir = $_curdir >> $_db2extract_log
echo >> $_db2extract_log
if [[ $_user = 'root' ]];
then
DoRootWork
echo $_history > $_xhistory
echo Calling script as $_db2inst1 >> $_db2extract_log
su - $_db2inst1 "-c cd $_curdir; $_start_cmd" 2>> $_db2extract_log
echo Returned from call rc=$? >> $_db2extract_log
rm $_xhistory
fi
if [[ $_user = $_db2inst1 ]];
then
DoDb2inst1Work
exit 0
fi
Cleanup
echo Completed Database Table Extraction
echo "Ensure that the $_RPTNAME.zip file is transferred (ftp bin) in binary
mode"

SAS custom script


/* TABLE VPCCH: */
/* P_TASK Sequence number of the performance collection task*/
/* PC_INDEX Unique identifer for the sample stats gathered for one
interval */
/* M_MACH_SN Serial number of the storage server*/
/* M_CLUSTER_N Cluster number for this logical volume*/
/* M_LSS_LA An ESS internally generated logical subsystem
identifier */
/* M_ARRAY_ID An ESS internally generated logical array identifier*/
/* M_VOL_NUM Identifying number of this logical volume*/
/* PC_DATE_B Start date of this sample period*/
/* PC_TIME_B Start time of this sample period*/
/* */
/* PC_DATE_E End date of this sample period*/
/* PC_TIME_E End time of this sample period*/
/* PC_N_IO_R Number of normal I/O read requests*/
/* PC_N_IO_W Number of normal I/O write requests */
/* PC_N_CH_R Number of normal read cache hits*/
/* PC_N_CH_W Number of normal write cache hits*/
/* PC_S_IO_R Number of sequential I/O read requests*/
/* PC_S_IO_W Number of sequential I/O write requests*/

220 IBM TotalStorage Expert Customized Reports


/* PC_S_CH_R Number of sequential read cache hits*/
/* PC_S_CH_W Number of sequential write cache hits*/
/* PC_D2C Number of disk to cache track transfers for non-seq*/
/* PC_SEQ_D2C Number of disk to cache track transfers for sequential
*/
/* PC_C2D Number of cache to disk */
/* PC_RHR_AVG Cache hit ratio for read I/Os*/
/* PC_WHR_AVG Cache hit ratio for write I/Os*/
/* PC_THR_AVG Overall cache hit ratio */
/* PC_SHR_AVG Cache hit ratio for sequential I/O*/
/* PC_NHR_AVG Cache hit ratio for normal I/O */
/* */
/* PC_RMR_IO Number of record mode read I/O requests*/
/* PC_RMR_CH Number of record mode read cache hits*/
/* PC_RMRHR_AVG Cache hit ratio for record mode reads*/
/* PC_DFW_IO Number of DFW I/O requests */
/* PC_DFW_DELAY Number of DFW delayed requests*/
/* PC_DFW_AVG (DFW I/O requests/DFS delayed)* 100*/
/* P_OWNER Internally generated identifier for the creator of
this record */
/* P_COMM Zero if normal, negative when logical volume can't be
mapped to CFG or VOL tables*/

/* TABLE VPCRK: */
/* P_TASK Sequence number of the performance collection task*/
/* PC_INDEX Unique identifer for the sample stats gathered for one
interval */
/* M_MACH_SN Serial number of the storage server*/
/* M_CLUSTER_N Cluster number for this logical volume*/
/* M_LSS_LA An ESS internally generated logical subsystem
identifier */
/* M_ARRAY_ID An ESS internally genreatedl logical array identifier
*/
/* M_DDM_NUM Number of DDMs in this logical array*/
/* PC_DATE_B Start date of this sample period*/
/* PC_TIME_B Start time of this sample period*/
/* */
/* PC_DATE_E End date of this sample period*/
/* PC_TIME_E End time of this sample period*/
/* PC_IO_WRITE Number of subsystem write requests issued to this
logical array */
/* PC_RT_READ Total time (ms) to satisfy all read requests to this
array */
/* PC_RT_WRITE Total time (ms) to satisfy all write requests issued
to this array */
/* PC_IOR_AVG Avg subsystem I/O rate for all requests issued to this
array */

Appendix A. Data extraction scripts 221


/* PC_MSR_AVG Avg ms time to satisfy all subsystem I/O requests to
this array */
/* PC_RBT_AVG Number of bytes read from this array/number of seconds
in this period*/
/* */
/* PC_WBT_AVG Number of bytes written to this array/number of
seconds in this period*/
/* P_OWNER Internally generated identifier for the creator of
this record */
/* P_COMM Zero if normal, negative when logical volume can't be
mapped to CFG or VOL tables*/
/* Q_SAMP_DEV_UTIL Percent (0 - 100) of time this array is busy, for a
given time period */
/*
*/
/* TABLE VPVPD: */
/* P_TASK Sequence number of the performance collection task*/
/* M_MACH_SN Serial number of the storage server*/
/* M_MACH_TY Higher level identifier for the storage server - 2105
for ESS) */
/* M_MODEL_N Model number for hte strage server*/
/* M_CLUSTER_N Cluster number for this cluster*/
/* M_RAM RAM in this cluster (MB) */
/* M_NVS Non-volatile storage in this cluster (MB)*/
/* P_CDATE Date of this snapshot of the configuration for this
storage server */
/* P_CTIME Time of this configuration snapshot
*/

DM 'out;clear;log;clear;'; /* clear the output screen and the log */


/* User inputs */
%global after_date;
%global Qafter_date;
%global start_date;
%global Qstart_date;
%global t_start;
%global Qt_start;
%global t_stop;
%global Qt_stop;
%global serial;
%global Qserial;

/* Calculations */
%global key;
%global total_cache;
%global interval_lines;
%global lastline;
%global clus1_ranks;
%global clus2_ranks;

222 IBM TotalStorage Expert Customized Reports


%global the_answer;

/* Greets the user and gives version information */


%MACRO GREETING;
%window DataCrush_v1 color=CYAN
#9 @40 'DataCrush Report Program' attr=highlight
color=blue
#11 @28
"You are executing DCRPv1.1 on &sysday, &sysdate.."
#16 @40 'Press ENTER to continue.';
%display DataCrush_v1;
%MEND;

/* The start date of the task from the user */


%MACRO THE_GOODS1;
%window Query1 color=CYAN group=progInputs
#13 @15 'Enter a date to list all tasks that started on or after that
date. (mm/dd/yyyy)' attr=highlight
color=blue
#15 @15 after_date 10 attr=underline;
%display Query1;
%MEND;

/* The start date of the task from the user */


%MACRO THE_GOODS2;
%window Query2 color=CYAN group=progInputs
#13 @28 'Enter the actual start date of the task. (mm/dd/yyyy)'
attr=highlight
color=blue
#15 @28 start_date 10 attr=underline;
%display Query2;
%MEND;

/* Gets the start time and serial number from the user */
%MACRO THE_GOODS3;
%window Query3 color=CYAN group=progInputs
#13 @28 'Enter the start time of the first interval of the
task.(tt:tt:tt)' attr=highlight
color=blue
#15 @28 t_start 8 attr=underline autoskip=yes //
#17 @28 'Enter the start time of the last interval of the
task.(tt:tt:tt)' attr=highlight
color=blue
#19 @28 t_stop 8 attr=underline autoskip=yes //
#21 @28 'Enter the serial number of the shark ' attr=highlight
color=blue
#23 @28 serial 9 attr=underline;

Appendix A. Data extraction scripts 223


%display Query3;
%MEND;

/* Displays a help message for the user */


%MACRO HELP1;
%window Helpmsg1 color=CYAN
#9 @28 'DataCrush Report Program Help Message' attr=highlight
color=blue
#11 @20 "To retrieve the data that corresponds to your task you
will need"
#12 @20 "the start time of the first interval and last interval
of the task,"
#13 @20 "and the serial number of the ESS that the data
collection task was run"
#14 @20 "on. The this information can be obtained by viewing the
SQL query"
#15 @20 "output. The SQL query output can be displayed by double
clicking"
#16 @20 "on the Output tab at the bottom of the Display Manager."
#19 @38 'Press ENTER to continue.';
%display Helpmsg1;
%MEND;

/**************************************************************************
/
/* */
/* Generates the SAS table copies of the information in the DB2 database
*/
/* based on SQL queries comprised by the user's input. */
/* */
/**************************************************************************
/
PROC SQL;
/* Calling macro GREETING */
%GREETING;

/* Initialize connection to the local database


*/
connect to odbc (prompt); /* <-- prompts user for logon/pwd
*/
*connect to odbc (dsn=field uid=kdorsey pwd=db2admin); /* hard-coded
FIELD connection */
*connect to odbc (dsn=tucson uid=db2admin pwd=db2admin); /* hard-coded
TUSCON connection */
*connect to odbc (dsn=swdata uid=db2admin pwd=db2admin); /* hard-coded
SWDATA connection */

224 IBM TotalStorage Expert Customized Reports


/* Calling macro THE GOODS */
%THE_GOODS1;
%let Qafter_date=%nrbquote(')&after_date%nrbquote(');
%let sPC_DATE_B=&Qafter_date;
/* List all task that are on or after the day given as input */
select * from connection to odbc (
select distinct p_task, pc_date_b, m_mach_sn from vpcch
where pc_date_b=&sPC_DATE_B or pc_date_b > &sPC_DATE_B );

%THE_GOODS2;
%let Qstart_date=%nrbquote(')&start_date%nrbquote(');
%let sPC_DATE_B=&Qstart_date;
/* List all task the day in question */
select * from connection to odbc (
select distinct p_task, m_mach_sn, pc_time_b from vpcch
where pc_date_b=&sPC_DATE_B);

/* Displays a help message for the user */


%HELP1;

/* Calling macro THE GOODS2*/


%THE_GOODS3;
%let Qserial=%nrbquote(')&serial%nrbquote(');
%let sM_MACH_SN=&Qserial;
%let Qt_start=%nrbquote(')&t_start%nrbquote(');
%let sPC_TIME_B=&Qt_start;
%let Qt_stop=%nrbquote(')&t_stop%nrbquote(');
%let sPC_TIME_E=&Qt_stop;

/* This creates the SAS table copy of vpcch */


create table sas_VPCCH as select * from connection to odbc (
select * from vpcch
where p_task=(select distinct p_task from vpcch where
pc_date_b=&sPC_DATE_B
and m_mach_sn=&sM_MACH_SN and pc_time_b=&sPC_TIME_B)
and (pc_time_b between &sPC_TIME_B and &sPC_TIME_E) );

/* This creates the SAS table copy of vpcrk */


create table sas_VPCRK as select * from connection to odbc (
select * from vpcrk
where p_task=(select distinct p_task from vpcrk where
pc_date_b=&sPC_DATE_B
and m_mach_sn=&sM_MACH_SN and pc_time_b=&sPC_TIME_B)
and (pc_time_b between &sPC_TIME_B and &sPC_TIME_E));

/* This creates the SAS table copy of vpvpd */


select distinct p_task into :taskID from Work.sas_VPCRK;
create table sas_VPVPD as select * from connection to odbc (
select * from vpvpd

Appendix A. Data extraction scripts 225


where p_task=&taskID );

/* This creates a subset of vpcch to calculate the number of ranks */


create table subset as select * from connection to odbc (
select * from vpcch
where pc_date_b=&sPC_DATE_B
and m_mach_sn=&sM_MACH_SN and pc_time_b=&sPC_TIME_B );

/* This table actually contains all of the ranks of the ESS */


create table ranks as select * from connection to odbc (
select distinct m_array_id from vpcrk
where pc_date_b=&sPC_DATE_B
and m_mach_sn=&sM_MACH_SN and pc_time_b=&sPC_TIME_B);

/**************************************************************/
/* These table are created to retrieve configuration info. */
/* These tables are only loaded when an ASSET data collection */
/* has been run. */
/**************************************************************/

/* This creates a copy of vmpdx */


create table SharkInfo as select * from connection to odbc (
select * from vmpdx
where I_VSM_SN=&sM_MACH_SN );
select distinct I_VSM_IDX into :key from Work.SharkInfo;
%put &key;

/* This creates a copy of vmcap */


create table sas_VMCAP as select * from connection to odbc (
select * from vmcap
where I_VSM_IDX=&key );

/* This creates a copy of vmasi */


create table sas_VMASI as select * from connection to odbc (
select * from vmasi
where I_VSM_IDX=&key );

/* This disconnects from the database */


disconnect from odbc;
QUIT;

/* Create the $DataCrush directory if it doesn't exist */


option noxwait;
DATA _null_;
x 'md c:\$DataCrush';
RUN;

/*******************************************************************/
/* Gets the total cache size for any number of of clusters per ESS */

226 IBM TotalStorage Expert Customized Reports


/*******************************************************************/
PROC SQL noprint;
select sum(M_RAM) into :total_cache from Work.sas_VPVPD;
QUIT;

/*********************************************************************/
/* Get the number of lines in the sample data per interval */
/*********************************************************************/
PROC SQL noprint;
select count(P_TASK) into :interval_lines from Work.subset;
select count(P_TASK) into :lastline from Work.sas_VPCCH;
QUIT;

/****************************************/
/* Sorts the subset table by m_array_id */
/****************************************/
PROC SORT data = Work.subset;
by m_array_id;

/******************************************/
/* Calculates the number of LUNS per rank */
/******************************************/
PROC MEANS noprint DATA = Work.subset;
by m_array_id;
output out = Work.ranks N=NLUN;
QUIT;

/* Data Set DS3 is a merger of the ranks and subset table */


DATA DS3;
merge Work.ranks Work.subset;
by m_array_id;
drop _TYPE_ P_TASK PC_INDEX M_MACH_SN M_CLUSTER_N M_LSS_LA M_VOL_NUM
PC_DATE_B PC_TIME_B PC_DATE_E PC_TIME_E PC_N_IO_R PC_N_IO_W PC_N_CH_R
PC_N_CH_W PC_S_IO_R PC_S_IO_W PC_S_CH_R PC_S_CH_W PC_D2C PC_SEQ_D2C PC_C2D
PC_RHR_AVG PC_WHR_AVG PC_THR_AVG PC_SHR_AVG PC_NHR_AVG PC_RMR_IO PC_RMR_CH
PC_RMRHR_AVG PC_DFW_IO PC_DFW_DELAY PC_DFW_AVG PC_INT_SECS PC_B_HR_PRCT
P_OWNER P_COMM;
drop P_TASK;

/* Data Set DS2 generated by dropping unneccessary columns in vpcrk */


DATA DS2;
set Work.sas_VPCRK;
drop P_TASK P_TASK PC_INDEX M_MACH_SN M_CLUSTER_N M_LSS_LA PC_DATE_B
PC_DATE_E PC_INT_SECS PC_B_HR_PRCT P_OWNER P_COMM;

Appendix A. Data extraction scripts 227


/* Sorting DS2 by pc_time_b, pc_time_e and m_array_id */
PROC SORT data = DS2;
by pc_time_b pc_time_e m_array_id ;

/* Sorting sas_VPCCH by pc_time_b, pc_time_e and m_array_id */


PROC SORT data=Work.sas_VPCCH;
by pc_time_b pc_time_e m_array_id ;

/* Data Set both is a merger of sas_VPCCH and DS2 */


DATA both;
merge Work.sas_VPCCH(in=in1) Work.DS2(in=in2);
by pc_time_b pc_time_e m_array_id ;

/* Sorting Data Set both by m_array_id */


PROC SORT data=both;
by m_array_id;

/* Data Set thegoods is a merger of DS3 and both */


DATA thegoods;
merge Work.both Work.DS3;
by m_array_id;

/* Manipulating SharkInfo table to get the ESS name */


DATA Work.SharkInfo;
SET Work.SharkInfo;
m_mach_sn = I_VSM_SN;

proc sort data=Work.sas_VMCAP;


by I_VSM_IDX;

proc sort data=Work.sas_VMASI;


by I_VSM_IDX;

DATA Work.SharkInfo;
merge Work.SharkInfo Work.sas_VMCAP;
by I_VSM_IDX;

DATA Work.SharkInfo;
merge Work.SharkInfo Work.sas_VMASI;
by I_VSM_IDX;

/* Drop the unnecessary columns from this table */

228 IBM TotalStorage Expert Customized Reports


DATA Work.SharkInfo;
SET Work.SharkInfo;
keep m_mach_sn /* serial number of the shark
*/
I_SHORT_NAME /* nickname of the shark
*/
I_VSM_IDX /* unique identifier of the shark -integer
*/
Q_VSM_HOSTS /* number of SCSI attached hosts
*/
Q_VSM_FC_HOSTS /* number of FC - attached hosts
*/
D_TASK_DATE /* date that this info was last updated
*/
Q_VSM_DDMS /* total number of DDMs installed */
Q_VSM_TOTAL_CAP /* total capacity of server in Gb */
Q_VSM_FB_ASSIGNED /* total amount of storage connected to hosts
*/
Q_VSM_RAID_GB /* total storage defined as RAID*/
Q_VSM_NONRAID_GB /* total storage defined as independent disks*/
Q_VSM_SCSI_ADAPT /* SCSI Adapters */
Q_VSM_ESCON_ADAPT /* ESCON Adapters */
Q_VSM_SSA_ADAPT /* SSA Adapters*/
Q_VSM_FC_ADAPT; /* FC Adapters */

proc sort data=Work.SharkInfo;


by m_mach_sn;

/* Add the name of the Shark to the overall all set */


DATA Work.thegoods;
merge Work.thegoods Work.SharkInfo;
by m_mach_sn;

/* Sorting Data Set thegood by pc_time_b, m_cluster_n and m_lss_la */


PROC SORT data=thegoods;
by pc_time_b m_cluster_n m_lss_la m_array_id;
QUIT;

/* Data sent in from procs for calculations */


%let cacheval=&total_cache;
%let interval=&interval_lines;
%let last_line=&lastline;

/* Set up the output file */


FILENAME outp 'c:\$DataCrush\DCout.txt' LRECL=5000;

/* Performs the calculation on the performance statistics */

Appendix A. Data extraction scripts 229


DATA Summary;
SET Work.thegoods;
FILE outp;
D_interval=&interval;
last=&last_line;
cache=&cacheval;
iteration=_N_ - 1;
printheading=MOD(iteration,D_interval);

if _N_ = 1 then do;


wrap = 0;
put 'DataCrush v2.0 Report' overprint
'----------------------------------';
put ',';
put 'ESS,Serial,Cache';
put '==========''==========''==========';
put I_SHORT_NAME ',' m_mach_sn ',' cache;
if D_TASK_DATE ^= '.' then do;
/* if assest collection task has been run for this shark */
put ',';
put ',';
put 'Last,,Total,Raid,Non-Raid,SCSI,FC,SCSI,FC,ESCON,SSA';
put
'Updated,DDMs,Gigs,Gigs,Gigs,Hosts,Hosts,Adapters,Adapters,Adapters,Adapter
s';
put
'==========''==========''==========''==========''==========''==========''==
========''==========''==========''==========''==========';
put D_TASK_DATE ',' Q_VSM_DDMS ',' Q_VSM_TOTAL_CAP ','
Q_VSM_RAID_GB ',' Q_VSM_NONRAID_GB ',' Q_VSM_HOSTS ',' Q_VSM_FC_HOSTS ','
Q_VSM_SCSI_ADAPT ',' Q_VSM_FC_ADAPT ',' Q_VSM_ESCON_ADAPT ','
Q_VSM_SSA_ADAPT;
end;
else do;
/* if not the say so */
put ',';
put ',';
put 'To,view,config,info,for,this,ESS';
put 'You,must,collect,asset,data,using,Expert';
end;
end;

/* Save this IO_RATE is the Total I/O Rate. Store this for graphing
later. */
if printheading =(D_interval-1) then do;
IO_RATE = Xiorate + (Xpc_n_io_r + Xpc_n_io_w + Xpc_s_io_r +
Xpc_s_io_w)/PC_INT_SECS;
end;

230 IBM TotalStorage Expert Customized Reports


if printheading = 0 then do;
if do_totals ^= 0 then do;
put
'==========''==========''==========''==========''==========''==========''==
========''==========''==========''==========''==========''==========''=====
=====''==========''==========''==========''==========''==========''========
==''==========''==========''==========''=======';
put 'Total,I/O,Rate'',' Xiorate 7.2;

/* reset totals I/O rate over the interval */


Xiorate = 0;
end;
put ' ';
put ' ';
put ' ';
put 'Date: ' PC_DATE_B ' Start Time: ' PC_TIME_B ' Duration: '
PC_INT_SECS 'seconds';
put ' ';
put ' ';
put ',,,,,***********Ratios (of Total
Requests)*************,,,,,,**********Hit Ratios*********,,,**Lower
Interface Transfer Ratios**,,,*********Disk
Reads***********,,,***********Disk Writes**********';
put ',,,,,Read,Read,Write,Write,Read,NVS,,Read,,Disk to,Seq
Disk,Cache,,Average,Average,,Average,Average';
put 'Cluster,LSS,Rank,I/O Rate,Rank
Util,Normal,Seq,Normal,Seq,Record,Full,Read,Record,Total,Cache,to Cache,to
Disk,Rate,Delay,Transfer,Rate,Delay,Transfer';
put
'==========''==========''==========''==========''==========''==========''==
========''==========''==========''==========''==========''==========''=====
=====''==========''==========''==========''==========''==========''========
==''==========''==========''==========''=======';
end;

D_ranklines=_FREQ_; /* <- _FREQ_ contains the number of LUNS for the


given rank */

/* Determine if the configuration has changed */


if D_ranklines='.' then do;
put ' ';
put' ';
put 'A change in the ESS rank configuration has been detected';
put 'at interval ' pc_time_b '. Further data reductions will';
put 'not be produced. Rerun DataCrush with the start inteval';
put 'as ' pc_time_b ' in order to see data reductions based';
put 'on the new rank configuration.';
STOP; /* Stop execution if the configuration has changed */
end;

Appendix A. Data extraction scripts 231


if wrap=(D_ranklines-1) then do;
totio = Xpc_n_io_r + Xpc_n_io_w + Xpc_s_io_r + Xpc_s_io_w +
(PC_N_IO_R + PC_N_IO_W + PC_S_IO_R + PC_S_IO_W); /* ()-last stats of
interval */
inttm = PC_INT_SECS;
totrds = Xpc_n_io_r + Xpc_s_io_r + (PC_N_IO_R + PC_S_IO_R);
recrd = Xpc_rmr_io + (PC_RMR_IO);
wrreq = PC_IO_WRITE; /* in vpcrk */

/* Check if total I/O is zero */


if totio=0 then do;
rdn=0;
rds=0;
wrn=0;
wrs=0;
rdrec=0;
nvs=0;
tothr=0;
end;
else do;
rdn = (Xpc_n_io_r +(PC_N_IO_R))/totio;
rds = (Xpc_s_io_r +(PC_S_IO_R))/totio;
wrn = (Xpc_n_io_w +(PC_N_IO_W))/totio;
wrs = (Xpc_s_io_w +(PC_S_IO_W))/totio;
rdrec = (Xpc_rmr_io +(PC_RMR_IO))/totio;
nvs = (Xpc_dfw_delay +(PC_DFW_DELAY))/totio;
tothr =((Xpc_n_ch_r + Xpc_n_ch_w + Xpc_s_ch_r +
Xpc_s_ch_w)+(PC_N_CH_R + PC_N_CH_W + PC_S_CH_R + PC_S_CH_W))/totio;
end;

/* Check if the interval time is zero */


if inttm = 0 then do;
iorate = 0;
d2c = 0;
d2cs = 0;
c2d = 0;
wrrate = 0;
rdrate = 0;
end;
else do;
iorate = totio/inttm;
d2c = (Xpc_d2c +(PC_D2C))/inttm;
d2cs = (Xpc_seq_d2c +(PC_SEQ_D2C))/inttm;
c2d = (Xpc_c2d +(PC_C2D))/inttm;
wrrate = PC_IO_WRITE/inttm;
rdrate = PC_IO_READ/inttm;
if wrrate > PC_IOR_AVG then
rdrate = 0;

232 IBM TotalStorage Expert Customized Reports


end;

/* Test if the total reads equal 0 */


if ( Xpc_n_io_r + Xpc_s_io_r +(PC_N_IO_R + PC_S_IO_R) )=0 then
do;
rdhr = 0;
end;
else do;
rdhr =(Xpc_n_ch_r + Xpc_s_ch_r +(PC_N_CH_R +
PC_S_CH_R))/totrds;
end;

/* Test if the total record mode reads equal 0 */


if (Xpc_rmr_io +(PC_RMR_IO)) = 0 then do;
rdrechr = 0;
end;
else do;
rdrechr = (Xpc_rmr_ch+(PC_RMR_CH))/recrd;
end;

/* Test if the total write requests to disk equal 0 */


if PC_IO_WRITE = 0 then do;
wrdelay = 0;
wrtrans = 0;
end;
else do;
wrdelay = PC_RT_WRITE/wrreq;
wrtrans=(( PC_WBT_AVG * 1000)*inttm)/wrreq; /* multiply by
1000 for byte conversion */
end;

/* Test if read requests to disk equals 0 or interval time


equals 0 */
if rdrate = 0 or PC_INT_SECS = 0 then do;
rddelay = 0;
rdtrans = 0;
end;
else do;
rddelay = PC_RT_READ/(rdrate*inttm);
rdtrans=( PC_RBT_AVG * 1000)/rdrate; /* multiply by 1000
for byte conversion */
end;
d2c=floor(d2c);
d2cs=floor(d2cs);
c2d=floor(c2d);
rank_util = Q_SAMP_DEV_UTIL;

/* Print the statistics */

Appendix A. Data extraction scripts 233


PUT M_CLUSTER_N ',' M_LSS_LA ',' M_ARRAY_ID ',' iorate 7.2 ','
rank_util 7.3 ',' rdn 7.3 ',' rds 7.3 ',' wrn 7.3 ',' wrs 7.3 ',' rdrec 7.3
',' nvs 7.3 ',' rdhr 7.3 ',' rdrechr 7.3 ',' tothr 7.3 ',' d2c ',' d2cs ','
c2d ',' rdrate 7.1 ',' rddelay 7.1 ',' rdtrans 7.1 ',' wrrate 7.1 ','
wrdelay 7.1 ',' wrtrans 7.1;

/* accumulate totals I/O rate over the interval */


Xiorate + iorate;

/* This prints the total on the last iteration */


if _N_ = last then do;
put
'==========''==========''==========''==========''==========''==========''==
========''==========''==========''==========''==========''==========''=====
=====''==========''==========''==========''==========''==========''========
==''==========''==========''==========''=======';
put 'Total,I/O,Rate'',' Xiorate 7.2;
end;

do_totals+1; /* <-- says ok to do total now cause have data now */


/* rank lun counter */
wrap = 0;
/* Initializing summations over the interval */
Xpc_n_io_r = 0;
Xpc_n_io_w = 0;
Xpc_n_ch_r = 0;
Xpc_n_ch_w = 0;
Xpc_s_io_r = 0;
Xpc_s_io_w = 0;
Xpc_s_ch_r = 0;
Xpc_s_ch_w = 0;
Xpc_d2c = 0;
Xpc_seq_d2c = 0;
Xpc_c2d = 0;
Xpc_rhr_avg = 0;
Xpc_whr_avg = 0;
Xpc_thr_avg = 0;
Xpc_shr_avg = 0;
Xpc_nhr_avg = 0;
Xpc_rmr_io = 0;
Xpc_rmr_ch = 0;
Xpc_rmrhr_avg = 0;
Xpc_dfw_io = 0;
Xpc_dfw_delay = 0;
Xpc_dfw_avg = 0;
/* Columns from vpcrk */
Xpc_io_write = 0;
Xpc_io_read = 0;
Xpc_rt_read = 0;

234 IBM TotalStorage Expert Customized Reports


Xpc_rt_write = 0;
Xpc_ior_avg = 0;
Xpc_msr_avg = 0;
Xpc_rbt_avg = 0;
Xpc_wbt_avg = 0;
*Xq_samp_dev_util = 0;

end;/* End of calculation loop */


else do;

wrap + 1; /* wrap is used for modulo calculations on the ranks */

/* Computing summations over the interval */


/* Colums from vpcch */
Xpc_n_io_r + PC_N_IO_R;
Xpc_n_io_w + PC_N_IO_W;
Xpc_n_ch_r + PC_N_CH_R;
Xpc_n_ch_w + PC_N_CH_W;
Xpc_s_io_r + PC_S_IO_R;
Xpc_s_io_w + PC_S_IO_W;
Xpc_s_ch_r + PC_S_CH_R;
Xpc_s_ch_w + PC_S_CH_W;
Xpc_d2c + PC_D2C;
Xpc_seq_d2c + PC_SEQ_D2C;
Xpc_c2d + PC_C2D;
Xpc_rhr_avg + PC_RHR_AVG;
Xpc_whr_avg + PC_WHR_AVG;
Xpc_thr_avg + PC_THR_AVG;
Xpc_shr_avg + PC_SHR_AVG;
Xpc_nhr_avg + PC_NHR_AVG;
Xpc_rmr_io + PC_RMR_IO;
Xpc_rmr_ch + PC_RMR_CH;
Xpc_rmrhr_avg + PC_RMRHR_AVG;
Xpc_dfw_io + PC_DFW_IO;
Xpc_dfw_delay + PC_DFW_DELAY;
Xpc_dfw_avg + PC_DFW_AVG;
/* Columns from vpcrk */
Xpc_io_write + PC_IO_WRITE;
Xpc_io_read + PC_IO_READ;
Xpc_rt_read + PC_RT_READ;
Xpc_rt_write + PC_RT_WRITE;
Xpc_ior_avg + PC_IOR_AVG;
Xpc_msr_avg + PC_MSR_AVG;
Xpc_rbt_avg + PC_RBT_AVG;
Xpc_wbt_avg + PC_WBT_AVG;
*Xq_samp_dev_util + Q_SAMP_DEV_UTIL;
end;

/* Sort data set summary */

Appendix A. Data extraction scripts 235


PROC SORT data = Work.Summary;
by m_array_id pc_time_b;

/******************************/
/* Separate the two clusters */
/* For cluster level plotting */
/*****************************/
PROC SQL;
create table ClusterOne as
select * from Summary
where M_CLUSTER_N = 1;

create table ClusterTwo as


select * from Summary
where M_CLUSTER_N = 2;
QUIT;

/* Create the Cluster one and Cluster two */


/* datasets. */
DATA ClusterOne;
SET Work.ClusterOne;
KEEP wrap iorate pc_time_b m_array_id;

DATA ClusterTwo;
SET Work.ClusterTwo;
KEEP wrap iorate pc_time_b m_array_id;

/* Determine how many ranks are in each cluster */


PROC SQL noprint;
select count(distinct M_ARRAY_ID) into :clus1_ranks from
Work.ClusterOne;
select count(distinct M_ARRAY_ID) into :clus2_ranks from
Work.ClusterTwo;
QUIT;

/* Sort both clusters data by time interval */


PROC SORT data = Work.ClusterOne;
by pc_time_b m_array_id;
QUIT;

PROC SORT data=Work.ClusterTwo;


By pc_time_b m_array_id;
QUIT;

/* Calculate the Total iorate for cluster one */


%let clus1ranks=&clus1_ranks;
DATA ClusterOne;
SET Work.ClusterOne;

236 IBM TotalStorage Expert Customized Reports


totalranks = &clus1ranks;

if wrap = 0 then do;


if cnt = (totalranks - 1) then do;
IO_RATE = C1Xiorate + iorate;
C1Xiorate = 0;
cnt = 0;
end;
else do;
C1Xiorate + iorate;
cnt + 1;
end;
end;

/* Calculate the total I/O rate for cluster two */


%let clus2ranks=&clus2_ranks;
DATA ClusterTwo;
SET Work.ClusterTwo;
totalranks = &clus2ranks;

if wrap = 0 then do;


if cnt = (totalranks - 1) then do;
IO_RATE = C1Xiorate + iorate;
C1Xiorate = 0;
cnt = 0;
end;
else do;
C1Xiorate + iorate;
cnt + 1;
end;
end;

/************************************/
/* Prepare the rank listing dataset */
/* This is done to produce the rank */
/* level plot of the iorate */
/************************************/

DATA RankLevel;
MERGE Work.Ranks Work.Summary;
by m_array_id;
KEEP m_array_id pc_time_b iorate;

/************************************/
/* Generate rate the iorate plots */
/* and create the html page exports */
/************************************/

Appendix A. Data extraction scripts 237


* open the html destination to send the file;
FILENAME odsout 'c:\$DataCrush\';
/* Close the listing destination. */
ods listing close;
/* Set the graphics environment. */
goptions reset=all device=gif cback=white colors=(black) border;
symbol1 color=blue;
goptions device=gif;
ods html body = 'plots.html'
path = odsout
newfile = output
contents = 'links.html'
frame = 'DataCrush.html';
title1 height=1 'Total I/O Rate Vs. Time';
footnote1 justify=right 'T_IO ';
/* Plot Total I/O Rate Plot */
PROC GPLOT data=Work.Summary;
symbol i=line;
/* plot the total iorate vs. time */
plot IO_RATE * pc_time_b / grid caxis=black des='T_IO-1'
name='total';
run;
QUIT;

/* Set the graphics environment. */


goptions reset=all device=gif cback=white colors=(black) border;
symbol1 color=blue;
goptions device=gif;
/* Plot total I/O Rate for cluster One */
footnote1 justify=right 'C1_IO ';
PROC GPLOT data=Work.ClusterOne;
symbol i=line;
/* plot the total iorate vs. time for cluster one */
plot IO_RATE * pc_time_b / grid caxis=black des='C1_IO-1'
name='clus_one'; ;
title height=1 'Cluster One -- Total IO Rate Vs. Time';
run;
QUIT;
/* Set the graphics environment. */
goptions reset=all device=gif cback=white colors=(black) border;
symbol1 color=blue;
goptions device=gif;
/* Plot I/O Rates for ranks on Cluster One */
footnote1 justify=right 'C2_IO ';
PROC GPLOT data=Work.ClusterTwo;
symbol i=line;
/* plot the iorate vs. time for each rank in C2*/

238 IBM TotalStorage Expert Customized Reports


plot IO_RATE * pc_time_b / grid caxis=black des='C2_IO-1'
name='clus_two'; ;
title height=1 'Cluster Two -- Total IO Rate Vs. Time';
run;
QUIT;

goptions reset=all;
goptions device=gif;
/* Plot Rank Level I/O Rate Plot */
footnote1 justify=right 'RL_IO ';
PROC GPLOT data=Work.Ranklevel;
symbol i=line;
/* plot the iorate vs. time for each rank */
plot iorate * pc_time_b = m_array_id / grid caxis=black des='RL_IO-1'
name='rank'; ;
title height=1 'Rank Level Plot of IO Rate Vs. Time';
run;
QUIT;
/* Close the HTML destinations. */
ods html close;
/* Open the listing destination. */
ods listing;
goptions reset=all;
FILENAME odsout clear;
QUIT;

Appendix A. Data extraction scripts 239


240 IBM TotalStorage Expert Customized Reports
B

Appendix B. TotalStorage Expert


database table layouts
In this appendix we provide the details of the TotalStorage Expert database
tables. All fields are noted with their corresponding description and keys. Various
tables have an example of the data that can be found in the database, with some
data that has deliberately been obscured for the sake of security. Currently, there
are 103 tables associated with the Expert database.

Table B-1 Table: CUSRS


Column Description

I_USER StorWatch user id [CHAR(20), NOT NULL]

I_PASSWORD Password, stored in an encrypted form [CHAR(32), NOT NULL]

D_PASSWORD_EXPIR Expiration date for password. The password is not valid starting on this
date. (Time portion of timestamp is ignored.) [TIMESTAMP, NOT NULL]

I_USER_NAME Full name of user [CHAR(40), NOT NULL]

I_USER_E_MAIL E-mail address of user [VARCHAR(128)]

D_LAST_UPDATE Date and time of last update for this user [TIMESTAMP, NOT NULL]

I_LAST_UPDATE Userid that performed last update [CHAR(20), NOT NULL]

© Copyright IBM Corp. 2003. All rights reserved. 241


Column Description

F_ADMIN Flag that indicates whether or not this user is an administrator,


Y=yes,N=no [CHAR(1), NOT NULL]

Table B-2 Table: CUAUT


Column Description

I_USER StorWatch user id [CHAR(20), NOT NULL]

I_USER_ROLE Role assigned to this user [CHAR(20), NOT NULL]

Table B-3 Table: CSCHD


Column Description

I_USER Userid that owns this schedule [CHAR(20), NOT NULL]

C_SCHD_TASK_TYPE Type of schedule [CHAR(4), NOT NULL]

I_SCHD_TASK Identifier for the task [CHAR(32), NOT NULL]

C_SCHD_TASK_INTVL interval type [CHAR(3), NOT NULL]

X_SCHD_TASK_NAME Descriptive task name [VARCHAR(128)]

D_SCHD_START Start date and time [TIMESTAMP, NOT NULL]

D_NEXT_SCHD_START Next scheduled run [TIMESTAMP, NOT NULL]

N_EVERY_NTH Period for cyclical schedules [INTEGER]

N_DAYS_ARRAY A string of 32 characters being either Y or N. For day of week schedules,


entries 0-6 correspond to Sun-Sat, for day of month schedules, the
positions correspond to the day of the month, the 32nd position means
“last day of the month”. [CHAR(32)]

X_SCHD_MORE_PARAM Additional parameters [VARCHAR(128)]

I_LAST_SCHD_SEQ Last task sequence number used for this task [INTEGER]

D_SCHD_TASK_EXPIR Date that task expires. time portion of timestamp is ignored. Task will not
run on expiration date. [TIMESTAMP, NOT NULL]

F_PRIVATE Indicates that this task and its output are private, Y=yes, N=no [CHAR(1),
NOT NULL]

242 IBM TotalStorage Expert Customized Reports


Column Description

F_TRACE Indicates that trace should be turned on when this task is run, Y=yes, N=no
[CHAR(1), NOT NULL]

I_CYCLE_LENGTH Cycle length for repeated Schedule - period [INTEGER]

I_WINDOW_LENGTH Window length for repeated Schedule [INTEGER]

Figure B-1 Example of CSCHD

Table B-4 Table: CSCHT


Column Description

I_USER userid that owns this schedule [CHAR(20), NOT NULL]

C_SCHD_TASK_TYPE type of schedule [CHAR(4), NOT NULL]

I_SCHD_TASK identifier for the task [CHAR(32), NOT NULL]

C_SCHD_TASK_INTVL interval type [CHAR(3), NOT NULL]

X_SCHD_TASK_NAME descriptive task name [VARCHAR(128)]

D_SCHD_START start date and time [TIMESTAMP, NOT NULL]

D_NEXT_SCHD_START next scheduled run [TIMESTAMP, NOT NULL]

N_EVERY_NTH period for cyclical schedules [INTEGER]

N_DAYS_ARRAY an string of 32 characters being either Y or N. For day of week schedules,


entries 0-6 correspond to Sun-Sat, for day of month schedules, the
positions correspond to the day of the month, the 32nd position means
"last day of the month”. [CHAR(32)]

X_SCHD_MORE_PARAM additional parameters [VARCHAR(128)]

Appendix B. TotalStorage Expert database table layouts 243


Column Description

I_LAST_SCHD_SEQ last task sequence number used for this task [INTEGER]

D_SCHD_TASK_EXPIR date that task expires. time portion of timestamp is ignored. Task will not
run on expiration date. [TIMESTAMP, NOT NULL]

F_PRIVATE indicates that this task and its output are private, Y=yes, N=no [CHAR(1),
NOT NULL]

F_TRACE indicates that trace should be turned on when this task is run, Y=yes, N=no
[CHAR(1), NOT NULL]

I_CYCLE_LENGTH cycle length for repeated Schedule - period [INTEGER]

I_WINDOW_LENGTH window length for repeated Schedule [INTEGER]

Table B-5 Table: CSCHH


Column Description

I_USER userid that owns this schedule [CHAR(20), NOT NULL]

C_SCHD_TASK_TYPE type of schedule [CHAR(4), NOT NULL]

I_SCHD_TASK identifier for the task [CHAR(32), NOT NULL]

I_SCHH_TASK_SEQ sequence number for task execution [INTEGER, NOT NULL]

C_SCHD_TASK_STATUS status of task execution, AC=active, IN=incactive, AB=aborted[CHAR(2),


NOT NULL]

X_RPT_FILE_NAME report file name [CHAR(18)]

D_SCHD_TASK_START date and time that task started to run [TIMESTAMP]

D_SCHD_TASK_COMPLT date and time that task finished running [TIMESTAMP]

X_SCHD_MORE_PARAM additional parameters [VARCHAR(128)]

X_SCHD_TASK_NAME description of this task when it was run [VARCHAR(128)]

F_PRIVATE indicates that this task and its output are private, Y=yes, N=no [CHAR(1),
NOT NULL]

F_TRACE indicates that trace should be turned on when this task is run,
Y=yes,N=no [CHAR(1), NOT NULL]

244 IBM TotalStorage Expert Customized Reports


Figure B-2 Example of CSCHH

Table B-6 Table: CNODE


Column Description

I_IP_ADDR full IP address in dotted decimal form, e.g. 9.113.42.250 [CHAR(30),


NOT NULL]

I_NODE_NAME fully qualified node name, e.g. douglas.sanjose.ibm.com® [CHAR(224),


NOT NULL]

I_NODE_ENTITY internally generated node identifier [INTEGER, NOT NULL]

Figure B-3 Example of CNODE

Table B-7 Table: CNGRP


Column Description

I_NODE_GROUP Identifier of node group [CHAR(16), NOT NULL]

X_NODE_GROUP_DESC Description of node group [VARCHAR(128), NOT NULL]

D_LAST_UPDATE Timestamp of last update to this definition [TIMESTAMP, NOT NULL]

I_LAST_UPDATE User who last updated definition [CHAR(20), NOT NULL]

Appendix B. TotalStorage Expert database table layouts 245


Table B-8 Table: CNGDI
Column Description

I_NODE_GROUP Identifier of node group [CHAR(16), NOT NULL]

I_IP_ADDR Address pattern in node group [CHAR(30), NOT NULL]

X_COMMENT Descriptive comment for this pattern [VARCHAR(128)]

Table B-9 Table: CSIPA


Column Description

I_IP_ADDR Full IP address in dotted decimal notation or pattern with ranges and *, e.g.
9.113.42.250 [CHAR(30), NOT NULL]

X_COMMENT Descriptive comment for this pattern [VARCHAR(128)]

Table B-10 Table: CSSTY


Column Description

C_SERVICE_TYPE Identifier of service, for example, AS, KS, and so on [CHAR(4), NOT NULL]

N_PORT Port number in scope for service [INTEGER, NOT NULL]

Table B-11 Table: CSRVH


Column Description

I_NODE_ENTITY Internally generated node identifier, joins with CNODE [INTEGER,NOT


NULL]

C_SERVICE_TYPE Identifier of the discovered service type, for example, KS, AS, and so on
[CHAR(4),NOT NULL]

I_SCHH_TASK_SEQ Sequence number of task that discovered this service [INTEGER, NOT
NULL]

N_PORT Port number where the service was discovered [INTEGER, NOTNULL]

C_SERV_TYPE_STATUS Status indicator for service, active=AC, inactive=IN [CHAR(2), NOTNULL]

I_SERVICE_VERSION Version indication, e.g. 1.1.0 [CHAR(10), NOT NULL]

C_PROTOCOL Protocol used by service, HTTP=H, HTTPS=S [CHAR(1), NOT NULL]

246 IBM TotalStorage Expert Customized Reports


Column Description

C_SERVICE_SUBTYPE Subtype of service [CHAR(4)]

Table B-12 Table: CGNRH


Column Description

I_NODE_ENTITY Internally generated node identifier [INTEGER, NOT NULL]

I_NODE_GROUP Name of node group [CHAR(16), NOT NULL]

I_SCHH_TASK_SEQ Sequence number of task that discovered this service [INTEGER, NOT
NULL]

Table B-13 Table: CIGIN


Column Description

I_INDEX_NAME Identifier for the index [CHAR(32), NOT NULL]

N_LAST_USED_INDEX Last number used for this index. assumed to be zero if row is
absent.[INTEGER, NOT NULL]

Table B-14 Table: CMSGS


Column Description

I_MSGID identifier of the message, e.g. GSW1000I [CHAR(9), NOT NULL]

C_SEVERITY severity of the message, S=severe, E=error, W=warning,


I=informational[CHAR(1), NOT NULL]

D_ISSUED date and time message was issued [TIMESTAMP, NOT NULL]

C_MSGTYPE type of message, L=log, T=trace, A=alert [CHAR(1), NOT NULL]

I_COMPONENT component that issued the message, for example, CORE, VSX, RPTR
[CHAR(4),NOT NULL]

I_SCHH_TASK_SEQ sequence number of scheduled task that was running to produce record,
null if not produced while a scheduled task was running [INTEGER]

I_THREADID identifier of execution thread that produced this message


[VARCHAR(128)]

Appendix B. TotalStorage Expert database table layouts 247


Column Description

X_MESSAGE text of the message [VARCHAR(1024), NOT NULL]

EVENTID id of event [CHAR(25)]

CORRELATEKEY value of correlated key [VARCHAR(100)]

Figure B-4 Example of CMSGS

Table B-15 Table: CMSAU


Column Description

I_MSGID identifier of the message, e.g. GSW1000I [CHAR(9), NOT NULL]

D_ISSUED date and time message was issued [TIMESTAMP, NOT NULL]

C_AUTH_FUNC authority required to process alert [CHAR(4), NOT NULL]

Table B-16 Table: CDSTT


Column Description

I_SCHH_TASK_SEQ sequence number of discovery task [INTEGER, NOT NULL]

N_NODES_TRIED number of nodes contacted during discovery [INTEGER, NOT NULL]

N_SERVICES_PER number of services tried at each node [INTEGER, NOT NULL]

N_ACTIVE_NODES number of active nodes found [INTEGER, NOT NULL]

N_ACTIVE_SERVICES number of active services found [INTEGER, NOT NULL]

Table B-17 Table: CDSSD


Column Description

I_SCHH_TASK_SEQ sequence number of discovery task [INTEGER, NOT NULL]

248 IBM TotalStorage Expert Customized Reports


Column Description

C_SERVICE_TYPE type of service, for example, AS, KS, and so on [CHAR(4), NOT NULL]

C_SERV_TYPE_STATUS status indicator for service, active=AC, inactive=IN [CHAR(2), NOT NULL]

N_FOUND number of services of the given type in the given status discovered during
the indicated task [INTEGER, NOT NULL]

Table B-18 Table: CUPRF


Column Description

I_USER StorWatch user id [CHAR(20), NOT NULL]

I_PRF_KEY key for profile data [CHAR(32), NOT NULL]

X_PROFILE_DATA profile data for user [VARCHAR(1024)]

Table B-19 Table: CURLE


Column Description

I_USER_ROLE Role name [CHAR(20), NOT NULL]

X_ROLE_DESC description of the role [VARCHAR(128), NOT NULL]

D_LAST_UPDATE date and time of last update [TIMESTAMP, NOT NULL]

I_LAST_UPDATE userid that performed last update [CHAR(20), NOT NULL]

Table B-20 Table: CURTA


Column Description

I_USER_ROLE Role name [CHAR(20), NOT NULL]

C_AUTH_FUNC authority belonging to this role [CHAR(4), NOT NULL]

Table B-21 Table: CUSRV


Column Description

C_SERVICE_TYPE identifier of service, for example, AS, KS, and so on [CHAR(4), NOT NULL]

Appendix B. TotalStorage Expert database table layouts 249


Column Description

I_META_TAG value in the IBM product meta tag which will indicate that a discovered
service is of this type [VARCHAR(128), NOT NULL]

X_DISPLAY_NAME name for this service in user-interfaces [VARCHAR(128), NOT NULL]

Table B-22 Table: CUSPT


Column Description

C_SERVICE_TYPE identifier of service, for example, AS, KS, and so on [CHAR(4), NOT NULL]

N_PORT port number this service might be listening on [INTEGER, NOT NULL]

X_DISPLAY_NAME null

Table B-23 Table: CSNMP


Column Description

I_SNMP_IP_ADDR address of a SNMP manager [CHAR(30), NOT NULL]

N_SNMP_PORT port number the manager runs on, default port is 162 [INTEGER, NOT
NULL]

Table B-24 Table: CSWCS


Column Description

I_CFG_KEY key for a piece of configuration data [CHAR(32), NOT NULL]

X_CFG_DATA the configuration data associated with I_CFG_KEY [VARCHAR(1024),


NOT NULL]

Figure B-5 Example of CSWCS

250 IBM TotalStorage Expert Customized Reports


Table B-25 Table: CPARM
Column Description

I_PRM_KEY key for a parameter [CHAR(32), NOT NULL]

C_PRM_COMP component to which parameter is applicable. "ALL" means applicable to


any/all components. [CHAR(6), NOT NULL]

I_PRM_SCOPE additional specification that may narrow the applicability. "SYSTEM"


means no additional narrowing. [CHAR(22), NOT NULL]

X_PRM_VALUE the data value associated with the key [VARCHAR(1024), NOT NULL]

Figure B-6 Example of CPARM

Table B-26 Table: COPEVENT


Column Description

EVENTID type of Core event [CHAR(30), NOT NULL]

TOALERT "Y" for send an alert, "N" for not to alert [CHAR(1)]

SUPPRESSINTERVAL time interval to issue an SNMP alert in minutes [INTEGER]

Table B-27 Table: CTHRESHOLD


Column Description

METRIC key for a parameter [CHAR(40), NOT NULL]

TYPE U (upper) or L (lower) [CHAR(1) WITH DEFAULT 'U']

CVALUE critical value [CHAR (20)]

WVALUE warning value [CHAR (20)]

ENABLED "Y" or "N" value [CHAR(1) WITH DEFAULT 'N']

TOALERT "C" for critical, "Y" for both warning and critical, "N" for not to alert
[CHAR(1)]

SUPPRESSINTERVAL time interval to issue an snmp alert by minutes [INTEGER]

Appendix B. TotalStorage Expert database table layouts 251


Table B-28 Table: VTSEQ
Column Description

I_TASK_SEQ_IDX Sequence number of the asset/capacity collection task. [INTEGER, NOT


NULL]

D_TASK_DATE The date this asset/capacity task ran. [DATE, NOT NULL]

T_TASK_TIME The time this asset/capacity task started to run. [TIME, NOT NULL]

Table B-29 Table: VMPDX


Column Description

I_VSM_IDX An index for each unique storage server, generated when the storage
server is first discovered by StorWatch. This index is used in many tables
related to asset/capacity data. [INTEGER, NOT NULL]

I_VSM_SN The serial number of the storage server. This field is filled in when the
storage server is first discovered by StorWatch. [CHAR(16), NOT NULL]

I_VSM_TYPE The higher level identifier for the storage server product, for example2105.
This field is filled in when the storage server is first discovered by
StorWatch. [CHAR(16)]

I_VSM_MODEL_NO The model number for the storage server, for example E10. This field is
filled in when the storage server is first discovered by
StorWatch.[CHAR(10)]

I_SHORT_NAME An alias name provided by an authorized end user for this storage server.
This field is empty until a user provides a name through the Web user
interface. [CHAR(16)]

I_VSM_MANFR_DATE The date of manufacture for this storage server. This field is filled in when
the ESS Expert first successfully collects asset and capacity data from the
storage server. [CHAR(32)]

I_TASK_SEQ_FIRST A numeric identifier corresponding to the date and time when the ESS
Expert first successfully collects asset and capacity data from the storage
server. [INTEGER]

D_TASK_DATE_FIRST The date when the ESS Expert first successfully collected asset and
capacity data from the storage server. [DATE]

T_TASK_TIME_FIRST The time of day when the ESS Expert first successfully collected asset and
capacity data from the storage server. [TIME]

252 IBM TotalStorage Expert Customized Reports


Column Description

I_TASK_SEQ_LATEST A numeric identifier corresponding to the date and time when the ESS
Expert most recently collected asset and capacity data from the storage
server. [INTEGER]

D_TASK_DATE_LATEST The date when the ESS Expert most recently collected asset and capacity
data from the storage server. [DATE]

T_TASK_TIME_LATEST The time when the ESS Expert most recently collected asset and capacity
data from the storage server. [TIME]

I_DU_THRESHOLD The percentage (0-100) above which a disk utilization value is reported as
an exception. If this field is NULL, a default value is used by data
preparation. [SMALLINT]

I_AVH_THRESHOLD The integral value for average holding time threshold. A holding time below
this threshold is displayed as an exception. If this field is NULL, a default
value is used by data preparation. [SMALLINT]

I_VSM_FC_WWNN The World-Wide Node-Name for this storage server, where this storage
server is attached to a Fibre Channel fabric. Otherwise this field is blank.
[CHAR(16), NOT NULL]

I_FC_ACCESS_MODE The Access mode for this storage server, 1 if Access-any, 0 if


Access-restricted, else 9 if not applicable. [SMALLINT NOT NULL]

Figure B-7 VMPDX Table example data

Table B-30 Table: VMASI


Column Description

I_VSM_IDX An internally generated identifier (index) for a storage server. See VMPDX
for storage server data associated with this index. [INTEGER,NOT NULL]

Appendix B. TotalStorage Expert database table layouts 253


Column Description

I_TASK_SEQ_FIRST The task sequence index corresponding to the date and time when the
ESS Expert first detected this change in the attributes of the storage
server. [INTEGER, NOT NULL]

Q_TOT_CLU_NO Total number of cluster controllers in this storage server. [INTEGER]

Q_EXPN_RACKS Total number of expansion racks for this storage server. [INTEGER]

D_TASK_DATE The date when a change in the attributes were first detected by the ESS
Expert. [DATE, NOT NULL]

T_TASK_TIME The time when a change in the attributes were first detected by the ESS
Expert. [TIME, NOT NULL]

Table B-31 Table: VMASE


Column Description

I_VSM_IDX An internally generated identifier (index) for a storage server. See VMPDX
for storage server data associated with this index. [INTEGER,NOT NULL]

I_TASK_SEQ_FIRST The task sequence index corresponding to the date and time when the
ESS Expert first detected this change in the attributes of the storage
server racks. [INTEGER, NOT NULL]

I_VSM_RACK_SN Serial number for this storage server rack. [CHAR(16), NOT NULL]

I_VSM_RACK_ID The type and model number for this storage server rack. [CHAR(16)]

D_TASK_DATE The date when a change in the attributes were first detected by the ESS
Expert. [DATE, NOT NULL]

T_TASK_TIME The time when a change in the attributes were first detected by the ESS
Expert. [TIME, NOT NULL]

Table B-32 Table: VCLUA


Column Description

I_VSM_IDX An internally generated identifier (index) for a storage server. See VMPDX
for storage server data associated with this index. [INTEGER,NOT NULL]

I_TASK_SEQ_FIRST The task sequence index corresponding to the date and time when the
ESS Expert first detected this change in the attributes of the
clusters.[INTEGER, NOT NULL]

254 IBM TotalStorage Expert Customized Reports


Column Description

I_CLU_NO An identifier assigned to this cluster controller (also referred to simply as


the cluster number). [INTEGER, NOT NULL]

I_CLU_SN Serial number of this cluster controller. [CHAR(16)]

I_CLU_MODEL_NO Model number of this cluster controller. [CHAR(16)]

I_CLU_IP The IP address of this cluster controller. [CHAR(254)]

I_CLU_PORT_NO The value for the port number assigned to the ESS Specialist installed on
the cluster controller. [CHAR(5)]

D_TASK_DATE The date when a change in the attributes were first detected by the ESS
Expert. [DATE]

T_TASK_TIME The time when a change in the attributes were first detected by the ESS
Expert. [TIME]

I_CLU_USERID The userid assigned to the ESS Specialist installed on the cluster
controller. [CHAR(20)]

I_CLU_PASSWORD The password for the userid assigned to the ESS Specialist installed on
the cluster controller. (encrypted) [VARCHAR(254)]

I_CLU_USERID64 The userid assigned to the ESS Specialist installed on the cluster
controller. [CHAR(64)]

Figure B-8 Example of VCLUA

Table B-33 Table: VCLUL


Column Description

I_VSM_IDX An internally generated identifier (index) for a storage server. See VMPDX
for storage server data associated with this index. [INTEGER,NOT NULL]

I_TASK_SEQ_FIRST The task sequence index corresponding to the date and time when the
ESS Expert first detected this change in the attributes of the storage
server. [INTEGER, NOT NULL]

I_CLU_NO The cluster number (identifier for the cluster) [INTEGER, NOT NULL]

Appendix B. TotalStorage Expert database table layouts 255


Column Description

I_CLU_LIC_SRC A numeric identifier that represents a licensed internal code level such as
"active", "previous", "next", "cdrom", "diskette" and "unknown". [INTEGER,
NOT NULL]

I_CLU_LIC_VRSN Version, release and modification level of the licensed internal


code.[CHAR(16)]

I_CLU_LIC_ACTVDAT Activation date for the associated level of licensed internal


code.[CHAR(32)]

D_TASK_DATE The date when a change in the attributes were first detected by the ESS
Expert. [DATE, NOT NULL]

T_TASK_TIME The time when a change in the attributes were first detected by the ESS
Expert. [TIME, NOT NULL]

Table B-34 Table: VMCAP


Column Description

I_VSM_IDX An internally generated identifier (index) for a storage server. See VMPDX
for storage server data associated with this index. [INTEGER, NOT NULL]

I_TASK_SEQ_IDX Sequence number of the asset/capacity collection task that read and
summarized this data from the storage server. [INTEGER, NOT NULL]

Q_VSM_HOSTS Number of SCSI-attached hosts identified and/or connected to this storage


server. [INTEGER]

Q_VSM_CUIS Number of logical control units defined in this storage server [INTEGER]

Q_VSM_TOTAL_CAP Total amount of capacity (counted as unformatted bytes) in this storage


server, in gigabytes [INTEGER]

Q_VSM_RAID_GB Amount of storage defined as RAID storage, in gigabytes [INTEGER]

Q_VSM_NONRAID_GB Amount of storage defined as independent disks, in gigabytes [INTEGER]

Q_VSM_UNDEFND_GB Amount of storage in this storage server that has not been defined as
either RAID or independent disks, in gigabytes [INTEGER]

Q_VSM_FB_TOT_GB Amount of storage formatted as fixed block storage, in gigabytes


[INTEGER]

Q_VSM_FB_ASSIGNED Amount of fixed block storage that is currently assigned (connected to)
hosts, in gigabytes [INTEGER]

256 IBM TotalStorage Expert Customized Reports


Column Description

Q_VSM_FB_PENDING Amount of fixed block storage that is defined as volumes, but not attached
to any host, in gigabytes [INTEGER]

Q_VSM_FB_FREE Amount of fixed block storage that is available for fixed block volume
definition, in gigabytes [INTEGER]

Q_VSM_FB_RAID Amount of fixed block storage that is defined as RAID storage, in gigabytes
[INTEGER]

Q_VSM_CKD_TOT_GB Amount of storage formatted as logical control units, in gigabytes


[INTEGER]

Q_VSM_CKD_ASSIGNED Amount of logical control unit storage that has S/390 volumes assigned, in
gigabytes [INTEGER]

Q_VSM_CKD_FREE Amount of logical control unit storage that is available for S/390 volume
definition, in gigabytes [INTEGER]

IQ_VSM_CKD_RAID Amount of logical control unit storage that is defined as RAID storage, in
gigabytes [INTEGER]

Q_VSM_UNFORMATD_GB Amount of undefined storage (Q_VSM_UNDEFND_GB) plus amount of


free disk space in "independent disk" disk groups, in gigabytes [INTEGER]

Q_VSM_SCSI_ADAPT Total number of SCSI adapters installed in this storage server.[INTEGER]

Q_VSM_ESCON_ADAPT Total number of ESCON adapters installed in this storage


server.[INTEGER]

Q_VSM_SSA_ADAPT Total number of SSA adapters installed in this storage server.[INTEGER]

Q_VSM_RAID_GRPS Number of disk groups in this storage server defined as RAID storage
[INTEGER]

Q_VSM_NONRAID_GRPS Number of disk groups in this storage server defined as independent disk
groups [INTEGER]

Q_VSM_FREE_RANKS Number of disk groups in this storage server that have not yet been defined
as either RAID or independent disk type [INTEGER]

Q_VSM_DDMS Total number of DDMs that are installed in this storage server [INTEGER]

D_TASK_DATE The date when the ESS Expert most recently collected asset and capacity
data from the storage server. [DATE]

T_TASK_TIME The time when the ESS Expert most recently collected asset and capacity
data from the storage server. [TIME]

Q_VSM_FC_HOSTS Number of FC-attached hosts connected to this storage server.[INTEGER


NOT NULL DEAFULT 0]

Appendix B. TotalStorage Expert database table layouts 257


Column Description

Q_VSM_FC_ADAPT Total number of FC adapters installed in this storage server.[SMALLINT


NOT NULL DEFAULT 0]

Q_VSM_FC_FICON Number of FICON™-capable host adapters. [SMALLINT NOT NULL


DEFAULT 0]

Table B-35 Table: VMDDM


Column Description

I_VSM_IDX An internally generated identifier (index) for a storage server. See VMPDX
for storage server data associated with this index.[INTEGER, NOT NULL]

I_DDM_TYPE An internally generated numeric value that uniquely identifies each type of
DDM based on capacity and revolutions per minute (RPMs) [SMALLINT,
NOT NULL]

I_TASK_SEQ_FIRST The task sequence index corresponding to the date and time when the
ESS Expert first detected a change in the number of DDMs of a certain
type [INTEGER, NOT NULL]

I_DDM_RPM the number of revolutions per minute (RPMs) for this type of DDM
[SMALLINT]

Q_DDM_COUNT Total number of DDMs of this type (i.e., a fixed capacity size and RPM
speed), valid for the dates and times in the fields below [INTEGER]

Q_DDM_GB_CAPACITY The capacity for this type of DDM, in gigabytes [CHAR(8)]

D_TASK_DATE_FIRST The date the number (count) of DDMs of this type changed [DATE]

T_TASK_TIME_FIRST The time the number (count) of DDMs of this type changed [TIME]

I_TASK_SEQ_LATEST The task sequence index associated with the date and time of this change
[INTEGER]

D_TASK_DATE_LATEST The date the number (count) of DDMs of this type was most recently
compared to the current count and found to be the same. [DATE]

T_TASK_TIME_LATEST The time the number (count) of DDMs of this type was most recently
compared to the current count and found to be the same. [TIME]

258 IBM TotalStorage Expert Customized Reports


Table B-36 Table: VCLUC
Column Description

I_VSM_IDX An internally generated identifier (index) for a storage server. See VMPDX
for storage server data associated with this index. [INTEGER, NOT NULL]

I_CLU_NO The cluster number (identifier for the cluster) [INTEGER, NOT NULL]

I_TASK_SEQ_FIRST The task sequence index corresponding to the date and time when the
ESS Expert first detected this change in the attributes of a cluster.
[INTEGER, NOT NULL]

Q_CLU_RAM Total amount of installed memory (RAM) for a cluster, as of the date and
time in this row, in megabytes [INTEGER]

Q_CLU_NVS Total amount of installed Non Volatile Storage (NVS) for a cluster, as of the
date and time in this row, in megabytes. [INTEGER]

Q_CLU_PS Total amount of installed PowerStore (PS) memory for a cluster, as of the
date and time in this row, in megabytes. [INTEGER]

D_TASK_DATE The date when a change in the attributes were first detected by the ESS
Expert. [DATE]

T_TASK_TIME The time when a change in the attributes were first detected by the ESS
Expert. [TIME]

Table B-37 Table: VHSTC


Column Description

I_VSM_IDX An internally generated identifier (index) for a storage server. See VMPDX
for storage server data associated with this index. [INTEGER, NOT NULL]

I_TASK_SEQ_IDX Sequence number of the asset/capacity collection task that read and
summarized this data from the storage server. [INTEGER, NOT NULL]

I_HOST_IDX An internally generated identifier (index) for an Open System host


connected to one or more storage servers. See VHSTX for host data
associated with this index. [INTEGER, NOT NULL]

Q_HOST_ASSIGN_CAP Amount of fixed block capacity assigned to this host in the given storage
server, in gigabytes [INTEGER]

Q_HOST_ASSIGN_SHR Amount of fixed block capacity assigned to this host in the given storage
server that is also assigned to at least one other host, in gigabytes
[INTEGER]

Q_HOST_VOLS Total number of volumes connected to this host within this storage server.
[INTEGER]

Appendix B. TotalStorage Expert database table layouts 259


Column Description

Q_HOST_VOLS_SHR Among the volumes connected to this host, this is the number of these
volumes connected to more than one SCSI-attached host. [INTERGER
NOT NULL DEFAULT 0]

Q_HOST_VOLS_DAISY Total number of volumes where this host and another host are connected
to the volume on the same port, with different initiators. [SMALLINT]

D_TASK_DATE The date when the ESS Expert most recently collected asset and capacity
data from the storage server. [DATE]

T_TASK_TIME The time when the ESS Expert most recently collected asset and capacity
data from the storage server. [TIME]

Q_HOST_FC_VOL_SHR Among the volumes connected to this host, this is the number of these
volumes connected to more than one FC-attached host. [INTERGER NOT
NULL DEFAULT 0]

Table B-38 Table: VHSTX


Column Description

I_HOST_IDX An internally generated identifier (index) for an Open System host


connected to one or more storage servers. [INTEGER, NOT NULL]

I_HOST_NAME The name of the host, as defined to the ESS Specialist [CHAR(254), NOT
NULL]

I_HOST_HW_TYPE Internally defined numeric indicator for the type of operating system of the
host [SMALLINT]

I_HOST_IP the IP address of the host (if available), otherwise zero [CHAR(254)]

I_TASK_SEQ_FIRST The task sequence index corresponding to the date and time when the
ESS Expert first detected this change in the attributes of a host.
[INTEGER, NOT NULL]

D_TASK_DATE The date when a change in the host attributes were first detected by the
ESS Expert. [DATE]

T_TASK_TIME The time when a change in the host attributes were first detected by the
ESS Expert. [TIME]

I_HOST_ATTACH Flag for a attached host connected to one or more storage servers, 2 if FC
attached, 1 if SCSI attached. [INTEGER, NOT NULL DEFAULT 1]

I_HOST_FC_WWPN The World-Wide Port-Name for this host on the Fibre Channel fabric.
[CHAR(16), NOT NULL DEFAULT]

260 IBM TotalStorage Expert Customized Reports


Column Description

I_HOST_FC_CAPBL Fibre Channel capability of this host system, 0 if ReportLUNS, 1


WalkTheBus, else if not applicable. [SMALLINT, NOT NULL DEFAULT 9]

Table B-39 Table: VHSTV


Column Description

I_VSM_IDX An internally generated identifier (index) for a storage server. See VMPDX
for storage server data associated with this index. [INTEGER, NOT NULL]

I_TASK_SEQ_IDX Sequence number of the asset/capacity collection task that read and
summarized this data from the storage server. [INTEGER, NOT NULL]

I_HOST_IDX An internally generated identifier (index) for an Open System host


connected to one or more storage servers. See VHSTX for host data
associated with this index. [INTEGER, NOT NULL]

I_VOL_IDX An internally generated identifier (index) for a fixed block, logical volume
assigned to at least one Open System host. See VVOLX for volume data
associated with this index. [INTEGER, NOT NULL]

Table B-40 Table: VVOLX


Column Description

I_VSM_IDX An internally generated identifier (index) for a storage server. See VMPDX
for storage server data associated with this index. [INTEGER, NOT NULL]

I_VOL_IDX An internally generated identifier (index) for a fixed block, logical volume
assigned to at least one Open System host. [INTEGER, NOT NULL]

I_TASK_SEQ_FIRST The task sequence index corresponding to the date and time when the
ESS Expert first detected this change in the attributes of a fixed block
volume. [INTEGER, NOT NULL]

I_VOL_SN serial number of the fixed block volume (LUN serial number) [CHAR(16),
NOT NULL]

Q_VOL_SIZE capacity of the fixed block volume, in gigabytes*100 units [INTEGER]

I_VOL_TYPE_ID type of the fixed block volume (as defined by the ESS Specialist)
[CHAR(16)]

I_VOL_STOR_TYPE Value is 1 if volume resides on RAID storage; value is 0 otherwise


[SMALLINT]

Appendix B. TotalStorage Expert database table layouts 261


Column Description

I_VOL_CLU_NUM Cluster number for this fixed block volume [SMALLINT]

I_VOL_SLOT_NUM Card number of adapter associated with this fixed block volume
[SMALLINT]

I_VOL_SSALOOP_ID SSA Loop Identifier (e.g., A or B) associated with the disk group containing
this fixed block volume [CHAR(1)]

I_VOL_DISK_GROUP Identifying number of the disk group containing this fixed block volume
[SMALLINT]

I_VOL_DISK_NUM Disk number of the disk group, if an independent disk, 0 otherwise


[SMALLINT]

I_VOL_NUM Identifying number of this fixed block volume (and lowest level identifier of
the volume) [SMALLINT]

Q_VOL_TOTAL_HOSTS Number of SCSI-attached hosts connected to this volume [SMALLINT]

Q_VOL_DAISY_HOSTS Number of SCSI-attached hosts connected to this volume through


initiators sharing a common port [SMALLINT]

D_TASK_DATE The date when a change in the attributes were first detected by the ESS
Expert. [DATE]

T_TASK_TIME The time when a change in the attributes were first detected by the ESS
Expert. [TIME]

Q_VOL_SCSI_HOSTS Number of SCSI-attached hosts connected to this volume [SMALLINT,


NOT NULL DEFAULT]

Q_VOL_FC_HOSTS Number of FC-attached hosts connected to this volume [SMALLINT, NOT


NULL DEFAULT]

Table B-41 Table: VCUIC


Column Description

I_VSM_IDX An internally generated identifier (index) for a storage server. See VMPDX
for storage server data associated with this index. [INTEGER, NOT NULL]

I_CUI_IMAGE_NUM The unique identifying number for this logical control unit in the storage
server [INTEGER, NOT NULL]

I_TASK_SEQ_IDX Sequence number of the asset/capacity collection task that read and
summarized this data from the storage server. [INTEGER, NOT NULL]

I_CUI_SSID Storage Subsystem ID for this logical control unit [CHAR(4)]

262 IBM TotalStorage Expert Customized Reports


Column Description

I_CUI_EMULATION The emulation type of this logical control unit (e.g., unique integer
associated with 3990-6, 3990-3, 3990-3 TPF) [SMALLINT]

I_CUI_PAV_ENABLED Value is 1 if parallel access volume addressing is enabled; value is 0


otherwise [SMALLINT]

Q_CUI_TOTAL_GB Total capacity in the logical control unit, in gigabytes [INTEGER]

Q_CUI_TOTAL_CYL Total capacity in the logical control unit, in cylinders [INTEGER]

Q_CUI_RAID_CYL Number of RAID cylinders in the logical control unit [INTEGER]

Q_CUI_ASSIGNED_CYL Assigned capacity (space assigned to S/390 volumes) in the logical control
unit, in cylinders [INTEGER]

Q_CUI_AVAIL_CYLS Free capacity in the logical control unit, in cylinders [INTEGER]

Q_CUI_ASSIGNED_GB Assigned capacity (space assigned to S/390 volumes) in the logical control
unit, in gigabytes [INTEGER]

Q_CUI_AVAIL_GB Free capacity in the logical control unit, in gigabytes [INTEGER]

D_TASK_DATE The date when the ESS Expert most recently collected asset and capacity
data from the storage server. [DATE]

T_TASK_TIME The time when the ESS Expert most recently collected asset and capacity
data from the storage server. [TIME]

Table B-42 Table: VCUIV


Column Description

I_VSM_IDX An internally generated identifier (index) for a storage server. See VMPDX
for storage server data associated with this index. [INTEGER, NOT NULL]

I_CUI_IMAGE_NUM The unique identifying number for this logical control unit in the storage
server [INTEGER, NOT NULL]

I_CUI_VOL_TYPE One type of S/390 volume allocated in the storage server (for example,
3390-2 or 3390-3) [CHAR(8), NOT NULL]

I_TASK_SEQ_IDX Sequence number of the asset/capacity collection task that read and
summarized this data from the storage server. [INTEGER, NOT NULL]

Q_CUI_TOT_VOLS Number of S/390 volumes of this type in this logical control unit [INTEGER]

Q_CUI_TOT_CYLS Total cylinders for volumes of this type in the logical control unit [INTEGER]

Appendix B. TotalStorage Expert database table layouts 263


Column Description

Q_CUI_RAID_CYLS Total RAID cylinders for volumes of this type in the logical control unit
[INTEGER]

Q_CUI_NONRAID_CYLS Total non-RAID cylinders for volumes of this type in the logical control unit
[INTEGER]

Table B-43 Table: VCMTOP1


Column Description

I_VSM_IDX An internally generated identifier (index) for a storage server. See VMPDX
for storage server data associated with this index. [INTEGER, NOT NULL]

I_SHORT_NAME An alias name provided by an authorized end user for this storage server
(optional) [CHAR(16)]

I_VSM_SN The serial number of the storage server [CHAR(16), NOT NULL]

I_VSM_TYPE The higher level identifier for the storage server product, for example 2105
for the IBM Enterprise Storage Server 2105 [CHAR(16)]

Q_VSM_RAID_GB Amount of storage defined as RAID storage, in gigabytes [INTEGER]

Q_VSM_NONRAID_GB Amount of storage defined as independent disks, in gigabytes [INTEGER]

Q_VSM_UNDEFND_GB Amount of storage in this storage serer that has not been defined as either
RAID or independent disks, in gigabytes [INTEGER]

Q_VSM_TOTAL_CAP Total amount of capacity (counted as unformatted bytes) in this storage


server, in gigabytes [INTEGER]

Q_VSM_FB_TOT_GB Amount of storage formatted as fixed block storage, in gigabytes


[INTEGER]

Q_VSM_CKD_TOT_GB Amount of storage formatted as logical control units, in gigabytes


[INTEGER]

Q_VSM_UNFORMATD_GB Amount of undefined storage (Q_VSM_UNDEFND_GB) plus amount of


free disk space in "independent disk" disk groups, in gigabytes [INTEGER]

Q_VSM_CUIS Number of logical control units defined in this storage server [INTEGER]

Q_VSM_HOSTS Number of SCSI-attached hosts identified and/or connected to this storage


server. [INTEGER]

Q_VSM_FB_ASSIGNED Amount of fixed block storage that is currently assigned (connected to)
hosts, in gigabytes [INTEGER]

264 IBM TotalStorage Expert Customized Reports


Column Description

D_TASK_DATE The date when the ESS Expert most recently collected asset and capacity
data from the storage server. [DATE]

T_TASK_TIME The time when the ESS Expert most recently collected asset and capacity
data from the storage server. [TIME]

Q_VSM_FC_HOSTS Number of FC-attached hosts connected to this storage server. [INTEGER


NOT NULL DEFAULT 0]

Q_S390_VOLS Total number of S/390 volumes (LCU devices) defined in the storage
server. [INTEGER NOT NULL DEFAULT 0]

Q_OS_VOLS Total number of open system volumes in the storage server (each volume
must be assigned to a host). [INTEGER NOT NULL DEFAULT 0]

Table B-44 Table: VCMTOP2


Column Description

I_VSM_IDX An internally generated identifier (index) for a storage server. See VMPDX
for storage server data associated with this index. [INTEGER, NOT NULL]

I_SHORT_NAME An alias name provided by an authorized end user for this storage server
(optional) [CHAR(16)]

I_VSM_SN The serial number of the storage server [CHAR(16), NOT NULL]

I_VSM_TYPE The higher level identifier for the storage server product, for example 2105
[CHAR(16)]

Q_VSM_SCSI_ADAPT Total number of SCSI adapters installed in this storage server [INTEGER]

Q_VSM_ESCON_ADAPT Total number of ESCON adapters installed in this storage server


[INTEGER]

Q_VSM_SSA_ADAPT Total number of SSA adapters installed in this storage server [INTEGER]

Q_VSM_RAID_GRPS Number of disk groups in this storage server defined as RAID storage
[INTEGER]

Q_VSM_NONRAID_GRPS Number of disk groups in this storage server defined as independent disk
groups [INTEGER]

Q_VSM_FREE_RANKS Number of disk groups in this storage server that have not yet been defined
as either RAID or independent disk type [INTEGER]

Q_VSM_DDMS Total number of DDMs that are installed in this storage server [INTEGER]

Appendix B. TotalStorage Expert database table layouts 265


Column Description

D_TASK_DATE The date when the ESS Expert most recently collected asset and capacity
data from the storage server. [DATE]

T_TASK_TIME The time when the ESS Expert most recently collected asset and capacity
data from the storage server. [TIME]

I_FC_ACCESS_MODE The Access mode for this storage server, 1 if Access-any, 0 if


Access-restricted, else if not applicable. [SMALLINT NOT NULL]

Q_VSM_FC_ADAPT Total number of FC adapters installed in this storage server. [SMALLINT


NOT NULL DEFAULT 0]

Q_VSM_FC_FICON Number of FICON-capable host adapters. [SMALLINT NOT NULL


DEFAULT 0]

Table B-45 Table: VCMDDM


Column Description

I_VSM_IDX An internally generated identifier (index) for a storage server. See VMPDX
for storage server data associated with this index. [INTEGER, NOT NULL]

I_DDM_GB_CAPACITY Capacity for this type of DDM, in gigabytes [CHAR(8), NOT NULL]

I_DDM_RPM Number of revolutions per minute (RPMs) for this type of DDM [SMALLINT,
NOT NULL]

Q_DDM_COUNT Total number of DDMs of this type (i.e., a fixed capacity size and RPM
speed) [INTEGER]

Table B-46 Table: VCMCLUST


Column Description

I_VSM_IDX An internally generated identifier (index) for a storage server. See VMPDX
for storage server data associated with this index. [INTEGER, NOT NULL]

I_CLU_NO The cluster number (identifier for this cluster) [INTEGER, NOT NULL]

Q_CLU_RAM Total amount of installed memory (RAM) for this cluster, in megabytes
[INTEGER]

Q_CLU_NVS Total amount of installed Non Volatile Storage (NVS) for this cluster, in
megabytes [INTEGER]

266 IBM TotalStorage Expert Customized Reports


Column Description

Q_CLU_PS Total amount of installed PowerStore (PS) memory for this cluster, in
megabytes [INTEGER]

Table B-47 Table: VCMCUISUM


Column Description

I_VSM_IDX An internally generated identifier (index) for a storage server. See VMPDX
for storage server data associated with this index. [INTEGER, NOT NULL]

I_CUI_IMAGE_NUM The unique identifying number for this logical control unit in the storage
server [INTEGER, NOT NULL]

I_CUI_SSID Storage Subsystem ID for this logical control unit [CHAR(4)]

I_CUI_EMULATION The emulation type of this logical control unit (e.g., unique integer
associated with 3990-6, 3990-3, 3990-3 TPF) [SMALLINT]

I_CUI_PAV_ENABLED Value is 1 if parallel access volume addressing is enabled; value is 0


otherwise [SMALLINT]

Q_CUI_ASSIGNED_CYL Assigned capacity (space assigned to S/390 volumes) in the logical


control unit, in cylinders [INTEGER]

Q_CUI_AVAIL_CYLS Free capacity in the logical control unit, in cylinders [INTEGER]

Q_CUI_ASSIGNED_GB Assigned capacity (space assigned to S/390 volumes) in the logical


control unit, in gigabytes [INTEGER]

Q_CUI_AVAIL_GB Free capacity in the logical control unit, in gigabytes [INTEGER]

Q_CUI_TOTAL_GB Total capacity in the logical control unit, in gigabytes [INTEGER]

Q_CUI_TOT_VOLS Number of S/390 volumes in the logical control unit [INTEGER]

Table B-48 Table: VCMCUIVOL


Column Description

I_VSM_IDX An internally generated identifier (index) for a storage server. See VMPDX
for storage server data associated with this index. [INTEGER, NOT NULL]

I_CUI_IMAGE_NUM The unique identifying number for this logical control unit in the storage
server [INTEGER, NOT NULL]

I_CUI_VOL_TYPE One type of S/390 volume allocated in the storage server (for example,
3390-2 or 3390-3) [CHAR(8), NOT NULL]

Appendix B. TotalStorage Expert database table layouts 267


Column Description

Q_CUI_TOT_VOLS Number of S/390 volumes of this type in this logical control unit
[INTEGER]

Q_CUI_RAID_CYLS Total RAID cylinders for volumes of this type in the logical control unit
[INTEGER]

Q_CUI_NONRAID_CYLS Total non-RAID cylinders for volumes of this type in the logical control unit
[INTEGER]

Q_CUI_TOT_CYLS Total cylinders for volumes of this type in the logical control unit
[INTEGER]

Table B-49 Table: VCMCKD


Column Description

I_VSM_IDX An internally generated identifier (index) for a storage server. See VMPDX
for storage server data associated with this index. [INTEGER, NOT NULL]

I_CUI_IMAGE_NUM The unique identifying number for this logical control unit in the storage
server [INTEGER, NOT NULL]

I_VOL_BASE_ADDR Base device address value for this S/390 volume (value is 0-255)
[CHAR(4)]

Q_PAV_ADDR_NUM Number of PAV addresses for this S/390 volume (currently not used)
[SMALLINT]

I_VOL_TYPE The type of this volume (e.g., 3390-2, 3390-3, 3390-9) [CHAR(6)]

I_VOL_FORMAT The format for this volume (for example, 3380 or 3390 track format)
[CHAR(6)]

Q_VOL_CYLS Number of cylinders in this volume (obsolete field, no longer used)


[SMALLINT]

Q_VOL_GB number of gigabytes in this volume, in gigabytes*100 units [SMALLINT]

I_VOL_STOR_TYPE Value is 1 if this volume is defined on RAID storage, value is 0 otherwise


[SMALLINT]

I_VOL_CLU_NUM Cluster number for this S/390 volume [SMALLINT]

I_VOL_SLOT_NUM Card number of adapter associated with this S/390 volume [SMALLINT]

I_VOL_SSALOOP_ID SSA Loop Identifier (e.g., A or B) associated with the disk group containing
this CKD volume [CHAR(1)]

268 IBM TotalStorage Expert Customized Reports


Column Description

I_VOL_DISK_GRP Identifying number of the disk group containing this S/390 volume
[SMALLINT]

I_VOL_DISK_NUM Disk number of the disk group, if an independent disk, 0 otherwise


[SMALLINT]

I_VOL_NUM Identifying number of this S/390 volume within the disk group [SMALLINT,
NOT NULL]

Q_VOL_CYLS_X Number of cylinders in this volume [INTEGER]

I_VOLSER Volume serial number (VOLSER) in VTOC of this S/390 volume, or an


empty string if not available [CHAR(8) NOT NULL DEFAULT '']

Table B-50 Table: VCMHOSTCAP


Column Description

I_VSM_IDX An internally generated identifier (index) for a storage server. See VMPDX
for storage server data associated with this index. [INTEGER, NOT NULL]

I_HOST_IDX An internally generated identifier (index) for an Open System host


connected to one or more storage servers. See VHSTX for host data
associated with this index. [INTEGER, NOT NULL]

I_HOST_NAME The name of the host, as defined to the ESS Specialist [CHAR(254)]

I_HOST_HW_TYPE Internally defined numeric indicator for the type of operating system of the
host [SMALLINT]

I_HOST_IP the IP address of the host (if available), otherwise zero [CHAR(254)]

Q_HOST_ASSIGN_CAP Amount of fixed block capacity assigned to this host in the given storage
server, in gigabytes [INTEGER]

Q_HOST_ASSIGN_SHR Amount of fixed block capacity assigned to this host in the given storage
server that is also assigned to at least one other host, in gigabytes
[INTEGER]

Q_HOST_VOLS Total number of volumes connected to this host within this storage server.
[INTEGER]

Q_HOST_VOLS_SHR Among the volumes connected to this host, this is the number of these
volumes connected to more than one SCSI-attached host. [INTERGER
NOT NULL DEFAULT 0]

D_TASK_DATE The date when the ESS Expert most recently collected asset and capacity
data from the storage server. [DATE]

Appendix B. TotalStorage Expert database table layouts 269


Column Description

T_TASK_TIME The time when the ESS Expert most recently collected asset and capacity
data from the storage server. [TIME]

I_HOST_ATTACH Flag for a attached host connected to one or more storage servers, 2 if FC
attached, 1 if SCSI attached. [INTEGER, NOT NULL DEFAULT 1]

I_HOST_FC_WWPN The World-Wide Port-Name for this host on the Fibre Channel fabric.
[CHAR(16), NOT NULL DEFAULT]

I_HOST_FC_CAPBL Fibre Channel capability of this host system, 0 if ReportLUNS, 1


WalkTheBus, else if not applicable. [SMALLINT, NOT NULL DEFAULT 9]

Q_HOST_FC_VOL_SHR Among the volumes connected to this host, this is the number of these
volumes connected to more than one FC-attached host. [INTERGER NOT
NULL DEFAULT 0]

Q_HOST_MIXD_VOLSHR Among the volumes connected to this host, this is the number of these
volumes connected to more than one host (either FC or SCSI attached).
[INTERGER NOT NULL DEFAULT 0]

Table B-51 Table: VCMHOSTVOL


Column Description

I_VSM_IDX An internally generated identifier (index) for a storage server. See VMPDX
for storage server data associated with this index. [INTEGER, NOT NULL]

I_HOST_IDX An internally generated identifier (index) for an Open System host


connected to one or more storage servers. See VHSTX for host data
associated with this index. [INTEGER, NOT NULL]

I_VOL_IDX An internally generated identifier (index) for a fixed block, logical volume
assigned to at least one Open System host. See VVOLX for volume data
associated with this index. [INTEGER, NOT NULL]

I_VOL_SN Serial number of the fixed block volume (LUN serial number) [CHAR(16)]

Q_VOL_SIZE capacity of the fixed block volume, in gigabytes*100 units [INTEGER]

I_VOL_TYPE_ID type of the fixed block volume (as defined by the ESS Specialist). For
example, open systems and AS/400 are volume types. [CHAR(16)]

I_VOL_STOR_TYPE Value is 1 if volume resides on RAID storage; value is 0 otherwise


[SMALLINT]

I_VOL_CLU_NUM Cluster number for this fixed block volume [SMALLINT]

270 IBM TotalStorage Expert Customized Reports


Column Description

I_VOL_SLOT_NUM Card number of adapter associated with this fixed block volume
[SMALLINT]

I_VOL_SSALOOP_ID SSA Loop Identifier (e.g., A or B) associated with the disk group containing
this fixed block volume [CHAR(1)]

I_VOL_DISK_GROUP Identifying number of the disk group containing this fixed block volume
[SMALLINT]

I_VOL_DISK_NUM Disk number of the disk group, if an independent disk, 0 otherwise


[SMALLINT]

I_VOL_NUM Identifying number of this fixed block volume (and lowest level identifier of
the volume) [SMALLINT]

Q_VOL_TOTAL_HOSTS Total number of SCSI-attached hosts attached to this volume [SMALLINT]

Q_VOL_DAISY_HOSTS Total number of SCSI-attached hosts attached to this volume on ports


where other hosts are also connected to the volume. [SMALLINT]

I_VOL_DAISY_HOST For this host/fixed block volume connection, value is 1 if this host shares a
port with another host to connect to this volume, value is 0 otherwise
[SMALLINT]

Q_VOL_HOST_PORTS For this host/fixed block volume connection, the number of ports used by
this host to connect to this volume [SMALLINT]

I_HOST_NAME The name of the host, as defined to the ESS Specialist [CHAR(254)]

I_HOST_HW_TYPE Internally defined numeric indicator for the type of operating system of the
host [SMALLINT]

I_HOST_ATTACH Flag for a attached host connected to one or more storage servers, 2 if FC
attached, 1 if SCSI attached. [INTEGER, NOT NULL DEFAULT 1]

I_HOST_FC_WWPN The World-Wide Port-Name for this host on the Fibre Channel fabric.
[CHAR(16), NOT NULL DEFAULT]

I_HOST_FC_CAPBL Fibre Channel capability of this host system, 0 if ReportLUNS, 1


WalkTheBus, else if not applicable. [SMALLINT, NOT NULL DEFAULT 9]

Q_VOL_SCSI_HOSTS Number of SCSI-attached hosts connected to this storage server


[SMALLINT, NOT NULL DEFAULT]

Q_VOL_FC_HOSTS Number of FC-attached hosts connected to this storage server


[SMALLINT, NOT NULL DEFAULT]

Appendix B. TotalStorage Expert database table layouts 271


Table B-52 Table: VSXDALVL
Column Description

I_VSM_IDX An internally generated identifier (index) for a storage server. See VMPDX
for storage server data associated with this index. [INTEGER, NOT NULL]

I_VSM_TYPE The higher level identifier for the storage server product, for example 2105.
[CHAR(16), NOT NULL]

I_VSM_MODEL_NO The model number for the storage server, for example E20. [CHAR(10),
NOT NULL]

I_VSM_SHORT_NAME An alias name provided by an authorized end user for this storage server.
[CHAR(16), NOT NULL]

I_VSM_SN The serial number of the storage server. [CHAR(16), NOT NULL]

Table B-53 Table: VSXDALDT


Column Description

I_VSM_IDX An internally generated identifier (index) for a storage server. See VMPDX
for storage server data associated with this index. [INTEGER, NOT NULL]

I_CLU_NO The cluster number (identifier for the cluster) [INTEGER, NOT NULL]

I_CLU_LIC_VRSN Version, release and modification level of the current active licensed
internal code. [CHAR(16)]

I_CLU_LIC_ACTVDAT Activation date for this licensed internal code. [CHAR(32)]

Table B-54 Table: VSXDATOP


Column Description

I_VSM_IDX An internally generated identifier (index) for a storage server. See VMPDX
for storage server data associated with this index. [INTEGER, NOT NULL]

I_VSM_TYPE The higher level identifier for the storage server product, for example 2105.
[CHAR(16), NOT NULL]

I_VSM_MODEL_NO The model number for the storage server, for example E20. [CHAR(10),
NOT NULL]

I_VSM_SHORT_NAME An alias name provided by an authorized end user for this storage server.
[CHAR(16), NOT NULL]

I_VSM_SN The serial number of the storage server. [CHAR(16), NOT NULL]

272 IBM TotalStorage Expert Customized Reports


Column Description

I_VSM_NBR_CLUS Total number of cluster controllers in this storage server. [INTEGER, NOT
NULL]

I_VSM_NBR_EXPN Total number of expansion racks for this storage server. [INTEGER, NOT
NULL]

I_VSM_MANFR_DATE The date of manufacture for this storage server. [CHAR(32), NOT NULL]

D_TASK_DATE The date when the ESS Expert most recently collected asset and capacity
data from the storage server. [DATE, NOT NULL]

T_TASK_TIME The time when the ESS Expert most recently collected asset and capacity
data from the storage server. [TIME, NOT NULL]

I_VSM_FC_WWNN The World-Wide Node-Name for this storage server, where this storage
server is attached to a Fibre Channel fabric. Otherwise this field is blank.
[CHAR(16), NOT NULL]

I_VSM_FC_ACC_MODE The access mode for this storage

Table B-55 Table: VSXDARCK


Column Description

I_VSM_IDX An internally generated identifier (index) for a storage server. See VMPDX
for storage server data associated with this index. [INTEGER, NOT NULL]

I_VSM_RACK_MODEL The type and model number for this storage server rack. [CHAR(16), NOT
NULL]

I_VSM_RACK_SN Serial number for this storage server rack. [CHAR(16), NOT NULL]

Table B-56 Table: VSXDACLU


Column Description

I_VSM_IDX An internally generated identifier (index) for a storage server. See VMPDX
for storage server data associated with this index. [INTEGER, NOT NULL]

I_CLU_NO An identifier assigned to this cluster controller (also referred to simply as


the cluster number). [INTEGER, NOT NULL]

I_CLU_MODEL_NO Model number of this cluster controller. [CHAR(16), NOT NULL]

I_CLU_SN Serial number of this cluster controller. [CHAR(16), NOT NULL]

Appendix B. TotalStorage Expert database table layouts 273


Column Description

I_CLU_IP The IP address of this cluster controller. [CHAR(16), NOT NULL]

Table B-57 Table: VSXDALIC


Column Description

I_VSM_IDX An internally generated identifier (index) for a storage server. See VMPDX
for storage server data associated with this index. [INTEGER, NOT NULL]

I_CLU_NO The cluster number (identifier for the cluster) [INTEGER, NOT NULL]

I_CLU_LIC_SRC A numeric identifier that represents a licensed internal code level such as
"active", "previous", "next", "cdrom", "diskette" and "unknown". [INTEGER,
NOT NULL]

I_CLU_LIC_VRSN Version, release and modification level of this level of licensed internal
code. [CHAR(16)]

I_CLU_LIC_ACTVDAT Activation date for the associated level of licensed internal code.
[CHAR(32)]

D_TASK_DATE The date when the ESS Expert most recently collected asset and capacity
data from the storage server. [DATE, NOT NULL]

T_TASK_TIME The date when the ESS Expert most recently collected asset and capacity
data from the storage server. [TIME, NOT NULL]

Table B-58 Table: VSXDSTYP


Column Description

I_VSM_TYPE The higher level identifier for the type of storage server product, for
example 2105. [CHAR(16), NOT NULL]

I_VSM_TYPE_CNT The number of these storage servers of this type known to this ESS
Expert. [INTEGER, NOT NULL]

D_TASK_DATE The date when the ESS Expert most recently collected asset and capacity
data from any storage server. [DATE, NOT NULL]

T_TASK_TIME The time when the ESS Expert most recently collected asset and capacity
data from any storage server. [TIME, NOT NULL]

274 IBM TotalStorage Expert Customized Reports


Table B-59 Table: VPVPD
Column Description

P_TASK Sequence number of the performance collection task that read this data
from the storage server. [INTEGER, NOT NULL]

M_MACH_SN Serial number of this storage server [CHAR(9), NOT NULL]

M_MACH_TY The higher level identifier for the storage server product, for example 2105
for the IBM Enterprise Storage Server 2105. [CHAR(4)]

M_MODEL_N The model number for the storage server, for example E20. [CHAR(3)]

M_CLUSTER_N Cluster number for this cluster [SMALLINT, NOT NULL]

M_RAM Amount of random access memory in this cluster, in megabytes


[SMALLINT]

M_NVS Amount of non-volatile storage in this cluster, in megabytes [SMALLINT]

P_CDATE The date of this snapshot of the configuration for this storage server,
collected by the performance collector [DATE]

P_CTIME The time of day of this configuration snapshot [TIME]

Table B-60 Table: VPCFG


Column Description

P_TASK Sequence number of the performance collection task that read this data
from the storage server. [INTEGER, NOT NULL]

M_MACH_SN Serial number of this storage server [CHAR(9), NOT NULL]

M_CLUSTER_N Cluster number for this logical array [SMALLINT, NOT NULL]

M_CARD_NUM Card number of adapter associated with this logical array [SMALLINT,
NOT NULL]

M_LSS_LA An ESS internally generated logical subsystem identifier [INTEGER, NOT


NULL]

M_ARRAY_ID An ESS internally generated logical array identifier [CHAR(8), NOT NULL]

M_LOOP_ID SSA Loop Identifier (e.g., A or B) associated with the disk group containing
this logical array [CHAR(1)]

M_GRP_NUM Identifying number of the disk group containing this logical array
[SMALLINT]

Appendix B. TotalStorage Expert database table layouts 275


Column Description

M_DISK_NUM Disk number of the disk group (and final identifier of the logical array), if an
independent disk, 0 otherwise [SMALLINT]

M_DBL_WIDE Attribute of an array: S if single wide strip size (32K), D if double wide strip
size (64K) [CHAR(1), NOT NULL DEFAULT 'S']

Table B-61 Table: VPVOL


Column Description

P_TASK Sequence number of the performance collection task that read this data
from the storage server. [INTEGER, NOT NULL]

M_MACH_SN Serial number of this storage server [CHAR(9), NOT NULL]

M_LSS_LA An internally generated logical subsystem identifier [INTEGER, NOT


NULL]

M_VOL_NUM Identifying number of this logical volume (and lowest level identifier of the
logical volume) [INTEGER, NOT NULL]

M_VOL_TY Character F if an open systems (fixed block) volume, C if an S/390 volume


[CHAR(1)]

M_VOL_ADDR LUN serial number if the logical volume is an open systems (fixed block)
volume, SSID + Base device address if an S/390 volume [CHAR(8)]

Table B-62 Table: VPCRK


Column Description

P_TASK Sequence number of the performance collection task that read this data
from the storage server. [INTEGER, NOT NULL]

PC_INDEX An internally generated, consecutive number that uniquely identifies the


sample statistics gathered for one collection time interval [INTEGER, NOT
NULL]

M_MACH_SN Serial number of the storage server [CHAR(9), NOT NULL]

M_CLUSTER_N Cluster number for this logical array [SMALLINT, NOT NULL]

M_LSS_LA An ESS internally generated logical subsystem identifier [INTEGER, NOT


NULL]

M_ARRAY_ID An ESS internally generated logical array identifier [CHAR(8), NOT NULL]

276 IBM TotalStorage Expert Customized Reports


Column Description

M_DDM_NUM Number of disk drive modules (DDMs) in this logical array [SMALLINT]

PC_DATE_B Date this sample time period began (i.e., performance counters were
collected) [DATE, NOT NULL]

PC_TIME_B The time of day this sample time period began (i.e., performance counters
were collected) [TIME, NOT NULL]

PC_DATE_E Date this sample time period ended (i.e., performance counters were
collected again) [DATE]

PC_TIME_E The time of day this sample time period ended (i.e., performance counters
were collected again) [TIME]

PC_IO_WRITE Number of subsystem write requests issued to this logical array in this time
period [INTEGER]

PC_IO_READ Number of subsystem read requests issued to this logical array in this time
period [INTEGER]

PC_RT_READ Total time, in milliseconds, to satisfy all read requests issued to this logical
array in this time period [INTEGER]

PC_RT_WRITE Total time, in milliseconds, to satisfy all write requests issued to this logical
array in this time period [INTEGER]

PC_IOR_AVG Average subsystem I/O rate for all requests issued to this logical array in
this time period (total requests/interval seconds) [INTEGER]

PC_MSR_AVG Average millisecond time to satisfy all subsystem I/O requests issued to
this logical array in this time period. (total millisecond time/total requsts)
[INTEGER]

PC_RBT_AVG Number of bytes read from this logical array / Number of seconds in this
time period [INTEGER]

PC_WBT_AVG Number of bytes written to this logical array / Number of seconds in this
time period [INTEGER]

Q_SAMP_DEV_UTIL Percent (0 - 100) of time this array is busy, for this time period, or negative
value if not available. Default: -1. [SMALLINT, NOT NULL DEFAULT -1]

PC_INT_SECS Number of seconds in this time period. [SMALLINT]

PC_B_HR_PRCT Percent (0 - 100) of this sample's time period which is in the hour of the
start time. Default: 100. [SMALLINT, NOT NULL DEFAULT 100]

P_OWNER Internally generated identifier of the creator of this record [INTEGER]

P_COMM Zero if normal, a negative value if the location of this logical array cannot
be identified using the VPCFG table contents [SMALLINT]

Appendix B. TotalStorage Expert database table layouts 277


Column Description

Q_IO_TOTAL Total I/O read and write requests issued to the volumes in this array in this
time period [DOUBLE NOT NULL DEFAULT -1]

Q_IO_SEQ Total sequential read and write requests issued to the volumes in this array
in this time period [DOUBLE NOT NULL DEFAULT -1]

Q_CL_AVG_HOLD_TIME Cluster-level average cache holding time for this time period, for the cluster
with affinity to this array [INTEGER NOT NULL DEFAULT -1]

Q_CL_NVS_FULL_PRCT Cluster-level percent of total IO requests delayed due to NVS space


constraints in this time period, for the cluster with affinity to this array
[INTEGER NOT NULL DEFAULT -1]

Figure B-9 Example of VPCRK

Table B-63 Table: VPCCH


Column Description

P_TASK Sequence number of the performance collection task that read this data
from the storage server. [INTEGER, NOT NULL]

PC_INDEX An internally generated, consecutive number that uniquely identifies the


sample statistics gathered for one collection time interval [INTEGER, NOT
NULL]

278 IBM TotalStorage Expert Customized Reports


Column Description

M_MACH_SN Serial number of the storage server [CHAR(9), NOT NULL]

M_CLUSTER_N Cluster number for this logical volume [SMALLINT, NOT NULL]

M_LSS_LA An ESS internally generated logical subsystem identifier [INTEGER, NOT


NULL]

M_ARRAY_ID An ESS internally generated logical array identifier [CHAR(8), NOT NULL]

M_VOL_NUM Identifying number of this logical volume (and lowest level identifier of the
logical volume) [INTEGER, NOT NULL]

PC_DATE_B Date this sample time period began (i.e., performance counters were
collected) [DATE, NOT NULL]

PC_TIME_B The time of day this sample time period began (i.e., performance counters
were collected) [TIME, NOT NULL]

PC_DATE_E Date this sample time period ended (i.e., performance counters were
collected again) [DATE]

PC_TIME_E The time of day this sample time period ended (i.e., performance counters
were collected again) [TIME]

PC_N_IO_R Number of normal (non-sequential) I/O read requests (command chains


that contained at least one search or read command but no write
command) in this time period for this logical volume [INTEGER]

PC_N_IO_W Number of normal (non-sequential) I/O write requests (command chains


that contained at least one write command) [INTEGER]

PC_N_CH_R Number of cache hits for normal (non-sequential) I/O read requests
("normal, read" command chains that were completed without requiring
access to any DASD). [INTEGER]

PC_N_CH_W Number of cache hits for normal (non-sequential) I/O write requests
("normal, write" command chains that were completed without requiring
access to any DASD). [INTEGER]

PC_S_IO_R Number of sequential I/O read requests (sequential mode command


chains which contain at least one search or read command but no write
commands). [INTEGER]

PC_S_IO_W Number of sequential I/O write requests (sequential mode command


chains which contain at least one write command). [INTEGER]

PC_S_CH_R Number of cache hits for sequential I/O read requests ("sequential mode,
read" command chains that were completed without requiring access to
any DASD). [INTEGER]

Appendix B. TotalStorage Expert database table layouts 279


Column Description

PC_S_CH_W Number of cache hits for sequential I/O write requests ("sequential mode,
write" command chains that were completed without requiring access to
any DASD). [INTEGER]

PC_D2C Number of disk to cache track transfers for non-sequential I/O requests
(number of tracks transferred successfully from DASD to cache excluding
sequential mode "next track" promotions). [INTEGER]

PC_SEQ_D2C Number of disk to cache track transfers for sequential I/O requests
(number of tracks transferred successfully from DASD to cache due to
sequential mode "next track" promotions) [INTEGER]

PC_C2D Number of cache to disk track transfers (number of tracks transferred from
cache to DASD asynchronous to transfers from the channel) [INTEGER]

PC_RHR_AVG Cache hit ratio for read I/Os (total number of cache hits for read requests
/ total number of read requests) [SMALLINT]

PC_WHR_AVG Cache hit ratio for write I/Os (total number of cache hits for write requests
/ total number of write requests) [SMALLINT]

PC_THR_AVG Overall cache hit ratio (total number of cache hits for all requests / total
number of requests) [SMALLINT]

PC_SHR_AVG Cache hit ratio for sequential I/Os (total number of cache hits for sequential
requests / total number of sequential requests) [SMALLINT]

PC_NHR_AVG Cache hit ratio for normal (non-sequential) I/Os (total number of cache hits
for non-sequential requests / total number of non-sequential requests)
[SMALLINT]

PC_RMR_IO Number of record mode read I/O requests (number of command chains
associated with a record access mode read operation, and the chain
contains no write commands) [INTEGER]

PC_RMR_CH Number of record mode read cache hits (number of record mode read
requests which were completed without requiring any access to DASD).
[INTEGER]

PC_RMRHR_AVG Cache hit ratio for record mode reads (number of record mode read cache
hits / number of record mode read requests) [SMALLINT]

PC_DFW_IO Number of DASD fast write I/O requests (same as normal write IO
requests). [INTEGER]

PC_DFW_DELAY Number of DASD fast write delayed requests (requests of this type
delayed due to NVS space constraints) [INTEGER]

PC_DFW_AVG (DASD fast write I/O requests / DASD fast writes delayed) * 100
[SMALLINT]

280 IBM TotalStorage Expert Customized Reports


Column Description

PC_INT_SECS Number of seconds in this time period. [SMALLINT]

PC_B_HR_PRCT Percent (0 - 100) of this sample's time period which is in the hour of the
start time. Default: 100. [SMALLINT, NOT NULL DEFAULT 100]

P_OWNER Internally generated identifier of the creator of this record [INTEGER]

P_COMM Zero if normal, a negative value if the location of this logical volume cannot
be identified using the VPCFG, VPVOL tables [SMALLINT]

PC_Q_W_PR Number of quick write promote operations [INTEGER NOT NULL


DEFAULT 0]

Figure B-10 Example of VPCCH

Table B-64 Table: VPHVOL


Column Description

I_PR_SEQ_IDX Sequence number of the Data Preparation task that created this summary
data. [INTEGER, NOT NULL]

I_MACH_IDX An internally generated identifier (index) for a storage server that has
performance summary data available in the database. (See
VPSNX)[INTEGER, NOT NULL]

I_CLUSTER_NO Cluster number for this logical volume [SMALLINT, NOT NULL]

I_CARD_NO Card number of adapter associated with this logical volume [SMALLINT,
NOT NULL]

Appendix B. TotalStorage Expert database table layouts 281


Column Description

I_LOOP_ID SSA Loop Identifier (e.g., A or B) associated with the disk group containing
this logical volume [CHAR(1), NOT NULL]

I_DISK_GRP_NO Identifying number of the disk group containing this logical volume
[SMALLINT, NOT NULL]

I_DISK_NUM Disk number of the disk group, if an independent disk, 0 otherwise


[SMALLINT, NOT NULL]

I_VOL_NUM Identifying number of this logical volume within the disk group (and lowest
level identifier of the logical volume) [SMALLINT, NOT NULL]

I_VOL_TYPE Character F if an open systems volume, C if an S/390 volume [CHAR(1)]

I_VOL_ADDR LUN serial number if the logical volume is an open systems volume, SSID
+ Base device address if an S/390 volume [CHAR(8)]

D_PR_DATE Date to which this performance data applies [DATE, NOT NULL]

I_PR_HOUR Hour of the day (0-23) to which this performance data applies [SMALLINT,
NOT NULL]

Q_HR_SAMPLES Number of performance sample records containing "active" I/O (number of


I/O requests is greater than 0), collected for this logical volume, used in this
summary [SMALLINT]

Q_HR_CACHE_HITS Total number of cache hits occurring in this hour for this logical volume
(command chains that were completed without requiring access to any
DASD) [DOUBLE]

Q_HR_TOT_IO_REQS Total number of I/O requests (command chains) occurring in this hour for
this logical volume [DOUBLE]

Q_HR_TOT_IO_R Total number of I/O read requests (command chains which contain at least
one search or read command but no write commands) occurring in this
hour for this logical volume [DOUBLE]

Q_HR_TOT_IO_W Total number of I/O write requests (command chains which contain at least
one write command) occurring in this hour for this logical volume
[DOUBLE]

Q_HR_TOT_SECS Total number of sampling seconds (from VPCCH) in this hour for this
logical volume [INTEGER]

Q_HR_CACHE2DISK Number of cache to disk track transfers in this hour for this logical volume
(number of tracks transferred from cache to DASD asynchronous to
transfers from the channel) [DOUBLE]

282 IBM TotalStorage Expert Customized Reports


Column Description

Q_HR_DISK2CACHE Number of disk to cache track transfers in this hour for this logical volume
(number of tracks transferred successfully from DASD to cache)
[DOUBLE]

Q_HR_CACHE_HIT_R Cache hit ratio * 1000 (total cache hits/IO requests * 1000) [SMALLINT]

Q_HR_CACHE_HIT_WR Cache hit ratio * 1000 for write requests (total write cache hits/write I/O
requests * 1000) [SMALLINT]

Q_HR_CACHE_HIT_RR Cache hit ratio * 1000 for read requests (total read cache hits/read I/O
requests * 1000) [SMALLINT]

Q_HR_IO_RATE Number of I/O requests / number of sampling seconds [INTEGER]

Q_HR_CACHE2DISK_R Number of cache to disk track transfers / number of sampling seconds


[INTEGER]

Q_HR_DISK2CACHE_R Number of disk to cache track transfers / number of sampling seconds


[INTEGER]

C_PR_CONFIG_CHG Negative if a logical volume or array cannot be found in the configuration


snapshot for this storage server, zero otherwise [SMALLINT]

Q_HR_SIO_R Total number of sequential read requests occurring in this hour for this
volume [DOUBLE NOT NULL DEFAULT -1]

Q_HR_SIO_W Total number of sequential write requests occurring in this hour for this
volume [DOUBLE NOT NULL DEFAULT -1]

Q_HR_NIO_R Total number of normal (random) read requests occurring in this hour for
this volume [DOUBLE NOT NULL DEFAULT -1]

Q_HR_NIO_W Total number of normal (random) write requests occurring in this hour for
this volume [DOUBLE NOT NULL DEFAULT -1]

Q_HR_RMR Total number of record mode read requests occurring in this hour for this
volume [DOUBLE NOT NULL DEFAULT -1]

Q_HR_NVS_DELAY Total number of IO requests delayed due to NVS space constraints in this
hour for this volume [DOUBLE NOT NULL DEFAULT -1]

Appendix B. TotalStorage Expert database table layouts 283


Figure B-11 Example of VPHVOL

Table B-65 Table: VPHARCAC


Column Description

Q_HR_CACHE_HIT_RR Cache hit ratio * 1000 for read requests (total read cache hits/read I/O
requests * 1000) [SMALLINT]

Q_HR_IO_RATE Number of I/O requests / number of sampling seconds [INTEGER]

I_PR_SEQ_IDX Sequence number of the Data Preparation task that created this summary
data. [INTEGER, NOT NULL]

I_MACH_IDX An internally generated identifier (index) for a storage server that has
performance summary data available in the database. (See VPSNX)
[INTEGER, NOT NULL]

I_CLUSTER_NO Cluster number for this logical array [SMALLINT, NOT NULL]

I_CARD_NO Card number of adapter associated with this logical array [SMALLINT,
NOT NULL]

I_LOOP_ID SSA Loop Identifier (e.g., A or B) associated with the disk group containing
the logical array [CHAR(1), NOT NULL]

284 IBM TotalStorage Expert Customized Reports


Column Description

I_DISK_GRP_NO Identifying number of the disk group containing the logical array
[SMALLINT, NOT NULL]

I_DISK_NUM Disk number of the disk group (and lowest level identifier of the logical
array), if an independent disk, 0 otherwise [SMALLINT, NOT NULL]

D_PR_DATE Date to which this performance data applies [DATE, NOT NULL]

I_PR_HOUR Hour of the day (0-23) to which this performance data applies [SMALLINT,
NOT NULL]

Q_HR_VOLUMES Number of logical volumes in this logical array [SMALLINT]

Q_HR_CACHE_HITS Total number of cache hits occurring in this hour for this logical array
(command chains that were completed without requiring access to any
DASD) [DOUBLE]

Q_HR_TOT_IO_REQS Total number of I/O requests (command chains) occurring in this hour for
this logical array [DOUBLE]

Q_HR_TOT_IO_R Total number of I/O read requests (command chains which contain at least
one search or read command but no write commands) occurring in this
hour for this logical array [DOUBLE]

Q_HR_TOT_IO_W Total number of I/O write requests (command chains which contain at least
one write command) occurring in this hour for this logical array [DOUBLE]

Q_HR_TOT_SECS Total number of sampling seconds (from VPCCH) in this hour for this
logical array [DOUBLE]

Q_HR_CACHE2DISK Number of cache to disk track transfers in this hour for this logical array
(number of tracks transferred from cache to DASD asynchronous to
transfers from the channel) [DOUBLE]

Q_HR_DISK2CACHE Number of disk to cache track transfers in this hour for this logical array
(number of tracks transferred successfully from DASD to cache)
[DOUBLE]

Q_HR_CACHE_HIT_R Cache hit ratio * 1000 (total cache hits/IO requests * 1000) [SMALLINT]

Q_HR_CACHE_HIT_WR Cache hit ratio * 1000 for write requests (total write cache hits/write I/O
requests * 1000) [SMALLINT]

Q_HR_CACHE2DISK_R Number of cache to disk track transfers / number of sampling seconds


[INTEGER]

Q_HR_DISK2CACHE_R Number of disk to cache track transfers / number of sampling seconds


[INTEGER]

C_PR_CONFIG_CHG Negative if a logical volume or array cannot be found in the configuration


snapshot for this storage server, zero otherwise [SMALLINT]

Appendix B. TotalStorage Expert database table layouts 285


Column Description

Q_HR_SIO_R Total number of sequential read requests occurring in this hour for this
logical array [DOUBLE NOT NULL DEFAULT -1]

Q_HR_SIO_W Total number of sequential write requests occurring in this hour for this
logical array [DOUBLE NOT NULL DEFAULT -1]

Q_HR_NIO_R Total number of normal (random) read requests occurring in this hour for
this logical array [DOUBLE NOT NULL DEFAULT -1]

Q_HR_NIO_W Total number of normal (random) write requests occurring in this hour for
this logical array [DOUBLE NOT NULL DEFAULT -1]

Q_HR_RMR Total number of record mode read requests occurring in this hour for this
logical array [DOUBLE NOT NULL DEFAULT -1]

Q_HR_NVS_DELAY Total number of IO requests delayed due to NVS space constraints in this
hour for this logical array [DOUBLE NOT NULL DEFAULT -1]

Figure B-12 Example of VPHARCAC

286 IBM TotalStorage Expert Customized Reports


Table B-66 Table: VPHADCAC
Column Description

I_PR_SEQ_IDX Sequence number of the Data Preparation task that created this summary
data. [INTEGER, NOT NULL]

I_MACH_IDX An internally generated identifier (index) for a storage server that has
performance summary data available in the database. (See VPSNX)
[INTEGER, NOT NULL]

I_CLUSTER_NO Cluster number for this adapter/loop [SMALLINT, NOT NULL]

I_CARD_NO Card number of adapter associated with this adapter/loop [SMALLINT,


NOT NULL]

I_LOOP_ID SSA Loop Identifier (e.g., A or B) attached to the adapter [CHAR(1)]

D_PR_DATE Date to which this performance data applies [DATE, NOT NULL]

I_PR_HOUR Hour of the day (0-23) to which this performance data applies [SMALLINT,
NOT NULL]

Q_HR_VOLUMES Number of logical volumes in this adapter/loop [SMALLINT]

Q_HR_ARRAYS Number of logical arrays in this adapter/loop [SMALLINT]

Q_HR_CACHE_HITS Total number of cache hits occurring in this hour for this adapter/loop
(command chains that were completed without requiring access to any
DASD) [DOUBLE]

Q_HR_TOT_IO_REQS Total number of I/O requests (command chains) occurring in this hour for
this adapter/loop [DOUBLE]

Q_HR_TOT_IO_R Total number of I/O read requests (command chains which contain at least
one search or read command but no write commands) occurring in this
hour for this adapter/loop [DOUBLE]

Q_HR_TOT_IO_W Total number of I/O write requests (command chains which contain at least
one write command) occurring in this hour for this adapter/loop [DOUBLE]

Q_HR_TOT_SECS Total number of sampling seconds (from VPCCH) in this hour for this
adapter/loop [DOUBLE]

Q_HR_CACHE2DISK Number of cache to disk track transfers in this hour for this adapter/loop
(number of tracks transferred from cache to DASD asynchronous to
transfers from the channel) [DOUBLE]

Q_HR_DISK2CACHE Number of disk to cache track transfers in this hour for this adapter/loop
(number of tracks transferred successfully from DASD to cache)
[DOUBLE]

Q_HR_CACHE_HIT_R Cache hit ratio * 1000 (total cache hits/IO requests * 1000) [SMALLINT]

Appendix B. TotalStorage Expert database table layouts 287


Column Description

Q_HR_CACHE_HIT_WR Cache hit ratio * 1000 for write requests (total write cache hits/write I/O
requests * 1000) [SMALLINT]

Q_HR_CACHE_HIT_RR Cache hit ratio * 1000 for read requests (total read cache hits/read I/O
requests * 1000) [SMALLINT]

Q_HR_IO_RATE Number of I/O requests / number of sampling seconds [INTEGER]

Q_HR_CACHE2DISK_R Number of cache to disk track transfers / number of sampling seconds


[INTEGER]

Q_HR_DISK2CACHE_R Number of disk to cache track transfers / number of sampling seconds


[INTEGER]

C_PR_CONFIG_CHG Negative if a logical volume or array cannot be found in the configuration


snapshot for this storage server, zero otherwise [SMALLINT]

Q_HR_SIO_R Total number of sequential read requests occurring in this hour for this
adapter/loop [DOUBLE NOT NULL DEFAULT -1]

Q_HR_SIO_W Total number of sequential write requests occurring in this hour for this
adapter/loop [DOUBLE NOT NULL DEFAULT -1]

Q_HR_NIO_R Total number of normal (random) read requests occurring in this hour for
this adapter/loop [DOUBLE NOT NULL DEFAULT -1]

Q_HR_NIO_W Total number of normal (random) write requests occurring in this hour for
this adapter/loop [DOUBLE NOT NULL DEFAULT -1]

Q_HR_RMR Total number of record mode read requests occurring in this hour for this
adapter/loop [DOUBLE NOT NULL DEFAULT -1]

Q_HR_NVS_DELAY Total number of IO requests delayed due to NVS space constraints in this
hour for this adapter/loop [DOUBLE NOT NULL DEFAULT -1]

Table B-67 Table: VPHCLCAC


Column Description

I_PR_SEQ_IDX Sequence number of the Data Preparation task that created this summary
data. [INTEGER, NOT NULL]

I_MACH_IDX An internally generated identifier (index) for a storage server that has
performance summary data available in the database. (See VPSNX)
[INTEGER, NOT NULL]

I_CLUSTER_NO Cluster number for this cluster [SMALLINT, NOT NULL]

288 IBM TotalStorage Expert Customized Reports


Column Description

D_PR_DATE Date to which this performance data applies [DATE, NOT NULL]

I_PR_HOUR Hour of the day (0-23) to which this performance data applies [SMALLINT,
NOT NULL]

Q_HR_VOLUMES Number of logical volumes in this cluster [SMALLINT]

Q_HR_ARRAYS Number of logical arrays in this cluster [SMALLINT]

Q_HR_ADAPTERS Number of adapter/loops in this cluster [SMALLINT]

Q_HR_CACHE_HITS Total number of cache hits occurring in this hour for this cluster (command
chains that were completed without requiring access to any DASD)
[DOUBLE]

Q_HR_TOT_IO_REQS Total number of I/O requests (command chains) occurring in this hour for
this cluster [DOUBLE]

Q_HR_TOT_IO_R Total number of I/O read requests (command chains which contain at least
one search or read command but no write commands) occurring in this
hour for this cluster [DOUBLE]

Q_HR_TOT_IO_W Total number of I/O write requests (command chains which contain at least
one write command) occurring in this hour for this cluster [DOUBLE]

Q_HR_TOT_SECS Total number of sampling seconds (from VPCCH) in this hour for this
cluster [DOUBLE]

Q_HR_CACHE2DISK Number of cache to disk track transfers in this hour for this cluster (number
of tracks transferred from cache to DASD asynchronous to transfers from
the channel) [DOUBLE]

Q_HR_DISK2CACHE Number of disk to cache track transfers in this hour for this cluster (number
of tracks transferred successfully from DASD to cache) [DOUBLE]

Q_HR_CACHE_HIT_R Cache hit ratio * 1000 (total cache hits/IO requests * 1000) [SMALLINT]

Q_HR_CACHE_HIT_WR Cache hit ratio * 1000 for write requests (total write cache hits/write I/O
requests * 1000) [SMALLINT]

Q_HR_CACHE_HIT_RR Cache hit ratio * 1000 for read requests (total read cache hits/read I/O
requests * 1000) [SMALLINT]

Q_HR_IO_RATE Number of I/O requests / number of sampling seconds [INTEGER]

Q_HR_AVG_HOLD_TIME Average holding time for this cluster and this hour [INTEGER]

I_AVH_THRESHOLD The integral value for average holding time threshold. A holding time below
this threshold is displayed as an exception. [SMALLINT]

Appendix B. TotalStorage Expert database table layouts 289


Column Description

Q_HR_CACHE2DISK_R Number of cache to disk track transfers / number of sampling second


[INTEGER]

Q_HR_DISK2CACHE_R Number of disk to cache track transfers / number of sampling seconds


[INTEGER]

C_PR_CONFIG_CHG Negative if a logical volume or array cannot be found in the configuration


snapshot for this storage server, zero otherwise [SMALLINT]

Q_HR_SIO_R Total number of sequential read requests occurring in this hour for this
cluster [DOUBLE NOT NULL DEFAULT -1]

Q_HR_SIO_W Total number of sequential write requests occurring in this hour for this
cluster [DOUBLE NOT NULL DEFAULT -1]

Q_HR_NIO_R Total number of normal (random) read requests occurring in this hour for
this cluster [DOUBLE NOT NULL DEFAULT -1]

Q_HR_NIO_W Total number of normal (random) write requests occurring in this hour for
this cluster [DOUBLE NOT NULL DEFAULT -1]

Q_HR_RMR Total number of record mode read requests occurring in this hour for this
cluster [DOUBLE NOT NULL DEFAULT -1]

Q_HR_NVS_DELAY Total number of IO requests delayed due to NVS space constraints in this
hour for this cluster [DOUBLE NOT NULL DEFAULT -1]

290 IBM TotalStorage Expert Customized Reports


Figure B-13 Example of VPHCLCAC

Table B-68 Table: VPSNX


Column Description

I_VSM_IDX An internally generated identifier (index) for a storage server that has
performance summary data available in the database. [INTEGER, NOT
NULL]

I_VSM_SN The serial number of the associated storage server [CHAR(9), NOT NULL]

Figure B-14 Example of VPSNX

Appendix B. TotalStorage Expert database table layouts 291


Table B-69 Table: VPCUT
Column Description

I_ITEM_NO Identifier of the row number (currently one row, this value always zero)
[SMALLINT, NOT NULL]

D_PR_DATE Date of most recent set of sample records (VPCCH and VPCRK) the Data
Preparation task successfully processed (for all servers) [DATE, NOT
NULL]

I_PR_HOUR Hour of the day (0-23) the most recent set of sample records (VPCCH and
VPCRK) the Data Preparation task successfully processed [SMALLINT,
NOT NULL]

I_PERF_DB_LEVEL Level of vpcch and vpcrk tables. For automatic upgrade to latest level.
[CHAR(8), NOT NULL]

HRS_TO_RESUM Number of hours to reprocess the next time data preparation task
executes. Updated internally each time task runs. [SMALLINT, NOT NULL]

Figure B-15 Example of VPCUT

Table B-70 Table: VPHSS


Column Description

I_PR_SEQ_IDX Sequence number of the Data Preparation task that created this summary
data. [INTEGER, NOT NULL]

I_VSM_PERF_IDX An internally generated identifier (index) for a storage server that has
performance summary data available in the database. (See VPSNX)
[INTEGER, NOT NULL]

D_PR_DATE Date to which this performance data applies [DATE, NOT NULL]

I_PR_HOUR Hour of the day (0-23) to which this performance data applies [SMALLINT,
NOT NULL]

Q_HR_ADAPTERS Number of adapter/loops in this storage server [SMALLINT]

Q_HR_ARRAYS Number of logical arrays in this storage server [SMALLINT]

Q_HR_TOT_SECS Total number of sampling seconds (from VPCRK) in this hour for this
storage server [INTEGER]

292 IBM TotalStorage Expert Customized Reports


Column Description

Q_HR_TOT_IOS Total number of subsystem I/O requests issued to logical arrays in this
storage server in this hour [DOUBLE]

Q_HR_TOT_RESP_TIME Total time, in milliseconds, to satisfy all subsystem I/O requests issued to
logical arrays in this storage server [DOUBLE]

Q_HR_MAX_IOR Maximum subsystem I/O rate for logical arrays in this storage server in this
hour (max of the sample interval-level, average subsystem I/O rates,
PC_IOR_AVG, for logical arrays in this storage server) [INTEGER]

Q_HR_MAX_MSR Maximum time, in milliseconds, to satisfy subsystem I/O requests issued


to logical arrays in this storage server in this hour (max of the sample
interval-level, average millisecond times, PC_MSR_AVG) [INTEGER]

Q_HR_MAX_IOIN Maximum I/O intensity in this hour (max of sample interval-level


PC_IOR_AVG * PC_MSR_AVG * 1000 for all logical arrays in this storage
server) [DOUBLE]

Q_HR_AVG_IOR Average subsystem I/O rate for this storage server in this hour (number of
subsystem I/O requests/average number of sampling seconds)
[INTEGER]

Q_HR_AVG_MSR Average millisecond time to satisfy all subsystem I/O requests issued to
logical arrays in this storage server and in this hour (total time for all
subsystem I/O requests/number of subsystem I/O requests) [INTEGER]

Q_HR_AVG_IOIN Average I/O intensity for this storage server in this hour (Q_HR_AVG_IOR
* Q_HR_AVG_MSR * 1000) [DOUBLE]

C_PR_CONFIG_CHG Negative if a logical array cannot be found in the configuration snapshot for
this storage server, zero otherwise [SMALLINT]

Table B-71 Table: VPHAR


Column Description

I_PR_SEQ_IDX Sequence number of the Data Preparation task that created this summary
data. [INTEGER, NOT NULL]

I_VSM_PERF_IDX An ESS internally generated identifier (index) for a storage server that has
performance summary data available in the database. (See VPSNX)
[INTEGER, NOT NULL]

I_ARRAY_ID An ESS internally generated logical array identifier for a logical array
assigned to this disk group. (Some disk groups may contain more than one
logical array.) [CHAR(8), NOT NULL]

Appendix B. TotalStorage Expert database table layouts 293


Column Description

I_LOOP_ID SSA Loop Identifier (e.g., A or B) associated with the disk group containing
this logical array. [CHAR(1)]

I_DISK_GRP_NUM Identifying number of the disk group containing the logical array.
[SMALLINT]

I_DISK_NUM Disk number of the disk group (and lowest level identifier of the logical
array), if an independent disk, 0 otherwise [SMALLINT]

I_LSS_LA An internally generated logical subsystem identifier containing the logical


array in the I_ARRAY_ID field. (Some disk groups may contain more than
one LSS and logical array.) [INTEGER, NOT NULL]

I_CLUSTER_NO Cluster number for this logical array [SMALLINT, NOT NULL]

I_CARD_NUM Card number of adapter associated with this logical array [SMALLINT,
NOT NULL]

D_PR_DATE Date to which this performance data applies [DATE, NOT NULL]

I_PR_HOUR Hour of the day (0-23) to which this performance data applies [SMALLINT,
NOT NULL]

Q_HR_SAMPLES Number of performance sample records, collected for this logical array,
used in this summary [SMALLINT]

Q_HR_TOT_SECS Total number of sampling seconds (from VPCRK) for this logical array in
this hour [INTEGER]

Q_HR_TOT_IOS Total number of subsystem I/O requests issued to this logical array in this
hour [DOUBLE]

Q_HR_TOT_RESP_TIME Total time, in milliseconds, to satisfy all subsystem I/O requests issued to
this logical array, in milliseconds [DOUBLE]

Q_HR_MAX_IOR Maximum subsystem I/O rate for this logical array and this hour (max of the
sample interval-level, average subsystem I/O rates, PC_IOR_AVG, for this
logical array) [INTEGER]

Q_HR_MAX_MSR Maximum time, in milliseconds, to satisfy subsystem I/O requests issued


to this logical array for this hour (max of the sample interval-level, average
millisecond times, PC_MSR_AVG, for this logical array) [INTEGER]

Q_HR_MAX_IOIN Maximum I/O intensity for this logical array in this hour (max of
PC_IOR_AVG * PC_MSR_AVG * 1000) [DOUBLE]

Q_HR_AVG_IOR Average subsystem I/O rate for all requests issued to this logical array in
this hour (number of subsystem I/O requests/number of sampling
seconds) [INTEGER]

294 IBM TotalStorage Expert Customized Reports


Column Description

Q_HR_AVG_MSR Average millisecond time to satisfy all subsystem I/O requests issued to
this logical array in this hour (total time for all subsystem I/O
requests/number of subsystem I/O requests) [INTEGER]

Q_HR_AVG_IOIN Average I/O intensity for this logical array in this hour (Q_HR_AVG_IOR *
Q_HR_AVG_MSR * 1000) [DOUBLE]

Q_HR_DEV_UTIL Average device utilization percent (value is 0-100) for the DDMs in this
logical array (totals for the hour used in formula) [SMALLINT]

Q_HR_INTERVALS Number of sample time periods detected in this hour [SMALLINT]

Q_HR_DU_NO_EXCEPTS Number of sample time periods when the device utilization exceeded the
threshold (values for each sample time period are used in the formula)
[SMALLINT]

Q_HR_DU_MAX_EXCEPT Maximum disk utilization value (0-100), for all sample time period disk
utilization values exceeding the threshold (or zero, if threshold not
exceeded) [SMALLINT]

I_DU_THRESHOLD The percent (0-100) above which a disk utilization value is reported as an
exception. [SMALLINT]

C_PR_CONFIG_CHG Negative if a logical volume or array cannot be found in the configuration


snapshot for this storage server, zero otherwise [SMALLINT]

Q_HR_SEQ_IOS Total number of sequential IO requests for volumes belonging to this


logical array in this hour [DOUBLE NOT NULL DEFAULT -1]

Q_HR_TOT_VOL_IOS Total number of IO requests for volumes belonging to this logical array in
this hour [DOUBLE NOT NULL DEFAULT -1]

Table B-72 Table: VPHAD


Column Description

I_PR_SEQ_IDX Sequence number of the Data Preparation task that created this summary
data. [INTEGER, NOT NULL]

I_VSM_PERF_IDX An internally generated identifier (index) for a storage server that has
performance summary data available in the database. (See VPSNX)
[INTEGER, NOT NULL]

I_LSS_LA An ESS internally generated logical subsystem identifier, identifying one of


possibly several logical subsystems associated with this adapter/loop
[INTEGER, NOT NULL]

I_CLUSTER_NO Cluster number for this adapter/loop [SMALLINT, NOT NULL]

Appendix B. TotalStorage Expert database table layouts 295


Column Description

I_CARD_NO Card number of adapter associated with this adapter/loop [SMALLINT,


NOT NULL]

I_LOOP_ID SSA Loop Identifier (e.g., A or B) attached to the adapter [CHAR(1)]

D_PR_DATE Date to which this performance data applies [DATE, NOT NULL]

I_PR_HOUR Hour of the day (0-23) to which this performance data applies [SMALLINT,
NOT NULL]

Q_HR_ARRAYS Number of logical arrays in this adapter/loop [SMALLINT]

Q_HR_TOT_SECS Total number of sampling seconds (from VPCRK) for this adapter/loop in
this hour [INTEGER]

Q_HR_TOT_IOS Total number of subsystem I/O requests issued to this adapter/loop in this
hour [DOUBLE]

Q_HR_TOT_RESP_TIME Total time, in milliseconds, to satisfy all subsystem I/O requests issued to
this adapter/loop, in milliseconds [DOUBLE]

Q_HR_MAX_IOR Maximum subsystem I/O rate for this adapter/loop and this hour (max of
the sample interval-level, average subsystem I/O rates, PC_IOR_AVG, for
logical arrays associated with this adapter/loop) [INTEGER]

Q_HR_MAX_MSR Maximum time, in milliseconds, to satisfy subsystem I/O requests issued


to this adapter/loop (max of sample interval-level, average millisecond
times, PC_MSR_AVG, for logical arrays in the adapter/loop) [INTEGER]

Q_HR_MAX_IOIN Maximum I/O intensity for this adapter/loop in this hour (max of
PC_IOR_AVG * PC_MSR_AVG * 1000 for all logical arrays and sample
intervals) [DOUBLE]

Q_HR_AVG_IOR Average subsystem I/O rate for all requests issued to this adapter/loop in
this hour (number of I/O requests/average number of sampling seconds)
[INTEGER]

Q_HR_AVG_MSR Average millisecond time to satisfy all subsystem I/O requests issued to
this adapter/loop in this hour (total time for all subsystem I/O
requests/number of subsystem I/O requests) [INTEGER]

Q_HR_AVG_IOIN Average I/O intensity for this adapter/loop in this hour (Q_HR_AVG_IOR *
Q_HR_AVG_MSR * 1000) [DOUBLE]

Q_HR_DEV_UTIL Average device utilization percent (value is 0-100) for the DDMs in this
adapter/loop (weighted average of hourly disk utilization values for logical
arrays in this adapter/loop) [SMALLINT]

Q_HR_INTERVALS Number of sample time periods detected in this hour [SMALLINT]

296 IBM TotalStorage Expert Customized Reports


Column Description

Q_HR_DU_NO_EXCEPTS Number of sample time periods when one or more logical array device
utilization values, associated with this adapter/loop, exceeded the
threshold [SMALLINT]

Q_HR_DU_MAX_EXCEPT Maximum of all logical array disk utilization values (0-100) which exceeded
the threshold (or zero, if threshold not exceeded by any logical array in this
adapter/loop) [SMALLINT]

I_DU_THRESHOLD The percent (0-100) above which a disk utilization value is reported as an
exception. [SMALLINT]

C_PR_CONFIG_CHG Negative if a logical volume or array cannot be found in the configuration


snapshot for this storage server, zero otherwise [SMALLINT]

Q_HR_SEQ_IOS Total number of sequential IO requests for volumes with affinity to this
adapter/loop in this hour [DOUBLE NOT NULL DEFAULT -1]

Q_HR_TOT_VOL_IOS Total number of IO requests for volumes with affinity to this adapter/loop in
this hour [DOUBLE NOT NULL DEFAULT -1]

Table B-73 Table: VSCHT


Column Description

I_SCHD_TASK An unique identifier for the scheduled task. (See CSCHD and CSCHH)
[CHAR(32), NOT NULL]

I_USER The userid of the creator of the scheduled task. [CHAR(20), NOT NULL]

C_SCHD_TASK_TYPE The scheduled task type. For example "VPD" for performance data
collection and "VAC" for asset and capacity data collection. [CHAR(4), NOT
NULL]

I_VSM_IDX An internally generated identifier (index) for a storage server. See VMPDX
for storage server data associated with this index. [INTEGER, NOT NULL]

I_CLU_NO The cluster number (identifier for the cluster) for the cluster controller on
the storage server this task will communicate with. [INTEGER, NOT NULL]

Appendix B. TotalStorage Expert database table layouts 297


Figure B-16 Example of VSCHT

Table B-74 Table: VTSTATM


Column Description

I_SCHH_TASK_SEQ Task sequence number of the task execution (see CSCHH). [INTEGER,
NOT NULL]

Q_MACH_TRIED Number of storage servers for which this task attempted to perform work
[SMALLINT]

Q_MACH_SUCCEEDED Number of storage servers for which this task completed successfully
[SMALLINT]

Q_MACH_FAILED Number of storage servers for which this task failed [SMALLINT]

Table B-75 Table: VTSTATS


Column Description

I_SCHH_TASK_SEQ Task sequence number of the task execution (See CSCHH). [INTEGER,
NOT NULL]

Q_TOTAL_STEPS Number of execution steps that are being tracked for this task [SMALLINT]

I_LAST_GOOD_STEP Number of execution steps that succeeded (equal to Q_TOTAL_STEPS if


the task completed successfully) [SMALLINT]

Table B-76 Table: VMKHCAP


Column Description

D_MONTH_DATE First-of-month date for the month when data was collected. [DATE, NOT
NULL]

I_VSM_SN The serial number of the storage server. [CHAR(16), NOT NULL]

298 IBM TotalStorage Expert Customized Reports


Column Description

I_SHORT_NAME An alias name provided by an authorized end user for this storage server
(optional) [CHAR(16)]

I_VSM_TYPE The higher level identifier for the type of storage server product, for
example 2105. [CHAR(16), NOT NULL]

Q_VSM_TOTAL_CAP Total amount of capacity (counted as unformatted bytes) in this storage


server, in gigabytes [INTEGER]

Q_VSM_FB_TOT_GB Amount of storage formatted as fixed block storage, in gigabytes


[INTEGER]

Q_VSM_CKD_TOT_GB Amount of storage formatted as logical control units, in gigabytes


[INTEGER]

Q_VSM_UNFORMATD_GB Amount of undefined storage (Q_VSM_UNDEFND_GB) plus amount of


free disk space in "independent disk" disk groups, in gigabytes
[INTEGER]

D_TASK_DATE The date when this record was inserted by an asset/capacity collection
task. [DATE]

Table B-77 Table: VCMPORT


Column Description

I_VSM_IDX An internally generated identifier (index) for a storage server. See VMPDX
for storage server data associated with this index. [INTEGER, NOT NULL]

I_PORT_BAY the host adapter bay for this port. [SMALLINT, NOT NULL]

I_PORT_CARD the host adapter card (or slot) for this port. [SMALLINT, NOT NULL]

I_PORT_ID the ID (A or B) of this FC adapter port. [CHAR(1), NOT NULL]

I_CLUST_AFF cluster affinity of the FC adapter port (1 or 2). If there is no affinity, the
value is -1. [SMALLINT, NOT NULL]

I_PORT_TOPOLOGY the FC topology of the port (0 - not yet defined; 1 - point to point; 2 =
arbitrated loop). [SMALLINT, NOT NULL]

I_PORT_WWPN the world wide port name of this FC port (a string of 16 hexadecimal digits).
[CHAR(16), NOT NULL]

I_HOST_EXISTS indicator if at least one FC host is attached to this adapter port (value is 1);
if no FC host is attached to this port, the value is 0. [SMALLINT, NOT
NULL]

Appendix B. TotalStorage Expert database table layouts 299


Column Description

I_HOST_WWPN the world wide port name of a host assigned to this FC port (a string of 16
hexidecimal digits). If no host is assigned to this port, this field contains an
empty string. [CHAR(16), NOT NULL]

I_PORT_HOST The name of the host, as defined to the ESS Specialist (the Nickname). If
no host is assigned to this port, this field contains an empty string.
[CHAR(254), NOT NULL]

Table B-78 Table: VHNICKX


Column Description

I_HNICK_IDX An internally generated identifier (index) for an open system host


connected to a single storage server. [INTEGER NOT NULL]

I_VSM_IDX An internally generated identifier (index) for the storage server. See
VMPDX for storage server data associated with this index. [INTEGER NOT
NULL]

I_HNICK_NAME The name of the host on the ESS, as defined to the ESS Specialist
[CHAR(254) NOT NULL]

I_HNICK_HW_TYPE Internally defined numeric indicator for the type of operating system of the
host [SMALLINT]

I_HNICK_IP the IP address of the host (if available), otherwise null [CHAR(254)]

D_TASK_DATE The date when a change in the attributes were first detected by the ESS
Expert. [DATE]

T_TASK_TIME The time when a change in the attributes were first detected by the ESS
Expert. [TIME]

I_HNICK_ATTACH Flag for a attached host connected to one or more storage servers, 2 if FC
attached, 1 if SCSI attached. [SMALLINT]

Table B-79 Table: VCMHNICK


Column Description

I_HNICK_IDX An internally generated identifier (index) for an open system host


connected to a single storage server. [INTEGER NOT NULL]

I_VSM_IDX An internally generated identifier (index) for the storage server. See
VMPDX for storage server data associated with this index. [INTEGER NOT
NULL]

300 IBM TotalStorage Expert Customized Reports


Table B-80 Table: VCMHNICKV
Column Description

I_VSM_IDX An internally generated identifier (index) for the storage server. See
VMPDX for storage server data associated with this index. [INTEGER NOT
NULL]

I_HNICK_IDX An internally generated identifier (index) for an open system host


connected to a single storage server. [INTEGER NOT NULL]

I_VOL_IDX An internally generated identifier (index) for a fixed block, logical volume
assigned to at least one open system host. [INTEGER NOT NULL]

I_VOL_SN Serial number of the fixed block volume (LUN serial number) [CHAR(16)]

I_VOL_CLU_NUM Cluster number for this fixed block volume [SMALLINT]

I_VOL_SLOT_NUM Card number of adapter associated with this fixed block volume
[SMALLINT]

I_VOL_SSALOOP_ID SSA Loop Identifier (e.g., A or B) associated with the disk group containing
this fixed block volume [CHAR(1)]

I_VOL_DISK_GROUP Identifying number of the disk group containing this fixed block volume
[SMALLINT]

I_VOL_DISK_NUM Disk number of the disk group, if an independent disk, 0 otherwise


[SMALLINT]

I_VOL_NUM Identifying number of this fixed block volume (and lowest level identifier of
the volume) [SMALLINT]

Table B-81 Table: VHOSTDC


Column Description

I_VSM_SN The serial number of a storage server (ESS) [CHAR(16) NOT NULL]

I_HNICK_NAME The nickname of an open systems host defined on the storage server (as
defined to the ESS Specialist) [CHAR(254) NOT NULL]

I_HOST_CONN_IP The DNS network name or IP address of the host, or an empty string
[CHAR(254) NOT NULL DEFAULT '']

I_HOST_SOURCE Value is "U" if I_HOST_CONN_IP manually entered by the end user; "I" if
ESS Expert obtains value from its asset/capacity data [CHAR(1) NOT
NULL DEFAULT 'U']

Appendix B. TotalStorage Expert database table layouts 301


Column Description

I_USE_ESS_HNICK True("T") if I_HOST_CONN_IP reset to ESS Specialist host IP value; false


("F") otherwise [CHAR(1) NOT NULL DEFAULT 'F']

I_HOST_CONN_TYP Value is "I" if the I_HOST_CONN_IP field is an IP address, "N" otherwise


[CHAR(1)]

I_VSM_IDX An internally generated identifier (index) for the storage server [CHAR(1)]

Table B-82 Table: VSCHHDC


Column Description

I_SCHD_TASK A unique identifier for the scheduled task. (See CSCHD and CSCHH)
[CHAR(32) NOT NULL]

I_USER The userid of the creator of the scheduled task. [CHAR(20) NOT NULL]

C_SCHD_TASK_TYPE The scheduled task type, which is "VHD" for host data collection. [CHAR(4)
NOT NULL]

I_HNICK_IDX An internally generated identifier (index) for an open system host


connected to a single storage server [INTEGER NOT NULL]

I_HOST_CONN_IP The user-specified DNS network name or IP address of the host


[CHAR(254) NOT NULL]

I_HOST_CONN_TYP Value is "I" if the I_HOST_CONN_IP field is an IP address, "N" otherwise


[CHAR(1) NOT NULL]

I_VSM_IDX An internally generated identifier (index) for the storage server [INTEGER
NOT NULL]

Table B-83 Table: VHLPATH


Column Description

I_HOST_CONN_IP The user-specified DNS network name or IP address of the host


[CHAR(254) NOT NULL]

I_HOST_CONN_ALT The IP address of the host, if the user specified a network (DNS) name
[CHAR(19) NOT NULL]

I_HOST_CONN_TYP Value is "I" if the I_HOST_CONN_IP field is an IP address, "N" otherwise


[CHAR(1) NOT NULL]

302 IBM TotalStorage Expert Customized Reports


Column Description

I_VSM_IDX An internally generated identifier (index) for the storage server [INTEGER
NOT NULL]

I_VOL_SN Serial number of the fixed block volume (LUN serial number) [CHAR(16)
NOT NULL]

I_SDD_DEV_NAME The name used when requesting access through SDD for a virtual path to
the ESS volume, or null if no SDD path has been configured for the volume.
[CHAR(128)]

I_PATH_ID A numeric value associated with this path on the host to the ESS volume.
[SMALLINT NOT NULL]

I_PATH_ADP_NAME The name of the adapter within the host server to which the path is
attached. [CHAR(64) NOT NULL]

I_PATH_DSK_NAME The name of the ESS volume as known to SDD. This is the logical device
to which this path is bound. [CHAR(64) NOT NULL]

I_PATH_STATE The mode of the path as reported by SDD: 0 - normal, 1 - offline, 2 -


unknown [SMALLINT NOT NULL]

I_PATH_MODE The mode of the path as reported by SDD: 0 - closed, 1 - open, 2 - dead,
3 - invalid, 4 - unknown [SMALLINT NOT NULL]

D_TASK_DATE The date when the most recent successful data collection occurred for this
volume on this host. [DATE NOT NULL]

T_TASK_TIME The time when the most recent successful data collection occurred for this
volume on this host. [TIME NOT NULL]

I_TASK_SEQ_IDX Task sequence number of the host data collection task (See CSCHH)
[INTEGER NOT NULL]

Table B-84 Table: VHLNICK


Column Description

I_HOST_CONN_IP The user-specified DNS network name or IP address of the host


[CHAR(254) NOT NULL]

I_HNICK_IDX An internally generated identifier (index) for an open system host


connected to a single storage server [INTEGER NOT NULL]

I_VSM_IDX An internally generated identifier (index) for the storage server [INTEGER
NOT NULL]

Appendix B. TotalStorage Expert database table layouts 303


Column Description

I_VOL_SN Serial number of the fixed block volume (LUN serial number) [CHAR(16)
NOT NULL]

I_TASK_SEQ_IDX Task sequence number of the host data collection task (See CSCHH)
[INTEGER NOT NULL]

Table B-85 Table: VHLHOST


Column Description

I_HOST_CONN_IP The user-specified DNS network name or IP address of the host


[CHAR(254) NOT NULL]

I_HOST_OS_TYPE Type of operating system on the host, as provided by SDD [CHAR(16)]

I_HOST_SDD_VER Interface level of SDD [CHAR(12)]

Table B-86 Table: VHDCSTAT


Column Description

I_SCHH_TASK_SEQ Task sequence number of the host data collection task (See CSCHH)
[INTEGER NOT NULL]

Q_HOST_TRIED Number of open systems hosts attempted [SMALLINT]

Q_HOST_SUCCEEDED Number of open systems hosts succeeded [SMALLINT]

Q_HOST_FAILED Number of open systems hosts failed [SMALLINT]

Q_HOST_FAILED_CN Number of open systems hosts failed due to no IP connection available to


host, or network name not known [SMALLINT]

Q_HOST_FAILED_SD Number of open systems hosts failed because subsystem device driver
does not respond on host (SDD may not be installed) [SMALLINT]

Table B-87 Table: VTHRESHOLD


Column Description

METRIC The metric to which this threshold definition applies. Current ESS metrics:
"CHT" (cache holding time), "NVS" (percent of time NVS cache is full), &
"DU" (percent of time disks at ESS lower interface are utilized) [CHAR(30)
NOT NULL]

304 IBM TotalStorage Expert Customized Reports


Column Description

SCOPE The level of granularity to which this threshold definition applies. Current
levels: "IBM Recommended", "General", or a specific ESS serial number.
[CHAR(40) NOT NULL]

TYPE Indicator for whether the values ascend to critical ("U"), or descend to
critical ("L") [CHAR(1) WITH DEFAULT 'U']

CVALUE The critical value for this metric and this scope. [REAL]

WVALUE The warning value for this metric and this scope. [REAL]

CHECKING If "Y", check whenever a new statistic of this metric is collected/generated


to see if it overflows the given threshold values; if so, log this event &
optionally issue alert (see next 2 columns). If "N", do no checking.
[CHAR(1)]

TOALERT Indicates which threshold level must be reached in order to issue an alert.
"W" issue alert when Warning threshold is reached; "C" when critical
threshold reached, "N" do not issue any alert. [CHAR(1)]

SUPPRESSINTERVAL The time in seconds when a threshold overflow condition will not result in
a new alert, after one alert for the same component is already issued.
[INTEGER]

Table B-88 Table: VOPEVENT


Column Description

EVENTID An identifier for nature of a failing ESS processing event. Current events
are "essTaskFailed", "essConnectionFailed", "essDataProcessingFailed",
"essPerfDataCollectFailed", "essHostServerFailed" [CHAR(30) NOT
NULL]

TOALERT Indicates whether an SNMP alert should be issued when this failing event
occurs. Values are "Y" to issue an alert, "N" to not issue an alert.
[CHAR(1)]

SUPPRESSINTERVAL The time in minutes when a failing event will not result in a new alert, after
one alert is issued for the identical failing event. [INTEGER]

Table B-89 Table: TDATASRC


Column Description

IP IP address

Appendix B. TotalStorage Expert database table layouts 305


Column Description

SYSTYPE Server type, "LS" for Library manager, "GS" for Gemini Controller

BASESYSID S3494 ID or Gemini ID this data source reports about

ACTIVE Flag for whether data collection should collect from this node

REALINTERVAL Real-time data collection interval (in minute) that Expert collects data from,
0 for Gemini

Table B-90 Table: TDATA


Column Description

SUMMARY Method to sum up, e.g., "sum", "avg", "max"

SOURCE Name in SMF94, VTS Real, Gemini, etc

METRIC Name of data, e.g., "VRA", "VPA"

TYPE Database type

TABLE Stored in which database table

Table B-91 Table: TTHRESHOLD


Column Description

METRIC Metric of this threshold

LEVEL Data level of this threshold, "H"=hourly, "D"=daily, "W"=weekly,


"M"=monthly

SCOPE Additional part of the key, for narrowing applicability. "SYSTEM" means no
narrowing.

TYPE Threshold type, "U"=upper limit, "L"=lower limit

CVALUE The critical value

WVALUE The warning value

ENABLED Whether this threshold is enabled

306 IBM TotalStorage Expert Customized Reports


Table B-92 Table: TALARMDISPLAY
Column Description

USERID User ID

SEVERITY Severity

DISPLAY What to display

Table B-93 Table: TSASSET


Column Description

SYSID System ID, use SNO 5 EBCDIC Library sequence number, uniquely
identifies a ATL

SYSNAME (Mnemonic) name of the system

VTS1ID Sequence number for first VTS.

VTS2ID Sequence number for second VTS.

SLT Library type number. For example, "003495" represents the &atlds.

SLM Library model number. For example, "L30" represents model L30

SMA Library manufacturer. Always equals "IBM"

SPL Library plant of manufacture. For example, "13" represents San Jose,
California, and "77" represents Valencia, Spain

Table B-94 Table: TSPERF


Column Description

SYSID System ID of this record

LEVEL Data level, "H"=hourly, "D"=daily, "W"=weekly, "M"=monthly

DATE Date of this record

TIME Time of this record

SPAN null

ENDTIMESTAMP null

REF Count of Hourly records involved in this record

Appendix B. TotalStorage Expert database table layouts 307


Column Description

LID Number of drives installed

LMD Number of drives mounted

LM1 Maximum number of drives mounted

LM2 Minimum number of drives mounted

LM3 Average number of drives mounted

LT1 Maximum duration of a drive stayed mounted

LT2 Minimum duration of a drive stayed mounted

LT3 Average duration of a drive stayed mounted

MPR Number of mount requests currently pending

MP1 Maximum number of mount requests pending

MP2 Minimum number of mount requests pending

MP3 Average number of mount requests pending

MTO Number of mounts

MIN Index mounts. An index mount is a mount accomplished using the


automatic cartridge loader of a 3490 tape drive

MPM Pre-mounts. A single pre-mount operation causes a volume to be added


to the automatic cartridge loader of a 3490 tape drive

MT1 Maximum amount of time, in seconds, required to perform any single


mount operation

MT2 Minimum amount of time, in seconds, required to perform any single mount
operation

MT3 Average amount of time, in seconds, required to perform a single mount


operation

DPR Number of demount requests currently pending

DP1 Maximum number of demount requests pending

DP2 Minimum number of demount requests pending

DP3 Average number of demount requests pending

DTO Number of demounts

308 IBM TotalStorage Expert Customized Reports


Column Description

DIN Index demounts. An index demount moves a volume from the feed station
to the output stack of the automatic cartridge loader of a 3490 tape drive

DPM Post-demounts. A post-demount operation moves a volume from the


output stack of the automatic cartridge loader of a 3490 tape drive

DT1 Maximum amount of time, in seconds, required to perform any single


demount operation

DT2 Minimum amount of time, in seconds, required to perform any single


demount operation

DT3 Average amount of time, in seconds, required to perform a single demount


operation

EPR Number of eject requests currently pending. An eject operation moves one
volume from the ATL to an output station for an operator to remove

EP1 Maximum number of eject requests pending

EP2 Minimum number of eject requests pending

EP3 Average number of eject requests pending

ETO Totals number of ejects

ET1 Maximum amount of time, in seconds, required to perform any single eject
operation

ET2 Minimum amount of time, in seconds, required to perform any single eject
operation

ET3 Average amount of time, in seconds, required to perform a single eject


operation

APR Number of audit requests currently pending. When the host requests an
audit operation, the accessor moves to a shelf location and ensures that a
volume is present

AP1 Maximum number of audit requests pending

AP2 Minimum number of audit requests pending

AP3 Average number of audit requests pending

ATO Number of audits

AT1 Maximum amount of time, in seconds, required to perform any single audit
operation

Appendix B. TotalStorage Expert database table layouts 309


Column Description

AT2 Minimum amount of time, in seconds, required to perform any single audit
operation

AT3 Average amount of time, in seconds, required to perform a single audit


operation

INS Number of insert stores. This number is the number of volumes moved
from an input station to a location inside the ATL

Table B-95 Table: TVASSET


Column Description

SYSID System ID, use VLS 5 EBCDIC Library sequence number for the library
segment for which VTS statistics are being reported

SYSNAME (Mnemonic) name of the system

LIBID The S3494 Library this VTS belongs to

GEMID The Gemini system this VTS belongs to (if any)

VNO Clustered library type: 1 - user-interface library; 2 - not; 255 - composite


library

SYSTYPE B16, B18, GEM

CHNTYPE EHPO or not

DRVTYPE B1A or E1A

NUMAX0 Number of virtual tape controllers (AX0s), for Peer-to-Peer

Table B-96 Table: TVCAPC


Column Description

SYSID System ID of this record

LEVEL Data level, "H"=hourly, "D"=daily, "W"=weekly, "M"=monthly

DATE Date of this record

TIME Time of this record

SPAN null

310 IBM TotalStorage Expert Customized Reports


Column Description

ENDTIMESTAMP null

REF Count of Hourly records involved in this record

NUMBS Channel blocks written

VBW bytes written from hosts to cache

VBR bytes read from cache to hosts

VTW bytes written from cache to tapes

VTR bytes read from tapes to cache

BSRAT Backstore compression ration

HARAT Host adapter compression ratio

VCA average age of virtual volumes in cache

MTVCA max tape volume cache age

VCZ average size of virtual volumes in cache, at end

VNM number of virtual volumes in cache, at end

VBA bytes of active data, at end

VLA number of virtual volumes, at end

VEC bytes of empty tapes, at end

SRTCT Scratch stacked volume count, at end

PRICT Private stacked volume count, at end

TVCS Tape volume cache size, at end

ESCON number of ESCON channel, at end

SCSI number of SCSI channel, at end

THRES Reclaim threshold percentage, at end

MAXVOLUMESINVTS Max Logical Volumes allowed to be configured

MAXACTIVEDATA Max Active Data calculated

FREESTORAGEALARM Level of Free Storage to set alarm

LEASTVCA For hourly, same as VCA, above. For daily, weekly, ..., min of averages

Appendix B. TotalStorage Expert database table layouts 311


Table B-97 Table: TVPERF
Column Description

SYSID System ID of this record

LEVEL Data level, "H"=hourly, "D"=daily, "W"=weekly, "M"=monthly

DATE Date of this record

TIME Time of this record

REF Count of Hourly records involved in this record

VTI number of physical drives installed, at end

VTA number of physical drives available, at end

VTX maximum number of physical drives mounted

VTN minimum number of physical drives mounted

VTV average number of physical drives mounted

VMX maximum time to mount a physical drive

VMN minimum time to mount a physical drive

VMV average time to mount a physical drive

VPS number of physical mounts for Staging

VPM number of physical mounts for Migration

VPR number of physical mounts for Reclamation

ACA Accessor A mounts. The count of the number of mount operations


accessor A completed during the last hour

ACB Accessor B mounts. The count of the number of mount operations


accessor B completed during the last hour

VDC number of virtual drives configured, at end

VDX maximum number of virtual drives mounted

VDN minimum number of virtual drives mounted

VDA average number of virtual drives mounted

VVX maximum duration of a virtual drive stayed mounted

VVN minimum duration of a virtual drive stayed mounted

VVA average duration of a virtual drive stayed mounted

312 IBM TotalStorage Expert Customized Reports


Column Description

VRX maximum time to mount a virtual drive

VRN minimum time to mount a virtual drive

VRA average time to mount a virtual drive

MAXFR Maximum fast-ready mount time

MINFR Minimum fast-ready mount time

AVGFR Average fast-ready mount time

MAXCH Maximum cache-hit mount time

MINCH Minimum cache-hit mount time

AVGCH Average cache-hit mount time

MAXRM Maximum recall-mount mount time

MINRM Minimum recall-mount mount time

AVGRM Average recall-mount mount time

VFR number of virtual mounts for Fast-Ready

VMH number of virtual mounts for Cache-Hit

VMS number of virtual mounts for Staging

VMP number of virtual mounts for Migration

RCPRT Recall predominate throttling percentage

WROVT Write overrun predominate throttling percentage

AVRCT Average recall throttle value

AVWOT Average write overrun throttle value

TOTAT Overall average throttle value

IM1 Number of physical volumes processed during import operations that


completed in the last hour

EX1 Number of physical volumes that contain the successfully exported logical
volumes exported during the last hour

IM2 Number of logical volumes successfully imported during import operations


that completed during the last hour

EX2 Number of logical volumes successfully exported for export operations that
completed during the last hour

Appendix B. TotalStorage Expert database table layouts 313


Column Description

IM3 Megabytes of data imported for import operations that completed in the
last hour

EX3 Megabytes of data exported during export operations that completed in the
last hour

IM4 Megabytes of data that was moved from one physical stacked volume to
another as part of the import operations that completed in the last hour

EX4 Megabytes moved from one physical stacked volume to another as part of
the export operations completed in the last hour

Table B-98 Table: TVCHNDIST


Column Description

SYSID System ID of this record

LEVEL Data level, "H"=hourly, "D"=daily, "W"=weekly, "M"=monthly

DATE Date of this record

TIME Time of this record

REF Count of Hourly records involved in this record

B0KB Percentage of 0 to 2K channel blocks written

B2KB Percentage of >2K to 4K channel blocks written

B4KB Percentage of >4K to 8K channel blocks written

B8KB Percentage of >8K to 16K channel blocks written

B16KB Percentage of >16K to 32K channel blocks written

B32KB Percentage of >32K to 64K channel blocks written

B64KB Percentage of >64K channel blocks written

Table B-99 Table: TVACTDIST


Column Description

SYSID System ID of this record

LEVEL Data level, "H"=hourly, "D"=daily, "W"=weekly, "M"=monthly

314 IBM TotalStorage Expert Customized Reports


Column Description

DATE Date of this record

TIME Time of this record

REF Count of Hourly records involved in this record

ADV05 Number of volumes containing 0 to 5 percent active data

ADV10 Number of volumes containing greater than 5 to 10 percent active data

ADV15 Number of volumes containing greater than 10 to 15 percent active data

ADV20 Number of volumes containing greater than 15 to 20 percent active data

ADV25 Number of volumes containing greater than 20 to 25 percent active data

ADV30 Number of volumes containing greater than 25 to 30 percent active data

ADV35 Number of volumes containing greater than 30 to 35 percent active data

ADV40 Number of volumes containing greater than 35 to 40 percent active data

ADV45 Number of volumes containing greater than 40 to 45 percent active data

ADV50 Number of volumes containing greater than 45 to 50 percent active data

ADV55 Number of volumes containing greater than 50 to 55 percent active data

ADV60 Number of volumes containing greater than 55 to 60 percent active data

ADV65 Number of volumes containing greater than 60 to 65 percent active data

ADV70 Number of volumes containing greater than 65 to 70 percent active data

ADV75 Number of volumes containing greater than 70 to 75 percent active data

ADV80 Number of volumes containing greater than 75 to 80 percent active data

ADV85 Number of volumes containing greater than 80 to 85 percent active data

ADV90 Number of volumes containing greater than 85 to 90 percent active data

ADV95 Number of volumes containing greater than 90 to 95 percent active data

ADV00 Number of volumes containing greater than 95 to 100 percent active data

Table B-100 Table: TGPERF


Column Description

SYSID System ID of this record

Appendix B. TotalStorage Expert database table layouts 315


Column Description

LEVEL Data level, "H"=hourly, "D"=daily, "W"=weekly, "M"=monthly

DATE Date of this record

TIME Time of this record

SPAN null

REF Count of Hourly records involved in this record

CLLVC Composite library logical volumes to be copied

CLDTC Composite library data yet to be copied

CLMT0 Composite library mounts completed for B18-0

CLMT1 Composite library mounts completed for B18-1

CLDC0 Data copied by AX0 number 0

CLVC0 Volumes copied by AX0 number 0

CLRD0 Read data transferred through AX0 number 0

CLWD0 Write data transferred through AX0 number 0

CLCM0 Category mounts for AX0 number 0

CLSM0 Specific cache mounts for AX0 number 0

CLRM0 Specific recall mounts for AX0 number 0

CLDC1 Data copied by AX0 number 1

CLVC1 Volumes copied by AX0 number 1

CLRD1 Read data transferred through AX0 number 1

CLWD1 Write data transferred through AX0 number 1

CLCM1 Category mounts for AX0 number 1

CLSM1 Specific cache mounts for AX0 number 1

CLRM1 Specific recall mounts for AX0 number 1

CLDC2 Data copied by AX0 number 2

CLVC2 Volumes copied by AX0 number 2

CLRD2 Read data transferred through AX0 number 2

CLWD2 Write data transferred through AX0 number 2

316 IBM TotalStorage Expert Customized Reports


Column Description

CLCM2 Category mounts for AX0 number 2

CLSM2 Specific cache mounts for AX0 number 2

CLRM2 Specific recall mounts for AX0 number 2

CLDC3 Data copied by AX0 number 3

CLVC3 Volumes copied by AX0 number 3

CLRD3 Read data transferred through AX0 number 3

CLWD3 Write data transferred through AX0 number 3

CLCM3 Category mounts for AX0 number 3

CLSM3 Specific cache mounts for AX0 number 3

CLRM3 Specific recall mounts for AX0 number 3

CLDC4 Data copied by AX0 number 4

CLVC4 Volumes copied by AX0 number 4

CLRD4 Read data transferred through AX0 number 4

CLWD4 Write data transferred through AX0 number 4

CLCM4 Category mounts for AX0 number 4

CLSM4 Specific cache mounts for AX0 number 4

CLRM4 Specific recall mounts for AX0 number 4

CLDC5 Data copied by AX0 number 5

CLVC5 Volumes copied by AX0 number 5

CLRD5 Read data transferred through AX0 number 5

CLWD5 Write data transferred through AX0 number 5

CLCM5 Category mounts for AX0 number 5

CLSM5 Specific cache mounts for AX0 number 5

CLRM5 Specific recall mounts for AX0 number 5

CLDC6 Data copied by AX0 number 6

CLVC6 Volumes copied by AX0 number 6

CLRD6 Read data transferred through AX0 number 6

Appendix B. TotalStorage Expert database table layouts 317


Column Description

CLWD6 Write data transferred through AX0 number 6

CLCM6 Category mounts for AX0 number 6

CLSM6 Specific cache mounts for AX0 number 6

CLRM6 Specific recall mounts for AX0 number 6

CLDC7 Data copied by AX0 number 7

CLVC7 Volumes copied by AX0 number 7

CLRD7 Read data transferred through AX0 number 7

CLWD7 Write data transferred through AX0 number 7

CLCM7 Category mounts for AX0 number 7

CLSM7 Specific cache mounts for AX0 number 7

CLRM7 Specific recall mounts for AX0 number 7

Table B-101 Table: TVREAL


Column Description

SYSID System ID of this record

LEVEL Data level for real: reporting interval in minutes

DATE Date of this record

TIME Time of this record

SPAN Time duration between the collection time of this record and last record, if
SPAN is too long compared to the collect interval, it will be adjusted to the
collect interval by a factor REF under the assumption that some
collection(s) is lost

REF Factor used to normalize metrics when span from last record is too long

PTPENABLED PTPEnabled

EXPIMPENABLED ExportImport

OPMODE OpMode

RECENABLED RecEnabled

RECINHIBITED RecInhibited

318 IBM TotalStorage Expert Customized Reports


Column Description

RECING RecInProgress

RECONCILEING ReconcileInProgress

EXPORTING ExportInProgress

IMPORTING ImportInProgress

RAIDREBUILDING RAIDRebuildInProgress

ROVRECOVERYING ROVRecoveryInProgress

NUMROVOL NumberROVolumes

ROVOLPROCESSED ROVolumeBeingProcessed

VBW ChannelWriteBytes

VBR ChannelReadBytes

RECALLSQUEUED RecallsQdOrInProg

MBTOCOPY MBToCopyToBackstore

VPM NumDrivesForMigration

VPS NumDrivesForRecall

VPR NumDrivesForReclamation

VPIX NumDrivesForImport

VPEX NumDrivesForExport

THRTRECALLPCNT RecallPredominate

THRTWRITEPCNT WriteOverrun

THRTRECALL AverageRecall

THRTWRITE AverageWrite

THRTALL Overall

VOLTOEXPORT TotalValidVolumesToExport

NUMVOLEXPORTED NumberVolumesExported

VOLTOIMPORT TotalValidVolumesToImport

NUMVOLIMPORTED NumberVolumesImported

HOSTCHANNELADAPTER HostChannelAdapter

Appendix B. TotalStorage Expert database table layouts 319


Column Description

RAIDARRAYADAPTER RAIDArrayAdapter

BACKDATAPATH BackstoreDataPath

POWERSUPPLY RedundantPowerSupply

ALLRAIDHDDS AllRAIDHDDs

SPAREHDDS SpareHDDs

NUMVOLFILLING NumberVolumesFilling:The number of volumes filling is the number of


tapes which contain ADSM data but are not yet full tapes. ADSM will
append new files to filling tapes, and a filling tape will generally be
associated with each physical tape drive NUMVOLACTIVEDATA
NumberVolumesActiveData

NUMEMPTYPHYVOL NumberEmptyPhysicalVols

DEV0ST Status of Backstore Device 0: 0:notInUse, 1:inUse

DEV1ST Status of Backstore Device 1: 0:notInUse, 1:inUse

DEV2ST Status of Backstore Device 2: 0:notInUse, 1:inUse

DEV3ST Status of Backstore Device 3: 0:notInUse, 1:inUse

DEV4ST Status of Backstore Device 4: 0:notInUse, 1:inUse

DEV5ST Status of Backstore Device 5: 0:notInUse, 1:inUse

DEV0VOL Physical Volume mounted on Backstore Device 0

DEV1VOL Physical Volume mounted on Backstore Device 1

DEV2VOL Physical Volume mounted on Backstore Device 2

DEV3VOL Physical Volume mounted on Backstore Device 3

DEV4VOL Physical Volume mounted on Backstore Device 4

DEV5VOL Physical Volume mounted on Backstore Device 5

DEV6VOL Physical Volume mounted on Backstore Device 6

DEV7VOL Physical Volume mounted on Backstore Device 7

DEV8VOL Physical Volume mounted on Backstore Device 8

DEV9VOL Physical Volume mounted on Backstore Device 9

DEV10VOL Physical Volume mounted on Backstore Device 10

DEV11VOL Physical Volume mounted on Backstore Device 11

320 IBM TotalStorage Expert Customized Reports


Column Description

DEV6ST Status of Backstore Device 6: 0:notInUse, 1:inUse

DEV7ST Status of Backstore Device 7: 0:notInUse, 1:inUse

DEV8ST Status of Backstore Device 8: 0:notInUse, 1:inUse

DEV9ST Status of Backstore Device 9: 0:notInUse, 1:inUse

DEV10ST Status of Backstore Device 10: 0:notInUse, 1:inUse

DEV11ST Status of Backstore Device 11: 0:notInUse, 1:inUse

Table B-102 Table: TTEMP


Column Description

TYPE Type of data stored temporarily: "GEM-VTS":their relationship

F1 Field 1: GEM ID

F2 Field 2: VTS ID

F3 Field 3

Table B-103 Table: TREPINFO


Column Description

REPID report id

REPSOURCE null

XML all definition information related to the report

PARENTREP parent report: report from which customized report derived

Appendix B. TotalStorage Expert database table layouts 321


322 IBM TotalStorage Expert Customized Reports
C

Appendix C. Additional material


This redbook refers to additional material that can be downloaded from the
Internet as described below.

Locating the Web material


The Web material associated with this redbook is available in softcopy on the
Internet from the IBM Redbooks Web server. Point your Web browser to:
ftp://www.redbooks.ibm.com/redbooks/SG247016

Alternatively, you can go to the IBM Redbooks Web site at:


ibm.com/redbooks

Select the Additional materials and open the directory that corresponds with
the redbook form number, SG247016.

Using the Web material


The additional Web material that accompanies this redbook includes the
following files:

© Copyright IBM Corp. 2003. All rights reserved. 323


File names and descriptions
򐂰 Database_Table_Definitions.zip
TotalStorage Expert table definitions
򐂰 Script_Output_Examples.zip
Script output examples for the sample scripts of this books
򐂰 Scripts.zip
Sample scripts of this book
򐂰 Spreadsheet_Examples.zip
Spread sheet examples

System requirements for downloading the Web material


The following system configuration is recommended:
Hard disk space: 4 MB minimum

How to use the Web material


Create a subdirectory (folder) on your workstation, and unzip the contents of the
Web material zip file into this folder.

324 IBM TotalStorage Expert Customized Reports


Glossary

abend. Abnormal end of a task. American National Standards Institution


(ANSI). An organization, consisting of producers,
access path. The path used to get to data consumers, and general interest groups, that
specified in SQL statements. An access path can establishes the procedures by which accredited
involve an index or a sequential search. organizations create and maintain voluntary industry
standards in the United States.
address. 1. A character or group of characters that
identify a register, a particular part of storage, or ANSI. See “American National Standards Institute
some other data source or destination. 2. To refer to (ANSI)”.
a device or an item of data by its address. 3. The
location, identified by an address code, of a specific ANSI/ISO. The American National Standards
section of the recording medium or storage. 4. A Institute/International Organization for
name, label, or number identifying a location in Standardization.
storage, a device in a system or network, or any
other data source. 5. In data communication, the API (application programming interface). A
unique code assigned to each device or workstation functional interface supplied by the operating system
connected to a network. or by a separately orderable licensed program that
allows an application program written in a high-level
advanced interactive executive (AIX). An language to use specific data or functions of the
operating system used in the RISC System/6000® operating system or licensed program.
computers. See also “AIX Operating System”.
applet. A Java program included in an HTML page.
AIX Operating System. IBM’s implementation of Applets work with Java-enabled browsers, such as
the UNIX operating system. The RISC Netscape Navigator, and are loaded when the HTML
System/6000® computer, among others, runs on the page is processed.
AIX operating system.
application. A program or set of programs that
AIX. See “advanced interactive executive (AIX)”. perform a task, for example, a payroll application.

alert. A message or log that a storage facility array. An arrangement of related disk drive
generates as the result of error event collection and modules that you have assigned to a group.
analysis. An alert indicates that you need to perform
some service action. ASCII (American Standard Code for Information
Interchange). An interchange code in which code
ALTER. An SQL statement used to change the pages use 7-bit coded characters.
definition of an existing DB2 UDB object.
asset management. The organization and
American National Standard Code for arrangement of items, such as storage devices, into
Information Interchange (ASCII). A coding useful and logical units. ESRM for example,
scheme that is defined by ANSI X3.4-1977. identifies storage resources by parameters that
Programmers use it to represent various alphabetic, include, type, model, serial number, features,
numeric, and special symbols with a seven-bit code. location, acquisition date, price, and maintenance
information.

© Copyright IBM Corp. 2003. All rights reserved. 325


association table. The device used to track the business application. An application that
relationship between two tables. transacts the business of a company; an application
that performs business transactions on behalf of the
authorization ID (AUTHID). A string that can be company.
verified for connection to DB2 and to which a set of
privileges are allowed. It can represent an individual, business entity. Something that is fundamental to
an organizational group, or a function, but DB2 does an organization and for which an individual instance
not determine this representation. or occurrence can be uniquely identified.

availability. For a storage subsystem, the degree business logic. The code that implements a
to which a data set can be accessed when business application.
requested by a user.
business model. The major business entities of a
backup. The process of creating a copy of a data company and their relationship to each other.
set or object to be used in case of accidental loss.
cache hit ratio. The percentage of read and write
base table. 1. A table created by the SQL requests serviced out of cache. Indicates the
CREATE TABLE statement that is used to hold workload and effectiveness of cache. The higher the
persistent data. Contrast with result table. 2. A table ratio, the more data found in cache, and the less
containing a LOB column definition. The actual LOB work the controller has to do to find data. Note: in
column data is not stored along with the base table. open systems a low ratio is normal. The hit ratio can
The base table contains a row identifier for each row be used to assess the locality present in the
and an indicator column for each of its LOB columns. workload. Hit ratios tend to vary widely, ranging from
3. The set of columns and rows represented by the almost zero for truly random requests to almost 100
table or view name in an SQL FROM clause. percent for large sequential transfers. This field
should be used primarily to gain insight into
bay. Physical space on an IBM Enterprise Storage workload characteristics. To check whether
Server rack. A bay contains SCSI interface cards sufficient cache has been configured, see “cache
and SSA device interface cards. holding time”.

bind. The process by which the output from the cache hit. An event that occurs when a read
DB2 precompiler is converted to a usable control operation is sent to the cluster, and the requested
structure called a package or an application plan data is found in cache.
(OS/390). During the process, access paths to the
data are selected and some authorization checking cache holding time. The average holding time (in
is performed. seconds), averaged over the observed time period.
This indicates the average time data remained in
bindfile. A DB2 UDB UNIX/Intel file that contains cache. Data should remain in cache at least 30
all the SQL statements and other information seconds. Action to take for problem: get more cache.
needed to generate a package for a program. The
precompiler generates this file when the BINDFILE cache miss. An event that occurs when a read
option of the PREP command is chosen. A package operation is sent to the cluster, but the data is not
can then be generated from the bindfile and stored found in cache.
in the database by the BIND command.

326 IBM TotalStorage Expert Customized Reports


cache. A part of memory or disk space that class. A class in Java is like a template for an
contains recently accessed data, designed to speed object. A class contains data and function and is
up subsequent access to the same data. The cache called a method. Both the data and methods can be
is often used to hold a local copy of frequently used public, or private, which determines whether
data that is accessible over a network. program code outside the class can access the data.
Usually, data values are private. Public methods are
capacity management. The process of managing used to store data and retrieve data from the class.
storage assets based on capacity projections. This keeps programs from changing these internal
ESRM for example, provides a view of common data values accidentally. Each Java class is an
capacity metrics (total capacity, utilization object which can have many instances.
percentage and trends, fragmentation, and
efficiency) across a variety of storage subsystems. clause. In SQL, a distinct part of an SQL
statement, such as a SELECT clause or a WHERE
catalog table. Any table in the DB2 catalog. clause.

catalog. In DB2 UDB, a collection of tables used call level interface (CLI). A callable application
by DB2 UDB to manage itself. Among other things, program interface (API) for database access, which
the catalog contains descriptions of objects such as is an alternative to using embedded SQL. In contrast
tables, views, and indexes. to embedded SQL, DB2 CLI does not require the
user to precompile or bind applications, but instead
channel. In the ESA/390 architecture, the part of provides a standard set of functions to process SQL
a channel subsystem that manages a single I/O statements and related services at run time.
interface between a channel subsystem and a set of
controllers. channel command retries (CCR). In the client. A computer system or process that
ESA/390 architecture, the protocol used between a requests a service of another computer system or
channel and a controller that allows the controller to process that is typically referred to as a server.
request that the channel reissue the current Multiple clients may share access to a common
command. server.

character string. A sequence of bytes client/server. A distributed application design


representing bit data, single-byte characters, or a model in which the front-end transaction (the one
mixture of single and double-byte characters. that initiates the conversation) is called the client and
controls the course of the conversation. The server
Customer Information Control System (CICS) receives a request from the client, processes it, and
A general-purpose data communication system (or returns the results.
online transaction processing system). An online
system controller and some batch utilities that are Command Line Processor (CLP). A
capable of supporting a network of many terminals. character-based interface for entering SQL
statements and database manager commands.
CICS/ESA®. Customer Information Control
System/Enterprise Systems Architecture.

CICS/MVS®. Customer Information Control


System/Multiple Virtual Storage.

CKD. See “count-key-data (CKD)”

Glossary 327
cluster. 1. A partition of a storage server that is compression. 1. The process of eliminating gaps,
capable of performing all functions of a storage empty fields, redundancies, and unnecessary data
server. When there are multiple clusters in a storage to reduce the length of records or blocks of data. 2.
server, any remaining clusters in the configuration Any encoding to reduce the number of bits used to
can take over the processing of any failing clusters. represent a given message or record.
2. On an AIX platform, a cluster is a group of nodes
within a complex. 3. One of the functional concurrency. The shared use of resources by
components in ESS. A Cluster plays a major role more than one application process at the same time.
required for Storage Control. ESS has two Clusters,
each of which works independently configuration management. The control of
information necessary to identify both physical and
column function. An SQL operation that derives logical information system resources and their
its result from a collection of values across one or relationship to one another. ESRM, for example,
more rows. Contrast with scalar function. provides a way to view and modify hardware
configurations for host adapters, caches, and
column. The vertical component of a table. A storage devices at the licensed internal code,
column has a name and a particular data type (for operating system, and software application level.
example, character, decimal, or integer).
configuration. 1. The manner in which the
command. 1. A control signal. 2. In a conceptual hardware and software of an information processing
schema language, the order or trigger for an action system are organized and interconnected. 2. The
or permissible action to take place. 3. Loosely, a physical and logical arrangement of devices and
mathematical or logical operator. 4. A statement programs that make up a computing system. 3. The
used to request a function of the system. 5. A devices and programs that make up a system,
request from a terminal for the performance of an subsystem, or network.
operation or the execution of a particular program.
configure. To define the logical and physical
commit. The operation that ends a unit of work by configuration of the input/output (I/O) subsystem via
releasing locks so that the database changes made the user interface provided for this function on the
by that unit of work can be perceived by other storage facility.
processes.
constant. A language element that specifies an
comparison operator . A token (such as =, >, <) unchanging value. Constants are classified as string
used to specify a relationship between two values. constants or numeric constants. Contrast with
variable.
compress. (1) To reduce the amount of storage
required for a given data set by having the system count field. The first field of a CKD record. This
replace identical words, phrases, or data patterns eight-byte field contains a four-byte track address
with a shorter token associated with that word, (CCHH). It defines the cylinder and head that are
phrase, or data pattern. (2) To reclaim the unused associated with the track, and a one-byte record
and unavailable space in a partitioned data set that number (R) that identifies the record on the track. It
results from deleting or modifying members by defines a one-byte key length that specifies the
moving all unused space to the end of the data set length of the record’s key field (0 means no key
field). It defines a two-byte data length that specifies
the length of the record’s data field (0 means no data
field). Only the end-of-file record has a data length of
zero.

328 IBM TotalStorage Expert Customized Reports


count-key-data (CKD). A System/390® term for a Data Facility Storage Management Subsystem.
logical device that specifies the format of the logical An IBM licensed program which together with
data units on the device. The logical data unit is a MVS/ESA SP, constitutes the base MVS/ESA
track that can contain one or more records, each operating environment. DFSMS/MVS® consists of
consisting of a count field, a key field (optional), and DFSMSdfp™, DFSMSdss™, DFSMShsm™, and
a data field (optional). DFSMSrmm™.

CREATE. An SQL statement used to define an data field. The third (optional) field of a CKD
object such as a table, index, view, or database to record. You determine the field length by the data
DB2 UDB. length that is specified in the count field. The data
field contains data that the program writes.
CSV file. Comma separated variable file. A
standard flat file that contains all the values from a data record. A subsystem stores data records on
report separated by commas. You can use this file a track by following the track-descriptor record. The
with spreadsheet programs such as Lotus 1-2-3® or subsystem numbers the data records consecutively,
Excel. starting with 1. A track can store a maximum of 255
data records. Each data record consists of a count
CU. See “control unit (CU)”. field, a key field (optional), and a data field (optional)

cylinder. A unit of storage on a CKD device. A data type. An attribute of columns, literals, host
cylinder has a fixed number of tracks. variables, special registers, and the results of
functions and expressions.
DA. See “device adapter (DA)”
data warehouse. An implementation of an
DASD (direct access storage device). A data informational database used to store sharable data
storage device in which access time is independent sourced from an operational database. A collection
of the location of the data. of a company's persistent asset data, made
available to those requiring access.
DASD fast write. A function of a storage controller
that allows caching of active write data without Database 2™ (DB2). A relational database
exposure of data loss by journaling of the active management system. DB2 Universal Database is
write data in NVS. the relational database management system that is
Web-enabled with Java support.
data collection task. A long-running,
asynchronous task which is scheduled to run at database. A collection of tables, or a collection of
specific times. This task collects inventory and tablespaces and index spaces.
storage capacity data from machines within the
customer’s network that is managed by Expert. DataJoiner. A separately available product that
provides client applications integrated access to
data compression. A technique or algorithm that distributed data and provides a single database
you use to encode data such that you can store the image of a heterogeneous environment. With
encoded result in less space than the original data. DataJoiner, a client application can join data (using
This algorithm allows you to recover the original data a single SQL statement) that is distributed across
from the encoded result through a reverse technique multiple database management systems or update a
or reverse algorithm. See also “compression” single remote data source as if the data were local.

Glossary 329
DB2 catalog. Tables maintained by DB2 that device adapter (DA). A physical sub-unit of a
contain descriptions of DB2 objects such as tables, storage controller that provides the ability to attach
views, and indexes. to one or more interfaces used to communicate with
the associated storage devices.
DB2 UDB. An IBM relational database
management system that is available as a licensed device address. 1. On OEMI interfaces, the unit
program on several operating systems. address specifies a controller and device pair on the
Programmers and users of DB2 can create, access, interface. 2. The ESA/390 term for the field of an
modify, and delete data in relational tables using a ESCON device-level frame that selects a specific
variety of interfaces. device on a control-unit image.

DB2. See DB2 UDB. device driver. A program that controls a device. A
driver acts like a translator between the device and
DBA (database administrator). An individual programs that use the device. Each device has its
responsible for the design, development, operation, own set of specialized commands that only its driver
safeguarding, maintenance, and use of a database. knows. The driver, therefore, accepts generic
commands from a program and translates them into
DBADM (database administration or specialized commands for the device.
administrator). A set of privileges conveyed over a
database. Sometimes a term used to refer to the device interface card. A physical sub-unit of a
person having this set of privileges. (See DBA) storage cluster that provides the communication
with the attached disk drive modules (DDM).
DBMS (database management system). A
software system that controls the creation, device number. ESA/390 term for a
organization, and modification of a database and four-hexadecimal-character identifier, for example
access to the data stored within it. 13A0, that you associate with a device to facilitate
communication between the program and the host
DBRM (database request module). A data set operator. The device number that you associate with
member created by the DB2 (OS/390) precompiler a subchannel.
that contains information about SQL statements.
DBRMs are used in the bind process. device. 1. A mechanical, electrical, or electronic
contrivance with a specific purpose. 2. In the AIX
DDM group. See “disk drive module group (DDM operating system, a valuator, button, or the
group)”. keyboard. Buttons have values of 0 or 1 (up or
down); valuators return values in a range, and the
DDM. See “disk drive module (DDM)” . keyboard returns ASCII values. 3. The ESA/390
term for the field of an ESCON device-level frame
default value. A predetermined value, attribute, or that selects a specific device on a control-unit image.
option that is assumed when no other is explicitly
specified. DFSMS/MVS. See data facility storage
management subsystem
DELETE. An SQL statement that will remove zero,
one, or more rows from a table. direct access storage device (DASD). A mass
storage medium on which a computer stores data.
delimiter. A character or flag that groups or See also “disk drive module (DDM)”.
separates items of data.

destaging. The data transfer operation from


cache to disk.

330 IBM TotalStorage Expert Customized Reports


disk drive module (DDM). The primary DRDA (distributed relational database
nonvolatile storage medium that you use for any host architecture). A connection protocol for distributed
data that is stored within a subsystem. Number and relational database processing that is used by IBM
type of storage devices within a storage facility may relational database products. DRDA includes
vary. protocols for communication between an application
and a remote relational database management
disk drive module group (DDM group). A group system, and for communication between relational
of eight disk drive modules (DDMs). Each DDM database management systems.
group is a RAID array.
drive. A data storage device that controls the
disk drive. A diskette drive or a hard disk drive as movement of the magnetic tape cartridges. The
opposed to a CD-ROM or optical drive. drive houses the mechanism that reads and writes
data to the tape.
disk group. A group consists of eight DDMs. Each
DDM group is a RAID array. DROP. An SQL statement used to remove a DB2
UDB object.
disk volume. Logical storage space on disk. A
volume is known as a ’drive’ on OS/2® and Windows EBCDIC. Extended binary-coded decimal
2000 SE platforms, a ’file system’ on UNIX interchange code used in IBM mainframe
platforms, and a ’volser’ on OS/390® platforms. computers.

distributed system. A system that is spread out ECKD™. Enhanced CKD. Usually it refers to
across a network, be it a LAN or WAN. DASDs (or storage control) which support the ECKD
I/O command set. The ECKD I/O command set is a
DNS. See “Domain Name System (DNS)”. superset of the CKD command set, and it is
designed for DASDs which perform
Domain Name System (DNS). In the Internet non-synchronous I/O operation. Since ECKD does
suite of protocols, the distributed database system not refer to data format, there are no ECKD format
used to map domain names to IP addresses. volumes. The ECKD I/O operation is performed
against CKD format volumes. See also “extended
domain. 1. That part of a computer network in count-key-data (ECKD)”.
which the data processing resources are under
common control. 2. In TCP/IP, the naming system eject. To remove or force out. To move a data
used in hierarchical networks. cartridge from a storage slot to a cartridge access
station.
double-precision floating point number. A 64-bit
approximate representation of a real number. embedded SQL. SQL statements coded within an
application program. See static SQL.
drawer. A unit that contains multiple DDMs, and
provides power, cooling, and related interconnection enterprise storage resource management
logic to make the DDMs accessible to attached host (ESRM). A family of products that provides a single
systems. view of storage hardware and software resources
within an Enterprise Storage Server. A disk storage
system that provides storage sharing for all major
types of servers.

Glossary 331
enterprise systems architecture/390 (ESA/390). event. 1. A representation of a change that occurs
An IBM architecture for mainframe computers and to a part. The change enables other interested parts
peripherals. Processor systems that follow this to receive notification when something about the
architecture include the ES/9000® family. part changes. For example, a push button generates
an event by signalling that it has been clicked, which
enterprise systems connection architecture may cause another part to display a window. 2. Any
(ESCON). An ESA/390 computer peripheral significant change in the state of a system resource,
interface. The I/O interface utilizes ESA/390 logical network resource, or network application. An event
protocols over a serial interface that configures can be generated for a problem, for the resolution of
attached units to a communication fabric. a problem, or for the successful completion of a task.
Examples of events are: the normal starting and
ESA/390. See “enterprise systems stopping of a process, the abnormal termination of a
architecture/390 (ESA/390)”. process, and the malfunctioning of a server. 3. The
enqueueing or dequeueing of an element. 4. In
ESCON. See “enterprise systems connection computer graphics, information generated either
architecture (ESCON)”. asynchronously from a device or as the side-effect of
a client request. Events are grouped into types and
ESRM. See “enterprise storage resource are not sent to a client by the server unless the client
management (ESRM)”. has issued a specific request for information of that
type. Events are usually reported relative to a
ESS Specialist. The Web-based management
window. 5. An occurrence of significance to a task or
interface to the IBM TotalStorage Enterprise Storage
system, such as the completion or failure of an
Server.
operation. 6. In OSI, the occurrence of a well-defined
situation. Events may be planned (for example,
ESS. See “Enterprise Storage Server” 5.
transactions), or they may be spontaneous or
ETL. Enterprise Tape Library. unplanned (for example, faults). An agent reports
events to its managers. 7. A data link control
EUR. IBM European Standards. command and response passed between adjacent
nodes that allows the two nodes to exchange
identification and other information necessary for
operation over the data link.

Explain. A DB2 facility that allows the user to obtain


information regarding the optimizer's choice of
access strategy for a specified SQL statement. The
information provided can include indexes used,
details of any sorts that will be needed, the order in
which tables will be joined, and the methods by
which individual joins will be performed. VISUAL
EXPLAIN, which is available for DB2 UDB on
OS/390, UNIX and Intel platforms, displays the
information in graphical form.

extended binary-coded decimal interchange


code (EBCDIC). A coding scheme that was
developed by IBM, which you use to represent
various alphabetic, numeric, and special symbols
with an 8 bit code.

332 IBM TotalStorage Expert Customized Reports


extended count-key-data (ECKD). A disk fixed block address (FBA). An architecture for
storage device that has a data transfer rate faster logical devices that specifies the format of and
than some processors can utilize and that is access mechanisms for the logical data units on the
connected to the processor through use of a speed device. The logical data unit is a block. All blocks on
matching buffer. A specialized channel program is the device are the same size (fixed size); the
needed to communicate with such a device. See subsystem can access them independently.
also “count-key-data (CKD)”.
fixed-length string. A character or graphic string
fast write. A write operation at cache speed that whose length is specified and cannot be changed.
does not require immediate transfer of data to a Contrast with varying-length string.
DDM. The subsystem writes the data directly to
cache, to nonvolatile storage, or to both. The data is FlashCopy®. An optional feature for the ESS.
then available for destaging. Fast write reduces the With FlashCopy you can make an instant copy of
time an application must wait for the I/O operation to data, that is, a point-in-time copy of a volume.
complete.
foreign key. A key that is a column or set of
FB. Fixed Block. Usually it refers to a format of columns that contains values that identify related
physical record in a DASD volume. Under FB format, rows of data; it is related to a primary key or a unique
every physical record has the same record length. key value. A key that is specified in the definition of
The record size commonly used in open systems is a referential constraint. Because of the foreign key,
512 bytes. A DASD volume for AS/400 has 524 the table is a dependent table. The key must have
bytes of FB format. the same number of columns, with the same
descriptions, as the unique key of the parent table.
FBA. See “fixed block address (FBA)”.
forward recovery. Restoring data from the latest
FC. See “Fibre Channel”. good copy, and then applying committed changes
from the DB2 UDB log that were made after the copy
Fibre Channel. A technology for transmitting data was taken.
between computer devices at a data rate of up to 4
GBs. It is especially suited for connecting computer frame. 1. A separate section of the BUI that can be
servers to shared storage devices and for scrolled independently of other frames. 2. The basic
interconnecting storage controllers and drives. unit of the 3584 library. The frame includes the
hardware support structure, covers, mechanisms,
fibre connection. A next-generation I/O solution and parts.
for IBM S/390 parallel enterprise server.
free space. The total unused space in a page; that
FICON. See “fibre connection”. is, the space not used to store records or control
information.
File Transfer Protocol (FTP). An application
protocol used for transferring files to and from host FTP. File Transfer Protocol.
computers. FTP requires a user ID, and a password
to allow access to files on a remote host system. full outer join. The result of a join operation that
includes the matched rows of both tables being
firewall. A protection against unauthorized joined and preserves the unmatched rows of both
connection to a computer or a data storage system. tables. See also join.
The protection is usually in the form of software on a
gateway server that grants access to users that meet GB (Gigabyte). 1,073,741,824 bytes.
authorization criteria.

Glossary 333
GRANT. An SQL statement used to give explicit home address (HA). A nine-byte field at the
privileges or privilege sets to one or more users. beginning of a track that contains information that
identifies the physical track and its association with
granularity. The size of the units under a cylinder.
consideration in a context. The term generally refers
to the level of detail being considered (column, row, host adapter (HA). A physical sub unit of a
table, tablespace), (employee, job, department, storage controller that provides the ability to attach
division, company). to one or more host I/O interfaces.

HA. See “home address (Hoar “host adapter (HA)”. host language. A programming language in which
you can embed SQL statements.
hard disk drive. 1. A storage medium within a
storage server used to maintain information that the host name. In the Internet suite of protocols, the
storage server requires. 2. A mass storage medium name given to a computer. Sometimes, ?host
for computers that is typically available as a fixed name? is used to mean fully qualified domain name;
disk (such as the disks used in system units of other times, it is used to mean the most specific
personal computers or in drives that are external to subname of a fully qualified domain name. For
a personal computer) or a removable cartridge. 3. example, if mycomputer.city.company.com is the
The entire drive unit including the HDA. fully qualified domain name, either of the following
may be considered the host name:
hard drive. A storage medium within a storage v mycomputer.city.company.com
server used to maintain information that the storage v mycomputer
server requires.
host processor. A processor that controls all or
HDA. See “head and disk assembly (HDA)”. part of a user application network. In a network, the
processing unit in which the data communication
HDD. See “hard disk drive”. access method resides. See also “host system”.

hdisk. An AIX term for storage space. head and host system. 1. A computer system that is
disk assembly (HDA). The portion of an HDD connected to the ESS. The ESS supports both
associated with the medium and the read/write mainframe (System/390 or zSeries) hosts as well as
head. open-systems hosts. System/390 or zSeries hosts
are connected to the ESS through ESCON
hex, hexadecimal. 1. A selection, choice, or interfaces. Open-system hosts are connected to the
condition that has 16 possible values or states. 2. ESS by SCSI or fibre-channel interfaces. 2. The data
Pertaining to a numeration system with a radix of 16. processing system to which a network is connected
3. Pertaining to a system of numbers to the base 16; and with which the system can communicate. 3. The
hexadecimal digits range from 0 to 9 and A through controlling or highest level system in a data
F, where A represents 10 and F represents 15. communication configuration.
hierarchical storage management (HSM). A host variable. In an application program, an
program that runs on a workstation or file server to application variable referenced by embedded SQL
provide space management services. HSM can statements.
automatically migrate eligible files to storage to
maintain specific levels of free space on local file
systems. Automatic recalls are made for migrated
files when they are accessed. Users can also
migrate and recall specific files.

334 IBM TotalStorage Expert Customized Reports


host. 1. A computer attached to the network - either index. A set of pointers that are logically ordered by
a client or a server. 2. A computer system that is the values of a key. Indexes can provide faster
accessed by a user working at a remote location. access to data and can enforce uniqueness on the
The system that contains the data is called the host, rows in a table.
while the computer at which the user sits is called
the remote terminal. inheritance. In Java programming, inheritance is
when an object inherits properties and methods
HP-UX. Hewlett-Packard UNIX operating system. from other objects.

HSM. See “hierarchical storage management initiator. A SCSI term for the part of a host
(HSM)” computer that communicates with its attached
targets.
HTML (HyperText Markup Language). A markup
language that is specified by an SGML document inner join. The result of a join operation that
type definition (DTD) and is understood by all Web includes only the matched rows of both tables being
servers. It was designed primarily to support the joined. See also join.
online display of textual and graphical information
that includes hypertext links. input/output (I/O). Pertaining to a device,
process, or channel involved in data input, data
HTTP (HyperText Transfer Protocol). In the output, or both.
Internet suite of protocols, the protocol that is used
to transfer and display hypertext documents. It INSERT. An SQL statement that will add one or
shares rules between Web browsers and servers to more rows to a table.
provide multimedia documents to the Web browser.
interface. 1. A shared boundary between two
Hypertext markup language (HTML). See functional units, defined by functional
“HTML”. characteristics, signal characteristics, or other
characteristics, as appropriate. The concept
Hypertext Transfer Protocol (HTTP). The includes the specification of the connection of two
primary protocol in use on the Web. See “HTTP”. devices having different functions. 2.Hardware,
software, or both, that links systems, programs, or
I/O intensity. An indicator of activity on a devices.
subsystem, volume, or data set. The value is the
product of the I/O rate times the millisecond Internet Protocol (IP). A protocol used to route
response time (MSR). data from its source to its destination in the Internet
computing network environment.
I/O interface. An interface that you define in order
to allow a host to perform read and write operations Internet. A wide area network connecting
with its associated peripheral devices. thousands of disparate networks in industry,
education, government, and research. The Internet
I/O. See “input/output (I/O)”. network uses TCP/IP as the standard for
transmitting information.
IBM. International Business Machines.
intranet. A private network that integrates Internet
IMS. Information Management System. standards and applications (such as Web browsers)
with an organization's existing computer networking
index key. The set of columns in a table used to infrastructure; a TCP/IP network inside a company
determine the order of index entries. firewall.

Glossary 335
IP address. A group of four decimal numbers that JDBC. Java Database Connectivity. Part of the
provides a unique address for the computer. Java Development Kit which defines an application
program interface for Java to provide standard SQL
IP. See “Internet Protocol (IP)”. access to databases from Java programs.

IRLM. Internal resource lock manager (OS/390). JDK. See “Java Developers Kit (JDK)”.

ISO. International Standards Organization. JIS. Japanese Industrial Standard.

isolation level. A bind parameter that controls how join. A relational operation that allows retrieval of
long read locks are held. data from two or more tables based on matching
column values. See also full outer join, inner join, left
ITSO. International Technical Support outer join, outer join, and right outer join.
Organization
KB. Kilobyte (1024 bytes).
JAR file. A JAR (Java ARchive) file collection of
Java classes and other files packaged into a single key field. The second (optional) field of a CKD
file. By using a JAR file, the browser makes only one record. The key length is specified in the count field.
connection to the server rather than several. By The key length determines the field length. The
reducing the number of files that the browser needs program writes the data in the key field. The
to load from the server, you can download and run subsystem uses this data to identify or locate a given
your applet that much faster. JAR files can also be record.
compressed, making the overall file size smaller and
therefore faster to download. key. A column or an ordered collection of columns
identified in the description of a table, index, or
Java applet. Java code that is compiled into a referential constraint.
compact and optimized program.
keyword. In SQL, a name that identifies an option
Java database connectivity. An application used in an SQL statement.
program interface specification for connecting
programs written in Java to the data in popular LAN (local area network). 1. A computer network
database. located on a user's premises within a limited
geographical area. Communication within a local
Java Developers Kit (JDK). The Java Developers area network is not subject to external regulations;
Kit is provided free of charge from the JavaSoft however, communication across the LAN boundary
division of Sun Microsystems. The Java Developers may be subject to some form of regulation. 2. A
Kit provides a convenient framework for writing and network in which a set of devices are connected to
debugging Java code. one another for communication and that can be
connected to a larger network.
Java. A programming language that enables
application developers to create object-oriented LCU. Logical control unit.
programs that are very secure and portable across
different machine and operating system platforms. LIC. See “licensed internal code (LIC)”.
Java is also dynamic enough to allow for easy
expansion.

JBOD. Just a Bunch Of Disks. Also see rank.

336 IBM TotalStorage Expert Customized Reports


licensed internal code (LIC). 1. Microcode that log. A collection of records that describe the events
IBM does not sell as part of a machine, but licenses that occur during DB2 execution and their sequence.
to the customer. LIC is implemented in a part of The information thus recorded is used for recovery in
storage that is not addressable by user programs. the event of a failure during DB2 execution. 1. linear
Some IBM products use it to implement functions as log - A database log in which all log records are
an alternative to hard-wired circuitry. 2. LIC is retained so that, in the event of a failure, lost data
implemented in a part of storage that is not can be recovered during forward recovery. 2. circular
addressable by user programs. Some IBM products log - A database log in which records are overwritten
use it to implement functions as an alternative to if they are no longer needed by an active database.
hard-wired circuitry. Consequently, if a failure occurs, lost data cannot be
restored during forward recovery.
local area network (LAN). A computer network
located on a user’s premises within a limited logical data unit. A unit of storage which is
geographical area. accessible on a given device.

local. Refers to any object maintained by the local logical device. The functions of a logical
DB2 subsystem or instance. A local table, for subsystem with which the host communicates when
example, is a table maintained by the local DB2 performing I/O operations to a single
subsystem or instance. Contrast with remote. addressable-unit over an I/O interface. The same
device may be accessible over more than one I/O
location. Any place in which data can be stored. interface.
logical address. On an ESCON interface, the portion
of a source or destination address in a frame used to logical subsystem (LSS). The logical functions of
select a specific channel-subsystem or control-unit a storage controller that allow one or more host I/O
image. interfaces to access a set of devices. The controller
aggregates the devices according to the addressing
lock size. The amount of data controlled by a DB2 mechanisms of the associated I/O interfaces. One or
lock on; the value can be a row, a page, a LOB, a more logical subsystems exist on a storage
partition, a table, or a table space. controller. In general, the controller associates a
given set of devices with only one logical subsystem.
lock. A means of controlling concurrent events or
access to data. OS/390 DB2 locking is performed by logical unit number (LUN). 1. The SCSI term for
the IRLM. the field in an identifying message that is used to
select a logical unit on a given target. 2. A number
locking. The process by which the integrity of data associated with the target address of a drive within
is ensured. Locking prevents concurrent users from the library. The host uses the number to identify the
accessing inconsistent data. address of the drive.

logical unit. The open system and SCSI term for


a logical disk drive.

logical volume. The storage medium associated


with a logical disk drive. A logical volume typically
resides on one or more storage devices. A logical
volume is referred to on an AIX platform as an hdisk,
an AIX term for storage space. A host system sees
a logical volume as a physical volume.

Glossary 337
LONG VARCHAR. Same as VARCHAR, except mount. The act of making a tape available for
DB2 UDB determines the maximum length of the processing by a specific tape drive. A mount
column. consists of removing the cartridge from a drive,
returning it to its storage slot, collecting another
LSS. See “logical subsystem (LSS)” . cartridge from a storage slot, moving it to the drive,
and loading that cartridge into the drive.
LUN. See “logical unit number (LUN)”.
mounted. The state of a tape while it is available
mainframe. A computer, usually in a computer for processing by a specific tape device.
center, with extensive capabilities and resources to
which other computers may be connected so that multiple virtual storage (MVS). Consisting of
they can share facilities. MVS/System Product Version 1 and MVS/370 Data
Facility Product operating on an IBM System/370™
management scope. The definition of storage processor.
resources that TotalStorage Expert requires before
performing tasks. This consists of ranges of Internet MVS. See “multiple virtual storage (MVS)”.
Protocol (IP) addresses and port numbers that
TotalStorage Expert checks for the presence of an MVS/ESA SP. An IBM licensed program used to
TotalStorage Expert agent. control the MVS operating system. MVS/ESA SP
together with DFSMS/MVS compose the base
MB. 1. For processor storage and real and virtual MVS/ESA operating environment.
memory, 1,048,576 bytes. 2. For disk storage
capacity and transmission rates, 1,000,000 bytes. MVS/ESA. An MVS operating system
environment that supports ESA/390*.
megabyte (MB). See MB.
network. 1. A configuration of data processing
method. A subroutine within an object. Methods devices and software connected for information
can be private or public. A private method deals with interchange. 2. A group of nodes and the links
data manipulation within an object and the data interconnecting them.
cannot be accessed by other objects outside the
class of this method. A public method allows data node discovery task. A long-running,
within the object to be accessed by other objects asynchronous task responsible for discovering the
outside the class of this method. machines in a customer’s network which are within
the TotalStorage Expert management scope. The
middleware. The term middleware is used to machine will also have a service running on it which
describe separate products that serve as the glue is recognized by TotalStorage Expert (such as the
between two applications. It is, therefore, distinct Tivoli®® Storage Manager Web Administration
from import and export features that may be built into interface).
one of the applications. Middleware connects two
sides of an application and passes data between node group. A definition of nodes in TotalStorage
them. Expert that allows an administrator another level of
granularity in reporting. When you assign a name to
mid-range systems. A set of multi-use servers the group and you use that name when generating
with hard disk capacity of 50 GB to 250 GB. reports, it restricts the reports to the nodes defined
to the group. For example, if you specify group
migration. The process of moving unused data to DEPTA for the storage resources that are associated
lower cost storage in order to make space for with a specific department, this provides the ability to
high-availability data. The data must be recalled to report on that department.
be used again.

338 IBM TotalStorage Expert Customized Reports


node. A machine (such as a file server) which is ODBC (open database connectivity). An API that
managed by TotalStorage Expert. The machine allows access to database management systems
must have a TCP/IP port so an TotalStorage Expert using callable SQL, which does not require the use
service type can be accessed. In a network, a point of an SQL preprocessor. The ODBC architecture
at which one or more functional units connect allows users to add modules, called database
channels or data circuits. Nodes can be processors, drivers, that link the application to their choice of
communication controllers, cluster controllers, or database management systems at run time.
terminals. Nodes can vary in routing and other Applications do not have to be linked directly to the
functional capabilities. modules of all the supported database management
systems.
non-RAID. A collection of disk drives in a
non-RAID group or array. OEMI. See “original equipment manufacturer’s
information (OEMI)”.
nonvolatile storage. Typically refers to
nonvolatile memory on a processor rather than a OLAP (online analytical processing). OLAP uses
nonvolatile storage device. On a storage facility, use a multidimensional view of aggregate data to provide
nonvolatile storage to store active write data to avoid quick access to strategic information for further
data loss in the event of a power loss. analysis. OLAP and data warehouses are
complementary. A data warehouse stores and
null. An indicator of the absence of information. manages data. OLAP transforms this data into
strategic information.
nullable. The condition where a value for a column,
function parameter, or result can have an absence of open system hosts. 1. A computer system that is
a value. For example, a field for a person's middle accessed by a user working at a remote location.
initial does not require a value. The term is typically used when two computer
systems are connected over a LAN or through a
NVS. See “nonvolatile storage”. modem. 2. A computer connected to a TCP/IP
network, including the Internet. Each host has a
object. An object contains both data and code. unique IP address. 3. (verb) To provide the
The principle feature of an object is that the data is infrastructure for a computer service.
kept privately inside the object structure. Any
calculations on that data are also private so it does open system. A system whose characteristics
not matter how that data is stored or how the comply with standards made available throughout
computations are carried out. It only matters that the the industry, and therefore can be connected to
object’s data and routines are internally consistent other systems that comply with the same standards.
and any access to the data in an object always
provides consistent results. operating system. The master computer control
program that translates user commands and allows
object-oriented programming. A programming software applications to interact with the hardware.
approach based on the concepts of data abstraction
and inheritance. Unlike procedural programming operator. A person or program responsible for
languages, object-oriented programming managing functions controlled by a given piece of
concentrates on those data objects that constitute software. The person who operates a device or
the problem and how they are manipulated, and not keeps a system running.
on how something is accomplished.
optimization. The database manager determining
the most efficient way to access needed data.

Glossary 339
optimizer. A component of the SQL compiler that parallel access volume (PAV). Created by
chooses an access plan for a DML statement by associating multiple devices of a single control-unit
modeling the execution cost of many alternative image with a single logical device. Up to 8 device
access plans and choosing the one with the minimal addresses can be assigned to a parallel access
estimated cost. volume.

original equipment manufacturer’s information parity. A data checking scheme used in a


(OEMI). A reference to an IBM standard for a computer system to ensure the integrity of the data.
computer peripheral interface. More specifically, The RAID implementation uses parity to recreate
refer to IBM S/360 and S/370™ Channel to Control data if a disk drive fails.
Unit Original Equipment Manufacture’s Information.
The interface utilizes ESA/390 logical protocols over partition. 1. For OS/390, a portion of a page set.
an I/O interface that configures attached units in a Each partition corresponds to a single,
multi-drop bus topology. independently extendable data set. Partitions can be
extended to a maximum size of one, two, or four
OS/390. An integrated server system designed for gigabytes, depending upon the number of partitions
large systems. It provides: in the partitioned page set. All partitions of a given
v Integration of MVS related functions and features. page set have the same maximum size. For parallel
v A platform to develop and run applications such as systems in the UNIX/Intel environment, a database
open UNIX applications and object-oriented can be split into several separate parts called
applications. partitions. Each table in the database may have
v A set of distributed computing and LAN services. some of its rows in each partition. It is helpful to
v Communication and security servers that manage visualize each partition as running on a separate
secure communications among workstations and machine although it is possible for more than one
enterprise servers. This allows secure business over partition to be assigned to the same machine. Each
the Internet. database partition has its own log and its own set of
v Use of MVS strengths which are security, indexes. 2. A storage division of fixed size
scalability, and nearly outage-free availability.
v Use of Java, a language that can be used to build PAV. See “parallel access volume (PAV)”.
both Internet and general business applications.
pedabyte. 1 million gigabytes.
outer join. The result of a join operation that
includes the matched rows of both tables being plan name. The name of an OS/390 application
joined and preserves some or all of the unmatched plan.
rows of the tables being joined. See also join.
plan. The OS/390 control structure produced
package. Also application package. An object during the bind process and used by DB2 to process
containing a set of SQL statements that have been SQL statements encountered during statement
bound statically and that are available for processing execution.

page. A unit of storage within a table space (4KB, platform. An ambiguous term that may refer to the
8KB, 16KB, or 32KB) or indexspace (4KB). In a hardware, operating system, or a combination of the
tablespace, a page contains one or more rows of a hardware and the operating system on which
table. In a LOB tablespace, a LOB value can span software programs run.
more than one page but no more than one LOB
value is stored on a page. platform-independent. Code which is
platform-independent can run on multiple
combinations of operating systems and hardware.

340 IBM TotalStorage Expert Customized Reports


precompile. A processing of application programs protocol. The set of rules that govern the
containing SQL statements that takes place before operation of functional units of a communication
compilation. SQL statements are replaced with system. This allows communication to take place.
statements that are recognized by the host language Protocols can determine low-level details of
compiler. Output from this precompilation includes machine-to-machine interfaces, such as the order in
source code that can be submitted to the compiler which bits from a byte are sent. They can also
and the OS/390 database request module (DBRM) determine high-level exchanges between
or a UNIX/Intel bindfile that is input to the bind application programs, such as file transfer.
process.
QMF. Query Management Facility.
predicate. An element of a search condition that
expresses or implies a comparison operation. query. 1. A request for information from the
database based on specific conditions, for example,
predictable write. A write operation that can a request for a list of all customers in a customer
cache without knowledge of the existing formatting table whose balance is greater than $1000. 2. In
on the medium. All writes on FBA DASD devices are DB2 UDB for OS/390, a component of certain SQL
statements that specifies a result table.
primary index. An index that enforces the
uniqueness of a primary key. R0. See “track-descriptor record (R0)” .

primary key. The unique key that best identifies RACF®. See “resource access control facility
occurrences of the business entity. A table can have (RACF)”.
only one defined primary key. A unique, nonnull key
that is part of the definition of a table. A table cannot rack. A unit that houses the components of a
be defined as a parent unless it has a unique key or storage subsystem, such as controllers, disk drives,
primary key. and power.

privilege set. For the installation SYSADM ID, the RAID. See “redundant array of independent disks
set of all possible privileges. For any other (RAID)”.
authorization ID, the set of all privileges recorded for
that ID in the DB2 catalog. rank. A unit of DDMs managed by a DA. There are
two types of rank, RAID or non RAID. A rank consists
privilege. The capability of performing a specific of six DDMs or seven DDMs in an SSA loop. A
function, sometimes on a specific object. The term non-RAID rank is called a JBOD, and each DDM is a
includes: 1. EXPLICIT PRIVILEGES, which have rank in the JBOD rank. See also “array”.
names and are held as the result of SQL GRANT
and REVOKE statements; for example, the SELECT RDB (relational database). A database that can
privilege. 2. IMPLICIT PRIVILEGES, which be perceived as a set of tables and manipulated in
accompany the ownership of an object, such as the accordance with the relational model of data.
privilege to drop a synonym one owns, or the holding
of an authority, such as the privilege of SYSADM RDBM. Relational database manager.
authority to terminate any utility job.
RDBMS (relational database management
promotion. The operation which validates data in system). A relational database manager that
cache. When data image which is to be promoted operates consistently across supported IBM
has not been in cache yet, staging operation occurs. systems.

Glossary 341
rebind. To create a new application plan or relationship. A defined connection between the
package for an application program that has been rows of a table or the rows of two tables. A
bound previously. If, for example, you have added an relationship is the internal representation of a
index for a table accessed by your application, you referential constraint.
must rebind the application in order to take
advantage of that index. remote. Refers to any object maintained by a
remote DB2 subsystem or instance, i.e., by the DB2
recovery. The process of rebuilding databases subsystem or instance other than the local one.
after a system failure.
replication. The process of taking changes that are
redundant array of independent disks (RAID). stored in the database log or journal at the source
A collection of disk drives that operate server and applying them to the target server.
independently. The IBM Enterprise Storage Server
protects all storage with redundant arrays of resource access control facility (RACF). An
independent disks (RAID). The ESS attaches serial IBM-licensed program or a base element of OS/390,
storage architecture (SSA) disk drive modules that provides for access control by identifying and
(DDMs) in RAID-5 configurations. The verifying the users to the system, authorizing access
implementation of RAID-5 configurations distributes to protected resources, logging the detected
(stripes) parity across all DDMs in the array. See unauthorized attempts to enter the system, and
also “array” . logging the detected accesses to protected
resources.
referential constraint. The limiting of a set of
foreign key values to a set of unique key values. The resource. The object of a lock or claim, which could
requirement that nonnull values of a designated be a tablespace, an indexspace, a data partition, an
foreign key are valid only if they equal values of the index partition, or a logical partition.
unique key of a designated table.
result set. 1. For OS/390, the set of rows returned
referential integrity. The automatic enforcement of to a client application by a stored procedure. 2. The
referential constraints. The condition that exists set of rows specified by a SELECT statement.
when all intended references from data in one
column of a table to data in another column of the result table. The set of rows specified by a
same or a different table are valid. Maintaining SELECT statement.
referential integrity requires enforcing referential
constraints on all LOAD, RECOVER, INSERT, REVOKE. An SQL statement used to remove
UPDATE, and DELETE operations. specific privileges or privilege sets from one or more
users.
related tables. Occur when a row in one table
contains a value of a unique key from another table. right outer join. The result of a join operation that
includes the matched rows of both tables being
relation. See table. joined and preserves the unmatched rows of the
second join operand. See also join.
relational connect. DB2 Relational Connect
enhances the distributed request functionality rollback. The process of restoring data changed by
included with DB2 Universal Database by allowing SQL statements to the state at its last commit point.
users and applications to access data stored in All locks are freed. Contrast with commit.
Oracle databases.
row. The horizontal component of a table. A row
consists of a sequence of values, one for each
column of the table.

342 IBM TotalStorage Expert Customized Reports


SAN. See “storage area network (SAN)” . service type. A program or disk drive with a Web
interface that allows communication with
scalar function. An SQL operation that produces TotalStorage Expert. TotalStorage Expert can then
a single value from another value and is expressed manage these resources.
as a function name followed by a list of arguments
enclosed in parentheses. See also column function. servlet. An application program, written in the
Java programming language, that is executed on a
schema. 1. A collection of database objects such Web
as tables, views, indexes, or triggers. A database
schema provides a logical classification of database shared storage. Storage within a storage facility
objects. 2. In DB2 UDB for OS/390, a logical that is configured such that multiple homogenous or
grouping for user-defined functions, distinct types, divergent hosts can concurrently access the
triggers, and stored procedures. When an object of storage. The storage has a uniform appearance to
one of these types is created, it is assigned to one all hosts. The host programs that access the storage
schema, which is determined by the name of the must have a common model for the information on a
object. 3. In the Data Warehouse Center, a collection storage device. You need to design the programs to
of warehouse target tables and the relationships handle the effects of concurrent access.
between the warehouse target table columns, where
the target tables can come from one or more simple network management protocol (SNMP).
warehouse targets. 1. An SNMP Manager is part of a network
administration software product, such as Tivoli
SCSI. See “small computer system interface” . TME® 10 Netview. 2. SNMP permits you to define
management information base (MIB) extensions, or
search condition. A criterion for selecting rows enterprise-specific MIBs. By loading a MIB file on a
from a table. A search condition consists of one or manager station, you can monitor the MIB objects.
more predicates. The SNMP Agent accesses MIB objects when a
request is received from an SNMP Manager. 3.
SELECT. An SQL statement that will read data and SNMP is a protocol designed to give a user the
produce a result table. capability to remotely manage a computer network
by polling and setting terminal values and monitoring
serial storage architecture (SSA). An IBM network events.
standard for a computer peripheral interface. The
interface uses a SCSI logical protocol over a serial small computer system interface (SCSI). An
interface that configures attached targets and ANSI standard for a logical interface to computer
initiators in a ring topology. peripherals and for a computer peripheral interface.
The interface utilizes a SCSI logical protocol over an
server. 1. In a federated database system, a unit I/O interface that configures attached targets and
of information that identifies a data source to a initiators in a multi-drop bus topology.
federated server. 2. A functional unit that provides
services to one or more clients over a network. 3. A SMS (system managed space). A system
computer that provides shared services to other managed space tablespace, for DB2 UDB for UNIX,
computers over a network; for example, a file server, Windows, and OS/2, that uses the facilities of the
a print server, or a mail server. 4. A machine that operating system to manage physical space. SMS
provides resources to the network. It provides a tablespaces (the default) are easy to create and
network service, such as disk storage and file manage. They are suited for many small and
transfer, or a program that uses such a service. moderate-sized databases.

SNMP. See “system modification program (SMP)”.

Glossary 343
software. All or part of the programs, procedures, storage administrator. A person in the data
rules, and associated documentation of a computer processing center who is responsible for defining,
processing system. Software is an intellectual carrying out, and maintaining storage management
creation that is independent of the medium on which policies.
it is recorded.
storage area network (SAN). A high speed
Solaris. Sun Microsystems UNIX operating subnetwork of shared storage devices. A SAN’s
system. architecture makes all storage devices available to
all servers on a LAN or WAN. As more storage
spare. A disk drive that is used to receive data devices are added, they too will be accessible from
from a device that has experienced a failure that any server in the larger network. Since stored data
requires disruptive service. A spare can be does not reside directly on a network’s servers,
pre-designated to allow automatic dynamic sparing. server power is used for applications, and network
Any data on a disk drive that you use as a spare is capacity is released to the end user.
destroyed by the dynamic sparing copy process.
storage controller. A physical unit which provides
special register. A storage area that is defined for an interface between one or more storage devices
a process by DB2 and is used to store information and a host computer by providing the function of one
that can be referenced in SQL statements. or more logical subsystems. The storage controller
Examples of special registers are USER, CURRENT may provide functions that are not provided by the
DATE, and CURRENT TIME. storage device. The storage controller has one or
more clusters.
SQL (Structured Query Language). A
standardized language for defining and storage device. A physical unit which provides a
manipulating data in a relational database. mechanism to store data on a given medium such
that it can be subsequently retrieved. See also “disk
SQL/DS. SQL/Data System. Also known as DB2 for drive module (DDM)” .
VSE & VM.
storage facility. 1. A physical unit which consists
SSA adapter. The adapter that connects stored of a storage controller integrated with one or more
data on devices, such as disk drive modules for storage devices to provide storage capability to a
access and control by the storage server. See also host computer. 2. A storage server and its attached
serial storage architecture. storage devices.

SSA. See “serial storage architecture (SSA)”. storage management subsystem (SMS). A
DFSMS/MVS facility used to automate and
SSID. See “subsystem identification (SSID)” . centralize the management of storage. Using SMS,
a storage administrator describes the following to
stage. 1. The process of reading data into cache the system:
from a disk drive module. 2. The action of moving v Data allocation characteristics
data from an offline or low-priority device back to an v Performance and availability goals
online or higher priority device, usually on demand of v Backup and retention requirements
the system or on request of the user. v Storage requirements
This information is described to the system through
staging. The data transfer operation from disk to
data class, storage class, management class,
cache.
storage group, and ACS routine definitions.

344 IBM TotalStorage Expert Customized Reports


storage management. The task of using storage, tape subsystem. A magnetic tape subsystem
such as DASD, tape, or optical devices, to keep and consisting of controller and devices, which allows
deliver data to applications. users to store data on tape cartridges. Examples of
tape subsystems include the IBM 3490 and 3490E
storage server. A unit that manages attached Magnetic Tape Subsystems. See also “storage
storage devices and provides access to the storage subsystem” .
or storage related functions for one or more attached
hosts. tape volume. Storage space on tape, identified by
a volume label and data set label stored in a tape
storage subsystem. A storage control and its library, which contains data sets and available free
attached storage devices. space. A tape volume is the recording space on a
single tape cartridge. See also “volume”.
storage. A functional unit into which data or data
media can be placed, in which it can be retained and TCP/IP (Transmission Control Protocol / Internet
from which it can be retrieved. Protocol). A set of communication protocols that
support peer-to-peer connectivity functions for both
stored procedure. A user-written application local and wide-area networks. A network
program that can be invoked through the use of the communication protocol used by computer systems
SQL CALL statement. to exchange information across telecommunication
links.
Structured Query Language (SQL). A
standardized language for defining and terabyte (TB). Ten to the twelfth power of bytes.
manipulating data in a relational database.
thread. The smallest unit of operation performed
subsystem identification (SSID). A number that within a process.
uniquely identifies a logical subsystem within a
computer installation. time sharing option (TSO). An operating system
option, the option provides interactive time sharing
sysadm. 1. A term used to refer to the DB2 UDB from remote terminals.
system administrator. 2. The name of a set of
privileges that can be granted to a user to give the track. A unit of storage on a CKD device that can
user system administration authority. be formatted to contain a number of data records.
See also“home address (HA)” ,
system administrator. The person having the “track-descriptorrecord (R0)”, and “data record”.
second highest level of authority within DB2. System
administrators make decisions about how DB2 is to track-descriptor record (R0). A special record on
be used and implement those decisions by choosing a track that follows the home address. The control
system parameters. They monitor the system and program uses it to maintain certain information
change its characteristics to meet changing about the track. The record has a count field with a
requirements and new data processing goals. key length of zero, a data length of 8, and a record
number of 0. This record is sometimes referred to as
table. A named data object consisting of a specific R0.
number of columns and some number of unordered
rows. Synonymous with base table. The word table Transmission Control Protocol/Internet Protocol
is synonymous with the word relation. (TCP/IP). A set of communication protocols that
support peer-to-peer connectivity functions for both
tablespace. A physical file used to store the local and wide area networks.
records in one or more tables.
TSO. See “time sharing option (TSO)”.

Glossary 345
UDB. Universal Database. VARIABLE. A data element that specifies a value
that can be changed. Contrast with constant.
Uniform Resource Locator (URL). The address
convention that indicates the location of an item on Viador Sage. A java-based query, reporting and
the World Wide Web. It includes the protocol charting tool for Web access to relational databases.
followed by the fully-qualified host name, and the
request. The server typically maps the request view. An alternative representation of data from
portion of the URL to a path and file name. For one or more tables. A view can include all or some
example: http://www.ibm.com/index.html. of the columns contained in tables on which it is
defined.
unique index. An index which ensures that no
identical key values are stored in a table. virtual tape server. A virtual tape server (VTS) is
a new breed of storage solution that combines a
unit address. The ESA/390 term for the address high-speed disk cache with tape automation, tape
associated with a device on a given controller. On drives, and intelligent storage management software
ESCON interfaces, the unit address is the same as running on a server.
the
VOLSER. See “volume serial number”.
UNIX operating system. An operating system
created by Bell Laboratories that features among volume serial number. A number assigned to a
other things multiprogramming in a multi-user tape cartridge, by the system, when it prepares the
environment. cartridge for use.

UOW (unit of work). A recoverable sequence of volume. Logical storage space on disk. A volume
operations within an application process. At any is known as a drive on Windows 2000 SE platforms
time, an application process is a single unit of work, and a file system on UNIX platforms.
but the life of an application process can involve
many units of work as a result of commit or rollback VTS. See virtual tape server.
operations. In a multi-site update operation, a single
unit of work can include several units of recovery. WAN. Wide area network.

UPDATE. An SQL statement that will change Web. The World Wide Web. The network of HTTP
column values in zero, one, or more table rows. servers that contain programs and files, such as
hypertext documents that contain links to other
URL. See “Uniform Resource Locator (URL)”. documents on HTTP servers.

User ID. The unique string of characters that wide area network (WAN). A network that
identifies any person or device (the User) that may provides communication services to a geographic
issue or receive commands and messages to or area larger than served by a local area network or a
from the information processing system. metropolitan area network, and that may use or
provide public communication facilities.
value. 1.The smallest unit of data manipulated in
SQL. 2. A specific occurrence of an attribute. 3. A Windows 2000 SE. A Microsoft distributed
quantity assigned to a constant, a variable, operating system that is used for client/server
parameter or a symbol. systems.

VARCHAR (varying-length string). A character or World Wide Web. A global network of servers
graphic string whose length varies within set limits. containing programs and files, accessible by the
Contrast with fixed-length string. public.

346 IBM TotalStorage Expert Customized Reports


world-wide node-name. For a storage server,
this is where the storage server is attached to a Fibre
Channel fabric.

world-wide port-name. A 16-byte hexadecimal


string for the name of a port on a host on the Fibre
Channel fabric.

write hit. A write operation where the data that you


requested is in the cache.

write. Make a permanent or temporary recording


of data on a storage device or data medium.

WWNN. See “world-wide node-name”.

WWPN. See “world-wide port-name”.

x-axis motion assembly. A group of parts,


including the controller, servo motor, pinion drive
gear and leadscrew, that provide the motive force to
move the accessor side to side (on the X-axis) and
up and down (on the Y-axis).

y-axis. See “x-axis motion assembly”.

Glossary 347
348 IBM TotalStorage Expert Customized Reports
Related publications

The publications listed in this section are considered particularly suitable for a
more detailed discussion of the topics covered in this redbook.

IBM Redbooks
For information on ordering these publications, see “fHow to get IBM Redbooks”
on page 350. Note that some of the documents referenced here may be available
in softcopy only:
򐂰 TotalStorage Expert Hands-On Usage Guide, SG24-6102

Other publications
These publications are also relevant as further information sources:
򐂰 IBM TotalStorage Expert Installation Guide, GC26-7436
򐂰 IBM DB2 Universal Database SQL Reference Volume 1, SC09-2974
򐂰 IBM DB2 Universal Database SQL Reference Volume 2, SC09-2975

Online resources
These Web sites and URLs are also relevant as further information sources:
򐂰 TotalStorage Demo site:
http://storwatch.dfw.ibm.com/index2.html
򐂰 QMF Web sites:
http://www.ibm.com/software/data/qmf/
http://www-3.ibm.com/software/data/qmf/reporter/june98/downloads.html
http://www.rocketsoftware.com/qmf/
򐂰 LotusScript
http://www.ibm.com/software/data/db2/db2lotus/db2lscpt.htm
򐂰 DB2 information management software home page:
http://www.ibm.com/software/data/
򐂰 DB2 intelligent miner

© Copyright IBM Corp. 2003. All rights reserved. 349


http://www.ibm.com/software/data/iminer/
򐂰 IBM Object REXX
http://www.ibm.com/software/awdtools/obj-rexx/
򐂰 DB2 DataJoiner
http://www.ibm.com/software/data/datajoiner
򐂰 SQL standards
http://www.jcc.com/SQLPages/jccs_sql.htm

fHow to get IBM Redbooks


You can search for, view, or download Redbooks, Redpapers, Hints and Tips,
draft publications and Additional materials, as well as order hardcopy Redbooks
or CD-ROMs, at this Web site:
ibm.com/redbooks

Help from IBM


IBM Support and downloads
ibm.com/support

IBM Global Services


ibm.com/services

350 IBM TotalStorage Expert Customized Reports


Index
CNGRH 39
A CNGRP 38, 58, 245
Administration Client 31
CNODE 38, 57–58, 170, 245
AIX 2
column 34
AIX Performance Toolkit 4
column functions 70
Alert Center 31
Comma Separated Variables 168
ANSI 45–46
Command Center 82, 91, 93
Apache HTTP Server 10
Command Line Processor 83, 168, 175–176
Application Development Client 31–32
Command Line Processor (CLP) 32, 82
asset management 5, 7, 11
concurrency 15–16
viewing detail reports 129
CONNECT statement 58–59
viewing summary reports 127
content management 13
Asset Statistics 114
Control Center 31, 107
asset tables 35
COPEVENT 39, 251
Assets Summary 115
Copy Services 130
Autonomic computing 14
copying the SQL statement 105
AVG 70, 72
COUNT 70, 72
CPARM 39, 251
B CREATE SCHEMA statement 33
base table 34 CREATE TABLE statement 48, 54, 57–58
BIND 27 CREATE UNIQUE INDEX statement 57
buffer 25 CSCHD 38, 242–243
CSCHH 38, 244–245
CSCHT 243
C CSIPA 39, 246
Cache Summary 151–152
CSNMP 39, 250
capacity management 5, 7, 12
CSRVH 39, 246
viewing historical reports 141
CSSTY 39, 246
viewing summary reports 131
CSV 198
Capacity Statistics 114
CSWCS 39, 250
Capacity Summary 115
CTHRESHOLD 39, 251
capacity tables 35
CUAUT 34, 38, 242
catalog tables 16
CUPRF 39, 249
CDSSD 39, 248
CURLE 39, 249
CDSTT 39, 248
CURTA 39, 249
CGNRH 247
CUSPT 39, 250
CHAR(x) 51
CUSRS 241
character string 50
CUSRV 39, 249
CIGEN 39
Customer Information Control System (CICS) 19
CIGIN 247
customized reports 7
cluster information report 137
CMSAU 39, 248
CMSGS 39, 48, 61, 186, 247–248 D
CNGDI 39, 58, 246 Data Collection task 7, 141

© Copyright IBM Corp. 2003. All rights reserved. 351


data control language (DCL) 59 e-business on demand 14
data definition language (DDL) 59 editing the SQL statement 105
data federation 13 embedded SQL statements 10
data integrity 16 end-user 25–26
data manipulation language (DML) 59 Enterprise Storage Server (ESS) 4
data mining 13 Enterprise Tape Library (ETL) 4
Data Preparation task 7, 81 ESCON 2
data warehousing 13 ESS 4, 11–12, 20
database administrator 25–26, 60–61 ESS Expert 5
DataJoiner 82 ESS reports
DATE 52 capacity growth 142
DB2 Administration Client 31 capacity management 130, 143
DB2 Application Development Client 33 cluster information 137
DB2 Command Center 81 configuration change 152
DB2 Command Line Processor 169 considerations 159
DB2 Cube Views 110 DDM information 136
DB2 database graphical 143
VPVPD table 169 hardware asset summary 127
DB2 DataJoiner 110 historical capacity 141
DB2 Intelligent Miner 82 host information 140
DB2 UDB Command Center 77 LIC summary 129
DB2 Universal Database (UDB) 9–10, 15 logical volumes 134
DB2 Utilities Command Center 83, 176 LUN serial number 161
db2admin 81 open capacity 134
DB2ADMIN.CUAUT 34 Physical View 135
DBA 26 Ranked Disk Group Utilization 145
DBADM 26–27, 60 S/390 capacity 131
DCL 59 SCSI hosts capacity 134
DDL 59, 110 SCSI/FC host summary 138
DDM information 136 storage server assets 129
DECIMAL 52 ESS Specialist 11, 129, 134, 140, 144, 160
DEL 198 data collection 159
DELETE 60 essCacheHoldTimeTooLow 185
device adapter 153 essDiskUtilizedTooHigh 185
DFSMS Optimizer 4 essNVSCacheFullTooHigh 185
DIGITS scalar function 71 ETL 4, 12, 20
Disk Drive Module (DDM) 136 ETL Expert 5
disk group 154 Event Analyzer 31
Disk Utilization Summary 148–150, 152
Distributed Relational Database Architecture (DR-
DA) 32
F
fibre connections 138
distributed system environment 13
foreign key 54, 56, 66–67
DML 59
FROM clause 67–68
Don Chamberlin 13
DOUBLE 52
G
GRANT statement 16, 59
E granular performance reports 157
E. F. Codd 13
graphical report 143

352 IBM TotalStorage Expert Customized Reports


Grid computing 14 LIC code levels 129
GROUP BY clause 72–73 LIC upgrade 130
LIKE predicate 70
Linux 14
H logical device name 163
HAVING clause 73
logical unit of work 17
host information 140
Logical View report 131
LONG VARCHAR(x) 51
I LUN serial number 161
IBM DB2 Universal Database 10
IBM Developer Kit for the Java Platform 10
IBM HTTP Server 10 M
MAX 70, 72
IBM Object REXX 82
middleware 13
IBM TotalStorage Enterprise Automated Tape Li-
MIN 70, 72
brary 4
IBM TotalStorage Expert 1
IBM TotalStorage Peer-to-Peer Virtual Tape Server N
4 network traffic 160
IBM TotalStorage Virtual Tape Server 4 NOT NULL 53, 55
IBM WebSphere Application Server 10 NOT NULL WITH DEFAULT 53
information integration 13 null characteristic 48, 53
Information Management System (IMS) 19
Informix 110
InfoSpace SpaceSQL 10, 12
O
on demand 14
inner join 100
open system volumes 164
INSERT 60
Open Systems Host/Volume Data 36
INTEGER 51
operator 25–27
Integrated Exchange Format 168–169
optimization 16–17
integrity 17
International Standards Organization (ISO) 52
ISO standard 45 P
IXF 198 PC/IXF format 169
performance management 5, 11
cache summary report 149–150
J cluster reports 153
Japanese Industrial Standard (JIS) 52
device adapter reports 153
Java 10, 12
disk group reports 154
JBOD 154
Disk Utilization summary report 148
JDBC 110
granular reports 157
JDBC driver 95
logical volume reports 154
join 172
specifying report beginning date 144
join predicate 75, 77
viewing detail reports 152
Journal 31
Performance Navigator Matrix 155–156
Performance Statistics 114
K Performance Summary 116
KORN shell scripting 2 primary key 54–55, 62, 65–66
programmer 25–26
Purge Database task 141
L Python 111
left outer join 100

Index 353
Q SNMP alerts 11
QMF 111 Spreadsheet 15
QMF for Windows 110–111 SQL 35, 46
query 35 SQL Assist 94–95, 104, 107, 171, 176
Query Management Facility (QMF) 82 SQL CREATE statement 47
query optimization 13 SQL functions 70
SQL prototyping 28
SQL SELECT statement 67
R Storage Server Performance Statistics 146
RAID-5 154
StorWatch Expert 4
rank 154
Structured Query Language 1, 3, 17
ranked reports 145
Structured Query Language (SQL) 12, 45, 82
Ray Boyce 13
SUM 70, 72
Redbooks Web site 350
SWDATA 20, 26, 47, 58, 84, 95, 108
Contact us xv
SWExport 38, 72, 182
relational database management system (RDBMS)
SWImport 38, 182
12–13, 16
SYSADM 25, 27, 60
relational model 13
system administrator 25–26, 60
replicating data 15
System R 13
reporting tools
customer report example 171
historical Volume ID-Host report 180 T
SQL commands 168 T_TASK_TIME 53
Resource Management Facility (RMF) 4 table 34, 46
result table 35 tablespace 50
REVOKE statement 59 TALARMDISPLAY 44, 307
REXX 111 TCP/IP 30
right outer join 100 TDATA 44, 306
root table 35 TDATASRC 44, 305
row 34 testing the SQL statement 106
row locking 17 TGPERF 44, 315
row-level locking 13 three-tier architecture 30
Run-Time Client 31–32 threshold exceptions 146
Thresholds Summary 146
TIME 52
S Time Sharing Option (TSO) 19
S/390 capacity report 131
TIMESTAMP 52
saving the SQL statement 106
TotalStorage Demo Web site 2
scalar functions 70–71
TotalStorage ESS Expert 4
schema 33
TotalStorage ETL Expert 4
Script Center 31
TotalStorage Expert 2–4, 9, 12, 20, 26, 35, 38,
SCSI 2, 134, 140
45–47, 52, 54, 57, 59, 61, 65, 71–73, 79–81, 93–95,
SCSI connections 138
107–108, 111, 113, 117, 127–131, 136, 138,
secure sockets layer (SSL) 10
140–142, 144, 149–150, 152, 157–160, 168, 180,
security 16
183, 185, 193, 198
SELECT clause 68
TotalStorage Expert database 34
SELECT statement 67
tracing 16–17
Simple Network Management Protocol (SNMP) 5
TREPINFO 44, 321
SMALLINT 51
TSASSET 44, 307
SNA 30

354 IBM TotalStorage Expert Customized Reports


TSPERF 44, 307 View Recent Data 161, 163–164
TTEMP 44, 321 View Recent Data reports 130
TTHRESHOLD 44, 306 viewing reports
TVACTDIST 44, 314 detail report for an ESS 129
TVASSET 44, 310 disk information to/from cache 149
TVCAPC 44, 310 Disk Utilization Summary report 148
TVCHNDIST 44, 314 ESS capacity management 130
TVPERF 44, 312 ESS summary 131
TVREAL 44, 318 ESS summary report 127
two-tier architecture 30 historical capacity 141
LIC summary report 129
performance detail reports 152
U performance management 144
unicode 110
Physical View 135
unique key 54, 61–62
SCSI/FC host summary 138
UPDATE 60
VMASE 35, 40, 254
UPPER scalar function 72
VMASI 35, 40, 253
VMCAP 35, 40, 71, 76, 256
V VMDDM 36, 40, 258
value 34 VMKHCAP 43, 298
VARCHAR(x) 51 VMPDX 35, 39, 55, 61–62, 65, 71, 76–77, 172,
VCLUA 35, 40, 254–255 252–253
VCLUC 35–36, 40, 259 Volume Statistics 114
VCLUL 35, 40, 255 VOPEVENT 37, 44, 305
VCMCKD 41, 268 VPCCH 37, 42, 67, 75, 181–183, 209, 278, 281
VCMCLUST 41, 266 VPCFG 37, 42, 275
VCMCUISUM 41, 267 VPCRK 37, 42, 67–69, 169, 276, 278
VCMCUIVOL 41, 267 VPCUT 37, 43, 292
VCMDDM 41, 266 VPHAD 37, 43, 193, 295
VCMHNICK 36, 300 VPHADCAC 37, 42, 287
VCMHNICKV 36, 43, 301 VPHAR 37, 43, 69, 187, 293
VCMHOSTCAP 41, 269 VPHARCAC 37, 42, 52, 56, 67, 73, 75, 284, 286
VCMHOSTVOL 36, 41, 62–63, 181, 183, 209, 270 VPHCAC 56
VCMPORT 36, 43, 299 VPHCLCAC 37, 42, 192, 194, 288, 291
VCMTOP1 41, 264 VPHSS 37, 43, 67–68, 172–173, 292
VCMTOP2 41, 265 VPHVOL 37, 42, 52, 173, 180, 182–183, 194–195,
VCUIC 36, 40, 262 209, 281, 284
VCUIV 36, 40, 263 VPSNX 37, 42, 55–56, 77, 172, 192–193, 291
VHDCSTAT 36, 44, 304 VPVOL 42, 276
VHLHOST 37, 44, 304 VPVPD 37, 42, 169, 275
VHLNICK 37, 44, 303 VSCHHDC 36, 43, 302
VHLPATH 36, 44, 180, 183, 209, 302 VSCHT 37, 43, 297–298
VHNICKX 36, 43, 300 VSTATS 37
VHOSTC 35 VSXDACLU 41, 273
VHOSTDC 36, 43, 301 VSXDALDT 41, 272
VHSTC 36, 40, 259 VSXDALIC 42, 274
VHSTV 40, 261 VSXDALVL 41, 272
VHSTX 36, 40, 260 VSXDARCK 41, 273
Viador Sage 10 VSXDATOP 41, 272

Index 355
VSXDSTYP 42, 274
VTHRESHOLD 37, 44, 304
VTS 11
VTSEQ 37, 39, 252
VTSTATM 43, 298
VTSTATS 43, 298
VVOLX 36, 40, 261

W
Web services 13–14
WebSphere 12
WorkSheet Format 168
WSF 198
WSF format 171

X
XML 13
XQuery 13

356 IBM TotalStorage Expert Customized Reports


IBM TotalStorage Expert Reporting: How to Produce Built-In and Customized Reports
(0.5” spine)
0.475”<->0.875”
250 <-> 459 pages
Back cover ®

IBM TotalStorage Expert


Reporting
How to Produce Built-In and Customized Reports

Get familiar with SQL This IBM Redbook provides the basic knowledge, tools, and
and the tools you samples to show you how to extract report data from built-in INTERNATIONAL
need for reporting reports, and create customized reports from the IBM TECHNICAL
TotalStorage ESS Expert application and database. This SUPPORT
See how to create redbook examines the fundamentals of the DB2 Universal ORGANIZATION
Database and the Structured Query Language, which is used
built-in reports
as the basis for sample reports, and the methodology to
create customized ESS reports based on your enterprise
Learn to produce requirements. BUILDING TECHNICAL
customized reports INFORMATION BASED ON
PRACTICAL EXPERIENCE
This book complements the redbook TotalStorage Hands-On
Usage Guide, SG24-6102, by providing comprehensive
documentation and tools to most effectively use the IBM Redbooks are developed by
TotalStorage Expert for enterprise storage resource the IBM International Technical
management. Support Organization. Experts
from IBM, Customers and
Partners from around the world
This book has been written with a wide range of end-user create timely technical
knowledge and capabilities in mind. The range of expertise for information based on realistic
the target audience is for DB2 and SQL beginners just getting scenarios. Specific
started, and also contains information and reference recommendations are provided
materials for those much more comfortable with the to help you implement IT
solutions more effectively in
capabilities of the TotalStorage Expert data management your environment.
components. We strive to provide enough information in a
manner that most users will be able to derive the greatest
value from the information presented.
For more information:
ibm.com/redbooks

SG24-7016-00 ISBN 0738499234

You might also like