This option sets the maximum multiprogramming level of the database server. It limits the maximum number of tasks (both user
and system requests) that the database server can execute concurrently. If the database server receives an additional request
while at this limit, the new request must wait until an executing task completes. The number of active tasks that can execute
simultaneously depends on the number of database server threads and the number of logical processors in use.
The maximum number of combined unscheduled and active requests is limited by the -gm database server option, which limits
the number of connections to the database server.
Setting the -gnh value too high can result in errors because a larger portion of the system's address space is consumed for
The database server's kernel uses tasks as the scheduling unit. The execution of any user request requires at least one task.
However, a request may cause the scheduling of additional tasks on its behalf. One example of this behavior is if the request
involves the execution of an external procedure or function (Java, Perl, CLR, and so on) that in turn makes database requests
back into the database server.
When intra-query parallelism is involved, each access plan component executed in parallel is a task. These tasks count toward
the -gnh limit as though they were separate requests. However, tasks created for intra-query parallelism are not reflected
in the database properties that track the number of active and inactive requests.
A stack of the size specified by -gss is allocated for each database server worker. The maximum number of workers is specified
by the -gnh option for network servers and the -gn option for personal servers. If you set a large -gss value, and a large
value for the maximum number of workers, then the database server may not be able to start, or the size of the cache can be
limited significantly. For example if you specified -gss 16M and -gnh 100 when starting the database server, then 1.6 GB of
server address space would be reserved for stacks.