I currently got some emails from admins out in the world which ask for help to troubleshoot a Notes 8.5.x roaming issue. They all explain the same situation: There is a user who logs into different computers almost every time and it seamed that is the issue why the roaming isn´t finished/completed (the Lotus Domino address book showed a sand clock all the time -> Roaming: In Progress for the person's record).

All the admins who send me a email said they already tried to remove the roaming and re-set it up, but this doesn´t solve the issue. Some said the user is also not receiving the prompt for the upgrade to roaming (also not if they create a new roaming request).

So it was time for a deeper troubleshooting...

When Lotus Notes roaming is enabled, the client creates a profile document in the users mailfile called "roaminguserlock" with the username as key. You can see that if you add some debug values (Debug_Roaming=1) to the client notes.ini. There will be something like:

Roaming lock already exists
05/11/2012 22:11:34   Unable to get roaming upgrade lock, exiting roaming upgrade.

The profile document in the users mail file includes a field with the hostname name from the workstation which was used by the user at this time. So if the user log off from Lotus Notes until the initial "seeding" was finished the client stuck then somewhere in the middle and never finished. If the user then logged into another workstation the hostname didn´t fit and the initial "seeding" isn´t started again. This special profile document is also not removed if the user roaming is removed (because the Hostname from the new workstation didn´t fit).

To solve that you must perform the following:

1.) disable the roaming from the user

2.) remove the profile document (roaminguserlock) in his mailfile

3.) enable roaming for the user

Note: You can try to remove the profile without removing the roaming but I think it might be better to start with a fresh and clean roaming.

This sounds like an easy way ... but how to remove a profile document (you couldn´t see that in a Lotus Notes client per default) and how to do that for 100 - 1.000 users? So I quickly wrote a small agent which you can put in your server based names.nsf. You can select a user from the adressbook then and run the agent. The agent will connect to the users mailfile and will then remove the profile. Easy or? ;-)

Please note that you need deletion rights in the mailfile from the user, otherwiese the agent couldn´t remove the profile document!

Here is the code:

	Dim checked As Long
	Dim doc As NotesDocument
	Dim flag As Boolean
	Dim NotesSession As New NotesSession
	Dim col As NotesDocumentCollection
	Dim buf As String
	
	'initialize parameter
	checked = 0
	
	Set col = NotesSession.CurrentDatabase.UnprocessedDocuments
	
	If col.Count <= 0 Then
		
		MessageBox "No documents selected", 0+64, "Delete 'roaming user lock'"		
		Exit Sub
		
	End If
	
	Set doc = col.GetFirstDocument
	While Not doc Is Nothing

		Dim ProfileDoc As NotesDocument
		Dim UserMailDB As NotesDatabase
		Dim MailFileOwner As String
		
		MailFileOwner = doc.Owner(0)
		Set UserMailDB = New NotesDatabase(doc.MailServer(0),doc.MailFile(0))
		
		Set ProfileDoc=UserMailDB.GetProfileDocument("roaminguserlock",MailFileOwner)
	
		If ProfileDoc.Form(0) = "roaminguserlock" Then
			
			flag = ProfileDoc.RemovePermanently(true)
			
		End If 

		If flag = True Then
			MsgBox "Removed roaming lock for:" & _
                        NotesSession.CreateName(MailFileOwner).Abbreviated
		Else
			MsgBox "Couldn´t removed roaming lock for:" & _
                        NotesSession.CreateName(MailFileOwner).Abbreviated
		End If
		
		Set doc = col.GetNextDocument(doc)
	Wend

To add it do the following:

1.) Open your server based names.nsf in the Lotus Domino Designer

2.) Goto Code -> Agents and choose "New Agent" add a name for the agent (e.g. Administration / Delete 'roaming user lock'

I currently got some emails from admins out in the world which ask for help to troubleshoot a Notes 8.5.x roaming issue. They all explain the same situation: There is a user who logs into different computers almost every time and it seamed that is the issue why the roaming isn´t finished/completed (the Lotus Domino address book showed a sand clock all the time -> Roaming: In Progress for the person's record).

All the admins who send me a email said they already tried to remove the roaming and re-set it up, but this doesn´t solve the issue. Some said the user is also not receiving the prompt for the upgrade to roaming (also not if they create a new roaming request).

So it was time for a deeper troubleshooting...

When Lotus Notes roaming is enabled, the client creates a profile document in the users mailfile called "roaminguserlock" with the username as key. You can see that if you add some debug values (Debug_Roaming=1) to the client notes.ini. There will be something like:

Roaming lock already exists
05/11/2012 22:11:34   Unable to get roaming upgrade lock, exiting roaming upgrade.

The profile document in the users mail file includes a field with the hostname name from the workstation which was used by the user at this time. So if the user log off from Lotus Notes until the initial "seeding" was finished the client stuck then somewhere in the middle and never finished. If the user then logged into another workstation the hostname didn´t fit and the initial "seeding" isn´t started again. This special profile document is also not removed if the user roaming is removed (because the Hostname from the new workstation didn´t fit).

To solve that you must perform the following:

1.) disable the roaming from the user

2.) remove the profile document (roaminguserlock) in his mailfile

3.) enable roaming for the user

Note: You can try to remove the profile without removing the roaming but I think it might be better to start with a fresh and clean roaming.

This sounds like an easy way ... but how to remove a profile document (you couldn´t see that in a Lotus Notes client per default) and how to do that for 100 - 1.000 users? So I quickly wrote a small agent which you can put in your server based names.nsf. You can select a user from the adressbook then and run the agent. The agent will connect to the users mailfile and will then remove the profile. Easy or? ;-)

Please note that you need deletion rights in the mailfile from the user, otherwiese the agent couldn´t remove the profile document!

Here is the code:

	Dim checked As Long
	Dim doc As NotesDocument
	Dim flag As Boolean
	Dim NotesSession As New NotesSession
	Dim col As NotesDocumentCollection
	Dim buf As String
	
	'initialize parameter
	checked = 0
	
	Set col = NotesSession.CurrentDatabase.UnprocessedDocuments
	
	If col.Count <= 0 Then
		
		MessageBox "No documents selected", 0+64, "Delete 'roaming user lock'"		
		Exit Sub
		
	End If
	
	Set doc = col.GetFirstDocument
	While Not doc Is Nothing

		Dim ProfileDoc As NotesDocument
		Dim UserMailDB As NotesDatabase
		Dim MailFileOwner As String
		
		MailFileOwner = doc.Owner(0)
		Set UserMailDB = New NotesDatabase(doc.MailServer(0),doc.MailFile(0))
		
		Set ProfileDoc=UserMailDB.GetProfileDocument("roaminguserlock",MailFileOwner)
	
		If ProfileDoc.Form(0) = "roaminguserlock" Then
			
			flag = ProfileDoc.RemovePermanently(true)
			
		End If 

		If flag = True Then
			MsgBox "Removed roaming lock for:" & _
                        NotesSession.CreateName(MailFileOwner).Abbreviated
		Else
			MsgBox "Couldn´t removed roaming lock for:" & _
                        NotesSession.CreateName(MailFileOwner).Abbreviated
		End If
		
		Set doc = col.GetNextDocument(doc)
	Wend

To add it do the following:

1.) Open your server based names.nsf in the Lotus Domino Designer

2.) Goto Code -> Agents and choose "New Agent" add a name for the agent (e.g. Administration / Delete 'roaming user lock') and choose as Type "Lotus Script"

4.) In the security settings select your administration group in the "default level for viewing and running this agent", otherwise every user in your company might be able to run this agent (and normally we admins didn´t really like that).

3.) Copy the code above between "Sub Initialize" and "End Sub"

Leave your comments

Post comment as a guest

0

Comments(2)