|Re: BIRT and MongoDB 3.2 [message #1735153 is a reply to message #1731982]
||Wed, 15 June 2016 22:07
| Leonid Ripeynih
Registered: February 2012
I'm currently working with BIRT version 4.5 and MongoDB 3.2 with WiredTiger.
You're right that the build-in driver won't work (you will see empty collection list). The reason is actually a MongoDB driver version (2.10) that BIRT MongoDB data source uses - it's just too old to support WiredTiger. You need at least 2.14 driver version to work with WiredTiger using the 2.x driver branch. The java driver compatibility is documented on this page: https://docs.mongodb.com/manual/reference/method/db.getCollectionNames, where it says
For MongoDB 3.0 deployments using the WiredTiger storage engine, if you run db.getCollectionNames() from a version of the mongo shell before 3.0 or a version of the driver prior to 3.0 compatible version, db.getCollectionNames() will return no data, even if there are existing collections. For more information, see WiredTiger and Driver Version Compatibility.
So, the solution to fix (or rather, to work around) a problem is to monkey-patch a org.eclipse.orbit.mongodb_2.10.1.v20130422-1135 plugin. To do it I
- took it from 'plugins' folder in my Eclipse installation
- unpacked it
- removed e-signatures from manifests
- extracted a new (2.14) driver version inside it
- packed it back to a jar with the same name and dropped it back to plugin folder
- then clean up a plugin cache (remove everything from 'configuration' folder in you Eclipse, except for 'org.eclipse.equinox.simpleconfigurator', 'org.eclipse.update' and 'config' files and folders)
The proper fix would be to upload a newer driver to Eclipse Orbit, and reference an updated version in BIRT MongoDB datasource, I hope BIRT maintainers would find time for this small fix.
Let me know if you have any questions on implementing the solution above.
Hope this helps.
Powered by FUDForum
. Page generated in 0.01692 seconds