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