1.94 LOBMEMORY

Valid For

Extract and Replicat for DB2 z/OS

Description

Use the LOBMEMORY parameter to control the amount of memory and temporary disk space available for caching transactions that contain LOBs. Because Oracle GoldenGate applies only committed transactions to the target database, it requires sufficient system memory to store LOB data until either a commit or rollback indicator is received.

This parameter is for use with a DB2 z/OS database. For all other databases, use the CACHEMGR parameter.

About Memory Management with LOBMEMORY

LOBMEMORY enables you to tune the cache size of Oracle GoldenGate for LOB transactions and define a temporary location on disk for storing data that exceeds the size of the cache. Options are available for defining the total cache size, the per-transaction memory size, the initial and incremental memory allocation, and disk storage space.

LOB transactions are added to the memory pool specified by RAM, and each is flushed to disk when TRANSRAM is reached. An initial amount of memory is allocated to each transaction based on INITTRANSRAM and is increased by the amount specified by RAMINCREMENT as needed, up to the maximum set with TRANSRAM. Consequently, the value for TRANSRAM should be evenly divisible by the sum of (INITTRANSRAM + RAMINCREMENT).

Default

See option defaults

Syntax

LOBMEMORY
[RAM size]
[TRANSRAM size]
[TRANSALLSOURCES size]
[INITTRANSRAM size]
[RAMINCREMENT size]
[DIRECTORY (directory, max_directory_size, max_file_size)]
RAM size

Specifies the total amount of memory to use for all cached LOB transactions. The default is 200 megabytes. The value can be specified in bytes or in terms of gigabytes, megabytes, or kilobytes in any of the following forms:

GB | MB | KB | G | M | K | gb | mb | kb | g | m | k

TRANSRAM size

Specifies the total amount of memory to use for a single LOB transaction. The default is 50 megabytes. The value can be specified in bytes or in terms of gigabytes, megabytes, or kilobytes in any of the following forms:

GB | MB | KB | G | M | K | gb | mb | kb | g | m | k

TRANSRAM should be evenly divisible by both INITTRANSRAM and RAMINCREMENT for optimal results.

TRANSALLSOURCES size

Specifies the total amount of memory and disk space to use for a single LOB transaction. The default is 50% of total available memory (memory and disk). The value can be specified in bytes or in terms of gigabytes, megabytes, or kilobytes in any of the following forms:

GB | MB | KB | G | M | K | gb | mb | kb | g | m | k

INITTRANSRAM size

Specifies the initial amount of memory to allocate for a LOB transaction. The default is 500 kilobytes. The value can be specified in bytes or in terms of gigabytes, megabytes, or kilobytes in any of the following forms:

GB | MB | KB | G | M | K | gb | mb | kb | g | m | k

RAMINCREMENT size

Specifies the amount of memory to increment when a LOB transaction requires more memory. The default is 500 kilobytes. The value can be specified in bytes or in terms of gigabytes, megabytes, or kilobytes in any of the following forms:

GB | MB | KB | G | M | K | gb | mb | kb | g | m |

DIRECTORY (directory, max_directory_size, max_file_size)

Specifies temporary disk storage for LOB transaction data when its size exceeds the maximum specified with TRANSRAM. You can specify DIRECTORY more than once.

  • directory is the fully qualified name of a directory. The default is the dirtmp sub-directory of the Oracle GoldenGate directory.

  • max_directory_size is the maximum size of all files in the directory. The default is 2 gigabytes. If the space specified is not available, then 75% of available disk space is used.

  • max_file_size is the maximum size of each file in the directory. The default is 200 megabytes.

Values can be specified in bytes or in terms of gigabytes, megabytes, or kilobytes in any of the following forms:

GB | MB | KB | G | M | K | gb | mb | kb | g | m | k

The directory size and file size must be greater than the size of the memory specified with RAM.

The file names use the following format.

group_blob_00001.mem

or...

PID_blob_00001.mem

A group name is used for online processes. A system process ID number (PID) is used for one-time runs specified with the SPECIALRUN parameter.

The format for a threaded Extract is similar to the following, depending on the database.

group_thread #_00001.mem

Examples

Example 1   

The following example allows per-transaction memory to be incremented ten times before data is flushed to disk, once for the initial allocation specified with INITTRANSRAM and then nine more times as permitted by RAMINCREMENT.

LOBMEMORY DIRECTORY (c:\test\dirtmp, 3000000000, 300000000), &
RAM 8000K, TRANSRAM 1000K, INITTRANSRAM 100K, RAMINCREMENT 100K
Example 2   

The following is the same as the preceding example, but with the addition of a second directory.

LOBMEMORY DIRECTORY (c:\test\dirtmp, 3000000000, 300000000), &
DIRECTORY (c:\test\dirtmp2, 1000000000, 5000000), &
RAM 8000K, TRANSRAM 1000K, INITTRANSRAM 100K, RAMINCREMENT 100K