[标题]
针对一个大库运行refreshAllItems任务会导致事务超时
环境:(产品,平台,机型,软件版本,等)
产品:Workplace Web Content Management
平台:AIX, HP-UX, Linux, Linux iSeries, Linux Red Hat - iSeries, Linux SUSE - iSeries, Solaris, Windows
软件版本:6.0.1, 6.0.0.2, 6.0.0.1, 6.0
问题描述:
当您针对一个大的库运行refreshAllItems任务时,您可能会碰到事务处理超时,并且在日志中报这样的错误:
[12:14:13:061 CDT] 00000055 ServletWrappe E SRVE0068E: Could not invoke the service() method on servlet WCM Framework. Exception thrown : java.lang.IllegalStateException:
Session Object Internals:
id : ZjPjtHUzlRSKcDMniJrpeP3
hashCode : 29826728
create time : 12:00:19 CDT 2007
last access : 12:00:23 CDT 2007
max inactive interval : 600
user name : anonymous
valid session : false
new session : false
overflowed : false
app name : default_host/wps/wcm
non-serializable app specific session data : null
serializable app specific session data : []
at com.ibm.ws.webcontainer.httpsession.SessionData.getValueGuts(SessionData.java:825)
at com.ibm.ws.webcontainer.httpsession.SessionData.getValue(SessionData.java:1251)
at com.ibm.ws.webcontainer.httpsession.SessionData.getAttribute(SessionData.java:1131)
at com.ibm.ws.webcontainer.httpsession.HttpSessionFacade.getAttribute(HttpSessionFacade.java:104)
at com.presence.connect.wmmcomms.UserManagementUtils.getUser(UserManagementUtils.java:96)
at com.presence.connect.Connect.initialiseRequest(Connect.java:377)
at com.presence.connect.ConnectServlet.process(ConnectServlet.java:242)
at com.presence.connect.ConnectServlet.doGet(ConnectServlet.java:120)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1572)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:762)
at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:89)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:1924)
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:98)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:472)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:411)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:288)
at com.ibm.ws.ssl.channel.impl.SSLConnectionLink.determineNextChannel(SSLConnectionLink.java:950)
at com.ibm.ws.ssl.channel.impl.SSLConnectionLink$MyReadCompletedCallback.complete(SSLConnectionLink.java:582)
at com.ibm.ws.ssl.channel.impl.SSLReadServiceContext.handleAsyncComplete(SSLReadServiceContext.java:506)
at com.ibm.ws.ssl.channel.impl.SSLReadServiceContext.read(SSLReadServiceContext.java:468)
at com.ibm.ws.ssl.channel.impl.SSLReadServiceContext.read(SSLReadServiceContext.java:306)
at com.ibm.ws.ssl.channel.impl.SSLConnectionLink.readyInboundPostHandshake(SSLConnectionLink.java:655)
at com.ibm.ws.ssl.channel.impl.SSLConnectionLink$MyHandshakeCompletedCallback.complete(SSLConnectionLink.java:364)
at com.ibm.ws.ssl.channel.impl.SSLUtils.handleHandshake(SSLUtils.java:760)
at com.ibm.ws.ssl.channel.impl.SSLHandshakeIOCallback.complete(SSLHandshakeIOCallback.java:70)
at com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete(WorkQueueManager.java:566)
at com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(WorkQueueManager.java:619)
at com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun(WorkQueueManager.java:952)
at com.ibm.ws.tcp.channel.impl.WorkQueueManager$Worker.run(WorkQueueManager.java:1039)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1471)
接下来还会报很多有关JCR文本搜索的异常信息,如下:
[12:29:34:735 CDT] 0000002f JCRCFLLoggerI E com.ibm.icm.ts.tss.JCRCFLLoggerImpl com.ibm.icm.ts.tss.app.IndexMaintainer.handleError [java.lang.ThreadGroup[name=icmciWorkManager: icmjcrear,maxpri=10]]: error processing pending event name: ' (node not currently found in workspace) ' event: Event: action='Delete_Node(2)', timestamp='2007-04-24 17:00:45.29769', document id=<workspace: 1, itemid: AB001001N07D23C21100235554>', parentID: <workspace: 1, itemid: AB001001N07B25B437000C1C71> com.ibm.icm.ts.tss.ls.DatabaseException: com.ibm.icm.ts.path.StorageException: java.lang.IllegalArgumentException
at com.ibm.icm.ts.tss.app.IndexMaintainer.reindexWorkspace(IndexMaintainer.java:344)
at com.ibm.icm.ts.tss.app.IndexMaintainer.processPendingUpdates(IndexMaintainer.java:202)
at com.ibm.icm.ts.tss.app.IndexMaintainer.runIndexMaintenance(IndexMaintainer.java:137)
at com.ibm.icm.ts.tss.app.IndexMaintainer.checkForUpdates(IndexMaintainer.java:105)
at com.ibm.icm.ts.tss.app.IndexMaintenanceService.checkForUpdates(IndexMaintenanceService.java:65)
at com.ibm.icm.ts.tss.app.IndexMaintenanceService.access$000(IndexMaintenanceService.java:27)
at com.ibm.icm.ts.tss.app.IndexMaintenanceService$Notifiee.onEvent(IndexMaintenanceService.java:114)
at com.ibm.icm.ts.act.ActivityImpl$ManagerImpl$ActivityRunner.runActivity(ActivityImpl.java:333)
at com.ibm.icm.ts.act.ActivityImpl$ManagerImpl$ActivityRunner.run(ActivityImpl.java:303)
at com.ibm.hrl.workmanager.RunnableWrapper.run(RunnableWrapper.java:44)
at com.ibm.hrl.workmanager.impl.was.WasWork.run(WasWork.java:75)
at com.ibm.ws.asynchbeans.J2EEContext$RunProxy.run(J2EEContext.java:258)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:320)
at com.ibm.websphere.security.auth.WSSubject.doAs(WSSubject.java:118)
at com.ibm.ws.asynchbeans.J2EEContext$DoAsProxy.run(J2EEContext.java:325)
at java.security.AccessController.doPrivileged(Native Method)
at com.ibm.ws.asynchbeans.J2EEContext.run(J2EEContext.java:709)
at com.ibm.ws.asynchbeans.WorkWithExecutionContextImpl.go(WorkWithExecutionContextImpl.java:218)
at com.ibm.ws.asynchbeans.ABWorkItemImpl.run(ABWorkItemImpl.java:154)
at java.lang.Thread.run(Thread.java:534)
Caused by: com.ibm.icm.ts.path.StorageException: java.lang.IllegalArgumentException
at com.ibm.icm.ts.tss.JCRDocumentImpl$Manager.lookupChildren(JCRDocumentImpl.java:323)
at com.ibm.icm.ts.tss.JCRDocumentImpl$Manager.access$000(JCRDocumentImpl.java:246)
at com.ibm.icm.ts.tss.JCRDocumentImpl.children(JCRDocumentImpl.java:83)
at com.ibm.icm.ts.tss.JCRIndexerImpl.indexSubtreeRecursive(JCRIndexerImpl.java:72)
at com.ibm.icm.ts.tss.JCRIndexerImpl.indexSubtreeRecursive(JCRIndexerImpl.java:74)
at com.ibm.icm.ts.tss.JCRIndexerImpl.indexSubtreeRecursive(JCRIndexerImpl.java:74)
at com.ibm.icm.ts.tss.JCRIndexerImpl.indexSubtree(JCRIndexerImpl.java:57)
at com.ibm.icm.ts.util.ReindexWorkspace.addEventsForAllNodes(ReindexWorkspace.java:142)
at com.ibm.icm.ts.util.ReindexWorkspace.addEventsForAllNodes(ReindexWorkspace.java:127)
at com.ibm.icm.ts.util.ReindexWorkspace.reindexWorkspace(ReindexWorkspace.java:65)
at com.ibm.icm.ts.tss.app.IndexMaintainer.reindexWorkspace(IndexMaintainer.java:342)
问题分析:
当refreshAllItems任务运行的同时,JCR 搜索也在尝试重建索引,这便导致refreshAllItems任务超时,在浏览器端也报挂起的错误。JCR在此期间重建索引的对象是在任务运行这段时间被重新保存了的文档。结果便是当事务超时之后浏览器报挂起的错误。
解答:
请暂时禁用文本搜索,再运行refreshAllItems任务。 编辑以下文档:
WebSphere\PortalServer\jcr\lib\com\ibm\icm\icm.properties
修改以下属性:
jcr.textsearch.enabled=
把这个值改成false,直到任务运行完。
当refreshAllItems任务成功运行完毕,您可以重新启用这个设置,再重建文本索引,具体请参考以下步骤:
1. 停止PortalServer
2. 备份 <wp_home>/jcr/search 目录
3. 删除<wp_home>/jcr/search 目录
4. 重启PortalServer
注: 重建索引需要一些时间,取决于需要更新多少文档。
分享到:
相关推荐
### IBM WebSphere Portal 6.0安装手册知识点详解 #### 一、概述 IBM WebSphere Portal 6.0是一款功能强大的企业级门户解决方案,能够帮助组织整合应用和服务,为用户提供统一的信息访问入口。本手册旨在指导用户...
### WebSphere Portal 6.0 数据库迁移到 Oracle 参考手册 #### 一、引言 本文档旨在提供从 WebSphere Portal 6.0 的现有数据库迁移到 Oracle 数据库的具体步骤与指导。该迁移过程涉及到数据库的创建、表空间管理、...
《WebSphere Portal 6.0 调优指南》是一份由 IBM WPLC 性能团队编写的文档,主要针对 WebSphere Portal 6.0 版本的性能调优提供了详细的指导建议。这份文档对于那些希望提高 WebSphere Portal 性能、稳定性和可扩展...
主题策略是 WebSphere Portal 6.0.X 中引入的一个新概念,它允许管理员为不同的页面设置不同的主题规则。这使得在同一门户中应用多种风格成为可能,增强了个性化体验。 **3.1 导出和更新主题策略** 主题策略可以...
### Adapting AWStats for IBM WebSphere Portal 6.0.x and Virtual Portals #### Introduction In IBM WebSphere Portal 6.0.x, the functionality to track site usage remains intact, but the Tivoli Web Site ...
- **安装**:WebSphere Portal是IBM提供的一个基于Java EE的平台,用于构建和部署门户应用。安装过程中需确保系统满足硬件和软件需求,如JDK版本、操作系统兼容性等。安装过程包括产品安装、配置服务器群集、设置...
首先,需要在 Oracle 环境下创建一个新的数据库,用于存放 WebSphere Portal 6.0 的数据。可以使用 Oracle 提供的 Database Configuration Assistant (DBCA) 来创建这个新的数据库。在创建时,应选择合适的字符集。...
WebSphere MQ V6.0是这个系列的一个重要版本,发布于2007年,为用户提供了稳定、高效且安全的消息传递服务。 **WebSphere MQ的基本概念:** 1. **消息队列**:WebSphere MQ的核心概念,是数据传输的载体,用于存储...
### Websphere Portal Server 6.0 安装与配置详解 #### 一、概述 在本篇文章中,我们将深入探讨IBM Websphere Portal Server 6.0 (以下简称WPV6)的安装与配置过程。WPV6是基于Java 2 Platform, Enterprise Edition...
**IBM WebSphere Portal v6.0 安装与启用Domino操作手册** WebSphere Portal是IBM提供的一款企业级门户服务器,它允许组织整合多种应用程序、内容和服务,为用户提供统一的访问入口。IBM WebSphere Portal v6.0 ...
was6.0的lib,文件列表为: CL3Export.jar CL3Nonexport.jar com.ibm.mq.fta.jar com.ibm.mq.jar com.ibm.mq.jms.Nojndi.jar com.ibm.mq.soap.jar com.ibm.mqetclient.jar com.ibm.mqjms.jar commonservices.jar ...
在Websphere Portal中,一个主题可以包含多个皮肤,用户可以根据需要选择不同的皮肤。 1. **主题开发**: - **设计原则**:在创建主题时,应遵循易用性、可访问性和一致性的设计原则,确保所有用户都能舒适地使用...
WebSphere Portal 是一个企业级的平台,用于构建和管理集成的Web应用程序和门户解决方案。 1. **IBM Rational Application Developer (RAD) 和 Rational Software Architect (RSA)**: - RAD和RSA是IBM提供的强大的...
- **WebSphere 6.0的一次性安装目录**:确保所有必要的安装文件和配置信息位于一个易于访问的位置,减少重复操作和错误的可能性。 - **系统要求检查**:验证目标Linux系统是否满足WebSphere 6.0的最低硬件与软件...
- 开发工具中内置了一个轻量级的WebSphere Application Server实例,便于开发者进行应用测试和调试。 ##### 1.2 重要的用户界面变化 - WebSphere Application Server 6.0 对其用户界面进行了重大改进,提高了用户...
### IBM WebSphere Portal 6.0 数据库迁移至 DB2 的详细步骤 #### 一、DB2数据库的安装 为了确保IBM WebSphere Portal Server V6.0能够顺利地与DB2数据库进行集成,首先需要在相同的机器上安装DB2数据库。以下是...