Users can't print from applications displayed through Tarantella

Follow the checklists for the:

If these don't resolve the problem, follow the steps in Diagnosing other problems below.

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

Client devices

Has a printer been created?

Web browser users should see a printer icon on their webtop. If it is greyed out, check the Java console for information on why the printer has not been created.

Tarantella Native Client users, check the status bar to see if the message "Ready to print" is displayed. If it isn't, select View log from the Webtop menu to see if there is any information on why a printer has not been created.

Is printing paused on the client device?

Make sure that the user's webtop indicates that printing is not paused. For web browser users, check that the Pause button has not been pressed. For Tarantella Native Client users, check the status bar.

In Object Manager, you can also use the Sessions tab on person objects, profile objects or host objects to see whether the user has paused printing. Alternatively, use the tarantella webtopsession list command.

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 client device, check that you have configured printing for UNIX client.

Is the message "Can't Print" displayed?

A "Can't Print" message, with a printer icon containing a red X, means that Tarantella doesn't support printing for this client device or printer type.

You may need to examine the printertypes.txt file and customize it.

If you're using Tarantella PDF printing, is the Adobe® Reader® installed on the client?

To be able to use Tarantella PDF printing, the Adobe Reader must be installed on the client. If it is not installed, the Tarantella PDF printer (called "Universal PDF") won't be available to the user.

Application servers

Is a printer configured on the application server?

Before users can print, you may need to configure a Tarantella printer on your application servers:

Is the printer being created on the Windows 2000/2003 application server?If the user is trying to print from a Windows 2000/2003 application server (accessed using Windows Terminal Services) and the user's printers should be 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 may not be supported by the application server. Either install the printer driver on the application server or see Printing from a 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 you've defined. On UNIX, the prtinstall.en.sh script creates a printer named tta_printer by default.
  • On UNIX, the application should print using the replacement lp or lpr scripts installed by prtinstall.en.sh. The Tarantella login scripts set PATH to ensure that the replacement scripts take precedence over the system scripts. If the application uses a full pathname, for example /usr/bin/lp, or modifies PATH itself, you should reconfigure the application to use install_dir/bin/lp or install_dir/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 username, Tarantella may be unable to distinguish which user owns the print jobs, and discards them (logging that it has done so). This occurs with:

  • UNIX 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.
  • Microsoft Windows application servers accessed using the Citrix UNIX Integration Services or WinCenter Windows protocol.
  • Microsoft Windows NT 4 application servers accessed using the Windows Terminal Services Windows protocol. (Microsoft Windows 2000/2003 application servers are not affected.)

Use the tarantella print command to check that print jobs from the application server printing system have reached the Tarantella print queue.

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

You can avoid this problem by editing the file hostnamemap.txt in the install_dir/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're using Tarantella PDF printing, has the same PostScript printer driver been installed on every Windows 2000/2003 application server?

To be able to use Tarantella PDF printing, you must install the same PostScript printer driver on every Windows 2000/2003 application server. Check that the name of the driver matches the name you typed in the Driver name field on the Array properties panel. The System event log on the application server will show an error if the names do not match.

Tarantella servers

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.

Has the array configuration changed?Printers are not re-configured when you:
  • you create an array,
  • you add a new secondary server to the array, or
  • you change the primary server in the array.

If the array has changed you may to re-configure your printers so that print jobs are sent to the correct printer. Whether you have to re-configure or not, depends on the application server and the change made.

Is Ghostscript available on the Tarantella host?

Tarantella PDF printing uses Ghostscript to convert print jobs into PDF files. Tarantella also uses Ghostscript to convert print jobs from PostScript to PCL.

If the install_dir/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 Tarantella, Tarantella Setup automatically detects Ghostscript if it is installed in one of the following locations:

  • /usr/local/bin
  • /usr/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 Tarantella where to find Ghostscript.

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

Diagnosing other problems

If the checklists above don't solve the problem, follow these steps.

1. Can you print from the Tarantella server?

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

If the first test page prints

The problem is related to the movement of print jobs from the application server to the Tarantella server.
For UNIX 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 printing system on the host on which Tarantella is installed. Investigate and fix any problems, using your UNIX system documentation for help. Then try printing again.

If neither test page prints

The problem is related to the Tarantella server. Go to step 2.

2. Is the Tarantella printer installed on the Tarantella server?

In the list of printers on the host, you should see an entry for tta_printer. Consult your UNIX 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.

If tta_printer is present

The problem is related to the movement of print jobs from the Tarantella server to the client device. Go to step 7.

If tta_printer is not present

Run the prtinstall.en.sh script on the Tarantella server. Then try printing again.

3. Is the print job leaving the UNIX application server?

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

If the lp command returns an error message

Check that the UNIX server is configured to print through Tarantella. You may need to run the prtinstall.en.sh script.

If the lp command returns a print job ID

This suggests that Tarantella printing is correctly configured, but the problem may lie in the UNIX system. Go to step 4.

4. Is the print job present in the UNIX spool directory?

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

If the job is present

There may be a network problem between the application server and Tarantella server. Go to step 6.

If the job is not present

Check your UNIX 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 (ps -ef | grep lpd on most systems -- check your system documentation for the correct arguments to the ps command) and listening (netstat -a | grep printer). Then 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.

If the print job is leaving the application server

There may be a network problem between the application server and Tarantella server. Go to step 6.

If the print job is not leaving the application server
  • Check the configuration of the Tarantella printer.
  • Check that you can ping and telnet to the Tarantella server from the application server.
  • Look for errors in the Event Log.
  • From a command prompt, try typing lpr -s server -p tta_printer filename to print. If this works, this suggests the printer driver on the application server is not installed or configured correctly.

6. Is the print job reaching the Tarantella server?

Check the Tarantella print spool directories on the Tarantella server: install_dir/var/spool and install_dir/var/print/queue.

If the print job is present
  • Check that you're 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 isn't present
  • Check your UNIX 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 (ps -ef | grep lpd) and listening (netstat -t | grep lpd).
  • Check that you can ping and telnet to the Tarantella server from the application server.
  • Windows Terminal Services: From a command prompt, try typing lpr -s server -p tta_printer filename 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 install_dir/var/log on each array member.

If the print log files are empty, you need to edit the Log Filter to log printing messages. In Array Manager, display the Array properties panel and add the following log filters:

server/printing/*:print%%PID%%.log
server/printing/*:print%%PID%%.jsl

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

Related topics
  • Introducing Tarantella printing
  • The tarantella print command