NIFNSFEnable: Haal de weergave indexen uit het NSF bestand

Met de komst van Domino Feature Pack 8 (FP8) voor IBM Domino 9.0.1 heeft IBM een nieuwe functionaliteit ingebouwd namelijk de mogelijkheid om de weergave indexen (view indexes) uit het NSF bestand te verplaatsen naar een los bestand.
Dit zou de volgende voordeel kunnen hebben:

  • de NSF neemt aan bestandsgrootte af
  • de snelheid kan toenemen
  • back-up en restore gaat sneller

View indexen kunnen al snel een paar Gb aan ruimte innemen waarbij het verplaatsen voor databases die tegen hun limiet aanlopen net het verschil kan maken!
Door gebruik te maken van de Administrator cliënt kan men bij “Manage views” de grootte van de weergaven bekijken.

Hoe in te stellen

Om het mogelijk te maken de indexen te verplaatsen zullen de volgende stappen uitgevoerd moeten worden:

  1. Installeer minimaal Feature Pack 8 (FP8) of nieuwer
  2. Zet de parameter NIFNSFEnable=1 in de notes.ini (of via het configuratie document)
  3. Optioneel kan met de parameter NIFBasePath=path in de notes.ini een alternatief pad voor de indexen ingesteld worden
  4. Op de server moet transactional logging geactiveerd zijn
  5. Het bestandsformaat (ODS) van de applicatie moet minimum 51 zijn (gebruik eventueel “load compact -ods -* -upgrade”)
  6. Herstart de Domino server

De Domino server is nu ingesteld om per applicatie de index te verplaatsen.
Voer nu het volgende uit om dit voor een applicatie uit te voeren:

  1. Compact de applicatie met de parameters “load compact -c -nifnsf on databasenaam.nsf” (dit zal een index bestand met de extensie .ndx aanmaken)

Om bij nieuwe applicaties standaard de weergave index buitende NSF op te slaan kan de parameter CREATE_NIFNSF_DATABASES=1 in de notes.ini gezet worden (server herstart noodzakelijk)

Opmerking: De .NDX bestanden hebben een limiet van 1 TB.

Bronnen

https://www.ibm.com/support/knowledgecenter/en/SSKTMJ_9.0.1/admin/admn_moving_views_out_of_databases.html

Opties in $Index veld in weergave ontwerp

Niet zo spannend maar wellicht toch handig om te weten is dat het veld $Index in een weergave ontwerp, als je deze bekijkt via de Designer of door middel van script, de opties voor de index van de weergave bevat.

Elke optie heeft een eigen letter met een notatie als /O enz.

Vernieuwen van de index (Refresh):

Als er geen /M, /O, of / R in het veld $Index staat, dan is de instelling “Auto, after first use”. Dit is de standaard waarde.

/O wil zeggen dat de Index “Automatic” dus automatisch wordt bijgewerkt wanneer dat nodig is.

/M staat voor de keuze “Manual” dus handmatig indexeren.

/R=3600 Dit staat voor “Auto, at most every x hours”, automatisch maar niet meer dan 1 keer per x uren waarbij de uren in ms opgegeven worden. In dit geval dus 1 keer per uur.

Verwijderen van de index na (Discard):

Wanneer er geen /P of /T in het veld $Index staat betekend dit de index na 45 dagen van inactiviteit wordt verwijderd, “If inactive for 45 days”. Dit is de standaard instelling.

/T wil zeggen dat de index na elk gebruik weer verwijderd wordt, “After each use”.

/P=24 De /P= is de parameter om de index te verwijderen (purge) in uren. /P=24 is dus na een dag van inactiviteit, instelling “If inactive for x days”.

Alleen een ontwerper of beheerder mag de index aanmaken:

/B zal in het veld staan wanneer “Restrict initial index build to designer or manager” is aangevinkt.

Deze opties samen in het veld $Index van een view object maken de Index opties. Zo kan het veld $Index bijvoorbeeld de waarde “/T/O/B” hebben of “/P=168/R=43200/B” enzovoort.

Ja en?

Ik had deze gegevens nodig om te bepalen of een onderhoudstaak geschreven in Visual Basic bepaalde weergaven moest vernieuwen of niet.

Met de NotesNoteCollection Class kun je eenvoudig de weergaven in een database krijgen en de eigenschappen uitlezen.

Dim nc As NotesNoteCollection
Set nc = db.CreateNoteCollection(False)
nc.SelectViews = True
Call nc.BuildCollection