Currently I`m working on a WebSphere Portal 8 project, where a lot of personalization rules are used to control visibility of certain portlets. In this case, the IBM Connections portlet (Activity Stream) should only be shown to certain users – the rest of the portlets on the page should be visible to all users.
So we mapped a custom LDAP attribute to WebSphere Portal. The result was that visibility rule worked nearly perfect… But only nearly, as for a very small group of users, the page did not show these portlets even though they had the correct flag.
The next step was then to enable pzn traces:
"com.ibm.websphere.personalization.*=all: com.ibm.dm.pzn.ui.*=all: com.ibm.wps.resourceaggregator.CombinerDataSource.RemoteDebug=all"
I saw the following error in the log:
00000053 PznXMLInterpr > com.ibm.websphere.personalization.rules.PznXMLInterpreter handleException ENTRY [java.lang.IllegalStateException,"Error retrieving dynamic resource attribute icuser",com.ibm.websphere.personalization.context.PersonalizationContext@7fe52012] java.lang.IllegalStateException Error retrieving dynamic resource attribute icuser com.ibm.websphere.personalization.context.PersonalizationContext@7fe52012
scrolling down I found:
Caused by: com.ibm.wps.util.DataBackendException: EJPSG0015E: Data Backend Problem com.ibm.websphere.wim.exception.WIMSystemException: CWWIM1013E The value of the property manager is not valid for entity CN=testuser,o=test.
I looked up the user in the LDAP an voilá I found the problem… the managers DN that was set in the LDAP Server was not present (or to be more detailed, a wrong value was entered).
I was not aware, that the pzn engine fails completely when something like this happens…
The solution for me was to set the attribute “manager” to be unsupported in WebSphere Portal, as it is not used for any part of the solution in this project.
Once more it helped a lot to enable trace and have a look at those.