Considerations for subsystem configuration for error recovery performance

The configuration of subsystems has little effect on normal data path operations. However, multiple subsystems can provide multiple processes to do cleanup and recovery when error conditions occur, which can result in improved performance.

Each piece of work that runs on the iSeries system is called a job. Each job is a single, identifiable sequence of processing actions that represents a single use of the system. The basic types of jobs performed are interactive jobs, batch jobs, spooling jobs, autostart jobs, and prestart jobs.

Jobs that run in subsystems do all the work that is performed on the iSeries server. As the number of users on the system increases, you must consider how the communications and interactive subsystems should be configured.

  • Consider limiting the number of devices that are serviced by a single subsystem. Between 200 and 300 devices for each subsystem are recommended. Use the following recommendations to divide these users:
    • The number of users in any given subsystem
    • The connectivity used to access the system
    • The type of work the users do
    • The geographic location of the users
  • Create additional communications and interactive subsystems to split the work into multiple subsystems.
  • The work that is performed in the QCMN subsystem is for connecting and disconnecting from the system. Error recovery considerations are important in the configuration of the communications subsystem.
  • To prevent a subsystem from allocating a device, ensure that there are no workstation or type entries for the devices that you do not want to be allocated.
  • Only use the AT(*ENTER) option if you must allow jobs to transfer into that subsystem.
  • For each subsystem you have defined, you need to identify which users will run in which subsystems. Use the Add Work Station Entry (ADDWSE) command and the Remove Work Station Entry (RMVWSE) command. You can set up workstation entries that identify which devices that subsystem should allocate, as well as which devices a subsystem should not allocate.
Note: You can use the ADDWSE commands while the subsystem is active. However, subsystems do not reallocate device locks dynamically. Eventually, it might be necessary to end and restart the subsystems to have the device locks allocated to the choosen subsystem.
To specify the devices a communications subsystem should allocate:
ADDCMNE SBSD(libname/sbsname) DEV(devname*) MODE(modename)
To specify the devices a communications subsystem should not allocate:
ADDCMNE SBSD(libname/sbsname) DEV(devname*) MODE(modename) MAXACT(0)
Note: Database and file servers run only in QSERVER when running over APPC. Do not attempt to allocate sessions running over the QSERVER mode description. These servers can run over TCP/IP and only then can you run them in subsystems other than QSERVER.

See the following example for a way of configuring your communications subsystem.

Example: Communications subsystem configuration

  1. Create a duplicate of QCMN:
    CRTDUPOBJ OBJ(QCMN) FROMLIB(QSYS) OBJTYPE(*SBSD) TOLIB(MYLIB) NEWOBJ(MYCMN)
  2. Set up the communication entries:
    ADDCMNE SBSD(MYLIB/MYCMN) DEV(PC*)
    ADDCMNE SBSD(MYLIB/MYCMN) DEV(PC*) MODE(QSERVER) MAXACT(0)
    ADDCMNE SBSD(QSYS/QCMN) DEV(PC*) MODE(QPCSUPP) MAXACT(0)
  3. Finally, you can update your system startup program to start your new subsystems automatically.