SG 247511
SG 247511
SG 247511
Platform specific
implementation guidelines
ibm.com/redbooks
International Technical Support Organization
December 2007
SG24-7511-00
Note: Before using this information and the product it supports, read the information in
“Notices” on page ix.
This edition applies to Version 8 Release 4 of IBM DB2 Content Manager OnDemand for
Multiplatforms (program number 5724-J33), Version 7 Release 1 of IBM DB2 Content Manager
OnDemand for z/OS and OS/390 (Program Number 5655–H39), Version 5 Release 4 of IBM DB2
Content Manager OnDemand for i5/OS (Product number 5722-RD1).
© Copyright International Business Machines Corporation 2007. 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
Notices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix
Trademarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
The team that wrote this book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii
Become a published author . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiv
Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv
Contents v
4.3.8 Implementation best practices . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
4.4 Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
4.4.1 Report selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
4.4.2 Indexing requirements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
4.4.3 Retention . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
4.4.4 Application group, application, and folder . . . . . . . . . . . . . . . . . . . . 162
4.4.5 Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
4.4.6 Document Audit Facility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
4.4.7 Indexers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
4.4.8 Exit points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
4.5 Application setup and verification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
4.5.1 Report setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
4.5.2 Permissions setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
4.5.3 Load, retrieve, and print verification . . . . . . . . . . . . . . . . . . . . . . . . 204
4.5.4 User acceptance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
4.6 Functional testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
4.6.1 Load processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
4.6.2 Retrieval processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
4.6.3 Printing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
4.6.4 Expiration processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
4.6.5 Custom exits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
4.6.6 Backup and recovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
4.7 Performance testing and considerations . . . . . . . . . . . . . . . . . . . . . . . . . 208
4.7.1 Develop test cases based on requirements . . . . . . . . . . . . . . . . . . 208
4.7.2 Load testing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
4.7.3 Retrieval testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
4.7.4 Tuning considerations based on test results. . . . . . . . . . . . . . . . . . 210
4.8 Training . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
4.8.1 System personnel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
4.8.2 Content Manager OnDemand report administrators . . . . . . . . . . . . 210
4.8.3 User training . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
4.9 Deployment into production. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
4.9.1 Automating the system process . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
4.9.2 System monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
4.9.3 System documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
4.9.4 System references . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
Contents vii
Part 3. Appendixes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
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 illustrate 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.
Adobe, PostScript, the Adobe logo, and the PostScript logo are either registered trademarks or trademarks
of Adobe Systems Incorporated in the United States, and/or other countries.
Pentium, Intel logo, Intel Inside logo, and Intel Centrino logo are trademarks or registered trademarks of Intel
Corporation or its subsidiaries in the United States and other countries.
Microsoft, Windows, and the Windows logo are trademarks of Microsoft Corporation in the United States,
other countries, or both.
NetApp, and the NetApp logo are trademarks or registered trademarks of NetApp, Inc. in the U.S. and other
countries.
Java, and all Java-based trademarks and logos are trademarks or registered trademarks of Oracle and/or its
affiliates.
UNIX is a registered trademark of The Open Group in the United States and other countries.
Oracle, JD Edwards, PeopleSoft, Siebel, and TopLink are registered trademarks of Oracle Corporation
and/or its affiliates.
NetApp, and the Network Appliance logo are trademarks or registered trademarks of Network Appliance,
Inc. in the U.S. and other countries.
Adobe Reader, PostScript, Distiller, Adobe Type Manager, Adobe, Acrobat, and Portable Document Format
(PDF) are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States,
other countries, or both.
Pentium, Intel logo, Intel Inside logo, and Intel Centrino logo are trademarks or registered trademarks of Intel
Corporation or its subsidiaries in the United States, other countries, or both.
Linux is a trademark of Linus Torvalds in the United States, other countries, or both.
Other company, product, or service names may be trademarks or service marks of others.
This IBM® Redbooks® publication will help you implement an IBM Content
Manager OnDemand solution from the beginning to the end. We discuss various
stages of the Content Manager OnDemand solution implementation, including
planning, software installation and configuration, design, application setup and
verification, functional testing, performance testing, training, and finally
deployment into production.
Although all three products have a common code base and use the same
Content Manager OnDemand Windows Client and Administration Client, there
are architectural differences among the various platforms that Content Manager
OnDemand supports. When you install and implement a Content Manager
OnDemand solution, customize the implementation according to the hardware
and software platform and your individual requirements. We had planned to have
a chapter in this book devoted to the implementation steps common to all
platforms. But as we worked on this publication, we decided that it would be
easier for a reader to refer to a single chapter with implementation guidelines and
suggestions for a specific platform. That is why we have separate chapters for
implementing Content Manager OnDemand on Multiplatforms, on IBM System
i®, and on IBM System z/OS. Some of the information will be repeated, but you
will have only one chapter to go to for your environment and another chapter to
read on the case studies related to your particular platform.
We suggest that after you read Chapter 1, “Introduction to IBM Content Manager
OnDemand” on page 3, you read the implementation chapter and the case
studies specific for your platform. Every platform covers information from a
slightly different angle, especially for the case studies. If you have time, we
recommend that you read the chapters related to other platforms to gain further
insights about the product implementation.
Carol Allen is a Certified Solution Expert for Content Manager OnDemand for
i5/OS who specializes in implementations, training, and migration services for
IBM customers. Before starting her own consulting business, she worked for IBM
for 24 years, concentrating since 1992 on IBM eServer™ iSeries® and AS/400®
document archive solutions. She has extensive experience in OnDemand
customer implementations and consulting, along with writing and teaching
technical classes around the world. Carol holds a Bachelor of Arts degree in
psychology from Emory University and a Masters degree in Counseling from
Georgia State University. She can be reached by e-mail at
[email protected].
xii Implementing IBM Content Manager OnDemand Solutions with Case Studies
Terry Brown is a Content Manager OnDemand for i5/OS consultant who
specializes in implementation, migration, and training services for IBM
customers. Before retiring from IBM in 2000, he spent 31 years with IBM as a
software developer working on S/38, AS/400, and iSeries licensed program
products. Starting in 1993, he was a developer on the R/DARS and OnDemand
products and was responsible for interfacing the OnDemand Common Server to
the OnDemand Spool File Archive data base and later on porting the OnDemand
Common Server to the iSeries. After retiring from IBM, he has continued working
with OnDemand doing implementations, migrations, and training in the United
States, Canada, Jamaica, Barbados, and China (Hong Kong S.A.R.). Terry holds
a Bachelor of Science degree in Electrical Engineering from Michigan State
University. He can be reached by e-mail at [email protected].
James Ilardi (Jim) is a Certified Solutions Expert for IBM Content Manager
OnDemand Multiplatform. Jim has worked in the technology sector for 25 years,
joining IBM in 1995. Jim has designed and installed numerous Content Manager
OnDemand systems for some of IBM’s largest customers worldwide while he
was a member of the Content Management Lab Services team. Jim is also a
Certified Solution Designer for IBM Content Manager. Jim has presented at
numerous IBM events, including the Content Manager Technical Conferences
discussing Content Manager OnDemand backup and recovery strategies.
Preface xiii
Edward E Stonesifer is an Executive IT Specialist with the Mid-Atlantic
Enterprise Content Management Team in the USA. Ed has 26 years of
experience in Information Technology and 18 years of experience with IBM
Content Manager OnDemand specializing in the IBM eserver zSeries® platform
using OAM, DB2®, and OnDemand z/OS. Ed has been instrumental in providing
input to the product development team for enhancements to meet the business
requirements for all IBM Content Manager OnDemand z/OS customers. Ed had
presented at numerous technical conferences and has authored technical white
papers addressing IBM Content Manager OnDemand z/OS.
Emma Jacobs
Deanna Polms
International Technical Support Organization, San Jose Center
Darrell Bryant
Gregory Felderman
Scott J Martin
Sandi Pond
IBM Software Development Group
Your efforts will help increase product acceptance and customer satisfaction. As
a bonus, you will develop a network of contacts in IBM development labs, and
increase your productivity and marketability.
xiv Implementing IBM Content Manager OnDemand Solutions with Case Studies
Find out more about the residency program, browse the residency index, and
apply online at:
ibm.com/redbooks/residencies.html
Comments welcome
Your comments are important to us!
Preface xv
xvi Implementing IBM Content Manager OnDemand Solutions with Case Studies
Part 1
Part 1 Implementation
guidelines
For chapters in this part, we provide an introduction to IBM Content Manager
OnDemand and discuss implementation guidelines based on each platform.
In the 1980s, especially after the introduction of the personal computer, vast
amounts of digital data started to be generated. This includes data such as
reports, presentations, statements, bills, invoices, letters, spreadsheets,
documents, e-mails, Web content, and digital audio and video. This data is
usually not indexed or stored in any formal information management system and
is considered unstructured data. It is estimated that 80 to 85 percent of all
corporate information is unstructured, and with the growth of the internet and
corporate intranets, the volume and heterogeneity of this information has
increased prodigiously.1
1
Preface, IBM System Journal Volume 43, Number 3, 2004
Specialized solutions
In the mid to late 1980s, specialized solutions were developed to address
specific customer problems. These solutions were customized on a per customer
basis and were environment- and system-dependent. These solutions worked
very well once they were implemented, but they lacked portability to other
hardware platforms.
Two early and highly successful IBM mainframe products in the specialized
solution phase were:
Report Management and Distribution System (RMDS)
Item Access™ Facility (IAFC)
RMDS was created to allow capturing of report data from the JES Spool, storing
it in the RMDS report library, and subsequently permitting users to view the
captured data using various 3270 based viewers. A stand-alone VTAM® based
viewer was the most popular viewer with a CICS® viewer coming in as a close
second.
With the release of V2.1 of RDMS came additional functions, capabilities, and
changes:
Support for AFP and MODCA data in addition to line data
VSAM KSDSs were replaced by DB2 tables
The ability to store report objects as OAM objects (and in RMDS V2.3, to
VSAM Linear Data Sets)
Over the years, the RMDS customer base stabilized, with customers migrating
their applications to the newer Content Manager OnDemand for z/OS.
IAFC was designed to provide support for high volumes of coded data objects on
optical media or low cost DASD (such as the 3390-9). The main goal was the
storage of print data for archiving. The stored data is indexed for online access
and selective printing.
Support for IAFC stored data was merged into Content Manager OnDemand
V2.1 and was available as an optional V2.1 feature. This feature was known as
IAFC Data Compatibility.
The IAFC Data Compatibility feature was later included in Content Manager
OnDemand for z/OS starting with V7.1.
Generalized solutions
In the early 1990s, generalized solutions replaced the previously developed
specialized solutions. The code included all the functions available in the
previous offerings but was less dependent on the specific environment in which it
was executed. The code on each platform was customized based on requests
from IBM customers for that platform.
Product integration
From a business perspective, maintaining three different platform-specific code
bases that provided nearly equivalent functionality did not make sense to IBM or
to customers. IBM needed to develop duplicate platform-specific code and
customers were locked in to the specific platform that they first started with. So a
product integration effort was initiated that resulted in the first code release that
supported xSeries®, pSeries®, iSeries, and zSeries systems.
On the AS/400 (later called the iSeries and then the System i), the version of the
Content Manager OnDemand licensed program product is the same version as
the operating system. The naming of Content Manager OnDemand server
version, however, is the same as with the other hardware platforms.
Product integration comes with many benefits. The common code base, resulting
from product integration, meant less time and effort spent developing and testing
the common portion of the code (it needed to be done one time instead of three).
This enables developers to spend more time addressing other issues such as
adding more functions to the product. In addition, more time was spent on
addressing scalability, high availability, and performance issues.
The common client interface meant that there would be only one set of common
clients that access any of the Content Manager OnDemand servers. It also
implied the possibility and ability to import and export metadata (administrative
definitions for applications, application groups, and folders) between platforms.
Furthermore, it led to the ability to place the library server and object servers on
the platform of choice based on customer requirements.
Cross-product integration
As the market became more established and complex, customers requested
cross-product integration and additional functions. During the early 2000s, IBM
focused on integrating Content Manager OnDemand with other IBM enterprise
content management products as well as with third-party vendors.
Content Manager OnDemand V8.4 enhancements include new Web clients with
additional features, including 64-bit addressing, more indexing options, and more
diagnostic capabilities. The planned dates for the release of this server level are:
2007: Content Manager OnDemand for Multiplatforms
2007: Content Manager OnDemand for z/OS
2008: Content Manager OnDemand for i5/OS
All server sizing efforts should focus on the first two or three years of the Content
Manager OnDemand implementation.There are two primary reasons for this:
Hardware gets cheaper and faster as time passes.
Growth and usage rates are difficult to estimate in the long term.
Database
Cache storage
Windows
Temporary storage
OD Client
Library Server and
Object Server
(all in one)
If the daily load requirement is substantial (that is, the loading cannot be
accomplished during off hours), or business requirements dictate immediate data
availability, a separate object server is highly recommended. Multiple object
servers are also recommended for a geographically distributed system when the
documents need to be located near the users who most frequently access them
(see Figure 2-2 on page 15).
Database
Cache storage
Temporary storage
Network
Windows
OD Client
Cache storage
Archive storage
Object Server(s)
2.2.2 CPUs
The Central Processing Unit (CPU) performs all of the logic embedded within a
Content Manager OnDemand installation. There are three general areas of
activity that involve CPUs:
Loading
Search and arssockd processes
Retrieval and arsobjd processes
Loading
Loading is probably the most CPU intensive task. It is dependent on the type of
loading done, and whether the data is indexed at load time or is pre-indexed.
There are two indexers included with the multiplatform product: the PDF indexer
and the ACIF indexer (for AFP and line data). The generic indexer is somewhat of
a misnomer, since the indexing is performed outside of Content Manager
OnDemand.
Data can also be indexed by the system that generates the print stream. In some
implementations, a mainframe does not only generate a line data or AFP print
stream, but it also uses the ACIF indexer to generate the index file. Or, virtually
any platform can generate a generic index file and build the input file (this is very
common for batch scanning systems).
There are other Content Manager OnDemand related processes that run on the
library server, but they are generally used only for database operations (such as
startup, shutdown, database creation, and database maintenance) that do not
run when users are using the system.
2.2.3 Memory
All Content Manager OnDemand multiplatform implementations should have a
minimum of 8 GB of memory for the Content Manager OnDemand, database,
and operating system software. If there are a significant number of users, add 8
MB of memory per user. For example, 500 users requires 4 GB of additional
memory (that is 500 users * 8 MB = 4 GB).
Most standard hardware configurations include a single large capacity disk, but
four (or more) smaller capacity disks can greatly improve performance. The use
of RAID or SAN technology can improve performance, but care should be taken
when allocating Content Manager OnDemand file systems across these disks to
prevent too much I/O on a singe path.
Long term object storage can utilize removable media, such as optical or tape, if
older data is infrequently accessed. Otherwise, large capacity but slower disks
(Storage Area Network or CAS Based Storage) should be used. This type of
storage can also meet the legal requirements necessary for archive data. Check
with your legal department when planning this type of storage.
The complete and detailed installation procedure can be found in the IBM
Content Manager OnDemand for Multiplatforms Installation and Configuration
Guide, SC18-9232.
Prerequisites for the Content Manager OnDemand product are version specific
and can be found in the following locations:
The product install and configuration guide (platform specific)
The Content Manager Ondemand V8.4 Information Center, found at:
http://publib.boulder.ibm.com/infocenter/cmod/v8r4m0//index.jsp
You can also contact the IBM Support Center for the latest maintenance levels of
DB2, Content Manager OnDemand, and optionally, Tivoli® Storage Manager,
and IBM Infoprint Manager (Infoprint).
Network architecture
Content Manager OnDemand is a client/server application that requires a
network running the TCP/IP communications protocol. The network maybe wired
or wireless, but it must be capable of high transfer rates; otherwise overloaded
networks reflect badly on client/server applications. Network I/O is the resource
that most affects the performance of TCP/IP.
Content Manager OnDemand has various features that address the problem of
delivering large quantities of information from a server to clients over a network,
specifically data compression and large-object support. Data compression will
reduce the amount of network traffic, but only if the data is able to be
compressed (TIFF, GIF, and JPEG image data do not compress well) and the
Windows Client is utilized for document viewing (the client performs the
decompression). Large-object support reduces network traffic by only
transmitting those sections of the document to be viewed, rather than the entire
document.
Note: Base 14 fonts are specific common Type 1 fonts installed as a part of
the Adobe Acrobat installation and include:
Times (v3) or Times New Roman PS MT (v4.x): four versions (regular,
bold, italic, bold italic)
Helvetica (v3) or Arial MT (v4.x): four versions
Courier: four versions
Symbol
Zapf Dingbats
Operating system
Content Manager OnDemand for Multiplatforms can be installed on many
different operating systems. In order to obtain the latest operating system
software updates, go to the appropriate Web site for your operating system:
AIX®
http://www14.software.ibm.com/webapp/set2/sas/f/genunix3/aixfixes.ht
ml
Database
Content Manager OnDemand supports three different database management
products, although the choices are platform dependent. While not typically
installed in this manner, different Content Manager OnDemand instances can
use different database products. The database product(s) must be installed on
the library server.
DB2 (AIX, HP-UX, Solaris, Linux, Linux z/OS, and Windows)
You can obtain the latest service update from IBM service at:
ftp://service.software.ibm.com/ps/products/db2/fixes
Oracle (AIX, HP-UX, Solaris, and Windows)
Oracle requires additional configuration steps after installation in order to
work with Content Manager OnDemand. Contact Oracle for information about
the latest maintenance level of Oracle:
http://www.oracle.com/support/index.html
SQL Server (Windows only)
If you are using SQL Server instead of DB2, contact Microsoft for information
about the latest Service Packs for SQL Server:
http://www.microsoft.com/sql/support/default.mspx
Storage system
The most popular storage system for Content Manager OnDemand for
Multiplatforms is Tivoli Storage Manager (TSM). Software support can be found
at:
http://www.ibm.com/developerworks/linux/linux390/index.html
It is not the intent in this section to describe the benefits of the various storage
systems, or the operation of them, but rather how the Content Manager
OnDemand implementation can be optimized for any type of storage system. In
this respect, the storage system is similar to the network architecture, because
we are interested in minimizing the number of bytes stored.
Operational requirements
Corporate data is extremely important for any company to function. A backup and
recovery strategy of the data should be a part of an overall data management
plan. Your system might fail due to many causes. They include human errors,
hardware failures, transaction failures, and disasters. Data backup and recovery
is so important that another IBM Redbooks publication was written to address
the issues involved and provide recommended actions to take: Content Manager
OnDemand Backup, Recovery, and High Availability, SG24-6444.
Because data backup and recovery is of the utmost importance, this section will
not attempt to address the problem and we recommend you read the
aforementioned IBM Redbooks publication, which can be downloaded from:
http://www.redbooks.ibm.com/abstracts/sg246444.html?Open
The Introduction and Planning Guide for your library server platform also
contains a chapter on backup and recovery that details the files and file systems
that must be backed up to ensure data protection.
Aside from data protection, other operational requirements also exist. System
performance and tuning is an ongoing activity that generally will require daily
attention. These tasks include (and are not limited to):
Disk space usage
CPU usage
AIX/UNIX
The standard installation procedure assumes that the root user will be the
Content Manager OnDemand instance owner, be the owner for the cache file
system, and run all Content Manager OnDemand processes. Most IT
organizations do not want the root user running applications because of the
inherent power of the root user. We strongly advise you to create a special user
(typically odadmin) for the Content Manager OnDemand system. If you have
decided to use a distributed library server and object server configuration, the
odadmin user should be created on the object server machines as well. Make
sure the odadmin user is a member of the database administration group.
Windows
Each library server must have a user account that will be used to install Content
Manager OnDemand software, administer the system, load data, and perform
other Content Manager OnDemand functions. If you use DB2 to manage the
database, the user name must meet the DB2 naming rules. The suggested user
name is ODADMIN, and this user must be a member of the local Administrators
group and have the following local security policy settings:
Act as part of the operating system
Create a token object
Increase quotas
Log on as a service
Replace a process level token
http://publib.boulder.ibm.com/tividd/td/tdprodlist.html
Note that TSM is not necessarily installed on the Content Manager OnDemand
object server. Content Manager OnDemand uses the Tivoli Storage Manager
API client to store data into the Tivoli Storage Manager server. A Tivoli Storage
Manager server is managed and administered independently of Content
Manager OnDemand and can exist on a separate server.
You can run multiple instances on the same workstation, with each instance
configured differently:
To have separate test and production environments
To have databases using different code pages
Each instance has different security from other instances on the same
workstation. You must define users and groups to each instance and set
application group and folder permissions for users of each instance. Each
instance has its own System Log. Each additional instance requires additional
system resources, such as virtual storage and disk space, and more
administration.
If you plan to run more than one instance on the same workstation:
The ARS.INI file must contain one section for each instance. Each section
identifies the ARS.CFG file, ARS.DBFS file, and ARS.CACHE file used by the
instance.
You must create a unique copy of the ARS.CFG file for each instance.
You should maintain separate tablespace file systems and cache storage file
systems for each instance. Create a ARS.DBFS file and ARS.CACHE file for
each instance.
AIX/UNIX
The AIX/UNIX platforms use four different configuration files. An instance is
defined in the ARS.INI file by naming the instance, identifying the name of the
database used by the instance, and identifying the library server on which the
database will be maintained. When you configure an object server, you identify
its library server in the ARS.CFG file on the object server. An instance has its
own tablespace file systems for the database and cache file systems. The
ARS.INI
The ARS.INI file contains information about Content Manager OnDemand
instances. When you install the Content Manager OnDemand software, the
ARS.INI file contains information about a default instance named archive. Most
customers will use the default instance for their first or only instance of Content
Manager OnDemand. Each instance in the ARS.INI file will point to the other
three configuration files, which must be unique for each instance. The files can
not be shared across instances.
ARS.CFG
The ARS.CFG file contains information about the instance, such as identifying
the object servers that belong to the instance, the language settings for the
instance, and information that is used by database, storage, and print manager
programs. Some parameters in the ARS.CFG file are not used on object servers.
For example, an object server does not use the license parameters, server print
parameters, and database parameters.
ARS.DBFS
The ARS.DBFS file lists the file systems on the library server that can be used by
the database manager to maintain index data in tablespaces. Each line in the
ARS.DBFS file identifies the name of a file system that Content Manager
OnDemand can use to store tablespaces and specifies the type of tablespaces
created in the file system. All database file systems should be identical in size for
a given instance.
ARS.CACHE
The ARS.CACHE file lists the file systems on the object server that can be used
by Content Manager OnDemand for cache storage. If there are multiple file
systems in the ARS.CACHE file, Content Manager OnDemand uses the file
system with the greatest amount of free space to store the objects. All cache file
systems should be identical in size for a given instance.
After you complete the initial configuration of your system, you might need to
perform advanced configuration, such as:
Configuring services
Configuring scheduled tasks
Managing multiple servers from one workstation
Defining multiple instances on one workstation
The configurator provides online help to assist you with completing tasks. The
online help contains information about the options, fields, and commands on the
windows, dialog boxes, and property sheets that you see when using the
configurator. To display online help, press F1 any time the configurator is active in
Windows. Help is available for dialog box commands and options. The main help
topic for each dialog box usually contains information about the purpose of the
dialog box and the commands and options that appear on the dialog box.
If you update an instance, you must stop and restart the Content Manager
OnDemand library server and object server by using the configurator program or
system services.
If you use TSM to manage application group data in archive storage, then each
storage node that writes data to TSM-managed storage must be registered as a
client node in a TSM domain. The properties of the domain determine the
devices that can hold the data and how long that TSM maintains the data.
A storage set can contain one or more primary and secondary storage nodes.
You do not need to install TSM software and configure it now in order to install
and use it later. Set up new storage sets as though they were accessed by TSM
(that is, not Cache Only) and assign the storage sets to the application groups.
You will have to select Cache Data for __ Days when you assign the storage set
to the application group, and then select the Advanced button. When the
Advanced Storage Management window appears, you must select either Next
Cache Migration or After __ Days in Cache in the Migrate Data from Cache
pane. You will not be able to run the arsmaint program to migrate or expire the
cache (successfully) until TSM is installed and configured. Because the
documents are not being copied to TSM, you will need to back up the cache file
systems to prevent loss of data. Note that it is still possible to lose data between
backups, so you may want to mirror the file system on another drive in addition to
backing it up.
TSM configuration
When you initially install Tivoli Storage Manager, the installation procedure
creates a default 17 MB database volume (db.dsm) and a default 9 MB recovery
log volume (log.dsm). The database size is determined by the amount of data
that you plan to store on the system. The recovery log might need to be
increased depending on the current utilization. It is strongly recommended that
you do not use these system created files and you create new files on a separate
file system, as the default files are created in the product install directory. IBM
Content Manager OnDemand for z/OS and OS/390: Introduction and Planning
Guide, GC27–1438 provides formulas that you can use to estimate the database
and recovery log sizes.
Storage library
When you add an optical or tape library to the system, you must define it to Tivoli
Storage Manager. When you define a library to Tivoli Storage Manager, you
define a device class for the library and define the library and the drives
contained in the library. You also define a storage pool for the collection of
storage volumes that belong to the library.
Policy domain
The Tivoli Storage Manager policy domain links data with media in a storage
pool. A policy domain supports a single storage pool, which in turn supports a
single library. You define a domain, a policy set, a management class, and a
copygroup.
Finally, there are application design considerations that may be classed as best
practices because they impact performance or storage requirements in some
fashion. These include:
The maximum rows value, which determines how many data rows will be
loaded into each database table, is used for segmenting the index data and
deciding when to close a database table and open a new one. The default
2.4 Design
Creating a design for your Content Manager OnDemand implementation requires
you to take many options into consideration. These items include:
Report selection
Indexing requirements
Retention
Application group, application, and folder
Security
Indexers
Exit points
2.4.3 Retention
Content Manager OnDemand retention includes three separate but related
retention settings: Life of Data and Indexes, Number of days to cache data, and
Archive retention. When designing your Content Manager OnDemand system,
each of these must be calculated in order to allocate enough disk or Archive
storage:
Life of Data and Indexes: This value is used by Content Manager OnDemand
to determine how long index data will be kept in the Content Manager
OnDemand Database and how long before the arsmaint process will issue a
delete for database and archive/cache storage.
Number of days to cache data: This value is used by Content Manager
OnDemand to keep a local disk copy of archived data. It is useful to support
high volume retrievals of data during initial loading. It can also be used for
Cache Only application groups.
Archive retention: This value is set within TSM and manages life of data
within that subsystem. Content Manager OnDemand has no control over this
setting. In the case of System Storage Archive Manager (SSAM), Content
Manager OnDemand can effect this function by initiating events based on the
Life of Data and Indexes value. For more information regarding SSAM, refer
to IBM System Storage DR550 Setup and Implementation, SG24-7091.
In the Application Group General tab, there is an Advanced... button that brings
up a Database Information page. You will see a Records Management pane in
the lower left, and if you specify the Application uses Record Management
option, Content Manager OnDemand will not manage retention for the
application group. This option was added for the Federated Records
Management product feature, and should not be used otherwise. You can
theoretically implement an external records management application and use
this option, but records management can be very complex, and the file and
database operations would have to be handled outside of Content Manager
OnDemand (such as DB2 and TSM).
A Content Manager OnDemand application defines the layout of the report you
are loading into the system. It defines characteristics of the report such as data
format, carriage control, record layout, and compression settings. It is within the
application definition where you will define the extraction rules that the Content
Manager OnDemand Indexing program will use to extract information from the
report to be loaded into the database for searching. It is also within the
application where you specify the parameters needed so Content Manager
OnDemand can properly deliver a report for viewing.
A Content Manager OnDemand folder defines the search and display fields that
appear when a user opens the folder. These folder fields are mapped to the
application group fields that contain the index values extracted from the reports.
A user will use this folder to search for documents by entering values into the
search fields. Content Manager OnDemand will then issue a query against one
or more application group tables to resolve the search and produce a hit list.
2.4.5 Security
Security in Content Manager OnDemand implementations can be divided into
two areas: authentication (determining if the user is who he claims to be) and
authorization (determining the permissions that user has been granted). User
authentication can be internal to Content Manager OnDemand (user ID and
password), or external to Content Manager OnDemand (LDAP, for example). If
external security is utilized, you must still create the user ID within Content
Manager OnDemand for authorization purposes. Even if a user can gain access
to Content Manager OnDemand (he can be authenticated), he may not have any
Defaults for access are view, fax, print, and copy on documents and view and
add on annotations. Any of the permissions can be added or deleted if desired.
Default administrative permissions include the above and add for documents and
copy for annotations. Fax and print permissions cannot be specified for
annotations, although if a user can view an annotation, it can be printed
(annotations can be public or private).
Common folder permissions include access (the user can view the folder) and
administrative (the user can view or change the folder), named queries (public
and private), and maximum hits. There are other less frequently used
permissions that are explained in the online help and administration guide.
The only rule that tends to cause problems is the one concerning users who
belong to two or more groups. Problems can arise because the lowest GID
criteria for evaluation cannot be overridden, and groups are assigned a GID in
ascending order by default (1080001, 1080002, 1080003, and so on). The
solution to this potential problem is simple if you take precautions when you
create groups: the GID for a new group can be overridden when you create the
group. It is strongly advised that your first group have a GID of 1080101, the
second have a GID of 1080201, and so on. This allows you to create a new group
with a lower GID when necessary. For example, managerial roles generally will
have more permissions than user roles, which have greater permissions than
reviewers. Unless you have a well planned schema for creating groups, you may
find yourself granting authorizations to users on a user ID basis, rather than a
group basis.
2.4.6 Indexers
Content Manager OnDemand for Multiplatforms includes two different indexing
programs out-of-the-box: the AFP Conversion and Indexing Program (ACIF
indexer), and the PDF indexer. A third indexer, the generic indexer, is not a true
indexing program, as it only reads index values from a generic index file, and not
from the input data itself. You can also purchase a license and use the optional
Xenos transformation program. The Xenos transforms can be used to extract
index data from input print files that contain AFP, Xerox Metacode/DJDE, or PCL
data. Xenos transforms will also convert the above formats into PDF documents.
The ACIF indexer (arsacif program) lets you index a line data print file, optionally
convert line data input into Advanced Function Presentation (AFP) documents to
be stored on the system, and retrieve the AFP resources that are required for
archiving and viewing in Content Manager OnDemand. ACIF can also be used to
process input reports that contain AFP data. The ACIF indexer requires two files:
the input (document) file and an index parameter file, which can be created
manually or with a graphical indexer.
In addition to the indexers discussed above, you can also index documents on
another system and then archive the documents on Content Manager
OnDemand for Multiplatforms. For example, you can use the OS/390 indexer
(AFP or Line data only) on OS/390 or z/OS platforms or the OS/400® indexer
(AFP, Line, or SCS formats only) on the System i platform. These indexers are
not shipped on the Content Manager OnDemand for Multiplatforms media, but
are available without charge to Content Manager OnDemand licensees.
The input exit enables you to add, delete, or modify records in the input file. You
can also use the exit to insert indexing information. This exit is called after each
record is read from the input file. This exit can request that the record be
discarded, processed, or processed and control returned to the exit for the next
input record. The largest record that can be processed is 32756 bytes.
The index exit allows you to modify or ignore the records that ACIF writes in the
index object file. This exit receives control before a record is written to the index
object file and cannot be used to insert additional index information.
The output exit allows you to modify or ignore the records ACIF writes into the
output document file. This exit receives control before a record is written to the
output document file. Like the input exit, the largest record that the output exit
can process is 32752 bytes. This exit is not called when ACIF is processing
resources.
The resource exit allows you to filter resources from being included in the
resource file. If you want to exclude a specific type of resource (for example, an
overlay), you can control this with the RESTYPE parameter. This exit is useful in
controlling resources at the file name level. This exit receives control before a
resource is read from a directory. This exit program can request that the resource
be processed or ignored (skipped), but it cannot substitute another resource
name in place of the requested one.
The retrieval preview exit can be used to add, remove, or reformat data before
the document is presented to the client. For example:
Remove pages from the document, such as banner pages, title pages, or all
pages but the summary page.
Remove specific words, columns of data, or other information from the
document. That is, omit (white out) sensitive information such as salaries,
social security numbers, and birth dates.
Add information to the document, for example, a summary page, data
analysis information, and Confidential or Copy statements (watermarks).
Reformat data contained in the document, for example, reorder the columns
of data.
The retrieval preview user exit is not called for all document retrievals. In
particular, the user exit is not called for functions that use the Bulk Retrieval
method of retrieving documents or for server printing. For example, running the
arsdoc get function without specifying the -n parameter performs a bulk
retrieval, and documents retrieved will not be passed to the client preview exit.
The retrieval user exit point may be enabled for more than one application.
However, all applications must be processed by the same user-written program
(only one user-written program is supported). The system passes the name of
When modifying the data, the format and type of the data must not be changed;
only the content may be changed. When the modified data is viewed by the
Windows Client, the format of the data and the data type that is defined in the
application on the View Information page will be used to display the data. If the
format or data type has changed, the document will not view properly.
Permission exit
The permission exit is more complex than most user exits. It is used to customize
permission in a more flexible way than the standard Content Manager
OnDemand Administration Client can provide. This exit is called during login if
the permission exit is turned on for folder and application groups. It is also called
during a search when the permission exit is turned on for an SQL query string or
document.
The input to the exit program is the user ID and the information from the structure
field ArcCSXitPermExit. The output is the access values of the different actions.
The access values of the first two actions determine whether the user has the
right to access the folder and application group during logon. This exit program
can also change the SQL query and the SQL query restriction for the application
group in action 4. Finally, the access value of action 3 determines the permission
to retrieve the document into the hit list.
Print exit
There are two ways to print a document stored in Content Manager OnDemand:
local printing, through a LAN attached PC printer, or server printing, through a
printer managed by the print manager installed on the Content Manager
OnDemand server machine. The print exit for Content Manager OnDemand for
Multiplatforms can only be used for documents that are printed through a server
printer.
The print exit for Content Manager OnDemand for Multiplatforms is the arsprt file,
which resides in the <OnDemand_install>/bin directory. It is a batch file
(arsprt.bat) on the Windows platform, and a shell script on the UNIX platform
(arsprt). The print exit can be modified for many different uses, for example, to
keep track of department printing expenses (based on the user ID or application
group name), or even to keep a running count of the number of times a particular
document is printed (using arsdoc update to change index values).
Once enabled, the user exit program processes all logons to the system. The
user exit must be named arsusec and must reside in the bin subdirectory of the
Content Manager OnDemand installation. Note that all Content Manager
OnDemand instances will use the same security exit if enabled.
To use this exit, you must select External Cache when the application group is
created. When the user retrieves the document from Content Manager
OnDemand based on the indexes, the exit is activated to pull the document from
respective location. This exit is only activated when a user retrieves a document
data that is stored in external cache. The smextcac exit program should be
placed in the <OnDemand_install>/bin/exits directory.
You must perform the following steps to configure the system to send the
messages to the System Log user exit:
Enable Content Manager OnDemand to generate system messages and
specify the types of messages generated by selecting the appropriate options
(System Logging pane) in the System Parameters dialog box. The System
Parameters dialog box (see Figure 2-3 on page 47) is reached by
right-clicking the Content Manager OnDemand server name in the System
Administration Client and selecting System Parameters.
You have the option of specifying the SQL to create the table or index on that
table within the tablespace.
Another example would be to write a Java program to process a date field that
may or may not contain slashes (date formats must be consistent; all date fields
must contain slashes or not contain slashes). Note that this particular function
can be performed by an index user exit. However, there may be other
circumstances that preclude that possibility. One reason would be that the ACIF
indexer is not used for that particular application (the PDF indexer and generic
indexer do not allow for user exits). A second reason is that ACIF indexer user
exits must be written in the C or C++ programming language and compiled. If a
programmer or a compiler program is not available, an index user exit is not an
option (see Figure 2-5 on page 50).
You can only assign a storage set to an application group once (and you cannot
update the assignment), so some thought must go into creating storage sets. A
storage set is a named collection of storage nodes that support application
groups with similar storage management characteristics (retention and type of
media used). Note that the data retention values are application group specific,
and do not appear in the storage set definition. All implementations should
probably include cache storage, so this storage set should be created first. For
Content Manager OnDemand for Multiplatform, the only other type of storage set
will be Tivoli Storage Manager (access method TSM). While Content Manager
OnDemand for Multiplatform calls out TSM as a prerequisite, you can set up
storage sets that will use TSM in the future without installing TSM initially.
However, all data will have to be stored in cache until TSM is installed and
configured, and the data must be protected in the meantime (disk mirroring or
backups).
Tip: Name the storage set so that the media and retention is obvious, for
example, 7YR_TAPE or FOREVER_OPTICAL. This will help prevent
assigning storage sets to application groups that have different retention
requirements. You would not want to store data that is only kept for two years
on optical platters that cannot be erased and reused.
You can think of an application group as the definition of the metadata to be kept
for a report or group of reports (hence the name). The application group also
specifies the data retention, so all reports that belong to an application group
must have identical retention requirements. An application group does not specify
Tip: You should add an Application ID field to all application groups. This is a
string field and is typically only one or two characters in length, so the
overhead is minimal. This will allow you to add applications to existing
application groups in the future, rather than creating new application groups.
The benefit to this is that the metadata for similar reports is stored in the same
database table, and search performance will be faster (fewer tables to search).
Report Wizard
The Report Wizard assists you in adding reports to the system. The Report
Wizard is started by clicking the Report Wizard icon (document with a wand and
stars) on the System Administration Client toolbar. The Report Wizard helps you
You can use the Report Wizard to add an application group, application, and
folder for a report. These actions include defining indexing information, defining
database and folder fields, configuring data and storage management, specifying
whether the application group can contain more than one application, and
naming the application group, application, and folder.
You can also use the Report Wizard to add an application to an existing
application group. This action includes defining indexing information, specifying
storage information, and identifying the application within the application group.
To add an application to an application group, the application group must have a
database field to hold the values that uniquely identify an application within the
application group.
Important: The Report Wizard will only process files that contain line data or
PDF data. PDF data requires that you have Adobe Acrobat installed on your
workstation. You must also have a sample file available in order to proceed.
Manually
You can always right-click the component icon in the left (navigation) pane of the
System Administration Client and choose the Add New Application
Group/Application/Folder option. You should start with the General tab and
then move to the right and up (applications have two rows of tabs). Not all tabs
may be applicable for a given report, and some choices can be deferred or
changed later. There is a Help button on every tab, and the user is advised to
click that button and read the online documentation whenever in doubt as to what
a particular option is. You always begin with a New Application Group (unless
adding an application to an existing application group), then create a New
Application, and then create a New Folder (or modify an existing folder). You can
always modify Permissions, so that tab can always be skipped when creating a
new Application Group or Folder (applications do not have a Permissions tab).
You can grant permissions as you set up the application groups or go back later
and authorize users. Users are authorized to application groups and folders as
individual users, as members of user groups, or as part of *PUBLIC. Do not grant
permissions to a folder until you are ready for the users to access that folder,
which should be after you have tested retrieving documents from that folder.
When users log on to Content Manager OnDemand, they see a list of folders
they are allowed to access.
If the report belongs to an application group with multiple applications, you will
also need to specify the application (-a <app>). The -inv options are as follows:
-i: Indexing only (report is not loaded).
-n: Do not delete report (input) file.
-v: Verbose mode.
Note that all options that do not include an argument can be combined together
with a single hyphen. If this is successful, you can attempt to load the report file:
arsload -g <app_grp> -fnv -u <user_ID> -p <passwd> <file_name>
The -f option tells arsload to unload the report file if the load fails for any reason:
If the database manager step fails, then Content Manager OnDemand should
remove any index data that was added to the database, and if the storage
manager step fails, then Content Manager OnDemand should remove any
storage objects that were copied to storage volumes.
If the indexing or load fails for any reason, the verbose (-v) option will give you an
error number that can be used to reference a possible solution in the manual IBM
Content Manager OnDemand: Messages and Codes, SC27-1379.
Assuming the report loads successfully, the next step is to search for and view
one more documents in the report with the Content Manager OnDemand
Windows Client. You should check several items when the folder opens:
Is the default date range correct?
Are the search criteria fields labels correct and in the correct order?
Are the default search operators correct?
All of the above (and more) can be found in the Field Information tab of the folder.
After you choose a document to view, check these items:
Is the document orientation correct? (Orientation option on View Information
tab of application)
Is the document page visible in its entirety? (Zoom option on Logical Views
tab of application)
Is the background color correct? (Background Color on Logical Views tab of
application)
If any of the search criteria fields or the document view is incorrect, you can
make the change in the System Administration Client, close the folder in the
Windows Client, and press the F5 button when you see the Open a Folder
window (F5 will refresh the folder/application/application group information that
the client displays).
If significant changes are made after the second meeting, allow the users to play
with Content Manager OnDemand for another day or two and set up a third
meeting. By this time they should be familiar with the Content Manager
OnDemand vocabulary and nomenclature, and you will have a better
understanding of their business requirements. In software development, there is
You typically configure the arsload program to run as a daemon (UNIX servers)
or service (Windows servers) to periodically check specified file systems for input
files to process. You can specify multiple directories to monitor for input files (-d
parameter) for a single arsload program, or you can run multiple UNIX daemons
or Windows services. If you have extremely large input files for a particular
application, you should consider a separate arsload program just for that
application. The logic for this is that a single arsload program will sequentially
process files in each input directory before it cycles back through to the first input
directory. A large input file may delay loading smaller files with equal or greater
priority. You may also want to consider setting up Content Manager OnDemand
object servers on other computers for the express purpose of loading. Indexing
When arsload runs as a UNIX daemon or Windows service, the input files must
conform to a naming convention. The file name extension must be .ard or .pdf,
and the file name itself is used to designate the application group (and
application if necessary) that the file will be loaded into. Files downloaded
through the arsjesd program will already have the correct file name schema:
MVS.JOBNAME.DATASET.FORM.YYYYDDD.HHMMSST.ARD
By default, the FORM field is used for the application group name. Another field
can be used if you include the -G parameter and specify which field to use
(MVS™, JOBNAME, DATASET, or FORM). If the application must be specified,
you need to include the -A parameter and specify which field to use (MVS,
JOBNAME, DATASET, or FORM; there is no default).
If some other method is used to transmit the input files to the object server, it will
be necessary to name the files correctly on the sending system or rename the
files on the receiving system. Renaming files on a UNIX system is usually
accomplished with a shell script, and a batch file on the Windows platform. Other
options include compiled programs (C, C++, or VB), Java programs, or Windows
PowerShell.
Note that the first five options are shown as exclusive options to be performed by
themselves. In actuality, the options can be combined, but you probably want to
test them separately. You will most likely only test the -c, -d and -m options. The
arsmaint program options are as follows:
-c: Expire files from cache storage.
-d: Expire indexes from the Content Manager OnDemand database.
-e: Migrate index data from the database to archive storage.
Important: Before you can migrate index data, the index tables must be
closed. If the Database Organization for the application group is set to Single
Load per table, the index table is closed when the report is loaded. Otherwise,
if the Database Organization is Multiple Loads per table, the index table is
closed when the Maximum Rows value is reached. To close a table to loading
before the Maximum Rows value is reached, use the arstblsp program with the
-a1 parameter.
Note: An administrator must import index data that was previously migrated to
archive storage back into the database to satisfy a query. After maintaining the
imported index data for the number of days specified in the Length of Time to
Keep Imported Migrated Indexes (Storage Management tab in the application
group), the data is eligible to be removed from the database.
Tip: You may want to create a special user that will only be used for expiration
testing, and then give that user permission to delete documents from the
application group being tested. Once testing is complete, you should delete
that user’s permission to delete documents from the application group.
-p: Specifies the password for the Content Manager OnDemand user ID that
is identified with the -u parameter.
When expiration testing is performed, you should test at least two dates: the day
before the index/object should expire (to verify data is retained the correct length
of time), and the day the expiration should take place (to verify data is expired
correctly). You should only work with test data, and never when production
data/reports have been loaded into the application group. Using a test Content
Manager OnDemand instance and a special user ID is highly recommended.
UNIX
In UNIX environment, you can set up startup, schedule, and shutdown programs.
Startup
Programs that start automatically when the UNIX server is started (system
services) utilize the init facility. On AIX, you create entries in the /etc/inittab file
with the mkitab command or simply edit the file with a text editor. HPUX also
uses the /etc/inittab file, as does Linux. On Solaris, the files are named differently
(with different directories for different run levels), but the concept is the same
(/etc/rc3.d is the multiuser run level directory). These directories contain scripts
that Start (script name begins with S) or Kill (script name begins with a K) system
services.
You can use the arsdb program to start the database on the library server. The
following example shows an INIT record to automatically start the database when
the operating system is initialized on the library server:
ars2:2:wait:su - archive "-c /usr/lpp/ars/bin/arsdb -gkv" >>
/tmp/arsdb.log 2>&1
The following example shows an INIT record that automatically starts the
instance named archive when the operating system is initialized on an object
server:
ars4:2:once:/usr/lpp/ars/bin/arsobjd archive
The following example shows an INIT record that automatically starts the arsjesd
program during operating system initialization:
ars5:2:once:/usr/lpp/ars/bin/arsjesd -p 6001 -d /arsacif/acif1 -d
/arsacif/acif2 -d /arsacif/acif3 >> /tmp/arsjesd.log 2>&1
The following example shows an INIT record that automatically starts the arsload
program for the instance named archive during operating system initialization:
ars6:2:once:/usr/lpp/ars/bin/arsload -v -c /arsacif/acif4 -d
/arsacif/acif1 -d /arsacif/acif2 -d /arsacif/acif3 -I archive
Scheduled
System services that are scheduled activities utilize the cron facility.
The following is an example of a cron record that automatically starts the arsdb
program to maintain the Content Manager OnDemand system tables for the
instance named archive. The arsdb program will run twice a month, on the 7th
and 14th of each month, beginning at 5 am:
00 5 7,14 * * /usr/lpp/ars/bin/arsdb -mv -I archive >> /tmp/arsdb.log
2>&1
Shutdown
The Solaris operating system provides a facility for stopping system services (K
scripts in the various run level directories like /etc/rc3.d). All of the other UNIX
platforms use a shutdown script that can be modified to call a Content Manager
OnDemand shutdown script. The most important aspect of the shutdown script is
the order in which services are stopped. The recommended order is:
arsjesd
arsload
arssockd
database
A sample shutdown script is shown in Example 2-1. Note that this script only
guarantees a graceful shutdown of the Content Manager OnDemand process
and DB2 database. The arsload and arsjesd programs do not have a
command-line option to stop the process and therefore must be terminated with
the UNIX kill command. You should verify that files are not being downloaded
(arsjesd) or ingested (arsload) when you shut down Content Manager
OnDemand and DB2. This can be done in a shell script, but it is beyond our
discussion here.
Windows
In a Windows environment, you can set up startup, schedule, and shutdown
programs.
Startup
Any Windows service can be started automatically by selecting Start Control
Panel Administrative Tools Services. Select the service and right-click it,
select Properties, and change Startup type on the General tab to automatic
(manual and disable are the other choices).
Scheduled
The Content Manager OnDemand Configurator program (started by selecting
Start All Programs IBM Content Manager OnDemand for Windows
Configurator) allows you to schedule three common tasks:
ApplGroup Data Maintenance (arsmaint)
System table Maintenance (arsdb)
Content Manager OnDemand Database Backup (arsdb)
You can schedule other tasks with the Windows Scheduled Task facility (by
selecting Start All Programs Accessories System Tools
Scheduled Tasks).
Shutdown
Unlike UNIX, there are no out-of-the-box automatic methods to explicitly shut
down processes when you shut down or restart a Windows server (you must use
the Windows Services tool to manually stop services), but Windows will attempt
to gracefully shut down services. It is possible to write batch files (using the net
start and net stop commands) or an application (in C or Visual Basic) to start
and stop services.
2.6.5 Printing
Test printing documents to local printers and to host printers. Use the Content
Manager OnDemand Administration Client to add and authorize server printers.
In general, the most important measure for load testing is time to load. Many
Content Manager OnDemand implementations only load data off-hours during a
so called load window. At some point, the amount of data to be loaded will
exceed the time available for the load window. Load testing will help identify this
problem before it occurs and can help evaluate alternatives, such as:
Parallel loads: Multiple load jobs will theoretically increase overall efficiency
by increasing CPU utilization and I/O throughput.
Adding object servers: Multiple object servers effectively add CPU resources
and only minimally increase the I/O on the library server.
For those implementations that load data around the clock, CPU activity, memory
requirements, and I/O may be the most important considerations. In this case,
you may want to consider running the arsload process(es) at a lower priority so
that document searching and retrieval is less affected.
This type of testing is especially valuable in terms of tuning the database and
operating system parameters for optimal performance. The Content Manager
OnDemand Guide, SG24-6915, provides an overview of several DB2 parameters
that can easily be adjusted to improve response time (for example, buffer pool
size) and many more IBM Redbooks publications address DB2 tuning at a
deeper technical level. A search for “DB2 tuning” at the IBM Redbooks site:
http://www.redbooks.ibm.com/
came back with 97 different references, some of which are product specific but
many that are more generic in nature. Searching for “aix tuning” resulted in 103
references, so there is an abundance of information available to help you in this
task.
See 5.2, “Application service provider case study” on page 229 for a case study
that involves performance testing.
There is classroom training available from IBM for Content Manager OnDemand
administrators. The training path can be found at:
http://www-304.ibm.com/jct03001c/services/learning/ites.wss/us/en?pageT
ype=page&c=a0000419
User training is not available from IBM, primarily because the administrator
should be able to explain the client to the users in a very short period of time. The
client was developed to be as intuitive as possible and that, combined with
extensive online help, makes for a short learning curve. Users cannot cause loss
of data, but they can cause performance problems if they are not aware of the
implications of their actions (for example, wildcard searches, text searches, and
searching without specifying a date).
Tip: Train users no more than one week prior to when they begin using the
system.
There are other options to the arsmaint program that can be used to set cache
file system thresholds, validate cache storage, migrate metadata, expire
imported metadata, and generate reports on cache file systems.
Database and TSM backups may also be automated as well. Refer to 2.6.3,
“Startup and shutdown processing” on page 61 (Scheduled) for examples of
database backups on the UNIX platform. Off-line database backups are slightly
more complex (the database must be shut down), but the process can be
automated with a shell script that is scheduled as a cron job.
Refer to the Tivoli Storage Manager documentation for more information about
managing client sessions.
UNIX
Table 2-3 shows some of the common UNIX commands that can help you
monitor the library/object server or help troubleshoot problems. Note that some
commands are platform specific. In addition to these commands, there are a
multitude of third-party software products whose sole purpose is to simplify
system and performance monitoring.
Windows
You can use Performance Monitor and Task Manager to monitor your Windows
environment.
Performance Monitor
For Windows servers, Performance Monitor is the tool most often used to monitor
server performance. It can be opened by navigating to the performance icon in
the administrative tools folder in the control panel, from the Start menu or by
typing perfmon.msc in the run box. Performance Monitor performs data collection
and analysis. Performance Monitor uses objects and counters to associate
statistical information with monitored components. For Content Manager
OnDemand server analysis, we recommend that you collect information about
the following objects:
System
Processor
Memory
Logical disk
Task Manager
Task Manager is another tool that provides information about programs and
processes running on your computer. It displays the most commonly used
performance measures for processes (CPU and memory usage), computer
performance (CPU and page file usage), and networking (adapter network
utilization). There are four tabs in the Windows Task Manager window:
The Applications tab shows the status of the programs running on your
computer.
The Processes tab shows information about the processes running on your
computer.
The Performance tab displays a dynamic overview of your computer's
performance.
The Networking tab displays a graphical representation of network activity.
OnDemand for i5/OS is an excellent archival and retrieval solution for businesses
with few users and for businesses with thousands of users. To have a successful
implementation with satisfied users, it is important to spend time up front in
planning and designing, from the initial requirements gathering to the final
deployment of OnDemand for i5/OS to the users.
In our experience, customers rarely need to upgrade the System i when they
install OnDemand, but it can be necessary in some environments. If your system
is already too busy, any new application could cause performance problems. Or if
you are already using a high percentage of disk storage, you may need to add
capacity when you start archiving files.
The chapters that we reference in this section are from the Planning and
Installation Guide.
3. Start the server for the instance. You can use the command STRTCPSVR
*ONDMD if the value for ARS_AUTOSTART_INSTANCE=1 in the ars.cfg file
is in the IFS directory /QIBM/UserData/OnDemand/instancename. Or you can
use the command CALL QRDARS/QRLMCTL *STRTCPSVRinstancename.
After you have created a storage level and a migration policy, go back to the
OnDemand Administration Client and select storage sets. You should see a
storage set with the same name as the migration policy you created (you may
need to press F5 to refresh the display).
Note: You can use the OnDemand Administration Client to display a storage
set associated with a migration policy. To update or delete a storage set, you
must use the System i Navigator OnDemand plug-in and work with the
migration policy for that storage set.
Create additional instances as needed. For example, you may want to create a
test instance called ONDTEST. Each instance will need a separate TCP/IP port
number. If you want the instance to be automatically started with the command
STRTCPSVR *ONDMD, be sure to change the ARS_AUTOSTART_INSTANCE
parameter in the ars.cfg file. Refer to Chapter 12, “Creating an Instance”, in the
reference guide.
When you have completed these steps, you should be able to log on to the
OnDemand Windows Client and view some entries in the System Log. When you
type the command WRKACTJOB SBS(QSYSWRK), you will see an entry for
your instance server job. Now you are ready to start designing your OnDemand
environment!
For example, you decide to index accounts payable checks by check number,
check date, vendor number, and vendor name. The users probably are very
pleased that they can find a check by any of these search criteria. Perhaps these
would have been the indexes they selected themselves. Or maybe they tell you
that they also need to be able to search for checks by the check amount, for
example, all checks over $500. So you go back and add check amount, and the
users know that they are part of the decision-making process.
As another example, you may have a list of fixed assets or a trial balance report
or some other type of management report. You define this report into OnDemand
and use only the report date as an index. The users can view the entire report as
a single document, go to the last page to see the totals, or search for a particular
field within the report. But if you had started by asking the users how they would
like to access this report, they may have said “by total” or “by part number” or
another field, because they did not know how to use OnDemand to search for
information within a document. After the users have seen some demonstrations
of accessing their reports in OnDemand, they will be able to tell you how they
would like to find their reports and documents.
In the accounts payable checks example, the users prefer to search checks by
check number, check date, vendor number, or vendor name, and see the check
amount displayed in the hit list, as you can see in Figure 3-1. In this example, you
set Check Amount to be a filter instead of an index, which is the default when you
use the graphical indexer.
As another example, the users want to search by check amount, but not as a
stand-alone search. In other words, they may search for all checks over a certain
amount for a particular vendor number within a date range, In that case, Check
Amount would also be a filter. But if it would be typical for a user to search only
for a specific check amount, you would make that field an index so that an access
path could be built for that field and the search would be faster.
OnDemand has been enhanced beginning with server level 7.1.2.8 so that you
can change a field from an index to a filter or from a filter to an index after the
application group has been created and reports have been archived. So if you
make the wrong choice, you can change it later.
3.5.3 Retention
How long and where do you want to keep your reports? If all your reports will be
kept in the same location (for example, on System i disk storage) and for
approximately the same length of time, you can use a single migration policy
(storage set) for all your reports. If you plan to use a System i auxiliary storage
What about the System Log? The default is that it uses the Cache storage set,
where the data remains for 10,000 days. You can change the System Log
application group to use a migration policy you create. We suggest that you
create a policy specifically for the System Log. Be sure to use the default of
aggregation to group together all the small documents.
Remember that you cannot change the storage group that an application group
uses, but you can change the Life of Data and Indexes. So if your company
needs to change how long they keep a particular report, that is easy to do.
Remember that if you want to be able to have more than one application in an
application group, you must include an application ID field. You can also search
on the application ID field in the folder. In this example, the internal value for the
application ID for the DTLBILLS application is DTL-01, meaning version 01 of
that report. The mapped field is “Detail Patient Bills” and that is what the user
sees. See the example in Figure 3-5 on page 87.
Some businesses have reports that do not need to be divided into separate
documents. For example, you have several monthly payroll reports that you want
to access in a single folder. Users open the PRREPORTS folder and search for
all reports created during the last month. From the hit list, you can open each
report in its entirety. See Figure 3-6.
Naming your applications and application groups is a very important part of the
design process. We always use the output queue monitor program to automate
loading reports into OnDemand. When you use the STRMONOND command to
monitor an output queue, each spooled file is checked to see which application
and application group to use to load the report. The command looks for a match
in one of the attributes of the spooled file: name, user data, form type, Job Name,
user defined data, or user defined option. Typically the spooled file has a unique
value for one of these attributes. For example, the accounts payable checks may
have APCHECK as the user data attribute, so you name the application and
application group to APCHECK. That way you do not have to change your
business application software to match OnDemand. For application groups that
contain multiple applications, you probably need to change at least one of the
spooled file attributes so that you can match both the application group and the
application names.
If the users who will access OnDemand already have i5/OS user profiles, then
you probably want to let them use the same ID and password. That way, when
you change your password in one place (OnDemand or i5/OS), it is also changed
in the other place. Remember that every OnDemand user must be added
individually; you cannot just allow all users or *PUBLIC. Typically you add users
through the OnDemand Administration Client. If you have many users to add, you
can write a query and a Control Language (CL) program to automatically add
selected users into OnDemand. You can find a program sample in the publication
OnDemand for i5/OS News and Tips from the 2005 Bulletins. Go to the
OnDemand Support Web site and search the knowledge base for bulletins:
http://www.ibm.com/software/data/ondemand/400/support
The default environment is that every OnDemand user must also have an i5/OS
user profile and password. To change this default, edit the IFS stream file
/QIBM/UserData/OnDemand/CONFIG/ARS.INI. Change the value for
SRVR_FLAGS_SECURITY_EXIT to 0 if you do not want to require i5/OS user
profiles for OnDemand users.
If you do not need to use query restrictions to limit users to specific documents
within reports, then we recommend that you give Access or Logical Views
permission to *PUBLIC for all application groups, then grant permissions to
folders. With this method, you only need to manage permissions in folders. For
example, you add 20 payroll reports to OnDemand, and only the payroll
department should see these reports, but each user should be able to view all
documents within each report. Create a user group called PAYROLL and add
individual users to that group. Give Logical Views permission to *PUBLIC for
each payroll application group, as shown in Figure 3-10. Then in each payroll
folder, give Access permission only to the PAYROLL group, so only those users
can access the documents. See Figure 3-11 on page 92.
Logical Views permission within an application group allows users to make some
changes to the appearance of a document they are viewing (for example,
background color or zoom) and save those changes. If you do not want the users
to save these changes, give them Access permission instead of Logical Views
permission.
When a new person is hired into the payroll department, you can add the user ID
into OnDemand and then just add the user to the PAYROLL user group. The user
is automatically authorized to all the folders used by the PAYROLL group.
You may need to restrict users or user groups so that they can access only
certain documents within an application group. You can provide this level of
security for your reports when you use query restrictions to limit access to
specific index values. For example, you may have a report that OnDemand
divides into separate documents based on a change in the value of department
number (dept), which is one of the search fields. The accounting department can
You can assign different user types based on job function within OnDemand, as
shown in Figure 3-13.
We suggest one way of assigning authorities and permissions for the four user
types, as shown in Table 3-1.
You may not need to use DAF with any of your reports, but if you do, it is better to
plan ahead. You will need to create a field in the application group and in the
folder to use as the status or audit field that can be modified. Beginning with
server level 7.1.2.8, you can add fields to existing application groups, but not to
folders. We recommend deciding whether you need to use this feature before
setting up a definition for a report. To learn more about Document Audit Facility,
refer to Chapter 15, “Did You Know?”, in Content Manager OnDemand Guide,
SG24-6915.
Use the generic indexer for scanned documents and PC files. You can use Kofax
Ascent Capture to scan, index, and release documents to an Integrated File
System (IFS) directory on your System i server. Submit the qshell command
arsload to monitor the directory, or use the command STRMONOND. For details
on how to set up a scanning environment, refer to the Kofax Ascent Capture
Release Script Guide, SC09-7602. You can find the document listed under
“Other valuable resources” on the OnDemand support Web site:
http://www.ibm.com/software/data/ondemand/400/support.html
You can use the OnDemand Toolbox to index and archive PC files such as
spreadsheets and documents. To discover more about this software, refer to
Chapter 15, “Did You Know?”, in Content Manager OnDemand Guide,
SG24-6915.
If you want to load a PDF file as a single document, you can use the OnDemand
Toolbox or Kofax Ascent Capture. If you need to divide the PDF file into multiple
documents based on a change in an index value, use the PDF Indexer so that
you can graphically mark the locations of the indexes in the file. As we discussed
in “Data Type definition for viewing PDF files” on page 89, you can define a PDF
application as data type PDF or User Defined. In either case, you can use the
PDF Indexer to separate the file into individually retrievable documents and
extract index fields.
You can use the Report Wizard for files using the OS/400 or PDF Indexer (if the
data type is PDF). For scanned documents and PC files (including PDF files you
set up as User Defined data type), you need to create application groups,
applications, and folders in separate steps.
For example, a bank may have many branches and each branch has its own
application within an application group. The application group is named STMTS,
and the applications include a 3-character abbreviation for the branch, such as
RALSTMTS, APXSTMTS, and CARSTMTS. The Job Name that creates the
spooled file is always STMTS and the User Data attribute is the name of the
branch (such as RALEIGH, APEX, and CARY). Write an exit program called
STMTS that changes the application name based on the values for Job Name
and the user data. Be sure that you compile the program into a library that is in
the library list of the output queue monitor job.
You can also write and use an Integrated Language Environment® (ILE) output
queue monitor exit program if you create a data area called QRLMMONQ in
either the QUSRRDARS library or your OnDemand instance library. If you create
the data area in QUSRRDARS, all ILE monitor exits for all instances will be called
if they are found in the monitor job library list. If you create the data area in your
instance library, only ILE monitor exits for that instance will be called if they are
found in the monitor job library list. Create the data area using this command:
CRTDTAARA DTAARA(library-name/QRLMMONQ) TYPE(*CHAR) LEN(100)
Postprocessor program
If you want to modify the index records before OnDemand loads them into the
database, you might want to use a postprocessor program. As an example, use
Stream EDitor (SED) to write a UNIX shell script for a report that use account
number 99999 to indicate the totals page, with no account name. You can search
Include this line in a SED script and refer to it in the postprocessor parameters in
the application.
In many cases, you can make simple changes to index values without any
special programming. Go to the Load information tab of an application to remove
special characters from index values before they are loaded into OnDemand. For
example, you can remove embedded dashes from a social security number or
remove trailing spaces from a string field you have defined as a variable length
field.
In this section, we discuss the following application setup and verification tasks:
Report setup
Permissions setup
Load, retrieve, and print verification
User acceptance
As an example for a report setup, let us assume that you want to start archiving
your accounts payable checks. You have determined that the checks should be
kept in System i disk storage for 10 years, and they should be accessed only by
the accounting group. You have already created a migration policy called
Locate a sample spooled file of the accounts payable checks. Talk with the user
who created the spooled file to discover if you can hold the file so you can archive
it into OnDemand, or if you can change the spooled file attributes to SAVE(*YES)
and work with the file after it is printed. The best approach is to get sample
spooled files and put them in an output queue you create just for testing with
OnDemand.
Here are some steps you can follow to set up the checks in OnDemand:
1. Use the Report Wizard in the OnDemand Administration Client to create an
application group, application, and folder. Follow these guidelines:
– The first time you use the Report Wizard and select a sample spooled file,
choose the location for your sample files.
The default directory to hold these files is C:\Program
Files\IBM\OnDemand32. We recommend creating your own directory, for
example, C:\Documents and Settings\Callen\My Documents\OnDemand
Reports. If you ever need to un-install and re-install the OnDemand
Administration Client, this directory will not be affected. After you
download a spooled file to your new directory, this directory becomes the
default for your sample files.
– Create an application ID field so that you can add other applications to the
application group or keep track of different versions of the same
application.
For example, if the location of the index fields in the spooled file changes,
you need a new version of the application and, therefore, an application ID
field. If the accounts payable checks is the only application within the
application group, you can use version as the name of the field.
– Be sure to make one of your fields a segment date field, as shown in
Figure 3-16.
Chapter 3. IBM Content Manager OnDemand for i5/OS implementation guidelines 101
If there is no date field on the report, then use today’s date (the date the
report is loaded) so the users can search for a document by a date range,
which improves performance. In this case, select any character string as a
date, just so the Wizard creates a date field in the application group. Then
after you finish using the Wizard, update the application. Remove the
index and field parameters for the date in the indexer parameters and
insert a default value of t in the Load Information tab as shown in
Figure 3-17.
– Use capital letters and no spaces for the names of the application group
and application.
When you automate report loading, you use an output queue monitor to
archive spooled files. The monitor looks for a match in one of the spooled
file attributes, so it knows which application and application group to use
for that file. Most spooled file attributes are upper case, and they need to
match the OnDemand names, which are case sensitive. For example, the
2. Update the application group that you just created with the Wizard. Modify the
storage management if necessary. The defaults are 90 days in Cache and a
value of 2555 days (seven years) for Life of Data and Indexes. We suggest
zero days in Cache if the first storage level is a disk pool. If optical storage is
the first level, you may want to keep the data in Cache for a while for faster
access. Change the Life of Data and Indexes if you want to keep the reports
and indexes for more than or less than the default of seven years.
Chapter 3. IBM Content Manager OnDemand for i5/OS implementation guidelines 103
Note: The default value of 2555 days represents seven years of 365 days
each. If you have legal requirements to keep your data for seven years, a
value of 2557 days guarantees that your data does not expire before seven
years, which allows you to handle the situation where there are two leap
years during the seven years.
You can also add logical view fields so that a user can move or hold columns
in a report and do more complex searches within a report. Mark the page
header, field header, and validation string from the Logical View Fields tab,
then add a default view from the Logical Views tab, as you can see in
Figure 3-19. You can read more about logical views in the Quickstart Guide,
which is listed under Related Resources at the support Web site:
http://www.ibm.com/software/data/ondemand/400/support.html
You can find more information in the white paper Create customized views for
line data reports. You can find this publication at the Web site:
http://www.ibm.com/developerworks/db2/library/techarticle/dm-0607wag
ner/
Chapter 3. IBM Content Manager OnDemand for i5/OS implementation guidelines 105
6. Update the folder if desired. You can change a folder field name, but not the
data type. You can also change the default date search range (the default is
the last 60 days), change the order of fields in the query and hit lists, grant
permissions, and other tasks. Or you can leave the defaults as they are, and
change the folder later if necessary when you work with the users.
What if you need to add a new application to an application group you have
already created? First add a value for the application ID field in the application
group. Then, from the Administration Client, create a new application in that
application group.
What if you need to create three application groups and join all of them in a
single folder? It still may be easier for you to use the Report Wizard to create
each of them, then delete the two folders you do not need. Add the other two
application groups to the remaining folder and map their fields to the folder fields.
If you have several different applications within an application group, they are all
included in the folder for the application group. If you need to restrict user access
to some of the applications, you can create a separate folder that contains the
application group but does not include all the applications. Be sure then not to
give those users access to the folder that contains all the applications for the
application group.
The spooled file will remain in its output queue and you will get a message that
the job ended normally or abnormally.
If the spooled file does not need to remain in its output queue, you may find it
easier to create a test output queue and start an OnDemand monitor program
over it. That way you can move spooled files to that queue whenever you want to
test archiving them. As an example, create an output queue called ONDTEST in
library QUSRSYS. In the STRMONOND command, match the application group
and application names to the appropriate parameters. If you plan to have a single
application for each application group, and the name will be found in the User
Data spooled file attribute, you can start a monitor with the command:
STRMONOND OUTQ(ONDTEST) APPGRPSRC(*USERDATA)
You can see the MONOUTQ job running in the QSYSWRK subsystem. The
monitor program uses the default instance QUSROND unless you press F10
when you issue the command and change the instance parameter. Also, the
default error and processed output queues will be used unless you change them.
If a spooled file loads successfully, it will be moved to the ONDPROC output
queue in library QUSRRDARS and there will be a message in the System Log
(message number 87). If the report fails to load, it will be moved to the ONDERR
output queue in library QUSRRDARS. If it fails because there is no match for the
application group or application name, the spooled file will be in RDY (ready)
status and there will be no entry in the System Log. If it fails because of a
problem with the application definition, it will be in HLD (held) status and there
will be a message in the System Log (message number 88). In our experience,
the most common error message is that the date format is incorrect. If you use
the Report Wizard and the segment date field is in mm/dd/yy format (with or
without separator characters), the format will be automatically inserted into the
format field on the Load Information panel for the application. But if the date
format is not recognized, you must insert the correct format manually.
Chapter 3. IBM Content Manager OnDemand for i5/OS implementation guidelines 107
For example, if the date is in the format mm/dd/yyyy, select the format
%m/%d/%Y as shown in Figure 3-20.
If you view the message in the System Log and still do not know why the report
failed to load, look at the .ind file that OnDemand created. From a 5250 session,
issue the command WRKLNK / and page down in the root directory until you see
the work files: an .ind file that contains the index values the indexer program
found, an .out file that contains the compressed data file, and an .res file that
contains AFP resources if the application is data type AFP. If you have created a
home directory for your user profile, you will find the work files in that directory.
Sometimes it is helpful to look at the .ind file to see the index values (if any) that
OnDemand was able to extract from your sample spooled file. You may find that
the locations of the triggers and fields change on some of the pages at the end of
the report, and you did not see these pages when you worked with the Report
Wizard.
Maybe the file loaded successfully, but it did not archive the way you expected.
For example, the customer name field sometimes contains blanks. You look at
the spooled file again and determine that this is because you forgot to change
the record range values for the group trigger that is used to find that field. You
know how to change the application, but you need to delete the archived report
so you will not have bad data stored. Look in the System Log for message
number 87 for that file to get the Load ID. Or, from the hit list in the OnDemand
Windows Client, right-click a document to see its properties. You will see a partial
Load ID, which you can highlight and copy. Issue the RMVRPTOND command
and enter the Load ID as the Report ID, or the partial Load ID followed by -0-0, as
shown here:
RMVRPTOND APPGRP(APCHECKS) RPTID('5025-3-0-230FAA-0-0')
You may want to install the OnDemand Windows Client on the users’ PCs, create
a User’s Guide for them to follow, and let them work with OnDemand for a day or
two. Then meet with them again to discover if they would like for you to make
some changes to their reports. Remember, they are the people who will use the
reports, and you want them to be satisfied.
If the users will access OnDemand through a browser, you may need to install
and configure software on their PCs. Refer to the OnDemand for i5/OS support
Web site for more information about software required for browser access. Then
show them how to access their reports using the browser.
Chapter 3. IBM Content Manager OnDemand for i5/OS implementation guidelines 109
3.7 Functional testing
In this section, we discuss functional testing for the following areas:
Automatically loading reports
Storage management
Start up and shut down processing
Retrieval processing
Printing
Custom scripts
Backup and recovery
If you are using TSM as a storage manager for OnDemand, log on to the TSM
Administrative Client Command Line and use the query occupancy command to
verify that objects are being written to the TSM server. For more details and
examples of this command, refer to the OnDemand TSM documentation on the
OnDemand support Web site.
or
CALL QRDARS/QRLMCTL *ENDTCPSVRinstancename
3.7.5 Printing
Test printing documents to local printers and to server printers. Use the
Administration Client to add and authorize server printers.
Chapter 3. IBM Content Manager OnDemand for i5/OS implementation guidelines 111
3.7.6 Custom scripts
If you use any monitor output exit programs or postprocessor programs, be sure
to test them. If you use Kofax Ascent Capture to scan documents and release
them to an IFS directory that is monitored by OnDemand, be sure to test the
entire process.
Testing OnDemand for i5/OS is usually done informally. Users access their
reports and are asked to report problems with retrieval time. In our experience,
accessing information online is so superior to looking for data offline that we do
not hear any complaints. But if you have procedures and guidelines for new
software in your business, you may need to test the performance of OnDemand.
In this section, we discuss the following performance testing and considerations:
Develop test cases based on requirements.
Load testing.
Retrieval testing.
Tuning considerations based on test results.
Stop and re-start the server and see if the logon time is faster.
If you have hundreds of OnDemand users, you may need to change the number
of database subservers that are used to handle database requests. Edit the
ars.cfg file and change the value for ARS_NUM_DBSRVR.
Chapter 3. IBM Content Manager OnDemand for i5/OS implementation guidelines 113
OnDemand jobs run by default at priority 50 in the QSYSWRK subsystem. If you
prefer to use a different subsystem or priority, change the job description
QOND400 in library QRDARS.
3.9 Training
In this section, we discuss the following training:
Administrator training
User training
Who will provide this training? IBM no longer offers OnDemand for i5/OS
classroom education, but several Business Partners offer classroom or on-site
education. You also need to keep current with new features of OnDemand and
learn tips and techniques for administering and using the product. Subscribe to
the OnDemand for i5/OS Bulletin, distributed from IBM every two to three
months. Send a note to Darrell Bryant ([email protected]) and ask him to add
your name to the bulletin distribution. Also request a list of partners. After you
have learned the basics of OnDemand, go back and review bulletins from
previous years. Use the search word bulletin on the IBM Support Web site to see
a list of bulletin summaries from prior years that you can download:
http://www.ibm.com/software/data/ondemand/400/support.html
Note: Train the users no more than a week before they start using the system.
You do not want them to forget everything before they begin using OnDemand
in production!
Chapter 3. IBM Content Manager OnDemand for i5/OS implementation guidelines 115
After you have installed and tailored your OnDemand for i5/OS environment, set
up and tested some report definitions, and worked with and trained the users, it is
time to put the system into production. Make sure that you complete these steps:
Modify your business applications to send spooled files to output queues that
are monitored by OnDemand.
Install and configure the OnDemand Windows Client or configure the browser
interface for users.
Grant permissions for users and user groups to the appropriate application
groups and folders.
You may also want to run programs that monitor performance on your system
and review how the system is being utilized by OnDemand. But the best way to
monitor this type of performance is to listen to user comments and to make sure
that OnDemand is able to load spooled files and documents in an acceptable
amount of time.
Chapter 3. IBM Content Manager OnDemand for i5/OS implementation guidelines 117
for each folder is no access, so users do not see new folders in the list until we
grant permissions to them.
Document retrieval performance is better if you have only one or just a few
application groups in a folder instead of grouping multiple application groups
together. However, if application group name is one of the search fields and
the users always select a single application group, retrieval performance
should be fine. If the users do not want to see a long list of folders, you can
mark rarely used folders as secondary folders. Or the users can create filters
within the OnDemand Windows Client to show only selected folders on the
list.
For indexes that can vary considerably in length (such as employee name,
customer name, and vendor name), we recommend defining them as variable
length string fields. Remove trailing blanks for the field in the application and
make sure that each user sets the option in the OnDemand Windows Client to
auto size the document list column.
When you use the graphical indexer to define fields for the application, the
default parameter is BREAK=YES. Change the parameter to BREAK=NO for
fields that should not cause a break to a new document. Often we have only
one field that we define as BREAK=YES.
When you add user groups, we suggest you start with a Group ID (GID) of
80100, then add groups in GID increments of 100. With this method, you can
insert groups later if necessary for complex permission setups. Remember
that if a user is in multiple groups and each group is specifically authorized to
an application group or folder, the permissions of the group with the lowest
GID is used.
We recommend to order the search fields in a folder based on the way users
are most likely to search for documents. When you open a folder, the cursor is
positioned at the first search field, so this field should be the one that is most
commonly used. For the date field, we suggest defining a default date range
that the users do not need to modify. In addition, many users prefer to have
the date as the last field in the search criteria and the first field in the
document list.
Create a home directory for the user profile that runs the output queue
monitors. If a load fails, you can easily find the .ind and .out work files in that
directory.
When you integrate with Kofax Ascent Capture to scan, index, and archive
documents, we recommend using the arsload command for archiving
documents in an IFS directory instead of the STRMONOND command. The
arsload command will not try to archive the .ind and .out files until the .ard file
associated with them is sent from the PC to the IFS directory. The
STRMONOND command tries to load the files as soon as an .ind file is
Chapter 3. IBM Content Manager OnDemand for i5/OS implementation guidelines 119
– In the Storage Management tab in the Life of Data and Indexes group,
carefully consider what to use for the Expire in n Days value. We initially
would choose a very large value for this, then realized that smaller values
may be appropriate. Originally, in order to use the RMVRPTOND
command, you needed to know the Load ID for each set of documents that
were loaded. This value was only shown in the System Log 87 message
and there was no other way to find the value. A change was recently made
to the client so that from the hit list or when viewing a document, you can
right-click and display the properties of the document. One of the
properties is the partial Load ID. You can change this partial Load ID into
the Load ID that is needed by RMVRPTOND by appending onto it the
value -0-0. For example, if the partial Load ID is 12072-2-0-12FAA, then
the complete Load ID would be 12072-2-0-12FAA-0-0. Some of the things
to consider when selecting a value for the life of data and indexes are:
• The System Log contains documents that show what changes were
made to applications, application groups, folders, users, groups, and
storage sets and who made the changes. A report is also produced
whenever one of these objects is deleted. The log provides a good
audit trail of the changes and if you later encounter problems, you can
see what changes were made and who made them. You can then
contact the person who made the change to discover why they made
the change and try to resolve the problem with their help.
• The System Log may also be used to gather statistics about
OnDemand usage. You need to keep data in the System Log long
enough to provide meaningful information.
• The System Log may also contain information needed for auditing
purposes. Application groups may specify that the values for certain
fields be logged in the System Log. For example, you may want to
know who is looking at payroll information or checks and which ones
they are looking at. If this is the case, you would need to keep the
System Log for as long as you keep the documents themselves.
The basic factors that need to be examined are DASD and CPU.
4.2.1 DASD
Questions to be asked related to DASD are:
How much DASD is required for the database. This includes:
– Content Manager OnDemand system tables
– Content Manager OnDemand Index tables
– The DB2 index tables for both the Content Manager OnDemand System
and Index tables.
How much online archive storage is required?
4.2.2 CPU
Depending on system performance and high availability requirements, a Content
Manager OnDemand for z/OS system may run on one or more LPARS located
on one or more systems. The number of CPUs assigned to each of the LPARs
will be based on the processing and response time requirements for each LPAR.
Chapter 4. IBM Content Manager OnDemand for z/OS implementation guidelines 123
In this section, we discuss the design, installation, configuration, and
implementation related tasks summarized below:
Architecture
Scalability
Prerequisites and setup
Installation and configuration summary
Creation of a Content Manager OnDemand Instance
Configure storage management
Verify the installation
Implement best practices
Refer to the following manuals, as they provide details about these different
tasks: IBM Content Manager OnDemand for z/OS: Configuration Guide,
GC27–1373 and IBM Content Manager OnDemand for z/OS: Introduction and
Planning Guide, GC27–1438.
4.3.1 Architecture
Before beginning your installation and configuration, it is important to understand
the general architecture of the Content Manager OnDemand server. This helps
you determine the type of configuration that meets your business requirements.
Temporary storage
Cache storage
DB2
TCP/IP
Network
Client(s)
Temporary storage
Cache storage
Archive storage
TSM-OAM
Figure 4-1 Content Manager OnDemand library server and object server
Data is loaded and retrieved from the Content Manager OnDemand server using
TCP/IP. This allows for the library server and object server to be physically
separate as long as a high speed TCP/IP network links them together. This
linkage makes the library server and object server appear as a single server to
the clients.
Chapter 4. IBM Content Manager OnDemand for z/OS implementation guidelines 125
Figure 4-2 illustrates the case of a library server in one LPAR and two object
servers, each of which is installed in its own LPAR.
Database Admin
Indexing
ODF
Configuration
information
Figure 4-2 An OnDemand system with one library server and multiple object servers
4.3.2 Scalability
A single Content Manager OnDemand system can be scaled from a single z/OS
system image (Figure 4-3) that performs all of the required tasks (data loading,
library storage, and object storage) to a Parallel Sysplex® complex (Figure 4-4
on page 128) on multiple systems (allowing for higher levels of performance and
availability).
Single system
Library Server
Temporary storage
Cache storage
DB2
TCP/IP
Network Object Server(s)
Temp storage (hfs/zFS)
Cache storage
Client(s) Archive (TSM/OAM/VSAM)
Load Process
Figure 4-3 A single OnDemand system with a library server and object server
architecture
Chapter 4. IBM Content Manager OnDemand for z/OS implementation guidelines 127
SocketSprayer
Dynamic VIPA IP address Load Process
Sysplex Distributor
Client(s)
LPAR LPAR
Shared
TCP/IP
Network
Figure 4-4 A Content Manager OnDemand system with parallel sysplex/multiple LPARs
In both cases, the library servers must access the same Content Manager
OnDemand DB2 database.
At a minimum, you will need a single LPAR for a standard library server and
object server:
Server requirements:
– z/OS.
– DB2 with ODBC enabled.
– UNIX System Services.
– TCP/IP.
Chapter 4. IBM Content Manager OnDemand for z/OS implementation guidelines 129
Client options and requirements:
– For Browser viewing, WebSphere® is needed on the middle tier.
– For custom Java API based implementations, the Web Enablement Kit is
needed on the middle tier.
– For custom Structured API based implementations, the Web Enablement
Kit is needed on the middle tier.
– Windows Client.
– For the 3270 client viewer, CICS is required on the server.
– For the Content Manager OnDemand Distribution Facility, CICS is required
on the server.
Refer to the following manual, as it provides minimum requirements for these
components: IBM Content Manager OnDemand for z/OS: Configuration
Guide, GC27–1373.
Custom code requirements:
– Server exits:
• Can be developed using COBOL, C, or Assembler.
• Are dynamically invoked by the Content Manager OnDemand server
(long running task/daemon).
– Servlets and J2EE applications:
• Require Java.
• Run under WebSphere Application Server or as an independent Java
application.
– Structured APIs (SAPI):
• Can be developed using COBOL or C.
• Run under TSO Batch, or CICS, or IMS™.
– Window Client extensions (two types):
• The OLE code requires C++.
• The Content Manager OnDemand Toolkit requires Visual Basic.
Chapter 4. IBM Content Manager OnDemand for z/OS implementation guidelines 131
• Storage Classes: Defines the type of object location, such as disk,
tape, or optical.
Typically OAM data is initially stored on DASD (in DB2 tables), and later,
when access to the data is minimal, the objects are migrated to secondary
media, usually optical or tape. Regardless of the storage location, user
access is identical, with the only difference being the document retrieval
times, which would differ based on the storage device type. In general,
OAM provides the fastest access method, as the data is stored in online
DB2 tables. OAM is a strict z/OS implementation and does not function on
any other platform. Historically, OAM has been regarded as the best and
most simple archive alternative.
Figure 4-5 illustrates the general Content Manager OnDemand OAM
architecture. The object storage and retrieval hierarchy is shown in the
lower left hand corner. In the lower right hand side, the OAM data
management DB2 tables are illustrated. These are the tables that OAM
uses to manage the access to the OAM stored objects.
Chapter 4. IBM Content Manager OnDemand for z/OS implementation guidelines 133
CMOD Object Library
Server Server CMOD
Windows Server
Client TSM Client API
TSM Client
For TSM for z/OS implementation and setup requirements, see IBM Tivoli
Storage Manager for z/OS Quick Start, GC32-0777.
– File Storage Systems
The three File Storage Systems available for use on z/OS are:
• Virtual Storage Access Method (VSAM).
• Hierarchical File System (HFS).
• z/OS File System (zFS).
VSAM
VSAM is an access method used to access MVS sequential datasets.
Content Manager OnDemand archive data stored to VSAM can be backed
up using DFSMS. The main advantage of using VSAM as an archival
method is that it is part of z/OS (it comes with the system). The main
disadvantage is that each storage object is stored in a single VSAM file
and will thus consume a directory allocation. In a practical sense, VSAM is
rarely used (due to the directory overhead).
zFS
zFS is conceptually identical to the HFS in that it emulates the UNIX file
system. zFS’s usage within Content Manager OnDemand is similar to that
of the HFS and its use is equivalent to that of the HFS from a Content
Manager OnDemand system perspective. The main difference between
both systems is that the zFS was developed to take advantage of the z/OS
operating system. It thus provides improved performance (especially for
large files), reliability, and better monitoring and diagnostic facilities.
Chapter 4. IBM Content Manager OnDemand for z/OS implementation guidelines 135
Define and set up operating system groups and users
When installing the product software, you will need to set up the following IDs
and groups:
A security user ID that will be the used throughout the product install process,
for all the various product components. This ID will require an OMVS
Segment assigned to it. The recommended name is ODADMIN.
A server owning ID that will be assigned as the user for each of the Content
Manager OnDemand started tasks. The recommended name for this owning
ID is ARSSERVR.
A security owning group profile. You will need to ensure that these IDs have
been added to the security profile group for Content Manager OnDemand.
The recommended name for this group is ARS.
You will also need to ensure, that for the HFS files, the ARS security group
profile is provided ALTER access.
The ARSSERVR ID will need to be set as the owner of the DB2 instance. This
ID will need the appropriate DB2 access, such as DBADM or SYSADM, so
you will be able to create the storage group, database, tablespaces, and
others. Your systems database administrator (DBA) can adjust the access as
required for the ARSSERVR ID, after the installation is completed.
Set and export the STEPLIB environment variable to the location of the latest
Content Manager OnDemand code. This can be done in /etc/profile or in a.profile
that gets executed when the user ID requiring this STEPLIB logs on.
Check with your system programmer to determine the best way to implement this
requirement.
Note: These STC names are the supplied default names. You can use unique
names based on your standards.
You will need to ensure that security profiles are created for each of these STCs
with ARSSERVR assigned as the owning user ID and ARS as the owning group
for each.
The following manual provides details about these HFS files and their suggested
sizings: IBM Content Manager OnDemand for z/OS: Configuration Guide,
GC27–1373.
ACIF is a separate program product that is delivered with the Content Manager
OnDemand software.
See Program Directory for Enhanced AFP Conversion and Indexing Facility for
use with Content Manager OnDemand, GI10–0211 for installation instructions.
Chapter 4. IBM Content Manager OnDemand for z/OS implementation guidelines 137
Create a working directory for a copy of the server files. Create a symbolic link
from /usr/lpp/ars/config to this working directory.
Copy the ars.cache, ars.cfg, ars.ini, and arsprtjcl files from the Content Manager
OnDemand product install directory ....../samples into the working directory.
Table 4-1 lists these files and the purpose of the files.
Some important aspects of each of these configuration files are listed below.
More details can be found in the IBM Content Manager OnDemand for z/OS:
Configuration Guide, GC27–1373.
ars.ini
The ars.ini (Figure 4-7 on page 139) file contains information about the Content
Manager OnDemand instances. An instance is composed of a DB2 database,
one library server, and one or more object servers. The stanza name identifies
the Content Manager OnDemand instance:
Note: The ars.ini file must be in code page 1047. That is, the delimiters in the
header line for the instances must be X'AD' (left bracket character) and X'BD'
(right bracket character).
Y@SRV@_ARCHIVE
HOST=ondemand.ibm.com
PROTOCOL=2
PORT=0
DIRECTORY=/ars
SRVR_INSTANCE=ARSDBASE
SRVR_INSTANCE_OWNER=ARSSERVR
SRVR_OD_CFG=/odsars/usr/lpp/ars/config/ars.cfg
SRVR_SM_CFG=/odsars/usr/lpp/ars/config/ars.cache
SRVR_FLAGS_DOCUMENT_EXIT=1
SRVR_FLAGS_FOLDER_APPLGRP_EXIT=1
SRVR_FLAGS_SECURITY_EXIT=1
SRVR_FLAGS_SQL_QUERY_EXIT=1
Figure 4-7 Sample ars.ini file
Chapter 4. IBM Content Manager OnDemand for z/OS implementation guidelines 139
ars.cfg
The ars.cfg file (Figure 4-8) contains information about the licenses, servers,
temp storage, storage manager requirements, and DB2 and OAM threads. There
are additional settings that can be included in the ars.cfg file as it relates to
performance. Refer to the 4.3.8, “Implementation best practices” on page 144 for
more information.
########################
# OnDemand Parameters #
########################
ARS_NUM_LICENSE=10000
ARS_LANGUAGE=ENG
ARS_SRVR=
ARS_LOCAL_SRVR=
ARS_NUM_OBSRVR=10
ARS_TMP=/tmp
ARS_PRINT_PATH=/tmp
TZ=CST6CDT
ARSMVS_DEBUG_SM=1
ARS_DISABLE_ARSLOG=1
########################
# Database Parameters #
########################
DB2_ENGINE=DB2ars.cache
#####################
# OAM Parameters #
#####################
ARS_NUM_OAMSRVR=10
ARS_OAM_DB2SSID=DB1M
ARS_OAM_PLAN=CBRIDBS
ARSMVS_BPOOL_TSPACE=BP1
ARSMVS_BPOOL_INDEX=BP2
ARSMVS_NOMAXROWS_PRIQTY=72000
ARSMVS_NOMAXROWS_SECQTY=36000
ARSMVS_NOMAXROWS_INDEX_PRIQTY=36000
ARSMVS_NOMAXROWS_INDEX_SECQTY=18000
ARSMVS_MAXROWS_PRIQTY=72000
ARSMVS_MAXROWS_SECQTY=36000
ARSMVS_MAXROWS_INDEX_PRIQTY=38000
ARSMVS_MAXROWS_INDEX_SECQTY=18000
Figure 4-8 Sample ars.cfg file
Important: After you define the base cache storage file system to Content
Manager OnDemand, you must not add or remove it from Content Manager
OnDemand or change it in any way; otherwise, the system may fail.
Figure 4-9 illustrates an ars.cache example that includes the definitions for cache
storage:
/ars/cache
/ars/more/cache
#
# NOTES:
# 1) The first filesystem defined in this file can NEVER change.
# 2) Always add new filesystems to the buttom of the list.
Figure 4-9 Sample ars.cache file
cli.ini
The cli.ini file (Figure 4-10) contains the configuration information for ODBC that
ARSSOCKD uses to connect to the correct DB2 subsystem. This value could be
already set within your installation by a DSNAOINI DD statement in JCL or as a
HFS file, as in the example in this book.
YCOMMON
MVSDEFAULTSSID=DB1M
PLANNAME=DSNACL1
Figure 4-10 Sample cli.ini file
See DB2 Universal Database for OS/390: ODBC Guide and Reference,
SC26–9005 or DB2 for OS/390: ODBC Guide, SC26–9941 for more information
about configuring the cli.ini file.
Chapter 4. IBM Content Manager OnDemand for z/OS implementation guidelines 141
4.3.5 Creation of a Content Manager OnDemand instance
Before you begin to define reports to Content Manager OnDemand, load data on
the system, or use the system, you must create the Content Manager
OnDemand database and initialize the system tables. The database resides on
the Content Manager OnDemand library server.
Creating the Content Manager OnDemand instance involves the following tasks:
Creating the storage group
Creating the Content Manager OnDemand database
Creating a tablespace for the Content Manager OnDemand system tables
Creating the Content Manager OnDemand system tables
Initializing the Content Manager OnDemand System Log component
Initializing the Content Manager OnDemand system migration component
You can perform the following sequence of steps to verify that the system is
installed successfully:
1. Start the Content Manager OnDemand server (ARSSOCKD).
After loading the sample report, perform the report retrieval procedure:
1. From the Windows viewer, open the folder and perform a search to obtain the
hit list.
2. Retrieve and view the document.
Chapter 4. IBM Content Manager OnDemand for z/OS implementation guidelines 143
4.3.8 Implementation best practices
This section describes the best practice recommendations for the IBM Content
Manager OnDemand for z/OS Server. Before beginning, you should ensure that
you are at the latest Content Manager OnDemand maintenance level.
You can follow these guidelines, but you should be aware that performance
tuning has to be done on a case-by-case basis, because every system has
different characteristics and usage requirements.
In a sysplex environment, each of the caches must be a shared zFS (or HFS) file
system. Each cache has its own mount point (configured as such through
BPXPRMxx). Performance can be further increased by placing each cache on a
separate volume on a separate channel.
The first cache file system is the primary cache system in that it contains the
Content Manager OnDemand control data and consequentially should never be
placed offline.
Chapter 4. IBM Content Manager OnDemand for z/OS implementation guidelines 145
Compressed object size: Determines the number of bytes in a fixed-size block
of data stored on the system. By default, Content Manager OnDemand
compresses input data into 100 KB blocks. You can specify a number from 1
to 99999. However, we recommend that you accept the default value;
specifying too small of a value can result in less optimal document
compression, while choosing too large of a value can result in less efficient
document storage and retrieval. The value of the compressed object size
must be less than or equal to the size of the storage object for the application
group to which the application belongs.
Compression: Content Manager OnDemand supports many different
compression algorithms:
– OD77 is the recommended compression algorithm.
– OD77 Light is a variant on OD77 that utilizes less CPU but achieves less
compression. However, the compression achieved is still typically greater
than that achieved by other compression methods.
– Selecting Compression Disable causes Content Manager OnDemand to
not compress data during the load process and to not compress data for
transmission over the network. This option is suitable for loading images
(for example, TIFF) or PDF files, or any files that are already compressed
and only need to be decompressed on the client after retrieval.
– Selecting Compression None is generally discouraged. This setting will
cause Content Manager OnDemand to not compress data for storage
during the load process. During the retrieval process, Content Manager
OnDemand will compress the data during transmission over the network,
and then decompress the data on the client prior to viewing.
Page-level index: This parameter is used only for large objects. It is used to
display page-level index information within the document. This allows for
easier navigation within the document. The page-level index information is not
stored in the database and therefore cannot be used to search for and
retrieve documents. Only group-level indexes can be stored in the database.
Page-level indexes are stored with the document. After retrieving a document,
the user can use the page-level indexes to move to a specific page in the
document. If the parameter is not specified during loading, the page-level
information is not displayed.
Large object: The indexing program generates a large object by dividing very
large documents into smaller parts and defining the indexing information that
is used to retrieve the documents. When your users work with large objects,
they should be able to retrieve documents more efficiently with less impact on
the network. For example, suppose that a document contains 10,000 pages;
using large object support, you divide the document into parts that contain
100 pages each. When users retrieve one of the documents, Content
Manager OnDemand sends only the first part of the document (first 100
Chapter 4. IBM Content Manager OnDemand for z/OS implementation guidelines 147
You should identify the date field that Content Manager OnDemand can use
to segment the application group index data. The segment field enables you
to search specific tables of an application group's data rather than all of the
tables.
Chapter 4. IBM Content Manager OnDemand for z/OS implementation guidelines 149
If the data source is on a remote system, it is possible to either:
– Run ARSLOAD on the remote system and directly store the data to the
specified IBM Content Manager OnDemand for z/OS (library server and
object server)
or
– Upload the data to the specified Content Manager OnDemand for z/OS
server through FTP, then run ARSLOAD on the selected Content Manager
OnDemand for z/OS system.
The -c indexer parameter should always be specified for ARSLOAD and
should be unique for each ARSLOAD process.
If ARSLOAD is running without TCP/IP, the -K parameter allows the DB2
connection to persist, potentially improving the load performance. The -K
parameter causes ARSLOAD not to detach ARSADMIN. Normally,
ARSLOAD attaches and detaches ARSADMIN several times for each file
loaded. This might improve performance by not requiring the LE enclave
associated with ARSADMIN to be constantly created or destroyed. The -K
parameter is available only with APAR PQ91055 applied.
Important: Do not specify the -K parameter if you are using any Content
Manager OnDemand for OS/390 Indexer exit routines until you verify that
the exit routines function correctly in this environment. In particular, the LE
enclave is no longer terminated between reports. This impacts exit routines
that rely on enclave termination to perform cleanup, for example, closing
files.
All file systems should be dedicated file systems mounted on their own mount
points.
Object Server
Object Server TSM
TSM 10 Mb OAM
OAM Storage HFS/ZFS
Object
HFS/ZFS VSAM
VSAM
Figure 4-12 Content Manager OnDemand data loading using ODBC versus TCP/IP
By default, ARSLOAD will use TCP/IP to communicate with the server. This
provides a great deal of flexibility with regard to where ARSLOAD is run and
under which RACF® user and group IDs it is run under. This method of
communication is advantageous when the reports to be loaded are on a separate
system from the Content Manager OnDemand library server.
It is also possible for ARSLOAD to store data directly into DB2, OAM/TSM, or
both. This method would be advantageous when:
The reports to be loaded are on the same system as the Content Manager
OnDemand database.
The TCP/IP network is already overloaded.
To enable storage without the use of TCP/IP, the following conditions must be
met:
ARSLOAD must be running with the same RACF user and group ID as the
server.
ARSLOAD must be running on the same system as the server.
Chapter 4. IBM Content Manager OnDemand for z/OS implementation guidelines 151
The -h parameter must specify the instance name of the server in the ars.ini
file and not a host name. The instance name must also be 16 characters or
less.
A DSNAOINI DD must be present.
Note: If any condition above is not met, ARSLOAD will use TCP/IP
regardless of the setting of ARSMVS_ARSADMIN_USETCPIP.
ARSLOAD can be forced to use TCP/IP even if all the above are true, by
specifying the ARSMVS_ARSADMIN_USETCPIP=1 environment variable in the
ars.cfg file.
Notes:
Depending on your retrieval patterns and system hardware configuration, it
might be advantageous not to store a duplicate set of documents in the
Content Manager OnDemand cache when using OAM given that you already
might be using OAM DASD.
Generally speaking, the 390 indexer is faster than the ACIF indexer. This
speed difference will vary and is a function of the data, the report and
document size, and whether the data is line or AFP data.
For the best overall performance, the indexer type needs to be matched to:
– The type of data to be loaded
– The input processing required prior to document storage
– The preview processing during the document viewing process
When using JCL to run the ARSLOAD program to capture reports:
– Specify the -s ddname parameter to indicate the DD statement that points
to the input report file that is being captured.
– Specify the name of a temporary file as the last parameter. The ARSLOAD
program uses the temporary file for work space during the load process.
The directory to be used by ARSLOAD for temporary files is determined in
the following order:
i. The -c option in the ARSLOAD parameters.
ii. The environment variable ARS_TMP.
iii. The environment variable TEMP.
iv. The environment variable TMP.
v. The current working directory if none of the above are specified.
If none of the parameters described below are specified, then the total amount of
space required to contain 120 percent of the specified maximum number of rows
is programatically determined. The PRIQTY of the tablespace is 50 percent of
that total. The SECQTY is set to 12.5 percent of the total.
Chapter 4. IBM Content Manager OnDemand for z/OS implementation guidelines 153
ARSMVS_MAXROWS_INDEX_SECQTY. For application groups with
maximum rows specified, this specifies the SECQTY that will be used for the
CREATE INDEX. If not specified, the value calculated from the maximum
rows will be used. This parameter is not honored unless the
ARSMVS_MAXROWS_INDEX_PRIQTY parameter is also specified.
For more information about specifying values for the above parameters, see the
DB2 Universal Database for z/OS: SQL Reference, SC18-7426.
Index creation is called once for each index that is being created on the table.
Refer to the IBM Content Manager OnDemand for z/OS and OS/390:
Configuration Guide, GC27–1373 for further information.
Installations that currently have all the Content Manager OnDemand system
tables in a single tablespace do not need to migrate their tables to multiple
tablespaces. For installations that desire to migrate, the following steps may be
used:
1. Shut down the ARSSOCKD server.
2. Back up the ARSDBASE database (or the database associated with the
server you are trying to migrate).
Installations that migrate should examine any RUNSTATS jobs they use to
ensure that the new tablespace names are used. The tablespaces associated
with each table are listed in Table 4-2.
Table 4-2 Content Manager OnDemand system tables and the associated tablespace
Table Tablespace
ARSAG ARSAGT
ARSAGFLD ARSAGFLT
ARSAGFLDALIAS ARSAGFAT
ARSAG2FOL ARSAG2FT
ARSAGPERMS ARSAGPET
ARSANN ARSANNT
ARSAPP ARSAPPT
ARSAPPUSR ARSAPPUT
ARSFOL ARSFOLT
ARSFOLFLD ARSFOLFT
ARSFOLFLDUSR ARSFOLUT
ARSFOLPERMS ARSFOLPT
ARSGROUP ARSGROUT
ARSLOAD ARSLOADT
ARSNAMEQ ARSNAMET
ARSNODE ARSNODET
ARSPRT ARSPRTT
Chapter 4. IBM Content Manager OnDemand for z/OS implementation guidelines 155
Table Tablespace
ARSPRTOPTS ARSPRTOT
ARSPRTUSR ARSPRUST
ARSRES ARSREST
ARSSEG ARSSEGT
ARSSET ARSSETT
ARSSYS ARSSYST
ARSUSER ARSUSERT
ARSUSRGRP ARSUSRGT
ARSUSRGRPID ARSUSGIT
Load IDs for the same application group can be grouped together up to the
ARS_EXPIRE_REQLIMIT value; groups must be for the same application group
though. For example, adding ARS_EXPIRE_REQLIMIT=25 (in the ars.cfg file for
the instance) will allow up to 25 Load IDs for an AG to be processed at a time.
By default, most exits are disabled unless they are specifically enabled, that is,
unless you issue the command setprog exit,add,exitname=ars.ptgn.
The system logging and the user exit logging should be turned off, unless they
are needed. This is accomplished using the System Administration Client.
There are special considerations for APKACIF exits written in COBOL. The
ARSSPVIN sample APKACIF input exit is written as a COBOL main program. In
order to prevent the Language Environment from creating and destroying the
COBOL runtime environment, each time ARSSPVIN is called, a CEEUOPT
CSECT must be assembled and link-edited with the COBOL object code.
Information about how to construct a CEEUOPT CSECT is documented in
OS/390: Language Environment for OS/390 Customization, SC28-1941.
We also recommend that you specify the ALL31(ON) option, but this option is not
required. Stack and heap storage can potentially be allocated above the line
while running with ALL31(OFF) specified.
In addition, you must be sure that the resulting module is link-edited as NOT
RE-ENTRANT and NOT REUSABLE. These link-editing conditions are required
to allow the local variables within the COBOL exit code to retain their values
across multiple invocations
4.4 Design
During this phase of the implementation, you will need to determine the report
types, security requirements, report retention requirements and how your users
will access these reports. This will help you implement a Content Manager
OnDemand archive solution in the most efficient way.
Chapter 4. IBM Content Manager OnDemand for z/OS implementation guidelines 157
4.4.1 Report selection
This section contains information that can help you plan for the reports that you
will be storing into Content Manager OnDemand. This section lists questions that
you might ask users of the reports, it provides information about the types of data
that you can store in Content Manager OnDemand, and provides information
about indexing reports.
As you are planning for the reports that you will be ingesting into Content
Manager OnDemand, it requires an understanding of how the system will be
deployed, who will use the system, how they will use it, and other user
requirements. Answers to these questions will provide information that allows you
to properly configure your Content Manager OnDemand system, including the
storage and network components, to support your applications and users.
The questions to ask when planning for reports to be stored in Content Manager
OnDemand are:
What types of print data streams will you be ingesting?
Will you require transforms to convert input data to other display data formats
(such as AFP to PDF)?
What is the logical organization of the print data stream?
– Page organization: A consistent stream of pages of transaction or ledger
data. Example: PAGE or PDOC report types.
– Logical groups of information, such as statements or policies. Example:
DOC report type.
– Data that may not have a consistent format, such as reference materials or
product literature. Example: NODX report type.
What is the volume of input to process? How many reports and are their
versions of the report?
What index values do the users need to retrieve a specific version of a report
(or a document)?
How much time is available to load reports into Content Manager
OnDemand? Daily? Weekly?
How long do you plan to maintain report data on the system?
How many concurrent, logged-on users do you anticipate on average? At
peak times?
How many active users do you anticipate?
Attention: The maximum size of the input file is dependent on the indexing
program that is being used. ACIF, the PDF Indexer, and the Generic Indexer
process files in the HFS, so are limited in size to 2 GB. The OS/390 Indexer
does not use the HFS to hold the input file, so the file size is limited only by the
source of the input file.
Once you have an understanding of how the reports will be accessed, this will
provide assistance with the indexing requirements.
Tip: We suggest that before you define any reports to Content Manager
OnDemand, that you meet with the application group that owns these reports
so that you have an understanding of the report data and how the users will be
accessing the reports.
Chapter 4. IBM Content Manager OnDemand for z/OS implementation guidelines 159
In the following check statement example (Figure 4-13), the users may:
Prefer to search by account number, check date, and tax ID, and then see the
balance amount displayed in the document list. In this case, you would make
balance amount a filter and not an index, which is the default when you use
the graphical indexer.
If the users want to search by balance amount, but not as a stand-alone
search; in other words, users may search for all balance values over a certain
amount for a particular vendor number within a date range; in this case,
balance amount would also be a filter.
If the users want to search only for a balance amount, you would make that
field an index so that an access path could be built for that field and the
search would be faster.
Note: Content Manager OnDemand has been enhanced so that you can
change a field from being defined as an index to a filter or from a filter to an
index after the application group has been created and reports have been
archived. So if you want to alter your original choice, you may do so at a later
time.
Document indexing
Document indexing is used to index reports that contain unique values, such as
an account number or a customer name. When searching and retrieving these
types of reports, Content Manager OnDemand returns a list of the items that
match the user’s query and transfers the individual items to the Content Manager
OnDemand Windows Client program for viewing and printing.
Report indexing
Report indexing allows users to search sorted report data and retrieve the first
occurrence of the value that is specified in the query. This type of reports contain
line data with sorted values on each page, such as a transaction log or general
ledger.
The OS/390 indexer can divide the report into groups of pages and generate
index data for each group of pages. The first and last index values contained in
each group of pages is stored in the database.
4.4.3 Retention
Content Manager OnDemand expects that the documents be kept by the storage
manager for an amount of time equal to the value of the Life of Data and Indexes
field. After that period of time expires, Content Manager OnDemand will delete
the document index data and expects that the storage manager will delete the
object data.
The Life of Data and Indexes field is specified on the Storage Management page
of an application group using the Content Manager OnDemand administrative
client. Content Manager OnDemand will keep index entries for the period of time
specified in that field.
Chapter 4. IBM Content Manager OnDemand for z/OS implementation guidelines 161
Historically, most customers used OAM as their storage manager for managing
the life of the objects, so OAM needs to be configured to keep the objects around
for that same period of time as defined in the Life of Data and Indexes field, if the
storage manager (OAM or TSM) is not configured in that way,
it is possible that the storage manager is misconfigured such that it will delete
objects before Content Manager OnDemand deletes the indexes that reference
them. This causes a document list to be presented to the user that contains
document entries for which no document data can be retrieved (the data no
longer exists).
Application groups
An application group is a collection of one or more applications that contain
common indexing and storage management requirements. The application group
contains the database information that is used to load, search for, and retrieve
reports. The application group defines the data that is to be loaded into the
database.
When you are designing your application group definition, there are some
aspects that need to be considered as they can contribute to a successful
Content Manager OnDemand system implementation:
Database information
Storage management
Field definition
Field information
Chapter 4. IBM Content Manager OnDemand for z/OS implementation guidelines 163
Single table for all loads (Figure 4-15). If selected, Content Manager
OnDemand will create one single index data table for each application group
and all index loads for this AG will stored in one AG index data table. This
option is most frequently used when the application group data tables are
small.
Figure 4-15 Database Information - Single table for all loads setup
The choices that you make will determine the length of time the report data,
resources, and index data will be maintained.
Chapter 4. IBM Content Manager OnDemand for z/OS implementation guidelines 165
Field definition
The field definition page (Figure 4-17) is where you define database fields to the
application group. The names you provide to these database fields can be
arbitrary. They do not need to be the same names as the fields defined in the
applications that are mapped to the application group.
We recommend you use field names like INDEX_1, INDEX_2, INDEX_3, and so
on, as this allows you to include multiple applications with different index names
to a single application group. There are two advantages with adopting this
design:
Reduction of application groups
Reduction of the number of DB2 queries per folder search
Field information
The Application Group Field Information tab (Figure 4-18 on page 167) is used to
define the attributes of the database fields that make up the Content Manager
OnDemand report index data. These attributes determine the characteristics of
the index data and control many aspects of loading and processing data in the
system. A database field must be added for each index value that is required by
applications to be part of the application group.
Applications
Applications describe the characteristics of the report file and define how
Content Manager OnDemand will index and load the report data.
Applications associate the data with an application group, and specify the type of
index processing to be performed on the data. Applications also define any
logical views to be put in place for the users and determines any special print
options to be used with the data.
Chapter 4. IBM Content Manager OnDemand for z/OS implementation guidelines 167
Load Information attributes
The Application Load Information (Figure 4-19 on page 169) page specifies the
processing and resource information that Content Manager OnDemand uses to
load the input data onto storage volumes and to load the associated index data
into the Content Manager OnDemand database. The File Format, Preprocessor
Parameters, and Postprocessor Parameter are defined as part of the load
information:
File Format: Provides settings that control how the Content Manager
OnDemand system compresses and stores documents and resources.
Large Object Support: Large Object support is used to improve load and
retrieve performance by dividing the document into smaller parts for loading
and creating index information based on this document segmentation.
Documents are retrieved faster due to the smaller segment sizes that are sent
across the network.
Preprocessor Parameters: Specify processing that is carried out on database
fields prior to indexing data.
Postprocessor Parameters: Specify a system command or exit program that
will run against an index file before the index records are loaded into the
database.
Note: An application group name can be updated after the application group is
added, as long as the Application ID Field value has not been used as the
identifier in an application; otherwise, you can no longer update the application
group name.
Folder
A folder provides a user with a simple way to query and retrieve data stored in
Content Manager OnDemand. It provides users with a convenient way to find
related information stored in Content Manager OnDemand, regardless of the
source of the information and how the data was prepared.
Chapter 4. IBM Content Manager OnDemand for z/OS implementation guidelines 169
For example, you can set up a folder, called CHKS, that contains different
banking statements (such as checking and savings) stored in different
application groups, defined in different applications, and created by different
programs.
Users can have access to different document types through one folder. They can
limit their search to a specific document type, or they can see the document type
that each hit-list entry represents.
Field information
When adding the folder fields that your users will be searching, it is important to
note that the Field Type of the folder field must match the data type of the
application group data field that it will be mapped to. You cannot define the folder
field Posting Date as a Date/Time because the application group’s data field
POSTING_DATE is defined as a Date field. Figure 4-21 on page 171 and
Figure 4-22 on page 172 provides these illustrations.
Chapter 4. IBM Content Manager OnDemand for z/OS implementation guidelines 171
Figure 4-22 Application Group Field Information tab
4.4.5 Security
There are two types of security for Content Manager OnDemand:
Authentication
Permissions
Authentication
Content Manager OnDemand provides internal authentication through the use of
user IDs and passwords that are stored in the Content Manager OnDemand
system.
Chapter 4. IBM Content Manager OnDemand for z/OS implementation guidelines 173
Permissions
Content Manager OnDemand provides internal permissions checking by using
the Query Restriction field to limit access to the application group data. In this
case, it uses the user ID or group name to associate against the valid SQL
statement in the query restriction field in the application group. This limits the
results of any search that a user or group does. See Figure 4-24.
The following statement must exist in the ars.ini file in order for the arsuperm DLL
to be invoked for document permission checking:
SRVR_FLAGS_DOCUMENT_EXIT=1
The following statement must exist in the ars.ini file in order for the arsuperm DLL
to be invoked for SQL query processing:
SRVR_FLAGS_SQL_QUERY_EXIT=1
Refer to the following manual for additional details for user security installation
details: IBM Content Manager OnDemand for z/OS: Configuration Guide,
GC27–1373.
You may not need to use DAF with any of your reports, but if you do, it is better to
plan ahead. You will need to create a field in the application group and in the
folder to be used as the status or audit field that can be modified, so it is better to
decide if you need to use this feature before setting up a definition for a report. To
read more about Document Audit Facility, refer to Content Manager OnDemand
Guide, SG24-6915.
Chapter 4. IBM Content Manager OnDemand for z/OS implementation guidelines 175
4.4.7 Indexers
Content Manager OnDemand for z/OS has multiple indexers that you can choose
from when defining an application. The right indexer depends on the type of data
you are capturing and any data conversion that needs to be done during the
indexing process.There are five different indexers that you can use with Content
Manager OnDemand for z/OS:
OS/390
ACIF
Generic
PDF
XENOS
OS/390 captures line print and AFP data. It has an exit point that can be used to
capture most any other data type, much like the Generic Indexer.
ACIF captures line print and AFP data. ACIF can convert line print to AFP data.
The Generic Indexer can capture most any type of data. You provide it with an
index control file that points to the offset and length of the data to capture from
another data file.
The XENOS indexer lets you load AFP, Metacode/DJDE, or PCL print files into
the system. You can use the Xenos transforms to extract index data from the
input data and convert the input data into AFP or PDF documents.
OS/390 Indexer
OS/390 Indexer allows the following input data types:
Line print
AFP (Does not convert line print to AFP.)
Any other data type by using ANYSTORE exit
Note: The OS/390 Indexer uses indexing parameters that look a lot like the
parameters that are used by the ACIF Indexer. The OS/390 Indexer
parameters are to a great extent interchangeable with the ACIF Indexer
parameters. They may look alike, but there are differences.
Be aware that you cannot take the indexing parameters from one indexer and
expect it to work in the other.
The OS/390 Indexer handles line print and AFP, such as ACIF, but it does not
convert line print to AFP. Other data types can be handled with the ANYSTORE
exit.
When using the OS/390 Indexer, there is a unique parameter that reflects the
report types you are loading in to Content Manager OnDemand. The parameter
is:
INDEXSTYLE=
These are directly related to the Content Manager OnDemand V2 Report Types.
If you are familiar with Content Manager OnDemand V2, these values for
INDEXSTYLE will look very familiar. If you are new to Content Manager
OnDemand, we will talk about what each of these mean below.
INDEXSTYLE=NODX
NODX (no index) reports are reports that either do not have obvious index
values, or are very short and do not need to be broken up into documents.
Chapter 4. IBM Content Manager OnDemand for z/OS implementation guidelines 177
Figure 4-25 illustrates sample indexing parameters for a typical NODX type
report.
CPGID=500
FILEFORMAT=RECORD,90
GROUPMAXPAGES=50 /* specifies maximum pages per document */
TRIGGER1=*,1,X'F1',(TYPE=GROUP) /* 1 */
FIELD1=0,83,8,(TRIGGER=1,BASE=0)
INDEX1=X'E2C5C7D4C5D5E36DD5E4D4C2C5D9',FIELD1,(TYPE=GROUP,BREAK=NO)
/* SEGMENT_NUMBER */
INDEX2=X'D9C5D7D6D9E36DC4C1E3C5',FIELD1,(TYPE=GROUP,BREAK=NO)
/* REPORT_DATE */
INDEX3=X'D7C1C7C56DD5E4D4C2C5D9',FIELD1,(TYPE=GROUPRANGE)
/* PAGE_NUMBER */
INDEX4=X'D7D6E2E3C9D5C76DC4C1E3C5',FIELD1,(TYPE=GROUP,BREAK=NO)
/* POST_DATE */
INDEXOBJ=GROUP
INDEXSTYLE=NODX
Figure 4-25 sample indexing parameters for a typical NODX type report
INDEXSTYLE=PDOC
PDOC reports are transaction type reports, but have a high level index. For
example, a bank may have a report that is organized by Branch Number. Within
each Branch, the report is sorted on some column.
Figure 4-26 on page 179 illustrates sample indexing parameters for a typical
PDOC type report.
Figure 4-26 sample indexing parameters for a typical PDOC type report
INDEXSTYLE=PAGE
PAGE reports are transaction type reports. The entire report is sorted by some
column value. This sort key is used in the first and second indexes.
Chapter 4. IBM Content Manager OnDemand for z/OS implementation guidelines 179
Figure 4-27 illustrates sample indexing parameters for a typical PAGE type
report.
CPGID=500
FILEFORMAT=RECORD,90
GROUPMAXPAGES=100 /* specifies maximum pages per document */
TRIGGER1=*,1,X'F1',(TYPE=GROUP) /* 1 */
TRIGGER2=0,2,X'D9C5D7D6D9E3',(TYPE=GROUP) /* REPORT */
TRIGGER3=*,46,X'4B',(TYPE=FLOAT) /* . */
FIELD1=8,3,10,(TRIGGER=1,BASE=0)
FIELD2=0,3,10,(TRIGGER=3,BASE=0)
FIELD3=0,83,8,(TRIGGER=1,BASE=0)
INDEX1=X'D3D6C1D56DD5E4D4C2C5D9',FIELD1,FIELD2,(TYPE=GROUPRANGE2)
/* LOAN_NUMBER */
INDEX2=X'D7C1C7C56DD5D66D',FIELD1,(TYPE=GROUPRANGE)
/* PAGE_NO_ */
INDEX3=X'D7D6E2E3C9D5C76DC4C2E3C5',FIELD3,(TYPE=GROUP,BREAK=NO)
/* POSTING_DATE */
INDEXOBJ=GROUP
INDEXSTYLE=PAGE
Figure 4-27 sample indexing parameters for a typical PAGE type report
INDEXSTYLE=DOC
DOC reports are traditional document reports, such as statements, invoices, and
so forth. No indexes of type GROUPRANGE can be specified. If INDEXSTYLE
parm not specified, it defaults to DOC.
Figure 4-28 on page 181 illustrates sample indexing parameters for a typical
DOC type report.
Trigger with TYPE=GROUP and index with BREAK=YES determines when new
documents start.
INDEXSTYLE=AFP
Advanced Function Printing (AFP) reports captured through the OS/390 indexer
must already have been formatted into an AFP Data Stream (AFPDS). This can
be done by using ACIF (AFP Conversion and Indexing Facility) or by any
third-party program.
The OS/390 indexer looks for index values within the AFPDS, either in TLE or
NOP records. ACIF, and other programs, can automatically generate the TLE
records. The NOP records for use by the OS/390 indexer have a fixed format. For
details on the TLE record formats, refer to the MO:DCA Reference, SC31-6802.
Chapter 4. IBM Content Manager OnDemand for z/OS implementation guidelines 181
Figure 4-29 illustrates sample Indexer parameters for an AFP report type.
ANYSTORE EXIT
The ANYEXIT parameter specifies a load module to call. This exit is responsible
for reading the input file, breaking it apart into documents, and providing the
index values for each document. This is usually used to capture data that is not
line print or AFP, such as image data. For example: ANYEXIT=ANYSTI01
User exits allow you to execute a user-written program and then return
processing control to Content Manager OnDemand after the completion of your
user-written program. There are a few different kinds of exits, as you will see
below. Content Manager OnDemand provides sample code for each exit that can
serve as input to your user-written programs. When using these exits, it allows
you the ability to update index values through a print request, cleaning up data as
it is loaded into Content Manager OnDemand, and accessing external security
managers. Infinite examples can be provided for what is possible using the
Content Manager OnDemand exits. We provide some samples to serve as a
guide for creating customized user exits programs:
OS/390 Indexing exits (Figure 4-30 on page 183).
– Input exit: Enables you to add, delete, or modify records in the input file
before they are processed by the OS390 Indexer. The primary purpose of
this exit allows modification of the input records before the indexer sees
them. Common usages would be to add carriage control characters so as
to truncate records.
Report Report
Data Specification Index
Afp Archive exit
Line exit
“any data”
Table
Anystore Space DB2
exit Create tables
exit
Indexes
Chapter 4. IBM Content Manager OnDemand for z/OS implementation guidelines 183
– Unified login exit: The Content Manager OnDemand unified login exit
(ARS.PTGN) provides a means for an installation to allow a user to run the
Content Manager OnDemand command-line utilities (such as arsload)
without needing to specify a user ID and password.
– Report Specification Archive exit: The Content Manager OnDemand
Report Specifications Archive Definition Exit allows an installation to
modify some of the parameters used by Content Manager OnDemand
when document data is being captured (loaded) by the ARSLOAD
program. The following parameters can be modified:
• The Application Group name.
• The Application name.
• The name of the object server to be used for data storage.
• The name of the Storage Node to be used for data storage.
• The indexer parameters set.
• The input file control character type, logical record length, and record
format.
– Security exit: The Content Manager OnDemand security system interface
exit allows an installation to secure related processing of the following
activities or events:
• Logon or change password.
• Add User ID or Delete User ID by using the Content Manager
OnDemand administrative functions.
• Access to a Content Manager OnDemand folder.
• Access to a Content Manager OnDemand application group.
• Restrict access to specific documents.
• Control the SQL search criteria used for searching folders.
– Preview exit: The Content Manager OnDemand Windows Client preview
exit allows an installation to process document data before the document
is presented to the client. The client preview exit can be used to add,
remove, or reformat data before the document is presented to the client.
– Tablespace create exit: The Content Manager OnDemand tablespace
creation exit allows an installation to take action when Content Manager
OnDemand creates a tablespace, table, or index tables that will be used to
store application index data. The exit is not called for the Content Manager
OnDemand system tables.
For table and index creation, the installation can alter the SQL that will be
used to create the table or index.
Re-entrance means that a single copy of the executable code exists in memory
and only program control structures and private memory are allocated for
each concurrent instantiation of the program.
arssockd
Unified
login
exit
User Login
Login authentication
authentication
Preview
Add/delete user exit
authentication Doc retrieve
Folder list
permissions Security
exit
AG Query
permissions
Arslog
exit
DocGet
permissions
Figure 4-31 Content Manager OnDemand server security, preview and logging exits
Chapter 4. IBM Content Manager OnDemand for z/OS implementation guidelines 185
Application administration.
– Structured APIs: Structured APIs allow customer applications in CICS,
IMS, TSO, or batch environments the ability to invoke the server functions
described in Table 4-3.
Refer to the following manual for additional details relating to Exit Points and their
implementation: IBM Content Manager OnDemand for z/OS: Configuration
Guide, GC27–1373.
The system components that are required for creating, retrieving, viewing, and
printing a Content Manager OnDemand report are:
A storage set
An application group
An application
A folder
A printer
These are the elements that are required by your Content Manager OnDemand
administrator to define and create a report definition that can then be used to
index and load data into Content Manager OnDemand.
Chapter 4. IBM Content Manager OnDemand for z/OS implementation guidelines 187
Figure 4-32 depicts the relationship these elements have with a Content
Manager OnDemand.
CMOD
Database Application Group
Application Group
Folder
Figure 4-32 Illustrates the relationship of the elements with Content Manager OnDemand
Chapter 4. IBM Content Manager OnDemand for z/OS implementation guidelines 189
In Figure 4-33 on page 189, click Add to add a Primary Node, as shown in
Figure 4-34.
Fill out the information, and click OK and the Primary Storage Node is added
to your Storage Set (see Figure 4-35 on page 191).
Note: If you are using the OAM Archive Manager, you need to ensure that
the Primary Storage Node that you want to Load to in OAM has the Load
Data box checked and an Access Method of OAM checked.
Verify that you have selected the correct Access Method for the Storage
Manager that you will use.
Chapter 4. IBM Content Manager OnDemand for z/OS implementation guidelines 191
Figure 4-36 shows the Add an Application Group window.
Enter the application group name and description. Click Advanced and the
database information window displays (see Figure 4-37 on page 193). Define
the following information:
– Database information
The database information section of the application group definition
process (Figure 4-37 on page 193) requires that you decide how many
rows will be stored in each database table or, alternatively, if you want to
store all data loaded for the application group in a single database table.
These values are important for system performance and maintenance.
When storing a fixed number of rows to a database table, the default value
for Maximum Rows is 10 million (see Figure 4-37 on page 193).
Selecting Single Table for All Data Loads results in only one Application
Group data table being created. This option is most frequently used when
the total number of rows loaded to your application group data table will be
relatively small.
Chapter 4. IBM Content Manager OnDemand for z/OS implementation guidelines 193
Figure 4-38 Application Group Storage Management tab
The Expiration Type determines how report data, indexes, and resources
are expired. If the expiration type is Load, an input file at a time can be
deleted from the application group. The latest date in the input data, and
the life of data and indexes, determine when Content Manager OnDemand
will delete the data. Data that has been stored in archive storage is deleted
by the storage manager based on the archive expiration date. We
recommend that you set Expiration Type to Load.
– Field Definition tab
The Field Definition tab (Figure 4-39 on page 195) is where you define the
database fields for the Application Group.
A Database Field Name should have the following characteristics:
• Can contain one to 18 characters (bytes).
• Must begin with A through Z; other characters can include A through Z,
0 through 9, @, $, _, and #.
• Cannot be any of the Content Manager OnDemand reserved
keywords:
annot
comp_len
Chapter 4. IBM Content Manager OnDemand for z/OS implementation guidelines 195
– Field Information tab
The Field Information tab (Figure 4-40) is used to define the attributes of
the database fields that make up the Content Manager OnDemand report
index data. These attributes determine the characteristics of the index
data and control many aspects of loading and processing data in the
system. A database field must be added for each index value that is
required by applications to be part of the application group.
If multiple applications will be part of the application group, select the
Application ID Field to uniquely identify each application in an application
group. If it is possible that more than one application will be part of an
application group, you should select the Application ID Field.
Note: If you need to add a database field after the application group is
added to the Content Manager OnDemand system, you now have the
ability to do this.
Chapter 4. IBM Content Manager OnDemand for z/OS implementation guidelines 197
Figure 4-41 shows the Add an Application window.
Chapter 4. IBM Content Manager OnDemand for z/OS implementation guidelines 199
– Indexer Information tab
When building the indexing parameters, you can use the Graphical Indexer
to assist you with defining the Triggers, Indexes, and Fields. You will need
to transfer a sample of the report data file down to your work station in
binary format (FB with the same LRECL of the input report data file). For
example, if the Check Statement data file is FB LRECL 133, then you
would transfer the sample file as Binary FB LRECL 133.
Once you have it transferred, you can then open up the file by selecting
Sample Data and clicking Modify in the Parameter Source panel on the
Load Information tab (see Figure 4-43).
Figure 4-44 on page 201 depicts the Graphical Indexer highlighting the
Triggers, Indexes, and Fields that were generated with the Graphical
Indexer. This indexer information is what is used by the ARSLOAD
program to perform the indexing and segmentation for each document of
this report.
Chapter 4. IBM Content Manager OnDemand for z/OS implementation guidelines 201
– Note Search: We recommend that you set the annotation parameter in the
application group Advanced settings to handle annotation storage and
display. When the application group annotation parameter is set to Yes, an
annotation flag is set in the database when a user adds an annotation to a
document. When an annotation exists for a document, a note icon is
displayed in the document hit list.
If you assign a user to more than one group, the user normally obtains the
permissions of all of the groups. However, there are exceptions to this rule. See
information about permissions in the IBM Content Manager OnDemand for z/OS:
Administration Guide, SC27-1374 for details.
Setting permissions at the folder level provides all Content Manager OnDemand
users and groups that are not otherwise given permissions with the permissions
that you define.
Setting permissions at the group level provides all of the users that you assign to
the group with the permissions that you define. Group level permissions override
folder level permissions.
Setting permissions at the user level provides a specific user with the
permissions that you define. User level permissions override group level
permissions and folder level permissions.
Setting permissions at the application group level provides all Content Manager
OnDemand users and groups that are not otherwise given permissions with the
permissions that you define.
Setting permissions at the group level provides all of the users that you add to the
group with the permissions that you define. Group level permissions override
application group level permissions.
Setting permissions at the user level provides a specific user with the
permissions that you define. User level permissions override group level
permissions and application group level permissions.
Query restriction
You can use the Query Restriction field within the application group to limit
access to application group data. When you specify a user name to the
application group and key a valid SQL statement in this field, you limit the results
of any search for that user.
Chapter 4. IBM Content Manager OnDemand for z/OS implementation guidelines 203
4.5.3 Load, retrieve, and print verification
After you set up a report definition (storage set, application group, application,
and folder), the next step is to load and retrieve a sample report. There are two
ways that you can load the report into Content Manager OnDemand:
From the JES Spool with ARSLOAD executing as a started task. This task
monitors the JES Spool based on a special class or class and destination.
As a Batch Load using a special PARM field to provide the application group
and application. Figure 4-46 provides an example.
There are various types of viewers for retrieving your documents. Upon
completion of the loading, you will need to access your installed viewers to
validate the loaded data.
Once you have loaded the data successfully, you now have the ability to print the
data to ensure your data prints successfully. You have the flexibility to print the
data to your local server that may be defined to your desktop or to a predefined
server printer.
Chapter 4. IBM Content Manager OnDemand for z/OS implementation guidelines 205
4.6.1 Load processing
Functional Load processing tests may include:
Loading data through batch job:
– With the various indexers that you will use
– With your data types
Loading data from the JES spool:
– With the various indexers that you will use
– With your data types
Testing with your load exits.
Analyzing the different compression methods to determine the best option.
Data compression is a trade-off between CPU consumption, DASD
consumption, and network traffic. You will have to decide, for each of your
data types, the amount of compression that you require.
4.6.3 Printing
The printing functional tests include:
Printing all stored data types and verifying that the data has printed correctly.
Printing to all printer types (both local and server printers) and verifying that
the data has printed correctly.
Validating the banner page and its contents are printed correctly.
Chapter 4. IBM Content Manager OnDemand for z/OS implementation guidelines 207
For functional backup and recovery, the following testing and procedures should
be taken in consideration:
Create backup procedure.
Create restore procedures.
Document the process.
When you have a tested sample of data (loaded and viewed), back up the
data, delete the DB2 data and the storage manager data, and then perform a
restore and verify that the data is still viewable correctly.
Provision for storing your backup data at an off-site location.
You will need to determine, based on your situation and your data, which is the
best method to use.
Report data: The report data that is used in the testing should match the typical
data that would be loaded in a production environment, in terms of the report
size, number of indexes, document size, and data type.
Parallel loads: Content Manager OnDemand allows for multiple load jobs to run
in parallel. Typical scenarios include:
Running load jobs that are on multiple systems on which the report data to be
loaded is located, rather than first transferring the report data to a specific
system and then running the load job on that system.
If the quantity of data to be loaded exceeds the capacity of a single load task
to load the data within a specified time frame (window), then running parallel
load jobs will allow for a reduction of the load elapsed time.
Chapter 4. IBM Content Manager OnDemand for z/OS implementation guidelines 209
4.7.4 Tuning considerations based on test results
The first set of performance tests will produce some results. If these results are
acceptable, then all is well; otherwise, you will need to investigate (with the help
of your systems’ personnel) the reasons for the lack of performance. There are
potentially many areas that need monitoring and tuning. A full discussion is
beyond the scope of this book. However, we include these areas for your
references:
DB2
OAM
TCP/IP
UNIX System Services
WebSphere Application Server
Java
Exits
4.8 Training
Typically, there are three groups of individuals that are critical for training. In this
section, we will discuss these types of training:
System personnel
Content Manager OnDemand report administrators
User training
Chapter 4. IBM Content Manager OnDemand for z/OS implementation guidelines 211
Expiring data. For example, automate the expiration processing of your
Content Manager OnDemand object data and Content Manager OnDemand
index data.
Backups.
Automate the backup of all of your Content Manager OnDemand system
components.
Server recovery processes.
Automate the fail-over process or re-start processes for the Content Manager
OnDemand servers.
Event notification.
Automate the event notification process of failed Content Manager
OnDemand components allowing the appropriate personnel resource to be
directly notified.
One way of dealing with this is to establish a performance baseline after the
system has gone into production (and is fully utilized), then to periodically (based
on you environment) run the performance tests to see if any performance
degradation has occurred and to address the issues as necessary. The time
period for running these tests could be anything between three and 18 months,
depending on the volatility of your system’s environment.
Between your periodic performance tests, system’s personnel will notify you if
your applications are negatively impacting the system and users will notify you if
the performance degrades dramatically.
Chapter 4. IBM Content Manager OnDemand for z/OS implementation guidelines 213
– Indexing Reference, SC27-1375: This reference guide is of primary
interest to administrators and other people in an organization who are
responsible for preparing data to be stored in Content Manager
OnDemand.
– Messages and Codes, SC27-1379: This reference guide is of primary
interest to Content Manager OnDemand administrators who require more
detailed information about returned messages.
Content Manager OnDemand manuals for optional products:
– Migration Guide, LY37-3746: This reference is intended for Content
Manager OnDemand system administrators, planners, and programmers
and for database administrators who support V2 Content Manager
OnDemand and are migrating to V7 of Content Manager OnDemand.
– Content Manager OnDemand Distribution Facility Installation and
Reference Guide, SC27-1377: This guide is for people that plan for, install,
configure, and upgrade ODF for an organization.
– Content Manager OnDemand Web Enablement Kit Implementation Guide,
SC27-1376: This guide is for people responsible for planning, installing,
and configuring IBM Web Interface for Content Management.
Content Manager OnDemand user manuals:
– User's Guide, SC27-0836: This publication introduces you to the basic
features of the Content Manager OnDemand Windows Client. It is of
primary interest to people who use Content Manager OnDemand to
search for, retrieve, and view documents.
Online help windows: The online help includes details of things that can be
done using the client. The Windows Client online help complements the
User’s Guide, while the Administration Client online help complements the
Administration Guide.
Online Content Manager OnDemand manuals at IBM Content Manager
OnDemand Information Center can be found at:
http://publib.boulder.ibm.com/infocenter/cmod/v8r4m0/index.jsp
Overall online Content Manager OnDemand information can be found at:
http://www.ibm.com/software/data/ondemand
Go to the specific product page by selecting the product (either Content
Manager OnDemand for Multiplatforms, for i5/OS, or for z/OS and OS/390)
and click Go. From the specific product page, you can:
– Click the Information Center link to get the online Information Center.
– Click the Product manual link to obtain all manuals (in different
languages) for the specific product.
Chapter 4. IBM Content Manager OnDemand for z/OS implementation guidelines 215
216 Implementing IBM Content Manager OnDemand Solutions
Part 2
This bank is a large US-based commercial bank holding company with branches
in more than a dozen states and other offices in over 40 states. The bank has
over 150 billion in assets under its control.
5.1.3 Planning
A team from IBM and the bank was formed to implement the Content Manager
OnDemand solution. IBM was contracted to convert all existing reports from the
existing archive systems to Content Manager OnDemand and to install and
configure the solution.
The following information was gathered during the planning phase of the project:
The existing system, which was mainframe based, had over 5000 different
report definitions. The system had no versioning to help isolate changes to
the reports over the years of its operation. After analysis, it was determined
that over 8000 different definitions would be needed to support this migration
and implementation.
95% of the data was EBCDIC line data. Large Object support will be used to
segment the larger reports for online viewing.
5% of the data was IBM Advanced Function Printing (AFP) data streams. This
data is comprised of customer statements that would be viewed by external
customers in addition to bank employees working in a customer service role.
It was critical to get day-forward data loaded to Content Manager OnDemand
as soon as possible to alleviate the load on the existing archive systems. This
was necessary due to capacity and performance concerns.
Simplified indexing consisting of a report name and date would be used for all
but the top 200 accessed reports. This will allow for a faster implementation.
Some internal users had a requirement to extract data from various reports to
be used in analysis. This data needed to be extracted and re-purposed for
use in spreadsheets. This customer was a licensed user of Monarch, a report
mining and data analysis tool by Datawatch, and it will use the integration that
exists between Content Manager OnDemand and Monarch for this purpose.
5.1.4 Implementation
The implementation of Content Manager OnDemand involved many steps.
Software was installed in four separate server environments: a development
server, quality assurance (QA) server, production server, and disaster recovery
server. Workstations to be used by the application developers were set up with
the Content Manager OnDemand administrative client along with the Windows
client to test retrieval. We also set up test Web servers to begin development of
the custom banking interface to Content Manager OnDemand and to test the
Custom Client.
Note: The software versions listed were current at the time of the
implementation. Always verify currently released and supported levels before
implementing a system.
Figure 5-1 illustrates the implemented architecture. The production setup used
mirroring technology from EMC to create the disaster recovery (DR) site.
Symmetrix Remote Data Facility (SRDF) was used to mirror all activity at the
production site to the DR site and a set of mirrored disks. These disks contained
the Content Manager OnDemand database, Tivoli Storage Manager database,
and Content Manager OnDemand cache file systems. EMC Centera replication
was used to create the DR copy of all data objects stored by TSM. Additionally,
development and servers were installed, although these configurations were
smaller and with four CPUs and 16 GB of memory and without the mirroring
configuration.
Figure 5-1 Content Manager OnDemand for Multiplatforms case study 1 - System
architecture
Figure 5-2 Content Manager OnDemand for Multiplatforms case study 1 - Client
architecture
Application design
The bank needs to support thousands of users and will be storing terabytes of
data in its Content Manager OnDemand archive. The need for a high
performance design to support both the ingestion of this data and the retrieval of
it made this stage critical to the success of this project.
The analysis of the above information allowed the team to build an architecture
with Content Manager OnDemand to support the bank’s requirements:
System requirements
Critical to this design was the ability to handle the existing volumes and to
support a growth of 20% per year. The pSeries 570 was chosen due to its
ability to expand the existing hardware without the need to replace it. The
DASD storage requirements and archive storage requirements were given to
the bank’s storage team to allocate and provide. The high level architecture
was shown previously in Figure 5-1 on page 223.
Application requirements
It was during this phase that decisions were made to streamline the
application development environment. During the investigation, over 8000
separate report types were found to exist. But no usage information was
available to determine who was using these reports. It was decided to simplify
the indexing requirements to allow the greatest number of reports to be
ingested in the shortest length of time. This was done by limiting the indexing
to just the Report Name and Date. Other decisions were made to provide
additional query capabilities for external customers and internal customer
support staff on a specific set of reports and all statements. We will detail two
representative samples, one report, and one statement application in the
following section.
The statement application groups contained a total of five fields. The first field
and primary index used was account number. This number based on the type of
account was either 12 or 16 bytes. The different lengths were supported in
separate application groups, although not due to any Content Manager
OnDemand limitation. We also created an Index for Customer Name at 30 bytes.
This was used on only 20% of the searches when a customer forgot their account
number or a customer service representative wanted to locate multiple accounts
by name. We decided to make this large a field an index to provide quicker
searches. In addition, three filter fields were used. All were defined as filters,
since they were only used to narrow down searches or used as display fields in
the hitlist. These fields were Account type for 3 bytes, Ending Balance as a
Decimal field, and Statement Date. The date field was also used as the segment
date.
Reports were indexed using ACIF and compressed using OD77 compression.
The statements were sent to Content Manager OnDemand as AFP and
contained embedded Tagged Logical Elements (TLEs), which were used to index
this data.
1
Day forward data: This is new data that would be loaded and archived after Content Manager
OnDemand was in production. The data is not considered historical or part of the historical
migration.
Performance testing
The bank had identified Content Manager OnDemand as a critical application
and determined that the system needed to be fully redundant and available 24x7.
Due to this need, they made the investment in hardware and software needed to
support this environment. This system was implemented on a pair of IBM
pSeries Model 570s with eight CPUs and 32 GB of memory. These systems were
set up in separate data centers using Disk Mirroring technology to create the DR
site. A daily ingestion of 300 GB of data needed to be supported by this platform
with larger loads during month end and year end processing. This data needed
to be available for users to view by 8 AM in the morning and for the bank’s
external customers the next day. The system was configured as follows:
Four arsloads running on a 24/7 basis. The majority of loading occurred
during the hours of 12 AM - 6 AM.
The size of the reports vary from three pages to 400,000 pages.
The size of the statement documents ranged from 2 - 2000 pages.
This data load environment was tested on the bank’s development system. This
system was also a p570 with half the number of CPUs and memory, a 4-core, 16
GB box. The tests were developed to simulate the production environment as it
related to files and throughput. It was understood that this environment was
smaller, but we used the amount of data ingested per CPU as a benchmark. We
also developed tests that would simulate peak loads on the system from a
retrieval perspective.
Initial tests revealed that the system would be able to meet the required amount
of data to be ingested into the production environment. An issue was uncovered
though concerning the ability of the retrieval side to process the statement files
through the bank’s Web environment. This processing entailed the need to
convert the files from the AFP format to a PDF format. Configuration changes
were needed on the Web servers to support greater throughput of this process.
Additional disks and temporary space was added to support a more distributed
capability. In addition, larger Windows based Web servers with more processors
and additional memory were added. Once this was done, the system was
determined to be production ready.
Deployment
The bank’s new Content Manager OnDemand archive system was deployed in
stages. The initial stage was designed to load all day forward reports to Content
Manager OnDemand. This allowed the bank to reduce the load on its existing
system and to eliminate the need for any additional storage on that system.
Users were told to log onto a specific system based on the date of the report they
were looking for. Once this phase was complete, the loading of the converted
The company is an IBM Business Partner that has customers throughout North
America, Europe, Latin America, and the Pacific Rim. The company has
extensive knowledge and expertise in records management, data protection, and
information destruction solutions and helps clients address the problems most
companies face today:
Rising storage costs
Litigation
Regulatory compliance
Disaster recovery
5.2.3 Planning
The Business Partner had approached IBM for a hardware recommendation for
their planned service provider offering. The ensuing discussion revealed that the
Business Partner was looking at using a separate Content Manager OnDemand
instance for each customer. This was motivated by the following factors:
Keep customer data separate.
Separate instances allow the customers to completely administer their own
applications, users, and groups.
Each instance can be tuned for the customer (Content Manager OnDemand
configuration files and database parameters) and use the appropriate
ARS_CODEPAGE parameter.
Backups and maintenance should be easier to schedule and perform for
multiple smaller instances as opposed to a single large instance.
A complete description of the IBM Innovation Center services can be found at:
http://www.ibm.com/jct09002c/isv/spc/
DS8100
p570
SAN
DHCP
Clients
The test scripts were initially run on a T60p mobile computer with 2 GB of
memory, a 100 GB disk, and 802.11a/b/g Ethernet running Windows XP. In order
to run tests over night, the scripts were later moved to a p610 AIX deskside box
with 2 GB of memory running AIX 5L V5.3. The test results were the same from
both machines, although the p610 showed about half of the CPU activity of the
mobile computer. This told us that we were not having a problem generating a
maximum load on the Content Manager OnDemand server.
The software stack included Content Manager OnDemand V8.3 (V7.1.2), Fix
Pack 9, DB2 V8.1 Fix Pack 14, and Java V1.4.2. DB2 and Content Manager
OnDemand were installed using the standard configuration. Initially, separate
DB2 instances were created for each Content Manager OnDemand instance, but
the final configuration used a single DB2 instance for all Content Manager
OnDemand instances (no performance penalty and easier to manage with one
instance owner).
cd /home/${INSTOWNR}/sqllib
echo "EXTSHM=ON" >> userprofile
echo "export EXTSHM" >> userprofile
echo "db2set DB2ENVLIST=EXTSHM" >> userprofile
fi
The sample data was then loaded using a shell script, load_instance.sh (see
Example 5-2).
A total of nine applications were used with the characteristics shown in Table 5-1.
Preparation
The Java test script (actually two scripts, one for line data and one for all other
data) is designed to log on U number of users and then initiate a search and
retrieve thread for N iterations. Only ten user accounts were created for each
instance, so multiple logons were made as necessary. The search is based on a
where clause read from an external file and is chosen randomly. If more than one
hit is returned, the document to be retrieved is also chosen randomly. The
performance measures (document search and document retrieval time) are kept
track of from the time the last thread is started until a thread completes (that is,
only while all U threads are running simultaneously). A batch file was written to
invoke the Java test script for the desired number of instances (see
Example 5-3).
export CLASSPATH=/usr/lpp/ars/www/api/ODApi.jar:.:$CLASSPATH
SERVER=p57003
USER=admin
PSWD=ondemand
CONFDIR=/femt
JSCRIPT=JavaApiDriver_Line
#JSCRIPT=JavaApiDriver
FOLDER="FLD-line-xxxK-HFS-IL"
DATAFIL=line-400k.query
NUMINST=$1
RAND=ON
if [ "$NUMINST" -gt 20 ]
then
NUMINST=20
fi
OUTFIL=of${NUMINST}insts_${NUMUSER}thrds.out
if [ "$NUMINST" -gt 19 ]
then
PORT=1470
java -Xms2m -Xmx768m $JSCRIPT $SERVER $PORT $USER $PSWD $CONFDIR
$FOLDER $DATAFIL $NUMUSER $NUMITER $RAND > 20$OUTFIL &
fi
if [ "$NUMINST" -gt 18 ]
then
PORT=1469
java -Xms2m -Xmx768m $JSCRIPT $SERVER $PORT $USER $PSWD $CONFDIR
$FOLDER $DATAFIL $NUMUSER $NUMITER $RAND > 19$OUTFIL &
fi
...
if [ "$NUMINST" -gt 2 ]
then
PORT=1453
java -Xms2m -Xmx768m $JSCRIPT $SERVER $PORT $USER $PSWD $CONFDIR
$FOLDER $DATAFIL $NUMUSER $NUMITER $RAND > 3$OUTFIL &
fi
if [ "$NUMINST" -gt 1 ]
then
PORT=1452
java -Xms2m -Xmx768m $JSCRIPT $SERVER $PORT $USER $PSWD $CONFDIR
$FOLDER $DATAFIL $NUMUSER $NUMITER $RAND > 2$OUTFIL &
fi
wait
The external query file was created by using DB2 select statements to create a
list of all values for a particular column, and then editing the list to create the
where clauses. A portion of the simple query file is shown in Example 5-4.
...
where account = '250-000-997'
where account = '250-000-998'
where account = '250-000-999'
The complex query file was based on two database fields and an OR clause (see
Example 5-5 on page 242).
...
where account = '250-003-997' or name = 'Company X'
where account = '250-003-998' or name = 'Company Y'
where account = '250-003-999' or name = 'Company Z'
The query file could have been much more complex and more realistic including
for example, different columns and wildcard searches, but the time required to
generate such a file was excessive given that an actual production application
was not used for testing and typical query characteristics were not known.
Procedure
On the Content Manager OnDemand library server:
1. Log in as root (member of DB2 administration group).
On the PC:
1. Change directory (cd) to the test scripts directory.
2. Run setup.bat (sets PATH and CLASSPATH):
Run batch file and multiple invocations of the Java test script (# instances, #
users/instance, and # iterations).
The initial testing was performed on a p630, much of which was done remotely
over a slow broadband connection (3 Mb down, 256 Kb up). This testing allowed
us to find most of the problems in our test environment before we arrived at the
IBM Innovation Center, where our time was limited.
Table 5-2 Initial testing result on p630,100 total users, slow dial-in connection
# Instances Users/instance Milliseconds/ CPU% CPU% (Idle)
document (Kernel/User)
Results
Results from each simulation were written to an output file (see Example 5-6)
whose name contains the number of instances and users (threads) per instance.
A summary shell script (see Example 5-7) was created to scan each output file
and average the results from all instances. For example, an eight instance run
would have eight result files and the script would find the average response time
and execution time and write one line of summary information (# of instances, #
of users/instance, response time in ms, and execution time in seconds) in
comma delimited format to a report file (see Example 5-8 on page 246). The
execution time was used to estimate total time required for testing when multiple
tests were included in a batch file. Batch testing was performed overnight and
sometimes required 12 hours for all runs to complete.
Where:
y is the response time in milliseconds.
x1 is the number of instances.
x2 is the number of users per instance.
x1*x2 is the total number of users.
Where:
a = 12.18
b = 4.256
c = -0.0068
d = 0.0069
e= 1.404
The simulation runs were then repeated using a more complex query (exact
matches on two database columns with indexes, account = <account> OR name
= <name>). The exponential model was used and the calculated coefficient
values were as follows:
Where:
a = 18.78 (12.18 for simple query)
b = 4.770 (4.256)
c = -0.0063 (-0.0068)
d = 0.0059 (0.0069)
e= 1.399 (1.404)
Figure 5-7 Response time versus number of instances, constant total users, simple query
Findings
Response time: Even with 2000 total users and 20 instances (100 users per
instance), the total response time for well constructed queries and document
retrieval was less than one second, well below what was viewed as an
acceptable response time. It should be noted that these simulations were
designed to stress the Content Manager OnDemand server to its maximum, and
that the total number of users in these tests probably equate to fifty or even a
hundred times that number in an actual production environment (100,000 to
200,000 users).
At one point in the testing, we added a second CPU to the LPAR to confirm our
belief that we were CPU limited. As expected, the addition of a second CPU cut
the response times in half.
Note that the total is 5.75 GB. Memory measurements were made when testing
10 instances, so the actual total memory for 10 instances would be 1.85 + 0.82 +
1.12 = 3.79 GB. During these tests (10 instances), topas showed approximately
75% computational memory and 15% non-computational memory. Assuming
75% computational memory, 0.75 * 5 GB = 3.75 GB, which agrees with the
computed memory estimate.
Paging: PgspIn (pages read from paging space) and PgspOut (pages written to
paging space) were both 0 during most of the testing. Paging did occur when
testing more instances (14 and above) with ARS_NUM_DBSRVR=20, although
this was easily corrected by lowering the value to 10. The response time did not
appear to increase appreciably with the lower value.
Java test script: The Java test script became a limiting factor for the upper range
of instances and users per instance, due to a 1 GB limit on the Java maximum
heap size. The only work around for this was to use more than one computer to
run the test script, but this was not done due to the difficulty in synchronizing
individual runs and results.
Recommendations
Physical memory must be sufficient to support the number of Content Manager
OnDemand instances running. As soon as physical memory is completely used
and paging space is utilized, performance can and will deteriorate rapidly.
Because AIX has a large memory footprint, you might consider decreasing the
number of LPARs and assigning more memory (and CPUs) to each LPAR.
DB2 buffer pools were sized at 10,000 pages per database (Content Manager
OnDemand instance). This equates to approximately 39 MB (4096 bytes/page)
per Content Manager OnDemand instance, and was sufficient for the sample
database when well constructed queries were used for search criteria. When
substantially larger buffer pool sizes (50,000 pages) were specified, we found the
search time to improve only slightly (less than 10%). We believe that the buffer
pool size only needs to accommodate the indexes for the Content Manager
OnDemand system tables and applications, unless the search criteria requires
table scans (wildcard searches and searches on filter fields).
AIX file caching was restricted to a small portion of memory (5%) with the vmo
command:
vmo -r -o maxperm=5
This was done in order to provide the greatest amount of computational memory
possible. Retrieval times did not increase, since documents were not read
repetitively.
DB2 tuning with the production application(s) and typical search criteria is
advisable. While complex queries will lengthen search times, this testing has
shown that multiple Content Manager OnDemand instances provide acceptable
response times even with the overhead incurred as a result of multiple instances.
Training
Training was not performed in this Content Manager OnDemand implementation,
but several administrative recommendations were made.
Deployment
This Content Manager OnDemand implementation was a test environment and
not an actual deployment. The system configuration, test results, and
recommendations were documented for a future implementation.
The bank is a large international bank that operates in 10 different countries with
more than 80 branch offices and over 1700 users who need to access the data
that is archived in Content Manager OnDemand.
6.1.4 Implementation
Implementing Content Manager OnDemand is a major project involving several
steps. We first installed and configured the product on a test machine, then
decided how to define the reports, archive and retrieve the data, do performance
testing to ensure adequate service levels, train the users, and finally move the
definitions from the test machine to the production machine. The overall design
of the Content Manager OnDemand system at the bank is shown in Figure 6-1
on page 259.
Figure 6-1 Content Manager OnDemand for i5/OS case study 1 - System design
We then installed the IBM HTTP Server, WebSphere Application Server, and
ODWEK on a Windows 2000 Server.
Application design
During application design, we decided how to define the users, groups, folders,
application groups, applications, and storage sets, in order to fulfill the business
requirements that we had identified.
Groups
There is no relationship between user groups in Content Manager OnDemand
and OS/400 group profiles. Even if a Content Manager OnDemand group has the
same name as an OS/400 group user profile, the members of the group are
independent from the group user profile.
We decided that all Content Manager OnDemand user administrators and users
should be placed into Content Manager OnDemand groups and permissions
should be defined at the group level rather than the user level. This allows user
administrators to easily add, remove, or transfer a user without having to
individually update the permissions for that user.
country-branch
For example, users in branch 006 in country B would be in group BBB-006 while
users in branch 626 in the country E would be in group EEE-626.
If a user is placed in multiple groups and each group is given specific permission
to an application group or folder, then the permissions are determined from the
group with the lowest Group ID number (GID). Because of the way permissions
are determined when a user is a member of multiple groups, we tried to avoid
placing anyone in multiple groups. However, in order to provide future flexibility,
we reserved 10 low number GIDs by creating a small number of groups by the
name ZReservernn (where nn is a two digit number from 01 to 10) before we
defined any other groups. This reserved the first 10 group ID numbers for future
use. By starting the name with a Z, they will also show up at the end of the list of
groups and do not require that you always have to scroll past them.
Security
Security is handled by Content Manager OnDemand permissions to control
access to reports and define the capabilities that a user has. The security model
is hierarchical with the permission checking done in the following order:
1. User
2. Group
3. *PUBLIC
If no permission is specified for a user, the group that the user is a member of is
checked next. If the user is a member of more that one group, the groups are
checked in ascending group ID number. If none of the groups have any
permissions defined for the user, the permissions defined for *PUBLIC is used.
Note: Not having any permissions defined for a group or user means that
when looking at the folder or group permissions in the Administration Client,
the user or group is not listed in the right hand column titled defined.
For example, the following query restriction allows a user to see documents for
only branches 345 and 437 in country A:
branch IN (345,437) and country = ‘AAA’
Note: Consider using a short field name to minimize the amount of typing you
have to do to enter the query restriction. In this case, you might consider using
a field name of b for the branch and c for the country.
Reports
A report definition is specified within Content Manager OnDemand by the
definitions in the folder, application group, application, and storage sets. You
need to carefully consider the names you use for each of these.
The default search operator must be carefully chosen for each folder field
because the search operator cannot be changed by the user when using a
thin client (internet browser).
For *PUBLIC, we always had the country folder field defined with a Query
order of 0 and Hit List order of 0 so it was never seen by the user. The branch
folder field was defined with a Query order of 0 and a Hit List order of 2 (if
there is a branch application group field defined). Even though the user
cannot search for the branch number, having it in the hit list provided feedback
that they are looking at their data.
For the headquarters groups, folder fields were defined differently because
they need to search across multiple countries and branches. The country
folder field was defined as Query field 1 and Hit List field 2. The branch folder
field was defined as Query field 2 and Hit List field 3.
Application groups:
Because we have multiple application groups in a folder and one of the folder
fields has a field type of application group, the users will see the application
group name when it is used as a search field or a hit list field. This name
cannot be mapped to another value so we had to choose a name that is
descriptive of the report and that the user will recognize. For example, rather
than using the name RP0135 (which is the value in the user data spooled file
attribute), we used the name of the report, which is the Paid Exception
Journal. This requirement means that an output monitor exit must be used to
specify the application group name.
Note: When you need to create a new version, you should rename the old
application to include the version number, then copy it to a new application
with the name without the version number and make the modifications to
that new application definition. This keeps the application name of the
current version always the same so you do not have to make changes to
the report archiving process.
Note: You cannot create or modify a storage set using the Administration
Client when connected to an iSeries server. Creating, updating, and
deleting of storage sets can only be done indirectly by working with the
migration policy using the Content Manager OnDemand Common Server
plug-in in the iSeries Navigator, which is part of the Access for Windows
product.
These eight names provided all the application group field names we needed to
use for more than 90% of the application groups we had to define for the project.
Because the names we needed to use for the application group and applications
were not in any of the spooled file attributes, an output queue monitor exit
program had to be written. The first challenge was to limit the number of exit
programs we needed to write. Normally a monitor looks for a program by the
name of the application that is determined by the APPSRC parameter for the
STRMONOND command. Because our design was to use the User Data value to
determine the application name, we would need hundreds of exit programs. For
limit this we decided to use *FORMTYPE for the APPSRC value because it
always contained *STD. This would call a program by the name of STD as the
exit program (Content Manager OnDemand strips off characters that are not valid
as a program name and changes any hyphens in the name to underscores). This
allowed us to write a single exit program to handle all our spooled files. The
function of this program was to take the values passed to it (spooled file name,
user data, output queue name) and based on these values, determine what
application group and application should process the report. We decided that we
would use a database table to define the relationship between the spooled file’s
user data and spooled file name to come up with the application group name. In
most cases, the user data provided a unique mapping, but when it did not, the
spooled file name was used to get a unique mapping for the application group
name. The application name was the User Data with part of the output queue
name appended to it.
We decided we would start with five reports to verify that the design was
appropriate for our reports. We started with the account maintenance journal.
The first three pages of the report are shown in Figure 6-2 on page 268. This
report is a branch type report, so we needed to separate it into documents by
branch number. We first selected trigger 1 to be the name of the program that
appears in the header at the right side of each page. Based on that trigger, we
located the three index fields: rptdate , accttype, and branch. We set
BREAK to Yes for the branch field so each branch would be in a new document.
The accttype has values of Current Accounts and Savings Account in the
reports. Because the first character of the values is unique, the accttype was
defined as a string with a length of one to minimize the size of the index.
Branch 123 1
____________________________________________________________________________________________________________________________________
21-03-2005 FICTIONAL INTERNATIONAL BANK A PROCESS-THRU 23-03-2005 PAGE 2
CURRENT ACCOUNTS RP0046
TRANSACTION SYSTEM ACCOUNTS MAINTENANCE JOURNAL 3-21-05 23:35:07 20-0001
ACCT NBR NAME
FIELD DESCRIPTION OLD DATA NEW DATA LST MTN T/C TIME WORKSTATION
Next Credit Int Date - Jul 0000000 0/00/00 2003090 31/05/04 13-05-04 023 10:55:27 W9346020
Pay None/Pay All Spc Inst Cde 0 1 21-03-04 026 13:26:28 W9268003
The name of the application must be RP0046-country because the user data for
this report’s spooled file is RP0046. Note that the query restriction in the
application group for the headquarters group does not contain any restriction for
the branch application group field, so they can see information for all branches.
The final report is the Checking Statements and the first three pages of a sample
report are shown in Figure 6-8 on page 278. This report is a branch type report,
so we needed to separate it into documents by branch number. Getting the index
data is more difficult for this report because it is printed on a pre-printed form. It is
not unusual for reports like this to have a variable number of records in the
spooled file between index fields and this is no exception. To overcome this
problem, we have to define multiple triggers so that we can find the various index
fields. We first selected trigger 1 to be the new page carriage control character.
We then defined trigger 2 to be the page number 1 so we will not try to locate
the fields on the second and following pages of a multi-page statement. Trigger 3
is a record range trigger and is the century portion of the statement date. It is a
record range trigger because the statement date prints below the customer name
and address, which will vary in the number of lines. The first three index fields,
branch number, account number, and customer name, are all located by
trigger 2. The statement date is located by trigger 3. We set BREAK to Yes for
the account number field so each statement would be in a new document.
This is in a folder by itself called Checking Statements because the index fields
are different from all other reports. User/Group fields were specified for the
auditing group because the auditing group in headquarters needs the capability
to see checking statements in any country and branch. For the auditing group,
both the branch and country need to be searchable folder fields. The user data
for this spooled file contains RP9142 so the name of the application must be
RP9142-country.
The sample data output is shown in Figure 6-8 on page 278. A summary of the
definitions for Checking Statements is displayed in Table 6-7 on page 279.
JONES STREET
FICTIONAL HOTEL A
200 WEST MAIN STREET
7TH FLOOR CORPORATE ACCOUNTING CURRENT ACCOUNT
LOS ANGELES, CA 11111 USA
JUL 23 2005
123
JONES STREET
FICTIONAL
EXPEDITION COMPANY E
P O BOX 3456
FAR SOUTH, ANTARCTICA CURRENT ACCOUNT
HOLD MAIL AT MAIN BRANCH
IDV JUL 23 2005
124Y
In addition to report retrieval, testing was done archiving data to verify that all
reports could be archived after the nightly batch processing and before the
branches open in the morning.
Training
We first had a class to train the administrators so that they understood how to
define reports, users, groups, and assign permissions. This training class was
held for four days where each administrator received hands-on training.
User training was provided to a group of 15 people for one-half day who then
trained the general users in the various countries before each country started
production use of Content Manager OnDemand. This user training focused on
using the Web client to search for documents and view them. It also reviewed the
use of the icons that are on the viewer toolbar.
After the definitions were deployed to the production machine, we added the
following jobs to the job scheduler:
1. A job to run a CL program to start Content Manager OnDemand after the
backups were completed. This job did the following:
a. Start the Content Manager OnDemand server.
b. Start the Content Manager OnDemand output queue monitors.
2. A job to run a CL program to end Content Manager OnDemand before the
backups were started:
a. End the Content Manager OnDemand output queue monitors.
b. End the Content Manager OnDemand server.
3. A job to run DSM and ASM. This ended the output queue monitors, ran DSM
and ASM, and then re-started the output queue monitors.
We also set up the Windows 2000 Server to start ODWEK at 7:00 AM and to end
it at 7:00 PM every day.
Once this was done, we began to use the production machine to archive and
retrieve documents.
6.2.4 Implementation
Implementing Content Manager OnDemand consists of software installation and
configuration, application design, functional testing, performance testing,
training, and final deployment into production.
Application design
During application design, we decided how the folders, application groups,
applications, storage sets, users, and groups should be defined. We had already
determined that we would keep some reports and documents on disk for three
years and some for seven years. So we used iSeries Navigator to add the
System ASP as disk pool 1. See Figure 6-11.
If we had a lot of large reports, we would have used an aggregation size larger
than the default of 1000 kilobytes in order to have fewer objects in the disk pool.
The size can be changed at any time if necessary.
You may prefer to name the migration policies by the type of business
application. For example, create a PAYROLL policy for all application groups
used by the payroll department, which all need to be retained for 10 years. Or if
you plan to use optical storage, you may choose to put all reports that use optical
in a single policy. If you have different reports that you need to keep for a very
short time, for example, 30 days, create a policy called TEMPREPORTS and let
all those reports use this policy. You can still specify No maximum for the
storage level duration because the storage management in the application
groups will determine when the reports will expire.
Each application group has one application, and the names are the same for
both the application group and the application. The name matches the user data
field in the spooled file, so we can use the output queue monitor program to
automatically archive the files. MEMBSCAN and VENCHECKS (the scanned
TIFF images) match the batch and document classes we defined in Kofax Ascent
Capture.
In each application that has a variable length string field, we removed trailing
spaces for that field. We also noted that in the user training we would need to
make sure to tell the users to select the option Document Column List
Autosize so that the width of the fields in the document list would adjust to the
actual size of the fields.
The user does not search on Report Name or Report Name 2. These are filter
fields that are only displayed in the document list. There is always a value for
Report Name, but there is a value for Report Name 2 only when there is a
second line description on the report’s header page. See Figure 6-20 for an
example.
We created a folder for Billing and one for Inventory. Then we used the Report
Wizard to create each of the billing and inventory definitions and deleted each of
the individual folders the Wizard created. We mapped the fields from each
application group to the folders.
The INVOICES application group and application are for the invoices that the
company receives from vendors. We installed Kofax Ascent Capture to scan and
index the documents, then release them to an IFS directory on the iSeries. We
issued the command arsload to monitor that directory and archive the files into
Content Manager OnDemand. We used database validation in the document
class in Kofax Ascent Capture. A user scans an invoice and types in only the
Security
Security at the company is easy to manage. We have only two user types: user
and system administrator. We had already added the three administrators when
we set up Content Manager OnDemand and did the administrator training. We
created four user groups: Accounting, Financial, Customer Service, and Payroll.
Then we added users to one or more of those groups. As we created report
definitions, we gave Logical Views permission to *PUBLIC for each application
group. For each folder, we assigned permissions to user groups with no access
to *PUBLIC.
Functional testing
We created an output queue called ONDTEST and started a monitor for it. For
each report, we used the Report Wizard with a sample spooled file to create the
application group, application, and folder. Then we updated the storage
management and permissions in the application group and the date format, if
necessary, in the application. We also removed embedded and trailing
characters for variable length string fields. Then we moved the spooled file to the
ONDTEST queue. If it loaded successfully, we viewed the report in the Content
Manager OnDemand Windows Client to make sure the results were what we
expected. Then we showed the report to the users for approval.
When we trained the users, we showed them how to limit their searches by date
range and how to press the hand icon to stop the search.
Training
We gave informal hands-on training classes to the users so they could learn how
to find their reports and documents. We showed them many features of the
Content Manager OnDemand Windows Client, such as those described in
Chapter 3, “IBM Content Manager OnDemand for i5/OS implementation
guidelines” on page 75.
When we installed the Client, we told the users to check the Auto Note Retrieval
option, as shown in Figure 6-23. Now when they open a document that contains
a note, they see the yellow sticky note displayed and can easily click it to open it.
We told them to check the Set Document List Column Autosize option so that
the columns in the hit list would be sized correctly when variable length fields are
used.
We also trained the users who would be scanning the membership cards and
invoices. We taught the system administrators how to use Kofax Ascent Capture
to create batch and document classes. One of them attended a Kofax class to
get more education on the product.
We added several jobs to the OS/400 job scheduler so that we could automate
many of the Content Manager OnDemand processes. Backups are run after
midnight. After that, the server is started and the output queue monitors are
started. In the evening, the monitors are ended (the end time is in the
STRMONOND command), DSM and ASM are run with the STRDSMOND
command, the server is ended, and the ASP01 file system is unmounted. We
submit an arsload command from the job scheduler once a week, after weekly
backups when the system is shut down and re-started. The arsload program is
used to monitor the IFS directory where the files are sent from the PC scanning
station. The command we used is:
QSH CMD('arsload -d /ASCENT/SCAN01 -f -t 120')
Each day an operator looks to see if there are any spooled files in one of the
error output queues, or if there are any .failed files in the /ASCENT/SCAN01
directory. If so, an administrator gets involved to solve the problem.
The company sent their membership cards to a company who scans documents
and creates TIFF images. They also sent them a text file that contained a list of
member numbers and names. The scanning company created a CD with the
TIFF images and a text file with a record for each document. Each record
included the application group database field names and values for the
MEMBSCAN application group, along with the locations on the CD for the
associated images. We used this information to import and archive the files into
Content Manager OnDemand.
In addition to the knowledge background that the company had available to them,
they decided to also include the IBM Content Management Lab Services team in
the implementation process. The reasoning behind this was quite simple: They
wanted to minimize any implementation risk and take advantage of other IBM
customers’ implementation experience, thus ensuring a successful
implementation.
A team was assembled that included individuals from the application areas that
would see immediate benefits with the new solution: a Project Manager, IT
representatives (including z/OS system administrators, z/OS system
programmers, network administrators, storage administrators, and DB2
specialists), Content Manager OnDemand report administrators, and IBM
Content Management Lab Services. An end-to-end detailed project plan was
created addressing the following:
Verify that the prerequisite software products are installed and operational.
Enable the subsystems and interfaces required by Content Manager
OnDemand for z/OS, including UNIX System Services and TCP/IP. Verify
availability of proper levels of prerequisite z/OS server software. Customize
host-based software as required by Content Manager OnDemand.
Implement a dual store strategy of reports into current and new CMOS z/OS
applications.
The company required zero impact to its current content management
system, which forced a dual store of all current reports approach. This
approach continued throughout the conversion and implementation cycle.
Implement a client interface strategy to support the fund accounting report
approval process.
Facilitate the workflow approval process development using the Document
Audit Facility (DAF).
7.1.4 Implementation
Implementation of the Content Manager OnDemand for z/OS solution consists of
system design, installation and configuration, application design, performance
testing, training, and final deployment.
System design
Figure 7-1 on page 304 illustrates the Content Manager OnDemand system
overview as implemented for the company. The system has the following setup
and configuration:
Content Manager OnDemand is configured across two CPUs.
A DB2 shared environment and an OAMPLEX are implemented for data
sharing.
VIPA is used for user request routing.
A coupler is used for system synchronization.
Multiple instances of ARSLOAD are used for ingesting data into the system
that is acquired through JES.
ARSODF is used for package and deliver client data in a time critical,
distributed, and highly demanding environment.
A sysplex distributor and workload manager performs workload distribution
and provides maximum throughput on a continuous basis.
Sysplex Distributor/WLM
Dynamic VIPA
LPAR1 LPAR2 CICS
OAM OAM
arsload1 ASYS arsload1 CSYS
Shared HFS
JES JES
D2H
BCV
Remote Copy
Figure 7-1 Content Manager OnDemand for z/OS case study 1 - System overview
MS Excel, MS Access
Client Applications Windows CMOD (or other VB client) with
Browser
Desktop Client Macros, via common
DLL
Open Systems
Access Type Windows Client CMOD Prod CMOD UAT
Architecture (OSA)
Database Server
Layer DB2 subsystem D2H1 DB2 subsystem D2H2 DB2 subsystem D2I1 DB2 subsystem D2I2
(DB2 V8)
Database Layer
(Shared by DB2 D2H CMOD Databases D2I CMOD Databases
instances)
Archived Report
OAM in OAMPlex OAM in OAMPlex OAM in OAMPlex OAM in OAMPlex
Server
Archived Report
Tape with STK ATL Tape with STK ATL
Storage
Sysplex A Sysplex B
Figure 7-2 Content Manager OnDemand for z/OS case study 1 - Top to bottom view at document retrieval
architecture
Solution Overview
Firewall
Document Document OnDemand
Retrieval & Viewing Retrieval & Viewing Document Repository
Investment
Manager Server
Customer Fund
Accountant
Customer Portal
Documents
CICS
Internal Portal/
APP
External
Internet
archive
retrieval
Report
Print
Distribution
Customer Fund Optical
Accountant or tape
Archive
Media
Customer Portal PDA
Figure 7-3 Content Manager OnDemand for z/OS case study 1 - Solution overview
To design the Content Manager OnDemand for z/OS application, the following
information had to be gathered and reviewed:
Number of reports
Retention policies (data storage capacity)
Report types (data conversion mechanisms)
Capture mechanism (data source)
Report ingestion requirements (data capture rate)
Total number of users and client environment
Analysis of the gathered information provided both the system requirements and
the application design requirements.
The system requirements, which was the basis for the architecture previously
described, includes an initial sizing for MIPS and DASD storage requirements.
The MIPS sizing was considered initially as the system to be implemented was
new, so although it is possible to predict the number of reports that will be stored
in the system with a reasonable degree of accuracy, it is far more difficult to
predict users’ usage patterns of the new system. The existing retrieval patterns
were based on a system that did not meet their needs, so it was expected that
the new system would generate much higher volumes in terms of data retrieval
requests, and it did. The system requirements also included DASD storage
requirements.
Metadata definition
The Content Manager OnDemand report structure was identified and
implemented across two separate ingestion systems: Each of the ingestion
systems serves a different customer base, so there is no sharing of data between
them. It includes two sites:
SITEA
Application 7691
Application Groups 502
Folders 664
Storage Groups 95
SITEB
Application 3056
Application Groups 354
Folders 685
Storage Groups 59
Reports and documents were spread across multiple OAM storage groups.
Typically, a single storage group is allocated for all reports that have the same
retention requirements. The company decided that it would create several
storage groups that were defined with the same retention. This was done strictly
for availability and capacity planning purposes. A large segment of the stored
reports have the same retention values. By creating multiple storage groups, it
allowed the company to:
Balance the report storage distribution so that no one storage group gets too
big.
Allow for multiple OSMC tasks to be executing in parallel.
Avoid lock contention during report ingestion.
Report delivery
Report delivery was looked at as a new way of doing business going forward,
rather then allowing users to continually receive the printed reports that they may
or may not require to be printed any longer. The following points were used as
justification presented to management in the Return On Investment (ROI)
document:
Elimination of the endless paper trail. Save a tree. Go paperless.
I do not need the report printout anymore but never told anyone.
The mailroom cannot find you.
Do you know what you are getting? Nobody does.
Their approach to distribution was drastic. They turned all paper distributions off
and created an automated request process that required management approval.
Thus, users could request the reports to be delivered to them, and when
management approval was granted, these reports would be delivered to them
electronically as they were generated. This eliminated the report printing and
distribution costs. It also eliminated all distribution delays and lost reports. The
end result was a reduction of 85% in distribution overhead. Within the first year,
the company had a complete ROI.
The load (concurrent users and data throughput) on the system plus the different
system and data architectures meant that it would be necessary to create a set
of scripts to run against the two-tiered and three-tiered access environment.
These tests would simulate peak work loads on the system from a load and
retrieval perspective.
These tests were run continuously through the company’s development cycle.
The company’s new Java code was being developed at the same time that the
OnDemand code was being installed. This necessitated both tuning the Java
application as well as tuning the Content Manager OnDemand for z/OS
environment to maximize throughput for the business case scenarios. The
performance tests were run daily over several months allowing code or
environmental adjustments to occur between tests.
Initial tests revealed that the system would not meet the required amount of data
to be ingested in the predicted production environment. Through code
improvements and tuning efforts that occurred during the performance test
period, response times were improved beyond the original goals and the system
was now ready for production.
Training
The company identified three groups of individuals that were critical for training.
These were the system personnel, report administrators, and general users.
System personnel: Training involved the knowledge to perform everyday
monitoring and on going product support. This training was delivered during
the IBM Content Management Lab Services engagement.
Deployment
After all the performance objectives were accomplished, the new Content
Manager OnDemand for z/OS system was activated by switching from the test
system to the production system by changing the TCP/IP port number in the
VIPA. This allowed all new incoming requests to be routed to the Content
Manager OnDemand for z/OS server. The change was transparent to the
existing users. The phased in approach from the user perspective was used for
the cut over to production. Since all reports were being stored in both the old
archival repository and the new Content Manager OnDemand for z/OS
repository, the company guaranteed no interruption of report access to its
users community.
As users were trained in using the new client interfaces to Content Manager
OnDemand, access to the old system was eliminated.
Today, the system is fully operational and exceeds all users expectations. The
company is constantly adding new reports and documents to its electronic
archive. All aspects of the production system are highly automated. The activity
that requires the most work is the help that needs to be provided to new power
users when they first start developing their own code to interface with the Java
APIs.
We will begin our discussion by profiling the customer and describing their
business requirements. This will provide the reader with an understanding of the
scope and complexity of the problem that is to be solved. Then we will describe
how Content Manager OnDemand for z/OS was able to meet and exceed the
customers business needs by utilizing innovative implementation practices.
These practices enable the customer to minimize operational costs and
complexity by delivering the right information to the right people in a timely
manner.
The agency is one of the largest Federal Agencies in the US government. It has
offices in all of the 50 US states, as well as tens of thousands of employees and
provides services to the US population as a whole.
As a service provider, the agency needs timely access to both current and
historic information about all US citizens. The timeliness of the access is critical
to server the public on an On Demand basis. The agency’s clients want to be
assured that their data is safely stored and readily available whenever they
request it. At the same time, the agency’s employees do not know who the next
customer will be or what their requirements are. So, the accurate indexing and
fast retrieval of the stored data are critical.
An analysis of the existing system and the current business requirements led the
agency to consider the migration to Content Manager OnDemand for z/OS V7. A
follow-up study on the costs and benefits of migrating to Content Manager
OnDemand for z/OS V7 added clarity to the agency’s vision of the need for and
potential benefits of such a migration.
7.2.4 Implementation
Implementation of the Content Manager OnDemand for z/OS solution consists of
system design, installation and configuration, application design, performance
testing, training, and final deployment.
WLM Tape
Backup
S Lpar A
Y arszdocg
S WAS OD Server
Browser TCP/IP ArsSockd DB2
P
127.0.0.1
L Customized Port One DB2
Browser E OAM
OdWek
Exit
X Security exit Exit TCP/IP Batch Load
TCP D TCP
OAM
IP I IP
S
T
R Lpar N
I arszdocg
B WAS OD Server Shared
TCP/IP ArsSockd DB2
U Catalogue
127.0.0.1
Browser T Customized Data
Port One OAM
O OdWek
Exit
R Security exit Exit TCP/IP Batch Load
Data sharing
environment
WAS Cluster
Figure 7-4 Content Manager OnDemand for z/OS case study 2 - System architecture
From the average user perspective the complete process takes a couple of
seconds.
There are multiple identical copies of ars.cfg, one defined to each system. So
regardless of the system on which the batch load runs, it will always point to the
local host 127.0.0.1 and the same instance name, same port one (reserved in
TCP profile). Thus, the load will always be local (to the ARSSOCKD on which the
The following general steps were followed in installing and implementing the
Content Manager OnDemand for z/OS System. For details, refer to both the IBM
Content Manager OnDemand for z/OS: Introduction and Planning Guide,
GC27–1438 and the IBM Content Manager OnDemand for z/OS: Configuration
Guide, GC27–1373.
Application Group
The application group data table expiration type was set to LOAD. This meant
that at expiration time, when all the documents within the table had expired,
expiration could be carried out efficiently by simply dropping the table.
Backup
The DB2 and OAM backups are run daily. Backups are performed to tape and the
data is stored both locally and offsite. All databases (DB2 and OAM) are backed
up during the nightly cycle. Only the active tables need to be backed up on a
regular basis. Closed tables are backed up on a monthly basis.
This ensured that backups of the objects were also written to a backup storage
media.
Performance testing
The agency identified Content Manager OnDemand for z/OS as a mission critical
application, since it is being used for service delivery to its customers on a daily
basis. Originally, with V2 of Content Manager OnDemand, the agency had
The additional load (users and data) on the system plus the different system and
data architectures meant that it would not be possible to extrapolate performance
numbers from V2 previous performance data, so the agency devised two sets of
tests that would to a large extent emulate their production environment:
A set of script-driven, browser-based tests that it could run to simulate the
new expected retrieval load on the system. These tests were run nightly
through the agency’s development cycle. As the agency’s new Java code was
being developed at the same time that the Content Manager OnDemand code
was being installed, this necessitated both tuning the Java application as well
as tuning the Content Manager OnDemand environment to maximize
throughput for the agency’s scenario.
A set of load tests that simulated loading a variety of report size with different
number of indexes and document sizes. These tests were run nightly through
the agency’s development cycle. Initially, the tests were run on alternate
nights from the retrieval tests and towards the end of the tests period were run
in conjunction with the retrieval tests so as to load the system beyond what
was expected.
The performance tests were run nightly over several months, with code or
environmental adjustments being made between tests.
Initial tests revealed that the system would be unusable in production. The code
improvements and tuning efforts (based on the best practices document) that
occurred during the performance test period improved response times to the
desired goal and the system was now ready for production.
Deployment
The agency had done everything right, so the deployment should have gone off
without any problems. That did not happen.
So the good news was that the redundant server worked. The bad news was that
some more tuning needed to be done. Over the next two weeks, the problem was
tracked down and resolved. It was simply a matter of increasing the WebSphere
Application Server capacity by increasing the number of servant regions within
the WebSphere Application Server.
We will begin our discussion by profiling the customer and describing their
business requirements. This will provide the reader with an understanding of the
scope and complexity of the problem that is to be solved. Then we will describe
how Content Manager OnDemand for z/OS was able to meet and exceed the
customers business needs by utilizing innovative implementation practices, thus
allowing them to minimize operational costs and complexity by delivering the
right information to the right people in a timely manner.
An end-to-end detailed project plan was created addressing the following items:
Identify the proposed architecture, its components, and ability to meet the
business requirements.
A Windows Client was selected as the most suitable architectural
implementation for the institution’s administrative staff needs. A Web-based
interface was selected as the most suitable architectural implementation for
the institution’s faculty needs. Additionally, Java APIs were provided for
faculty (power users) that wanted to build their own interfaces.
7.3.4 Implementation
Implementation of the Content Manager OnDemand for z/OS solution consists of
system design, installation and configuration, application design, performance
testing, training, and final deployment.
System design
Figure 7-6 on page 332 illustrates the retrieval architecture of the implemented
system retrieval architecture. The architecture consists of the following design:
A two tier-system access is implemented for the administrative staff using the
Windows Client and for the system administrators using the Windows
Administration Client.
A three-tier system access is implemented for faculty (using the institution’s
enhanced browser) and is also provided through the Java APIs for power
users supporting their own implementations.
All communications between the clients and the Content Manager
OnDemand server is through a TCP/IP connection.
TCP/IP
CMOD Windows Client
System administrators
Administrative staff
Custom
Java API
Application
The following general steps were followed in installing and implementing the
Content Manager OnDemand for z/OS system. For details, refer to both the IBM
Content Manager OnDemand for z/OS: Introduction and Planning Guide,
GC27–1438 and the IBM Content Manager OnDemand for z/OS: Configuration
Guide, GC27–1373.
Application design
The institution implemented three different applications:
The first application was a follow on to the previous work from Content
Manager OnDemand V2.
The application supported the institution’s administrative staff. It provided
archive storage and online access to financial, personnel, and student
records. It was implemented using the Windows Client.
The second application was new and was in support of the faculty.
The application allowed for the storage, retrieval, and viewing of predefined
data types. These data types include line data, AFP data, Excel spreadsheet,
and Word documents.
In addition, it allowed for the storage and retrieval of data files. These files
were of other types that were not defined to the system. For example,
readings obtained from a spectrometer would be stored as a data blob in the
archive. The indexing and data type information is entered by the faculty
member as part of the store process.
Figure 7-7 Content Manager OnDemand for z/OS case study 3 - Application design for
administrative users
Folder-
Folder-1
Master
Application Group
Figure 7-8 Content Manager OnDemand for z/OS case study 3 - Application design for
faculty users
Performance testing
The institution performed three separate type of performance tests:
Load testing: The load tests encompassed running typical daily, monthly, and
annual load test cases. Testing revealed that a single load job was sufficient
to handle all the report data to be loaded within the given time frame.
Two-tier document retrieval: Two tier testing was conducted using a script that
executed the OnDemand commands. This script simulated the projected
number of users and their access intensity.
Training
The institution’s training requirements were minimal. There were generally three
types of skills that are needed:
System skills: The many years of experience that they had with V2
OnDemand provided them with most of the system skills needed. The
additional system skills needed for their implementation, mainly WebSphere
Application Server, UNIX System Services, and TCP/IP, had already been
acquired as part of being long time WebSphere Application Server users. The
main knowledge that they lacked was an understanding of the internals of V7
and the finer tuning points for their implemenatation.They were able to
acquire this knowledge from the IBM Content Management Lab Services
group during the joint installation and testing phases of the project.
Report administration skill: Even though the institution’s report administrators
were highly skilled V2 Content Manager OnDemand administrators, because
V2 of Content Manager OnDemand is different from V7 of Content Manager
OnDemand, and they were going to expand the usage of OnDemand to new
types of users (implying new data types), they decided that there would be
significant payoff to acquiring a full understanding of V7 administration
features and capabilities. These skills were acquired by first attending training
provided by IBM Learning Services. Further implementation specific skills
were then transferred from IBM Content Management Lab Services both in a
classroom environment and hands on throughout the project life cycle.
– IM110 - Introduction to IBM Content Manager OnDemand is designed for
individuals responsible for creating and loading applications into the
Content Manager OnDemand for z/OS system. It provides the basic
understanding of all areas of the Content Manager OnDemand for z/OS.
– OD105 - IBM Content Manager OnDemand System Administration is
specifically designed for individuals who are experienced at indexing and
loading documents and have a need for a greater in-depth knowledge of
the OnDemand system, either for system administration, maintenance, or
troubleshooting purposes.
User training: User training was developed in-house. The OnDemand
administrators conducted two in-house training sessions for existing users
Deployment
After all the installation, migration, and performance tuning work was completed,
the new Content Manager OnDemand for z/OS was placed in production simply
by changing the port number to that of the old Content Manager OnDemand
installation port number. This caused all new incoming requests to be routed to
the Content Manager OnDemand for z/OS server. The change was transparent
to the existing users. Over the next couple of days, the new Windows Client was
electronically installed across the campus.
The system is currently fully operational and meeting all users expectations. The
system aspect that requires the most work is the help that needs to be provided
to new power users when they first start developing their own code to interface
with the Java APIs.
Part 3 Appendixes
The publications listed in this section are considered particularly suitable for a
more detailed discussion of the topics covered in this book.
Other publications
These publications are also relevant as further information sources:
DB2 Universal Database for z/OS: SQL Reference, SC18-7426
IBM Content Manager OnDemand Distribution Facility Installation and
Reference Guide, SC27-1377
IBM Content Manager OnDemand for i5/OS Common Server Planing and
Installation Guide, SC27-1158
IBM Content Manager OnDemand: Messages and Codes, SC27-1379
IBM Content Manager OnDemand: User's Guide, SC27-0836
IBM Content Manager OnDemand for Multiplatforms Installation and
Configuration Guide, SC18-9232
IBM Content Manager OnDemand for z/OS and OS/390: Administration
Guide, SC27-1374
IBM Content Manager OnDemand for z/OS and OS/390: Configuration
Guide, GC27–1373
Online resources
These Web sites are also relevant as further information sources:
Content Manager OnDemand V8.4 Information Center:
http://publib.boulder.ibm.com/infocenter/cmod/v8r4m0/index.jsp
Create customized views for line data reports, found at:
http://www.ibm.com/developerworks/db2/library/techarticle/dm-0607wag
ner/
IBM Content Manager OnDemand product main Web site:
http://www.ibm.com/software/data/ondemand
Go to the specific product page by selecting the product (either OnDemand
for Multiplatforms, for i5/OS, or for z/OS and OS/390) and click Go. From the
specific product page, you can:
– Click the Information Center link to get the online Information Center.
– Click the Product manual link to obtain all manuals (in different
languages) for the specific product.
– Click the Product support link to get to the IBM Redbooks publications,
Technotes, and white papers.
– Click other links, such as Demos, Developer resources, and Web casts
to get other information.
IBM Tivoli Storage Manager: Quick Start, found at:
http://publib.boulder.ibm.com/tividd/td/tdprodlist.html
Index 347
workload manager 320 PDF Indexer 97
PDF indexer 15, 39, 159, 176
performance
N TSM storage and retrieval 133
NAS 21
Performance Monitor 73
Network Development (ND) 224
performance test 232, 312, 325
network I/O 19
separate type 336
Network-Attached Storage (NAS) 21
performance testing 233
Number of days to cache data
permission exit 43
retention setting 36
permissions 174
setup 54
O personalization 4
OAM 132 policy domain 30
object storage Posting Date field 148
long term 17 Postprocessor
OD77 compression 239 command 49
ODADMIN user 24 parameters 49
OnDemand administrator 77–78, 144, 169, 313, Preview exit 184
316 primary storage node 29
OnDemand archive 229 product philosophy 4
OnDemand client 80, 89, 133, 143, 295–296 production environment 227, 254
OnDemand database 306 production machine 258, 281
OnDemand Distribution Facility (ODF) 301, 306 existing storage sets 282
OnDemand group 260 project resource
OnDemand instance 230, 233 identify 12
create 25
OnDemand server 75, 77, 124–125, 222, 232, 251,
306–307, 331 Q
quality assurance (QA) 222
OnDemand system 220, 228, 253, 303, 313, 320
query file 242
OnDemand Toolbox 97, 298
query restriction 91–92, 174, 203, 263, 272
OnDemand user 77, 90, 201, 203, 260, 285
query restrictions 272, 274
OS/400 user profile 90
QUSRRDARS library 98–99
OS/400 user profiles 90
OnDemand V7 314, 316
OnDemand Web Enablement Kit (ODWEK) 78, R
214, 258–259 RDARS 8
operational content 4 Redbooks Web site 343
operations group 321 Contact us xv
OS/390 Indexing exits 182 report 159, 312
output exit 41 administrator 302
output queue 76, 100, 257, 265 setup 51, 187
STRMONOND command 110 structure 310
output queue monitor 282 Report administrator 94, 119, 210, 260, 302, 312
report data 5–6, 257, 277, 319
report definition 55, 107, 187, 204, 221, 263, 272,
P 307, 321
parallel load jobs 149
initial validation 321
Parallel Sysplex 129
report ID 109, 291
PDF file 146
Report Management and Distribution System
Index 349
monitoring Windows client software 321, 333
system 71 word processing 4
Performance Monitor 73 workgroup documents 4
Task Manager 74 workload manager 320
System Storage Archive Manager server 31 WORM Disk arrays 24
system tables
associated tablespace 155
X
Xenos transforms 39
T
tablespace create exit 184
tablespace creation exit 48
Z
z/OS system
Task Manager 74
administrator 316, 329
test result 210
Content Manager OnDemand 320, 326
Tivoli Storage Manager 24, 222
host Content Manager OnDemand 321, 333
database 223
new Content Manager OnDemand 313
Tivoli Storage Manager (TSM) 78, 131, 133
programmer 302, 316
Toolbox
z/OS V7
OnDemand 97
Content Manager OnDemand 314–315
training 68, 210, 228, 281, 289, 313, 326
Manager OnDemand 314–315
TSM 78
zFS 135
configuration 30
storage and retrieval performance 133
U
Unified login exit 184
UNIX System Services profile 136
unstructured data 4
user data 88, 98, 257–258
user group 91–92, 260, 295
user IDs 315
User Type
Permission Settings 262
user type 94, 262
authority settings 94
V
VIPA 128
performance 129
Virtual Private Network (VPN) 331
VSAM 134
W
Web content 4
Web interface 307, 321
Windows Client 224, 228, 306–307, 320–321,
332–333
Windows client 224, 321
Product philosophy This IBM Redbooks publication will help you implement an
and history IBM Content Manager OnDemand solution from the INTERNATIONAL
beginning to the end. We discuss the various stages of the TECHNICAL
Platform specific Content Manager OnDemand solution implementation, SUPPORT
implementation including planning, software installation and configuration, ORGANIZATION
design, application setup and verification, functional testing,
guidelines
performance testing, training, and finally deployment into
production.
Multiple case studies BUILDING TECHNICAL
for various platforms The book is intended to provide end-to-end implementation INFORMATION BASED ON
guidelines to audiences who already have general Content PRACTICAL EXPERIENCE
Manager OnDemand product knowledge. To really help you
understand the implementation process, we provide case
studies drawn from real-life implementations. We cover all IBM Redbooks are developed by
the IBM International Technical
platforms of the Content Manager OnDemand products, Support Organization. Experts
which include Multiplatforms, i5/OS, and z/OS. from IBM, Customers and
Partners from around the world
create timely technical
information based on realistic
scenarios. Specific
recommendations are provided
to help you implement IT
solutions more effectively in
your environment.