app_ctl_heap_sz - Application control heap size configuration parameter

This parameter has been deprecated since Version 9.5, but is still being used by pre-Version 9.5 data servers and clients. Any value specified for this configuration parameter is ignored by the database manager in Db2® Version 9.5 or later releases. In Version 9.5, app_ctl_heap_sz has been replaced by the appl_memory configuration parameter.
Note: The following information applies only to pre-Version 9.5 data servers and clients.
Configuration type
Database
Parameter type
Configurable
Default [range]
Database server with local and remote clients
  • 128 [1 - 64 000] when intra_parallel is not enabled
  • 512 [1 - 64 000] when intra_parallel is enabled
Database server with local clients
On Linux and UNIX platforms:
  • 128 [1 - 64 000] when intra_parallel is not enabled
  • 512 [1 - 64 000] when intra_parallel is enabled
On Windows platforms:
  • 64 [1 - 64 000] when intra_parallel is not enabled
  • 512 [1 - 64 000] when intra_parallel is enabled
Partitioned database server with local and remote clients
512 [1 - 64 000]
Unit of measure
Pages (4 KB)
When allocated
When an application starts
When freed
When an application completes

For partitioned databases and for non-partitioned databases with intra-parallelism enabled, this parameter specifies the average size of the shared memory area allocated for an application. For non-partitioned databases where intra-parallelism is disabled, this is the maximum private memory that is allocated for the application control heap. There is one application control heap per connection per database partition.

The application control heap is required primarily for sharing information between agents working on behalf of the same request. Usage 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 the memory of the application control heap and cannot be dropped until the declared temporary table is dropped.

Recommendation: Initially, start with the default value. You might 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.