Defining extra Java startup parameters with _RSE_JAVAOPTS

With the different _RSE_*OPTS directives, rse.env provides the facility to give extra parameters to Java™ when it starts the RSE processes. The sample options included in rse.env can be activated by uncommenting them.

_RSE_JAVAOPTS defines standard and RSE-specific Java options.

_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Xms128m -Xmx512m"
Set initial (Xms) and maximum (Xmx) heap size. The defaults are 128M and 512M respectively. Uncomment and change to enforce the required heap size values.
Note: To determine the optimal values for this directive, see "Key resource definitions" in the Host Configuration Reference Guide (SC27-8438).
#_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Dmaximum.clients=10"
Maximum amount of clients serviced by one thread pool. The default is 10. To limit the number of clients per thread pool, uncomment and customize. Other limits might prevent RSE from reaching this limit.
#_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Dmaximum.threads=250"
Maximum amount of active threads in one thread pool to allow new clients. The default is 250. To limit the number of clients in each thread pool, based on the number of threads in use, uncomment and customize. Each client connection uses multiple threads and other limits might prevent RSE from reaching this limit.
Note: This value must be lower than the setting for MAXTHREADS and MAXTHREADTASKS in SYS1.PARMLIB(BPXPRMxx).
#_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Dminimum.threadpool.process=1"
The minimum number of active thread pools. The default is 1. To start at least the listed number of thread pool processes, uncomment and customize. Thread pool processes are used for load balancing the RSE server threads. More new processes are started when they are needed. Starting the new processes upfront helps prevent connection delays but uses more resources during idle times.
Note: If the single.logon directive is active, at least 2 thread pools are started, even if minimum.threadpool.process is set to 1. The default setting for single.logon in rse.env is active.
#_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Dmaximum.threadpool.process=100"
The maximum number of active thread pools. The default is 100. To limit the number of thread pool processes, uncomment and customize. Thread pool processes are used for load balancing the RSE server threads, so limiting them will limit the amount of active client connections.
_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Ddaemon.log=$RSE_LOGS"
The directory leading to the RSE daemon and server log files, and RSE audit data. The default is $RSE_LOGS, which holds the z/OS® Explorer log directory name. When using defaults, RSE_LOGS is set to /var/zexpl/logs. Uncomment and change to enforce the required location.
Note:
  • If this directive does not specify an absolute path (where the path does not start with a forward slash (/)), the actual log location is relative to the configuration directory, which, by default is /etc/zexpl.
  • The complete path to the server logs is daemonlog/server, where daemonlog is the value of the daemon.log directive.
_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Duser.log=$RSE_LOGS"
Directory leading to the user-specific logs. The default is $RSE_LOGS, which holds the z/OS Explorer log directory name. When using defaults, RSE_LOGS is set to /var/zexpl/logs. Uncomment and change to enforce the required location. If this directive value is a null string, the home directory of the client user ID is used. The home directory is defined in the OMVS security segment of the user ID.
Note:
  • If this directive or its counterpart, the home directory, does not specify an absolute path (the path does not start with a forward slash (/)), the actual log location is relative to the configuration directory, which, by default is /etc/zexpl.
  • The complete path to the user logs is userlog/dstorelog/$LOGNAME/, where userlog is the value of the user.log directive, dstorelog is the value of the DSTORE_LOG_DIRECTORY directive and $LOGNAME is the clients user ID in uppercase.
  • Ensure that the permission bits for userlog/dstorelog are set so that each client can create $LOGNAME.
_RSE_JAVAOPTS="$_RSE_JAVAOPTS -DDSTORE_LOG_DIRECTORY="
This directory is appended to the path specified in the user.log directive. Together they create the path leading to the user-specific logs. The default is a null-string. Uncomment and change to enforce the usage of the specified directory.
Note:
  • The complete path to the user logs is userlog/dstorelog/$LOGNAME/, where userlog is the value of the user.log directive, dstorelog is the value of the DSTORE_LOG_DIRECTORY directive, and $LOGNAME is the clients user ID in uppercase.
  • The directory specified here is relative to the directory specified in user.log and may, therefore, not start with a forward slash (/).
  • Ensure that the permission bits for userlog/dstorelog are set so that each client can create $LOGNAME.
#_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Dlog.file.mode=RW.N.N"
Access permission mask for log files and log directories. The default is RW.N.N, which allows the owner read and write access. The owner's default group and everyone else have no access. To set the required access permissions, uncomment and customize.

UNIX standards dictate that permissions can be set for three types of users: owner, group, and other. The fields in this variable match this order, and the fields are separated by a period (.). Each field can be empty (which equals N), or have N, R, W, or RW as values, where N = none, R = read and W = write.

_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Dlog.retention.period=5"
Number of days daemon and user logs are kept. The default is 5. Uncomment and customize this directive to delete the logs after a given number of days. Specify 0 to set no limit. The maximum value is 365. Note that daemon log cleanup happens at the next action that requires daemon activity. User logs are cleaned up the next time the user connects.
#_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Dkeep.all.logs=false"
Use file names with an embedded time-stamp for daemon and user logs. The default is true, which implies that the logs are kept until removed by the log.retention.period setting. Uncomment and specify false to use fixed log file names, which are replaced each time the daemon is started or the user connects.
#_RSE_JAVAOPTS="$_RSE_JAVAOPTS –Dkeep.last.log=true"
Keep a copy of the host log files belonging to the previous session. The default is false. To rename the previous log files to *.last during server startup and client connect, uncomment and specify true. Note that the .dstore* user trace files are not removed automatically upon client reconnect, nor are they part of the keep.last.log processing. Removing these files is a manual action. The keep.all.logs directive must be set to false for keep.last.log to take effect.
#_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Dlog.secure.mode=false"
Validate log-directory ownership. The default is true, which makes RSE validate that a user (RSE daemon itself or a client user ID) is the owner of the directory in which the logs will be written. Uncomment and specify false to skip this check and write the log files without checking directory ownership. Console message FEK301E is issued when the test is not successful.
#_RSE_JAVAOPTS="$_RSE_JAVAOPTS –Denable.standard.log=true"
Write the stdout and stderr streams of the thread pools to a log file. The default is false. To save the stdout and stderr streams, uncomment and specify true. The resulting log files are located in the directory referenced by the daemon.log directive.
Note: The MODIFY RSESTANDARDLOG operator command can be used to dynamically stop or start the update of the stream log files.
#_RSE_JAVAOPTS="$_RSE_JAVAOPTS -DDSTORE_TRACING_ON=true"
Start dstore tracing. Use only when directed by the IBM® support center. The resulting .dstoreTrace log file is created in Unicode (ASCII), not EBCDIC.
#_RSE_JAVAOPTS="$_RSE_JAVAOPTS -DDSTORE_MEMLOGGING_ON=true"
Start dstore memory tracing. Use only when directed by the IBM support center. The resulting .dstoreMemLogging log file is created in Unicode (ASCII), not EBCDIC.
#_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Denable.audit.log=true"
Audit option. The default is false. To enforce audit logging of actions done by clients, uncomment and specify true. Audit logs are written to the RSE daemon log location. To know the location, see the daemon.log option of the _RSE_JAVAOPTS variable.
#_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Daudit.cycle=30"
Number of days stored in 1 audit log file. The default is 30. To control how much audit data is written to 1 audit log file, uncomment and customize. The maximum value is 365.
#_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Daudit.retention.period=0"
Number of days audit logs are kept. The default is 0, which means no limit is specified. To delete audit logs after a given number of days, uncomment and customize. The maximum value is 365.
#_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Daudit.log.mode=RW.R.N"
Access permission mask for audit logs. The default is RW.R.N, which allows the owner read and write access. The owner's default group has read access and everyone else has no access. To set the required access permissions, uncomment and customize.

UNIX standards dictate that permissions can be set for three types of users: owner, group, and other. The fields in this variable mask match this order, and the fields are separated by a period (.). Each field can be empty (which equals N), or have N, R, W, or RW as values, where N=none, R = read and W = write.

#_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Daudit.action=<user exit>"
Name of a user exit which is called when an audit log file is closed. There is no default value, but a sample exit is provided in /usr/lpp/IBM/zexpl/samples/process_audit.rex. To enable post-processing of audit logs, uncomment and specify the full pathname of the user exit program.
#_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Daudit.action.id=<userid>"
User ID to be used for running the exit specified in the audit.action variable. The default is the user ID assigned to RSE daemon. To use the specified ID for executing the audit post-processing exit, uncomment and specify a user ID.
#_RSE_JAVAOPTS="$_RSE_JAVAOPTS -DAPPLID=FEKAPPL"
RSE server application ID. The default is FEKAPPL. To enforce the use of the required application ID, uncomment and customize.
Note:
  • For the security implications when changing this value, see "Using PassTickets" in Host Configuration Reference Guide (SC27-8438).
  • This value must match the application ID set for JES Job Monitor in the FEJJCNFG configuration file. If these values differ, RSE cannot connect the client to JES Job Monitor. To learn how to define the variable for JES Job Monitor, see FEJJCNFG, the JES Job Monitor configuration file.
#_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Denable.port.of.entry=true"
Port Of Entry (POE) check option. The default is false. To enforce POE checking for client connections, uncomment and specify true. During POE checking, the IP address of the client is mapped into a network access security zone by your security software. The client user ID must have permission to use the profile that defines the security zone.
Note:
  • POE checking must also be enabled in your security product.
  • Enabling POE checking enables the product for other z/OS UNIX services also, such as INETD.
#_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Denable.certificate.mapping=false"
Use your security software to authenticate a logon with a X.509 certificate. The default is true. To have RSE daemon do the authentication without relying on the X.509 support of your security software, uncomment and specify false.
#_RSE_JAVAOPTS="$_RSE_JAVAOPTS -DDENY_PASSWORD_SAVE=true"
Password save option. The default is false. To prevent users from saving their host password on the client, uncomment and specify true. Previously saved passwords are removed.
#_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Dipv6=true"
TCP/IP version. The default is false, which means that an IPv4 interface is used. To use an IPv6 interface, uncomment and specify true.
#_RSE_JAVAOPTS="$_RSE_JAVAOPTS –Denable.dDVIPA=true"
Distributed Dynamic VIPA support. The default is false. To use TCP/IP’s distributed Dynamic VIPA, which allows servers on multiple systems to present themselves as a single server, uncomment and specify true.
#_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Ddeny.nonzero.port=true"
Disallow the client to choose the communication port number. The default is false. To refuse connections where the client specifies which host system port must be used by RSE server for the connection, uncomment and specify true. For more information, see Defining the PORTRANGE available for RSE server.
#_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Dsingle.logon=false"
Disallow a user ID to log on multiple times. The default is true. To allow a user ID to log on multiple times to a single RSE daemon, uncomment and specify false.
Note:
  • A second logon attempt causes the first one to be canceled by the host system if this directive is not active or set to true. This cancellation action is accompanied by console message FEK210I.
  • If the single.logon directive is active, at least 2 thread pools are started, even if minimum.threadpool.process is set to 1. The default setting for minimum.threadpool.process in rse.env is 1.
#_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Dlogon.action=<user_exit>"
Name of a user exit which is called when a user logs on. There is no default value, but a sample exit is provided in /usr/lpp/IBM/zexpl/samples/process_logon.sh. To enable post-processing of a logon, uncomment and specify the full pathname of the user exit program.
#_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Dlogon.action.id=<userid>"
User ID to be used for running the exit specified in the logon.action variable. The default is the user ID assigned to RSE daemon. To use the specified ID for executing the logon post-processing exit, uncomment and specify a user ID.
#_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Dreject.logon.threshold=1000000"
A thread pool opening a file larger than the specified size will not accept new logon requests until the file is loaded. The default file size is 1000000 bytes. To specify the file size at which a thread pool is to ignore logon requests when such a file is opened, uncomment and customize. Other thread pools can still accept new logon requests.
#_RSE_JAVAOPTS="$_RSE_JAVAOPTS -DDSTORE_TCP_NO_DELAY=true"
Disable the TCP/IP DELAY ACK function. The default is false. To stop TCP/IP from doing DELAY ACK for z/OS Explorer client-host communication, uncomment and specify true.
#_RSE_JAVAOPTS="$_RSE_JAVAOPTS -DDSTORE_IDLE_SHUTDOWN_TIMEOUT=3600000"
Disconnect idle clients. By default, idle clients are not disconnected. To disconnect clients who are idle for the listed number of milliseconds, uncomment and customize. 3600000 milliseconds equal 1 hour.
Start of change#_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Dbackupfiles=false"End of change
Start of changeCreate a temporary backup before updating a z/OS UNIX file. The default is true. The temporary backup file is a copy of the original file, and it is placed in the same directory and prefixed with the tilde character (~). Uncomment and specify false to prevent the creation of the temporary backup file.End of change
#_RSE_JAVAOPTS="$_RSE_JAVAOPTS -DDISABLE_MIGRATE_HRECALL_HDELETE=true"
Hide migrated data set actions on the client. The default is false. Uncomment and specify true to ensure that z/OS Explorer V3.0.1.6 and later clients do not show the migrate, hrecall, and hdelete menu actions. Although you still see these menu actions in the clients of previous versions, these menu actions do not work when this option is set.
#_RSE_JAVAOPTS="$_RSE_JAVAOPTS –DHIDE_ZOS_UNIX=true"
Hide z/OS UNIX option. The default is false. To prevent users from seeing z/OS UNIX elements, that is the directory structure and command line, on the client, uncomment and specify true.
#_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Denable.automount=true"
Support home directories created by z/OS UNIX automount. The default is false. To ensure that z/OS UNIX automount uses the client user ID as owner of the directory, uncomment and specify true.
Note: z/OS UNIX automount uses the user ID of the process that called the service when creating a file system. If this option is disabled, this process is the RSE thread pool server, with the STCRSE user ID. If this option is enabled, a new, temporary process is created by using the client user ID before invoking the service.
#_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Ddisplay.users=true"
Automated display of active users. The default is false. Uncomment and specify true to enable an automated display of active users in rseserver.log on each user logon and logoff.
#_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Dprocess.cleanup.interval=0"
Automatically remove RSE thread pools that are in an unrecoverable error state. By default, erroneous RSE thread pools are not automatically removed. To automatically remove erroneous RSE thread pool servers at every interval, where the interval unit is seconds, uncomment and customize. Specifying 0 does not start an interval timer, but erroneous RSE thread pool servers are removed when the RSE daemon checks the RSE thread pools during a new client logon or the DISPLAY PROCESS command.
#_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Dkeep.stats.copy.local=true"
Keep ISPF statistics during a local copy. The default is false, which implies that ISPF statistics like create-date and changed-by are updated for the target data set or member. Uncomment and specify true to keep the original ISPF statistics during a copy where source and target are on the same host system.
#_RSE_JAVAOPTS="$_RSE_JAVAOPTS -DDSTORE_USE_THREADED_MINERS=false"
Run each miner on a separate thread. The default is true. Uncomment and specify false to run all user-specific miners from a single thread. 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 multitasking.
#_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Dmaximum.ispf.sessions=0"
Limit the number of concurrent invocation of TSO/ISPF commands in one user session. The default is 0 (no limit). Uncomment and customize this directive to limit the number of concurrent ISPF Gateway sessions per user.
#_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Duse.fastpath.getattributes=true"
Use ISPF file statistics when obtaining attribute information including line counts for members of partitioned data sets. The default is true. Uncomment and specify false to use an implementation that reports byte counts instead of line counts.
#_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Dallow.retry.on.failed.saf.check=false"
Allow re-querying the host security product multiple times in a single login session when access to an MVS file resource is denied. The default is false. Uncomment and specify true to allow re-querying the host security product.
#_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Dmaxthreadtasks.threshold=60"
Allow specifying how close to the MAXTHREADTASKS limit can be reached before displaying a pop-up alert. The default is 60. Uncomment and adjust the number to specify a new MAXTHREADTASKS threshold.
#_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Dsearch.server.limit.hits=0"
Limit the resource usage of non-indexed file and text searches. The default is 0 (no limit). Uncomment and customize this directive to stop a search after the specified number of results have been found.
#_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Dsearch.server.limit.scanned_objects=0"
Limit the resource usage of non-indexed file and text searches. The default is 0 (no limit). Uncomment and customize this directive to stop a search after the specified number of objects (data set or PDS(E) member) has been scanned.
#_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Dsearch.server.limit.lines=0"
Limit the resource usage of non-indexed file and text searches. The default is 0 (no limit). Uncomment and customize this directive to stop a search after the specified number of lines has been scanned.
#_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Dsearch.server.limit.timeout=0"
Limit the resource usage of non-indexed file and text searches. The default is 0 (no limit). Uncomment and customize this directive to stop a search after the specified number of seconds have passed.
#_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Dsearch.server.limit.errcount=true"
Limit the resource usage of non-indexed file and text searches. The default is false (no limit). Uncomment and specify true to stop a search before it exceeds a nonzero Language Environment® (LE) ERRCOUNT value.
#_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Dsearch.server.limit.MaxFilterResults=0"
Limit the number of data sets that are returned for an MVS™ Files filter. The default is 0 (no limit). Uncomment and specify a positive number (maximum 2,147,483,647) to set a limit. Setting this limit can avoid high CPU consumption for filters that return large number of data sets.
Note: This directive applies to v3.0.1 and later clients only. If the limit is reached, a warning message is displayed in the client, and functions such as Locate do not work.
#_RSE_JAVAOPTS="$_RSE_JAVAOPTS -DDISABLE_TEXT_SEARCH=true"
Disable non-indexed text searches. The default is false. To prevent users from starting a full text search on the host, uncomment and specify true.