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. |
|