100% found this document useful (3 votes)
23 views

DB2 OLAP Server V8 1 using advanced functions 1st ed Edition Corinne Baragoin download

The document is a comprehensive guide on DB2 OLAP Server V8.1, detailing advanced functions for enhancing OLAP cube scalability, high concurrency, and managing multiple OLAP servers. It includes an overview of advanced analytical, enterprise, and administrative functions, along with case studies and implementation strategies. The content is aimed at users seeking to leverage the capabilities of DB2 OLAP Server for complex data analysis and management.

Uploaded by

eidgulquayum
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (3 votes)
23 views

DB2 OLAP Server V8 1 using advanced functions 1st ed Edition Corinne Baragoin download

The document is a comprehensive guide on DB2 OLAP Server V8.1, detailing advanced functions for enhancing OLAP cube scalability, high concurrency, and managing multiple OLAP servers. It includes an overview of advanced analytical, enterprise, and administrative functions, along with case studies and implementation strategies. The content is aimed at users seeking to leverage the capabilities of DB2 OLAP Server for complex data analysis and management.

Uploaded by

eidgulquayum
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 80

DB2 OLAP Server V8 1 using advanced functions

1st ed Edition Corinne Baragoin pdf download

https://ebookgate.com/product/db2-olap-server-v8-1-using-
advanced-functions-1st-ed-edition-corinne-baragoin/

Get Instant Ebook Downloads – Browse at https://ebookgate.com


Instant digital products (PDF, ePub, MOBI) available
Download now and explore formats that suit you...

Advanced Server Virtualization 1st Edition David Marshall

https://ebookgate.com/product/advanced-server-virtualization-1st-
edition-david-marshall/

ebookgate.com

McGraw Hill Ryerson Calculus Advanced Functions Solutions


D'Arcy

https://ebookgate.com/product/mcgraw-hill-ryerson-calculus-advanced-
functions-solutions-darcy/

ebookgate.com

Harcourt Advanced Functions and Introductory Calculus 1st


Edition Ruth Malinowski

https://ebookgate.com/product/harcourt-advanced-functions-and-
introductory-calculus-1st-edition-ruth-malinowski/

ebookgate.com

SQL Server 2005 Reporting Services in Action 1 / Rev. ed


Edition Bret Updegraff

https://ebookgate.com/product/sql-server-2005-reporting-services-in-
action-1-rev-ed-edition-bret-updegraff/

ebookgate.com
Understanding DB2 9 Security 1st Edition Rebecca Bond

https://ebookgate.com/product/understanding-db2-9-security-1st-
edition-rebecca-bond/

ebookgate.com

Linux Server Hacks 1st ed Edition Rob Flickenger

https://ebookgate.com/product/linux-server-hacks-1st-ed-edition-rob-
flickenger/

ebookgate.com

Professional Team Foundation Server 2012 1st Edition Ed


Blankenship

https://ebookgate.com/product/professional-team-foundation-
server-2012-1st-edition-ed-blankenship/

ebookgate.com

Professional Team Foundation Server 2012 1st Edition Ed


Blankenship

https://ebookgate.com/product/professional-team-foundation-
server-2012-1st-edition-ed-blankenship-2/

ebookgate.com

Ital Foreign Pol 1870 1940 V8 1st Edition Cj Lowe

https://ebookgate.com/product/ital-foreign-pol-1870-1940-v8-1st-
edition-cj-lowe/

ebookgate.com
Front cover

DB2 OLAP Server V8.1


Using Advanced Functions

Enhancing OLAP cube scalability and


discovering deviant values

Implementing high concurrency


and high availability scenarios

Managing multiple OLAP


servers

Corinne Baragoin
Luciana Dongo Alves
Jakob Burkard
Ulrich Guldborg
Jo Ramos
Paola Rodriguez

ibm.com/redbooks
International Technical Support Organization

DB2 OLAP Server V8.1: Using Advanced Functions

November 2002

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

First Edition (November 2002)

This edition applies to IBM DB2 OLAP Server Version 8, Release 1 and to IBM DB2 OLAP
Analyzer Analysis Server Version 8 Release 1.

© Copyright International Business Machines Corporation 2002. 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

Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix

Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii

Examples. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix

Notices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi
Trademarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxii

Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiii
The team that wrote this redbook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiv
Become a published author . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvi
Comments welcome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xxvii

Part 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

Chapter 1. DB2 OLAP Server V8.1 overview. . . . . . . . . . . . . . . . . . . . . . . . . 3


1.1 Advanced analytical functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.1 Combining OLAP and relational databases: Hybrid Analysis . . . . . . . 4
1.1.2 OLAP Miner. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2 Advanced enterprise functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3 Advanced administrative functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3.1 Parallel calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3.2 Parallel data load . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.3.3 Parallel export . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.3.4 Administration Services. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.3.5 Security Migration Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.6 Custom Defined Functions and Custom Defined Macros . . . . . . . . . 15
1.3.7 API enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.3.8 Additional improvements and new functions . . . . . . . . . . . . . . . . . . . 17

Chapter 2. DB2 OLAP Server components and case studies . . . . . . . . . . 21


2.1 DB2 OLAP Server components architecture . . . . . . . . . . . . . . . . . . . . . . . 22
2.1.1 The basic DB2 OLAP Server installation . . . . . . . . . . . . . . . . . . . . . 22
2.1.2 Expanding OLAP capabilities with Integration Server . . . . . . . . . . . . 23
2.1.3 Expanding with Enterprise Services . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.1.4 Expanding with Administration Services . . . . . . . . . . . . . . . . . . . . . . 25
2.1.5 Using Security Migration Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.1.6 Using Analyzer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

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


2.1.7 The big picture . . . . . . . . . . . . . . . . . . . . ...... ....... ...... .. 27
2.2 Case studies and our test environment. . . . . . ...... ....... ...... .. 28
2.2.1 E-banking case study . . . . . . . . . . . . . . . ...... ....... ...... .. 28
2.2.2 Online Investment case study . . . . . . . . . ...... ....... ...... .. 31
2.2.3 Our test environment setup . . . . . . . . . . . ...... ....... ...... .. 36

Part 2. Advanced analytical functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

Chapter 3. Hybrid Analysis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41


3.1 Hybrid Analysis overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.1.1 Terminology and definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.2 When to use Hybrid Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.3 Hybrid Analysis architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.4 Hybrid Analysis challenges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.5 Implementation of Hybrid Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.5.1 Building Hybrid Analysis using Integration Server . . . . . . . . . . . . . . 49
3.5.2 Hybrid Analysis member transformation . . . . . . . . . . . . . . . . . . . . . . 52
3.5.3 Impact of Hybrid Analysis versus multidimensional . . . . . . . . . . . . . 54
3.5.4 Hybrid Analysis in Application Manager . . . . . . . . . . . . . . . . . . . . . . 56
3.5.5 Hybrid Analysis and Administration Services . . . . . . . . . . . . . . . . . . 57
3.6 Tips and tricks for tuning Hybrid OLAP applications . . . . . . . . . . . . . . . . . 59
3.6.1 Defining HAMEMORYCACHESIZE . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.6.2 Defining HAMAXNUMCONNECTION . . . . . . . . . . . . . . . . . . . . . . . . 64
3.6.3 Defining HAMAXNUMSQLQUERY . . . . . . . . . . . . . . . . . . . . . . . . . . 65
3.6.4 Defining HAMAXQUERYROWS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
3.6.5 Defining HAMAXQUERYTIME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
3.6.6 Defining HARETRIEVENUMROW . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.6.7 Conclusions: Hybrid Analysis configuration settings . . . . . . . . . . . . . 68
3.7 Queries in the Hybrid Analysis environment . . . . . . . . . . . . . . . . . . . . . . . 68
3.7.1 Member caching for better query performance . . . . . . . . . . . . . . . . . 73
3.8 Query performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
3.9 Hybrid Analysis and Drill-Through Reports . . . . . . . . . . . . . . . . . . . . . . . . 80
3.9.1 Characteristics of Drill-Through Reports . . . . . . . . . . . . . . . . . . . . . . 81
3.9.2 Characteristics of Hybrid Analysis. . . . . . . . . . . . . . . . . . . . . . . . . . . 82
3.9.3 Drill-Through Reports versus Hybrid Analysis . . . . . . . . . . . . . . . . . 82
3.10 Data modeling for Hybrid Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
3.11 Security configuration for Hybrid Analysis . . . . . . . . . . . . . . . . . . . . . . . . 85
3.11.1 Tracing Hybrid Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

Chapter 4. Mining your OLAP cube with OLAP Miner . . . . . . . . . . . . . . . . 89


4.1 OLAP Miner overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
4.2 Deviation detection in OLAP Miner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
4.2.1 OLAP Miner performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
4.3 When to use OLAP Miner, and when not to use it . . . . . . . . . . . . . . . . . . 96

iv DB2 OLAP Server V8.1: Using Advanced Functions


4.4 Mining and interpreting E-banking cube results . . . . . . . . . . . . . . . . . . . . 99
4.4.1 Scenario 1: PC-banking usage by branch. . . . . . . . . . . . . . . . . . . . . 99
4.4.2 Scenario 2: Equity trade and Net-banking in branches . . . . . . . . . . 105
4.5 OLAP Miner setup and architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
4.6 Running and monitoring OLAP Miner . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
4.6.1 Getting OLAP Miner to run, and stopping it . . . . . . . . . . . . . . . . . . 111
4.6.2 OLAP Miner client configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
4.7 OLAP Miner results and logs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

Part 3. Advanced functions of Enterprise Services. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

Chapter 5. Enterprise Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119


5.1 Enterprise Services overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
5.1.1 Enterprise Services components . . . . . . . . . . . . . . . . . . . . . . . . . . 122
5.2 Enterprise Services configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
5.2.1 TCP/IP Client Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
5.2.2 HTTP client programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
5.2.3 EJB client programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
5.2.4 CORBA client programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
5.3 Enterprise Services deployment scenarios . . . . . . . . . . . . . . . . . . . . . . . 129
5.3.1 Scalability overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
5.3.2 Clustering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
5.3.3 Connection pooling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
5.3.4 Workload balancing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
5.3.5 Server and application failure and failover . . . . . . . . . . . . . . . . . . . 151
5.3.6 Enterprise Services: the whole picture . . . . . . . . . . . . . . . . . . . . . . 159
5.3.7 Guidelines for implementing a full cluster of OLAP servers . . . . . . 159
5.3.8 Copy DB2 OLAP applications and databases across servers . . . . 161
5.3.9 Synchronizing data across DB2 OLAP Servers in a cluster . . . . . . 165
5.3.10 Synchronizing security across all OLAP Servers in a cluster . . . . 166
5.4 Implementing Enterprise Services with TCP/IP. . . . . . . . . . . . . . . . . . . . 166
5.4.1 Installation tips for Enterprise Services: Windows and AIX. . . . . . . 168
5.4.2 Setting up the domain storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
5.4.3 Starting Enterprise Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
5.4.4 Creating a domain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
5.4.5 Defining users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
5.4.6 Defining DB2 OLAP Server and Enterprise Services servers . . . . . 189
5.4.7 Creating clusters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
5.4.8 Creating connection pools. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
5.4.9 Using the sample programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
5.4.10 Additional tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215

Part 4. Advanced administrative functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221

Contents v
Chapter 6. Parallel calculation, data load, and export . . . . . . . . . . . . . . . 223
6.1 Performing parallel calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
6.1.1 Understanding parallel calculation . . . . . . . . . . . . . . . . . . . . . . . . . 224
6.1.2 Parallel calculation architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
6.1.3 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
6.1.4 Enabling parallel calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
6.1.5 Identifying concurrent tasks for parallel calculation. . . . . . . . . . . . . 234
6.1.6 Running parallel calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
6.1.7 Parallel calculation performance . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
6.1.8 Monitoring using the log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
6.1.9 Estimating the size of a database calculation . . . . . . . . . . . . . . . . . 248
6.2 Performing parallel load . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
6.2.1 Understanding the parallel load . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
6.2.2 Enabling parallel load . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
6.2.3 Running parallel data load . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
6.2.4 Monitoring using the log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
6.2.5 Parallel load performance: Defining the right parameters . . . . . . . . 261
6.2.6 Tools to monitor parallel calculation and load . . . . . . . . . . . . . . . . . 264
6.3 Performing parallel export . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
6.3.1 Running parallel export . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
6.3.2 Monitoring using the log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
6.3.3 Parallel export performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
6.3.4 Exporting files larger than 2 GB . . . . . . . . . . . . . . . . . . . . . . . . . . . 277

Chapter 7. Administration Services. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279


7.1 Administration Services components . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
7.2 New administrative capabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
7.3 Administration Services configurations . . . . . . . . . . . . . . . . . . . . . . . . . . 283
7.4 Using Administration Services. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
7.4.1 Managing security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
7.4.2 Managing DB2 OLAP Servers, applications, and databases . . . . . 304
7.4.3 Managing logs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
7.4.4 Managing scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
7.4.5 Miscellaneous . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
7.5 Implementing Administration Services . . . . . . . . . . . . . . . . . . . . . . . . . . 358
7.5.1 Preparing for installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
7.5.2 Installing DB2 OLAP Server components . . . . . . . . . . . . . . . . . . . . 360
7.5.3 Installing Administration Services . . . . . . . . . . . . . . . . . . . . . . . . . . 362
7.5.4 Starting Administration Services . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
7.5.5 Setting up users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
7.5.6 Backing up Administration Services users information . . . . . . . . . . 384
7.5.7 Creating views. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385

vi DB2 OLAP Server V8.1: Using Advanced Functions


Chapter 8. Additional enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
8.1 Direct I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
8.1.1 Understanding the DB2 OLAP Server caches . . . . . . . . . . . . . . . . 390
8.1.2 The difference between buffered I/O and direct I/O . . . . . . . . . . . . 390
8.1.3 New features in DB2 OLAP Server version 8.1 . . . . . . . . . . . . . . . 392
8.1.4 Changing the I/O access mode (buffered I/O or direct I/O). . . . . . . 393
8.1.5 The cache memory locking option . . . . . . . . . . . . . . . . . . . . . . . . . 394
8.1.6 Defining the DB2 OLAP Server caches when using direct I/O . . . . 395
8.2 Security Migration Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396
8.2.1 Before running the Security Migration Tool. . . . . . . . . . . . . . . . . . . 397
8.2.2 Running the Security Migration Tool . . . . . . . . . . . . . . . . . . . . . . . . 397
8.3 Multiple OLAP agents on the same machine . . . . . . . . . . . . . . . . . . . . . 412
8.3.1 Hints and tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414
8.3.2 A sample configuration scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . 415
8.4 Custom Defined Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419
8.4.1 Software requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419
8.4.2 Performance considerations in the Windows environment . . . . . . . 420
8.4.3 Creating a CDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421
8.4.4 Using a CDF in the outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434
8.4.5 Using a CDF in calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438

Part 5. Appendixes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439

Appendix A. DB2 OLAP Integration Server . . . . . . . . . . . . . . . . . . . . . . . 441


A.1 Integration Server enhancements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442
A.2 Migration of earlier OLAP metadata catalogs . . . . . . . . . . . . . . . . . . . . . 443
A.2.1 New configuration file for Integration Server. . . . . . . . . . . . . . . . . . 444
A.2.2 Multiple data sources in Integration Server . . . . . . . . . . . . . . . . . . 445
A.2.3 Drill through . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452
A.2.4 XML export/import of models and metaoutlines . . . . . . . . . . . . . . . 459
A.2.5 Intelligent help and increased usability . . . . . . . . . . . . . . . . . . . . . . 460

Appendix B. Setting up DB2 OLAP Analyzer Analysis Server V8.1 . . . . 463


B.1 Analyzer V8.1 overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464
B.1.1 Supported platforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465
B.1.2 Architectural overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467
B.2 WebSphere Application Server setup . . . . . . . . . . . . . . . . . . . . . . . . . . . 468
B.3 Setting up and configuring Analyzer Server V8.1 . . . . . . . . . . . . . . . . . . 475
B.3.1 Configuring Analyzer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475
B.3.2 Uninstalling Analyzer V8.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484
B.4 Using Analyzer V8.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484
B.4.1 Analyzer Server console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485
B.4.2 Analyzer Administration Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486

Contents vii
Appendix C. Enterprise Services sample programs . . . . . . . . . . . . . . . . 489
C.1 Copy application/database using CopyOLAP . . . . . . . . . . . . . . . . . . . . . 490
C.2 Sample runsamples.cmd script. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492

Appendix D. Data modeling basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495


D.1 ER data models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495
D.2 Multidimensional data models: star and snowflake . . . . . . . . . . . . . . . . 497

Related publications . . . . . . . . . . . . . . . . . . . . . . ...... ....... ...... . 499


IBM Redbooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . ...... ....... ...... . 499
Other resources . . . . . . . . . . . . . . . . . . . . . . . . ...... ....... ...... . 499
Referenced Web sites . . . . . . . . . . . . . . . . . . . . . . ...... ....... ...... . 500
How to get IBM Redbooks . . . . . . . . . . . . . . . . . . . ...... ....... ...... . 500
IBM Redbooks collections . . . . . . . . . . . . . . . . . ...... ....... ...... . 500

Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501

viii DB2 OLAP Server V8.1: Using Advanced Functions


Figures

1-1 Relational databases supported by Hybrid Analysis . . . . . . . . . . . . . . . . 5


1-2 Serial calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1-3 Parallel calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1-4 Parallel load schema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1-5 Parallel export . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1-6 Administration Services architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1-7 Sample scenarios when migrating DB2 OLAP Server . . . . . . . . . . . . . . 15
1-8 List of functions under Application Manger script editor . . . . . . . . . . . . 16
1-9 Substitution variable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2-1 Basic DB2 OLAP Server architecture . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2-2 DB2 OLAP Server environment using Integration Services. . . . . . . . . . 24
2-3 DB2 OLAP Server: the whole picture. . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2-4 E-banking outline used together with OLAP Miner case study . . . . . . . 31
2-5 Online Investment OLAP application model . . . . . . . . . . . . . . . . . . . . . 34
2-6 Online Investment OLAP application metaoutline . . . . . . . . . . . . . . . . . 36
2-7 Cases and test setup for E-banking and Online Investment . . . . . . . . . 37
3-1 Accessing relational and multidimensional data in a hybrid cube . . . . . 42
3-2 Hybrid analysis architecture in an DB2 OLAP Server environment. . . . 46
3-3 Building a multidimensional application to this point . . . . . . . . . . . . . . . 50
3-4 Enabling Hybrid Analysis from this point in your application . . . . . . . . . 50
3-5 Build of 1-level Hybrid Analysis in Integration Server . . . . . . . . . . . . . . 51
3-6 Selecting the Update Hybrid Analysis Data: option from the menu . . . . 51
3-7 Shows the application and database synchronization settings . . . . . . . 52
3-8 Validation warning initiated by the reversible process . . . . . . . . . . . . . . 54
3-9 Application Manager outline with member enabled for Hybrid Analysis 57
3-10 Administration Services outline showing Hybrid Analysis . . . . . . . . . . . 58
3-11 Enabling or disabling Hybrid Analysis in Administration Services . . . . . 59
3-12 HAMEMORYCACHESIZE overrun . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3-13 HA max query row limit exceeded . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
3-14 HAMAXQUERYTIME exceeded message. . . . . . . . . . . . . . . . . . . . . . . 67
3-15 Enabling and disabling of Hybrid Analysis on a per-query basis . . . . . . 70
3-16 Shows the level at which HA is enabled . . . . . . . . . . . . . . . . . . . . . . . . 71
3-17 Scapa workload running against the DB2 OLAP Server cube . . . . . . . . 76
3-18 Scapa workload running against the hybrid cube . . . . . . . . . . . . . . . . . 77
3-19 Properties selection in Integration Server Metaoutline . . . . . . . . . . . . . 85
3-20 OLAP metaoutline security options . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
4-1 Generic OLAP Miner, OLAP Server and Hybrid Analysis architecture . 91
4-2 Bell shaped standard deviation graph . . . . . . . . . . . . . . . . . . . . . . . . . . 92

© Copyright IBM Corp. 2002. All rights reserved. ix


4-3 Extraction of a Sales subcube for OLAP Mining . . . . . . . . . . . . . . . . . . 93
4-4 OLAP Miner calculates an expected value for each cell in the subcube 94
4-5 2 Kilobytes set for the E-bank application in Application Manager . . . . 96
4-6 OLAP Mining either just the member or the member and descendants 97
4-7 The E-bank application outline shown in Application Manager . . . . . . . 99
4-8 Adding descriptive metadata for your deviation detection . . . . . . . . . . 100
4-9 Selecting members with the deviation detection wizard . . . . . . . . . . . 101
4-10 E-banking 1. quarter 2002, transactions and PC-banking results . . . . 102
4-11 Simple magnitude illustration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
4-12 Selecting Display in Context by right clicking result line . . . . . . . . . . . 103
4-13 Results from mining E-bank shown in Deviation Viewer . . . . . . . . . . . 104
4-14 Graph built in spreadsheet and launched from the deviation viewer . . 105
4-15 Review detection, and set maximum deviations . . . . . . . . . . . . . . . . . 106
4-16 Results from Equity Trade and Netbanking scenario. . . . . . . . . . . . . . 106
4-17 Results for E-bank scenario 2 shown in deviation viewer . . . . . . . . . . 108
4-18 OLAP Miner Server and client communication with DB2 OLAP Server 109
4-19 Starting OLAP Miner in the foreground: Command Console options. . 112
4-20 OLAP Miner XML files shown in the Web browser . . . . . . . . . . . . . . . 115
5-1 OLAP system architecture overview . . . . . . . . . . . . . . . . . . . . . . . . . . 121
5-2 Enterprise Services System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
5-3 Client program technologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
5-4 Java applet client program using TCP/IP. . . . . . . . . . . . . . . . . . . . . . . 126
5-5 Java applet client program using HTTP . . . . . . . . . . . . . . . . . . . . . . . . 127
5-6 Spreadsheet architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
5-7 Client program using EJB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
5-8 Java servlet client program using CORBA. . . . . . . . . . . . . . . . . . . . . . 129
5-9 Clustering sample scenario: single OLAP database per server. . . . . . 132
5-10 Clustering sample scenario: Multiple databases copies per server . . . 133
5-11 Connection pooling sample scenario . . . . . . . . . . . . . . . . . . . . . . . . . . 136
5-12 Connection pooling and clustering scenario . . . . . . . . . . . . . . . . . . . . 137
5-13 Workload balance: Initial sessions established to DB2 OLAP Servers 139
5-14 Enterprise Services: connection pool definition for e-BankConnPool . 140
5-15 Enterprise Services: Cluster definition for e-BankCluster . . . . . . . . . . 141
5-16 Enterprise Services: Enable cluster and connection pool . . . . . . . . . . 142
5-17 Opening connections to DB2 OLAP Server . . . . . . . . . . . . . . . . . . . . . 143
5-18 AM: Connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
5-19 AM connections panel: DB2 OLAP Server on CAYMAN server . . . . . 144
5-20 AM connections panel: DB2 OLAP Server on SICILY server . . . . . . . 145
5-21 Workload balance: Incremental sessions established to OLAP servers146
5-22 Sample cluster definition: Without repetition . . . . . . . . . . . . . . . . . . . . 147
5-23 Sample cluster definition: With repetition . . . . . . . . . . . . . . . . . . . . . . . 148
5-24 Workload balance: Unbalanced load sample scenario . . . . . . . . . . . . 149
5-25 Sample cluster definition: Duplicating an application and database . . 150

x DB2 OLAP Server V8.1: Using Advanced Functions


5-26 Failover scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
5-27 Application failover scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
5-28 Server failover scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
5-29 Server failover scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
5-30 Enterprise Services: the whole picture. . . . . . . . . . . . . . . . . . . . . . . . . 159
5-31 Copying application and databases across OLAP servers . . . . . . . . . 162
5-32 Copy OLAP application across servers via Command Shell . . . . . . . . 164
5-33 Software components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
5-34 Creating a database in DB2 Control Center . . . . . . . . . . . . . . . . . . . . 172
5-35 DB2 configuration variables in the essbase.properties file . . . . . . . . . 173
5-36 Configuration variables in the essbase.properties file . . . . . . . . . . . . . 174
5-37 Configuration of the ClassPath in startees.cmd file . . . . . . . . . . . . . . . 175
5-38 Enterprise Services server window . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
5-39 Enterprise Services Console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
5-40 Enterprise Services Console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
5-41 Command Shell signon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
5-42 Command Shell available commands . . . . . . . . . . . . . . . . . . . . . . . . . 181
5-43 Creating domains . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
5-44 The console with the new domain created. . . . . . . . . . . . . . . . . . . . . . 183
5-45 Creating users in the domain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
5-46 Adding users to the root domain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
5-47 Creating groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
5-48 Adding users to groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
5-49 Creating Enterprise Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
5-50 Enterprise Server added . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
5-51 OLAP cube parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
5-52 Enterprise Services Command Shell: adding an OLAP server . . . . . . 194
5-53 Creating clusters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
5-54 Defining applications to participate in the e-BankCluster cluster. . . . . 197
5-55 Enabling the cluster to be used by the Enterprise Services server . . . 198
5-56 Creating a cluster in the Command Shell . . . . . . . . . . . . . . . . . . . . . . 199
5-57 Creating a connection pool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
5-58 Parameters definition for connection pool with cluster. . . . . . . . . . . . . 202
5-59 Connection pool properties without a cluster definition . . . . . . . . . . . . 203
5-60 Enabling the connection pool in the Enterprise Services server . . . . . 204
5-61 Opening connection pool and cluster. . . . . . . . . . . . . . . . . . . . . . . . . . 207
5-62 Connections opened to DB2 OLAP Server . . . . . . . . . . . . . . . . . . . . . 208
5-63 Runsamples variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
5-64 DataQuery program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
5-65 Data Query result . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
5-66 Creating Cube View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
5-67 Cube View screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
5-68 Cube View spreadsheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220

Figures xi
6-1 Serial calculation and parallel calculation . . . . . . . . . . . . . . . . . . . . . . 225
6-2 Parallel calculation steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
6-3 Sample.Basic outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
6-4 Calculation process using Application Manager . . . . . . . . . . . . . . . . . 238
6-5 Integration Server data load. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
6-6 Verifying the database size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
6-7 Data load process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
6-8 Parallel load process in a single CPU . . . . . . . . . . . . . . . . . . . . . . . . . 253
6-9 Data load using Application Manager . . . . . . . . . . . . . . . . . . . . . . . . . 257
6-10 Data load using ESSCMD command interface . . . . . . . . . . . . . . . . . . 258
6-11 Integration Server data load. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
6-12 VMSTAT example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
6-13 Hit ratio information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
6-14 Task Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
6-15 MMC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
6-16 Parallel export . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
6-17 MaxL export syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
7-1 Administration Services architecture . . . . . . . . . . . . . . . . . . . . . . . . . . 280
7-2 Administration Services: enterprise scenario . . . . . . . . . . . . . . . . . . . . 283
7-3 Administration Services: mixed scenario . . . . . . . . . . . . . . . . . . . . . . . 284
7-4 Administration Services: stand alone scenario . . . . . . . . . . . . . . . . . . 285
7-5 Uing Administration Services to create an OLAP Server user . . . . . . . 287
7-6 Using Administration Services to create an OLAP Server group . . . . . 289
7-7 Using Administration Services to delete and rename users or groups 290
7-8 Editing group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
7-9 Adding a user to a group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
7-10 Granting permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
7-11 Migrating users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
7-12 Migrating users to OLAP Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
7-13 User migrated . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
7-14 Copy user. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
7-15 Propagating password in a cluster environment. . . . . . . . . . . . . . . . . . 299
7-16 Propagating the password . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
7-17 Propagating password dialog box . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
7-18 Creating a new user using LDAP external authentication.. . . . . . . . . . 303
7-19 DB2 OLAP Server properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
7-20 Administration Services - comparing DB2 OLAP Server properties . . 308
7-21 Managing sessions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
7-22 Logging off users — example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
7-23 Logging off users result . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
7-24 Administration Services managing locks . . . . . . . . . . . . . . . . . . . . . . . 311
7-25 Creating application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
7-26 Creating, renaming or deleting a database. . . . . . . . . . . . . . . . . . . . . . 316

xii DB2 OLAP Server V8.1: Using Advanced Functions


7-27 Opening the Outline Editor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
7-28 The outline structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
7-29 Defining dimensions and members . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
7-30 Changing a member properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
7-31 Outline properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
7-32 Outline editor toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
7-33 Member formula . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
7-34 Data load and dimension build. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
7-35 Execute a calculation in the background . . . . . . . . . . . . . . . . . . . . . . . 331
7-36 Clearing data before a data load . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
7-37 Migration Wizard: dialog box 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
7-38 Migrating Wizard: dialog box 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
7-39 Hit ratio on Administration Services . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
7-40 Operating System monitor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
7-41 Disk drivers monitor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
7-42 Background execution status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
7-43 Viewing background processes status. . . . . . . . . . . . . . . . . . . . . . . . . 343
7-44 Process ID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
7-45 The message panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
7-46 Closing the message panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
7-47 Filtering messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
7-48 Log analyzer message folder. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
7-49 Log analyzer chart folder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
7-50 OLAP Server log enhancements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
7-51 MaxL auto completion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
7-52 MaxL color coding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
7-53 MaxL Script editor toolbar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
7-54 MaxL Script Editor result panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
7-55 Creating a calculation script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
7-56 Calculation script editor.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
7-57 Calculation scripts buttons. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
7-58 Report Script editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
7-59 Report Viewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
7-60 Setting the ARBORPATH variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
7-61 Choose Product Features Prompt Screen . . . . . . . . . . . . . . . . . . . . . . 363
7-62 Administration Server window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
7-63 Saving logs to a file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
7-64 Saving logs to a log file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
7-65 Stopping Administration Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368
7-66 Administration Services Console login. . . . . . . . . . . . . . . . . . . . . . . . . 369
7-67 Administration Services Console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
7-68 Launching the User Setup Wizard . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373
7-69 User Information Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374

Figures xiii
7-70 User ibmuser created. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
7-71 Creating users in the navigation panel. . . . . . . . . . . . . . . . . . . . . . . . . 376
7-72 Create user window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
7-73 New user in the navigational panel . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
7-74 Administration Services single sign-on . . . . . . . . . . . . . . . . . . . . . . . . 379
7-75 Associating OLAP servers to users . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
7-76 OLAP Servers window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
7-77 Adding a OLAP Server to a user . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
7-78 Enterprise View for user ibmuser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
7-79 Editing user properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384
7-80 Administration Services Enterprise View . . . . . . . . . . . . . . . . . . . . . . . 385
7-81 New custom view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386
8-1 DB2 OLAP Server caches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
8-2 Direct I/O versus buffered I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391
8-3 Migrating data: first option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
8-4 Enter servers information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399
8-5 Select specific application to migrate . . . . . . . . . . . . . . . . . . . . . . . . . . 399
8-6 List of available applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400
8-7 Run the migration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400
8-8 Migration results display . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
8-9 Connect.log example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
8-10 Results.log example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
8-11 Data.txt example: user section. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
8-12 Data.txt example: application section . . . . . . . . . . . . . . . . . . . . . . . . . 404
8-13 Secmgr.log example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
8-14 Migrating data: second option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
8-15 Enter server information. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
8-16 Select specific application to migrate . . . . . . . . . . . . . . . . . . . . . . . . . . 407
8-17 List of available applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
8-18 Run the migration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408
8-19 Migration results display . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408
8-20 Migrating data: third option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
8-21 Enter destination server information . . . . . . . . . . . . . . . . . . . . . . . . . . 410
8-22 Select specific application to migrate . . . . . . . . . . . . . . . . . . . . . . . . . . 410
8-23 Run the migration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411
8-24 Migration results display . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411
8-25 Custom Defined Function Manager main screen. . . . . . . . . . . . . . . . . 430
8-26 Custom Defined Function Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431
8-27 Filling in the Custom Defined Function Editor . . . . . . . . . . . . . . . . . . . 432
8-28 Displaying the CDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433
8-29 Formula editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435
8-30 Function templates. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436
8-31 Formula created formula in the outline . . . . . . . . . . . . . . . . . . . . . . . . 437

xiv DB2 OLAP Server V8.1: Using Advanced Functions


8-32 Outline with formula . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438
A-1 OLAP Metadata Catalog setup or migration dialog box . . . . . . . . . . . . 444
A-2 Connecting to a second data source in Integration Server . . . . . . . . . 446
A-3 Check to remember secondary data source password.. . . . . . . . . . . . 447
A-4 Primary data source properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448
A-5 Dimension properties showing selection of data source . . . . . . . . . . . 449
A-6 Secondary data source properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450
A-7 Multiple data sources connected in left frame . . . . . . . . . . . . . . . . . . . 451
A-8 How to add a new drill through report . . . . . . . . . . . . . . . . . . . . . . . . . 452
A-9 New drill through functionality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453
A-10 SQL generated by a drill-through report and changes made to it . . . . 454
A-11 SQL Override . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455
A-12 Formula validation for member . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456
A-13 Error reporting on Formulas in Member Properties . . . . . . . . . . . . . . . 457
A-14 Start with the Application Manager outline for drill through reports . . . 458
A-15 Update drill through data for the added drill through functionality . . . . 459
A-16 Saving a Model as an XML file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460
A-17 Intelligent help in Integration Server . . . . . . . . . . . . . . . . . . . . . . . . . . 461
B-1 Architecture for Java based clients . . . . . . . . . . . . . . . . . . . . . . . . . . . 467
B-2 Selecting custom installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469
B-3 Selecting WebSphere Application Server components . . . . . . . . . . . . 470
B-4 Choosing the Web Server Plugins . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
B-5 Specifying security options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472
B-6 Specifying products directories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473
B-7 Specifying database options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473
B-8 Selecting the Application Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476
B-9 Configuring the Application Server . . . . . . . . . . . . . . . . . . . . . . . . . . . 477
B-10 Using a local RDBMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478
B-11 Using a remote RDBMS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479
B-12 Configuring the local DB2 connection . . . . . . . . . . . . . . . . . . . . . . . . . 480
B-13 Configuring the remote DB2 connection . . . . . . . . . . . . . . . . . . . . . . . 481
B-14 Configuring Analyzer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482
B-15 Running usejdbc2.bat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483
B-16 Analyzer Launch Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485
B-17 Analyzer Server console for user monitoring . . . . . . . . . . . . . . . . . . . . 486
B-18 Connecting to DB2 OLAP application . . . . . . . . . . . . . . . . . . . . . . . . . 487
D-1 ER data model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496
D-2 Star schema data model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497
D-3 Snowflake data model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498

Figures xv
xvi DB2 OLAP Server V8.1: Using Advanced Functions
Tables

1-1 Grade of platforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6


1-2 New parameters and commands (parallel calculation) . . . . . . . . . . . . . 10
1-3 Administration Services functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3-1 Supported and unsupported transformations. . . . . . . . . . . . . . . . . . . . . 53
3-2 Test results: loading and calculating the Online Investment application 55
3-3 Tuning examples and query performance impact . . . . . . . . . . . . . . . . . 61
3-4 End of the run statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
3-5 End of the run statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
3-6 Response times . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
3-7 Hybrid Analysis and drill through reports — general comparison . . . . . 80
3-8 Ctrace and performance trace properties . . . . . . . . . . . . . . . . . . . . . . . 87
4-1 OLAP Mining performance test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
4-2 OLAP Miner installation preferences. . . . . . . . . . . . . . . . . . . . . . . . . . 110
5-1 Main characteristics of connection pool and cluster . . . . . . . . . . . . . . 138
5-2 Step-by-step implementation checklist . . . . . . . . . . . . . . . . . . . . . . . . 167
5-3 Additional commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
5-4 Addition commands related to DB2 OLAP Server . . . . . . . . . . . . . . . . 194
5-5 Additional commands related to cluster . . . . . . . . . . . . . . . . . . . . . . . . 199
5-6 Connection Pool commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
5-7 Most common sample programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
6-1 Setting the database isolation level . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
6-2 Parameters of CALCTASKDIMS or SET CALCTASKDIMS . . . . . . . . 236
6-3 ESSCMD commands to calculate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
6-4 Outline disordered . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
6-5 Outline ordered . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
6-6 SET MSG ONLY versus EstimateFullDBSize versus real calculation . 250
6-7 The vmstat tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
6-8 Parexport syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
6-9 MaxL export syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
7-1 New functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
7-2 AUTHENTICATIONMODULE syntax. . . . . . . . . . . . . . . . . . . . . . . . . . 302
7-3 DB2 OLAP Server properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
7-4 Application properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
7-5 Database properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
7-6 Administration Services step by step implementation . . . . . . . . . . . . . 359
8-1 Direct I/O supported platforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
8-2 Default buffer cache configuration and how to set it . . . . . . . . . . . . . . 392
8-3 IBM DB2 OLAP Server and Hyperion Essbase correspondences. . . . 396

© Copyright IBM Corp. 2002. All rights reserved. xvii


B-1 Supported components and platforms . . . . . . . . . . . . . . . . . . . . . . . . . 465
B-2 Compatibilities and dependencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466

xviii DB2 OLAP Server V8.1: Using Advanced Functions


Examples

3-1 HAMEMORYCACHESIZE set at 1 MB . . . . . . . . . . . . . . . . . . . . . . . . . 63


3-2 HAMEMORYCACHESIZE for specific application and all others . . . . . 63
3-3 HAMEMORYCACHESIZE last setting overrides first setting . . . . . . . . . 63
3-4 HAMAXNUMCONNECTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
3-5 Number of SQL queries per OLAP Server query session is set to 10 . . 65
3-6 OLAP Server processes up to 100,000 rows per SQL query . . . . . . . . 65
3-7 HAMAXQUERYTIME set at 300 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3-8 HARETRIEVENUMROW set at 50 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3-9 Enabling Hybrid Analysis in essbase.cfg . . . . . . . . . . . . . . . . . . . . . . . . 69
3-10 Location of branches in the e-banking application . . . . . . . . . . . . . . . . . 71
3-11 Hybrid Analysis generated SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
3-12 Setting Ctrace to level 2 for application Oiha . . . . . . . . . . . . . . . . . . . . . 87
4-1 Subcube definition for Online Investment . . . . . . . . . . . . . . . . . . . . . . . 92
4-2 OMServer.cfg file: client log verbose level set to high . . . . . . . . . . . . . 111
4-3 Running sync olap command. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
4-4 OMClient.cfg file. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
4-5 Running OLAP Miner on PC-banking . . . . . . . . . . . . . . . . . . . . . . . . . 113
4-6 Log file describing the subcube that was mined . . . . . . . . . . . . . . . . . 114
5-1 Fail tolerance actions on same service component . . . . . . . . . . . . . . . 152
5-2 Fault tolerance actions on a different service component . . . . . . . . . . 153
5-3 Copy OLAP application across servers . . . . . . . . . . . . . . . . . . . . . . . . 164
5-4 Copy OLAP database across servers . . . . . . . . . . . . . . . . . . . . . . . . . 164
5-5 CreateConnPoolAndCluster sample program . . . . . . . . . . . . . . . . . . . 206
5-6 DataQuery program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
5-7 Data Query program updated . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
6-1 Using two threads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
6-2 Using three threads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
6-3 Using four threads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
6-4 Using SET CALCPARALLEL command . . . . . . . . . . . . . . . . . . . . . . . 233
6-5 Calculation script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
6-6 Configuring threads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
6-7 Set msg only result . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
6-8 EstimateFullDBSize output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
6-9 essbase.cfg configuration file. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
6-10 DLSINGLETHREADPERSTAGE: application level . . . . . . . . . . . . . . . 254
6-11 DLSINGLETHREADPERSTAGE: database level . . . . . . . . . . . . . . . . 255
6-12 DLSINGLETHREADPERSTAGE: server level . . . . . . . . . . . . . . . . . . 255
6-13 DLSINGLETHREADPERSTAGE: parallel mode . . . . . . . . . . . . . . . . . 255

© Copyright IBM Corp. 2002. All rights reserved. xix


6-14 DLTHREADSPREPARE: application level . . . . . . . . . . . . . . . . . . . . . 255
6-15 DLTHREADSPREPARE: database level . . . . . . . . . . . . . . . . . . . . . . . 256
6-16 DLTHREADSPREPARE: server level . . . . . . . . . . . . . . . . . . . . . . . . . 256
6-17 DLTHREADSWRITE: application level . . . . . . . . . . . . . . . . . . . . . . . . 256
6-18 DLTHREADSWRITE: database level . . . . . . . . . . . . . . . . . . . . . . . . . 256
6-19 DLTHREADSWRITE: server level . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
7-1 Authentication module essbase.cfg . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
7-2 Error on verifying formula. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
7-3 Modifications folder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
7-4 Validation status. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
7-5 DB2 OLAP Server error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
7-6 Administration Services error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
8-1 Changing I/O access mode without restarting the database . . . . . . . . 394
8-2 Changing the I/O access mode and restarting the database . . . . . . . . 394
8-3 The olapcay user .profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415
8-4 Olapcayb user .profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
8-5 Essbase.cfg file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421
8-6 Example of Java program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424
8-7 Compiling the Java program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424
8-8 Archiving Java program using jar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424
8-9 Using MaxL to log in to DB2 OLAP Server . . . . . . . . . . . . . . . . . . . . . 426
8-10 Register the CDF using MaxL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426
8-11 Refresh MaxL statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427
8-12 Combining MaxL commands in a script . . . . . . . . . . . . . . . . . . . . . . . . 427
8-13 MaxL drop function statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428
8-14 MaxL display statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429
8-15 MaxL display atatement on the application . . . . . . . . . . . . . . . . . . . . . 429
8-16 MaxL display statement output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429
A-1 Server configuration settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445
8-17 CopyOlapAppAndCube sample script . . . . . . . . . . . . . . . . . . . . . . . . . 490
8-18 Sample runsamples.cmd script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492

xx DB2 OLAP Server V8.1: Using Advanced Functions


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. 2002. All rights reserved. xxi


Trademarks
The following terms are trademarks of the International Business Machines Corporation in the United States,
other countries, or both:
IBM® SP™
AIX® IMS™ WebSphere®
Balance® Intelligent Miner™ Lotus®
DB2® Perform™ 1-2-3®
DB2 OLAP Server™ Redbooks™
DB2 Universal Database™ Redbooks(logo)™

The following terms are trademarks of International Business Machines Corporation and Lotus Development
Corporation in the United States, other countries, or both:

Lotus® Word Pro® 1-2-3®

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.

xxii DB2 OLAP Server V8.1: Using Advanced Functions


Preface

IBM DB2 OLAP Server V8.1 (DB2 OLAP Server throughout this IBM Redbook),
based on Hyperion Essbase Server V6.5, incorporates significant improvements
and integrates the whole enterprise dimension, with multiple OLAP servers
(IBM DB2 OLAP Server or Hyperion Essbase Server) to control and manage
your data.

We discuss the new advanced functions in the areas of scalability, analytics,


performance, high concurrency, high availability, and administrative functions,
and explain how DB2 OLAP Server V8.1:
򐂰 Combines the high performance of multidimensional with relational scalability
through Hybrid Analysis
򐂰 Enables you to automate the discovery of atypical patterns in your cubes
through DB2 OLAP Server Miner (OLAP Miner throughout this book)
򐂰 Lets you run operations in multithreaded mode with parallel calculation, data
load, and export
򐂰 Provides availability and reliability, allowing cube clustering, failing over, and
connection pooling through DB2 OLAP Server Enterprise Services or High
Concurrency Option (Enterprise Services throughout this book)
򐂰 Gives a single point of administration for managing multiple OLAP Servers
through DB2 OLAP Server Administration Services (Administration Services
throughout this book)
򐂰 Allows you to integrate information from multiple data sources through new
DB2 OLAP Integration Server improvements (Integration Server throughout
this book)

This book positions the new advanced analytics, enterprise and administration
functions, and other features, so you can understand and evaluate their
applicability in your own enterprise environment. It provides information and
examples to help you to get started prioritizing and implementing the new
advanced functions.

© Copyright IBM Corp. 2002. All rights reserved. xxiii


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.

The team: Paola, Ulrich, Jakob, Corinne, Jo, Luciana (from left to right)

Corinne Baragoin is a Business Intelligence Project Leader at the International


Technical Support Organization, San Jose Center. She has over 16 years of
experience as an IT specialist on DB2 UDB and related solutions. Before joining
the ITSO in 2000, she worked as an IT Specialist for IBM France, supporting
Business Intelligence technical presales activities and assisting customers on
DB2 UDB, data warehouse and OLAP solutions.

Luciana Dongo Alves is an I/T Specialist in database management and


Business Intelligence in IBM Brazil. She has three years of experience in
Business Intelligence support and services. Her areas of expertise include DB2
OLAP Server, DB2 Universal Database, DB2 Intelligent Miner and DB2
Warehouse manager on UNIX and Intel platforms.

Jakob Burkard is a Senior IT Specialist in the Nordic Data Management team.


He holds a Masters degree in Information Science and has 6 years of experience
in architecting, building, and implementing Business Intelligence solutions. His
experience as a project manager has given him an in-depth view of challenges
facing the deployment of Business Intelligence solutions. He has worked at IBM
for 2.5 years. His areas of expertise include data warehousing, OLAP solutions
and front-end applications.

xxiv DB2 OLAP Server V8.1: Using Advanced Functions


Ulrich Guldborg is an IT Developer in Denmark. He works for Nordea, which is
one of the largest financial companies in the Nordics including Denmark,
Sweden Norway, Finland, and the Baltics. Here he is responsible for the use of
DB2 OLAP Server within the company. Ulrich has more than 20 years of
experience in the Business Intelligence and Data Warehouse field, and has
worked extensively in this area. He holds a degree in Life Insurance, and has
been working in banking and insurance throughout his career. In addition to
advanced ETL, Ulrich’s areas of experience include programming in COBOL,
Java, VB, SAS, Basic, Assembler, and other languages.

Jo Ramos has 15 years of experience in Information Technology and practical


experience in implementing Data Management and Business Intelligence
solutions. He works for the Advanced Technical Support Organization (ATS) in
Dallas, in the Business Intelligence Solution Center (BISC) group. He provides
presales support for Data Management products, developing customized
demonstrations and proof of concepts for ETL and OLAP applications.

Paola Rodriguez is a Data Management and Business Intelligence IT specialist


at the Software Division in IBM Argentina, providing pre-sales technical support
since she joined IBM in 1998. She has 4 years of experience in developing
Business Intelligence solutions in a wide range of companies for Argentina,
Paraguay and Uruguay. Her areas of expertise include OLAP Solutions, Mining
Solutions and end-user analysis tools.

We would like to especially thank the following people for their specific
contributions to this project, for testing and writing:

Julia L Hirlinger
Lori Norton
Gary Robinson
Marty Yarnall
IBM Silicon Valley Lab

Cintia Y Ogura
IBM DB2 Advanced Technical Support

Thanks to the following people for their help to this project by providing their
technical support and/or reviewing this redbook:

Melissa Biggs
Aaron Briscoe
Larry Higbee
Gary Mason
Gregor Meyer
John Poelman
Allan Wei

Preface xxv
Chris Yao
IBM Silicon Valley Laboratory

Vaishnavi Anjur
Hematha Banerjee
Michael Gnann
Bob Jacobson
Al Marciante
Vince Medina
Sujata Shah
Eric Smadja
Richard Sawa
Hyperion Solutions

Doreen Fogle
IBM WW DB2 OLAP Server Technical Sales Support

Ian Allen
IBM EMEA Technical Sales Business Intelligence Solutions

Jaap Verhees
Business Partner from Ordina, Netherlands

Yvonne Lyon, Technical Editor


IBM International Technical Support Organization, San Jose Center

Become a published author


Join us for a two- to seven-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

xxvi DB2 OLAP Server V8.1: Using Advanced Functions


Comments welcome
Your comments are important to us!

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:
[email protected]
򐂰 Mail your comments to:
IBM Corporation, International Technical Support Organization
Dept. QXXE Building 80-E2
650 Harry Road
San Jose, California 95120-6099

Preface xxvii
xxviii DB2 OLAP Server V8.1: Using Advanced Functions
Part 1

Part 1 Introduction
In this part of the book, we take you through an overview of the DB2 OLAP
Server V8.1 new advanced functions and describe how to combine the different
components.

Furthermore, we discuss an environment that is as near real life as possible — a


banking case study that has been used throughout the book.

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


2 DB2 OLAP Server V8.1: Using Advanced Functions
1

Chapter 1. DB2 OLAP Server V8.1


overview
DB2 OLAP Server V8.1 major and significant enhancements provide the
following advantages:
򐂰 Even more scalability through Hybrid Analysis that combines the high
performance of multidimensional and relational scalability
򐂰 Deviation detection or discovery of unexpected values
򐂰 Parallel engine to exploit hardware and run OLAP operations as calculation,
load and export in parallel, decreasing the batch window to build your cube or
export it
򐂰 High concurrency and high availability solutions through Enterprise Services
for workload balancing, clustering, connection pooling and failing over on
multiple OLAP Servers
򐂰 Framework to manage and maintain OLAP Servers from anywhere in the
enterprise from a centralized and single point of control

In this chapter we present an overview of these new features and enhancements,


which we then detail in the remainder of the book.

© Copyright IBM Corp. 2002. All rights reserved. 3


1.1 Advanced analytical functions
DB2 OLAP Server version 8.1 has two features that add power and flexibility to
your analytical environment: Hybrid Analysis and DB2 OLAP Miner.

1.1.1 Combining OLAP and relational databases: Hybrid Analysis


Using the Hybrid Analysis feature, you can combine multidimensional OLAP
performance with the scalability of a relational database, defining your
multidimensional database to have a lower portion residing in the relational
database.

Hybrid Analysis can retrieve data from a relational database as if the data
physically resides on the cube storage. It can construct multiple SQL queries
dynamically and automatically allowing total flexibility to access the relational
database from DB2 OLAP Server multidimensional database.

Important: Hybrid Analysis does not replace Integration Server Drill-Through


Reports. A Hybrid Analysis cube can still have Drill-Through Reports for its
“regular” portion to deal with exceptional or specific requests.

If you have applications that analyze very large volumes of data, only a smaller
physical cube needs to be loaded and precalculated in DB2 OLAP Server while
the lower, more detailed level of data can be accessed dynamically at execution
time. This avoids taking a long time to load and calculate the multidimensional
database, and allows you to use the efficiency of mass data scalability that the
relational databases offer.

One of the most important issue will be to design the database and define how
much aggregation is done dynamically in the database.

Integration Server is required for data description tasks of Hybrid Analysis. It is


used to build Hybrid Analysis outline and Hybrid Analysis cubes. The information
about the Hybrid Analysis portion of a cube is kept in the Integration Server
metaoutline and used at query time.

4 DB2 OLAP Server V8.1: Using Advanced Functions


The relational databases supported by Hybrid Analysis are diagrammed in
Figure 1-1.

Hybrid Analysis
Manager

DB2 DB2 ORACLE


ODBC 6.1 ODBC 7.1 MERANT 4.0

Figure 1-1 Relational databases supported by Hybrid Analysis

1.1.2 OLAP Miner


OLAP Miner enhances the reporting capabilities of DB2 OLAP Server, combining
IBM data mining technology with OLAP technology. It uses the loaded and
calculated data that is created with DB2 OLAP Server to identify atypical or
deviant values automatically.

OLAP databases can often hold so much data that it is impossible to search all
areas of the cube for useful information. OLAP Miner helps with this data
exploration problem using a data mining algorithm developed at IBM Laboratory
to search cubes for extraordinary values or deviations. A deviation is defined as
a value in the cube that differs significantly from its expected value.

A value in a cell is a deviation if it significantly varies from the expected value,


calculated by the OLAP Miner algorithm. The algorithm calculates the expected
value of a cell based on the context of the cell's position in the cube, and the
algorithm combines contributions from all dimensions to which the cell belongs.
OLAP Miner lists deviations, presents various views of each deviation, and
quantifies how big the difference is between the expected value and the actual
value (magnitude). OLAP Miner lists the deviations in the order of their
importance.

Chapter 1. DB2 OLAP Server V8.1 overview 5


OLAP Miner helps in the following ways:
򐂰 By discovering anomalies from the wealth of data analyzed
򐂰 By discovering notable fluctuations in sales numbers, budgets, or other data
in a customer’s business
򐂰 By detecting problem areas, or areas of excellent performance in the cube
data
򐂰 By saving the analyst’s time when looking for problem areas
򐂰 By highlighting problem areas that an analyst may not see

OLAP Miner provides a graphical interface to help when creating deviation


detection definitions and to display the results of these definitions (Table 1-1).

Table 1-1 Grade of platforms


Platforms supported by OLAP Miner Platforms supported by OLAP Miner
Server Client

Windows NT v4.0 Windows 98


Windows 2000 Windows NT v4.0
AIX 4.3.3 Windows 2000
Windows ME

Important: OLAP Miner is an IBM DB2 OLAP Server feature that is supplied
free. In DB2 OLAP Server version 8.1, the OLAP Miner feature is packaged as
a separate installation.

1.2 Advanced enterprise functions


DB2 OLAP Server Version 8.1 incorporates a new feature, Enterprise Services,
that enables the DB2 OLAP Server to run in a more reliable and efficient
enterprise environment to serve the analysis needs of a larger number of users,
in Web-based environments. Enterprise Services allows you to cluster OLAP
Servers and balance their workload, as well as to provide connection pooling and
high concurrency and to support the OLAP Server failover and develop high
availability scenarios.

Enterprise Services
Enterprise Services gives the capability to group identical DB2 OLAP Server
version 8.1 databases using them as a single resource. These databases can be
in multiple machines and the Enterprise Services serves users applications as
one logical unit.

6 DB2 OLAP Server V8.1: Using Advanced Functions


The Enterprise Services feature provides these capabilities:
򐂰 Connection pooling to serve multiple users requests sharing connections,
conserving software and network resources and improving performance:
The connection pooling facilitates the scaling of DB2 OLAP Server
applications to thousands of users.
򐂰 Clustering to serve multiple requests and distribute the workload across
multiple servers running the same cube:
By distributing the activity, an administrator can ensure that their users
receive a consistent response time from the system. As the user community
grows or becomes more active, the administrator can simply add more DB2
OLAP Server databases to the cluster to improve response time.

Combining these two functions provides a high availability environment. Through


the use of clustering, if a failure occurs on a database or on an OLAP Server in
the cluster, the system will be able to continue processing requests using the
other databases in the cluster. DB2 OLAP Server detects service interruptions
and automatically re-routes requests to another DB2 OLAP Server.

Enterprise Services is supported on Windows XP, Windows NT 4.0, Windows


2000, Sun Solaris 7/8 (SunOS 5.7/5.8), HP-UX 11.0/11i and AIX 4.3.3 or 5L.

A new priced feature, High Concurrency Option, is required for cube clustering
that is itself required for workload balancing and failover capabilities.

1.3 Advanced administrative functions


DB2 OLAP Server version 8.1 incorporates significant improvements:
򐂰 Exploits the new parallel capabilities on load, calculation and export, DB2
OLAP Server incorporates significant improvements in performance to exploit
multiple processors.
򐂰 Helps administrators managing the multiple OLAP objects and environments
in the enterprise, DB2 OLAP Server expands Application Manager
capabilities with a new feature: Administration Services.
򐂰 Facilitates migration between different OLAP server environments, DB2
OLAP Server version 8.1 provides an additional tool called the Security
Migration Tool.
򐂰 Provides more flexibility to develop and use applications, the DB2 OLAP
Server version 8.1 has new API functions and enhancements in Custom
Defined Functions and Custom Defined Macros.

Chapter 1. DB2 OLAP Server V8.1 overview 7


1.3.1 Parallel calculation
Now, any of the critical operations can be run in multi-threaded mode, enabling
you to take advantage of your multiprocessor hardware. This improves system
performance and throughput, reducing batch window when building cubes.

Previously DB2 OLAP Server version 8.1, the OLAP kernel operated in
single-threaded mode and performed load and calculation serially, even if the
engine was highly parallel for queries.

In a serial calculation (see Figure 1-2) all steps run on a single thread. Each task
is completed before next is started.

Serial Calculation
Calculate
process
waiting
task5
waiting
task4

Only 1
Thread
waiting
task3
waiting
task2

Operating System
executing: task1

CPU 1 CPU 2
processing idle

Figure 1-2 Serial calculation

If you enable parallel calculation (see Figure 1-3), the OLAP engine analyzes all
the tasks for a calculation pass and breaks them down into tasks that can run
independently of each other. DB2 OLAP Server passes the tasks that are ready
to be executed to the operating system using multiple threads simultaneously on
up to four threads.

8 DB2 OLAP Server V8.1: Using Advanced Functions


Parallel Calculation

Calculate
process

CALCPARALLEL 2
or
SET CALCPARALLEL 2

Threa
d1
re a

d
Th

2
waiting
waiting
task6

task4
waiting

waiting
task5

task3
Operating System
executing: task1, task2

CPU 1 CPU 2
processing processing

Figure 1-3 Parallel calculation

If DB2 OLAP Server determines that parallel calculation does not improve
performance or if the formulas have complex interdependencies (cannot break
them in subtasks to run independently), the DB2 OLAP Server executes the
calculation process in single mode, even if the parallel load is enabled.

You can enable the parallel calculation at the server level, application level, or
database level.

Table 1-2 shows the new parameters and commands to administrate parallel
calculation.

Chapter 1. DB2 OLAP Server V8.1 overview 9


Table 1-2 New parameters and commands (parallel calculation)
Settings Command What it does
(essbase.cfg)

CALCPARALLEL SET CALCPARALLEL Enables DB2 OLAP Server to use


parallel calculation, specifying the
number of threads to be made
available for parallel calculation.
DB2 OLAP Server analyzes each
pass of a calculation to determine
whether parallel calculation would
optimize the calculation. If it would
not, DB2 OLAP Server uses serial
calculation even if CALCPARALLEL
is set.

CALCTASKDIMS SET CALCTASKDIMS Specifies how many of the sparse


dimensions in an outline are used to
identify potential tasks that can be
run in parallel.

1.3.2 Parallel data load


Enabling parallel load, you can have substantial performance improvements,
taking advantage of your multiprocessor machine.

For better performance, DB2 OLAP Server divides the load processing in two
steps: preparation and write (see Figure 1-4).

In the preparation step, the DB2 OLAP Server organizes the data source in
memory. In the write step, the DB2 OLAP Server writes blocks from the memory
to the disk.

You can define how many threads you can run for preparation steps and how
many threads you can run for write steps. For example, in Figure 1-4 we are
using three threads for the preparation step and two threads for the write step.

10 DB2 OLAP Server V8.1: Using Advanced Functions


Input file
flat
file or Relational
database

Input stage
Portion of
data

3
threads

Preparation data
stage organized

2
threads
data cache
(memory)

Write stage

blocks
data
Disk

Figure 1-4 Parallel load schema

1.3.3 Parallel export


The export command is very useful to transfer data across platforms, back up
only a certain portion of the data, create an exported file in text format rather than
binary format, reduce fragmentation in a database by exporting data into an
ASCII file, clearing all data from the database, and reloading the ASCII file.

Now, using DB2 OLAP Server version 8.1, you can decrease the export process
time using the new parallel export. The parallel export is executed on multiple
threads and each thread retrieves data and writes it to a corresponding export
file allowing I/O parallelism, writing to two or more I/O devices simultaneously.

DB2 OLAP Server can also exploit I/O parallelism, splitting the output in multiple
files, until 8 files. In Figure 1-5, the database e-bank is exported using two
threads. Two output files are generated.

Chapter 1. DB2 OLAP Server V8.1 overview 11


App: e-bank
Database: e-bank

Export

Output
Output
file1
file1

Figure 1-5 Parallel export

To execute the export in parallel, you can use the new PAREXPORT command
(ESSCMD) or you can use the MaxL export command.

1.3.4 Administration Services


Administration Services combines a single point of administration with an
easy-to-use wizard graphical interface.

Now you can manage OLAP Servers objects quickly, in a visual, familiar setting.
You can perform multiple tasks simultaneously, run process in the background,
perform cross-server operations, and manage active user sessions and requests
from anywhere in the enterprise.

In contrast, when using Application Manager, you cannot run processes in the
background. While you are running processes such as calculation or load using
the Application Manager, you lose other operations. However, when using
Administration Services, you can save time by running common processes in the
background, and you can continue administering your OLAP servers.

12 DB2 OLAP Server V8.1: Using Advanced Functions


The Administration Services works as a middle tier server that communicates
directly with OLAP Servers as shown on Figure 1-6, providing a graphical user
interface client console. This user interface client console is based on Java and
can run on multiple platforms, including UNIX platforms.

Client Tier Middle Tier Database Tier


Administration Services Administration Services DB2 OLAP Server
Console Server servers

HTTP TCP/IP

Data Store

HTTP
Listener

Figure 1-6 Administration Services architecture

The console incorporates many of the functionalities of Application Manager and


other administration tools, such as MaxL, offering many new functions not
available in Application Manager.

Table 1-3 describes the major functions available in Administration Services.

Table 1-3 Administration Services functions


Functions What they do

Monitor - Manage user sessions and requests


- Manage user locks on data
- Log Analyzer: filter, search and analyze OLAP Server
logs and application logs
- Monitor OLAP Server performance and view
configuration information

Object manipulation - Custom Defined Function and Macros: creates, edit


and delete
- Database: clear data, view and edit properties, create,
rename, start and stop
- Applications: view and edit properties, create, rename,
start and stop

Password propagation - Change a password and then propagate that password


to other OLAP Servers.

Chapter 1. DB2 OLAP Server V8.1 overview 13


Functions What they do

Scripts - MaxL script editor integrated with the Administrative


Services Console: create, edit, save and execute MaxL
statements scripts or use the MaxL interactively.
- Calculation Script Editor integrated with the
Administrative Services Console: create, manage and
execute calculation scripts in the background.
- Create, edit and delete custom-defined functions and
macros.

Single sign-on - Handle your connections to OLAP Servers,


applications, and databases.

View - Show port information


- View OLAP outlines

Print - Print the content of many windows in the console

These are the Administration Services platforms supported:


򐂰 Windows NT 4.0
򐂰 Windows 2000 on Pentium or later machines
򐂰 Windows 98
򐂰 Windows ME (Millennium Edition)
򐂰 Sun Solaris 6, 7, and 8
򐂰 AIX 4.3.3 or 5L

1.3.5 Security Migration Tool


The Security Migration Tool is available with DB2 OLAP Server V8.1 and
migrates automatically OLAP security data, from a source server into a
destination server, where the servers can be of either the same version of DB2
OLAP Server, or of different versions.

It allows you to migrate applications, databases, filters, users, groups from one
server onto another server without any user interaction.

The current available hardware platforms are: AIX and Windows and the DB2
OLAP Servers are DB2 OLAP versions 1.1, 7.1 and 8.1. Figure 1-7 shows some
migration scenarios.

14 DB2 OLAP Server V8.1: Using Advanced Functions


DB2 OLAP Server DB2 OLAP Server
version 7.1 for AIX version 8.1 for AIX

DB2 OLAP Server DB2 OLAP Server


version 1.1 for AIX version 8.1 for Win

DB2 OLAP Server DB2 OLAP Server


version 8.1 for Win version 8.1 for AIX

Figure 1-7 Sample scenarios when migrating DB2 OLAP Server

You can use one of the following options to migrate your data:
򐂰 Migrate security data directly from one OLAP Server to another OLAP Server
on the same platform.
򐂰 Copy security data into a data file that can be re-used to create security data
on any of the supported platforms.
򐂰 Migrate security data onto an OLAP Server using a data file

To run the Security Migration tool, the installation program must be downloaded
from the DB2 OLAP Server Web site:
http://www.ibm.com/software/data/db2/db2olap

1.3.6 Custom Defined Functions and Custom Defined Macros


DB2 OLAP Server enhances Custom Defined Functions (CDF) and Custom
Defined Macros (CDM):
򐂰 Previously, in DB2 OLAP Server version 8.1 it was required to install and
configure a Java Virtual Machine (JVM) to create or use CDM. In DB2 OLAP
Server version 8.1 only CDF still require the JVM.

Chapter 1. DB2 OLAP Server V8.1 overview 15


Other documents randomly have
different content
Gli austriaci richiamavano rinforzi verso Plezzo. Un urto di masse era
imminente. Dai nostri osservatorî più alti si potevano scorgere
colonne di truppe e di carreggi che scendevano dal Predil. La nostra
grossa artiglieria, l'8 settembre, arrivava a fermare e disperdere due
di questi ammassamenti in marcia. Nella notte del 10 il nemico
tentava un ultimo attacco per liberare la sua sinistra, dove noi
avevamo cominciato a stabilirci sulle balze dello Javorcek. È ancora
nel vallone dello Slatenik che si combatte. I nostri ripetono la tattica
usata contro il battaglione ungherese sulla testata della stessa gola.
Aspettano l'assalto in silenzio, lo lasciano avvicinare senza tirare un
colpo. Del resto, l'oscurità profonda renderebbe inefficace il tiro; non
è a fucilate che l'assalto viene respinto. È a baionettate. Quando il
nemico è a pochi passi dalle trincee, i nostri si precipitano alla
mischia, lo scompigliano, lo disperdono. Al mattino dopo la battaglia
divampava furibonda e vasta su tutto il bordo orientale della conca di
Plezzo. Il nostro attacco in forze, lentamente preparato, si scatenava.
Più di sessanta cannoni tuonavano su quel ristretto fronte, e le
nostre magnifiche fanterie si impegnavano sullo spalto erboso dello
Svinjak, fra i boschi dello Javorcek, fra le rocce del Rombon, in un
maestoso semicerchio di furore. Alla sera le prime nostre trincee di
attacco avvicinavano i reticolati delle posizioni centrali. Proiettori e
razzi illuminanti inondavano la vallata di splendori soprannaturali, e
in vividi chiarori meteorici la battaglia proseguiva, terribile,
fantastica. Per tutto era un divampare di esplosioni, un lampeggio di
colpi, e il frastuono formava un solo, continuo boato. Si scorgevamo
talvolta degli strani, lunghi serpeggiamenti di luce azzurrastra come
uno strisciare, uno snodarsi di favolosi fuochi fatui: erano getti di
liquido infiammabile. Non vi sono mezzi sleali ed atroci di guerra che
il nemico non tenti. Certi reparti nostri dovevano combattere con la
maschera contro i gas asfissianti che delle granate a mano
sprigionavano.
Durante la notte dei reticolati erano stati distrutti; l'assalto era
penetrato qua e là nelle linee più interne; delle posizioni nemiche
erano conquistate. Ma dopo aver lottato per prendere, bisognava
lottare per conservare. Spesso anzi è più difficile mantenere una
posizione che espugnarla. Dopo ogni fase di attacco vi è una fase di
consolidamento. Bisogna resistere a tempeste di granate, e scavare,
erigere, lavorare difendendosi, crearsi le protezioni, le blindature, i
refugi, lasciare ogni tanto il piccone per la baionetta. In tali soste il
valore del soldato è più provato forse che nell'assalto. Occorre un
valore freddo, calcolatore, intelligente.
Alcuni giorni sono trascorsi in queste lotte di resistenza, durante le
quali l'artiglieria infuria, perchè è lei che sorregge, che protegge, che
attacca, che predomina.
Degli aeroplani nemici volavano per la prima volta sulla conca di
Plezzo in una affannosa ricerca di batterie. Il consolidamento delle
posizioni conquistate era completo il giorno 14, e una prima calma si
fece. All'alba del 17 settembre la battaglia ha ripreso, in tutto il
settore, ed è contro lo Javorcek, nella boscaglia, che il nostro attacco
si spinge con maggiore violenza. Dei reticolati sono spezzati, l'assalto
si slancia, due blockhouses, cioè due ridotte blindate, vengono
distrutte con tubi esplosivi, dei trinceramenti sono conquistati alla
baionetta. Agli sbocchi delle valli la nostra occupazione si consolida,
la conca di Plezzo si chiude definitivamente al nemico. Due ufficiali
austriaci e una cinquantina di soldati prigionieri, scampati agli assalti
sulle pendici dello Javorcek, scendono alla sera del 17 verso Saga.
Sono quei prigionieri che abbiamo visto passare a Caporetto, scortati
dai carabinieri, fra due siepi di soldati curiosi e silenti.
Non riuscivamo, contemplando la valle, immaginarvi il tumulto che la
riempiva poche ore prima, e che forse tornerà a sollevarsi fra poco.
Un solo cannone sparava. Era uno dei giganti. Ogni quattro, cinque
minuti il suo boato percuoteva le montagne e si spezzava in mille
rimbombi. Vedevamo il fumo diafano e azzurro del colpo, in un folto
d'alberi; non potevamo scorgere dove battesse. Persisteva, regolare,
ostinato, come aspettando una risposta al suo possente ruggito. Non
rispondevano che gli echi, nella vallata calma, piena di quel pauroso
senso di solitudine e di stupefazione che pesa sui campi di battaglia
quando la lotta è sospesa.
Scendeva la sera, quietamente, e la prima oscurità saliva dal basso,
come una marea d'ombra. La notte sorgeva dalle profondità, mentre
sulle vette ardeva l'ultimo fuoco del tramonto. Lo Svinjak silenzioso,
con il suo nero bosco pieno di cannoni, di fronte a noi, si faceva
livido, truce, prendeva una non so quale espressione sinistra, si
velava di un colore di tempesta nel crepuscolo. E il cannone
continuava a lanciare ad intervalli la sua tuonante formidabile
interrogazione.
NELL'ALTA VALLE DELL'ISONZO.
LE FASI DELLA GUERRA INTORNO A TOLMINO.

27 settembre.
A metà della sua corsa fra i monti, l'Isonzo fa come una sosta. Trova
un paesaggio ridente di colline, tutte verdi di boschi e di prati, inoltra
in una pianura tappezzata da un variopinto splendore di campi
coltivati, e il fiume, che arriva violento per la sua corsa in gole
selvagge, rallenta la foga delle sue acque, si allarga in un gran letto
biancheggiante di ghiaia, riposa, gira, serpeggia, quasi per indugiare
in larghe volute azzurre prima di lasciarsi riafferrare dall'ombra di
altre vallate anguste e profonde, nelle quali riprenderà il suo impeto.
Questa bella regione è la zona di Tolmino.
Dopo aver percorso tante zone montuose della guerra,
cominciavamo a ritrovare in essa le molli e tepide altitudini normali
della nostra vita. Non più fosche e rigide moltitudini di abeti e di pini
alpestri sui declivî dei colli, non più rocce, burroni, abissi, non più
canaloni nei quali la neve si rannicchia e si nasconde l'estate,
aspettando il ritorno dei geli per uscir fuori e invadere tutto;
percorrevamo prati costellati di delicati e pallidi asfodeli, ci
riposavamo nell'ombra di quercie e di castani, ed allargavamo con le
mani il fogliame di roseti selvaggi carichi di bacche rosse per
guardare in giù nella vallata, piena di sole e di silenzio.
Ci eravamo spinti sopra una delle balze estreme del Colovrat
meridionale — la catena di alture che sta fra lo Judrio e l'Isonzo — e
vedevamo sotto a noi, a poche migliaia di metri, la cittadina di
Tolmino con le sue grandi caserme austriache dalle corti quadrate,
vaste come piazze d'armi, con i suoi capaci magazzini militari, e le
larghe strade bianche, fatte per il transito degli eserciti, distese a
rete tutto intorno. Assai più vicino, alla nostra destra, a due
chilometri appena, sollevavano il loro dorso le famose alture di Santa
Maria e di Santa Lucia, due gruppi di colline boscose, pittoresche, al
di là delle quali, verso levante, l'Isonzo gira. Alte, lontane, dietro a
Tolmino, sbiadite nella profondità del sereno, torreggiavano le creste
rocciose del monte Cuk, le vette del massiccio che divide la valle
dell'Isonzo dalla valle della Sava, le pietre naturali del nostro vero
confine.

Sono le colline di Santa Maria e Santa Lucia che hanno fatto di


Tolmino una piazzaforte austriaca. Da Caporetto in giù, per tutto, la
nostra riconquista ha potuto affacciarsi sull'Isonzo, ma in due punti il
fiume si discosta subitamente, si nasconde dietro ad alture isolate, fa
un gomito per mettere fra noi ed un tratto del suo corso la barriera
di quei piccoli nodi montuosi, una barriera che cela e protegge ponti
e strade. Presso Tolmino sono le colline di Santa Maria e Santa
Lucia; presso Gorizia sono le colline di Podgora, di Oslavia e il monte
Sabotino. Il nemico ha fortificato formidabilmente questi due
aggruppamenti di alture al di qua dell'Isonzo, che gli dànno il
possesso di paesaggi sul fiume, che sono centri poderosi di difesa e
basi possibili di offesa.
Perchè è all'offesa che il nemico pensava prima di trovarsi costretto a
difendersi. Basta vedere Tolmino per riconoscervi una di quelle forti
basi d'avanzata che l'Austria aveva preparato un po' per tutto sulle
nostre frontiere, con una larghezza di mezzi, con una profusione di
milioni, con un'attività, che dimostrano un piano preciso e una
volontà senza indugi. Noi non avevamo niente al di qua; Tolmino
fronteggiava delle valli aperte, che convergono verso Cividale,
scendendo alla indifendibile pianura friulana.
Non si costruiscono tre grandi ponti per un paesello, non si erige una
vera città di caserme e di depositi, con panifici ed ospedali da
metropoli, non si fanno centinaia di chilometri di strade militari, non
si trasformano montagne in fortezze, sopra tutto quando dall'altra
parte della vicina frontiera nulla si fa, neppure una strada, se non c'è
il definito progetto di servirsi e presto di tutte queste opere.
Nel nostro giro sul fronte, quello che ci ha più fatto pensare, oltre
alla guerra che si combatte, è la guerra ben più terribile, la guerra
spaventosa, atroce, sproporzionata, disperata che si sarebbe
combattuta se gli eventi non avessero dato a noi la scelta del
momento, se non fossimo stati noi a gettare il guanto e varcare le
frontiere, se lo sconvolgimento dell'Europa non fosse venuto a
destarci. Bisogna vedere per comprendere. Per difficile che sia la
guerra d'oggi, noi dobbiamo benedirla perchè ci salva dai disastri
immensi la cui preparazione, che è ora tutta sotto ai nostri occhi, ci
cingeva a poco a poco mentre noi dormivamo sognando la pace
perenne. La guerra era inevitabile, era decisa: dovevamo farla o
subirla.
Non conoscevamo esattamente il valore combattivo di Tolmino.
Iniziate le ostilità, le nostre truppe occuparono le alture fra lo Judrio
e l'Isonzo e dalla cresta videro, come noi l'abbiamo visto, Tolmino in
basso, con la sua pesante avanguardia di edifici governativi, e la folla
gaia delle sue case, raccolte fra recinti d'orti, in un verdeggiare di
frutteti. Subito, le colline di Santa Maria e di Santa Lucia tuonarono;
incominciò un fuoco di medî calibri invisibili, introvabili, che
battevano le nostre alture. Continuano ancora, a intervalli.
Udivamo infatti di tanto in tanto il rantolo di qualche grossa granata
austriaca, che veniva a scoppiare alle falde dello sperone sul quale
eravamo. Dei colpi rispondevano; noi potevamo seguire da vicino la
manovra pacata di alcuni artiglieri nostri, intorno ad un pezzo
imboscato in un intreccio di cespugli. Facevano fuoco ogni cinque,
ogni sei minuti, per non permettere al nemico di scoprire la vampa, e
fra un colpo e l'altro si sedevano intorno, conversavano, leggevano
un vecchio giornale che passava da mano a mano, compitato e
commentato. Nelle vicinanze il terreno era squarciato dai proiettili.
Una granata da 305, caduta recentemente, vi aveva aperto una
cavità larga, irregolare, profonda, nella quale dei soldati
raccoglievano pesanti schegge di acciaio.
Il primo bombardamento austriaco cominciò il 26 maggio. Non fece
danni e non fermò le nostre truppe. Si iniziava l'investimento della
piazzaforte. L'operazione non pareva estremamente difficile; le
colline di Santa Maria e di Santa Lucia non lasciavano scorgere
ancora le loro difese imboscate. Gravi ostacoli già ci sbarravano il
passo di fronte a Gorizia, e sembravano più facili forse quelle alture
di Tolmino, che non avevano l'aspetto possente e ostile del Sabotino
e del Podgora. Nei primi giorni di giugno Tolmino parve seriamente
minacciata da noi, e si poteva credere allora che su Tolmino potesse
portarsi l'attacco fortunato che, penetrando fortemente in quel
punto, scuotesse le posizioni nemiche di Gorizia.
L'attacco fu dato. Le nostre truppe erano arrivate a contatto di
numerose linee successive di trinceramenti in cemento, mascherati
dal bosco, protetti da numerose batterie incavernate, riuniti da
cunicoli, tutto un sistema di fortificazioni interrate, nascoste, in
agguato. Fu allora forse che si pensò di portare il colpo offensivo su
Plava, cioè ad un altro raccordo di strade che un ponte congiungeva
attraverso l'Isonzo, in un settore più vicino a Gorizia, e che poteva
supporsi meno preparato alla difesa. Era l'unico punto di quella zona
sul quale potesse tentarsi il passaggio del fiume. Non si può
combattere in qualsiasi luogo; l'offesa e la difesa seguono vie e
direzioni prevedibili; le battaglie hanno campi predestinati; la viabilità
fissa fatalmente i terreni d'azione. Dove il traffico ha già da secoli
scelto i suoi passaggi, la guerra si getta. Una rete di strade dalla riva
destra del fiume andava a innervarsi al ponte di Plava, distrutto dagli
austriaci. Altrove l'Isonzo scorre fra due ripe altissime, senza guadi e
senza allacciamenti. Volendo crearci un'altra testa di ponte, non
potevamo scegliere che Plava. Ma la difesa nemica a Plava pure ci
aspettava. Noi la spezzammo.
Per oltre due mesi dall'inizio della guerra, di Tolmino non si parla più.
Non vi è inazione; vi si combatte, vi si cannoneggia, le fanterie
mantengono il contatto, le nostre trincee a poco a poco avanzano,
portano i loro scavi sempre più vicino alle posizioni nemiche, le
incalzano con la lentezza del piccone. Si prepara l'attacco. È il 16
agosto che l'offensiva nostra violentemente si slancia in avanti.
Comincia allora un periodo di furore.

La collina di Santa Lucia è oblunga, regolare, boscosa; ma a tratti il


bosco cessa al bordo rettilineo di grandi prati in declivio, ombreggiati
qua e là da qualche ciuffo d'alberi, rigati da un folto distendersi di
siepi; anche la vetta è erbosa e scoperta. Adesso i prati sono qua e
là sterrati dai colpi di cannone, scorticati, del colore dei campi arati,
e la vetta, bucata dai crateri scavati dalle granate, uno vicino
all'altro, ha quell'aspetto strano dei paesaggi lunari, pieni di cavità
rotonde e di bordi circolari. La nostra artiglieria rovesciò su Santa
Lucia e su Santa Maria un diluvio di proiettili per preparare l'attacco.
Coperte da quel fuoco, le nostre fanterie spezzarono i reticolati e si
slanciarono alla baionetta. Una linea di trinceramenti austriaci fu
conquistata. Poi un'altra. L'assalto saliva il declivio da ponente. L'urlo
dei combattenti si udiva, alto, tremendo, dalle posizioni di artiglierie
sulle alture vicine. Nelle trincee prese, delle compagnie intere di
austriaci si arrendevano. Durante la giornata del 16 agosto furono
presi prigionieri 17 ufficiali e 517 soldati. Mitragliatrici, fucili,
munizioni, formarono un rilevante bottino. Un reparto arrivò
finalmente ad espugnare le estreme trincee, quelle della vetta di
Santa Lucia, che girano intorno a due cucuzzoli simili alle due larghe
gobbe di un cammello gigantesco.
Allora cominciò la tempesta delle artiglierie austriache. Non meno di
quaranta cannoni concentravano un fuoco spaventoso sulle sommità
del colle. Non vi era tempo per costruirsi dei ripari; bisognava ritrarsi
dal costone più esposto. Ma ci tenemmo saldamente sui fianchi delle
alture, dove ora si vedono serpeggiare i solchi profondi dei nostri
trinceramenti, ai quali salgono strani viottoli di approccio. Gli
austriaci rioccuparono le vette. Le loro trincee sono ad un centinaio
di metri dalle nostre.
La vera forza di resistenza del nemico è nel cannone. La sua fanteria
non si mantiene che nei punti sui quali la sua artiglieria può battere.
Gli austriaci hanno dovuto abbandonare sempre i declivî per reggersi
sulle creste. Dove le loro granate non arrivano, la loro difesa
sparisce.
La battaglia continuò il giorno 17. Qualche nuova trincea fu presa.
Altri duecento prigionieri vennero catturati. Ma la lotta più che di
attacco era di consolidamento, di sistemazione, di preparazione.
Violente avanzate nemiche scendevano alla notte. Erano respinte. Si
combatteva e si lavorava ai bagliori dei razzi illuminanti. Per lunghi
giorni è continuata l'azione in episodi, sotto al fuoco dell'artiglieria
nemica, che frugava il rovescio delle colline per impedire i
rafforzamenti.
Il 9 settembre, nella notte, il combattimento ha avuto una ripresa
furibonda. Con un assalto improvviso, un reparto nostro, sulla
collinetta di Santa Maria, si è impadronito di un'altra linea di trincee,
si è avvicinato alla vetta, sulla quale sorge una chiesuola, ora
diroccata. Ma avanti agli assalitori, improvvisamente, balenarono
fiamme azzurre, fantastiche, di liquidi infiammabili, l'ultima atrocità
scientifica della Germania. Lanciato a lunghi getti, il liquido spento,
che non arrivò fino ai nostri, scendeva per il declivio a lunghi rivoletti
invisibili e silenziosi, poi al contatto di una capsula incendiaria
divampavano di colpo. Ed erano serpeggiamenti inverosimili di luce
oscillante e pallida, era un fiammeggiare tortuoso e diafano lungo il
pendìo, un saettamento di vampe spettrali, presto estinte perchè la
terra assorbiva il liquido, e le fiamme si abbassavano subito.
Morivano in un palpito scoppiettante, lasciando tutto intorno uno
sfavillare minuscolo di brage, un pagliettìo ardente di fili d'erba
accesi. Intanto da esplosioni violente di granate a mano si
sprigionava l'acre odore di gas soffocanti, una nebbia che persisteva
nella calma della notte. I nostri si fermarono, urlando insulti e sfide:
«Vigliacchi! Venite!»
Due giorni dopo si scorgevano nel vallone di Tominski dei reparti
austriaci in marcia verso Tolmino. Il nemico non si sentiva più sicuro
nemmeno dietro le sue fontane di benzol. Ma la calma per il
momento pare tornata nel settore. Qualche duello di artiglierie, alla
sera, un crepitìo di fucilate, di tanto in tanto, e lunghe ore di silenzio
profondo.
Sulla collinetta conica e verde di Santa Maria, la chiesuola ha
perduto il suo campanile. Serviva da posto di osservazione al
nemico, i nostri cannoni l'hanno mozzato. Era un campanile rotondo
che i nostri ufficiali esitavano a colpire per il dubbio che potesse
avere un valore d'arte. Non farebbero del male ad un monumento a
costo della vita. Ora il campanile rotondo è un rudero strano,
squarciato da una parte, che mostra un interno cavo, annerito
dall'incendio delle scale di legno. Un villaggio vicino, Kozarsce, che è
stato un punto di appoggio della difesa austriaca, è in rovina. Ma
Tolmino è intatta.
Noi lasciamo al nemico l'abominevole prerogativa della distruzione
inutile. La città pare deserta, la popolazione, infatti, l'ha fuggita, per
le strade nessuno passa, ma alla notte quella solitudine si popola.
Tolmino è sempre un grande centro militare, e il rispetto che noi
abbiamo per l'abitato finchè la battaglia non ci forza a colpirlo rende
ancora agli austriaci abbastanza tranquilla quella residenza, che è
sotto le bocche dei nostri cannoni e che potremmo annientare in
un'ora. Il combattimento è tutto intorno.
Si vede di qua, verso il fiume, un recinto di muro sfondato, un gran
recinto quadrato battuto in breccia dalle granate: è il cimitero. Una
trincea di difesa lo traversa, passa fra le tombe, discosta i morti,
rovescia croci e cippi, ammucchiandovi sopra i suoi sterri, e fa
pensare ad una sepoltura gigantesca preparata. Più indietro, verso il
sud, una seconda linea più forte, in cemento, allinea le sue feritoie
larghe da mitragliatrice, rasente il suolo. I reticolati stendono per
tutto il loro grigiore. Si seguono e si seguono, per la pianura, per i
declivî, per le vette, attraverso i campi abbandonati sui quali i
raccolti intristiscono; sono miglia e miglia di quel tetro viluppo di fili
e di pali che dànno un'impressione di vigneti sterili.
Noi attacchiamo le colline di Santa Maria e di Santa Lucia da
ponente, e la città da settentrione. La nostra fronte scende dal Mrzli
alle pendici del Vodil e attraversa la valle. Il ponte di San Daniele, di
fronte all'abitato, è nostro. È un magnifico ponte nuovo, di cemento
armato. Gli austriaci speravano forse di difenderlo, e non lo hanno
distrutto. Ma su tutta la lunghezza del ponte avevano ammassato
ostacoli di ogni sorta, chevaux de Frise, reticolati, sbarre di ferro, un
intreccio fitto al di là del quale si appostavano delle mitragliatrici.
Durante il giorno, per qualche tempo, la nostra artiglieria da
campagna tirava sulle difese del ponte per spezzarle, e alla notte,
sotto a raffiche di piombo, dei pionieri eroici strisciavano fra i due
parapetti per far saltare i rottami e sgombrare la strada.
Li conduceva un ufficiale del genio, professore di Università prima
della guerra. Partiva calmo, sereno, come quando s'incamminava
verso la lezione con dei libri sotto al braccio. Dove nessuno osava
andare, dove la morte pareva certa, andava lui solo. Alla notte lui
era sul ponte, strisciando, avanzando centimetro per centimetro,
sospingendo avanti a sè un tubo di esplosivo. L'ultima volta, quando
la strada era quasi tutta aperta, non è tornato indietro. Una palla lo
aveva fulminato.

Ora sul ponte si vedono oscuri barricamenti di sacchi che proteggono


il passaggio, e in fondo, al di là, una breve trincea si profila. È
l'attacco che sbocca, ancora piccolo, ancora incerto, una testa di
ponte minuscola e ardita che si affaccia.
Al nord della città, vicino quasi alle ultime case, si solleva in vedetta,
isolata, una strana montagna, alta, regolare come una montagnola
da giardino pubblico, aguzza, coperta tutta da un bosco, un immane
cono di verdura, e che non ha un nome. La chiamano con la cifra
della sua altitudine: Quota 428. Gli austriaci hanno costruito in
cemento, sulla sua vetta, una torre osservatorio, fatta a colonne per
lo stesso principio che ha consigliato di dare alle moderne navi da
guerra un albero a tripode. Se fosse una torre piena sarebbe
demolita, ma i colpi di cannone passano nel vano fra una colonna e
l'altra. È una specie di campanile a giorno, una gigantesca armatura,
insolentemente bianca, sulla quale la nostra artiglieria ha infuriato
per giornate intere. Gli scoppî avvolgevano la bizzarra costruzione di
un fumo denso; si credeva spesso di averla abbattuta, ma quando il
fumo si dissipava, l'ostile torre ricompariva intatta. Essa spinge il suo
sguardo su tutta la vallata, sorveglia gli approcci da Caporetto, vede
i nostri movimenti lungo il fiume.
La Quota 428 è anche una posizione di combattimento, nasconde
trincee, e i suoi reticolati scendono fino alla pianura, in mezzo a
campi di granturco. Osservando meglio, intorno, ci si accorge di tutta
una viabilità sotterranea. Certe siepi lunghe chilometri non sono altro
che ingannevoli ripari per nasconderci movimenti d'uomini entro
sterminate trincee di incamminamento. I villaggi sono uniti da
profondi fossati, che seguono il disegno di un fregio a greca per
essere protetti dai colpi d'infilata. Mentre le strade sono deserte e
nessun essere vivente si muove nella vallata, entro quei canali delle
truppe forse si spostano. Poco più a sinistra sono i nostri
incamminamenti, sulla riva del fiume, immensi zig-zag dai bordi
bianchi di sabbia appena scavata, i quali conducono lo sguardo verso
un grandioso intreccio di trincee sui valloni del Vodil, all'altra riva.
Sui bordi d'ogni balza, le posizioni della difesa; poco sotto, a qualche
decina di metri, le nostre, che assaltano, che s'insinuano, che
spingono avanti i loro parapetti, con quel sovvolgimento di terra dei
formicai calpestati, quando gl'insetti scavano furiosamente la loro
strada. Da là veniva più serrato e più sovente lo scoppiettare della
fucilata. Tendevamo lo sguardo verso la lotta invisibile,
instintivamente, ossessionati dalla paurosa apparenza di deserto del
campo di battaglia.
Cercavamo un uomo, lungo gli approcci, sulle trincee, nei villaggi che
cadono in rovina, presso ai cascinali senza tetto, anneriti dalle
fiamme, cercavamo un uomo la cui vista disperdesse in noi il senso
di quella solitudine soprannaturale che diveniva a poco a poco
angosciosa come un incubo.
L'EROICA CONQUISTA DI PLAVA.

29 settembre.
L'aspetto di solitudine che assume la guerra, quando l'assalto non si
slancia, si addice alle zone selvagge. Abbiamo visto la selva di Plava
non molto diversa da come la vedevano i cacciatori di Gorizia,
quando la attraversavano in questa stessa stagione cercando nel suo
folto il fagiano e il gallo di bosco.
Plava è un piccolo villaggio, ora distrutto dal cannoneggiamento
austriaco, che allineava le sue casette ai due fianchi della strada,
sulla sinistra dell'Isonzo. Delle abitazioni rimangono quattro mura
scoronate, dalle cui finestre pendono rottami di imposte. Per uno di
quei capricci che il cannone ha, come il fulmine, una sola casetta è
rimasta intatta, bianca, col tetto nuovo. Avanti a Plava era il ponte.
Alle spalle del villaggio cominciavano subito il bosco e la montagna.
Intorno, nessun altro centro abitato in vista, non campi, non vigneti.
L'Isonzo scorre in quel punto incassato in una gola profonda e
melanconica. Su Plava viene a finire un'ultima balza di una catena di
alture boscose, il cui dorso, salendo a centina, va quasi fin sopra
Gorizia e si culmina nel Monte Santo.
Vista dall'altra riva, la montagna di Plava, ha la forma di una
piramide perfetta. Quando però si giunge alla sommità, a 383 metri,
ci si accorge che non si è sopra una punta ma al principio di una
cresta, la quale declina, poi risale. E intorno si levano
tumultuosamente le ondulazioni del massiccio di Bainsizza. Non vi
sono che sentieri nella oscurità del bosco; le buone strade corrono
soltanto in fondo alla valle dell'Isonzo, ma al Monte Santo si
allacciano le reti stradali del Goriziano.
Decisa la formazione di una testa di ponte a Plava, il primo
obbiettivo fu la conquista della Quota 383. Il giorno 8 di giugno
arrivò l'ordine d'avanzata. Alla sera, per la strada di Vercoglia scesero
da San Martino i battaglioni destinati all'operazione, che si nascosero
nella boscaglia, presso al fiume. Quando l'oscurità fu profonda, si
intravvide un convoglio di cavalli e di carri, silenziosi come ombre,
che andavano verso la riva. Erano i carriaggi del parco da ponti. Le
ruote e gli zoccoli dei cavalli erano fasciati di stracci; gli uomini
calzavano scarpe di corda. Lentamente, il convoglio si portò fino
dove la strada fiancheggia il fiume.

Si cominciò la costruzione del ponte. Le barche dovevano essere


portate a spalla giù per la ripa precipitosa e attraverso il letto di
ghiaia. Non un rumore, non un urto, il ponte si componeva in
silenzio. L'altra riva era tutta buia, nera, addormentata. Il lavoro
procedeva febbrile e cauto, nelle tenebre, con l'ansia angosciosa del
tempo che fuggiva, dell'alba estiva troppo vicina.
L'aurora disegnava già i profili dei monti, e il lavoro continuava. Poco
più della metà del ponte era compiuta. Alle tre del mattino, quasi i
tre quarti del ponte erano finiti. Ancora un poco, ancora un poco e le
truppe sarebbero passate. La costruzione proseguiva ora
furiosamente, nella piena luce dell'alba. All'improvviso fu un
rimbombo di esplosioni nel greto e i pontieri si trovarono avvolti nel
fumo.
Il nemico aveva visto. Bombardava da posizioni imprecisabili. Il
ponte, colpito, si sfasciava; le barche di lamiera, sfondate dalle
schegge, affondavano. Non v'era un minuto di sosta nel fuoco. Le
truppe furono ritirate al coperto, nessuno rimase sulla riva cosparsa
di rottami, tempestata dai colpi.
Tutto il giorno durò intenso il cannoneggiamento. Così trascorse il 9
giugno. Venuta la notte, dei drappelli ridiscesero verso la riva.
Si era pensato di traghettare poche forze per formare al di là un
primo velo di difesa. Si misero i remi ad una barca e si cominciò la
traversata. Passavano venti uomini per volta. Scendevano a poche
centinaia di metri dal villaggio. Quando furono sbarcati in una
cinquantina, i nostri cominciarono ad avanzare e prendere posizione.
Il traghetto continuava. Un sergente, che comandava il primo
nucleo, prese con sè un plotone e si avvicinò al villaggio, dove
sapeva che doveva trovarsi un posto di vedetta austriaco.
Evitando la strada, camminando a passi da cacciatore, quel piccolo
gruppo arrivò alle prime case di Plava. Le circondarono, vi entrarono
senza passare per l'uscio. Scavalcarono dei muricciuoli, scalarono
finestre, e arrivarono così nelle case vicine; strisciavano,
penetravano da un'abitazione all'altra per le vie più imprevedute, in
modo che una sentinella piazzata sulla via non potesse accorgersi
del loro avvicinarsi. Arrivati sotto ad una finestruola chiusa da
sportelli di legno, udirono delle voci d'uomo, all'interno. Parlavano in
tedesco. Era lì.
Un colpo violento all'uscio che si spalancò, un'irruzione di baionette
basse. Dieci soldati austriaci, con un ufficiale, sorpresi e allibiti,
alzavano le mani. Erano in una cameretta a pian terreno raccolti
intorno alla luce di una candela. La barca, in uno dei suoi ritorni,
portò alla nostra riva il carico dei prigionieri.
Questa cattura ha avuto una grande importanza per le operazioni,
perchè ha impedito un primo allarme che avrebbe turbato lo
svolgersi dei nostri piani. Il Re ha voluto di motu proprio decorare
della medaglia al valore l'ardito sergente, che nel combattimento
successivo doveva cadere gravemente ferito. E ferito, egli continuava
ad esortare i suoi uomini alla battaglia: «Andate avanti, avanti! Non
badate a me!...»
Nella notte del 9 traghettarono circa duecento uomini, per la cui
sorte si era preoccupati. Durante tutta la giornata del 10, si stette in
ascolto dalla nostra riva, si cercava di penetrare con lo sguardo
l'intreccio degli alberi, di vedere qualcuno dei nostri, si aspettava un
segnale. Niente. Erano tutti presi? No, erano tutti in ricognizione.
Rampavano audacemente, strisciavano sulla montagna,
perlustravano ogni passo, arrivavano presso alla vetta, scoprivano i
reticolati, le trincee, raccoglievano dati preziosi. Perchè gli austriaci
avevano fatto a Plava preparativi assai più completi di quanto fosse
logico aspettarsi.
I nemici non sospettavano la vicinanza di quello sciame di
esploratori; andavano, venivano intorno alle trincee, disarmati, sicuri.
Le vedette di Plava tacevano, dunque gl'italiani non s'erano mossi.
Più volte alcuni dei nostri dovettero girare intorno al tronco d'un
albero all'avvicinarsi di soldati austriaci che passavano inconsapevoli
pochi metri lontano.

Nella notte stessa del 10 si era tentato un nuovo sistema per gettare
sulla riva sinistra un forte reparto di truppe. Non era possibile
sostituire subito il materiale da ponte distrutto; ma vi era legname
sufficiente per costruire sulla riva una passerella che, appena finita,
avrebbe potuto essere varata e assicurata solidamente ai resti in
muratura delle testate del ponte distrutto. Il Genio lavorò
attivamente, con quell'entusiasmo alacre e grave dei nostri artieri
militari, che sono così spesso in prima linea, sotto al fuoco più
intenso, a creare valichi ed aprire varchi.
È un eroismo difficile quello del lavoro, perchè deve rimanere freddo,
riflessivo. Il combattente può lasciarsi spesso trasportare dalla foga
disordinata del suo sentimento, può gridare, può sparare. L'artiere
del Genio deve pensare. Ogni suo gesto ha bisogno di precisione e di
puntualità. Nel pericolo più grave egli deve agire impassibile come
l'operaio nel sicuro laboratorio di un'officina. Il nostro Genio ha
gettato quasi tutti i suoi ponti nel pieno del combattimento, alla
prima linea, avanti alla prima linea. Dei pontieri cadevano feriti,
uccisi, erano sostituiti e il lavoro continuava. Le granate sfondavano
le barche di sostegno, sfasciavano il travame, distruggevano l'opera
intera, e si ricominciava.
Una passerella sull'Isonzo richiedeva più tempo di quello che le
circostanze concedevano. L'alba sorse, e il ponte di fortuna non era
finito. Gli osservatorî dell'artiglieria nemica, già in guardia, si
accorsero della costruzione e fecero aprire il fuoco. Come al giorno
prima, il bombardamento fu violento e preciso. Regolato con
esattezza sulla posizione del vecchio ponte, esso colpiva in pieno. La
passerella rimase spezzata. Un'altra giornata trascorse nell'inazione
forzata, senza nessuna notizia degli uomini traghettati alla sera, e
con la certezza di trovare il nemico sempre più rafforzato. Per la
forza dell'inevitabile la sorpresa, l'elemento primo di un successo
facile e pieno, era mancata. Non so fino a quanto si facesse
assegnamento sulla sorpresa, ma è evidente che se fosse stato nelle
possibilità umane il compimento del ponte nella prima notte,
l'attacco di Plava avrebbe potuto avere nella guerra una influenza
profonda, penetrando ben oltre i limiti di una testa di ponte.
Si ricorse, nella notte successiva, ad un altro mezzo. Si fece il così
detto «ponte girevole». Il ponte girevole non è altro che una
piattaforma sostenuta da due barche, assicurata alla riva con una
lunghissima corda e lasciata alla deriva. Con il movimento di un
remo messo a timone, per effetto della corrente, la grande zattera,
come un pendolo orizzontale, se si può dire così, può andare e
venire da una riva all'altra. La piattaforma portava una cinquantina di
uomini alla volta. In quella notte, finalmente, due battaglioni
passarono.
Ritrovarono sulla sponda sinistra la piccola forza sbarcata la notte
prima. Si era trincerata aspettando, e teneva già un lembo di altura.
Le informazioni che portò furono di enorme utilità. Venne deciso di
attaccare il monte sui due fianchi, lungo due valloni quasi simmetrici
che sono uno a destra e uno a sinistra di Plava. L'azione cominciò a
giorno chiaro.
La difesa fu violenta ma breve. Si avanzò tra difficoltà gravi ma non
insormontabili. Di slancio, le linee di trincee erano prese,
successivamente. Si fecero duecento prigionieri. I cannoni austriaci,
con un fuoco violento, battevano sopra tutto la spalla del monte, e
più giù il paese, il fiume, la riva destra. Sarebbe stato impossibile
mandare rincalzi se ve ne fosse stato bisogno. Ma le notizie che
arrivavano dal combattimento erano buone. Con perdite lievi
l'attacco proseguiva. A mezzogiorno la cima del monte era
conquistata.
Subito i soldati, benchè stanchi, si misero al lavoro per fortificare la
posizione. Alle trincee prese bisogna rovesciare il fronte perchè
servano contro al nemico, il parapetto diventa la spalla e la spalla il
parapetto. È un duro lavoro che l'urgenza rende affannoso. I nostri
erano intenti a questo consolidamento, quando gli austriaci hanno
fatto un ritorno offensivo. Il combattimento si è riacceso; è durato
qualche tempo. Un accenno di assalto alla baionetta ha ricacciato
indietro i nemici, senza però farli desistere interamente. Essi,
probabilmente, non avevano altro còmpito che quello di tenere
impegnate le nostre forze. Un movimento assai più grave stava
svolgendosi.
Sul declinare del giorno furono avvistate masse austriache in marcia
lungo l'Isonzo. Erano due gruppi, uno veniva dal nord e uno dal sud,
e convergevano verso Plava. Il nemico tentava l'aggiramento delle
nostre truppe sulla Quota 383, tendeva a tagliarle fuori, a isolarle, a
occupare la base di sbarco. Esse non potevano difendere la vetta e i
fianchi, non bastavano a reggere quel fronte troppo esteso. Era
necessario ed era urgente che si raccogliessero, che restringessero la
linea del loro spiegamento. Dovettero abbandonare la cima
conquistata, ridiscendere alle prime pendici, a proteggere Plava e
con Plava le comunicazioni.
Venuta la notte, si rimise in acqua il ponte girevole e cominciò il
traghetto di altri battaglioni. Si unirono a quelli che avevano
combattuto, costituirono nuove unità di attacco. Il nemico aveva
rioccupato in forze le posizioni sulla sommità del monte. La battaglia
si annunziava aspra e sanguinosa.
Le truppe erano troppo stanche per iniziare l'azione
immediatamente. Anche quelle appena sbarcate avevano bisogno di
riposo dopo le notti perdute nella continua attesa. Si stava per
chiedere loro un grande sforzo. La mattinata del 12 trascorse tutta in
una immobilità ristoratrice. L'assalto cominciò nel pomeriggio.
Si svolse con la stessa tattica del giorno prima. Le forze, divise in
due colonne, si impegnarono ai due fianchi del monte, avendo la
vetta per obbiettivo comune. Il movimento si era appena iniziato,
che un terribile fuoco di artiglieria cominciò a battere le pendici. Era
una bufera di cannonate; gli shrapnells arrivavano a raffiche
continue, volteggiavano in aria foglie e rami d'albero stroncati dalle
esplosioni, il piombo grandinava.
Le batterie nemiche da cui veniva quella bufera di fuoco dovevano
trovarsi in parte sulle pendici del monte Kuk, uno dei tanti monti Kuk
della regione, distante tre chilometri e mezzo da Plava, in parte sul
Monte Santo, dal quale i medî calibri tempestavano. Per questo la
nostra colonna di destra, più scoperta, era più battuta. Le perdite si
facevano gravi. Non era possibile individuare con esattezza le
artiglierie austriache, nascoste, invisibili. L'attacco procedeva
sempre, audace, meraviglioso. Ma la necessità di riorganizzare le file
troppo provate dal fuoco, diradate, la successione dei comandi per
gli ufficiali che cadevano, rallentavano l'avanzata dell'ala destra.
Ad un certo punto le perdite aumentano, la colonna di destra è
costretta a sostare. Quella di sinistra, meno colpita, più forte ancora
e più agile, è arrivata a contatto con la fanteria austriaca e si
precipita all'assalto. Fermata dai getti scroscianti delle mitragliatrici,
si ricompone e riassalta. Sette volte consecutive si slancia alla
baionetta. Intanto anche l'ala destra prende l'attacco. Ma avanzando
dalle larghe basi del monte verso la vetta, lo spazio diminuisce, le
file, che erano rade e sparse all'inizio, si sono andate serrando,
formano nuclei troppo densi, ammassamenti che offrono una
maggiore presa al fuoco incessante dei cannoni nemici e delle
mitragliatrici, i proiettili delle quali empiono tutto il bosco di un
sibilare metallico. È impossibile continuare. La colonna destra
incomincia a ripiegare lentamente.
Il nemico, che sente mancare da quel lato l'attacco, cerca di
avanzare incalzante. Accenna al contrattacco, fra gli alberi, preme, si
fa minaccioso. L'ala sinistra si sposta, lo arresta, lo ricaccia. Il
ripiegamento avviene ordinato, con lunghe soste, la faccia al nemico,
e si ferma a mezza costa, ad un centocinquanta metri dalla vetta.
Era la sera del 12 giugno.
Delle truppe di rincalzo passarono quella notte. La giornata del 13
trascorse in un lavoro di riorganizzazione. Alla notte seguente si
riescì a costruire due passerelle sul fiume. Esse garantivano ogni
libertà di movimento, assicuravano le retrovie. Un attacco di grandi
masse nemiche, sopra una testa di ponte così ristretta, servita da un
solo piccolo traghetto, avrebbe potuto provocare forse una
gravissima situazione. I nuovi ponti dissipavano il pericolo.
Il 14 fu ordinato l'attacco per il giorno dopo.
Si era portato un mutamento al piano precedente. Una terza
colonna, partendo dalla sinistra e puntando verso Globna — un
gruppo di casupole presso l'Isonzo, qualche chilometro a monte di
Plava — doveva eseguire un movimento avvolgente dal nord. Ma la
battaglia non ebbe sviluppo. La terza colonna trovò alla sua sinistra,
presso Globna, dei forti trinceramenti impreveduti, e, presa sul
fianco dal loro fuoco, fu costretta a far fronte verso di loro ed
attaccarli. Questo impegno la deviò dal suo obbiettivo; essa non potè
continuare l'avvolgimento iniziato, si trovò fermata, fuori dalla
cooperazione prefissa, impegnata in un'azione laterale e isolata.
Appena tale situazione fu nota al comando, l'attacco venne fatto
cessare e rimandato, per non affrontare uno svolgimento oscuro.
Fu il giorno appresso, il 16 giugno, la vera, la definitiva, la gloriosa e
terribile battaglia di Plava.
Contro a quei trinceramenti di Globna, che pigliavano sul fianco la
colonna avvolgente, fu mandato un battaglione per fronteggiarli e
permettere così alla colonna di proseguire il suo movimento. Questo
battaglione fiancheggiatore si trovò davanti a resistenze formidabili,
in un tremendo fuoco decimatore, ma non si mosse; non rallentò la
sua pressione sopra la forza nemica che doveva impegnare. Il
comandante cadde, il capitano anziano assunse il comando. Questi
cadde alla sua volta, il comando passò ad un capitano più giovane. Il
terzo comandante pure cadde, e il comando passò. Poi un quarto,
poi un quinto comandante del battaglione fu ferito o morto. All'una
del pomeriggio sette capi si erano successi. E il battaglione non
arretrava di un passo. Il nemico poteva dissolverlo, ma non
respingerlo. Era come un muro che si demolisce ma non si sposta.
L'ordine era di resistere fino alla morte, e si resisteva fino alla morte.
Nel pomeriggio comandava il battaglione un giovane tenente che lo
resse con indomita energia, come se insieme alla eredità del
comando fosse discesa da capo a capo la fiera esperienza del grado.
Questo tenente è stato promosso per merito di guerra.
L'azione del battaglione sul fianco estremo sinistro liberò e difese
quella della colonna avvolgente. L'attacco generale procedeva fra
difficoltà terribili. Un cannoneggiamento più vivo, più micidiale
ancora di quello del giorno 12, tempestava i nostri, voleva fermarli,
aveva l'intensità e il furore di una disperazione, apriva dei vuoti,
squarciava, ma non fermava l'avanzata, che ascendeva a piccoli
balzi, risoluta, sistematica, eguale. Le perdite più gravi erano sempre
per la colonna di destra, battuta dal fuoco del monte Kuk e dal
monte Santo. A sinistra l'attacco urtava in un potentissimo
trinceramento in calcestruzzo, difeso da mitragliatrici, preceduto da
reticolati così forti che le nostre forbici non potevano tagliarli.
Quello che avveniva nel battaglione contro Globna avveniva per
tutto. Comandi di battaglione, di compagnia, di plotone erano
continuamente sostituiti, quasi tutti gli ufficiali di un reggimento
erano caduti, le unità minori si fondevano, e l'assalto andava avanti.
Era alla fine un'azione individuale di soldati. Dei soldati semplici
hanno assunto il comando di reparti piccoli. Dei sergenti
conducevano una compagnia. Lo slancio in avanti non veniva più
dalla condotta dei capi, era nel cuore di ogni uomo. «Avanti! Avanti!
Per di qua, su!», e la massa proseguiva, riformando da sè i ranghi,
attenta agli ordini dei compagni più autorevoli dove gli ufficiali non
c'erano più.

Meravigliosa fanteria nostra! Nel nostro esercito mutano le attitudini


e le capacità delle varie armi, ma non muta il valore. Il cuore è lo
stesso, l'anima è la stessa. Sono l'anima e il cuore della razza.
Prodigiosa fanteria nostra! Audace, terribile, generosa, essa è il
Popolo italiano. Come ricordare gl'innumerevoli e stupendi episodi di
valore sovrumano che formano insieme la storia d'ogni nostra
battaglia? Come ricordare i fatti di eroismo quando ogni uomo è un
eroe? Il sacrificio leggendario di Pietro Micca non è diventato un atto
di tutti i giorni, un gesto che si ripete avanti a tutte le trincee,
quando occorre aprire la via dell'assalto attraverso i reticolati del
nemico? Non partono tutte le notti le spedizioni dei volontari della
Morte? Chi sono questi audaci che vanno ad accendere una miccia
con l'ultima scintilla della loro vita? Non si distinguono più, hanno un
nome solo, sono una cosa sola: sono l'Esercito.
Da ogni parte, quel giorno, sulla montagna di Plava, il nostro assalto,
in un uragano di piombo, arrivò di fronte a reticolati che non si
potevano tagliare. Non si era ancora trovato il sistema dei tubi
esplosivi, e le forbici si spezzavano sui grossi fili di acciaio. I nostri
tentarono con le mani di svellere i paletti, ma era impossibile, e non
si resisteva due secondi in piedi, a dieci passi dalle mitragliatrici
nemiche. Ma i nostri rimanevano là, contro la barriera, ostinati,
furenti, fucilando le feritoie, tenendo a bada il nemico mentre
studiavano il modo di raggiungerlo, di varcare l'inestricabile ostacolo.
Non potendo passare nè attraverso il reticolato, nè sopra, passarono
sotto. Scavarono la terra, fecero dei solchi, strisciarono col dorso
sulle spine di acciaio dei fili più bassi. Si adunarono a piccoli gruppi
di quattro, di cinque, al di là, incastrati sotto agli ultimi intrecci della
siepe di ferro. Poi balzarono in piedi e si gettarono contro alle trincee
scoperte, impegnando una lotta a corpo a corpo. A questa vista gli
altri, quelli che non erano passati, non si tennero più, e
incominciarono a scalare il reticolato, appoggiandosi ai paletti,
appoggiando il piede all'incrocio molleggiante dei fili, facendosi poi
porgere i fucili lasciati ai compagni che aspettavano indietro. In un
momento i reticolati furono tutto un formicolìo lento di uomini
sospesi, un gesticolamento confuso e pacato, sul quale passavano
dei fucili, da una mano all'altra, da una parte all'altra.
Scavalcata la barriera, appena a terra, senza contarsi, i nostri si
gettavano successivamente nella mischia urlando. L'attenzione del
nemico era stata sorpresa e deviata dal primo comparire
incomprensibile di soldati italiani addosso ai parapetti. Quell'urlìo, la
visione della massa sui reticolati, finì per atterrirli. La difesa era
estinta dalla terribile e implacabile audacia dell'assalto più che dalla
lotta. Le trincee caddero, il grido dell'evviva passava su tutte le
posizioni.
Era il tramonto. Le trincee austriache non coronavano la cima, erano
costruite un poco più giù per poter avere un maggiore sviluppo.
Bisognava occupare la vetta, ma era tardi. Una riorganizzazione si
imponeva prima di procedere oltre, dove il bosco manca e si avanza
scoperti sopra una cresta pratosa. Fu deciso di aspettare l'alba. Ma
un centinaio di uomini, appartenenti a diverse compagnie, senza
ufficiali, avendo la volontà sola per comando e l'accordo per
disciplina, portati dalla foga della lotta, avevano proseguito, soli,
ignari della sosta; tornarono indietro nella notte. È un episodio
minuscolo ma significativo, che descrive lo spirito del soldato nostro,
il suo istinto della guerra, la sua indifferenza al numero, il suo senso
di autonomia. Quando la battaglia spezza le sue formazioni e abbatte
i suoi capi, quando si sbanda, si sbanda in avanti.

Siamo alla mattina del 17 giugno. Gli austriaci hanno ricevuto rinforzi
numerosi durante la notte e si preparano al di là della vetta. Il nostro
attacco è iniziato dalla colonna di sinistra. Appena i nostri sbucano
È
dal bosco, il contrattacco austriaco si precipita. È formidabile, si
tratta di una massa che si precipita con l'audacia di chi si sente
superiore. Ma la battaglia è breve. Si è impegnata appena, che alla
sua volta la colonna di destra emerge dal folto degli alberi. Prima
che il nemico possa distaccare forze per trattenerla o fare una
conversione per fronteggiarla, la nostra destra si slancia alla
baionetta e lo assalta sul fianco. È stata la fuga, è stata la rotta, è
stato lo sbandamento indietro. In altri tempi questo solo fatto
avrebbe potuto costituire la vittoria definitiva di una guerra. Ma ora,
un fantaccino sulla prima linea vive in un mese tutti i rischi, tutti i
pericoli, tutti gli eroismi di un veterano della Vecchia Guardia.
Alle otto e mezzo del mattino la vittoria era completa. Avevamo la
vetta di Plava definitivamente nostra. La lotta si riaccese poi ad
intervalli. Truppe nemiche affluirono, le vicinanze si coprirono di
trincee, delle artiglierie si concentrarono. Il giorno 19 subimmo due
contrattacchi notturni. Il 20 tre contrattacchi notturni. Anche con
forze superiori il nemico non si muove più che alla notte, ha perduto
ogni fiducia nei contrattacchi dell'alba. Il 29, sempre di notte,
contrattacco di masse, con artiglieria e mitragliatrici. Ogni tentativo
austriaco è inutile. Ma la sua preparazione difensiva rende pure
inutile qualsiasi azione nostra, anche di grande stile e con grandi
forze, per allargare la testa di ponte, o meglio per servirci della testa
di ponte al fine di irrompere e spingere l'offensiva verso obbiettivi
più vasti e lontani.
Lentamente, un piccolo allargamento della testa di ponte è
avvenuto. Dal 20 al 30 luglio abbiamo ripreso l'offensiva. Il cuneo del
nostro fronte parte adesso da Globna e da Zagora, e copre bene gli
allacciamenti sul fiume. Il sei agosto, l'otto, il dieci, il dodici,
furibondi contrattacchi nemici si sono sferrati. Ora è la stasi, una
stasi con cannoneggiamenti, fucilate, granate a mano, ma l'azione
manca.
Verso Zagora, al sud, le trincee avversarie sono così vicine che, come
sulla cresta di Luznica, le divide un solo reticolato comune. Da una
posizione all'altra i soldati si lanciano ingiurie e bottiglie vuote. Da lì
si vede, non lontano, il rovescio lungo e cupo del Sabotino, sulla cui
cresta altre trincee nostre avanzano. E quasi di fronte a Zagora,
all'altra riva del fiume, si vede a poche centinaia di metri la gran
bocca nera della seconda galleria della strada ferrata Gorizia-
Klagenfurt, melanconica strada tagliata tutta nei fianchi umidi della
montagna, e le cui rotaie sono diventate rosse di ruggine.
Una volta sola si è riudito il rombo di un convoglio risuonare nella
prima galleria, poco più in basso. E si vide sbucare lentamente
all'aperto, con la cautela d'una grossa bestia sospettosa che esca
dalla tana, un grigio treno blindato. Si fermò a osservare, sparò in
fretta alcune cannonate, poi ci pensò meglio e si ritrasse
prudentemente immergendosi per la coda nel buio.
Le truppe circondano senza tristezza i loro eroi caduti. Ne raccontano
le gesta, con semplicità. Episodi magnifici e senza numero. Una
notte, nella seconda fase delle operazioni, dopo la conquista, un
caporale si offrì volontario per andare a far saltare una mitragliatrice
troppo molesta. «Ma è impossibile!» — dicevano i più temerarî. Egli
si ostinò, e uscì dalla trincea, spingendo avanti il tubo esplosivo.
Arrivò, sotto al fuoco, a metterlo a due o tre metri dalla
mitragliatrice; arrivò ad accendere la miccia. Ma lo zampillare delle
scintille permise al nemico di dirigere meglio il tiro della mitragliatrice
stessa, l'eroe crivellato si accasciò. Abbattendosi spezzò la miccia
accesa, l'esplosione mancò. I soldati decretarono al morto la
sepoltura d'onore, ed egli dorme nel centro del piccolo cimitero,
sotto ad un tumulo più alto e più solenne.
Un altro racconto ricordo. In una compagnia combatteva un
volontario dai baffi bianchi. Aveva sessanta anni, era soldato
semplice. Il suo esempio trascinava tutti. Si era arruolato per seguire
alla guerra il suo figliuolo. Servivano nella stessa compagnia, non si
lasciavano mai. Si vedevano nelle marce quei due soldati vicini, così
diversi e così somiglianti, che si tenevano per la mano. Si tenevano
per la mano i due soldati per un'abitudine vecchia, di quando i baffi
bianchi di uno erano neri e l'altro era un bimbo. Non ci si accorge
mai che i bimbi crescono e che i baffi diventano bianchi. Forse anche
in quell'allacciamento perpetuo di vita vi era un impulso misterioso di
addio. Nel combattimento, sempre in prima linea, erano sempre
avanti, spalla a spalla. Durante l'avanzata su Zagora, l'8 agosto, il
figlio cadde mortalmente ferito.
Il padre gettò il fucile e si slanciò a sorreggere il morente. Intorno i
soldati delle seconde linee passavano di corsa. Qualcuno si fermò un
istante presso a quel gruppo. Il vecchio compagno era adorato. Egli,
deposto dolcemente a terra il ferito, gli sorreggeva la testa e
s'insanguinava la mano tremante per sbottonarlo e cercare la piaga.
Poi, con uno scatto, sollevò la faccia pallida, calma, solenne,
esclamando: «Ma perchè non l'ho avuta io?» In quell'istante una
palla lo colpì sulla tempia.
Il vecchio volontario si rovesciò sul figlio. La morte li riuniva ancora.
Ma la tristezza e la poesia di questi episodi di sangue appare dopo,
ripensandoli in un altro ambiente. Lì tutto sembra naturale come è
naturale la vita. Tutto è forza e fervore, laggiù, è giovinezza, è
gaiezza. E canzoni liete echeggiano nel tragico bosco di Plava come
nella più lontana, quieta e ridente campagna del mondo.
GUERRA D'ASSEDIO INTORNO A GORIZIA.
UN ATTO DI SUBLIME SACRIFICIO.

2 ottobre.
Abbiamo visto Gorizia dalla vetta del Corada, che si erge quasi di
fronte a Plava. Contro alla luce del sole già alto, le montagne ai cui
piedi la città si distende parevano fatte d'ombra azzurra, glauche
come onde. La più alta, il Monte Santo, si acuminava nel campanile
del suo santuario, antica mèta di pellegrinaggi. La tortuosa strada
che vi sale da Gorizia sull'altro versante, e che noi non potevamo
scorgere, ha una cappella votiva ad ogni svolta, una chiesuola ad
ogni giro, una croce ad ogni passo, e da quattro mesi non vede
salire che cannoni austriaci. Quel monte della preghiera è diventato
la più formidabile delle fortezze, tutta vita di artiglierie introvabili che
il bosco nasconde.
La schiena del Sabotino, vicino a lei, si allungava e si sollevava di
scorcio come la groppa di un cavallo che s'impenni, coperta da un
finimento di trincee: verso il collo le austriache, sulle reni le nostre.
In un lungo scintillìo, in una voluta di luce che si spegneva
subitamente nell'ombra di una gola, l'Isonzo, passata Plava, andava
verso il sud a perdersi fra il Monte Santo e il Sabotino, fra questi due
solenni pilastri che formano una specie di porta al fiume, oltre la
quale comincia la calma magnificenza della pianura friulana. Gorizia
è sulla soglia.
Ne vedevamo confusamente le case, i campanili, le torri, tutta vaga
e incerta nel contrasto della luce, con delle trasparenze da miraggio.
Ci appariva oltre la spalla del Sabotino, fra il fianco destro del monte
ed un profilo oblungo ed oscuro di collina denudata, il profilo del
Podgora. Era pallida, indefinita, immersa in una bruma celestina, in
un vapore di serenità, e nel centro dell'abitato la piccola altura della
sua vecchia fortezza era come fatta di nebbia. La città lontana
pareva aperta, accessibile, in attesa. Sembrava di dovervi poter
giungere tranquillamente scendendo per la strada di Plava. Le
barriere umane erano troppo poca cosa, e lo sguardo scorreva
sull'unità del piano come sopra un mare, passava sulla grande
eguaglianza della terra, sulle ondulazioni facili dei declivî, cercando
l'ostacolo che ferma un esercito, cercando la muraglia di ferro, e non
riconoscendola in qualche minuto, infimo, lieve e sottile
ombreggiamento da siepe, appena visibile, senza rilievo, confuso nel
colore dei campi: quello che è una trincea nell'immensità di un
paesaggio.
Abbiamo rivisto Gorizia più vicina, dalla cima del Monte Quarino,
presso a Cormòns; poi anche dalla vetta del Monte Medea, che è
simile a un'isola sulla verde e calma distesa della pianura, il monte
dal quale Attila contemplò con germanica gioia l'incendio che
divorava Aquileja. E tutte le volte la città, avanti alla quale l'uragano
della guerra da quattro mesi imperversava, ci ha dato la illusione di
una aspettativa tranquilla in fondo alla vallata dischiusa, senza
vigilanze visibili. Parevano assai più possenti le antiche fortezze dai
bastioni quadrati, larghi, che trasformavano la fisionomia dei monti,
e disegnavano una minaccia sulle vette, che non i muricciuoli
ineguali, primitivi, minuscoli, nascosti, della guerra moderna,
cementati col sangue. La fronte di una resistenza appare evidente
sulle creste dei massicci alpini, allacciata alle rocche della creazione,
identificata nei castelli immani della roccia. Ma sul digradare dei colli,
sulle ondulazioni verdi delle ultime pendici, sulla pianura unita, essa
sfugge. Pare che non ci sia più nulla di insormontabile da varcare,
che il paese sia tutto una strada, che il suo aspetto accolga e
conduca.
La guerra moderna ha fatto scendere i forti dalle loro posizioni; li ha
per così dire sminuzzati, li ha sparsi per tutto, sui campi e sulle
balze; ha disseminato la fortificazione sopra ogni angolo di terra;
Welcome to Our Bookstore - The Ultimate Destination for Book Lovers
Are you passionate about books and eager to explore new worlds of
knowledge? At our website, we offer a vast collection of books that
cater to every interest and age group. From classic literature to
specialized publications, self-help books, and children’s stories, we
have it all! Each book is a gateway to new adventures, helping you
expand your knowledge and nourish your soul
Experience Convenient and Enjoyable Book Shopping Our website is more
than just an online bookstore—it’s a bridge connecting readers to the
timeless values of culture and wisdom. With a sleek and user-friendly
interface and a smart search system, you can find your favorite books
quickly and easily. Enjoy special promotions, fast home delivery, and
a seamless shopping experience that saves you time and enhances your
love for reading.
Let us accompany you on the journey of exploring knowledge and
personal growth!

ebookgate.com

You might also like