Friday, May 21, 2010

How to attach default skin to Theme using xmlAccess

Today, I encountered a really interesting problem reported by my ex-colleague. While working on the portal, accidentally he has removed skins which are attached to default theme of the portal. Now this has resulted in him not able log in to the portal.This is due to no portlet display because of the skin being deleted.
When he tried log in using direct portal url which bypasses the log in portlet he found out the pages are there but portlets are not rendered while clicked on those pages. He was not even get back to the default settings using themes and skins page from the administration section.

Solution to this problem is getting back the default settings for the themes/skins using xmlAccess.
To resolve this we followed below steps.

1. We exported the complete portal configuration using xmlAccess. For this we have used sample ExportRelease.xml which comes with default portal installation. This can be found under [Portal_server_root]/doc/xml-samples. Here is a command to do that

./xmlaccess.bat -in C:/Program Files/IBM/WebSphere/PortalServer/doc/xml-samples/ExportRelease.xml -user wpsadmin -password wpsadmin -url http://localhost:10038/wps/config -out wpsserver_config.xml

2. Open the exported file, which in this case wpsserver_config.xml and find the entry which starts with theme action="update" active="true" default="true". Add a parameter defaultskinref="K_NO2UF4I1186E1026H4BLVI00E6" to it. Here value for the defaultskinref is the ID of the skin which is deployed in your environment. This will be a default skin to your theme. You can fine skins in the same xml file. Find using skin action="update" text.

3. Once updated and saved, import this xml file to your portal server using xmlAccess. Here is a command for it.

xmlaccess.bat -in C:/updatedXML/wpsserver_config.xml -user wpsadmin -password wpsadmin -url http://localhost:10038/wps/config

That's it. We are able to access portal as it was before the problem. :)

Sunday, May 16, 2010

A new Kid on the block - JBOSS GateIn

The best of exo and JBOSS portals has arrived as they called it : JBOSS GateIn. Have a look at it

http://www.jboss.org/gatein/gallery.html

Friday, May 14, 2010

A First Look at IBM's WebSphere Portal Server 7

I just got this alert about IBM Websphere Portal 7 Beta, I thought I should share it with you all.

http://www.theserverside.com/report/Evaluating-WebSphere-Portal-Server-7-A-journey-Into-the-WPS-Unknown

Tuesday, May 11, 2010

How to improve performance of your WCM server

Well, it's been quite hectic last few weeks for me. Engaged in fine tuning our production environment with remote WCM content rendering. During this task I was going through many documents on performance improvement. I have jotted down few points here for ease.

Application server tinning
---------------------------
Here you need to set the min and max value for the following parameters
Web Container Thread Pool - 60/60
Data source connection Pool - JCRDB - 10/150

Cache Manager Service tuning
------------------------------
Open the CacheManagerService.properties file and modify the following values.

cacheinstance.com.ibm.workplace.searchmenu.helper.SearchMenuCacheHelper.size 5000
cacheinstance.com.ibm.wps.ac.ContainedRolesCache.size 500
cacheinstance.com.ibm.wps.ac.AccessControlUserContextCache.size 5000
cacheinstance.com.ibm.wps.ac.ApplicationRolesForPrincipalCache.size 12500
cacheinstance.com.ibm.wps.ac.AccessControlUserContextCache.lifetime 10800
cacheinstance.com.ibm.wps.ac.ExplicitEntitlementsCache.size 500
cacheinstance.com.ibm.wps.ac.ExplicitEntitlementsCache.ICM_CONTENT.size 12000
cacheinstance.com.ibm.wps.ac.ExplicitEntitlementsCache.VIRTUAL.size 500
cacheinstance.com.ibm.wps.ac.ProtectedResourceCache.size 12500
cacheinstance.com.ibm.wps.ac.ExternalOIDCache.size 12000
cacheinstance.com.ibm.wps.ac.AccessControlUserContextCache.lifetime 10800
cacheinstance.com.ibm.wps.ac.RolesCache.size 7500
cacheinstance.com.ibm.wps.ac.groupmanagement.NestedGroupCache.size 1200
cacheinstance.com.ibm.wps.datastore.pageinstance.DerivationCache.size 250
cacheinstance.com.ibm.wps.datastore.pageinstance.OIDCache.size 250
cacheinstance.com.ibm.wps.datastore.services.Identification.SerializedOidString.cache.size 500
cacheinstance.com.ibm.wps.model.content.impl.ResourceCache.size 500
cacheinstance.com.ibm.wps.model.content.impl.TopologyCache.size 500
cacheinstance.com.ibm.wps.pe.portletentity.size 250
cacheinstance.com.ibm.wps.services.cache.cachedstate.CachedStateServiceSession
Bound.cache.size 250
cacheinstance.com.ibm.wps.ac.ApplicationRoleChildrenCache.size 500
cacheinstance.com.ibm.wps.ac.ApplicationRoleDescriptorCache.size 500
cacheinstance.com.ibm.wps.ac.ApplicationRoleOIDCache.size 500
cacheinstance.com.ibm.wps.ac.ChildEntitlementsCache.size 500
cacheinstance.com.ibm.wps.ac.ExplicitEntitlementsCache.APPLICATION_ROLE.size 500
cacheinstance.com.ibm.wps.policy.services.PolicyCacheManager.lifetime 28800
cacheinstance.com.ibm.wps.model.content.impl.ResourceCache.lifetime 14400

Navigation Service Tuning
--------------------------
Open the NavigatorService.properties file and enable the public session required for rendering portlets on anonymous pages.

public.session = true

WCM object Cache settings
---------------------------
abspath 8000
abspathreverse 8000
processing 10000
session 6000
menu 500
nav 500
strategy 8000
global 100
module 100

WCM Configuration Service
---------------------------
Enable the user cache

Find the WCMConfigService.properties file under:
/PortalServer/wcm/shared/app/config/wcmservices
Set user.cache=true