Hi, You can find more information about the change in this JIRA[1] [1]https://issues.apache.org/jira/browse/CAMEL-6000
-- Willem Jiang Red Hat, Inc. Web: http://www.redhat.com Blog: http://willemjiang.blogspot.com(http://willemjiang.blogspot.com/) (English) http://jnn.iteye.com(http://jnn.javaeye.com/) (Chinese) Twitter: willemjiang Weibo: 姜宁willem On January 29, 2014 at 9:31:53 AM, mads64738 (ma...@yakatak.com) wrote: > > Hello, > > Over the last 15 months, we have been successfully operating > one of our > platforms using Camel 2.9.1/2.10.1. Recently, we have upgraded > each of our > processes to use Camel 2.12.2, and in the main, this has been a > very > straightforward process. > > Unfortunately, we have observed some unexpected behaviour > within one of our > processes, on two routes which interact with MongoDB, when using > the > "dynamicity=true" flag - our indexes are being dropped! > > Here is an example of what we're seeing - our routes are externally > configured using a properties file: > > route.database.contentcollection.findall={{database.root}}&collection=collection&operation=findAll&dynamicity=true > > route.database.contentcollection.update={{database.root}}&collection=collection&operation=update&dynamicity=true > > > To note, "collection" does not exist, it is replaced within our > route with a > computed collection (code sample): > > bean( contentLink, ContentLink.GET_CONTENT_COLLECTION_NAME > ). > setHeader( "CamelMongoDbCollection", body() ). > bean( contentLink, ContentLink.CREATE_OTHER_DOCUMENT_QUERY > ). > to( "{{route.database.contentcollection.findall}}" ). > > Within the MongoDB logs, we are seeing this: > > Tue Jan 28 22:22:35 [conn42] query content.feedcontent query: > { _id: > ObjectId('5217d372300420b0c1218750') } ntoreturn:1 idhack:1 > reslen:4668 0ms > Tue Jan 28 22:22:35 [conn42] run command content.$cmd { deleteIndexes: > "matchinfo", index: "*" } > Tue Jan 28 22:22:35 [conn42] CMD: dropIndexes content.matchinfo > Tue Jan 28 22:22:35 [conn42] command content.$cmd command: > { deleteIndexes: > "matchinfo", index: "*" } ntoreturn:1 reslen:106 0ms > Tue Jan 28 22:22:35 [conn42] query content.matchinfo query: > { ... query is > here... } reslen:20 80ms > > "matchinfo" is computed by the bean. > > If I set the route to use "collection=matchinfo" directly, without > any > "dynamicity", the database query behaves as intended, as per > this example: > > Tue Jan 28 22:23:29 [conn47] query content.feedcontent query: > { _id: > ObjectId('5217d372300420b0c1218750') } ntoreturn:1 idhack:1 > reslen:4668 0ms > Tue Jan 28 22:23:30 [conn47] query content.matchinfo query: > { ... query is > here... } reslen:20 88ms > > > Using Camel 2.9.1/2.10.1, we do not experience this problem. > Using the > grepcode website and comparing "MongoDbEndpoint.java" code > with a pre-2.12.x > version, I can see there is new code within the "initializeConnection()" > which calls "ensureIndex". This appears to be controlled via > a parameter > "collectionIndex". > > 'ensureIndex' issues a command to drop the index, irrespective > of whether > there are subsequent parameters set up an index. > > I've attempted to add "&collectionIndex=" to set this to an 'empty' > value, > but this does not appear to override the 'ensureIndex' call. > > Has anyone else experienced this behaviour? Are there any additional > parameters we should set on the routes with dynamicity to stop > this > behaviour (or revert to pre 2.12.x behaviour)? > > Any thoughts or assistance would be greatly appreciated. > > Best regards, Madhu. > > > > -- > View this message in context: > http://camel.465427.n5.nabble.com/Camel-2-12-MongoDB-pre-existing-indexes-being-dropped-when-using-dynamicity-tp5746575.html > > Sent from the Camel - Users mailing list archive at Nabble.com. >