Sets the maximum multiprogramming level - the maximum number of tasks that the database server can execute concurrently.
dbsrv12 -gnh integer ...
Four times the -gn database server option value
All operating systems except Windows Mobile.
Network database server only.
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 stack space.
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.
![]() |
Discuss this page in DocCommentXchange.
|
Copyright © 2010, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.0 |