Thread count

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)
Maximum number of RSE thread pool threads (single-threaded miners)
Figure 2. Maximum number of RSE thread pool threads (multi-threaded miners)
Maximum number of RSE thread pool threads (single-threaded miners)
Figure 3. Maximum number of JES Job Monitor threads
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.