AMgr memory consumption

We recently installed a new Domino 6.5.2 server at a customer site. The server was herafter downgraded to 6.5.1 and a Sametime 6.5.1 server installed on top since the customer wanted to run Sametime as well. This was all very good and was pretty straight forward – no worries there.

The server should support 8 concurrent users and one would think that the HP monster server with 2GHz CPU and 1GB memory running Windows 2003 Server their IT guy got should be able to support this no problem but alas…

After a couple of days we began having complaints as to the speed of the server so we went to take a look. When looking at the task manager the AMgr, Sametime and HTTP tasks were all consuming 250-350 MB of memory and the total memory consuption was 1,1 GB. The server has swapping from the start. Once restarted the tasks would start and start consuming memory from the get go. The AMgr has 2 or 3 scheduled agents and one “After mail arrives” agent scheduled so it couldn’t be the actual load.

I created a support ticket with Lotus Support yesterday night and at 10 o’today I had my local support techie on the phone. Excellent response time! He started out with a couple of questions regarding the agent manager but also quickly concluded that it wasn’t that. He sent me a list of things he would like me to do:

  • Enable console logging (start colsolelog)
  • Enable thread id debugging (set config debug_threadid=1)
  • Restart the server
  • Do a memory “dump” every 5 minutes until the server reaches peak memory load (load nserver -mem)
  • Do a NSD dump.
  • Obtain a copy of the notes.ini and names.nsf
  • Dump it all in a zip-file and upload it to the support FTP server so it can be sent of the Dublin (location of the more hardcore guys).

I will have to do all this tomorrow morning so I get to go to the office a little early. There is a catch though – how to issue a command in the server console every 5 minutes without actually sitting there with a watch timing the damn thing ?

I’m going to use the Domino Console (the java client that connects to a management layer beneat the Domino Server) – yes finally found a way to use it. The Domino Console has a functionality where it can issue periodic server console commands. Took a look at it and it will suit my needs just fine.

Well I’m of to bed – I have an early start tomorrow.

Blogging break

Been having a little of a blogging break before I even got started. The disk in my new MythTV box crashed so I had to wait for a new disk and load it up. I salvaged the blog though.

HTML closing in iNotes

It appears that one can use an HTML closing in iNotes if you enclose the signature in square brackets ([]). It doesn’t solve the problem of using a company logo or similar without linking to it (as opposed to embedding it in the e-mail).

Example:

[<font color="#727785" size="-2" face="Verdana, Arial, sans-serif">
<br>
Med venlig hilsen,
<br>
<b>Mikkel Heisterberg</b><br>
it-inspiration aps - farvergade 2 - 1463 copenhagen k - denmark - <br>
phone: +45 7022 3141 - fax: +45 3316 0290 - mobile: +45 2682 5673 - email: <withheld><br>
</font>]

Update on 1 December 2004 @ 23:03

Hmmm…. It appears that changing the signature in iNotes also changes the signature in Notes (which doesn’t really make sense to me). So if you do the above (html signature in square brackets) you will mess up your Notes signature.

“Error encountered fetching data” in iNotes

After researching it a bit it appeared that all users were running Windows XP SP2 which really is the clue. When running WinXP SP2 against a Domino 6.5.1 (or previous) server you may get this error since service pack 2 replaces a data access component used by iNotes.

The fix is either to upgrade the server to 6.5.2 or later or to toggling the “Character set in header” setting on the server document (under “Internet Protocols””Domino Web Engine”) to “Disabled”.

There is a technote on the subject here.

notes.ini settings that affect iNotes

Found an article on developerWorks about notes.ini settings that affect iNotes.

I specially like iNotes_WA_LogoutRedirect which allows you to set the page users should be redirected to after logging out. This is great for sending users back to the login page which really should be the default setting in my opinion.

Small bug in LotusScript Vector class

The problem occurs when calling the RemoveAllElements() method since the Vector isn’t reset correctly, though all elements are removed.

The method should be changed from:

Public Sub removeAllElements()
	Dim i As Integer
	For i = 0 To Me.size() - 1
		If Isobject(array(i)) Then
			Set array(i) = Nothing
		Else
			array(i) = ""
		End If
	Next i
End Sub

to:

Public Sub removeAllElements()
	Dim i As Integer
	For i = 0 To Me.size() - 1
		If Isobject(array(i)) Then
			Set array(i) = Nothing
		Else
			array(i) = ""
		End If
	Next i

	'reset vector
	elementLength = 0
	ensureCapacity(10)
End Sub

I also did a simple extension of the Vector class to create a Set (or “Zet” since “Set” is a reserved word in LotusScript).

Zet (Set) class in LotusScript

Public Class Zet As Vector
   'declarations
   Private pValues As Vector

   '/**
   ' * Constructor.
   ' */
   Public Sub New()
      Set Me.pValues = New Vector()
   End Sub

   '/**
   ' * Adds only unique elements.
   ' */
   Public Sub AddElement(d As Variant)
      'see if the vector contains this element already
      If Not Me.pValues.Contains(d.UniversalID) Then
         Call Vector..AddElement(d)
         Call Me.pValues.AddElement(d.UniversalID)
      End If
   End Sub

   Public Function Size() As Integer
      Size = Vector..Size()
   End Function

   Public Function Elements() As Enumeration
      Set Elements = Vector..Elements()
   End Function

End Class

S/MIME

I spent most of Saturday playing around with S/MIME and internet certificates in Domino. It is very cool and is all well and good with signing and encrypting messages.

What isn’t so cool is that it isn’t so straight forward to set up and it will be rather diffecult to explain an user how to request a certificate. It should be possible with the right level of documentation and screenshots though. What would be really cool would be a way to request the internet certificate for the user – maybe even at registration time. It might already be so but I haven’t found it then.

I’m planning to do a write up of it once I get the time. I have done all the screenshots so… 🙂