我在Java 8上使用Springboot margins()
,尝试使用1.2.6-RELEASE
端点关闭,但关闭序列在此处被卡住(上次日志条目):
/shutdown
2015-12-09 13:27:56,607 INFO ThreadPoolTaskExecutor - Shutting down ExecutorService 'metricsExecutor'
似乎是一个springboot管理对象,所以我希望在没有参与的情况下隐式处理它的关闭。
metricsExecutor
我是否需要使用关闭挂钩显式关闭此组件?
更多背景信息,我使用Apache Camel和ActiveMQ。要关闭正在运行的进程,我首先从JMX停止我的Camel路由;那部分有效。最后一步使用Springboot的"bean": "metricsExecutor",
"scope": "singleton",
"type": "org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor",
"resource": "class path resource [org/springframework/boot/actuate/autoconfigure/MetricRepositoryAutoConfiguration$MetricsChannelConfiguration.class]",
"dependencies": []
来阻止JVM,以及它被卡住的地方,但我可以根据我的观察重现错误:
如果我使用" pooled"配置ActiveMQ连接,Springboot挂起并且不关闭:
http://../shutdown
将spring.activemq.broker-url=tcp://mqserver:61101
spring.activemq.user=admin
spring.activemq.password=password
spring.activemq.pooled=true
设置为pooling
,现在JVM干净利落地关闭:
false
spring.activemq.pooled=false
答案 0 :(得分:1)
这看起来像Spring Boot中的一个错误。我打开了Enumerable.Aggregate
。
与此同时,您可以通过为连接工厂声明自己的bean并对其进行注释来解决问题,以便在应用程序上下文关闭时停止池:
var reader = new StringReader(Minecraft_Texturepack_Reload.Properties.Resources.Englisch);
Language_Strings.main_form_Text = reader.ReadLine()
Language_Strings.project_menu_item_Text = reader.ReadLine();