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 :
-
Having all the applications on the renaming server (correctly configured : administration server in ACL)
-
Rename a number of user and replicate back the modification each night.
We are currently facing 2 issues :
-
Performance of the adminP
-
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.
-
The certificates in the ID files you have for the users, are currently valid, and not expired.
-
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.