Download PDF (1.3 MB) - IBM Redbooks
Download PDF (1.3 MB) - IBM Redbooks
Download PDF (1.3 MB) - IBM Redbooks
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
4.14.11 Suggestions for Business Monitor<br />
This section describes ways to tune and maximize the performance of Business Monitor V8.0.<br />
Improving concurrency by setting registry variables<br />
DB2 allows you to defer row locks for cursor stability (CS) or read stability (RS) isolation<br />
scans in certain cases. This deferral can last until a record is known to satisfy the predicates<br />
of a query when row locking is performed during a table or index scan.<br />
To improve concurrency, deferring row locking until after determining that a row qualifies for a<br />
query might be possible. Usually, concurrency is improved by setting the registry variables<br />
DB2_SKIPDELETED to permit scans to unconditionally skip uncommitted deletes, and<br />
DB2_SKIPINSERTED to permit scans to unconditionally skip uncommitted inserts.<br />
Example 4-4 shows how to enable these two registry variables for the MONITOR database.<br />
Example 4-4 Enabling registry values DB2_SKIPDELETED and DB2_SKIPINSERTED<br />
db2 connect to MONITOR<br />
db2set DB2_SKIPDELETED=ON<br />
db2set DB2_SKIPINSERTED=ON<br />
Avoiding full transaction log<br />
DB2 Health Monitor (HMON) regularly captures information about the database manager,<br />
database, table spaces, and tables. It calculates health indicators based on data retrieved<br />
from database system monitor elements, the operating system, and the DB2 system.<br />
Transactions hang if HMON examines the status for the following table and the transaction<br />
occupies the entire transaction log, resulting in an error with SQLCODE 964:<br />
.SIBOWNER<br />
To prevent this error, you can disable the HMON process by using the following command:<br />
db2 update dbm cfg using HEALTH_MON OFF<br />
Setting lock timeout properly<br />
The LOCKTIMEOUT parameter specifies the number of seconds that an application waits to<br />
obtain a lock. This parameter helps avoid global deadlocks for applications. If you set this<br />
parameter to 0 (zero), the application does not wait for locks. In this situation, if the lock is<br />
unavailable at the time of the request, the application immediately receives a -911 return<br />
code.<br />
If you set this parameter to -1, lock timeout detection is turned off.<br />
A value of 30 seconds might be a good starting value; tune as necessary after setting this<br />
value. The following example shows how to set this parameter for the MONITOR database.<br />
Example 4-5 Starting value for LOCKTIMEOUT<br />
db2 -v update db cfg for MONITOR using LOCKTIMEOUT 30<br />
Limiting event XML to 32 KB where possible<br />
Events that are small enough are persisted to a regular VARCHAR column in the incoming<br />
events table; large events are persisted to a binary large object (BLOB) column instead. In<br />
DB2, the largest VARCHAR column is 32768 bytes. Performance improves considerably<br />
when a VARCHAR column is used instead of a BLOB.<br />
Chapter 4. Performance tuning and configuration 87