使用带有persistentTailTracking的camel-mongodb组件时有没有人注意到异常?特别是,光标对数据库的持久性并不会发生。它使用persistentId但不是lastValue创建文档。 代码非常简单,问题对我来说是100%可重现的。还使用另一个常规上限集合进行测试。
from("mongodb:mongoBean?database=local&collection=oplog.rs&tailTrackIncreasingField=ts&persistentId=oplogProcessor&persistentTailTracking=true&tailTrackDb=trackers&tailTrackCollection=camelTrackers&tailTrackField=lastValue")
.to("direct:test");
我认为它可能以某种方式与问题CAMEL-9826有关,因为游标线程在关闭时不会停止并且在我杀死java进程之前一直以完全CPU利用率运行。 MongoDB日志显示
2016-04-12T09:37:21.468+1000 I - [conn5] Assertion: 16089:Cannot kill pinned cursor: 19377690051
完全相同的使用相同MongoDB Java驱动程序版本的Camel代码可以与MongoDB 2.6配合使用,但不适用于3.2。
环境:OSX 10.11.4,Camel 2.16.1,Mongo Java Driver 3.2.2,MongoDB 2.6.11 / 3.2.4 / 3.2.0
Camel上下文是从Spring定义的,项目使用mvn run:jetty作为Web应用程序运行。
编辑:在MongoDB Jira上也发现了这个问题,但不确定相关性 https://jira.mongodb.org/browse/SERVER-21710