Communications performance considerations for interactive jobs

An interactive job uses a keyboard and a character-type display. If a job needs the user to type on the keyboard and the system displays character results, that job is probably interactive.

Interactive in this sense means that the job and the user depend on each other to get the work done.

To optimize communications performance for interactive jobs, consider the following points:
  • Attach workstations through communications. This requires more CPU overhead than 5250 local workstations.
  • Use a twinaxial controller to provide better performance than an American National Standard Code for Information Interchange (ASCII) controller.
  • Keep the line utilization below 30 percent for best performance when interactive users jobs are attached. This maintains predictable and consistent response times. Exceeding 50 to 60 percent line utilization will typically cause unacceptable response times.

If your system has interactive users jobs that are connected in many different ways, consider configuring your interactive subsystems to separate the users. Local workstation, remote workstations, 5250 display station pass-through, or Telnet are some examples of these types of connections that must be separated. When you configure interactive subsystems, identify how you want the interactive users jobs to be separated and create the appropriate subsystem descriptions.

During error recovery, when many users risk losing their sessions at one time, an interactive subsystem can be very busy performing device recovery. This device recovery can adversely affect the work of other users in the subsystem who would otherwise be unaffected by the failure. Therefore, you might need to change how the interactive subsystems are configured. However, multiple subsystems can provide multiple processes to do cleanup and recovery when error conditions occur. This can result in improved performance.

Use the following command to configure an interactive subsystem to allocate devices that begin with devname* and present a sign-on display on those display devices:
ADDWSE SBSD(libname/sbsname) WRKSTNDEV(devname*) AT(*SIGNON)
Use the following command to configure an interactive subsystem so that the device name devname* is not allocated and a sign-on display does not appear.
ADDWSE SBSD(libname/sbsname) WRKSTNDEV(devname*) AT(*ENTER)

If you specify AT(*ENTER) on the Add Work Station Entry (ADDWSE) command, you can use the Transfer Job (TFRJOB) command to allocate the interactive jobs that are associated with the work stations in this subsystem. If you do not need to allocate the interactive jobs that are associated with the work stations in this subsystem, you do not have to add the workstation entries with AT(*ENTER).

To specify the devices an interactive subsystem should allocate when the subsystem is started:
ADDWSE SBSD(libname/sbsname) WRKSTN(devname*) AT(*SIGNON)
To specify the devices an interactive subsystem should not allocate when the subsystem is started:
ADDWSE SBSD(libname/sbsname) WRKSTN(devname*) AT(*ENTER)

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

Example: Interactive subsystem configuration

  1. Create a subsystem description:
    CRTSBSD SBSD(MYLIB/MYINTER) POOLS((1 *BASE) (2 *INTERACT))
  2. Create a class
    CRTCLS CLS(MYLIB/MYCLASS) RUNPTY(20)
  3. add routing entries to your subsystem:
    ADDRTGE SBSD(MYLIB/MYINTER) SEQNBR(10) CMPVAL(QCMDI) PGM(QSYS/QCMD) POOLID(2)
    ADDRTGE SBSD(MYLIB/MYINTER) SEQNBR(9999) CMPVAL(*ANY) PGM(QSYS/QCMD) POOLID(2)
  4. Create a job queue, and add the job queue entry to your new subsystem:
    CRTJOBQ JOBQ(MYLIB/MYJOBQ)
    ADDJOBQE SBSD(MYLIB/MYINTER) JOBQ(MYLIB/MYJOBQ) MAXACT(200)
  5. Set up the workstation name entries. Remove all the *ALL workstation type entries first, and then add the appropriate workstation name entries:
    RMVWSE SBSD(QSYS/QINTER) WRKSTNTYPE(*ALL)
    ADDWSE SBSD(QSYS/QINTER) WRKSTN(QPADEV*)
    ADDWSE SBSD(MYLIB/MYINTER) WRKSTN(PC*)
  6. Finally, you can update your system startup program to start your new subsystems automatically.