How to rebuild a corrupt NDPS Manager database using PAGen.exe

  • 3591389
  • 11-Mar-2008
  • 26-Apr-2012

Environment

Novell Distributed Print Services (NDPS)
Novell iPrint

Situation

Errors returned when attempting to load NDPSM.NLM
NDPS Manager database corruption suspected.
How to rebuild a corrupt NDPS Manager database using PAGen.exe.
How to recover from a corrupt PSM database.

Resolution

If the print manager can load and you need to preserve Printer Driver Profiles or 3rd party accounting data, you may want to consider following an alternative to PAGen (see KB 7007167).
 
Recover database from backup

If the server is running NDPSM.NLM dated 18DEC2003 or later, then multiple backup copies of the PSM database exist in the VOL:\NDPS\XXXXXXXX.PSM directory. If NDPSM.NLM is dated between 18DEC2003 and 25AUG2005, then the copies consist of a pair of .DAT and .IDX files. If NDPSM.NLM is dated 25AUG2005 and later, then there will be multiple copies the .DAT files. Read the CAUSE statement of KB 10099109 for a detailed explanation of why there is not an IDX file with the newer NDPSM.NLM.
- PSMDBSAV is of 1AM that morning.
- PSMDBSV1 is a copy from 10 days ago.
- PSMDBSV2 is a copy from 20 days ago.
- PSMDBSV3 is a copy from 30 days ago.
- PSMDBSV4 is a copy from 40 days ago.

To recover from NDPS Manager database corruption:
a. Ensure that NDPSM.NLM is unloaded
b. Using Windows Explorer, browse to the .PSM directory. (Read the"Identify Correct .PSM Directory" note above)
c. Move the corrupt PSMDB.DAT file to a safe location.
c. Choose which backup .DAT you would like to use.
d. Rename the backup PSMDB.DAT.
e. Load NDPSM.

This will load the PSM database from X days ago. The assumption is that the backup copy does not have the corruption.
Use the Printer Agent Generator Tool (PAGen) to create a fresh database

If the server is running NDPSM.NLM dated 10MAR2004 or later AND a PADBTXT.CSV exists on the server, then you can use PAGen to create a fresh database with all of the original printer agents. Download the Printer Agent Generator tool (PAGen.exe) and read the associated documentation. Also, the steps below will be helpful in guiding you through the process of
- deleting the PSM database
- instantly creating a fresh PSM database with all of the original printer agents
- associate the newly created printer agents to their associated NDS printer objects.

a. Download PAGen by going to Novell's File Finder and searching for PAGen.exe dated 10AUG2004 or later. (Older versions of PAGen.exe do not work with NDPSM.NLM dated 21JUN2004 or later)
b. Unload NDPSM, if it is loaded.
c. Using Windows Explorer, browse to the .PSM directory. (Read the"Identify Correct .PSM Directory" note above)
d. Copy PADBTXT.CSV to the root of C: on your workstation
e. Copy PAGen.EXE to the root of C: on your workstation
f. Move all the contents of the XXXXXXXX.PSM directory to safe location, leaving the .PSM directory on the server empty.NDPSM.NLM must be unloaded for the files to move. If Windows still won't let you move the files, then:
- Right-click the file that can't be moved, and choose properties.
- Uncheck the "transactional" flag, and click OK.

g. Load NDPSM.NLM (this will create a new PSMDB.DAT and the list of printer agents will be blank)
h. Your workstation must have the Novell Client installed with the NDPS Component and a Primary connection to the NDPS Manager tree. To confirm this:
- Right-click the RED N
- Choose "NetWare Connections..."
- Under the Resource column, look for the tree where the NDPS Manager object resides with an asterisk (*) next to the name.

i. Run the Associate Operation within a command prompt as follows:

pagen /psm=.nameofPSM.OU.OU.O /broker=.nameofbroker.OU.OU.O /tree=yourTreeName /operation=associate /CSVfile=padbtxt.csv

This operation will recreate all of your Printer Agents and associate them to their corresponding NDS printer objects.

Additional Information

There are multiple reasons NDPSM will fail to load. The main reasons are:
1) Corrupt NDPS Manager Database
2) NDPS NLM problems
3) NDS problems

If the first reason is suspected, then loading a backup copy of the database or recreating the NDPS Manager database will cause the corruption to be gone. If the corruption returns later, then call Novell Support to help in determining the cause of the corruption.
Identify Correct .PSM Directory

Before recovering from NDPS Manager database corruption, be sure you correctly identify the .PSM directory that is associated to the NDPS Manager object in DS. There are several ways to accomplish this:

1. View .PSM Directory through Windows Explorer:
Using Windows Explorer, browse to the location of the NDPS Manager database files.
The location will be [VOL]\NDPS\XXXXXXXX.PSM. There is a .PSM directory for every Manager ever created on that server. Therefore, you may need to examine the contents of the .PSM directory to confirm that you are viewing the correct Manager database. There will be a .PA sub-directory for every printer agent on that NDPS Manager database. Also, viewing the creation date of the .PSM directory may help you determine which .PSM directory is correct.

2. View .PSM path through Server Console:
If the Manager is able to load, then you can determine the exact .PSM directory by:
- Go to the NDPS Manager screen on the server console
- Hit ENTER on NDPS Manager Status and Control
- Hit ENTER on Database Options
- Hit ENTER on Examine Database
- Make note of the database location

3. View .PSM path through ConsoleOne:
- Launch ConsoleOne.exe
- Open the Properties of the NDPS Manager object
- Click the "Other" tab
- View the "Database Dir Path" and "Database Volume"
Public Access Printer Agents

Public Access Printer Agents will not be created by PAGen.exe because Public Access PA's don't have associated NDS objects. PAGen requires an NDS object or it will skip over that row in the CSV file. For this reason, you must manually create your Public Access Printer Agents. This can be done after PAGen.exe is executed. Also, you can refer to the CSV file created by NDPSM to help you manually create the Public Access PA's. The CSV will show the PA Name, IP address of the printer (unless the Old Novell Port Handler Gateway was used), and the associated drivers.
Printer Agents configured for the Old Novell Gateway

Printer Agents using the Old Novell Port Handler Gateway will have incorrect Gateway Load String information. The Old Novell Gateway shows NDPDS as the Gateway Load String. This is insufficient to cause a Printer Agent to communicate with a physical printer on the network. You will either need to manually create these Printer Agents or you can modify the Gateway Load String column (column 6 in the CSV file) to instruct the PA to load the new Novell Gateway (NDPSGW.NLM). The format to use in this column is:

NDPSGW PORT=LPR HOSTADDRESS=[the ip address of your printer] PRINTERNAME=PASSTHROUGH

for example:

NDPSGW PORT=LPR HOSTADDRESS=232.73.158.151 PRINTERNAME=PASSTHROUGH

Formerly known as TID# 10092230