Puppet controls are Puppet defined types that ensure a certain security control is implemented. Puppet changes the system in order to make the system compliant.

Description of the control

The maxappls parameter specifies the maximum number of concurrent applications that can be connected (both local and remote) to a database. In an instance with a single database, it is recommended that this value be set to AUTOMATIC. While this indicates that any number of connections should be allowed, an upper limit of max_connections database manager configuration parameter is still enforced. If there are multiple databases within the instance, then the sum of maxappls for each database should be less than or equal to max_connections. When AUTOMATIC is used, maxappls can also have a parameter. The value is not used to determine the maximum number of connections, but rather for dependent parameters, such as pckcachesz and catalog_cachesz that can derive their value from maxappls. In such a case the value specified with AUTOMATIC should represent the expected number of connections.


By default, Db2 allows an unlimited number of users to access the Db2 instance. In addition to giving access to the Db2 instance to authorized users only, it is recommended to set a limit to the number of users allowed to access a Db2 instance. This helps prevent denial of service conditions should an authorized process malfunction and attempt many simultaneous connections.


To deliberately skip this control (e.g. meaning don’t use Puppet to enforce this setting), we provide you with two ways:

1) Add db2_secured::controls::set_maximum_number_of_applications: skip to your hiera data. This will skip this control for ALL systems.
3) Add an entry with the content set_maximum_number_of_applications to the array value db2_secured::skip_list in your hiera data.


This control is used in the following benchmarks:


Attribute Name Short Description
title The database identifier to apply the control to.


The database identifier to apply the control to.

All controls need an database identifier to apply the control to. Here is a simple example:

db2_secured::controls::control_name { 'db2inst1/MYDB':}

In this example, the string dbinst1 is the instance, the string MYDB is the database to apply the control to.

Back to overview of controls::set_maximum_number_of_applications