在EndecaScriptService阶段出现以下错误,索引失败
cas crawl因为一个非常随机的奇怪的socketTimeout异常而失败。不确定这是否是因为索引的数据集的大小。
INFO: Starting baseline CAS crawl with id 'art-last-mile-crawl'.
Aug 02, 2017 11:18:44 AM com.endeca.soleng.eac.toolkit.script.Script runBeanShellScript
SEVERE: Error starting baseline crawl 'art-last-mile-crawl'.
Occurred while executing line 11 of valid BeanShell script:
[[
8| Dgidx.cleanDirs();
9|
10| // run crawl and archive any changes in dvalId mappings
11| CAS.runBaselineCasCrawl("art-last-mile-crawl");
12| CAS.archiveDvalIdMappingsForCrawlIfChanged("art-last-mile-crawl");
13|
14| // archive logs and run the indexer
]]
Aug 02, 2017 11:18:44 AM com.endeca.soleng.eac.toolkit.Controller execute
SEVERE: Caught an exception while invoking method 'run' on object 'BaselineUpdate'. Releasing locks.
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.endeca.soleng.eac.toolkit.Controller.invokeRequestedMethod(Controller.java:933)
at com.endeca.soleng.eac.toolkit.Controller.execute(Controller.java:271)
at com.endeca.soleng.eac.toolkit.Controller.main(Controller.java:138)
Caused by: com.endeca.soleng.eac.toolkit.exception.AppControlException: Error executing valid BeanShell script.
at com.endeca.soleng.eac.toolkit.script.Script.runBeanShellScript(Script.java:180)
at com.endeca.soleng.eac.toolkit.script.Script.run(Script.java:127)
... 7 more
Caused by: com.endeca.soleng.eac.toolkit.exception.CasCommunicationException: Error starting baseline crawl 'art-last-mile-crawl'.
at com.endeca.eac.toolkit.component.cas.ContentAcquisitionServerComponent.startBaselineCasCrawl(ContentAcquisitionServerComponent.java:451)
at com.endeca.eac.toolkit.component.cas.ContentAcquisitionServerComponent.runBaselineCasCrawl(ContentAcquisitionServerComponent.java:357)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at bsh.Reflect.invokeMethod(Unknown Source)
at bsh.Reflect.invokeObjectMethod(Unknown Source)
at bsh.Name.invokeMethod(Unknown Source)
at bsh.BSHMethodInvocation.eval(Unknown Source)
at bsh.BSHPrimaryExpression.eval(Unknown Source)
at bsh.BSHPrimaryExpression.eval(Unknown Source)
Caused by: java.net.SocketTimeoutException: Read timed out
at org.apache.axis.AxisFault.makeFault(AxisFault.java:101)
at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:154)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
at org.apache.axis.client.Call.invoke(Call.java:2767)
使用ATG 11.2&恩德卡11.2
答案 0 :(得分:2)
来自ATG支持文档:
“httpSocketTimeout”是http超时前两个连续数据包之间的最长不活动时间(以毫秒为单位)。如果该值足够,则可能导致读取超时错误。 默认情况下,“httpSocketTimeout”设置为60秒。增加此值可解决读取超时错误。
要解决此问题,请修改已部署应用中的/<app>/config/script/DataIngest.xml
以添加<property name="httpSocketTimeout" value="(some value)" />
您的文件将如下所示:
<property name="casHost" value="localhost" />
<property name="casPort" value="8500" />
<property name="httpSocketTimeout" value="180000" />
<property name="numPartialsBackups" value="5" />
您将需要尝试httpSocketTimeout
,直到您不再获得超时。在某些时候,您可能需要再次增加它。