[an error occurred while processing this directive]
HP OpenVMS Systemsask the wizard |
The Question is: How can I print to HP Laserjets via UCX? What can you tell me about UCX$TELNETSYM* logicals. I have looked, found several articles, and as a result upgraded to the latest version of UCX. And installed the ECO. But I still get a leading blank page. One message says to utilize the UCX$TELNETSYM* logicals. What can you tell me about them? Any suggested values? What files should I have these logical definitions. Thanks in advance, Lyndon The Answer is : The following discusses a variety of common questions concerning IP printing using telnet and lpr/lpd, including commonly-seen problems such as blank pages and the printer-generated banner pages, and the configuration of various Compaq and third-party printers, DECserver terminal server printing, and discussions of device control libraries, and a variety of device-control issues. Numerous pointers to topics associated with IP printing are included at the end of this topic. -- For blank-pages using standard serial queues and device control libraries: Include a reset module in the device control library that sends the OpenVMS print symbiont the appropriate string. $ LIBRARY/TEXT/EXTRACT=reset_module_name - /OUTPUT=reset_module_name.TXT SYS$LIBRARY:devctl-name.TLB If you are using the default device control library SYSDEVCTL.TLB and cannot locate it, see below for creation instructions. Use any editor to add the blank page suppression control sequence to the reset module text extracted from the library. The sequence is: {ESC}]VMS;2{ESC}\ Where {ESC} indicates the ASCII escape character. (This sequence is processed by and controls the activities of the OpenVMS print symbiont, and the sequence -- when correctly formated -- will not be sent to the printer for processing. This sequence is specific to OpenVMS and the OpenVMS Print symbiont, and not the printer.) Alternatively, depending on the particular printer, you may need to use the following PCL reset module sequence to suppress the formfeed: {ESC}P{ESC}E{ESC}\ Where {ESC} represents the Escape character, {ESC}E is a PCL command, and {ESC}\ is the PCL terminator. (This sequence will be sent to the printer, and will be interpreted by the printer.) As shown above, device control modules requiring any embedded HP PCL sequences should always be bracketed between the sequence {ESC}P and the sequence {ESC}\. Stop all queues using the device control library, and then insert the (updated) module back into the device control library: $ STOP/QUEUE/NEXT queue-name $ LIBRARY/INSERT/TEXT - SYS$LIBRARY:devctl_name.TLB - reset_module_name.TXT Restart each queue using this device control library. Certain printers may require a different approach when suppressing the formfeed (when accessing the printer via telnet symbiont), via the definition of the appropriate logical name: $ DEFINE/SYSTEM/EXECUTIVE UCX$TELNETSYM_SUPPRESS_FORMFEEDS 1 $ DEFINE/SYSTEM/EXECUTIVE TCPIP$TELNETSYM_SUPPRESS_FORMFEEDS 1 If you wish individual control over the settings for specific telnet queues, you can define the logical name appropriately, start the queue(s) requiring the particular setting, and then redefine the logical name and start the remainder of the telnet queues. For additional information on device control libraries, see topic (2771). Also determine if the print queue should be set to /NO_INITIAL_FF: INITIALIZE/QUEUE/NO_INITIAL_FF or SET QUEUE/NO_INITIAL_FF For additional information and pointers for TELNETSYM printing an blank pages, please see the TCP/IP Services management documentation and please see topic (8175). -- The HP PCL code for portrait mode follows: {ESC}&l0O This is the escape character, an ampersand, a lowercase letter L, a zero, and an uppercase letter O. -- To associate a device control library module with a particular defined printing form, use a DCL command similar to the following: $ DEFINE/FORM - /PAGE_SETUP=page_setup_module_name - /SETUP=device_setup_module_name - form_name form_number The /PAGE_SETUP qualifier causes module page_setup_module_name to be sent to the printer before each page is printed, while the /SETUP qualifier causes the device_setup_module_name to be sent for each new print file sent to the printer. Also of interest here can be the /STOCK qualifier (not shown), as this can control the behaviour of the printer when specific printing stock is (or is not) loaded into the printer. Using the stock, you can prevent program listings from being printed out on, say, the blank check or the mailing label stock that happens to be loaded into the printer. The name of the stock defaults to the name of the form. If you do not wish to specify the stock, you will want to use /STOCK=DEFAULT when defining the form. To associate the form with a particular print queue for all jobs printed to the queue, use the DCL command: $ INITIALIZE/QUEUE/DEFAULT=(FORM=form_name) queue_name Related commands include SET QUEUE, START/QUEUE, and PRINT/FORM. The default device control library is named SYSDEVCTL.TLB. See below for library creation instructions. -- For blank-pages using TCP/IP Services for OpenVMS symbionts: For information on the printer port, contact the printer vendor. Various HP printers have traditionally used port 9100. (See the section on printer ports below for other printers.) You can confirm this with the vendor, or with commands such as: $ telnet printername 9100 $ SET HOST/TELNET printername/port=9100 Issue the above command to connect to the printer's raw port (NOT the telnet port!) via telnet, type some text, and then enter a printer specific command (such as {CTRL/L} or {CTRL/D} on HP printers) to flush the buffer. If the printer accepts this sequence and prints something resembling what was entered, then you know that is the right port. 9100 is typically a raw TCP port. For example: $ telnet prtnic /port=9100 %TELNET-I-TRYING, Trying ... ww.xx.yy.zz %TELNET-I-SESSION, Session 01, host prtnic, port 9100 -TELNET-I-ESCAPE, Escape character is ^] Now enter a {CTRL/T} character. If the printer is set to Postscript and is functioning correctly, the response should appear similar to the following: %%[ status: idle ]%% Port 9100 may or may not be the port used on any particular printer NIC. (No, the OpenVMS Wizard does not have a list of the ports used on arbitrary printers -- please check the printer documentation or check with the printer vendor.) DIGITAL TCP/IP Services for OpenVMS (UCX) V4.1 or V4.2 (or later, as available) is recommended. Use of the appropriate ECO kits is also recommended. The typical command to create and start the symbiont queue under UCX can look like this: $ initialize/queue/start queue_name - /on="UCX$QUEUE:insert_port_here" - /process=ucx$telnetsym -- IP Printer Ports: For information on ports chosen for various printers, NICs, terminal servers, or DECserver devices, please see the documentation that is associated with the device. Also please see listings in topics (3960), (4045), and (6975). -- TCP/IP Services Logical names: Related logical names -- covered in the TCP/IP Services documentation in rather more detail -- can include (on releases prior to TCP/IP Services V5.0) UCX$TELNETSYM_IDLE_TIMEOUT, UCX$TELNETSYM_RAW_TCP, and UCX$TELNETSYM_SUPPRESS_FORMFEEDS. Alternatively, see the documentation for TCPIP$TELNETSYP_IDLE_TIMEOUT, TCPIP$TELNETSYM_RAW_TCP, and TCPIP$TELNETSYM_SUPPRESS_FORMFEEDS on TCP/IP Services V5.0 and later. Messages such as "open_socket_ast invoked with bad IOSB 660: connect to network object rejected." in the log file can be triggered by a retry interval that is too short for the particular printer -- faster printers can use shorter intervals, though faster polling can also increase host overhead. (Values such as 15 to 30 seconds can be appropriate for many printers.) To tell TCP/IP Services LPD to retry the print job every minute: $ DEFINE/SYSTEM/EXECUTIVE UCX$LPD_RETRY_INTERVAL "0 00:01:00.00" $ DEFINE/SYSTEM/EXECUTIVE TCPIP$LPD_RETRY_INTERVAL "0 00:01:00.00" In particular, you may also need to define one (or more) of the following logical names: $ DEFINE/SYSTEM/EXECUTIVE UCX$TELNETSYM_RAW_TCP 1 $ DEFINE/SYSTEM/EXECUTIVE TCPIP$TELNETSYM_RAW_TCP 1 $ DEFINE/SYSTEM/EXECUTIVE UCX$TELNETSYM_SUPPRESS_FORMFEEDS 1 $ DEFINE/SYSTEM/EXECUTIVE TCPIP$TELNETSYM_SUPPRESS_FORMFEEDS 1 $ DEFINE/SYSTEM/EXECUTIVE UCX$TELNETSYM_IDLE_TIMEOUT "0 00:00:30.0" $ DEFINE/SYSTEM/EXECUTIVE TCPIP$TELNETSYM_IDLE_TIMEOUT "0 00:00:30.0" Similar messages such as "open_socket_ast invoked with bad IOSB 556: device timeout" can be triggered by device sharing, such as another host system printing to the same printer. If the idle timeout setting (or the equivilent mechanism on the other host) is set to a relatively large value, the host with the long timeout can block this and other hosts from accessing the printer. It is possible that the symbiont within the printer itself has its own timeout setting or is otherwise busy and is simply not responding sufficiently quickly. (Accordingly, this IOSB 556 error can be benign, and you can silence the OPCOM message using the NO_OPCOM logical name described below, or by by adjusting the idle timeouts involved.) It is also possible that the IOSB 556 device timeout error indicates a network problem, as this error can also result from IP routing problems between the host and the printer. (Use ping, and also try to telnet into the printer.) Also consider the settings of the NO_OPCOM and LOG_KEEP logical names. NO_OPCOM is a binary value, with 1 to disable OPCOM messages and 0 to enable reception: $ DEFINE/SYSTEM/EXECUTIVE UCX$TELNETSYM_NO_OPCOM 1 $ DEFINE/SYSTEM/EXECUTIVE TCPIP$TELNETSYM_NO_OPCOM 1 LOG_KEEP is set to the number of log files to retain: $ DEFINE/SYSTEM/EXECUTIVE UCX$TELNETSYM_LOG_KEEP 9 $ DEFINE/SYSTEM/EXECUTIVE TCPIP$TELNETSYM_LOG_KEEP 9 Check your TCP/IP Services documentation for further details. -- HP JetDirect Printer Banner Page Settings: For information on the configuration, commands, and operation of HP (formerly known as Hewlett-Packard) printers, and for information on the current printer firmware version and on any associated upgrade procedures, please contact HP. Various HP JetDirect printer settings can clearly become involved in how the printer functions, and some of the printer settings are visible via the HP JetAdmin tool (and some are reportedly not visible via JetAdmin). One of the most common items folks wish to control is the printer's own printer-generated banner page. This printer-generated banner displays the user, host, class and job, and generally looks similar to the following: User: user Host: host Class: Job: job Using the instructions for accessing the printer via telnet that are listed in an earlier section, enter the following administrative commands directly to the HP printer: > banner: 0 > quit Other JetAdmin options are visible via the ? (help) command at the dead private (>) prompt. Other potential options that can be involved include the processing of linefeed (LF) and carriage return (CR) in the printer -- please contact the printer vendor for assistance with this configuration, and determining how to alter these settings. -- Web-based Printer Management Interface: Some printers may have an integrated web (httpd) server for printer configuration and control, check the printer documentation for the printers capabilities. If the printer does contain a web server as a management interface, direct your web browser at the printer's IP address and management port. Check the printer documentation for the IP port -- common httpd ports include 80 and 8080 -- and for details of the management interface. -- Typical Postscript Printing: With Postscript printers on OpenVMS, the usual approach is the DCPS package. DCPS has raw TCP/IP support in V1.4 and later -- the telnet symbiont also uses the raw TCP/IP support. (Postscript printers use bidirectional communications, and the DPCS-OPEN PAK enables support for a variety of third-party Postscript printers.) -- If you need and do not have a default device control library (which is the case if a device control library has not already been created for you on your system), you can create one with the command: $ LIBRARY/CREATE/TEXT SYS$COMMON:[SYSLIB]SYSDEVCTL.TLB -- With HP 4000 and HP 5000 series printers (and with printers in general), ensure that the printers are running the latest firmware version. In the case of the HP 4000 and HP 5000 series printers, these printers must be running a minimum of "19980714 MB3.68". This firmware version number is displayed as Firmware Datecode on the printer's configuration page. (Also see topic (1797).) If you are using an HP 4000 or HP 5000 or derivative printer -- or a printer from another vendor -- please contact the vendor and request the proper firmware version. The HP 4000 and HP 5000 series printer firmware is shipped by HP on a SIMM, and this SIMM is installed directly into the printer. Depending on the operation of the symbiont and the speed at which the printer is available, TCP/IP Services may need to back off and retry the submission -- having a value that is too large can result in delays before jobs are started, and having a value that is too low can result in polling overhead. To adjust the interval, use the following: $ $! Tell the LPD symbiont to retry the job every minute: $! on V5.0 and later... $ DEFINE/SYSTEM/EXECUTIVE TCPIP$LPD_RETRY_INTERVAL "0 00:01:00.00" $! on versions prior to V5.0... $ DEFINE/SYSTEM/EXECUTIVE UCX$LPD_RETRY_INTERVAL "0 00:01:00.00" -- Printer Character or Print Format Interpretation Problems: If you are seeing printouts sent to a remote printer appearing with all output sent to the printer printed on a single line on the paper, then check the settings of the target LPD or (more commonly) Telnet server in use -- if you are printing via a DECserver terminal server, then see the SET PORT commands for the TELNET CLIENT and the TELNET SERVER. (Topic (4811) here in the Ask The Wizard area has an introduction to these particular DECserver settings.) How other servers on other boxes might control these particular settings will vary. Most printers have programmable settings for the interpretation of tab characters, line feeds (see previous, and see topic (4811)), and other such characters. Also, most printers will maintain these and other settings for the active print job, the default settings when the printer powers up, and the factory default settings for the printer. In other words, if the printer is not printing your output correctly -- but the data is getting to the printer -- then you will need to check the printer-specific documentation for details, commands, and options that will be available to you. And once you get it working, make sure you save the settings. If you wish to control the settings of the printer as part of the processing of the OpenVMS print job, you will need a device control library. (See the section on device control libraries for additional details.) -- HP PCL Landscape Printing: For HP PCL landscape processing, as well as an example of a device control library and a device control library module, see topic (5271). -- The TCP/IP Services package typically expects to use the host name of a printer. If this name is not known via DNS, you will want to declare it via a command such as the TCP/IP Services management utility (TCPIP on V5.0 and later, UCX on earlier releases) command: SET HOST "printer.domain.etc"/alias="myhost"/address=w.x.y.z -- As for some of the various discussions of the HP LaserJet 4000 series printers, other HP printers, and various IP printing discussions, please see the following topics here in the Ask The Wizard area: (546), (919), (1020), (1429), (1781), (1797), (2221), (2267), (2276), (2312), (2631), (2696), (2771), (3041), (3280), (3960), (4045), (4811), (5271), (5431), (5737), (6975), (8175), etc. This topic (1020) is the best starting point.
|