Application Control Heap Size (app_ctl_heap_sz)

Configuration Type
Database

Parameter Type
Configurable

Default [Range]

Database server with local and remote clients
128 [1-64 000]

Database server with local clients
64 [1-64 000] (for non-UNIX platforms)

128 [1-64 000] (for UNIX-based platforms)

Partitioned database server with local and remote clients
256 [1-64 000]

Unit of Measure
Pages (4 KB)

When Allocated
When an application starts

When Freed
When an application completes

Related Parameters

This parameter determines the maximum size, in 4 KB pages, for the application control shared memory. Application control heaps are allocated from this shared memory.

One application control heap is allocated for each application at the database where the application is active (or, in the case of a partitioned database system, at each database partitionwhere the application is active). The heap is allocated during connect processing by the first agent to receive a request for the application at the database (or database partition). The heap is required to share information between agents working on behalf of the same application (in a partitioned database environment, the sharing occurs at the database partition level: sharing does not occur across database partitions).

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.

Notes:

  1. In a partitioned database environment, this heap is used to store copies of the executing sections of SQL statements for agents and subagents. Symmetric multiprocessor agents (SMP) subagents, however, use applheapsz, as do agents in all other environments.

  2. Allocation only occurs for other databases that have the intra_parallel parameter set on, and the CURRENT DEGREE special register set to a value greater than one (1). For more information about the CURRENT DEGREE special register, refer to the SQL Reference.

Recommendation: Initially, start with the default value. You may have to set the value higher if you are running complex applications, if you have a system that contains a large number of database partitions, or if you use declared temporary tables. The amount of memory needed increases with the number of concurrently active declared temporary tables. A declared temporary table with many columns has a larger table descriptor size than a table with few columns, so having a large number of columns in an application's declared temporary tables also increases the demand on the application control heap.