1 2 Previous Next 15 Replies Latest reply on Apr 13, 2002 12:38 AM by hchirino

    Test new backport

      Hi,
      as many of you know there have been a lot of problems with the 2.4 line of JBossMQ, and no one is activelly maintaining that code base. There are also a lot of cool new features in 3.0, such as working restore (;-)), message caching, security, dynamic durable subscriptions to name a few.

      To make it possible to use the 3.0 in the 2.4 JBoss line (the only stable JBoss there is currently) a backport must be done. I am working on such a beast. However, before I start braching, committing and so on I would really like if any one out there could test it on their setup.

      I have therefore done a small binary release of a 3.0 JBossMQ that works on JBoss 2.4.

      It's available at:

      http://www.backsource.org/source/java/jboss/jbossmq-backport-1.2.zip

      You must basically do this:

      copy the mbeans definitions of jbossmq-service.xml and jbossmq-testsuite-service.xml into jboss.jcml (removing the old definitions for JBossMQ - keep the naming stuff and all MDB stuff).

      copy auth.conf into your conf directory (e.g. conf/default).

      copy jbossmq-state.xml into your same conf dir.

      copy jbossmq.jar into lib/ext

      copy jbossmq-client.jar into client.

      You should be ready to go.

      For all of you who a curious. Yes, it is now a quite big task to backport JbossMQ. A lot of stuff in the core JBoss have changed and so have JBossMQ. This packport is however completly automated, and is now driven by a 560 lines perl script ;-)

      Happy messaging.

      //Peter

        • 1. Re: Test new backport
          earlgrey

          hi peter,

          did you branch out the backport yet? I am using the supplied binary in a test (though I cannot get the jdbc persistence working).

          thanks a lot for the work!

          lars

          • 2. Re: Test new backport

            Nope, there should be some more testing.

            //Peter

            • 3. Re: Test new backport
              valenta_jakub

              Hi Peter,
              I have had quite a few problems with the old version of JBossMQ, so I am really happy to see the backport happening. I am also going to test if it solves problems I had.

              And I'll let you know if something does not work.

              However, I would need to get some spec. telling how to configure the new JBossMQ, the files like jbossmq-state.xml are different, and I do not understand the meaning of some elements.

              How, exactly define the role? How is the role used?
              How to create the durable subscription dynamically, etc.

              Is there any good explanation of the new JBossMQ

              br,

              Jakub

              • 4. Re: Test new backport

                Hi, try start by reading:
                http://sourceforge.net/tracker/index.php?func=detail&aid=526622&group_id=22866&atid=381174

                And get back again if things don't work out.

                //Peter

                • 5. Re: Test new backport
                  valenta_jakub

                  Hi Peter,
                  two things,

                  1) the structure of the oswego-concurrent.jar is somehow strange it is
                  EDU.oswego.cs.dl.util.concurrent.EDU.oswego.cs.util.concurrent !!

                  It took me some time to realize that what i need to put to my class path was not just the oswego-concurrent.jar file
                  but oswego-concurrent.jar/EDU/.../.../../concurrent

                  otherwise I was getting Exception.

                  Is it possible to recompile into some more sensible structure?

                  2) Now I am getting other exception ;-)

                  JMSSecurityException: User: InternalCS01 is NOT authenticated

                  I set the user in the jbossmq-state.xml:

                  ...

                  InternalCS01

                  InternalCS01

                  InternalCS01


                  ...

                  ServerManager

                  InternalCS01

                  ...



                  in jboss.jcml i put the following



                  jboss.mq:service=Server
                  jboss.mq:service=SecurityManager








                  Where is the problem? Do I need to use the JAAS to authorize? How to do it I have never used JAAS before :-(.

                  btw: what is the create="true" attribute?

                  Appreciated,

                  Jakub

                  • 6. Re: Test new backport

                    1. I have no idea whats up with oswego. Never had any problems with that.

                    2. All looks fine. Have you edited the auth.conf and included the new jbossmq security domain. The JAAS part does pretty bad logging, so failure in that part is often only possible to get at when trace/debug has been turned on.

                    // Security domain for JBossMQ
                    jbossmq {
                    //
                    // Security domain for JBossMQ. Other Login modules may be used.
                    org.jboss.security.auth.spi.ProxyLoginModule required
                    moduleName=org.jboss.mq.sm.file.DynamicLoginModule
                    unauthenticatedIdentity="guest"
                    sm.objectname="jboss.mq:service=StateManager"
                    ;
                    };

                    3. create is the ability do dynamically create a durble subscription. I.e a user that belongs to a role wich has create right my set its own clientId right after the connection is created and then create a durable subscription.

                    //Peter

                    • 7. Re: Test new backport
                      valenta_jakub

                      Thanks once more,
                      now it works just fine.

                      The problem was that the auth.conf I got in the jbossmq-backport-1.2.zip file was incorrect (see below)


                      // Security domain for JBossMQ
                      jbossmq {
                      //
                      // Security domain for JBossMQ. Other Login modules may be used.
                      org.jboss.mq.sm.file.DynamicLoginModule required
                      unauthenticatedIdentity="guest"
                      sm.objectname="jboss.mq:service=StateManager"
                      ;
                      };

                      br,

                      Jakub

                      • 8. Re: Test new backport

                        Hm, I tough I updated that. Will have to look into it.

                        Great that it works.

                        //Peter

                        • 9. Re: Test new backport
                          earlgrey


                          I am using the backport in order to get the
                          jdbc persistence working.

                          File persistence works, however this is not what we need -
                          I cannot get the jdbc PersistenceManager to accept the configured datasource:


                          [INFO,PersistenceManager] Starting
                          [ERROR,PersistenceManager] Stopped
                          javax.management.AttributeNotFoundException: JndiName not accessible
                          at com.sun.management.jmx.MBeanServerImpl.getAttribute(MBeanServerImpl.java:1197)
                          at com.sun.management.jmx.MBeanServerImpl.getAttribute(MBeanServerImpl.java:1151)
                          at org.jboss.mq.pm.jdbc.PersistenceManager.startService(PersistenceManager.java:138)
                          at org.jboss.util.ServiceMBeanSupport.start(ServiceMBeanSupport.java:103)
                          at java.lang.reflect.Method.invoke(Native Method)
                          at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1628)
                          at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1523)
                          at org.jboss.configuration.ConfigurationService$ServiceProxy.invoke(ConfigurationService.java:967)
                          at $Proxy0.start(Unknown Source)


                          Have you backported with some updated jmx-stuff that has not made it into 2.4.4?


                          Lars

                          • 10. Re: Test new backport

                            Yea, the backports tries to fix all JMX stuff automtically, and it is fairly possible that the jdbc stuff does not work, since I never have used it personally.

                            Unfortunately you are on your own here...

                            //Peter

                            • 11. Re: Test new backport
                              earlgrey

                              no prob - that´s why i was asking for the branch (i.e. source).


                              lars

                              • 12. Re: Test new backport

                                The way to go right now is to have a linux box, download the backpatcher perl skript, follow the instructions and you will have yourself a fresh copy of the backport.

                                //Peter

                                • 13. Re: Test new backport
                                  valenta_jakub

                                  Hi,
                                  I made it running but again I encounter similar problem as before:

                                  I use durable subscription (I am not running as MDB) and I tried both AA and CA modes.

                                  The problem is that if the application goes down during the processing of the message (i.e. before the onMessage() returns, or message.Acknowledge() is called). The message is not redelivered unless I restart whole JBoss !!!

                                  Any way how to solve this

                                  br,

                                  Jakub

                                  • 14. Re: Test new backport
                                    hchirino

                                    The latest CVS sources have a new JDBC persistence manager that I put to gether. It's based on the old one but the SQL used is much more configurable and it leverages the database's relational nature to lower memory usage.

                                    It's also the only persistence manager that allows you to redeploy queues. The other persistence managers will not be able to restart a queue once it has been destroyed.

                                    Regards,
                                    Hiram

                                    1 2 Previous Next