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