The Database Maintenance Tool in R9, promises an awful lot; essentially, that it does everything compact, fixup and updall does, with more options including:
- controls on number of threads for each task
- conditional options such as running a fixup if compact doesn’t run a certain number of times
- all from one single command/program document.
However, I’ve come across this on a couple of sites. Admin is “trying out” new R9 features. Admin reads help files for DBMT and gets really excited. Admin tries a load DBMT command, it works, Admin tries to to turn on DBMT via program documents. Admin gets “invalid syntax error”. Admin thinks it doesn’t work and continues to compact, fixup updall individually via program documents as before.
The issue here is that DBMT will only work in a Program Document when it’s set to run “At Server Startup Only”. i.e. the “range” switch is used to set which times it runs. It does say this in the help file, but it doesn’t highlight it particularly well, and isn’t particularly intuitive.
For all those who’ve been caught in this scenario here’s an example that works:
(runs with 4 compact threads, 4 updall threads from 3:00am to 7:00am, it will run a fix up on Sunday if there hasn’t been a valid compact for 5 days for more on the different switch options see here).
When the server starts you’ll see this task, it gives you the details of the current DBMT task:-
(what the DBMT program document was set to before server before it was restarted)
Note if you do not want the next DBMT to run, you can issue a “tell ndbmt quit” to the Domino Console.
Then when it’s in the time specified in range, you’ll see the threads under server tasks:
And when it’s run successfully, you’ll see the following statistics the console/log:
DBMT.Compact.Began
DBMT.Compact.Finished
DBMT.Compact.Successful
DBMT.Compact.Unsuccessful
DBMT.Compact.Unsuccessful.InUse
DBMT.Compact.Unsuccessful.TimeLimit
DBMT.Compact.BackLog
DBMT.Compact.Fixup
DBMT.Updall.Began
DBMT.Updall.Finished
DBMT.Updall.Processed
Let us know if you found this useful.
Cormac McCarthy – Domino People Ltd
Grant Osborne says:
There’s an easier way.
http://ab1osborne.blogspot.com.au/2013/07/the-smart-way-to-use-dbmt.html
It also takes care of what DBMT does “behind the scenes”
http://ab1osborne.blogspot.com.au/2013/09/dbmt-its-how-it-shatters-that-matters.html
Oliver Regelmann says:
“will only work in a Program Document when it’s set to run “At Server Startup Only”
This isn’t correct. You can start it daily for Mo thru Fri every morning at a given time, but without the range switch. Instead you can use the timeLimit parameter.
See the pdf from this OpenMic call for some examples:
http://www-01.ibm.com/support/docview.wss?uid=swg27039379
Cormac McCarthy says:
That’s great Oliver! The examples in the document make for good reading. Thank You.
David Fry says:
This is now fixed in Domino 9.0.1, just setup a test Program document for a scheduled one-off run of DBMT (not on startup) and it ran DBMT 🙂