You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by Tim Bain <tb...@alumni.duke.edu> on 2019/11/08 06:44:47 UTC

Re: MongoDB for ActiveMQ persistence

We understand that. The question is why that's what you want, why the
existing persistent store technologies don't meet your needs (or at least,
why MongoDB is better for your needs than the other options).

The challenge for implementing any new technology for a backing store is
performance. Anyone can implement the interface to allow CRUD operations to
a new technology, but how will it perform under a heavy read/write load?
How will performance be if a large number of messages are stored (e.g. if a
slow consumer is present)? How will performance change after tens of
millions of messages pass through it? Oracle, for example, has a problem
where its indices become imbalanced after large numbers of insert-delete
cycles, which results in degrading performance even if the number of rows
in the table is small. What performance problems does MongoDB have? Do you
know? Does the author of that plugin? And of course, if you hit performance
problems with this third-party plugin, we can try to help you diagnose the
problem, but you should plan to be more hands-on (debugger, profiler, etc.)
than you'd be expected to be id you were using the officially supported
store technologies.

With that said, if you still want to get this working in spite of what I
wrote above, you should 1) make sure the plugin's JAR is actually on the
broker's classpath, and 2) look at the code that loads the persistence
store adapter classes and confirm that it's expected to find the MongoDB
adapter classes in that project. If it looks good from inspection, set a
breakpoint in the code that finds the right adapter class
(org.apache.activemq.broker.BrokerService.createPersistenceAdapter()) and
attach a debugger to the broker and see where things go astray. A quick
look in the code seems like you'd need a subclass of
org.apache.activemq.store.PersistenceAdapterFactory, and I don't see
anything in that MongoDB project that looks like it provides a Mongo flavor
of that factory, but I've not looked at it very closely so I might be
overlooking something. But the debugger should definitely make the problem
clear.

Tim

On Tue, Oct 15, 2019, 3:15 AM xUmaRix <xu...@gmail.com> wrote:

> I would like to persist my data in a mongodb cluster instead of using
> kahadb
> or mysql.
>
>
>
>
> --
> Sent from:
> http://activemq.2283324.n4.nabble.com/ActiveMQ-User-f2341805.html
>