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