June 4 2009 Thursday
Symantec Mail Security for Domino (SMSDOM) and Quickr - Title Missing from h_StdPageRead error
Just got of the phone with IBM Support (thanks Rehan), and IBM were able to pinpoint an issue with SMSDOM interfering with Domino Quickr. Basically SMSDOM has a feature to "enhance" scanning performance. When enabled, Secure Scanning Optimization (SSO) will add a field called "X-SSOTag" to any and all documents on the server. Quickr really doesn't like this tag and will have issues rendering a web page with any attachments stored in it.
This feature is enabled/disabled here:
If you see an error about "Title Missing from h_StdPageRead" then this is lightly your issue.
To fix it, disable SSO then remove the "X-SSOTag" from all of your Quickr documents via the code below. Use the code at your own risk.
Incidentally, I don't like SMSDOM SSO as it is not cluster or replica friendly so I turn it off on every server anyway.
This feature is enabled/disabled here:
If you see an error about "Title Missing from h_StdPageRead" then this is lightly your issue.
To fix it, disable SSO then remove the "X-SSOTag" from all of your Quickr documents via the code below. Use the code at your own risk.
Incidentally, I don't like SMSDOM SSO as it is not cluster or replica friendly so I turn it off on every server anyway.
Sub Initialize
Dim s As New NotesSession
Dim dbdir As New NotesDbDirectory("YourQuickrServerNameHere")
Dim db As NotesDatabase
Dim view As NotesView
Dim doc As NotesDocument
Set db = dbdir.GetFirstDatabase(DATABASE)
Do Until db Is Nothing
If db.Open("","") Then
If Ucase( db.FileName) = "MAIN.NSF" Then
Set view = db.GetView("System\Forms")
Set doc = view.GetFirstDocument
Do Until doc Is Nothing
If doc.HasItem("X-SSOTag") Then
Call doc.RemoveItem("X-SSOTag")
Call doc.Save( False, False )
End If
Set doc = view.GetNextDocument(doc)
Loop
Set view = db.GetView("System\Docs By Folder")
If Not(view Is Nothing) Then
Set doc = view.GetFirstDocument
Do Until doc Is Nothing
If doc.HasItem("X-SSOTag") Then
Call doc.RemoveItem("X-SSOTag")
Call doc.Save( False, False )
End If
Set doc = view.GetNextDocument(doc)
Loop
End If
End If
End If
Set db = dbdir.GetNextDatabase
Loop
End Sub
Your code will modify all documents! Even if the original document does not have this field it will be notified. If you just save a document without modifying it, it will be replicated next time... so your solution will create more problems.