DB Size always growing

I have a database in Lotus Notes, the size of which is increasing steadily. There is an agent that runs on this db every night. This agent deletes all documents of the db then feed it again. There are about 16,000 documents in the database. My impression is that it was at the removal of documents by the agent that the db will never get space. To remedy this situation temporarily I make a local copy and deletes the database on the server and then recopy on the server. We know that when we copy a locally Notes an operation “Compact” is performed automatically. Once this is done the database is 5 mo so that initially it was 190 mb. I have done operations “Compact” on the db and that does nothing.

Do you have a solution?

Thanks in advance

J’ai une base dans Lotus Notes dont la taille augmente sans cesse. Il y a un agent qui s’exécute sur cette db à tous les soirs. Cet agent supprime tous les documents de la db pour ensuite l’alimenter à nouveau. Il y a à peu près 16 000 documents dans cette base. J’ai l’impression que c’est lors de la suppression des documents par l’agent que la base ne récupère jamais l’espace. Pour palier temporairement à cette situation je fais une copie locale et supprime la base sur le serveur pour ensuite la recopier sur le serveur. Nous savons que lorsque nous copions une base Notes localement une opération “Compact” est effectuée automatiquement. Une fois cette opération faite la base est de 5 mo alors qu’au départ elle était de 190 mo. J’ai fait des opérations “Compact” sur la base et cela ne donne rien.

Avez-vous une solution ?

Merci à l’avance

Subject: DB Size always growing

Probablement les talons de suppressions. Tu détruis tous les documents à toutes les nuits?

Les deletions stubs prennent de la place.

Réduit l’intervalle de purge

Q&As about replication purge intervals and cutoff dates

http://www-1.ibm.com/support/docview.wss?uid=swg21110117

How to purge document deletion stubs on the server immediately

http://www-1.ibm.com/support/docview.wss?uid=swg21095683


It’s probably the deletions stubs.

Are you deletying every documents, every night?

How Large Is a Deletion Stub in Notes?

Problem

How large is a deletion stub in Notes?

Reference #: 1093391

Solution

In Notes 5.x and 6.x, a deletion stub occupies 100 bytes.

In Notes 4.x, a deletion stub occupies 88 bytes.

In Notes 3.x, a deletion stub occupies 64 bytes.

Subject: RE: DB Size always growing

Exactly when that occurs. I downloaded “notespk.exe” because it is very useful to see how much there is a “deletion stubs” in a database.Thanks JYR

/

C’est exactement si qui se produit. J’ai téléchargé “notespk.exe” car il est très utile pour voir combien il y a de “deletion stubs” dans une base.

Merci JYR

Subject: RE: DB Size always growing

The problem is that it seems that these documents “Stubs deletion” are not déruits automatically.Thanks

/

Le problème c’est qu’il semble que ces documents “Stubs deletion” ne sont pas déruits automatiquement.

Merci

Subject: DB Size always growing

You should modify your script to compare the content of each document against the “new data” (whatever that is) and overwrite individual items or the entire document.

If you have the money, LEI is well worth a look.

Subject: RE: DB Size always growing

We have already and I do not find that this is the solution for my needs. Thanks to the help and the suggestion Thomas K/

Nous l’avons déjà et je ne trouve pas que c’est la solution pour mon besoin. Merci pour l’aide et la suggestion Thomas K

Subject: RE: DB Size always growing

Frederic,

It’s a little difficult to understand how LEI could not do whatever it is you’re doing with this agent. Can you expand on what this agent does?

Subject: RE: DB Size always growing

The agent was traveling all night and the following in the base X:1. It deletes all documents of the database

  1. He made several validations in a Y and Z db

  2. According to the validation made in the database Y it feeds from three db Y, Z and W.

It is the validation that, in my opinion, which does not allow for use of LEI

The withdrawal of “Deletion Stubs” is the most rapid, simple, efficient and less costly.

/

L’agent roule tous les soir et fait ce qui suit dans la base X:

1.Il supprime tous les documents de la base

2.Il fait plusieurs validations dans une base Y et Z

3.D’après les validation faites dans la base Y il s’alimente à partir de trois base Y, Z, et W.

Ce sont les validations qui à mon avis qui ne permet pas l’utilisattion de LEI

Le retrait des “Deletion Stubs” est la plus rapide, simple, efficace et moins couteuse.

Subject: RE: DB Size always growing

Can your validation be moved into the forms in use in W, Y and Z? So that when the documents are saved they are marked “OK to replicate to X” or “Not OK to replicate to X”. That is, does the validation have to be done at runtime or can it be pushed back to the form?

OR how about this:

  1. Replicate the data from each source database W Y and Z into another database A.

  2. Run an agent in A to mark each document either DO_REPLICATE=1 or DO_REPLICATE=0.

  3. Set up an LEI job to replicate from A to X where DO_REPLICATE=1.

This would eliminate the need to clear out X each time.

Subject: RE: DB Size always growing

Thank you for your interest. I will see if I could have permission to do this. There is no doubt that this requires a bit of programming but much less final manipulation.Thanks

/

Merci pour votre intérêt. Je vais voir si je pourrais avoir l’autorisation de faire cette démarche. il est certain que cela demande un peu de programmation mais en final beaucoup moins de manipulation.

Merci

Subject: DB Size always growing

I found the code that removes “Stubs deletion” : Agent/

J’ai trouvé ce code qui supprime les “Stubs deletion” : Agent

Option Public

Const wAPIModule = “NNOTES” ’ Windows/32

Declare Private Sub IDDestroyTable Lib wAPIModule Alias “IDDestroyTable” _

( Byval hT As Long)

Declare Private Function IDScan Lib wAPIModule Alias “IDScan”

( Byval hT As Long, Byval F As Integer, ID As Long) As Integer

Declare Private Function NSFDbOpen Lib wAPIModule Alias “NSFDbOpen” _

( Byval P As String, hDB As Long) As Integer

Declare Private Function NSFDbClose Lib wAPIModule Alias “NSFDbClose” _

( Byval hDB As Long) As Integer

Declare Private Function NSFDbGetModifiedNoteTable Lib wAPIModule Alias “NSFDbGetModifiedNoteTable” _

( Byval hDB As Long, Byval C As Integer, Byval S As Currency, U As Currency, hT As Long) As Integer

Declare Private Function NSFNoteDelete Lib wAPIModule Alias “NSFNoteDelete” _

( Byval hDB As Long, Byval N As Long, Byval F As Integer) As Integer

Declare Private Function OSPathNetConstruct Lib wAPIModule Alias “OSPathNetConstruct” _

( Byval NullPort As Long, Byval Server As String, Byval FIle As String, Byval PathNet As String) As Integer

Declare Private Sub TimeConstant Lib wAPIModule Alias “TimeConstant” _

( Byval C As Integer, T As Currency)

Dim Db As NotesDatabase

Sub Initialize

Dim Session As New NotesSession

Set db = Session.currentDatabase

Call ClearDeletionStubs(db)

End Sub

Sub ClearDeletionStubs(db As NotesDatabase)

Dim ever As Currency, last As Currency

Dim hT As Long, RRV As Long, hDB As Long

With db

np$ = Space(1024)

OSPathNetConstruct 0, db.Server, db.FilePath, np$

End With

NSFDbOpen np$, hDB

TimeConstant 2, ever

NSFDbGetModifiedNoteTable hDB, &H7FFF, ever, last, hT

n& = 0

done = (IDScan(hT, True, RRV) = 0)

While Not done

If RRV < 0 Then

'Print “Removing " & Cstr(n&) & " stubs”

NSFNoteDelete hDB, RRV And &H7FFFFFFF, &H0201

n& = n& + 1

End If

done = (IDScan(hT, False, RRV) = 0)

Wend

IDDestroyTable hT

NSFDbClose hDB

Print “Deleted " & Cstr(n&) & " stubs”

End Sub