10.2.5.2.1 How Server-Dispatched Threads Are Used
In response to clients’ requests for a service, the server dispatcher creates multiple threads (up to a configurable maximum) in one server that can be assigned to various client requests concurrently. A server cannot call tpinit().
               
Each dispatched thread is associated with a separate context. This feature is useful in both conversational and RPC servers. It is especially useful for conversational servers which otherwise sit idle, waiting for the client side of a conversation while other conversational connections are waiting for service.
This functionality is controlled by the following parameters in the SERVERS section of the UBBCONFIG(5) file and the TM_MIB(5).
               
| UBBCONFIG Parameter | MIB Parameter | Default | 
|---|---|---|
| MINDISPATCHTHREADS | TA_MINDISPATCHTHREADS | 0 | 
| MAXDISPATCHTHREADS | TA_MAXDISPATCHTHREADS | 1 | 
| THREADSTACKSIZE | TA_THREADSTACKSIZE | 0 (representing the OS default) | 
- Each dispatched thread is created with the stack size specified
            by THREADSTACKSIZE(orTA_THREADSTACKSIZE). If this parameter is not specified or has a value of 0, the operating system default is used. On a few operating systems on which the default is too small to be used by the Oracle Tuxedo system, a larger default is used.
- If the value of this parameter is not specified or is 0, or if
            the operating system does not support setting a
            THREADSTACKSIZE, then the operating system default is used.
- 
                     MINDISPATCHTHREADS(orTA_MINDISPATCHTHREADS) must be less than or equal toMAXDISPATCHTHREADS(orTA_MAXDISPATCHTHREADS).
- If MAXDISPATCHTHREADS(orTA_MAXDISPATCHTHREADS) is 1, then the dispatcher thread and the service function thread are the same thread.
- Initially, the system boots MINDISPATCHTHREADS(orTA_MINDISPATCHTHREADS) server threads.
- The system never boots more than
            MAXDISPATCHTHREADS(orTA_MAXDISPATCHTHREADS) server threads.
Parent topic: Work Phase