Java – ActiveMQ with persistence in a database

activemqjavaoracle

Are any of you running ActiveMQ with persistence in a database? Even better, in an Oracle database?

We're wanting to replace our current JMQ uses with ActiveMQ. The plan is to have two machines (one hot, one failover) that share an ActiveMQ queue, so that the failover can pick up where the hot machine left off. In testing with file-based persistence, this works great. However, giving both machines access to some fast file space is tricky, and wherever that is becomes a point of failure. Persisting into our Oracle database seems like the ideal way to go, but it's painfully slow in testing. Other things using the Oracle cluster are doing fine.

Is anyone doing this with acceptable performance? If so, was there a trick to tuning it? Did it "just work" for you? If either of those, would you mind sharing some config snippets or something? Even if you're not using Oracle, I'm sure I can translate the configuration as needed.

Edit: Really? This is the only ActiveMQ question on SF?

Edit 2: I'm talking about either of the first two configurations on this page. Specifically the latter ("JDBC Persistence without Journaling"), but experience with the former would be great.

Best Answer

From what I remember, you have to disable the journaling feature to run with database persistence, which cripples performance.

I think you're going to have to stick with a master/slave system, but it doesn't need to have a shared filesystem is that causes a problem for you - the pure master/slave system supported by ActiveMQ is a shared-nothing approach, though it does have it's own limitations.

Related Topic