Skip to main content

The option -DskipCleanup=true on the upgrade-profile ConfigEngine task causes the sub task deploy-apps to fail with the error message EJPXA0140E: Duplicate objectid attribute com.ibm.wps.portlets.pse.2.PSEAdmin


Technote (troubleshooting)


Problem

When using the undocumented debug related command line option -DskipCleanup=true when executing the ConfigEngine upgrade-profile task multiple times without manually cleaning up the ConfigEngine/work directory the consolidatedXMLAccess.xml contains duplicate entries for each deployable Application. This causes the upgrade-profile ConfigEngine task to fail with the following errors and exceptions found in the consolidatedXMLAccessResults.xml

<status element="[portlet com.ibm.wps.portlets.pse.2.PSEAdmin uniquename=wps.p.Manage Search Admin name=Manage Search Admin Portlet]" result="failed">
<message id="EJPXA0140E">EJPXA0140E: Duplicate objectid attribute com.ibm.wps.portlets.pse.2.PSEAdmin.</message>
<stacktrace><![CDATA[
com.ibm.wps.command.xml.XmlCommandException: EJPXA0140E: Duplicate objectid attribute com.ibm.wps.portlets.pse.2.PSEAdmin. [portlet com.ibm.wps.portlets.pse.2.PSEAdmin uniquename=wps.p.Manage Search Admin name=Manage Search Admin Portlet]
at com.ibm.wps.command.xml.ConfigItem.doUpdate(ConfigItem.java:626)
at com.ibm.wps.command.xml.UpdateEngine.processItem(UpdateEngine.java:216)
at com.ibm.wps.command.xml.UpdateEngine.processItem(UpdateEngine.java:222)
at com.ibm.wps.command.xml.UpdateEngine.processItem(UpdateEngine.java:222)
at com.ibm.wps.command.xml.UpdateEngine.updateTopLevelItem(UpdateEngine.java:171)
at com.ibm.wps.command.xml.XmlAccessHandler.fillObjectModel(XmlAccessHandler.java:330)
at com.ibm.wps.command.xml.XmlAccessHandler.endElement(XmlAccessHandler.java:212)
at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
at org.apache.xerces.impl.xs.XMLSchemaValidator.endElement(Unknown Source)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl.parse(Unknown Source)
at com.ibm.wps.command.xml.XmlUtils.parseSax(XmlUtils.java:288)
at com.ibm.wps.command.xml.Engine.forInputSourceSax(Engine.java:227)
at com.ibm.wps.command.xml.Engine.forInputSourceSax(Engine.java:168)
at com.ibm.wps.command.xml.XmlCommand.internalExecute(XmlCommand.java:242)
at com.ibm.wps.command.xml.XmlCommand.execute(XmlCommand.java:185)
at com.ibm.wps.command.xml.XmlCommandServlet.processInternal(XmlCommandServlet.java:332)
at com.ibm.wps.command.xml.XmlCommandServlet.process(XmlCommandServlet.java:309)
at com.ibm.wps.command.xml.XmlCommandServlet.doPost(XmlCommandServlet.java:234)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:595)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1224)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:774)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:456)
at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:136)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:97)
at com.ibm.wps.project.filter.ProjectIdFilter.doFilterWithoutProjectID(ProjectIdFilter.java:331)
at com.ibm.wps.project.filter.ProjectIdFilter.doFilter(ProjectIdFilter.java:243)
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:928)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1025)
at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3751)
at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:304)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:962)
at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1662)
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:195)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:452)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:511)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:305)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:276)
at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
at com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete(WorkQueueManager.java:557)
at com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(WorkQueueManager.java:607)
at com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun(WorkQueueManager.java:984)
at com.ibm.ws.tcp.channel.impl.WorkQueueManager$Worker.run(WorkQueueManager.java:1069)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1690)

]]></stacktrace>
</status>


Symptom

ConfigEngine -DskipCleanup=true upgrade-profile command fails with the error EJPXA0140E: Duplicate objectid attribute com.ibm.wps.portlets.pse.2.PSEAdmin. [portlet com.ibm.wps.portlets.pse.2.PSEAdmin uniquename=wps.p.Manage Search Admin name=Manage Search Admin Portlet]

Cause

The -DskipCleanup=true is an undocumented debug related property setting to aid with Troubleshooting issues related to the execution of the upgrade-profile. Its purpose is to bypass the cleanup of the ConfigEngine work directory so that the work files can be used to analyze failures curring in the upgrade-profile ConfigEngine task.

When using the -DskipCleanup=true each time the upgrade-profile ConfigEngine task is executed the xml used to deploy the WebSphere Portal applications are appended to the consolidatedXMLAccess.xml script which is used by the deploy-apps task to update the installed WebSphere portal applications with the version found in the installableApps directory.

When there are multiple updates for a same application in a single XMLAccess input file XMLAccess will generate the following error status when it finds a duplicate update action for the same Application


<status element="[portlet com.ibm.wps.portlets.pse.2.PSEAdmin uniquename=wps.p.Manage Search Admin name=Manage Search Admin Portlet]" result="failed">
<message id="EJPXA0140E">EJPXA0140E: Duplicate objectid attribute com.ibm.wps.portlets.pse.2.PSEAdmin.</message>
<stacktrace><![CDATA[
com.ibm.wps.command.xml.XmlCommandException: EJPXA0140E: Duplicate objectid attribute com.ibm.wps.portlets.pse.2.PSEAdmin. [portlet com.ibm.wps.portlets.pse.2.PSEAdmin uniquename=wps.p.Manage Search Admin name=Manage Search Admin Portlet]
at com.ibm.wps.command.xml.ConfigItem.doUpdate(ConfigItem.java:626)
at com.ibm.wps.command.xml.UpdateEngine.processItem(UpdateEngine.java:216)
at com.ibm.wps.command.xml.UpdateEngine.processItem(UpdateEngine.java:222)
at com.ibm.wps.command.xml.UpdateEngine.processItem(UpdateEngine.java:222)
at com.ibm.wps.command.xml.UpdateEngine.updateTopLevelItem(UpdateEngine.java:171)
at com.ibm.wps.command.xml.XmlAccessHandler.fillObjectModel(XmlAccessHandler.java:330)
at com.ibm.wps.command.xml.XmlAccessHandler.endElement(XmlAccessHandler.java:212)
at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
at org.apache.xerces.impl.xs.XMLSchemaValidator.endElement(Unknown Source)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl.parse(Unknown Source)
at com.ibm.wps.command.xml.XmlUtils.parseSax(XmlUtils.java:288)
at com.ibm.wps.command.xml.Engine.forInputSourceSax(Engine.java:227)
at com.ibm.wps.command.xml.Engine.forInputSourceSax(Engine.java:168)
at com.ibm.wps.command.xml.XmlCommand.internalExecute(XmlCommand.java:242)
at com.ibm.wps.command.xml.XmlCommand.execute(XmlCommand.java:185)
at com.ibm.wps.command.xml.XmlCommandServlet.processInternal(XmlCommandServlet.java:332)
at com.ibm.wps.command.xml.XmlCommandServlet.process(XmlCommandServlet.java:309)
at com.ibm.wps.command.xml.XmlCommandServlet.doPost(XmlCommandServlet.java:234)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:595)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1224)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:774)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:456)
at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:136)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:97)
at com.ibm.wps.project.filter.ProjectIdFilter.doFilterWithoutProjectID(ProjectIdFilter.java:331)
at com.ibm.wps.project.filter.ProjectIdFilter.doFilter(ProjectIdFilter.java:243)
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:928)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1025)
at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3751)
at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:304)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:962)
at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1662)
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:195)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:452)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:511)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:305)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:276)
at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
at com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete(WorkQueueManager.java:557)
at com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(WorkQueueManager.java:607)
at com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun(WorkQueueManager.java:984)
at com.ibm.ws.tcp.channel.impl.WorkQueueManager$Worker.run(WorkQueueManager.java:1069)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1690)

]]></stacktrace>
</status>

Environment

WebSphere Portal 8.x

Diagnosing the problem

After executing the ConfigEngine -DskipCleanup=true upgrade-profile task multiple times without manually cleaning up the ConfigEngine/config/work directory, open the consolidatedXMLAccess.xml file and you will see duplicates entries for each application to be deployed.

After running the task 4 times there were 4 update entries for each application.

Running the ConfigEngine -DskipCleanup=true upgrade-profile a fifth time results in 5 update entries for each application

The logic is as follows:

- Xmlaccess called to export all portlets
- Stylesheet executed against the export file to remove any pre-deployed portlets. This is written to a new file in the work directory.
- Xmlaccess called again to import the new file.

The logic in the stylesheet area just updates the file if it already exists instead of creating a new file

Resolving the problem

If using the undocumented setting -DskipCleanup=true in the command ConfigEngine -DskipCleanup=true upgrade-profile the user must manually remove the ConfigEngine/config/work directory before executing the ConfigEngine -DskipCleanup upgrade-profile multiple times


Rate this page:

(0 users)Average rating

Copyright and trademark information

IBM, the IBM logo and ibm.com are trademarks of International Business Machines Corp., registered in many jurisdictions worldwide. Other product and service names might be trademarks of IBM or other companies. A current list of IBM trademarks is available on the Web at "Copyright and trademark information" at www.ibm.com/legal/copytrade.shtml.

Rate this page:


(0 users)Average rating

Add comments

Document information

WebSphere Portal

Migration


Software version:
8.0, 8.0.0.0, 8.0.0.1


Operating system(s):
AIX, HP-UX, IBM i, Linux, Solaris, Windows, i5/OS, z/OS


Reference #:
1627616


Modified date:
2013-04-12

Translate my page

Content navigation