Big renaming process

Hello,

I am involved in a big renaming process which will impact around 40 000 users and 300 Gb of datas (1000 Lotus Notes application).

We will dedicate a server (AIX / DOMINO 6.5.3 FP1) for this task.

The process should be the following one :

  1. Having all the applications on the renaming server (correctly configured : administration server in ACL)

  2. Rename a number of user and replicate back the modification each night.

We are currently facing 2 issues :

  1. Performance of the adminP

  2. adminP do not rename user in text field

Did someone know a tool or set of tools that is able to replace the adminP and to process the text field and also able to do it more quickly than the adminP task ?

Best regards

Subject: Big renaming process

personally I would write some code to itterate through it all and do this.A slightly faster approach might be to write a server addin task, my approach depends on the user running the code to have reader and editor access to all documents. You can itterate through a notesdatabasedirectory of databases then go through the all documents collection of each one, running code somewhat like that shown below. For a performance boost, turn off the logging.

It might be best to try to do it in one big hit, otherwise you could be updating documents containing lots of names several times.

Sub changedoc

docchanged=False

If doc.size>0 Then'skip corrupt documents

	Forall i In doc.Items

		itemchanged=False

		If i.type=1076 Or i.type=1074 Or i.type=1075 Or i.type=1792 Or i.type=1280 Then 'check for readers, names, authors or text

			If i.name<>"$UpdatedBy" Then'don't bother with $updatedby, it is irrelevant and is updated by running this script

		'set up a log document

				Set logdoc=New notesdocument(thisdb)

					'Print i.name

				n=-1

				Forall v In i.values

					n=n+1

					Select Case replacetype

					Case "Certifier"

							'a certifier has changed however all common names remain the same

						If Instr(v,oldcert)>1 And Instr(v,"/")=Instr(v,oldcert) Then'the second condition protects it from running twice when adding an OU

							newname=Left(v,Instr(v,"/")-1)+newcert'build the new name

								'now replace that name that has been found

														'we have found one of the old names

							If Not itemchanged Then

						'this is the first change to this item so we need to store the current state

								Call i.copyitemtodocument(logdoc,"oldcontents")

							End If

					'			Print o

							Redim tmpitemvalues(Ubound(i.values))

							For x =0 To Ubound(i.values)

								tmpitemvalues(x)=i.values(x)

							Next

					'tmpitemvalues=i.values

					'do the change

							tmpitemvalues(n)=newname

							

							i.values=tmpitemvalues

					'flag that this item has changed and the document has changed

							itemchanged=True

							docchanged=True

						End If

					Case "List"

							'this is the code to work through the list of old names mapped to new names

						nn=-1

						Forall o In oldnames

							nn=nn+1

							If o=v Then 

					'we have found one of the old names

								If Not itemchanged Then

						'this is the first change to this item so we need to store the current state

									Call i.copyitemtodocument(logdoc,"oldcontents")

								End If

					'			Print o

								Redim tmpitemvalues(Ubound(i.values))

								For x =0 To Ubound(i.values)

									tmpitemvalues(x)=i.values(x)

								Next

					'tmpitemvalues=i.values

					'do the change

								tmpitemvalues(n)=newnames(nn)

								

								i.values=tmpitemvalues

					'flag that this item has changed and the document has changed

								itemchanged=True

								docchanged=True

							Else

					'			Print v +" not found"

							End If										

						End Forall

						

					End Select

				End Forall

			End If

			If itemchanged Then

		'log the changes

				

				logdoc.form="Change"

				logdoc.subject=jobsubject'configdoc.subject

				logdoc.database=db.ReplicaID

				logdoc.databasetitle=db.Title

				logdoc.docunid=doc.UniversalID

				If doc.HasItem("subject") Then

					Call doc.GetFirstItem("subject").copyitemtodocument(logdoc,"subject")'doc.subject(0)'check it exists	

				End If

				logdoc.fieldname=i.name

				Call i.copyitemtodocument(logdoc,"newcontents")'the item has now been updated

				logdoc.Save True,True

			End If

		End If						

	End Forall

End If

If docchanged Then 

	doc.Save True,True

End If

End Sub

Subject: Big renaming process

As someone who works exclusively with renaming users, AdminP will do things much more efficienlty than anything else. If you are using text fields that contain hierarchical names, these should be either calculated fields from a names type field or a names field. I certainly hope that design elements are not coded with user names.

Understanding how AdminP works and understanding what needs to be in place for it to work will greatly help.

Additionally if the public keys in the id files do not match the public key in the Public Address book, you user will never rename. The renames are absolutely required that the user’s ID file be update for AdminP to finish. Unforturately, the Administrative Database does not indicate if this happens or not, in any easy view to determine.

I would suggest you visit http://www.binarytree.com/domains and request a demonstration of thier CMT for Domains, Servers, Users, and Desktops. It really helps prepare the environment for migration including validating all 40,000 users and thier mail files are set and ready for the renames. Manually checking this would take weeks. I’ve used this tool on a much small project of consolidating 3,500 users to a single domain from 6 but they all required a rename.

Thanks.

Subject: Big renaming process

Hello, and thank you for your help.

Here are some others details :

1)We are not using Lotus Notes as mail system, we just use it for applications

2)The users that will be renamed are all Internet users (I mean without any certificate).

Best regards

Subject: RE: Big renaming process

Laurent,

Excellent question. Regarding the user’s and renaming. The Adminsitration process requires that all ID files accept the rename before it can update the information.

The CMT For Domains can accept the renames on behalf of the web users, as long as the following are in place.

  1. The certificates in the ID files you have for the users, are currently valid, and not expired.

  2. If you have upto a limit of 6 default passwords for the users you can use the CMT for Domains tool to accept these renames for all of the web users.

Also, CMT for Domains will let you do a complete audit on the environment to ensure your applications are ready for all aspects of the migration to ensure that fields, groups, documents, are updated with the user’s new names.

I hope this helps.