This article was created in response to a support issue logged with K2. The content may include typographical errors and may be revised at any time without notice This article is not considered official documentation for K2 software and is provided “as is” with no warranties.

Issue

The user experiences slow performance when executing the Active Directory Service 2 or User Role Manager Service (K2 Label) SmartObject. This is specifically related to using Active Directory and the K2 Label.

Symptoms

When the user executes the Active Directory Service 2 or User Role Manager Service (K2 Label) Smartobject directly or via a picker control in K2 Smartforms, they experience a timeout or they experience extremely slow performance when bringing the user data back. Active Directory does not perform as well with "Contains" queries as it does with "StartsWith".

Resolution

The issue has been addressed in the K2 4.7 May Cumulative Update.

However certain configuration changes need to be made as well, because this is will cause a change in behaviour whereby all "Contains" queries to Active Directory through the 2 SmartObjects will change a "Contains" query to a "StartsWith" Query.

 

The following changes need to be made in the K2 Database > HostServer.SecurityLabel

Please make a backup of this table before attempting to make changes.

Please remember the following information:

Do not modify any database definition or database content unless specifically instructed to do so by K2.

No changes to the K2 Database definition or content are supported unless specifically instructed by K2.

Please contact K2 Support if you require further assistance as database modification is not supported: 

https://www.k2.com/onlinehelp/k2blackpearl/devref/current/default.htm#Database_Reference.html

Update the ‘K2’ Label 'RoleInit', ADD the following:

[UseEndsWith] AND [LoadSearchProperties] AND [AllowUPNInSamAccName]

When the settings are not present in the RoleInit, they are defaulted to:

UseEndsWith = True

LoadSearchProperties = True

AllowUPNInSamAccName = False

They should be changed to:

UseEndsWith = False

LoadSearchProperties = True

AllowUPNInSamAccName = False

Example: ADCache=0;LDAPPath=LDAP://DC=DENALLIX,DC=COM; UseEndsWith=False;LoadSearchProperties=True;AllowUPNInSamAccName=False; ResolveNestedGroups=False;IgnoreForeignPrincipals=False;IgnoreUserGroups=False;MultiDomain=False;OnlyUseSecurityGroups=False;LogLevel=Error;LogSize=0;DataSources=<DataSources><DataSource Path="LDAP://DC=DENALLIX,DC=COM" NetBiosName="DENALLIX" /></DataSources>;;

Once you have made these changes, please open up the SmartObject Services Tester tool > ServiceObject Explorer.

Alter the Active Directory Service 2 as below:

Image

• Set UseEndsWith to False and LoadSearchProperties to True, and save your changes

Image

• Refresh your service instance

Image

Please note

When configuring the people picker control to the Active Directory Service 2 SmartObject, please only use filters that are supported with the input parameters of the relevant SmartObject method. Other fields might still perform slow as they cannot be filtered on appropriately.

Example:

Image

Image