Tuesday, October 14, 2014

How to find the documents which reference a DAOS NLO file.

Yesterday i had the problem that a user who got a new replica of his mail file does not get new mails. Every time he start the replication of his mail file he got the error "File does not exist" in the replicator tab.  The replication log shows that the replica is sending data to the server, but does not get any data from the server.

The error message "File does not exist" on the client does not really help, but there is also an error in the server log which shows the root cause of the problem.

13.10.2014 16:49:37   The database F:\Lotus\Domino\SERVER\mail\user.nsf attempted to access a missing file: f:\lotus\daos\SERVER\0001\3F67501E6AA30F96DACABAC0E1F27E2A8206AA0CC00025069.nlo: File does not exist.

Ok now we know that the problem is a missing NLO file in the DAOS directory. When the client wants to replicate the document which contains the reference to the NLO file the server cannot provide the document because he can not load the attachment. Normally you would restore the missing NLO file from your backup, but what is to do if you are not able to restore this file.

First possible solution is to delete all documents from a database  which have references to missing NLO files with fixup.

load fixup -D -J user.nsf

I do not like this solution, because maybe the document with the missing NLO contains important informations.

So the better solution is to search for the document and decide manually if it is save to permanently remove the document.

Go to the server console and set the configuration variable "DEBUG_DAOS_DIAGNOSTICS" to 1

set configuration DEBUG_DAOS_DIAGNOSTICS=1

There is no restart of the server needed.

Tell the DAOSMGR to create a detailed overview over all NLO's and the corresponding documents.

tell daosmgr LISTNLO MAP -V mail/user.nsf

You will find the created "listnlo.txt" file in the database directory of the server. In our example in "mail". Copy the file to your local workstation and open it in your favorite spreadsheet application for example Libreoffice Calc.

Import IBM DAOS NLO List in Libreoffice

Then you can search for your missing NLO in the RRV_HASHKEY column. The NoteID of the document which references the missing NLO file is in the second column (DOC_NOTEID_HEX).

Now you can search for the NoteID in the Administrator client and fortunately in my case it was only a spam mail which was save to remove from the database.

Open IBM Notes Domino Notes in Administrator

After that the replication of the database worked again without a problem.

Do not forget to disable the debug variable with

set configuration DEBUG_DAOS_DIAGNOSTICS=0

No comments:

Post a Comment