Skip to main content

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://tips4ufromsony.blogspot.in/2012/01/atg-search-how-to-create-search-project.html

          siteName=SearchProjectLocal

2. By using the above siteName, the commerce instance will obtain the search enigne hostbox name just like the below query :

       select * from rout_host_inf  where id =( select host_info_id from rout_host where parent_env_id = ( select id from rout_env where env_name = 'SearchProjectLocal' ) )   --> The hi.getHostname() got from here

3. By using the above siteName, the commerce instance will obtain the search enigne hostbox name just like the below query :

      select * from rout_engine where host_id = (select id from rout_host where parent_env_id = (select id from rout_env where env_name = 'SearchProjectLocal')) --> The engine.getPort() got from here

Read how to make the SOAP call to search engine using SOAP UI  @ http://tips4ufromsony.blogspot.in/2012/01/how-can-we-use-soap-ui-to-test-atg.html

Comments

  1. How does the engine information get populated in the SearchConfigurationRepository for a remote store instance ?

    ReplyDelete
  2. Both the remote store and CA ( content administrator or search administrator or ATG-BCC ) will point to the same SearchConfigurationRepository. So when the Search Project get created @ Search administrator, it will get reflected @ SearchConfigurationRepository with the new search engine information and if a new indexing happens, that information also get updated @ SearchConfigurationRepository.

    ReplyDelete
  3. How do you delete a search project without using the UI?

    ReplyDelete
  4. You need to remove the project from srch_project table and its ref. and child tables.

    The following set of queries might help you. Make sure that you use it wisely. :-)

    --To delete a search project that is not created correctly:

    select * from ROUT_INDEX order by est_start desc
    delete from ROUT_INDEX where est_start is null

    select * from rout_dep_hist where time_ended is null
    delete from rout_dep_hist where time_ended is null

    select * from rout_log_part where parent_index in ( select id from ROUT_INDEX where est_start is null)
    delete from rout_log_part where parent_index in ( select id from ROUT_INDEX where est_start is null)

    select * from rout_phys_part_m where log_part_id in ( select id from rout_log_part where parent_index in ( select id from ROUT_INDEX where est_start is null))
    delete from rout_phys_part_m where log_part_id in ( select id from rout_log_part where parent_index in ( select id from ROUT_INDEX where est_start is null))

    select * from rout_idx_log_parts where parent_index in ( select id from ROUT_INDEX where est_start is null)
    delete from rout_idx_log_parts where parent_index in ( select id from ROUT_INDEX where est_start is null)

    select * from srch_sync_task where srch_project_id = '1900001'
    delete from srch_sync_task where srch_project_id = '1900001'

    select * from srch_env_p_m where srch_project_id = '1900001'
    delete from srch_env_p_m where srch_project_id = '1900001'

    select * from srch_sync_task_def where srch_project_id = '1900001'
    delete from srch_sync_task_def where srch_project_id = '1900001'

    select * from srch_css_id_to_targ_ids where srch_project_id = '1900001'
    delete from srch_css_id_to_targ_ids where srch_project_id = '1900001'

    select * from srch_project where id = '1900001'
    delete from srch_project where id = '1900001'

    select * from srch_project_custom_ds
    delete from srch_project_custom_ds where srch_project_id = '1900001'

    select * from srch_project_custom_dsm
    delete from srch_project_custom_dsm where srch_project_id = '1900001'

    select * from rout_host
    delete from rout_host

    select * from rout_env
    delete from rout_env

    -- To delete and invalid search index to clean up:

    select * from rout_dep_hist where new_index = 2100001
    delete from rout_dep_hist where new_index = 2100001

    select * from rout_idx_log_parts where parent_index =2100001
    delete from rout_idx_log_parts where parent_index =2100001

    select * from rout_phys_part_m where phys_part_id =2100001
    delete from rout_phys_part_m where phys_part_id =2100001

    select * from rout_log_part where parent_index = 2100001
    DELETE from rout_log_part where parent_index = 2100001

    select * from rout_part where id =2100001
    delete from rout_part where id =2100001

    select * from rout_index where id =2100001
    delete from rout_index where id =2100001

    ReplyDelete

Post a Comment

Popular posts from this blog

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

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

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

Google Chrome shortcut keys

If you are a Google Chromey guy, please find below the list of shortcut keys for some of the most used features  :-) Find more shortcut keys @  http://www.google.com/support/chrome/bin/static.py?page=guide.cs&guide=25799&topic=28650