Table 1 lists the number
of threads used by selected z/OS Explorer functions.
"u" In the "Threads" columns indicates that the amount must be multiplied
by the number of concurrently active users using the function. The
thread count is listed per process, as limits are set at this level.
RSEDx: These threads are created in the RSE thread pool, which
is shared by multiple clients. All threads ending up in the same thread
pool must be added together to get the total count.
Active: These threads are part of the process that actually does
the requested function. Each process is a stand-alone unit, so there
is no need to sum the thread counts, even if they are assigned to
same user ID, unless noted otherwise.
Bootstrap: Bootstrap processes are needed to start the actual
process. Each has 1 thread, and there can be multiple consecutive
bootstraps. There is no need to sum the thread counts.
Table 1. Thread count. This
table lists the number of threads used by selected z/OS Explorer functions.
Threads
User ID
Description
RSEDx
Active
Bootstrap
-
(f) 4 + 1u
-
STCJMON
JES Job Monitor
-
15
2
STCRSE
RSE daemon
-
-
-
STCRSE
RSE daemon APF authorized
-
2
-
STCRSE
RSE daemon APF authorized (send)
(a,g) 14 + 8u
-
(a) 1
STCRSE
RSE thread pool with single-threaded
miners
(a,g) 14 + 19u
-
(a) 1
STCRSE
RSE thread pool, with multi-threaded miners
-
(a) 1
-
STCRSE
RSE thread pool APF authorized
-
2u
-
<userid>
TSO (Interactive Gateway)
-
(b) 4u
(b) 1u
<userid>
TSO (Legacy ISPF Gateway)
-
2u
-
<userid>
TSO (APPC)
6u
1u
-
STCRSE and <userid>
z/OS UNIX shell
(d) 1
-
-
STCRSE
Download
(e) 1
-
-
STCRSE
Search
1u
-
-
STCRSE
Timer for idle timeout
Note:
(a) There is at least 1 RSE thread pool address space active.
Refer to Address space count to
determine the actual number of RSE thread pool address spaces.
(b) In normal situations, and when using the default configuration
options, there is 1 ISPF Gateway active per user. The actual number
can vary, as described in Address space count.
Most MVS data set-related
actions use the TSO Commands service, which can be active in the ISPF
Client Gateway or an APPC transaction, respectively.
(d) Each download of host data will use a separate thread.
This thread will end when the data is transferred to the client.
(e) Each remote search will use a separate thread. This
thread will end when the results are transferred to the client.
All listed threads stay active until the related process ends,
unless noted otherwise.
The normal thread count for RSE APF-authorized code is
1. However, during startup, there are temporarily 13 or more simultaneous
threads active.
(f) A single user can have multiple active threads in
JES Job Monitor to allow for concurrent processing of multiple requests.
(g) User-specific miners can be started in two ways;
all miners for a single user can share a single thread (dubbed single-threaded
mode), or each miner uses a dedicated thread (dubbed multi-threaded
mode). Grouping all miners for a user on a single thread reduces thread
usage within the thread pool, but might cause some delays in command
processing when a user is multi-tasking. The startup method is controlled
by the DSTORE_USE_THREADED_MINERS directive in rse.env.
The sample rse.env uses the multi-threaded mode.
Use the formula in Figure 1 to
estimate the maximum number of threads used by an RSE thread pool in a single-threaded miner setup. Use the formula in Figure 2 to estimate the
maximum number of threads used by an RSE thread pool in a multi-threaded
miner setup. Use the formula in Figure 3 to estimate
the maximum number of threads used by JES Job Monitor. Figure 1. Maximum
number of RSE thread pool threads (single-threaded miners)
Figure 2. Maximum
number of RSE thread pool threads (multi-threaded miners)
Figure 3. Maximum number of JES Job Monitor threads
Where
"Np" represents the maximum number of concurrent users
in this thread pool. The default settings aim for 10 users
per thread pool.
"N" represents the maximum number of concurrent users.
"x" is one of the following values, depending on the selected
configuration options.
Table 2. Values of x. This
table lists the possible values of "x".
Option
Value
x
Idle timeout
0
No
1
Yes
“z” is 0 by default, but can increase depending on
user actions:
Add 6 when a z/OS UNIX shell is opened. These threads
stay active until the user logs off.
"20 + N*0.1" adds a buffer for temporary threads. The
required buffer size might differ at your site. Multiple concurrent
downloads and searches are two examples that could require you to
increase this buffer size.
The definitions in Table 3 can
limit the actual number of threads in a process, which is mostly of
importance for the RSE thread pools.
Table 3. Thread limits. This table lists the definitions
that can limit the actual number of threads.
Location
Limit
Affected resources
OMVS segment
THREADSMAX
Limits the number of threads for a user ID
BPXPRMxx
MAXTHREADS
Limits the number of threads in a process.
BPXPRMxx
MAXTHREADTASKS
Limits the number of MVS tasks in a process.
BPXPRMxx
MAXASSIZE
Limits the address space size, and thus the
storage available for thread-related control blocks.
rse.env
Xmx
Sets the maximum Java™ heap
size. This storage is reserved and thus no longer available for thread-related
control blocks.
rse.env
maximum.clients
Limits the number of clients (and thus their
threads) in an RSE thread pool.
rse.env
maximum.threads
Limits the number of client threads in an RSE
thread pool.
FEJJCNFG
MAX_THREADS
Limits the number of threads in JES Job Monitor.
Note:
The THREADSMAX limit is unique per user ID, and is defined
in your security software, in the OMVS segment of the user ID.
The value for maximum.threads in rse.env must
be lower than the value for MAXTHREADS and MAXTHREADTASKS in BPXPRMxx,
and THREADSMAX in the OMVS segment of the RSED started
task user ID.
The DISPLAY PROCESS,CPU operator
command, which shows the active threads in a thread pool, is limited
to showing only the first 4000 threads.