Tuesday, May 27, 2014

Resolving Issues with IBM WebSphere Portal 8.0 Default Search Service, Crawlers, and Collections



After installing, clustering, and securing WP 8.0, the search services and collections may need to be recreated, but this process seems fragile. Multiple restarts and multiple attempts to recreate the default search service and the default Portal / WCM collections result in an array of errors that can be difficult to isolate.
Some of the error messages seen in the logs and in the UI when the Search Services are mis-configured:
  • Unable to start Portal Search Service
  • Unable to create WebScanner
  • Failed to parse CrawlerStatus xml

To completely reset the search services, I eventually had to take the following steps:
  • Delete the Default Search Service via the Portal Admin console
  1. Stop server(s)
  2. Delete all files in /usr/wps/WebSphere/wp_profile/PortalServer/CollectionsConfig
  3. Start the server(s)
  • Update Search Service Credentials
  1. Manage Search -> Search Services -> Default Search Service -> Default Search Collection
  2. Edit "Portal Content Source", "Security" tab to manually update credentials

    Note: I had a problem with my Portal Source due to incorrect protocol in the generated seedlist URI. This was causing a failure with a 401 HTTP code. To fix it I had to switch the URI from HTTPS to HTTP and restart the crawler. 
  3. Edit "WCM Content Source", "Security" tab to manually update credentials
  4. Run both crawlers
  5. Win.

Snippets of the stack traces I encountered in my portal logs during this process:

PortalCollect E com.ibm.hrl.portlets.WsPse.PortalCollectionsService createWebScannerLite EJPJO0032E: Unable to create Webscanner
com.ibm.lotus.search.engine.SearchAdminException: Failed to get crawler status from persistence layer.
...
(the following line was a big clue!)
Caused by: com.ibm.lotus.search.engine.PersistenceException: Failed to parse CrawlerStatus xml.
at com.ibm.lotus.search.engine.PersistenceService.getCrawlerStatus(PersistenceService.java:313)
at com.ibm.lotus.search.engine.SearchAdminService.init(SearchAdminService.java:686)
... 47 more
Caused by: org.xml.sax.SAXParseException: Content is not allowed in trailing section.
at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
at com.ibm.lotus.search.engine.xml.SearchEngineInternalContentHandler.parseCrawlerStatus(SearchEngineInternalContentHandler.java:75)
at com.ibm.lotus.search.engine.PersistenceService.getCrawlerStatus(PersistenceService.java:311)
... 48 more
PortalCollect E com.ibm.hrl.portlets.WsPse.PortalCollectionsService PortalCollectionsService EJPJO0119E: Failed to initialize portal collections services.
com.ibm.hrl.portlets.WsPse.PortalWebScannerException: EJPJO0032E: Unable to create Webscanner
...
Caused by: com.ibm.lotus.search.engine.SearchAdminException: Failed to get crawler status from persistence layer.
at com.ibm.lotus.search.engine.SearchAdminService.init(SearchAdminService.java:688)
at com.ibm.lotus.search.engine.SearchEngineWebScannerLiteImp.init(SearchEngineWebScannerLiteImp.java:180)
at com.ibm.lotus.search.engine.SearchEngineWebScannerLiteImp.setProp(SearchEngineWebScannerLiteImp.java:291)
at com.ibm.hrl.portlets.WsPse.PortalCollectionsService.createWebScannerLite(PortalCollectionsService.java:3669)
... 44 more
Caused by: com.ibm.lotus.search.engine.PersistenceException: Failed to parse CrawlerStatus xml.
at com.ibm.lotus.search.engine.PersistenceService.getCrawlerStatus(PersistenceService.java:313)
at com.ibm.lotus.search.engine.SearchAdminService.init(SearchAdminService.java:686)
... 47 more
Caused by: org.xml.sax.SAXParseException: Content is not allowed in trailing section.
at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
at com.ibm.lotus.search.engine.xml.SearchEngineInternalContentHandler.parseCrawlerStatus(SearchEngineInternalContentHandler.java:75)
at com.ibm.lotus.search.engine.PersistenceService.getCrawlerStatus(PersistenceService.java:311)
... 48 more

Happy Portalling!

3 comments:

  1. I am inspired with your post writing style & how continuously you describe this topic. After reading your post, thanks for taking the time to discuss this, I feel happy about it and I love learning more about this topic also visit Tableau Training videos l page and check for training

    ReplyDelete