Friday, 29 July 2011

3 Gotchas Regarding Upgrading to Domino R8.5.2

We've just successfully upgraded 35 Domino servers (mail, application, BES, Sametime and LEI). It all went swimmingly, no outages, no incidents.

I just wanted to share a few things that we stumbled across along the way that will help another upgrade go even smoother.

Policy Documents

As part of the upgrade it is recommended opening, editing and saving all of your policy documents after an R8 upgrade. We did this. However, we have a bespoke application that a subset of trusted users can use to register mail users. The bespoke app used LotusScript to perform the registration. It stopped working after the upgrade.

We logged the following error:

Error: Notes error: Document is not signed. (Reader) in  RegisterUser

After checking the obvious we ended up cutting all of the policy and policy settings documents out of the names.nsf and pasting them back in. Then going back into the policy documents and adding the policy settings back to each policy (the UNID's of the settings are stored in the policy document not the name and these change when we paste them back in).

It worked OK after that.

Duplicate Subforms.

We had reports of people no longer being able to open some applications on the web. In particular when they were opening views.

In the log.nsf of our application server this message was appearing:

HTTP Web Server: Application Exception - Duplicate Subform found

It is common amongst developers pre R8 to take advantage of duplicate subforms for things like page headers and footers on web pages. Indeed, this is the technique used on many of our web enabled applications. I immediately thought we would have to do code changes in lots and lots of applications.

Thankfully, a fix was released in 8.5.2 that involves making a change to the servers notes.ini (DominoAllowDuplicateSubforms=1). Documented here:

http://www-10.lotus.com/ldd/R5FixList.nsf/SPRNum/3593D74FE51C0D898525778500581F68?OpenDocument&ca=drs-fo


NotesSession Platform property returns "AIX/64" instead of "UNIX"

We had LotusScript agents that relied on knowing what OS they were on in order to work e.g. to extract files. It used session.platform to do this. Expecting it to return "UNIX" or "Windows". See below

    Select Case session.platform
    Case "Macintosh" : getFileSeparator = ":"
    Case "UNIX" : getFileSeparator  = "/"
    Case Else : getFileSeparator = "\"
    End Select

The upgrade means it now returns "AIX/64". That's not in the case statement above! This has only just been documented as a problem by IBM and was not part of the code searches that we did prior to the upgrade. This potentially affects any code that relies on "UNIX" being returned as a value when using session.platform.

Details here:

https://www-304.ibm.com/support/docview.wss?uid=swg21499642

Essentially we need to add the following to our servers notes.ini

PLATFORM_RETURNS_UNIX=1

Closing Note

We used TeamStudio Analyzer to help us audit the design of our applications prior to our upgrade but two of the gotchas above were not part of our analysis. I'll be feeding this back to them and see if they can add it to their list of Analyzer filters.
 
Hopefully this post was useful to someone.

2 comments:

Jyotiprakash Mohanty said...

Great Tips! When I saw the blog title I was little bit surprised why someone upgrading to R8 instead of stable R8.5.2. I think R8.5.2 would be appropriate for the blog title

Edward Lee said...

Hi Jyotiprakash,

That's a very fair comment. I agree the title of the post is misleading. I've changed it.

Thanks,

Ed