1.4  Portal 6.1.0.3在Windows平台上安装或升级失败

1.4.1  问题描述

经安装了Portal 6.1.0.1或者6.1.0.2,试图升级到6.1.0.3,发现在Windows平台上升级失败。

检查升级日志,例如20100122_135338_WP_PTF_6103_selective-install.log文件,发现与PeopleFinder有关,是系统在安装peoplefinder_portlet期间发生错误导致的,这个错误几乎在portal的每个版本中都曾经出现过,如图1-19所示。

portal开发与配置技巧集锦4822.png

1-19  PeopleFinder导致了安装失败

检查people_finder portlet install日志,例如20100122_135338_WP_PTF_6103_people.impl_._ peoplefinder_._portlet_install.log文件,发现是由FilenotFound例外带着的,这是由于PeopleFinder少配置了属性。此问题虽然2011年才被发现,但我们从历史日志中看到,这个问题早在2009年就出现了,如图1-20所示。

portal开发与配置技巧集锦5153.png

1-20  这个异常说明PeopleFinder有属性丢失

这是由于安装过程中两个文件的属性被定义成了只读属性,无法取代导致的。可以肯定的是,系统安装完成后,没有手工去改过这两个文件的属性,怀疑是在系统升级时,升级程序篡改了文件属性。6.1.0.3升级程序刚刚推出没多久,出现这种可能的错误也是正常的。

1.4.2  解决方案

登录Portal 6.1.0.3系统,找到路径:D:\IBM\WebSphere\PortalServer\pcc.impl\people.impl\ peoplefinder\portlet\lwp_peoplefinder_war.ear\lwp.peoplefinder.jsr168.war\html\,查看help文件夹的权限,发现果然是只读的,如图1-21所示。

portal开发与配置技巧集锦5598.png

1-21  help文件夹具有只读属性

修改该文件夹属性,确保该文件夹及子文件、子文件夹不具有只读属性。

portal开发与配置技巧集锦5743.png

重新安装补丁包,安装成功,系统成功升级到6.1.0.3

1.5  使用WAS 6动态缓存机制提高WCM Content View Portlet性能及响应速度

1.5.1  问题描述

WCM模块的速度之慢是众所周知的。除了保证业务逻辑上的连贯性之外,使用Cache技术也是提高WCM内容展示的一个好思路。

假设我们使用WCM authory构建了有100多个站点区域的站点,然后自己开发Content View Portlet,依据参数分别将这100多个站点区域展示到100多个栏目。

下来,我们将采用适当的WAS 6 动态缓存(WAS 6 Dynomic Cache机制来提高WCM Content View的性能及响应速度,这是充分利用Portal 6.1所使用的JSR286容器优势的一个绝佳方法。

1.5.2  WAS 6 动态缓存解决方案

在开发好的Portlet中创建 cachespec.xml 文件来定义动态缓存,如图1-22所示。

portal开发与配置技巧集锦6176.png

1-22  Portlet配置文件中启用基于WAS动态缓存的技术提升性能

创建一个JavaBean来生成合理的CacheID,如图1-23所示。

portal开发与配置技巧集锦6255.png

1-23  动态缓存实现的JavaBean代码

spacer.gif 安装该Portlet并重新测试,验证缓存是否起效。

1.5.3  使用同一个用户ID在同一台机器或多台机器上同时登录会导致系统错误

系统测试尤其是执行压力测试时,用户往往无法提供并发数要求数量的真实用户名和密码,例如上面的例子,我们需要用户提供936个真实用户的用户名和密码,而这通常是不现实的。很多项目组就决定使用其中的50对或者100对用户名/密码模拟真实的936个用户,实质上这是不允许的。

IBM WebSphere Portal严格禁止同一ID同时多次登录系统,不管是在同一台机器上还是模拟出多个IP地址,这将会导致不可预知的后果,甚至系统崩溃,如图1-24所示。

portal开发与配置技巧集锦6573.png

1-24  Portal信息中心明令禁止同一ID多次登录

  对应中文的信息中心也对该问题有明确的定义,如图1-25所示。

portal开发与配置技巧集锦6636.png

1-25  对应中文的信息中心对禁止同-ID多次登录也有明确的定义