After a Migration from Connections 5.0 CR3 to Connections 5.5, I had a User who could not access “Files”, “Activities” and “Communities” Application.
At the time the User tried to access the Applications I could see the following errors in the Log Files:
LotusConnecti E com.ibm.openactivities.exception.OpenActivitiesException: CLFRA0473E: Error locating profile: EXID mismatch, but email matches. name=<user_name>, directory EXID=D8823B93-F20D-F1AC-C125-7BA30045D6CF, db EXID=<user_id>
javax.servlet.ServletException: com.ibm.openactivities.exception.OpenActivitiesException: CLFRA0473E: Error locating profile: EXID mismatch, but email matches. name=<user_name>, directory EXID=D8823B93-F20D-F1AC-C125-7BA30045D6CF, db EXID=<user_id>
000004fa UserDAOImpl W EJPVJ9367E: Unable to associate the login ID <user_id> to the user ID D8823B93-F20D-F1AC-C125-7BA30045D6CF.
UserLifeCycle E com.ibm.lconn.core.web.util.admin.UserLifeCycleCmdsImpl$IUserCallbackImpl userLifeCycleSpiUpdatePerson com.ibm.lconn.share.platform.exception.DuplicateUserAccountException: EJPVJ9437E: Unable to edit user with ID 8781ffb1-6db4-4dfb-b386-431ce3f60544.
Caused by: com.ibm.websphere.ce.cm.DuplicateKeyException: One or more values in the INSERT statement, UPDATE statement, or foreign key update caused by a DELETE statement are not valid because the primary key, unique constraint or unique index identified by “2” constrains table “FILES.USER_TO_LOGIN” from having duplicate values for the index key.. SQLCODE=-803, SQLSTATE=23505, DRIVER=4.19.49
0000016c MemberProfile E sun.reflect.NativeMethodAccessorImpl invoke0 CLFRA0349E: Error locating profile: EXID mismatch, but email matches. email=<email_address>, directory EXID=D8823B93-F20D-F1AC-C125-7BA30045D6CF, db EXID=<user_id>
The following article didn´t help me: https://www.ibm.com/support/knowledgecenter/SSFHJY_2.0.0/deploy/duplicate_user_account_issue.dita
The “Files.User” table in the “Files” database looked like this:
Scrolling further right, you could see the state of the user entry:
After that I checked if the “Directory_ID” could be found in the “PEOPLEDB”, “Employee” Table, which was the case.
To resolve this error I used the following commands:
FilesMemberService.syncMemberByExtId("<directory_account_state_0>",{“newExtId”: “<directory_account_state_1>”, “allowExtIdSwap”: “true”})
CommunitiesMemberService.syncMemberByExtId("<directory_account_state_0>",{“newExtId”: “<directory_account_state_1>”, “allowExtIdSwap”: “true”})
ActivitiesMemberService.syncMemberByExtId("<directory_account_state_0>",{“newExtId”: “<directory_account_state_1>”, “allowExtIdSwap”: “true”})
Before you use these commands you will have to initialize the “wsadmin” command prompt and enable the administration for all applications involved, in my case I have done the following:
wsadmin –lang jython –username <was_admin_account> –password
execfile(“filesAdmin.py”)
FilesMemberService.syncMemberByExtId(“WBTSCV”,{“newExtId”: “D8823B93-F20D-F1AC-C125-7BA30045D6CF”, “allowExtIdSwap”: “true”})
execfile(“communitiesAdmin.py”)
CommunitiesMemberService.syncMemberByExtId(“WBTSCV”,{“newExtId”: “D8823B93-F20D-F1AC-C125-7BA30045D6CF”, “allowExtIdSwap”: “true”})
execfile(“activitiesAdmin.py”)
ActivitiesMemberService.syncMemberByExtId(“WBTSCV”,{“newExtId”: “D8823B93-F20D-F1AC-C125-7BA30045D6CF”, “allowExtIdSwap”: “true”})
After that the user could access all applications without any problems.