When attempting to add a portal user to a portal group in the Information Centric Analytics (ICA) console, the console displays the message "Standby" and the progress indicator spins interminably. An error message similar to the following is captured in the Log_SQL table and in the RiskFabric server log:
[130:ERROR] DALException.SaveLog() System.Data.SqlClient.SqlException (0x80131904): Violation of UNIQUE KEY constraint 'UK_PortalLDAPObjects_Name'. Cannot insert duplicate key in object 'dbo.PortalLDAPObjects'. The duplicate key value is (<domain>\<account>).
The statement has been terminated.
Version : 6.x
Component : Portal Privileges
The portal user account had previously been added to the portal group, or is a member of an Active Directory (AD) group already assigned to the portal group.
If the user is a member of the portal group via membership in an AD group, the user does not need to be explicitly added to the portal group and no further action is required.
If the user is not a member of an AD group assigned to the portal group and you still encounter this error, the following query will return a list of portal groups containing AD group members and the group assignment(s) for the user in question:
USE RiskFabric;
GO
SELECT o.*,
g.*
FROM dbo.PortalLDAPObjects AS o
FULL JOIN dbo.PortalLDAPObjectsToPortalGroups AS o2g
ON o.LDAPObjectID = o2g.LDAPObjectID
FULL JOIN dbo.PortalGroups AS g
ON o2g.GroupID = g.GroupID
WHERE o.[Name] = '<domain>\<account>' OR
o.ObjectType = 2;
GO
If a record exists for the user but no GroupID or group Name is returned, the account record is orphaned and can be safely removed by executing the following statement, passing the LDAPObjectID of the user returned by the preceding query:
EXEC RiskFabric.dbo.spDeletePortalLDAPObject N'<LDAPObjectID>';
Once this record is removed, the user can be successfully added to the portal group in question.
The RiskFabric server log is located on the server hosting Internet Information Systems (IIS) and the ICA application. By default, it is located in the following path:
%SystemDrive%\BayDynamics\Logs
The log's filename is in this format:
w3wp_RiskFabric.<yyyyMMdd>.log
For auditing purposes, console activity including portal user and group creation and assignments are logged in the table dbo.ActivityLog. The following sample query can be used as-is or modified for this purpose:
SELECT * FROM RiskFabric.dbo.ActivityLog WHERE CAST(DateStamp AS date) = CAST(GETDATE() AS date) ORDER BY 1;
Additionally, data manipulation language (DML) actions triggered by console activity, such as portal user and group creation and deletion, are logged in the table dbo.Log_SQL. The following sample query can be used as-is or modified to assist with troubleshooting this issue:
SELECT * FROM RiskFabric.dbo.Log_SQL WHERE CAST(EntryDateStamp AS date) = CAST(GETDATE() AS date) ORDER BY 1;