Author: ssmiweve
Date: 2008-12-02 09:49:22 +0100 (Tue, 02 Dec 2008)
New Revision: 7007

Modified:
   
branches/2.18/core-api/src/main/java/no/sesat/search/run/RunningQueryImpl.java
   
branches/2.18/generic.sesam/search-command-config/src/main/java/no/sesat/search/mode/config/EspFastCommandConfig.java
   
branches/2.18/generic.sesam/search-command-config/src/main/java/no/sesat/search/mode/config/SolrCommandConfig.java
   
branches/2.18/generic.sesam/search-command-control/fast/src/main/java/no/sesat/search/mode/command/AbstractESPFastSearchCommand.java
   
branches/2.18/search-command-control-spi/src/main/java/no/sesat/search/mode/executor/AbstractSearchCommandExecutor.java
Log:
logging improvements in how timeouts are handled. some doco.


Modified: 
branches/2.18/core-api/src/main/java/no/sesat/search/run/RunningQueryImpl.java
===================================================================
--- 
branches/2.18/core-api/src/main/java/no/sesat/search/run/RunningQueryImpl.java  
    2008-12-01 13:35:40 UTC (rev 7006)
+++ 
branches/2.18/core-api/src/main/java/no/sesat/search/run/RunningQueryImpl.java  
    2008-12-02 08:49:22 UTC (rev 7007)
@@ -114,7 +114,7 @@
 
     private static final String ERR_RUN_QUERY = "Failure to run query";
     private static final String ERR_EXECUTION_ERROR = "Failure in a search 
command.";
-    private static final String ERR_MODE_TIMEOUT = "Timeout running all search 
commands.";
+    private static final String ERR_MODE_TIMEOUT = "Timeout running search 
commands.";
     private static final String INFO_COMMAND_COUNT = "Commands to invoke ";
 
     // Attributes ----------------------------------------------------
@@ -547,8 +547,7 @@
 
                     for(String waitForStr : waitForArr){
                         // using generics on the next line crashes javac
-                        
for(Entry/*<Future<ResultList<ResultItem>>,SearchCommand>*/ entry
-                                : results.entrySet()){
+                        
for(Entry/*<Future<ResultList<ResultItem>>,SearchCommand>*/ entry : 
results.entrySet()){
 
                             final String entryName
                                     = 
((SearchCommand)entry.getValue()).getSearchConfiguration().getId();
@@ -585,7 +584,7 @@
                 executor.waitForAll(waitFor, TIMEOUT);
             }
         }catch(TimeoutException te){
-            LOG.error(ERR_MODE_TIMEOUT + te.getMessage());
+            LOG.error(ERR_MODE_TIMEOUT);
         }
 
         // Check that we have atleast one valid execution

Modified: 
branches/2.18/generic.sesam/search-command-config/src/main/java/no/sesat/search/mode/config/EspFastCommandConfig.java
===================================================================
--- 
branches/2.18/generic.sesam/search-command-config/src/main/java/no/sesat/search/mode/config/EspFastCommandConfig.java
       2008-12-01 13:35:40 UTC (rev 7006)
+++ 
branches/2.18/generic.sesam/search-command-config/src/main/java/no/sesat/search/mode/config/EspFastCommandConfig.java
       2008-12-02 08:49:22 UTC (rev 7007)
@@ -55,6 +55,7 @@
     private boolean collapsingRemoves;
     private String qtPipeline = "";
     private boolean lemmatize;
+    private Integer timeout = 1000;
 
 
     private static final String ERR_FAST_EPS_QR_SERVER =
@@ -246,6 +247,26 @@
         return lemmatize;
     }
 
+    /** Fast ESP supports timeout on query with BaseParameter.TIMEOUT.
+     * Specified in milliseconds.
+     * Default is one second.
+     * Only actived when root log4j logger is set to INFO or higher.
+     * Rationale here is that we don't want timeouts in debugging environments.
+     * @param integer
+     */
+    public void setTimeout(final Integer integer){
+        timeout = integer;
+    }
+
+    /** @see #setTimeout(java.lang.Integer)
+     *
+     * @return
+     */
+    public int getTimeout(){
+        return timeout;
+    }
+
+
     @Override
     public SearchConfiguration readSearchConfiguration(final Element element, 
final SearchConfiguration inherit, Context context) {
         super.readSearchConfiguration(element, inherit, context);

Modified: 
branches/2.18/generic.sesam/search-command-config/src/main/java/no/sesat/search/mode/config/SolrCommandConfig.java
===================================================================
--- 
branches/2.18/generic.sesam/search-command-config/src/main/java/no/sesat/search/mode/config/SolrCommandConfig.java
  2008-12-01 13:35:40 UTC (rev 7006)
+++ 
branches/2.18/generic.sesam/search-command-config/src/main/java/no/sesat/search/mode/config/SolrCommandConfig.java
  2008-12-02 08:49:22 UTC (rev 7007)
@@ -119,8 +119,11 @@
         }
     }
 
-    /**
+    /** Specified in milliseconds.
+     * Default is Integer.MAX_VALUE.
      *
+     * Only actived when root log4j logger is set to INFO or higher.
+     * Rationale here is that we don't want timeouts in debugging environments.
      * @param integer
      */
     public void setTimeout(final Integer integer){

Modified: 
branches/2.18/generic.sesam/search-command-control/fast/src/main/java/no/sesat/search/mode/command/AbstractESPFastSearchCommand.java
===================================================================
--- 
branches/2.18/generic.sesam/search-command-control/fast/src/main/java/no/sesat/search/mode/command/AbstractESPFastSearchCommand.java
        2008-12-01 13:35:40 UTC (rev 7006)
+++ 
branches/2.18/generic.sesam/search-command-control/fast/src/main/java/no/sesat/search/mode/command/AbstractESPFastSearchCommand.java
        2008-12-02 08:49:22 UTC (rev 7007)
@@ -34,14 +34,8 @@
 import com.fastsearch.esp.search.result.IQueryResult;
 import com.fastsearch.esp.search.view.ISearchView;
 import java.util.Collection;
+import no.sesat.search.mode.config.BaseSearchConfiguration;
 import no.sesat.search.mode.config.EspFastCommandConfig;
-import no.sesat.search.query.AndClause;
-import no.sesat.search.query.AndNotClause;
-import no.sesat.search.query.DefaultOperatorClause;
-import no.sesat.search.query.LeafClause;
-import no.sesat.search.query.NotClause;
-import no.sesat.search.query.OrClause;
-import no.sesat.search.query.UrlClause;
 import no.sesat.commons.visitor.Visitor;
 import no.sesat.search.query.XorClause;
 import no.sesat.search.result.BasicResultList;
@@ -59,6 +53,7 @@
 import java.util.Map;
 import java.util.Properties;
 import java.util.concurrent.ConcurrentHashMap;
+import org.apache.log4j.Level;
 
 /**
  * Base class for commands querying a FAST EPS Server.
@@ -198,6 +193,11 @@
 
             DUMP.info(query);
 
+            // when the root logger is set to DEBUG do not limit connection 
times
+            if(Logger.getRootLogger().getLevel().isGreaterOrEqual(Level.INFO)){
+                query.setParameter(BaseParameter.TIMEOUT, 
getSearchConfiguration().getTimeout());
+            }
+
             result = searchView.search(query);
 
             return createSearchResult(result);
@@ -212,10 +212,11 @@
         }
     }
 
-    // Z implementation ----------------------------------------------
+    @Override
+    public EspFastCommandConfig getSearchConfiguration() {
+        return (EspFastCommandConfig) super.getSearchConfiguration();
+    }
 
-    // Y overrides ---------------------------------------------------
-
     // Package protected ---------------------------------------------
 
     // Protected -----------------------------------------------------

Modified: 
branches/2.18/search-command-control-spi/src/main/java/no/sesat/search/mode/executor/AbstractSearchCommandExecutor.java
===================================================================
--- 
branches/2.18/search-command-control-spi/src/main/java/no/sesat/search/mode/executor/AbstractSearchCommandExecutor.java
     2008-12-01 13:35:40 UTC (rev 7006)
+++ 
branches/2.18/search-command-control-spi/src/main/java/no/sesat/search/mode/executor/AbstractSearchCommandExecutor.java
     2008-12-02 08:49:22 UTC (rev 7007)
@@ -100,7 +100,9 @@
                         TimeUnit.MILLISECONDS);
 
             }catch(TimeoutException te){
-                LOG.error(ERR_COMMAND_TIMEOUT + te.getMessage());
+                LOG.error(ERR_COMMAND_TIMEOUT
+                        + results.get(task).getSearchConfiguration().getId()
+                        +" [" + 
results.get(task).getSearchConfiguration().getStatisticalName() + ']');
                 task.cancel(true);
             }
         }

_______________________________________________
Kernel-commits mailing list
[email protected]
http://sesat.no/mailman/listinfo/kernel-commits

Reply via email to