我开发了一个示例代码来测试保险丝上的主题和持久主题,我遇到了一个问题。
示例代码说明 我的示例代码由3个bundle组成,每个bundle都有自己的camel上下文和它自己的路由,所以我有3个bundle中的3个路由如下:
bundle1 route:从文件系统中使用文件并将其发送到队列
<route id="producer-route">
<from uri="file:D://camel_test"/>
<to uri="activemq:queue:service.queue"/>
</route>
bundle 2 route:使用前一个队列中的消息并将其发送到主题
<route id="router-route">
<from uri="activemq:queue:service.queue"/>
<to uri="activemq:topic:router.topic"/>
</route>
bundle3 route:使用上一主题的消息并将其发送到文件系统
<route id="consumer-route">
<from uri="activemq:topic:router.topic?clientId=consumer&durableSubscriptionName=bar"/>
<to uri="file:D://camel_test2"/>
当我将文件放在第一个文件夹“D:// camel_test”中时,示例代码在95%的情况下成功运行,文件从“D:// camel_test”文件夹中消失并移到第二个文件夹文件夹“D:// camel_test2”
问题说明 •有时候,5%的情况,第二条路径没有使用该文件,并且在检查jconsole上的使用者和队列时,我发现 o队列的注册消费者,如附带的jconsole屏幕截图(2.png)所示。 o队列的入队计数增加,而队列的出队计数为零,如附带的jconsole屏幕截图(1.png)所示。
•在许多情况下会出现此问题,但最重现的情况是在重新启动Fuse ESB后。
•问题没有出现在每次保险丝重启时,多次样品代码在保险丝重启后成功运行没有问题。
重要提示:刷新bundle2和bundle3后,问题始终会消失。
你能告诉我吗?