[an error occurred while processing this directive]

HP OpenVMS Systems Documentation

Content starts here

HP TCP/IP Services for OpenVMS
Management


Previous Contents Index

24.10 Receiving LPR/LPD OPCOM Messages

The LPR/LPD spooler can notify you of selected events with OPCOM messages. To receive these notifications, enter:


$ TCPIP SET SERVICE LPD /LOG=option
$ REPLY /ENABLE=OPCOM

Some of the logging options are:

  • LOGIN --- LPD receiver startup and exit
  • LOGOUT --- Job completion
  • ACTIVATE --- Queue startup

For a complete list of logging options, refer to the description of the SET SERVICE command in the HP TCP/IP Services for OpenVMS Management Command Reference manual.

24.11 Using OpenVMS Flag Page Options

LPD supports all OpenVMS flag page print options, including:

  • /FLAG qualifier of the DCL PRINT command
  • /DEFAULT=FLAG setting on the LPD print queue
  • /SEPARATE=FLAG setting on the LPD print queue

To enable these features, use the VMS-Flagpages configuration option, as described in Table 24-1. This option applies to all print queues.

When you set the VMS-Flagpages option, LPD does the following:

  • Obeys the OpenVMS instructions regarding flag pages for outbound jobs.
  • Submits inbound jobs with /FLAG or /NOFLAG, based on the presence of the L card directive in the LPD control file received from the remote host.
    Inbound jobs with an L card directive are submitted to the destination print queue as PRINT /FLAG.
    Inbound jobs without an L card directive are submitted to the destination print queue as PRINT /NOFLAG.

Note that this configuration setting renders meaningless the /PARAMETERS=NOFLAG qualifer to the DCL command PRINT.

24.12 Solving LPD Problems

24.12.1 Obtaining LPD and TELNETSYM Debugging Information

To display debugging information for LPD or TELNETSYM, set the TELNET_UTIL_DEBUG logical name.

24.12.2 Obtaining LPD and LPR Diagnostic Messages

In addition to the LPR and LPD symbionts, the LPD receiver logs diagnostic messages to the error log file specified in the printcap database (as described in Section 24.5.1.2).

Use the Symbiont-Debug and Receiver-Debug configuration options to control LPR/LPD diagnostic information recorded in the log files.

Symbiont-Debug and Receiver-Debug are bit-mapped values. The low-order three bits turn on all diagnostics generated by either the sender or the receiver.

To define these logical names, set the following bits in the value:

  • Bit 0 indicates minimal debugging information.
  • Bit 1 indicates an intermediate amount of debugging information.
  • Bit 2 indicates the full amount of debuggging information available.
  • Bit 3 logs the actual data sent and received over the network.

If you set the fourth bit, the LPD symbiont logs each buffer that it sends over the TCP/IP link, and the LPD receiver logs each buffer that it receives from the TCP/IP link. The log files let you see exactly what the LPD is sending (for outbound jobs) and receiving (for inbound jobs).

To set the fourth bit, enter:


Symbiont-Debug: 8
Receiver-Debug: 8

For example, to obtain all diagnostic information, set both options to 15.

Note that using these settings during normal system operation can affect the performance of LPD and may produce large log files.

For more information about the LPD configuration options, see Table 24-1.


Chapter 25
Setting Up and Managing TELNETSYM

The TELNET print symbiont (TELNETSYM) provides remote printing services that enable the use of standard OpenVMS printing features not available with the LPR/LPD print service. With TELNETSYM configured on your system, you can set up and manage a remote printer attached to a remote terminal server as if it were directly connected to your system. The TELNET symbiont functions like LATSYM, the symbiont for local area transport (LAT) software.

The TELNET symbiont performs the following functions:

  • Transfers record-oriented data to printers.
  • Configures printers attached to terminal servers that support TELNET.
  • Supports outbound print jobs and offers standard OpenVMS preformatting for outbound print jobs.

This chapter reviews key TELNETSYM concepts and describes:

25.1 Key Concepts

TELNETSYM is a true OpenVMS print symbiont; it performs all print formatting functions, such as header and trailer page generation, pagination, queuing, and handling of multiple forms. TELNETSYM extends the OpenVMS print symbiont by redirecting its output to a network (TELNET) channel.

25.1.1 TELNETSYM Process Names

TELNETSYM sets its process names to TCPIP$TNS1, TCPIP$TNS2, and so on. Each TELNETSYM process can control up to 32 print queues. You can control the maximum number of print queues by defining the TCPIP$TELNETSYM_STREAMS logical, as described in Section 25.5.6.

25.1.2 TELNETSYM Modifications to the Output Stream

TELNETSYM adds escape (0xFF) bytes in the data stream so they are not mistakenly interpreted as TELNET protocol IAC commands.

TELNETSYM doubles any TELNET IAC characters found in the byte stream unless TCPIP$TELNETSYM_RAW_TCP is defined for the queue. The IAC character is a hexadecimal FF.

If the print job is queued with the /PASSALL qualifier, TELNETSYM sets up a binary TELNET channel by inserting IAC-DO-BINARY and IAC-WILL-BINARY escape sequences.

You can turn off this behavior by defining the logical name TCPIP$TELNETSYM_RAW_TCP for the queue. If you set this logical name, none of this processing is done.

The IAC-DO-BINARY sequence is 6 bytes, which are symbolically:

IAC, DO, BINARY, IAC, WILL, BINARY

The hexadecimal equivalents are:


FF,FD,00,FF,FB,00

TELNETSYM does not add any additional data to the stream other than that described. It does not insert form feed characters that were not present in the output from the OpenVMS print symbiont. Therefore, any additional characters observed as added to a print job come from the OpenVMS or other print symbiont (for example, HP PATHWORKS/Advanced Server for OpenVMS).

TELNETSYM can remove (suppress) any form feed (0x0c) characters that the OpenVMS print symbiont adds to the beginning or end of print jobs. Use the TCPIP$TELNETSYM_SUPPRESS_FORMFEEDS logical name to control this function, as described in Section 25.6.4.1.

25.2 TELNETSYM Service Startup and Shutdown

The TELNETSYM service can be shut down and started independently of TCP/IP Services. This is useful when you change parameters or logical names that require the service to be restarted.

The following files are provided:

  • SYS$STARTUP:TCPIP$TELNETSYM_STARTUP.COM allows you to start up the TELNETSYM service independently.
  • SYS$STARTUP:TCPIP$TELNETSYM_SHUTDOWN.COM allows you to shut down the TELNETSYM service independently.

HP recommends that you place the DCL commands to start your TELNETSYM queues and define TELNETSYM logicals in the TCPIP$TELNETSYM_SYSTARTUP.COM command procedure. For more information about the commands to include, see the following sections:

To preserve site-specific parameter settings and commands, create the following files. These files are not overwritten when you reinstall TCP/IP Services:

  • SYS$STARTUP:TCPIP$TELNETSYM_SYSTARTUP.COM can be used as a repository for site-specific definitions and parameters to be invoked when the TELNETSYM service is started.
  • SYS$STARTUP:TCPIP$TELNETSYM_SYSHUTDOWN.COM can be used as a repository for site-specific definitions and parameters to be invoked when the TELNETSYM service is shut down.

25.3 Setting Up Print Queues

Use the DCL command INITIALIZE/QUEUE to set up a TELNETSYM queue. Use the /PROCESSOR and /ON qualifiers as follows:

  1. Specify the TELNETSYM image name in the /PROCESSOR qualifier, as follows:


    /PROCESSOR=TCPIP$TELNETSYM
    
  2. Specify the host name and port number to which the queue sends the print data with the /ON qualifier, as follows:


    /ON="hostname:portnumber"
    

For example, to set up a TELNETSYM queue named xyz_q to print using TELNETSYM to host printserver.xyz.com at TCP port 4242, enter:


$ INITIALIZE /QUEUE /PROCESSOR=TCPIP$TELNETSYM -
_$ /ON="printserver.xyz.com:4242" xyz_q

25.4 Setting Up Relay Queues

You can redirect the output of TELNETSYM to another queue rather than sending it directly to a remote printer. A queue with this setup is a relay queue. Use relay queues to funnel fully formatted output to an outbound LPD queue. LPD transfers jobs that are fully formatted on the sending side by OpenVMS.

In this case, TELNETSYM saves the output stream to a temporary file and then submits the file to the destination queue.

To set up a TELNETSYM relay queue, specify the /ON qualifier of the INITIALIZE/QUEUE command as follows, where qname is the name of the queue to which you want TELNETSYM to send its output.


/ON="TCPIP$QUEUE:qname"

To set up a TELNETSYM relay queue named RELAYQ_4 to send output to the queue named LPD_Q4, enter:


$ INITIALIZE /QUEUE /ON="TCPIP$QUEUE:LPD_Q4" -
_$ /PROCESS=TCPIP$TELNETSYM /DEVICE=PRINTER RELAYQ_4

25.5 Managing and Customizing Your Print Queues

You can manage and customize TELNETSYM for each print queue by defining logical names before you start the queue. Because the logical names are translated once at queue startup time, they can be defined differently for each TELNETSYM queue. Use the /SYSTEM qualifier when defining TELNETSYM logical names. You must stop and restart the print queue to establish the changes you make with logical names.

Some TELNETSYM configuration logical names are used to set a configuration option either ON or OFF. If the logical name is defined, the option is ON. If it is not defined, the option is OFF. Other logical names require a specific value.

The following sections describe TELNETSYM logical names.

25.5.1 Controlling the Print Stream

If a remote printer supports a raw network data connection rather than the TELNET protocol, you can print to such a printer by suppressing all TELNET modifications of the output stream with the following logical names:

  • TCPIP$TELNETSYM_RAW_TCP
    Suppresses all TELNET type modifications of the print output stream.
    This logical name also prevents the TELNETSYM from doubling IAC characters and sending the TELNET escape sequence to negotiate binary options for files printed /PASSALL.
  • TCPIP$TELNETSYM_SUPPRESS_FORMFEEDS
    Suppresses form feeds between jobs. This includes the form feed that is normally sent before the first job printed to a print queue and the form feed sent at the end of every job. For more information, see Section 25.6.4.1.

25.5.2 Setting Up Error Logging

OPCOM messages sent by TELNETSYM include the name of the execution queue. In addition, each TELNETSYM queue has a log file named TCPIP$TELNETSYM_queue-name.LOG.

By default, TELNETSYM sends messages to the operator and records error and informational messages in the file TCPIP$TELNETSYM_queue-name.LOG. This file is located in SYS$SPECIFIC:[TCPIP$LPD].

You can use logical names to modify the way the TELNETSYM logs information and the type of information it reports. For example, TELNETSYM can log diagnostic messages that you can use when troubleshooting problems with a link.

Use the following logical names to modify error logging:

  • TCPIP$TELNETSYM_VERBOSE
    Turns on the logging of TELNETSYM diagnostics to the file TCPIP$TELNETSYM.LOG. These diagnostics include informational messages that indicate when links have come up or gone down and error messages.
  • TCPIP$TELNETSYM_NO_OPCOM
    Stops TELNETSYM from sending messages to the operator console.
  • TCPIP$TELNETSYM_DEBUG
    Used with TCPIP$TELNETSYM_VERBOSE, this logical name tells TELNETSYM which diagnostic message types to log.
    Specify a value for each bit. Each bit set in the value turns on a particular logging function. The options are:
    Bit 0 Tracks the flow of code. For example:
    xyz-n-xyz-routine entered
    
    Bit 1 Tracks the allocation of memory. For example:
    just freed address 7F0000
    
    Bit 2 Logs the bytes sent and received over TCP/IP link.

    To set a bit, assign the value to the logical name whose binary equivalent would have the bit set. For example, you can tell TELNETSYM to log everything that it writes to and receives from the TCP/IP link by entering:


    $ DEFINE /SYSTEM TCPIP$TELNETSYM_DEBUG 4
    

    Decimal 4 is binary 100 with bit 2 set. Note that you can achieve different combinations by setting more than one bit in the value. A value of 3, for example, sets bits 0 and 1, causing logging of flow of code and memory allocation diagnostics.
    If TCPIP$TELNETSYM_DEBUG is undefined, TELNETSYM does not log these diagnostics.
    Bit 2 is useful in unassisted problem solving. Be aware, however, that the log file can become large because all the data sent over the link to the printer is logged. Bits 0 and 1 are primarily for use by HP. However, with knowledge of PSM$ symbionts, you might find all the options useful.
  • TCPIP$TELNETSYM_LOG_KEEP
    By default, TELNETSYSM saves all log files. Define this logical name to limit the number of log files saved. The value assigned to this logical name is the number of versions of a log file TELNETSYM will allow before it starts purging. When the number of files reaches the number you specified, TELNETSYM starts purging files.
    For example, to configure the queue to purge after more than three copies of the same log file are created, define the logical name as follows:


    $ DEFINE /SYSTEM TCPIP$TELNETSYM_LOG_KEEP 3
    
  • TCPIP$TELNETSYM_SCRATCH
    By default, TELNETSYM stores log files and any temporary files created by relay queues in the directory SYS$SPECIFIC:[TCPIP$LPD]. You can change the default directory for one or all of your TELNETSYM queues. For example:


    $ DEFINE /SYSTEM TCPIP$TELNETSYM_SCRATCH device:[directory.path]
    

    If you define the logical name TCPIP$TELNETSYM_SCRATCH, the log files are stored in the TCPIP$TELNETSYM_SCRATCH directory.
    If you do not define TCPIP$TELNETSYM_SCRATCH, the log files are stored in TCPIP$LPD_ROOT.

25.5.3 Controlling Characteristics of the TCP/IP Link

The TELNETSYM configuration logical names allow you to set TELNETSYM parameters. To see the default values for these parameters, enter the following command:


TCPIP> SHOW PROTOCOL TCP /PARAMETER
TCP
  Delay ACK:              enabled
  Window scale:           enabled
  Drop count:                   8
  Probe timer:                150

                          Receive                Send

  Push:                  disabled            disabled
  Quota:                    61440               61440

The logicals that you can use to modify these parameters are:

  • TCPIP$TELNETSYM_KEEPALIVE
    Controls Keepalive processing.
    The Keepalive timer is used to periodically test the other end of a link that appears to be idle. Its purpose is to detect when a remote host has failed or has been brought down, or when the logical connection has been broken.
    For TELNETSYM, you control this timer with the following command:


    $ DEFINE/SYS TCPIP$TELNETSYM_KEEPALIVE 1
    

    If you change this logical name, you must stop and restart the TELNETSYM queue for the new setting to take effect.
    By default, the Keepalive timer is disabled. Broken connections will be detected only when the relevant application sends data.
  • TCPIP$TELNETSYM_DROPTIME
    The Drop timer indicates how long a connection should be maintained (after repeated timeouts) before closing the connection. The Drop timer is in effect only after the link has been established, and it takes effect only if the Keepalive logical is also defined.
    You control the Drop timer by entering the following command:


    $ DEFINE/SYS TCPIP$TELNETSYM_DROPTIME x
    

    In this command, x specifies the number of seconds to hold the connection before closing it.
    The default value for the Drop timer is 300 seconds.
    Note that the value for the Drop timer must be greater than the value for the Probe timer. When you define only one of these TELNETSYM logical names, the default value will be used for the other logical name.
  • TCPIP$TELNETSYM_PROBETIME
    This logical name allows you to control the Probe timer.
    The Probe timer defines:
    • When establishing an initial connection, the number of seconds TCP/IP Services will wait for a response before a timeout occurs. You can enable this function even if the Keepalive timer is disabled.
    • The length of time allowed to pass before TCP/IP Services checks an idle connection. This function requires that the Keepalive timer be enabled.

    You control the Probe timer by entering the following command:


    $ DEFINE/SYS TCPIP$TELNETSYM_PROBETIME x
    

    In this command, x specifies the number of seconds to wait before timing out the connection.
    The value of the Probe timer must always be less than or equal to the value of the Drop timer. The default value for the Probe timer is 75 seconds.
  • TCPIP$TELNETSYM_SNDBUF
    Specifies the size of the socket send buffer that TELNETSYM uses.

25.5.4 Establishing a TELNETSYM Link

If a network link has not been established, the TELNET symbiont attempts to establish one. Printing starts when the link is successfully established. The TELNET symbiont continues to try to establish a network link until it is successful or until a retry interval you define has expired.

The logical name TCPIP$TELNETSYM_RETRY_INTERVAL defines the time for TELNETSYM to wait between link-establishment retries when link establishment has failed. The value for this logical name is an OpenVMS delta time.

If this logical name is not defined, TELNETSYM defaults to a wait period of 3 minutes between retries.

For example, to define a retry interval of 30 seconds, enter:


$ DEFINE /SYSTEM TCPIP$TELNETSYM_RETRY_INTERVAL "0 00:00:30.00"

25.5.5 Releasing a TELNETSYM Link

By default, TELNETSYM releases an established link at the end of a print job. This behavior is useful when multiple systems contend for the same printer. Configuring TELNETSYM to release the link at the end of a job allows other systems to print quickly. However, this behavior can also be a disadvantage because of the overhead involved with link creation for each print job.

When there is little or no contention for a printer, it is useful to configure TELNETSYM to release the link only after a certain period of idle time has passed. With this approach, TELNETSYM waits for the configured idle time to elapse and then closes the link. This option works well within batch printing applications.

Use the logical name TCPIP$TELNETSYM_IDLE_TIMEOUT to define the length of time to wait before terminating an inactive link. Specify a value that is an OpenVMS delta time.

For example, to define a link-idle-timeout of 10 minutes, enter:


$ DEFINE /SYSTEM TCPIP$TELNETSYM_IDLE_TIMEOUT "0 00:10:00.00"

Idle time occurs during printing as well as between print jobs. Any idle time on the link can cause a timeout. Therefore, it is important to adjust the value of this logical carefully.


Previous Next Contents Index