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 CA - BCC home screen : how to add a new link

          Activity source is the property which controls the links on the left nav on the BCC home screen. All activity sources are registered with the ActivityManager component at /atg/bizui/activity/ActivityManager . When rendering the BCC home page, the ActivityManager cycles through all the registered ActivitySource components and displays left navigation links for each of them on the BCC home page. For example if I want to add a new link "My New Link" , below screen shots exaplins how this can be done 1. Add  activityManager.properties to specify the activityresources. In this  activityManager, I specified one MyActivitySource. 2. Add  MyActivitySource.properties  to specify the name of the link and the other details . Here it refers to a bundle properties file.  3. Add  the bundle properties file  to specify the name of the link.  4. Now you could see the new link...

How the ATG Order flow manages a transaction

See more about ATG  Tx management @ http://tips4ufromsony.blogspot.com/2012/05/atg-how-to-use-transaction-manager.html Most of the ATG Commerce form handlers extend atg.commerce.order.purchase.PurchaseProcessFormHandler. The transaction management pattern in order flow is implemented through this form handler’s beforeSet, afterSet, and handler methods. The transaction will be started @ beforeSet method and is ended @ afterSet method. In general, the design pattern for updating an order is as follows: Acquire lock-manager write lock on profile id from the /atg/commerce/order/LocalLockManager Begin Transaction Synchronize on the Order object. Modify Order Call ((OrderImpl) pOrder).updateVersion(); --> atg.commerce.order.InvalidVersionException is thrown based on this Call OrderManager.updateOrder() Release Order synchronization End Transaction Release lock-manager write lock on profile id from the /atg/commerce/order/LocalLockManager     ...

ATG - how to prevent Cross-Site attacks using _dynSessConf parameter

Cross-site scripting attacks take advantage of a vulnerability that enables a malicious site to use your browser to submit form requests to another site. In order to protect forms from cross-site attacks in ATG, you can enable form submissions to automatically supply the request parameter _dynSessConf , which identifies the current session through a randomly generated long number. On submission of a form (using dsp:form tag) or activation of a property setting (using dsp:a tag), the request-handling pipeline ( DAFDropletEventServlet ) validates _dynSessConf  against its session confirmation identifier. If it detects a mismatch or missing number, it can block form processing and return an error. To disable this functionality, we could give the following properties (@ /atg/dynamo/Configuration to disable it globally) enforceSessionConfirmation  = false -->  specifies whether the request-handling pipeline requires session confirmation in order to proc...

ATG Search Indexing - overview of different steps in search indexing

Read more about the search indexing behind the scene steps @  http://tips4ufromsony.blogspot.in/2011/12/atg-search-indexing-behind-scene-steps.html ATG Search prepares searchable content by indexing the products specified in the XML definition file (/atg/commerce/search/ProductCatalogOutputConfig). Generally there are two types of indexing 1.  Full Indexing  --> all data taken for indexing 2.  Incremental Indexing --> only changed data will be taken for indexing When full indexing is triggered, following happens:    1. The out of box component BulkLoader will call IndexedItemsGroup.getGroupMembers() to load the products to the XHTL document. It prevents uncategorized products from getting indexed. The definition file format begins with a top-level item as a product and includes the properties of parent category and childskus. For each product, the set of Variant Producers configured in ProductCatalogOutputConfig is execute...

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