9 Replies Latest reply on Mar 9, 2004 4:34 PM by adrian.brock

    Where are jms messages persisted to?

    twgerber

      I have worked with Weblogic in the past and in their configuration you can use either file system or database persistence for durable queues/topics.

      I know I can set the durable attribute for my MDB's.

      My question is - where is the repository and how do I configure it? From the documentation its not real obvious to me.

      Can I choose file vs. database persistence?

      Can I configure these repositories somehow/where in JBoss?

      Also on a message rollback - is there a way to set a delay before the message will actually be redelivered to the MDB?

      Thanks

        • 1. Re: Where are jms messages persisted to?

          Yes JBoss supports both file and jbdc persistence.

          The default hsqldb in deploy/jms (not recommended).
          You will find replacements in docs/examples/jms.

          The file persistence is not recommended either. It is quite an old implementation
          and does no error checking like check sums.

          Regards,
          Adrian

          • 2. Re: Where are jms messages persisted to?
            duslow

            I keep seeing posts like the one above that say that using Hypersonic for JMS JDBC persistence is not recommended. While I probably wouldn't argue with that point, I do not understand then why it is still, after all these years, included as a default in JBoss then.

            Certainly there are other embeddable databases (like McKoi) that could be bundled as default in place of Hypersonic and would perhaps provide the features and robustness to be recommended for use especially for new users.

            I know the natural reaction to posts like this are to say "you can use whatever database you want" and yes that would be true, and I do. However, it seems that if you include a product in the default setup, you are indirectly, or perhaps even directly sanctioning its use.

            The bottom line is that if is is not recommended to use, then it should not be the default database in JBoss. Or at the very minimum, have a bullet point in the FAQ of this forum that states that Hypersonic should not be used and maybe even some points as to why that is the case.

            • 3. Re: Where are jms messages persisted to?

              I've seen Mckoi mentioned before, but nobody has taken the time to write an MBean
              that embeds it. Which suggests to me that it isn't worth the effort?
              What license it?
              Care to spend the time?

              HSQLDB is fine for testing/demos, but it is little better than MS Access,
              e.g. no transaction isloation, and it has some very annoying bugs like
              thread leaks and instablity under load.
              It is fine to get you started, but all I'm saying is don't use it in production.

              Regards,
              Adrian

              • 4. Re: Where are jms messages persisted to?
                duslow

                For more info: http://www.mckoi.com

                McKoi's license is GPL.

                I don't know if it is worth the effort or not. McKoi does have transaction isolation but does not have XA support (at least any that I could find). I am currently using McKoi as an embedded test database via a -ds.xml file, but not for JMS JDBC persistence. The URL I use to run McKoi in VM is ..

                <connection-url>jdbc:mckoi:local://../server/default/data/mckoi/db.conf?create_or_boot=true</connection-url>

                This tells McKoi to start itself on first access, so I presume it would be fairly trivial to wrap it in an MBean and use it in place of Hypersonic.

                I only threw McKoi out there as a possibility simply because even as a test database, it at least gives you transaction isolation that you don't get in Hypersonic and it is embeddable. Whether or not it's suitable for production use as well, I wouldn't hazard a guess. It has certainly been fine in a test environment though.

                McKoi is also extremely Java friendly as well in terms of storing serialized Java objects into the database without the normal blob/clob hoop jumping one would normally have to do. So, it seems to be a perfect candidate for JMS persistence as well.

                • 5. Re: Where are jms messages persisted to?

                  We can't distribute GPL software, JBoss is LGPL
                  That doesn't stop you downloading it and using it.

                  Regards,
                  Adrian

                  • 6. Re: Where are jms messages persisted to?
                    duslow

                    .. and obviously I have downloaded it and used it. :)

                    I noticed that Hypersonic isn't LGPL either. But that's a different topic for a different thread.


                    • 7. Re: Where are jms messages persisted to?

                      Correct, is has a BSD style license.

                      Regards,
                      Adrian

                      • 8. Re: Where are jms messages persisted to?
                        twgerber

                        So if File and Hypersonic are not recommended then what is recommended?

                        What are people really using in production?

                        Thx

                        • 9. Re: Where are jms messages persisted to?

                           

                          "adrian@jboss.org" wrote:
                          You will find replacements in docs/examples/jms.


                          Regards,
                          Adrian