Domino on Linux/Unix, Troubleshooting, Best Practices, Tips and more ...

Upgrading ODS for databases with old DB class in Domino 9

Daniel Nashed  9 April 2013 15:36:39


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

1Henry Newberry  09.04.2013 23: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 9: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 17: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 14: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 11: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 14: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 11: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 13: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)


  • [IBM Lotus Domino]
  • [Domino on Linux]
  • [Nash!Com]
  • [Daniel Nashed]