Skip past navigation linksSecure Global Desktop 4.40 Administration Guide > Printing > Users Cannot Print From Applications Displayed Through SGD

Users Cannot Print From Applications Displayed Through SGD

Follow these checklists:

If these do not resolve the problem, follow the steps in Diagnosing Other Problems below.

There is a separate troubleshooter for problems with Microsoft Windows 2000 or 2003 printer preferences and settings.

Client Devices

What to Check Description
Does SGD support printing for the client device or printer type? Check the Printing bar on the webtop, does the printer icon contain a red cross and does the message "No Client Printer Available" display. This means that SGD does not support printing for this client device or printer type or that there was an error creating client printers.
Is printing paused on the client device? Make sure the user has not paused printing. Check the printer paused icon is not displayed.

Use the tarantella webtopsession list command to see whether the user has paused printing.

Is the printer configured correctly? Make sure that the printer is correctly configured, for example by printing a web page to the printer from a web browser on the client device. Depending on the application server, some print jobs can only go to the client device's default printer.

If printing to a UNIX, Linux or Mac OS X system client device, check that you have configured printing for these client types.

For PDF printing, is the PDF viewer installed on the client? To be able to use Secure Global Desktop PDF printing, a PDF viewer must be installed on the client device.

Check that the supported viewer or the user's preferred viewer is installed on the client and that the application is executable.

On UNIX, Linux, or Mac OS X system client devices, check that the user has read and write access to the /tmp directory. If the PDF viewer is Adobe Reader (acroread), check that the viewer supports the -openInNewWindow command option. If the PDF viewer is Preview app (/Applications/preview.app), check that the viewer supports the open -a command option.

If it is not installed or accessible, the Secure Global Desktop PDF printers are available to the user.

For PDF printing from a UNIX or Linux system application server, is the print job in the right format? If the user's PDF viewer starts, but they receive a file format error, check that the format of the file being printed on a UNIX or Linux application server is Postscript.
Does the user have the necessary registry permissions? On Microsoft Windows client devices, users must have write access to the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\RNG\Seed registry key and read access to the rest of the registry.

This access is required by several of the Windows APIs for printing.

Application Servers

What to Check Description
Is a printer configured on the application server? Before users can print, you might need to configure a SGD printer on your application servers:
Is the printer created in the Windows application session? If the user is trying to print from a Microsoft Windows 2000 or 2003 application server (accessed using Windows Terminal Services) and the user's printers are configured automatically. If they are not, check the System event log on the application server for the following errors:
  • Event ID: 1111
    Description: Driver drivername required for printer printertype is unknown. Contact the administrator to install the driver before you log in again.
  • Event ID: 1105
    Description: Printer security information for the printername / clientcomputername /Session number could not be set
  • Event ID: 1106
    Description: The printer could not be installed.

These errors indicate that the printer driver for client printer might not be supported by the application server. Either install the printer driver on the application server or see Printing from a Microsoft Windows 2000/2003 application server for details on how to support other printer drivers, including using wildcards to support a wide range of printer driver names.

It is also worth checking that the name of the printer driver in the default.printerinfo.txt (or the user's $HOME/.tarantella/printerinfo.txt) matches the name of the driver on the application server.

If this does not resolve the problem, see the Microsoft Knowledge Base article Q239088 for more details.

Is the application printing to the correct printer?
  • The application must print to the printer queue you have configured. On UNIX or Linux application servers, the prtinstall.en.sh script creates a printer queue named tta_printer by default.
  • On UNIX or Linux system application servers, the application must print using the replacement lp or lpr scripts installed by prtinstall.en.sh. The SGD login scripts set PATH to ensure that the replacement scripts take precedence over the system scripts. If the application uses a full path name, for example /usr/bin/lp, or modifies PATH itself, reconfigure the application to use /opt/tarantella/bin/lp or /opt/tarantella/bin/lpr.
Are accounts shared on the application server? If more than one user is simultaneously logged in to the same application server with the same user name, SGD might be unable to distinguish which user owns the print jobs, and discards them (logging that it has done so). This occurs with UNIX or Linux system application servers on which the prtinstall.en.sh script has not been run. To fix, run the prtinstall.en.sh script to configure a printer.

Use the tarantella print command to check that print jobs from the application server printing system are reaching the SGD print queue.

Is the Windows name of the server the same as the DNS name? If you have a Microsoft Windows NT server with a DNS name of naples.indigo-insurance.com and a NetBIOS name of VESUVIUS, print jobs from this server fail because they contain the host identifier VESUVIUS instead of naples.

You can avoid this problem by editing the file hostnamemap.txt in the /opt/tarantella/etc/data directory. This file allows you to map host names to DNS names. The file contains instructions on how to create the mappings.

If you are using Secure Global Desktop PDF printing, is the same PostScript printer driver installed on every Microsoft Windows 2000 or 2003 application server? To be able to use Secure Global Desktop PDF printing, you must install the same PostScript printer driver on every Microsoft Windows 2000 or 2003 application server. Check that the name of the driver matches the name configured in the Postscript Printer Driver field in the Global Settings » Printing tab or the Printing tab for the user profile or parent object in the SGD Administration Console. The System event log on the application server shows an error if the names do not match.

SGD servers

What to check Description
Is printing paused or disabled across the array? Use the tarantella print status command to check whether printing is paused or disabled for the array. If necessary, enable printing using tarantella print start or tarantella print resume.
For printing on Microsoft Windows client devices, are client printers disabled? In the SGD Administration Console, check the Global Settings » Printing tab or the Printing tab for the user profile or parent object to see whether users can access all their client printers, just their default client printer, or no client printers. For PDF printing, check whether the Secure Global Desktop PDF printers are enabled.
Has the array configuration changed? Printing is not re-configured in the following circumstances:
  • You create an array
  • You add a new secondary server to the array
  • You change the primary server in the array

If the array has changed you might have to reconfigure printing so that print jobs are sent to the correct printer. Whether you have to reconfigure or not, depends on the application server and the change made.

For PDF printing, is Ghostscript available on the SGD host? Secure Global Desktop PDF printing uses Ghostscript to convert print jobs into PDF files. SGD also uses Ghostscript to convert print jobs from PostScript to PCL.

If the /opt/tarantella/var/log/print.log contains a message like "can't find ps2pdf" or "Consider obtaining Ghostscript from http://www.ghostscript.com", either Ghostscript is not installed or it is installed in a non-standard location.

When you install SGD, Secure Global Desktop Setup automatically detects Ghostscript if it is installed in one of the following locations:

  • /usr/local/bin
  • /usr/bin
  • /usr/sfw/bin
  • /opt/sfw/bin
  • /bin
  • /usr/sbin
  • /sbin
  • /usr/lbin

If Ghostscript is installed elsewhere, you must run the prtinstall.en.sh script with the --gsbindir option to tell SGD where to find Ghostscript.

If more than one version of Ghostscript is installed, you must run the prtinstall.en.sh script with the --gsbindir option to tell SGD which version to use.

If Ghostscript is not installed, you must install it and then run the prtinstall.en.sh script.

Diagnosing other problems

If the checklists above do not solve the problem, follow these steps.

1. Can You Print From the SGD Server?

Configure an X or character application to run on the SGD server and display a shell window (for example xterm), and start it from your webtop. Try printing a test page, by running /opt/tarantella/bin/scripts/printtestpage.en.sh. If the page does not print, try /opt/tarantella/bin/scripts/printtestpage.en.sh --direct instead, which bypasses the UNIX or Linux system spooler.

What to Check Description
If the first test page prints The problem is related to the movement of print jobs from the application server to the SGD server.

For UNIX or Linux system application servers, go to step 3.

For Windows Terminal Services, go to step 5.

If the second test page prints The problem is related to the UNIX or Linux system printing system on the SGD host. Investigate and fix any problems, using your UNIX or Linux system documentation for help. Then try printing again.
If neither test page prints The problem is related to the SGD server. Go to step 2.

2. Is the SGD Printer Queue Installed on the SGD Server?

In the list of printers on the host, check for an entry for tta_printer. Consult your UNIX or Linux system documentation to find out how to display the list of printers. On some systems, this is lpstat -t. If your system has a file /etc/printcap, this contains a list of printers in plain text format.

What to Check Description
If tta_printer is present The problem is related to the movement of print jobs from the SGD server to the client device. Go to step 7.
If tta_printer is not present Run the prtinstall.en.sh script on the SGD server. Then try printing again.

3. Is the Print Job Leaving the UNIX or Linux System Application Server?

Using an application object configured to display a shell window on the UNIX or Linux system application server, try printing a small text file to the SGD printer. For example, type lp -d tta_printer /etc/hosts.

What to Check Description
If the lp command returns an error message Check that the UNIX or Linux platform application server is configured to print through SGD. You might need to run the prtinstall.en.sh script.
If the lp command returns a print job ID This suggests that SGD printing is correctly configured, but the problem might lie in the UNIX or Linux system. Go to step 4.

4. Is the Print Job Present in the UNIX or Linux System Spool Directory?

The print spool directory varies between different UNIX or Linux systems. Consult your UNIX or Linux system documentation for assistance.

What to Check Description
If the job is present There might be a network problem between the application server and SGD server. Go to step 6.
If the job is not present Check your UNIX or Linux system LPD printing configuration. For example, ensure that there are suitable entries in /etc/hosts.equiv or /etc/hosts.lpd, and that there are no deny files, such as /etc/hosts.equiv.deny.

Check that the lpd daemon is running and listening, for example, use the following commands:

Skip past command syntax or program code# ps -ef | grep lpd
# netstat -a | grep printer

Try printing again.

5. Is the Print Job Leaving the Windows Terminal Services Application Server?

Check the print queue on the application server. Consult your system documentation if you need help.

What to Check Description
If the print job is leaving the application server There might be a network problem between the application server and SGD server. Go to step 6.
If the print job is not leaving the application server
  • Check the configuration of the SGD printer.
  • Check that you can ping and telnet to the SGD server from the application server.
  • Look for errors in the Event Log.
  • From a command prompt, use the lpr -s server -p tta_printer filename command to print. If this works, the printer driver on the application server might not be installed or configured correctly.

6. Is the Print Job Reaching the SGD Server?

Check the SGD print spool directories on the SGD server: /opt/tarantella/var/spool and /opt/tarantella/var/print/queue.

What to Check Description
If the print job is present
  • Check that you are using fully qualified DNS names in the application object, and that name resolution is working correctly.
  • Examine the printing log files for more information. Go to step 7.
If the print job is not present
  • Check your UNIX or Linux system LPD printing configuration.

    For example, ensure that there are suitable entries in /etc/hosts.equiv or /etc/hosts.lpd, and that there are no deny files, such as /etc/hosts.equiv.deny.

    Check that the lpd daemon is running and listening, for example, use the following commands:

    Skip past command syntax or program code# ps -ef | grep lpd
    # netstat -t | grep lpd
  • Check that you can ping and telnet to the SGD server from the application server.
  • Windows Terminal Services: From a command prompt, use the lpr -s server -p tta_printer filename command to print. If this works, this suggests the printer driver on the application server is not installed or configured correctly.

7. Examine the Print Log Files

You can use the tarantella query command to examine the logs across the array. Log files are stored in /opt/tarantella/var/log on each array member.

If the print log files are empty, edit the Log Filter to log printing messages. In the SGD Administration Console, click the Global Settings » Monitoring tab, and add the following log filters:

Skip past command syntax or program codeserver/printing/*:print%%PID%%.log
server/printing/*:print%%PID%%.jsl

If the log contains messages indicating problems with user name mappings, this suggests you are using shared accounts on the application server. See Are accounts shared on the application server? above.

Related Topics