Using Telnet exit point programs

With the use of exit programs, the experienced programmer can create customized processing during an application. If the Telnet server finds a program registered to one of the exit points for the server, it calls that program using parameters that are defined by the exit point.

An exit point is a specific point in the Telnet program where control might pass to an exit program. An exit program is a program to which the exit point passes control.

For each exit point, there is an associated programming interface, called an exit point interface. The exit point uses this interface to pass information between the Telnet application and the exit program. Each exit point has a unique name. Each exit point interface has an exit point format name that defines how information is passed between the Telnet application and the customer-written exit program.

Different exit points can share the same exit point interface. When this is the case, multiple exit points can call a single exit program.

Exit point performance

The Telnet server response time for your initial session request includes any time that it takes for the server to call, process, and return the QIBM_QTG_DEVINIT exit program. If your exit program is doing significant processing, the performance impact might result in a longer wait before your session is established. If you want to modify the default 60 second timeout value for user exit programs, you can use the ADDEXITPGM command to add user data that is read as the timeout value. In the following example, the PGMDTA parameter overrides the default 60 second timeout to 10 seconds:


ADDEXITPGM EXITPNT(QIBM_QTG_DEVINIT) FORMAT(INIT0100)
PGMNBR(1) PGM(USEREXIT/DEVINIT2) REPLACE(*YES)
CRTEXITPNT(*NO) PGMDTA(*JOB *CALC 10)

After the Telnet program is established by way of a sign-on window or other IBM® i model, there is no effect on performance. When this occurs, the exit program is no longer in the Telnet path. Established Telnet sessions experience no delays due to the QIBM_QTG_DEVINIT exit program.

There is no user-visible performance impact that is associated with disconnecting the session. Disconnecting means that you end your terminal emulation session, not that you sign off and return to the sign-on panel. If you disconnect, then the QIBM_QTG_DEVTERM exit program is called, which performs the disconnect processing for your session. Users can not see this because it occurs after the connection is broken.

Work management

You can solve key work management problems by using a Telnet exit program. These problems include the capability to request device descriptions other than QPADEVxxxx, opening up the door for work management control of interactive virtual workstation jobs, and routing those jobs to specific subsystems.

Subsystem routing and device name selection

Users can take advantage of better Telnet virtual device names and configure their interactive subsystems to subdivide the work. This is done by using the Add Work Station Entry (ADDWSE) command. This command allows you to specify which devices a subsystem should or should not allocate a particular name of virtual terminal devices.

The following command has QINTER allocate all QPADEV* workstations, which means that all such devices route to the QINTER subsystem:


ADDWSE SBSD(QINTER) WRKSTN(QPADEV*) AT(*SIGNON)

The following command has QINTER not allocating all QPADEV* workstations, which means that these devices can be allocated to a different subsystem:


ADDWSE SBSD(QINTER) WRKSTN(QPADEV*) AT(*ENTER) 

Users can develop their own device naming conventions to subdivide the work. For example, one kind of subdivision is to route certain devices to national language support (NLS) related subsystems in two locations.

Example

The two users are in Chicago and New York. The users are assigned to subsystems CHICAGO or NEWYORK, according to their geographic location. The characteristics of this example include:

  • The IP addresses for Chicago start with 1.2.3.*.
  • The IP addresses for New York start with 2.3.4.*.
  • In order for all of the Chicago Telnet sessions to run in the CHICAGO subsystem the user exit program is employed. The exit program creates a virtual device name that starts with 'CHICAGO' for all Telnet connections from 1.2.3. The user exit program also creates a virtual device name that starts with 'NEWYORK' for all connections from 2.3.4.
  • The user exit program assigns the virtual device name 'CHICAGO01' for an IP address of 1.2.3.47. The program assigns a virtual device name of 'NEWYORK01' for an IP address from 2.3.4.48. The program attaches a variable part ('01', '02', etc.) to a root name of 'CHICAGO' and checks to see if the device is not already in use before assigning it to the current user.

To ensure that virtual devices CHICAGO01 goes into subsystem Chicagoand and NEWYORK01 goes into subsystem New York, set up the workstations entries as follows:

Note: By using the code examples, you agree to the terms of the Code license and disclaimer information.

ADDWSE SBSD(QINTER) WRKSTN(CHICAGO*) AT(*ENTER) 
ADDWSE SBSD(QINTER) WRKSTN(NEWYORK*) AT(*ENTER) 
ADDWSE SBSD(CHICAGO) WRKSTN(CHICAGO*) AT(*SIGNON)
ADDWSE SBSD(NEWYORK) WRKSTN(NEWYORK*) AT(*SIGNON)