ShowTable of Contents
Introduction
WebSphere Portal Personalization feature allows personalizing the content based on user selection and user profile. This is achieved using various Personalization Artifacts such as rules, content spots, campaigns and Application objects.
The following diagram explains the flow of events when a Personalization rule is executed.
FAQs
Is the issue with Personalization immediately following the installation of WebSphere Portal?
If you are unable to access or view Personalization portlets immediately following the installation of WebSphere Portal, check whether the installation was successful. If the installation was successful and still you are unable to view the Personalization portlets engage IBM Support for problem analysis.
Are Personalization features available after performing an Administration Installation of WebSphere Portal V6.1.X ?
No. However, Personalization portlets can be manually added to a page.
http://publib.boulder.ibm.com/infocenter/wpdoc/v6r1/index.jsp?topic=/com.ibm.wp.ent.doc_v615/config/admin_add_pzn.html
What are the Resource collections available in WebSphere Portal Personalization ?
The collections available are Portal User Collection, Federated Resource collection ( available only with Feature pack 6.1.5 for WebSphere Portal 6.1.0.3/6.1.0.4) and Web Content Collection ( available only on content build of WebSphere Portal )
What is the default Application Objects available in WepSphere Personalization?
The Action Bean, Action Count, Browser Capability, Category Bean, Category Count, Date, Portlet Attributes, Request and Session objects are the default Application objects.
Is it possible to extract cookie information from a Personalization artifact?
Personalization doesn't read directly from a cookie for personalization support. You could create an application object bean and that could be referenced within Personalization. So you build it from the cookie, define it to Personalization and reference in a rule.
How to set an attribute in a portlet for Personalization to pick up ?
Since we don't have access to the session being modified before the rule would be executed and the page rendered, it would be better to use an application object.
Is it possible to publish security with personalization rules?
Since personalization rules are not part of the core portal artifacts it is not possible to export these rules using xmlaccess which could potentially include the Portal Access Control (PAC) information.
Can Personalization Publish process be automated?
Unfortunately the entire process cannot be automated.
In order to publish the rules to the target environment there are 2 ways
1. Using the Personalization Navigator portlet, Use the Publish feature and publish the rules to the target server.
2. Using Command Line publish - This is a 2 step process. First, you need to export the rules and Second, you can use the pznload script to publish the rules to the target server.
If you want to export the entire workspace, then you need to select the workspace and then click on 'More Actions' -> Export. This will export ALL the Personalization Artifacts.
Are the personalization caches in WebSphere Portal 6.x based on something other than Dynacache?
Personalization cache is stored in dynacache.
Are there any tools to see if the caches are being used other than performance testing after changing the configuration file?
Its an object cache, so you need the extended cache monitor to view the cache.
http://www.ibm.com/developerworks/websphere/downloads/cache_monitor.html?S_TACT=105AGX10&S_CMP=ART
The PersonalizationService.properties file contains the JNDI name for the dynacache that is used by Personalization.
How do we access Session attributes within Personalization rules ?
The challenge when trying to use session attributes to control Personalization rule behavior with portal server is that session attributes stored within a portlet are scoped to that portlet only. The Personalization engine has no visibility to the portlet session attributes. This is due to a limitation/requirement in the J2EE Spec.
Here are two options:
1.Option 1 is to use the Personalization Rule within the same portlet or application only, (eg for a content spot). The followng has a good write-up and sample implementation for this approach:
http://www.ibm.com/developerworks/websphere/library/techarticles/0706_wang/0706_wang.html
Note you may be able to get this approach to work across portlets in the SAME application if you append APPLICATION_SCOPE when storing and retrieving the attributes. This is not the same as working across portal with different portlets/applications.
2.Option 2 is to set the attribute in the dynamic cache aka dynamic map, then use a Personalization Application Object to retrieve the session attribute that is set earlier by the portlet. You could use a portal service to interface to the dynamic cache but that is not required.
Note you should always include the user’s session id in the key for the attribute stored in dynacache to distinguish which attribute relates to which user, unless you wish the same attribute value to be used by all users.
Troubleshooting common Install & Configuration Issues
Personalization portlets have been added manually to a page and the rule authors are unable to create rules.
If Personalization portlets have been added manually to a page then please ensure that the rule authors have the appropriate access to create the rules.
1. Navigate to Personalization navigator portlet , logged in as wpsadmin.
2. Click on the workspace on the navigation panel on the left.
3. Click on Extra Actions.
4. Choose Edit access
5. Grant manager/editor access to the users who need to create the rules
6. Click Apply and done
7. Log in as a regular user and you should be able to create rules.
Additionally, Review the section - Table 5. Access rights for Business Rules at
http://publib.boulder.ibm.com/infocenter/wpdoc/v6r1/index.jsp?topic=/com.ibm.wp.ent.doc_v615/admin/sec_acc_rights.html
The issue with personalization occurs in one environment but not the other.
If there is an issue with Personalization portlets in one environment and not on the other, check the PersonalizationService.properties file on all the environments, verify the Access control settings for the Personalization portlets, verify whether the Personalization portlets have been deployed successfully using the Portal Administration Console and finally compare the folder structure for the Personalization Navigator and the Personalization Editor portlets at
/installedApps directory.
Personalization rules are not working with a custom theme?
Try the failing scenario with the default theme. If the issue still prevails then collect the personalization Mustgather and engage IBM Support for problem analysis.
After executing setup-pzn task following an Admin install of WebSpere Portal, Personalization portlets are not available.
The WPSconfig scripts 'setup-pzn' and 'remove-pzn' for IBM® WebSphere® Portal and Workplace Web Content Management™ v6.0 and subsequent service releases are only supported when installing Personalization Server without WebSphere Portal.
Refer to the following technote for additional information. (Support statement for 'setup-pzn' and 'remove-pzn')
http://www-01.ibm.com/support/docview.wss?uid=swg21290784
The IBM® WebSphere® Portal v6.1 configuration task modify-servlet-path may fail with a EJPXB0015E error code during the action-remove-pznauthor-portlet subtask.
This problem can be caused by setting the same value for both WsrpContextRoot and WpsContextRoot.
Review the technote for additional information. (EJPXB0015E failure during modify-servlet-path configuration task)
http://www-01.ibm.com/support/docview.wss?uid=swg21326328
Personalization Portlets are unavailable. Both the Personalization navigator and the Personalization Editor portlets show as "Unavailable". When this occurs, we see the following Exception in the SystemOut.log
00000049 WpsStrutsPort E com.ibm.wps.portlets.struts.WpsStrutsPortlet error init - EJPYE0003E: Could not initialize from the configuration. An exception has been caught.
java.lang.NullPointerException
at com.ibm.wps.portlets.struts.logging.StrutsLog.error(StrutsLog.java:322)
Ensure that the Editor portlet and the Authoring portlet have all the files and proper folder structure as it is possible that these files might be missing sometimes. Replacing the correct version of the missing files should correct this situation.
Troubleshooting common Authoring Issues
ConstraintViolationException while saving large Personalization rule on WebSphere Portal v6.1 and higher. In SystemErr.log following exceptions are thrown.
00000037 SystemErr R javax.jcr.nodetype.ConstraintViolationException: The value for the binary property ibmpersonalization:contents on node /New Business Roles and Categories exceeds its max length. The max length is 32000 while the value is of length 32074
00000037 SystemErr R at com.ibm.icm.jcr.ConstraintChecker.validateMaxLength(ConstraintChecker.java:713)
Large rules can be built and saved to the repository by enabling the property rulesRepository.enableLargeRules to true in PersonalizationService.properties file located at \PortalServer\config\config\services.
Additional Information is available in the following technote. (ConstraintViolationException while saving large Personalization rule.)
http://www-01.ibm.com/support/docview.wss?uid=swg21398966
Non-administrator users receive an error when creating a rule for New Personalization Element in the Personalization Picker
Granting proper access rights to the non-administrator should resolve the issue. Please refer to the section ‘Access rights for Business Rules’ in the Infocenter.
http://publib.boulder.ibm.com/infocenter/wpdoc/v6r1/index.jsp?topic=/com.ibm.wp.ent.doc_v615/admin/sec_acc_rights.html
Cannot edit or delete a Personalization rule in personalization editor or navigator
POSSIBLE CAUSE: User editing the rule then walks away without saving and session times out.
Use Support Tools Portlet available at Lotus Greenhouse portlet catalog (https://greenhouse.lotus.com/home/login.jsp?ibmsst=LotusBtn )to identify the UUID of the rule (in the RULESWORSPACE). Then use selectableUnlock.JSP to unlock the node. (Contact IBM Support to obtain this JSP ).
Not able to create a new Business Rule on WebSphere Portal 6.1.0.2. No page is displayed when clicking New Rule.
Personalization Navigator shows the message:
"The current view cannot be displayed"
&
Errors received when starting the application:
************************************************************************
00000888 RegistryFacto W
com.ibm.wps.caf.config.RegistryFactory getPluginRegistry plugin added twice
00000888 RegistryFacto W
com.ibm.wps.caf.config.RegistryFactory getPluginRegistry <Null Message>
java.lang.IllegalStateException: The
plugin com.ibm.websphere.personalization.ui is not enabled
Install PK86042: PZN CUMULATIVE FIX 1 FOR VERSION 6.1.0.2 .
Even the Portal administrator is unable to release the lock on a rule which is currently being held by another user.
Contact IBM Support to obtain the SelectableUnlock.jsp to release the lock.
Unable to register new PZN resource collection through Personalization Editor Portlet. ( WebSphere Portal v6.1 )
Install PK68613 ( Contact IBM Support to obtain this ifix ).
When trying to add a new Personalization rule or edit an existing rule by selecting a value, the information is not saved and the following error is printed to the Systemout.log:
00000204 ActionManager W com.ibm.wps.state.accessors.action.manager.ActionManagerImpl internalExecuteAction id = n6jfN77400008 is invalid.
00000204 WPActionPhase W com.ibm.wps.engine.phases.WPActionPhase processPortlets EJPEI0169E: Cannot execute the received action
com.ibm.wps.engine.commands.LegacyActionDispatcher@4bc04bc due to a security violation. The assigned action ID n6jfN77400008 is invalid.
Install PK82601 which has a corequisite of PK79235. (WebSphere Portal 6.1.x) - ( Contact IBM Support to obtain these ifixes.)
Troubleshooting common Runtime Issues
The following Exception is seen in the logs when a Personalization rule is executed.
javax.jcr.nodetype.NoSuchNodeTypeException: Node Type clb:clbLibrary not found.
This problem indicates that the application is expecting a JCR Node Type which has not been defined.
Please review the technote for additional information
(JCR troubleshooting topic: troubleshooting common exceptions)
http://www-01.ibm.com/support/docview.wss?uid=swg21321921
Also apply - PK52204 and PK69027. Contact IBM Support to obtain these ifixes.
Personalization Component in Web Content Management is not displaying any data.
Verify whether the rule that is associated with the Personalization component still exists in the personalization navigator portlet. If it does not exist then create a new instance of that rule and associate this rule with the Personalization component. If the rule exists on the Personalization navigator then resave the Personalization component to see if displays any data, If the issue still persists, contact IBM Support.
When giving the exact value for LDAP groups in a personalization rule, no results are being returned.
While specifying the LDAP groups in a Personalization rule ensure that they are entered in lower case as the PUMA API( Portal User Management ) returns the groups of the user in lower case.
Troubleshooting common Publishing Issues
The following error is shown in the SystemOut.log while importing Personalization rules. EJPVP10606E Items to be imported already exist in the workspace
If you had exported the entire workspace including the root node and were attempting to import to target server using the "Import" button, this will not work since the root node already exists. You need to export from a folder if you wish to use the import option.
Note: Simply moving the nodes from root to a folder will not work since the configured portlets expect the rule to be at the root location. You would need to reconfigure the portlets.
pznload script fails with javax.net.ssl.SSLHandshakeException
Symptom:
WebSphere\PortalServe\pzn\v6.0\publish>pznload.bat
--serverUrl https://wpsupport.xxx.xxx.xxx:10035/wps/pznpublish/pznpublishtarget
--username wpsadmin --password xxxxxx c:\rule\SampleRule.nodes
Publishing file: 'c:\rule\SampleRule.nodes'
Server url: 'https://wpsupport.xxx.xxx.xxx:10035/wps/pznpublish/pznpublishtarget'
Destination workspace: 'The default workspace for rules on the target server.'
Destination path: '/'
Published objects will only overwrite existing objects
Publish started [datetime] Connecting to the publish server
datetime com.ibm.websphere.personalization.publish.command.AbstractPublishExecutor execute
WARNING: could not send the request data
javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: Certificate not Trusted
at com.ibm.jsse2.bx.a(Unknown Source)
at com.ibm.jsse2.by.a(Unknown Source)
at com.ibm.jsse2.by.a(Unknown Source)
at com.ibm.jsse2.w.a(Unknown Source)
at com.ibm.jsse2.w.a(Unknown Source)
at com.ibm.jsse2.v.a(Unknown Source)
at com.ibm.jsse2.by.a(Unknown Source)
at com.ibm.jsse2.by.l(Unknown Source)
at com.ibm.jsse2.by.startHandshake(Unknown Source)
at com.ibm.net.ssl.www.protocol.https.b.o(Unknown Source)
at com.ibm.net.ssl.www.protocol.https.q.connect(Unknown Source)
at com.ibm.net.ssl.www.protocol.https.t.connect(Unknown Source)
at com.ibm.websphere.personalization.servlet.util.HttpUrlConnectionWriter.initialize(HttpUrlConnectionWriter.java:121)
at com.ibm.websphere.personalization.servlet.util.HttpUrlConnectionWriter.close(HttpUrlConnectionWriter.java:110)
at com.ibm.websphere.personalization.publish.command.AbstractPublishExecutor.execute(AbstractPublishExecutor.java:112)
at com.ibm.websphere.personalization.publish.task.LoadFromFileSystemTask.run(LoadFromFileSystemTask.java:89)
at com.ibm.websphere.personalization.publish.PznLoad.main(PznLoad.java:60)
Caused by: java.security.cert.CertificateException: Certificate not Trusted
at com.ibm.jsse.bi.a(Unknown Source)
at com.ibm.jsse.bi.checkServerTrusted(Unknown Source)
at com.ibm.jsse2.ba.checkServerTrusted(Unknown Source)
... 14 more
Publish failed [datetime] The publish job could not be started: Unable to communicate with the remote server
The pznload script will fail with above error, if the trust store are not included in cacerts. The truststore for Personalization is handled through JSSE. Since this task is executed as a separate java process, it by default looks for the truststore in
\java\jre\lib\security\cacerts. Use the IKeyman utility in WebSphere Application Server to extract the WAS certificates into cacerts and rerun the task. Please refer to WebSphere Application Server Infocenter to extract/import certificates.
Also, please note you have to extract the certificate in the target/publish server and import in the node, where you are running the task.
pznload script fails with java.io.IOException: HTTPS hostname wrong exception
This error occurs when the serverUrl is configured to utilize SSL.
Symptom:
WebSphere\PortalServer\pzn\v6.0\publish>pznload.bat
--serverUrl https://wpsupport.xxx.xxx.xxx:10035/wps/pznpublish/pznpublishtarget
--username wpsadmin --password xxxxx c:\rule\SampleRule.nodes
Publishing file: 'c:\rule\SampleRule.nodes'
Server url: 'https://wpsupport.xxx.xxx.xxx:10035/wps/pznpublish/pznpublishtarget'
Destination workspace: 'The default workspace for rules on the target server.'
Destination path: '/'
Published objects will only overwrite existing objects
Publish started [datetime] Connecting to the publish server
datetime com.ibm.websphere.personalization.publish.command.AbstractPublishExecutor execute
WARNING: could not send the request data
java.io.IOException: HTTPS hostname wrong: should be <wpsupport.xxx.xxx.xxx>
at com.ibm.net.ssl.www.protocol.https.b.b(Unknown Source)
at com.ibm.net.ssl.www.protocol.https.b.o(Unknown Source)
at com.ibm.net.ssl.www.protocol.https.q.connect(Unknown Source)
at com.ibm.net.ssl.www.protocol.https.t.connect(Unknown Source)
at com.ibm.websphere.personalization.servlet.util.HttpUrlConnectionWriter.initialize(HttpUrlConnectionWriter.java:121)
at com.ibm.websphere.personalization.servlet.util.HttpUrlConnectionWriter.close(HttpUrlConnectionWriter.java:110)
at com.ibm.websphere.personalization.publish.command.AbstractPublishExecutor.execute(AbstractPublishExecutor.java:112)
at com.ibm.websphere.personalization.publish.task.LoadFromFileSystemTask.run(LoadFromFileSystemTask.java:89)
at com.ibm.websphere.personalization.publish.PznLoad.main(PznLoad.java:60)
Publish failed [datetime] The publish job could not be started: Unable to communicate with the remote serverWebSphere\PortalServer\pzn\v6.0\publish>
- Ensure WebSphere Application Server (WAS) on the target node is configured to use SSL.
- Ensure the certificate has the same common name as the hostname.
NOTE: If you are using the default certificates that is shipped with WebSphere Application Server, then the common name for this host is "jserver: and you will receive the above error.
If you need assistance with configuring the certificates in WebSphere Application Server (WAS), Contact WAS Support.
Unable to publish the rules using a custom port and firewall enabled.
Ensure the port that is being used for publishing is opened through the firewall.
When publishing to a server with a different username and password than the source, the following error occurs:
EJPVP20003E: The publish job could not be started: 'The username or password you specified was not valid'
This causes the publish action to fail.
Have the two servers to use the same username and passwords.
Troubleshooting common Visibility rule Issues
Administrator is not able to attach any visibility rules to the portal page
Note: This issue was reported on PZN 6.1.0.1; however it's believed to exist in version 6.0 as well.
The log shows the following error:
0000005d ActionManager W com.ibm.wps.state.accessors.action.manager.ActionManagerImpl internalExecuteAction id = E::fL75640004 is invalid.
0000005d WPActionPhase W com.ibm.wps.engine.phases.WPActionPhase processPortlets EJPEI0169E:
Cannot execute the received action com.ibm.wps.engine.commands.LegacyActionDispatcher@788c788c due to a
security violation. The assigned action ID E::fL75640004 is invalid
Install PK82601. (Contact IBM Support to obtain this ifix )
Visibility Rules are not called / invoked by Portal Engine
Collect a trace with tracestring com.ibm.websphere.personalization.*=all. If there are no entries in the trace for com.ibm.websphere.personalization classes, the pzn rules are not being invoked by the portal engine.
Find the resources.xml that contains
Possible locations for the file:
wp_profile/config/cells//nodes//servers/WebSphere_Portal/resources.xml
wp_profile/config/clusters
Check if this config property is set:
content.topology.dynamic=false
You can remove this property completely from the file since the default value is true.
The property content.topology.dynamic controls if the Portal dynamic content model is enabled or not. The dynamic content model is the plug point for visibility rules. If it is disabled the rules will not be executed.
Does Visibility rules support Anonymous users?
No. WebSphere portal does not allow dynamic models for anonymous users for different reasons. The most important reasons are cacheability and memory consumption. Please refer to technote for additional information –
(Visibility Rules are not applicable to Portal Anonymous Users)
http://www-01.ibm.com/support/docview.wss?uid=swg21259061
Attributes set in the session from one portlet are not available for visibility rules on another portlet ?
Attributes that are set in the session is available to visibility rule if it is in the same portlet or the scope is set to application.
Visibility rules are not getting re-executed or somehow retaining the previous state for that session even if we refresh the page many times.
Install PK67945 (Visibility rule cache does not always invalidate when cleared. ). Contact IBM Support to obtain this ifix.
Troubleshooting common Caching Issues
Is there a way in which we can invalidate cache for a particular Application object and Resource collection on demand through portlets ?
Yes, If you are using the Application object in a visibility rule then disabling the visibility rule cache should address this issue.
These are the methods that you could use to invalidate the entire visibility rule cache or a particular rule within the visibility rule cache
com.ibm.websphere.personalization.transformation.PznTransformationModel.
invalidate(request, rulename)
Where:
-request is the PortletRequest and
-ruleName is a String relative to the Personalization Workspace. ( RULESWORKSPACE).
public static void invalidate(HttpServletRequest req) - Invalidates all visibility rule caching for the current user
public static void invalidate(HttpServletRequest req, String rule) -
Invalidates visibility cache for the rule specified for the current user
You might need to programmatically flush the Personalization cache, for example when a resource is updated outside of Personalization rules through some other application. A programming interface is provided to flush the cache. Since the timeout interval for the cache can be specified in the PersonalizationService.properties file, in many cases it may be adequate to wait for the cache timeout before updates are seen.
The class com.ibm.websphere.personalization.resources.cache.CacheManager can be used to invalidate the cache for a particular resource, a particular resource collection, or the entire cache. Personalization uses this class internally to flush the cache when updates occur.
Flushing the cache for a particular resource may require that all cached queries be flushed. Flushing the cache on a collection may flush the cache for all collections using the same dynamic cache map. When the application frequently flushes the cache for a particular collection, isolating that collection in its own cache map through the use of the ruleEngine.cache.jndiName.resourceCollectionName property will result in better cache utilization.
Caching occurs before any rule exits are called.
For more information about using the DistributedMap and DistributedObjectCache interfaces for the dynamic cache, refer to the IBM WebSphere Application Server Information Center.
http://publib.boulder.ibm.com/infocenter/wcmdoc/v6r0/index.jsp?topic=/com.ibm.lotus.wcm.doc/pzn/pzn_resource_cache.html
Does Caching need to be disabled at the master level in order to disable any particular resource collection?
You don't have to disable the master level caching at rulesEngine.cache.enabled = false as it will cause performance impact.
A sample is as follows
rulesEngine.cache.enabled./.personalization/collections/ibmpzn\:wcmWebContentCollection=true
rulesEngine.cache.timeout./.personalization/collections/ibmpzn\:wcmWebContentCollection=1800
rulesEngine.cache.jndiName./.personalization/collections/ibmpzn\:wcmWebContentCollection=services/cache/distributedmap
rulesEngine.cache.priority./.personalization/collections/ibmpzn\:wcmWebContentCollection=1
rulesEngine.cache.maxEnumSize./.personalization/collections/ibmpzn\:wcmWebContentCollection=250
The resource collection that is cached is wcmWebContentCollection and it is being cached under the default distributedMap dynacache instance
Another good resource is
(Page visibility rules and unreachable Search results)
http://www-10.lotus.com/ldd/portalwiki.nsf/dx/page-visibility-rules-and-
unreachable-search-results
In a scenario in which data fetched by the resource collection is liable to change at runtime within the same session and same goes for the application object as well. What is the best practice to be followed with respect to performance without Compromising the functionality ?
You could always invalidate the cache for a particular rule.
com.ibm.websphere.personalization.resources.cache.CacheManager can be used to invalidate the cache for a particular resource, a particular resource collection, or the entire cache. Personalization uses this class internally to flush the cache when updates occur.
Can we set the personalization visibility rule to a mode like NOT_SHARED for the Dynacache implementation? If so, how is this set and should it be set?
Visibility rules cache is per session, so that does not use dynacache.
The visibility rules and personalization engine gets fired only once at the time of login. It should be fired every time the user goes to the page on which they have applied visibility rules.
Disable visibility rule caching by setting the following property to false in PersonalizationService.properties and restart the server.
rulesEngine.attributeBasedAdmin.enableCaching=false
For more information please refer to the following articles:
http://www-10.lotus.com/ldd/portalwiki.nsf/dx/personalization-visibility-
http://www-10.lotus.com/ldd/portalwiki.nsf/dx/page-visibility-rules-and-unreachable-search-results
Troubleshooting common Application object Issues
java.lang.ClassNotFoundException: int is seen in the SystemOut.log while executing a visibility rule that uses an Application object.
The ClassNotfoundException is being caused by the use of an application object that is of type int. Personalization supports only java classes and this feature has been added through the ifix PM03285. Contact IBM support to obtain this ifix.
How to get the sessionID off the RequestContext object that is passed to the init() method in the ApplicationObject?
Call a method getRequestObject(). This is implemented through com.ibm.websphere.personalization.context.PersonalizationContext.
That will return a com.ibm.websphere.personalization.PznRequestObjectInterface which can be used to access various attributes.
If the interface is an Http type (com.ibm.websphere.personalization.PznHttpRequestObjectInterface), you should call getServletRequest.
If the type is portlet (com.ibm.websphere.personalization.PznPortletRequestObjectInterface), then you will need to call getPortletRequest.
In the ApplicationObject class there is public void init(RequestContext context) method and
the com.ibm.websphere.personalization.RequestContext object. How do we access the PortletRequest object and from there the User object.
If you need to access an attribute on the user in a rule, you could create a condition in the rule to access the included portal user collection.
If it’s necessary to access the user outside of the included portal user collection to do some processing on that value, then the user object can be accessed from the RequestContext object by calling get("pzn.user./.personalization/collections/ibmpzn:wpsUser")
There is no public API way to access the underlying PortletRequest.
Troubleshooting common Performance Issues
Please refer to the Personalization best practices guide at the following location that will address the common performance issues.
http://www-10.lotus.com/ldd/portalwiki.nsf/dx/personalization-best-practices
Collecting the traces for WebSphere Portal Personalization
NOTE: Clients who are on WebSphere Portal version 6.0.1.3 up until 6.0.1.6 and 6.1 to 6.1.0.1 need to install PK80778 ( available on IBM fix Central ) to collect the WebSphere Portal Personalization traces.
Personalization Mustgather 6.0 -
http://www-01.ibm.com/support/docview.wss?rs=688&uid=swg21245725
Personalization Mustgather 6.1 -
http://www-01.ibm.com/support/docview.wss?rs=688&uid=swg21315586
Additional Resources
Extending WebSphere Portal V6 personalization capabilities: Part 1. Including external data in personalization applications
http://www.ibm.com/developerworks/websphere/library/techarticles/0702_brunn/0702_brunn.html
Extending WebSphere Portal V6 personalization capabilities: Part 2. Creating a Hello World application object
http://www-128.ibm.com/developerworks/websphere/library/tutorials/0702_brunn2/0702_brunn2.html
Extending WebSphere Portal V6 personalization capabilities: Part 3. Creating a Web service application object
http://www.ibm.com/developerworks/websphere/tutorials/0702_brunn3/index.html
Extending WebSphere Portal V6 personalization capabilities: Part 4. Deploying a resource collection that uses an ATOM feed
http://www-128.ibm.com/developerworks/websphere/library/tutorials/0702_brunn4/0702_brunn4.html
Deploying and publishing WebSphere Portal Personalization artifacts
http://www-128.ibm.com/developerworks/websphere/library/techarticles/0510_brunn/0510_brunn.html
Manually repairing your personalization rules after migrating
http://www-10.lotus.com/ldd/portalwiki.nsf/dx/pdmtowcm-pzn
When selecting a custom application object in personalization, no properties display or not all expected properties are included
http://www-01.ibm.com/support/docview.wss?uid=swg21288529
How to prevent Personalization cache query timeout messages
http://www-01.ibm.com/support/docview.wss?uid=swg21327901