226 Performance Tuning for Content Manager
Also watch LOCK_LIST_IN_USE (total lock list memory in use). If this element is
high (exceeds 50% of the defined LOCKLIST size), you might want to consider
increasing the size of the parameter. Note that the monitor element is reported in
bytes, but the LOCKLIST parameter is in 4-kilobyte pages.
To determine the maximum number of locks held by a given transaction, check
the LOCKS_HELD_TOP (maximum number of locks held) monitor element. The
monitor information is provided at a transaction level, not an application level.
The following steps help you determine the number of pages required for your
lock list:
1. Calculate a lower bound for the size of your lock list using one of the following
formulas, depending on your environment:
(512 * x * MAXAPPLS) / 4096
With connection concentrator enabled:
(512 * x * MAX_COORDAGENTS) / 4096
512 is an estimate of the average number of locks per application and x is the
number of bytes required for each lock against an object that has an existing
lock (36 bytes on 32-bit platforms, 56 bytes on 64-bit platforms).
2. Calculate an upper bound for the size of your lock list using the formula:
(512 * y * MAXAPPLS) / 4096
y is the number of bytes required for the first lock against an object: 72 bytes
on 32-bit platforms, 112 bytes on 64-bit platforms.
3. Estimate the amount of concurrency you will have against your data and
based on your expectations; choose an initial value for locklist that falls
between the upper and lower bounds, which you have calculated.
4. Using the database system monitor, tune the value of this parameter.
You might also want to increase LOCKLIST if MAXAPPLS is increased, or if the
applications being run perform infrequent commits.
You should consider performing a rebind after changing this parameter.
8.6.20 Application control heap size (APP_CTL_HEAP_SZ)
Impact
DB - Medium
Description
For partitioned databases, and for non-partitioned databases with
intra-parallelism enabled, this parameter specifies the average size of the shared
Chapter 8. Tuning DB2 for Content Manager 227
memory area allocated for an application. For non-partitioned databases where
intra-parallelism is disabled, this is the maximum private memory that will be
allocated for the heap. There is one application control heap per connection per
partition.
The application control heap is required primarily for sharing information between
agents working on behalf of the same request. Use of this heap is minimal for
non-partitioned databases when running queries with a degree of parallelism
equal to 1.
This heap is also used to store descriptor information for declared temporary
tables. The descriptor information for all declared temporary tables that have not
been explicitly dropped is kept in this heap’s memory and cannot be dropped
until the declared temporary table is dropped.
Default values (range)
128 (1 - 64,000) pages for database server with local and remote clients
64 (1 - 64,000) pages for database server with local clients, non-UNIX platforms
128 (1 - 64,000) pages for database server with local clients, UNIX platforms
256 (1 - 64,000) pages for partitioned database server with local and remote
clients
To update
Run the following DB2 command:
db2 update db cfg for <database name> using APP_CTL_HEAP_SZ <parameter
value>
Our recommendation
The Content Manager installation program changes this to 1000 for the Library
Server and 128 for the Resource Manager.
Use these default values. If you have memory constraints, reduce the value on
the Library Server database.

Get Performance Tuning for Content Manager now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.