我在使用solr + jetty工作时遇到了麻烦。我正在关注所有
来自 - http://wiki.apache.org/solr/SolrJetty的来信的指示。它的效果很好。但是当我多次重新启动jetty时,在3/4这样的重启之后它开始挂起。管理员页面无法加载,我的应用无法获得与solr的连接。我还创建了一个工作文件夹 - /opt/solr/work
。我还将tmpdir
设置为/etc/default/jetty
中的新路径。我可以确认tmpdir
设置为来自管理仪表板的新路径,位于args下。因此,操作系统清除tmp
文件主要不是问题。
我可能会缺少什么?我应该更喜欢看我的代码,看看我是否 我没有正确承诺?
我的配置 - Solr 4.0.0和来自示例的码头。 Ubuntu 12.04,Open JDK 7。
修改
我在Ubuntu 12.04计算机上运行与Solr示例捆绑的Jetty 8。当我使用start.jar并且服务器没有正确启动时,关闭jetty会抛出ThreadPoolException - 无法停止线程。
这是堆栈跟踪的转储:
2012-12-27 23:00:15.084:WARN:oejut.QueuedThreadPool:1 threads could not be stopped
2012-12-27 23:00:15.084:INFO:oejut.QueuedThreadPool:Couldn't stop Thread[qtp766488133-16,5,main]
2012-12-27 23:00:15.085:INFO:oejut.QueuedThreadPool: at sun.misc.Unsafe.park(Native Method)
2012-12-27 23:00:15.085:INFO:oejut.QueuedThreadPool: at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226)
2012-12-27 23:00:15.085:INFO:oejut.QueuedThreadPool: at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2081)
2012-12-27 23:00:15.085:INFO:oejut.QueuedThreadPool: at java.util.concurrent.ThreadPoolExecutor.awaitTermination(ThreadPoolExecutor.java:1425)
2012-12-27 23:00:15.086:INFO:oejut.QueuedThreadPool: at java.util.concurrent.Executors$DelegatedExecutorService.awaitTermination(Executors.java:636)
2012-12-27 23:00:15.086:INFO:oejut.QueuedThreadPool: at org.apache.solr.core.SolrCore.close(SolrCore.java:835)
2012-12-27 23:00:15.086:INFO:oejut.QueuedThreadPool: at org.apache.solr.handler.admin.CoreAdminHandler.getCoreStatus(CoreAdminHandler.java:865)
答案 0 :(得分:0)
由于Exception没有指出任何有趣的东西,我建议当它挂起时,你现在采取整个服务器的线程转储并分析阻止正确启动的内容。这些可能需要一些试验和错误来解决什么是什么,但应该让你了解什么是持有的东西。请注意,在线程转储中以qtp开头的线程很少是问题,它们用于处理请求,因此虽然可能存在许多线程,但这并不表示它们是一个问题。常见问题是诸如汇集资源上的“等待”的数据库池等事情。
答案 1 :(得分:0)
似乎问题在于solrconfig.xml
。
如果我从/browse
移除solrconfig
请求处理程序,问题就会消失。所以不是solr或jetty问题,但很可能与它的配置有关。