我已经安装了ManifoldCF
,它们是连接器和postgres。我的ManifoldCF
上有两份工作:
生产中外部SolR的本地文件作业
对本地SolR的JCIFS作业
在这张图片上,你可以看到问题所在。我可以开始工作,他们索引文件,但他们的工作冻结后,许多秒,我不能中止他们的工作,如果它冻结。如果作业冻结,我需要重新启动manifoldCF
以中止和/或重新启动它们。你有解决办法吗?
注:冻结前的时间,不是固定的。文档索引的数量。不相关。
PS2:我没有这个问题的日志
日志文件夹:cat . -name * | grep -R ERROR | grep 2017-04-21
仅返回ManifoldCF接口上的错误图像tiff。
最佳答案
在死锁的情况下,我们创建了单独的restful服务来重新启动代理,重新启动运行ManifoldCF的Tomcat服务器,如果运行zookeeper,也重新启动它。
避免此类死锁的方法:
一。为ManifoldCF提供更多堆空间和ram。
2。调整properties.xml中的工作线程数,并根据提供的Ram/堆调整每个作业/repo/连接器限制。
三。尝试向Solr提供更多堆,并检查其日志是否没有导致任何问题。因为我们面对的大多数问题都是从Solr端而不是ManifoldCF。
四。尝试使用基于多进程zookeeper或基于多进程文件的示例。
5个。使用postgresql/MySQL,而不是默认使用的hsql。
6。使用数据库时,请按照给定的说明正确配置数据库。也经常真空和冗长。
最后,当工作陷入困境时,我们甚至不得不重新启动代理或Tomcat本身。