我可以调用以下 URL 来找出骆驼路线路段的状态......
http://localhost:8080/gateway047/jolokia/exec/org.apache.camel:context=VCM047,type=routes,name=%22VCM047_store_list_schedule%22/getState()
这将给
{
timestamp: 1425658189,
status: 200,
request: {
operation: "getState()",
mbean: "org.apache.camel:context=VCM047,name="VCM047_store_list_schedule",type=routes",
type: "exec"
},
value: "Started"
}
路由部分定义为...
<route id="VCM047_store_list_schedule">
<!-- Fire every 8 hours -->
<from uri="timer://storeListTimer?fixedRate=true&period=28800000"/>
<transform>
<simple>{{WebStoresToProcess}}</simple>
</transform>
<to uri="direct:splitStores" />
</route>
我希望能够触发此部分进行测试。
因此,如果我可以停止/启动该部分,它可能会跳动它。
这导致我尝试...
http://localhost:8080/gateway047/jolokia/exec/org.apache.camel:context=VCM047,type=routes,name=%22VCM047_store_list_schedule%22/stop()
但这永远不会回来。
任何人都可以提供一些关于如何通过Jolokia停止/开始骆驼部分的建议。
Camel managedBean 上的 stop() 操作是一个 void 操作,因此您不应该期望任何返回值。要了解当前状态是什么,您可以再次获取状态()。
如果您在停止本身时遇到问题(例如它挂起),您可以随时使用直接 JMX 客户端(如 JVisualVM)来更好地支持 JMX 操作。与Jolokia(JMX的HTTP包装器)不同,独立工具可以为您提供更多支持,以发现可用的操作,并消除您可能通过HTTP遇到的某些复杂性。