Portal开发与配置技巧集锦(二)

本文解决Portal6.1.0.3在Windows平台升级失败的问题,涉及PeopleFinder配置错误,通过调整文件权限修复。同时介绍使用WAS6动态缓存机制提升WCMContentViewPortlet性能及响应速度的方法。

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所示。

1- 19  PeopleFinder 导致了安装失败

    检查people_finder portlet install日志,

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

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所示。

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

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

    重新安装补丁包,安装成功,系统成功升级到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所示。

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


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

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

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

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

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

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

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

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

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

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9116427/viewspace-2284359/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/9116427/viewspace-2284359/

源码来自:https://pan.quark.cn/s/a4b39357ea24 《C++ Primer》作为C++编程领域中的一部权威著作,主要服务于初学者和经验丰富的开发者,致力于帮助他们深入掌握C++的核心知识。 第一章通常会详细讲解C++语言的基础概念和语法结构,包括变量的使用、数据类型的分类、常量的定义、运算符的应用以及基础的输入输出操作。 接下来,我们将对这一章中的核心知识点和可能的习题解答进行深入分析。 ### 1. 变量数据类型在C++编程中,变量被视为存储数据的媒介。 每一个变量都必须预先声明其数据类型,常见的数据类型有整型(int)、浮点型(float)、双精度浮点型(double)以及字符型(char)。 例如:```cppint age = 25; // 声明一个整型变量age并赋予其初始值25float weight = 70.5f; // 声明一个浮点型变量weight并赋予其初始值70.5char grade = A; // 声明一个字符型变量grade并赋予其初始值A```### 2. 常量字面量常量指的是不可更改的值,可以通过`const`关键字进行声明。 例如:```cppconst int MAX_SIZE = 100; // 声明一个整型常量MAX_SIZE,其值为100```字面量是指程序中直接书写的值,如`42`、`3.14`或`"Hello"`。 ### 3. 运算符C++提供了多种运算符,涵盖了算术运算符(+,-,*,/,%)、比较运算符(==,!=,<,>,<=,>=)、逻辑运算符(&&,||,!)以及赋值运算符(=,+=,-=,*=,/=,%=)等。 ### 4. 输入输出在C++中,使用`std::cin`来实现输...
内容概要:本文详细介绍了一个基于C++的仓库存储管理系统的设计实现,涵盖了项目背景、目标、挑战及解决方案,并系统阐述了整体架构设计、数据库建模、功能模块划分、权限安全、并发控制、数据一致性保障、异常处理可扩展性等关键内容。通过面向对象编程思想,采用分层架构模块化解耦设计,结合STL容器、多线程、锁机制等C++核心技术,实现了高效的库存管理功能,包括入库、出库、盘点、调拨、权限控制、日志追踪智能报表分析。文中还提供了核心类如Inventory(库存)、User(用户权限)、LogEntry(操作日志)及WarehouseManager(主控制器)的代码示例,展示了数据结构设计关键算法逻辑。; 适合人群:具备C++编程基础,熟悉面向对象设计基本数据结构的软件开发人员,尤其适合从事企业级管理系统开发或希望深入理解系统架构设计的中级开发者(工作1-3年);也适用于计算机相关专业学生进行课程设计或毕业项目参考; 使用场景及目标:①学习如何使用C++构建复杂业务系统的整体架构模块划分方法;②掌握高并发、数据一致性、权限控制、异常处理等企业级系统关键技术的实现思路;③理解仓储管理业务流程及其在软件系统中的建模落地方式;④为开发类似ERP、MES等后台管理系统提供技术原型设计参考; 阅读建议:此资源不仅提供理论架构代码片段,更强调系统设计的完整性工程实践性。建议读者结合代码示例动手实现核心模块,深入理解类之间的关系交互逻辑,重点关注多线程安全、事务管理权限校验等难点环节,并尝试扩展功能如对接GUI界面或数据库持久化模块,以全面提升系统开发能力。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值