TigerLogic.com
Products    |    Solutions    |    Support & Services    |    Education    |    Partners    |    Corporate    |    Events    |    Contact Us

Tech Tip:
Problems encountered while setting up a printer in D3 NT?

D3 NT 7.2.1 +

There are several reasons why D3 NT will be unable to print to a Windows printer. This document will review the most common problems and solutions. Bear in mind, each Windows network is different and you may encounter problems not addressed here.

Does the printer work in Windows?
When ready to add a printer in D3 NT, the first thing to do is make sure you can print the Windows test page from the D3 NT server. It is absolutely necessary to print the test page from the D3 NT server and not a different PC client.

If you cannot print the Windows test page from the D3 NT server *STOP*-. You will have to resolve any Windows printer problems before D3 NT will see the printer.

Things to check if the printer cannot be accessed from Windows include but are not limited to:
1. Can you print from any other PC on the network to this printer?
2. If this is a new printer or PC on the network verify that the printer is “shared” on the PC.
3. Sometimes, deleting the printer from the D3 NT server and/or the host PC and then adding it back will make Windows see it on the network.
4. Verify that you are using the most current print driver supplied by the manufacturer for the printer in question.
Test the printer from Windows.
  • From the Windows START button,
    • Click on Settings, and then Printers. Locate the printer you want to add to D3 NT. Right click on the printer name and click PROPERTIES. Left click on the PRINT TEST PAGE button.

In addition to the fact that this will verify the D3 NT server’s ability to print to the printer you will find useful information on the test page. You can use the “printer name:” information to setup the printer in D3 NT. This shows the network path to the printer.

  • Start D3in debug and test printing from D3.
    • First verify that D3 is stopped.
    • Open the Windows Task Manager (hold down the Crtl and Shift keys.
    • Then enter ESC) make sure the ‘d3vme.exe’ and ‘d3odbcsv.exe’ services are not present.
    • Open a DOS window by clicking on START and the RUN.
    • Type CMD in the RUN box.
    • Click OK or press enter. A DOS window will appear.
    • Change directories to the “D3Programs” directory. With D3 stopped, type “d3vme/debug” and press enter.
    • At the following prompt, type a lower case “g” and press enter.
    • D3 will start.

As D3 is starting, note any errors that may display. If you see any printer errors, make sure they are resolved before continuing to troubleshoot printer problems. Once D3 is started you can use telnet or your favorite terminal emulation program to log into D3.

Now, you can test the printing from D3 while running in debug. If you can print from D3, this confirms that there is a Windows right issue that is not allowing D3 to access the printers on the network while starting as a service.

Set D3 NT to start in Windows Services with Administrator privileges
Locate the D3 Virtual Machine Environment” entry in Windows Services then:

  • In Windows NT 4.0:
    • Click on the STARTUP button.
    • Click on the This Account prompt. You can now enter Administrator as the ID to use when D3 starts. You can also click on the “…” prompt to browse for the correct ID.
  • In Windows 2000 and XP:
    • Right mouse click on the PROPERTIES button.
    • Click on the “Log On” tab.
    • Click on the “This Account” prompt. You can now enter Administrator as the ID to use when D3 starts. You can also click on the “BROWSE” button to select from a list of ID’s.

NOTE: You may need to create a new user ID with Administrator privileges. We have found this to work in some limited circumstances when the use of the Administrator ID did not produce favorable results.

Kill, reset, remove, make, and start a halted “shared” printer
The following steps will kill the printer, reset the PIB it is running on, remove the printer device, create the “shared” printer, and start it. You may find it necessary to do this if the printer fails to respond in D3.

sp-kill d1
d1 - Deletes printer 1 from the system.

reset-user 157
logs off port 157

dev-remov n157
removes the printer on port 157

dev-make –t ntprinter –n 157 –a “genicom”
creates the printer called “genicom” on port 157

startptr 1,10,0,s157 (sb
creates printer 1, form queue 10, 0 pages between reports, serial port 157

The difference between “shared” and “direct” D3 NT printers.
There are two types of printers in D3 NT, “shared” and “direct”. These terms should not be confused with similar Windows terms. These two types of printers are described in the following examples. In these examples, you will see how to set up the two types of printers as well as suggested trouble shooting that can be used to resolve problems you may encounter.

A D3 NT “shared” printer is probably best described as a traditional PICK printer. It uses the D3 spooler and makes use of all the D3 spooler options. A “shared” printer is setup in either USER-COLDSTART or at TCL.

A D3 NT “direct” printer does NOT use the D3 spooler. The print jobs are passed directly from D3 NT to the Windows spooler. These print jobs bypass the D3 spooler. You will not be able to use any D3 spooler options with these print jobs. A “direct” printer can be added in either the D3DeviceManager or in D3 NT using a “dev-make” statement. The D3DeviceManager is found in the Windows, D3 Program Group.

NOTE: DO NOT duplicate the same “direct” printer in both D3DeviceManager and USER-COLDSTART. If the same “direct” printer is setup in both locations, you will produce unusual and undesirable results.

A "direct" printer is setup using the following commands.
You can also add a “direct” printer through D3DeviceManager. A “startptr” command is NOT required because you are not using the D3 spooler. When creating a “direct” printer, you will only assign a printer number.

:dev-make -t printer -n 12 -a "\\SUPPORTLT\EPSON,1,s"
dev-make: 'L12' (x'0005000C') created

"-n 12" represents the form queue number. ",1" allows 1 blank page between reports.
"\\SUPPORTLT\EPSON" is the printer you have setup as shared from your system.

:dev-list
Seq Typ Ref# Device-Type Device-Desc
==== ==== ==== ============ ===============================
1 L 12 PRINTER (Direct) \\SUPPORTLT\EPSON
2 M  0 TAPE (Floppy) \\.\A:
3 M 1 TAPE (Pseudo) C:\Program Files\D3\D3Programs
\D3Data.D3P
4 M 2 TAPE (Pseudo) C:\Program Files\D3\D3Virtual/Pseudo0

NOTE: D3 NT will allow you to create a "direct" printer even if that printer is not on the network or if D3 NT does not see it. However, the printer has to be on the network for any print jobs to be sent to it successfully from D3 NT.

If the printer is not on the network and you attempt to send print jobs to that form queue a D3 NT error will display.

:block-print testme (p

Unrecognized Opcode @ SP_PPUT_UNIX:000
O=Logoff / Q=Quit / <CR>=Go to debugger ?


A “shared” printer is setup using the following commands.
After creating the form queue, 'startptr' must be used to start the D3 spooler entry. A “shared” printer CANNOT be added through the D3DeviceManager.

:dev-make -t NTPrinter -n 100 -a "\\SUPPORTLT\EPSON"
dev-make: 'N5' (x'00090005') created

"-n 100" represents the PIB assigned to this print queue."\\SUPPORTLT\EPSON" is the printer you have previously setup as shared from your system.

:startptr 10,10,0,s100
[1118] Printer '10' control block initialized.

This means start printer 10, form queue 10, with 0 pages between reports, on PIB 100.

NOTE: You cannot create the NTPrinter (shared) if the printer does not show up on the network. The following error will display if the printer does not exist in Windows or if D3 NT does not see it.

:dev-make -t NTPrinter -n 5 -a "\\SUPPORTLT\EPSON,1,s"
dev-make: Creation failed. [-004] Invalid association ID

If a print job is sent to the printer while the printer is not on the network, the print statement aborts.

:block-print testme (p
Unrecognized Opcode @ SP_PPUT_UNIX:000
O=Logoff / Q=Quit / <CR>=Go to debugger ?

Things to be aware of.
D3 should be able to print to any printer showing up on the Windows network. That being said:
D3 cannot print to “Windows only” printers. D3 relies on the Printer Control Language (PCL codes) not supplied with “Windows Only” printers.
You will probably have problems printing from D3 running on Windows 2000 and Windows XP to printers on Windows 95 machines. You should have better luck printing to Windows 98 and better clients.
Sometimes, deleting the Windows printer and re-adding will help D3 “see” the printer. Try rebooting the Windows machine hosting the printer.
If you have problems printing to the Windows printer when using the “\\machine\printer” path in the D3 dev-make, try creating a printer on the D3 server and use it instead.
Avoid running a Windows Print Server on the D3 server.
If you are having problems setting up a D3 “shared” printer, try creating a “direct” printer instead. This will eliminate any possible problems with the D3 spooler.
Try moving the printer to the D3 server. Also, try moving the printer to another machine on the network. Preferably, running a different Windows OS.
As a general rule, try to use printer names with eight or less alpha/numeric characters. No spaces. No special characters. This is not normally necessary but may help if you have a problem printing from D3.
When starting D3 in debug, note any errors that may display. If the printer is shared correctly on the network, you should be able to print from D3. If you can print from D3, while started in debug, make sure D3 is setup to start with Administrator privileges in Windows Services.

December 20, 2007
September 7, 2006
Volume 1, 2005
Volume 1, 2004
Spring/Summer, 2003
Winter, 2003
Fall, 2002
Summer, 2002
Spring, 2002
Tech Tips
   
Copyright 2009. TigerLogic. All Rights Reserved