Upgrading ODS for databases with old DB class in Domino 9
When you create a database for example with the extenson .ns7 the ODS will be ODS43 instead of ODS51.
This kind of trick was used in earlier days and was to ensure that an older ODS was used when really needed.
What this causes is that the DB class of the database instance is set to that version.
And you cannot use a copy style compact to change this database to the new ODS -- even you rename the extension back to ".nsf".
The only way to change the database class and ODS was to create a new replica.
In Domino 9 there is a new compact switch "-upgrade".
"-upgrade Upgrade databases created with older DB classes to the most recent class."
This switch upgrades the DB class to a general DB (DBCLASS_NOTEFILE)
#define DBCLASS_NOTEFILE 0xff01
...
#define DBCLASS_V6NOTEFILE 0xff10
#define DBCLASS_V8NOTEFILE 0xff11
#define DBCLASS_V85NOTEFILE 0xff12
Some C-API based applications have created databases with specific DB classes and run into the same issue.
With this new compact switch you can change the ODS for those databases quite easy.
This even works when you don't change the extension of the file. But for best practices you should rename the file anyway.
So a compact -C -upgrade help/ will upgrade all your help databases to the new ODS.
Some of the help databases have an old DB classe and a normal compact will not bring them to the new ODS.
you can verify this via the "show dir" command:
sh dir help
DbName Version Log DAOS PIRC ---Modified Time----
/local/notesdata/help/lsxlc.nsf V5 Yes No Off 05.04.2013 22:38:45
/local/notesdata/help/lccon.nsf V5 Yes No Off 05.04.2013 22:38:54
/local/notesdata/help/help9_designer.nsf V8 Yes No Off 05.04.2013 22:39:10
/local/notesdata/help/help9_client.nsf V8 Yes No Off 05.04.2013 22:39:11
/local/notesdata/help/help9_admin.nsf V8 Yes No Off 05.04.2013 22:39:11
/local/notesdata/help/decsdoc.nsf V5 Yes No Off 05.04.2013 22:38:43
This can be quite helpful. I know that also an anti-virus vendor hat issues with databases created with the wrong DB class.
- Comments [8]
1Henry Newberry 09.04.2013 21:07:33 Upgrading ODS for databases with old DB class in Domino 9
Very useful.. Of course you also need the notes.ini parameter Create_R85_Databases=1 set.
Is there a new ODS for R9? Is tehre a new Notes INI setting?
/Newbs
2Daniel Nashed 10.04.2013 7:24:21 Upgrading ODS for databases with old DB class in Domino 9
@Henry, there is no new ODS in ND9. Sure Create_R85_Databases=1 still needs to be set and there is nothing new.
Only the compact option is new and it was really complicated before to change the DB class.
I have not found the switch in the normal documentation -- just in the help for the compact task.
-- Daniel
3Michael Kobrowski 12.04.2013 15:00:23 Upgrading ODS for databases with old DB class in Domino 9
Having problems with getting the ODS version updated from 43 to 51.
Had the Create_R85_Databases=1 set and didn't seem to do it. Tried the new notes.ini setting of NSF_UpdateODS=1 but didn't want to do it either.
???
4Tom 20.06.2013 12:45:43 Upgrading ODS for databases with old DB class in Domino 9
@Michael. After you make that notes.ini setting you still need to run a copy compact "compact -c" on the database you want the ODS upgraded for. Or according to Daniel, if you had every changed the extension to .ns5, .ns6, .ns7 or the like then you can use the new 'upgrade' command he discusses (if you're on R9 server).
5Stephen Bailey 29.01.2014 10:55:47 Upgrading ODS for databases with old DB class in Domino 9
Domino 9 ODS (ODS 52) exists, and you can upgrade databases hosted on a Domino 9 server using the following:
Notes.ini parameter: Create_R9_Databases=1
Console command: load compact -C
Databases upgraded to ODS52 can still be accessed using a Notes 8.5 client.
SB
6Jérôme Deniau 31.01.2014 13:47:25 Upgrading ODS for databases with old DB class in Domino 9
Replace create_Rx_Databases=1 with NSF_UpdateODS=1 if you do want to keep upgrading to next ODS
- compact -c still ok
but
prefer compact -upgrade now
7Lars Berntrop-Bos 01.07.2016 9:18:31 Upgrading ODS for databases with old DB class in Domino 9
@Tom, @Stephen @Jérôme
Please use
compact -ODS -* -upgrade
to update the ODS. Compact -C will compact EVERY db, except templates and mail.box fiiles
-ODS -* will only update databases, ttemplates and mail.box files which have an older ODS.
The advantage of having EVERY file on the latest ODS is that no subsystems for the older ODS have to be loaded and run. This saves the server CPU and RAM, which it can then spend on delivering greater performance! On one of our IBM i servers this cut changing a template name from 2+ minutes to 10 seconds.
Note that for some files you need to run the compact command with the Domino server DOWN.
Also note that the Notes client (and Designer, and Admin) also start and run much faster if ALL db files, templates and mail.box file are at the latest level.
Example
Prerequisite:
Make sure Create_R9_Databases=1 is in the notes.ini otherwise ODS will not be updated. I just put in Create_R8_Databases,
Create_R85_Databases and Create_R9_Databases in all clients and servers. Then depending on the program code version, the latest ODS will be used.
Note that according to { Link } NSF_UpdateODS DOES NOT WORK on Domino servers, only on clients.
Execution:
For Notes and Domino on windows, with notes.ini in default (i.e. program directory) location:
Open cmd. go to program dir. With Notes/Domino down, do
ncompact -ODS -* -upgrade
on IBM i, Domino 8.5 or above: open a green screen, and perform the command:
RUNDOMCMD SERVER(<Servername>) CMD(CALL PGM(COMPACT) PARM('-ODS' '-*' '-upgrade')) (BATCH *YES) ALWMLTTHD(*YES)
Note the ALWMLTTHD parameter on Domino 8.5 or greater is a new required setting to allow the command to work.
Please note that the compact can run for quite some time, depending on size of the databases that need to be converted.
Final comment: after each fixpack or upgrade of Notes or Domino, check and correct the ODS. Usually, only files in the data directory root will have reverted to an older ODS. Using compact with -y option allows you to just run the ODS compact on the root dir without it looking at the directories below that, finishing much earlier than without -y parameter
8Lars Berntrop-Bos 01.07.2016 11:13:59 Upgrading ODS for databases with old DB class in Domino 9
Oops typo: that should be
RUNDOMCMD SERVER(<Servername>) CMD(CALL PGM(COMPACT) PARM('-ODS' '-*' '-upgrade')) BATCH (*YES) ALWMLTTHD(*YES)
(error was in the specification of the BATCH parameter)