Skip to main content

ATG Search troubleshooting tips

In this blog, I have listed some basic ATG Search troubleshooting tips in some general scenarios.

1. If the index did not deploy, consider the following possible causes :
  • Is the DeployShare property configured @ /atg/search/routing/LaunchingService component ? 
  • Is enough space available @ deployment share box for the index ? 
  • Are the RMI ports configured correctly in the RoutingSystemService component ? 
  • If the search engine application is running in a separate box, this application is invoked through a RemoteLauncher running in these boxes. Check whether these RemoteLaunchers are running in these boxes ?
2. If you have trouble in launching one or more search engines, try the following remedies:
  • If the Search engine is standalone, set the /atg/search/routing/LaunchingService component’s engineDir property to the absolute path of the Search engine directory. 
3. Search unavailable in the estore page, even when the SearchEngine is in "Running" status.

        This may occur sometimes, when the eStore-AppServer 's SearchEngineService component is pointing to the old port, different from what the engine is actually pointing as mentioned in the searchServer's SearchEngineService component. This occurs when indexing is triggered and when searchIndexing gets completed, the searchEngine port gets a new value. Inorder to resolve this, either restart this SearchEngineService component of the estore server. If its still not pointing to the right port, then restart the eStore AppServer.

4. Following are the steps to enable the different logging for troubleshooting :
  • Set the LaunchingService component’s loggingDebug property to true and look at the Launching debugging line.
  • Go to /atg/search/routing/SearchEngineService/ and change the loggingAllRequests property value to true to log all requests made to the Search engine. 
  • Go to /atg/search/routing/LaunchingService and change the engineLogLevel property value to D to enable debug logging. This will log all requests and takes effect upon the next engine restart. 
 5. In case of failure in indexing, check the following logs
  • JBoss server logs - <JBOSS_HOME>\server\atg\logs\server.log
  • Dumping request logs Folder - <ATG_HOME>\logs\searchEngineActivity\*.xml (request and response xmls). These logs will provide what was the request send to search engine in xml form and what was the response from engine for a query.
  • Search engine logs - <ATG_HOME>\Search2007.1\SearchEngine\i686-win32-vc71\bin. This can also be used for checking the indexing failing in the engine level.  

Comments

  1. Hi Sony, I am facing one scenario where one of the index file which is in being used by answer servers got deleted due to which search indexing is failing with message "swap failed". Do you have any idea about this.

    ReplyDelete
  2. You have only one search index file or have a other old index files @ history ? .

    If you have old index files @ history, just try to deploy some historical index files and after that do fresh search indexing.

    Let me know whether this works... :-)

    ReplyDelete
  3. Hi Sony,

    I am facing an issue with ATG search where some of the orders are not searchable with property "status".

    Can you please help?

    Thanks

    ReplyDelete
  4. You are using the search for CSC ?
    You configured order status as a text-property @ product catalog output config file ?

    ReplyDelete
  5. Hi sony,

    II configuring csc search.For order I m able to setup search.and getting search results but for profile I m not able to see the indexed file I'm deploy share although m pointing correct path.

    ReplyDelete

Post a Comment

Popular posts from this blog

ATG - more about Forms and Form Handlers

An ATG form is defined by the dsp:form tag, which typically encloses DSP tags that specify form elements, such as dsp:input that provide direct access to Nucleus component properties. Find below a sample dsp:form tag.    <dsp:form action="/testPages/showPersonProperties.jsp" method="post" target="_top">      <p>Name: <dsp:input bean="/samples/Person.name" type="text"/>      <p>Age: <dsp:input bean="/samples/Person.age" type="text" value="30"/>      <p><dsp:input type="submit" bean="/samples/Person.submit"/> value="Click to submit"/>    </dsp:form>   When the user submits the form, the /samples/Person.name property is set to the value entered in the input field.Unlike standard HTML, which requires the name attribute for most input tags; the name attribute is optional for DSP form element tags. If an input tag omits the n...

Eclipse plug-in to create Class and Sequence diagrams

ModelGoon is an Eclipse plug-in avaiable for UML diagram generation from Java code. It can be used to generate Package Dependencies Diagram, Class Diagram, Interaction Diagram and Sequence Diagram. You coud get it from http://marketplace.eclipse.org/content/modelgoon-uml4java Read more about it and see some vedios about how to create the class and sequence diagram @ http://www.modelgoon.org/?tag=eclipse-plugin Find some snapshots below which gives an idea about the diagram generation.

ATG Search architectural flow : Search and Index

I would like to explain the high level ATG Search implementation architecture ( for an online store) through the above diagram. In this diagram 1.x denotes the search functionality and 2.x denotes the indexing functionality. I have given JBoss as the application server. Physical Boxes and Application Servers in the diagram ( as recommended by ATG )  : Estore ( Commerce ) Box --> The box with the estore/site ear (with the site JSPs and Java codes). Search Engine Box --> The box with the search engine application running. Indexing Engine Box --> The box with the indexing engine application running. CA (Content Administration) Box --> The box with the ATG CA ear ( where we could take CA -BCC - Search Administration and configure the search projects) . Search Indexer Box --> The box with the ATG Search Index ear ( to fetch the index data from repository). Note that the engine performing indexing will need access ...

ATG Search - how estore(commerce instance) forms the search engine SOAP URL ?

The comminucation between the Commerce box and the Search engine is through SOAP. Read  more about this architecture @  http://tips4ufromsony.blogspot.in/2011/11/atg-search-architectural-flow-search.html The commerce instance forms the SOAP url just like the below code: private URL getSearchEngineURL(SearchEngine engine) {       SearchEnvironmentHost h =  engine.getSearchEnvironmentHost();       SearchMachine hi = h.getSearchMachine() ;       return new URL( "http://" + hi.getHostname() + ":" + engine.getPort() + "/AEXmlService/" );   } So the commerce instance need the hi.getHostname()  and engine.getPort() to form the url. It is obtained as below: 1. The component / atg/commerce/search/refinement/ CommerceFacetSearchService has the siteName defined, which will be pointing to the environment name defined in the Search Project. Read  more about this search project setup @  http://...

ATG Order update - InvalidVersionException and ConcurrentUpdateException

ATG repository item descriptor can have the version property. The atg.adapter.gsa.ItemTransactionState holds this version information. For example consider the Order item-descriptor. It has the version property defined against the table dcspp_order. Means, the dcspp_order table has the column version which defines which version of order is currently in the DB. Each order update flow will update this column.  <property name="version" display-name-resource="version" data-type="int" queryable="true" readable="true" column-name="version" hidden="false" category-resource="categoryInfo" expert="true" required="false" cache-mode="inherit" writable="true">     <attribute name="uiwritable" value="false"/>     <attribute name="propertySortPriority" value="30"/>   </property> ------------------------------- Du...