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 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 - quick reference to commonly used DSP Tags

In this blog, I would like to give a quick reference to the most commonly used DSP Tags.Note that in this DSP tag details : bean refers to a Nucleus path, component name, and property name param refers to a Page parameter value refers to a Static-value var refers to a EL variable id refers to a scripting variable ============================================================== 1.dsp:importbean     example: <dsp:importbean bean="/atg/dynamo/droplet/Switch"/> ============================================================== 2.dsp:page     usage: It encloses a JSP. The dsp:page invokes the JSP handler, which calls the servlet pipeline and generates HTTPServletRequest.    example:    <dsp:page> ..... </dsp:page> ============================================================== 3.dsp:include     usage: Embeds a page fragment in a JSP.     example:   <dsp:include src="/myPage/Result...

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...

Search Facets - how to create a new search facets in ATG Search

A Facet is a search refinement element that corresponds to a property of a commerce item type. ATG supports the search result refinement using the Faceted Search concept. Read more about facted search @  http://en.wikipedia.org/wiki/Faceted_search . Facet can either be ranges or specific values. Each facet is stored in the RefinementRepository as a separate refineElement repository item. Facets are divided into Global and Local facets. Global facets apply to all the categories and local facets only to the category in which they are created. For example Price/Brand can be considered as the facets that are common for all skus and New Release/Coming Soon can be considered as the facets that are specific to Physical Media products like Vidoe/DVD/Blue-ray/Books. We can use the ATG BCC - Merchandising UI to create facets. The Faceting Property depends on the meta-properties defined in the \atg\commerce\search\product-catalog-output-config.xml ( the def...

ATG - how to use the Transaction Manager

Basic concepts of Java transaction In its simplest definition, a transaction is a set of actions that is treated as an atomic unit; either all actions take place (the transaction commits), or none of them take place (the transaction rolls back). Managing transactions is one of the primary tasks of an application server. The application server keeps track of transactions, remembering which transaction is associated with which request, and what transactional resources (such as JDBC or JMS connection) are involved. Each active transaction is represented by a transaction object, which implements the interface javax.transaction.Transaction. A transaction is usually associated with a thread and only one transaction can be associated with a thread at any one time. A central service, called the Transaction Manager, is responsible for keeping track of all these transactions. The Transaction Manager is implemented through the Java Transaction API (JTA). Transaction and Dynamo ap...