Multiple persistence strategies in jbossMQ
bortx Mar 16, 2007 6:00 AMHi,
I'm trying to configure different persistence strategies for my JMS queues and topics in jboss 4.0.5. What I need to do is
configure null persistance for the logging topic, and database persistance for the application queue. I hace seen this post
in jboss forum
http://www.jboss.org/index.html?module=bb&t=47828&op=viewtopic
and performed all the steps it says, but haven't made it to work.
These are the steps I have done:
1) Set up null-persistence-service.xml in deploy/jms. Change all object names so that they don't collide with the jdbc
persistence manager. That is, NullDestinationManager, NullMessageCache, and NullPersistenceManager. In this step I haven't
specified a CacheStore object, because it is not specified in null persistence configuration.
<mbean code="org.jboss.mq.server.jmx.DestinationManager" name="jboss.mq:service=NullDestinationManager"> <depends optional-attribute-name="MessageCache">jboss.mq:service=NullMessageCache</depends> <depends optional-attribute-name="PersistenceManager">jboss.mq:service=NullPersistenceManager</depends> <depends optional-attribute-name="StateManager">jboss.mq:service=StateManager</depends> </mbean> <mbean code="org.jboss.mq.server.MessageCache" name="jboss.mq:service=NullMessageCache"> <attribute name="HighMemoryMark">50</attribute> <attribute name="MaxMemoryMark">60</attribute> <attribute name="CacheStore">jboss.mq:service=NullPersistenceManager</attribute> </mbean> <mbean code="org.jboss.mq.pm.none.PersistenceManager" name="jboss.mq:service=NullPersistenceManager"> </mbean>
2) Create a 2nd invoker (NullInvoker) in jbossmq-service.xml that is a copy of the Invoker (with local versions of all
configured interceptors.) NullInvoker uses NullDestinationManager.
<!-- Null Invoker --> <mbean code="org.jboss.mq.server.jmx.Invoker" name="jboss.mq:service=NullInvoker"> <depends optional-attribute-name="NextInterceptor">jboss.mq:service=NullTracingInterceptor</depends> <depends>jboss:service=Naming</depends> </mbean> <mbean code="org.jboss.mq.server.jmx.InterceptorLoader" name="jboss.mq:service=NullTracingInterceptor"> <attribute name="InterceptorClass">org.jboss.mq.server.TracingInterceptor</attribute> <depends optional-attribute-name="NextInterceptor">jboss.mq:service=NullSecurityManager</depends> </mbean> <mbean code="org.jboss.mq.security.SecurityManager" name="jboss.mq:service=NullSecurityManager"> <attribute name="DefaultSecurityConfig"> <security> <role name="guest" read="true" write="true" create="true"/> </security> </attribute> <attribute name="SecurityDomain">java:/jaas/jbossmq</attribute> <depends optional-attribute-name="NextInterceptor">jboss.mq:service=NullDestinationManager</depends> </mbean>
3) Point jvm-il-service.xml at NullInvoker instead of Invoker.
<mbean code="org.jboss.mq.il.jvm.JVMServerILService" name="jboss.mq:service=InvocationLayer,type=JVM"> <depends optional-attribute-name="Invoker">jboss.mq:service=NullInvoker</depends> <attribute name="ConnectionFactoryJNDIRef">java:/ConnectionFactory</attribute> <attribute name="XAConnectionFactoryJNDIRef">java:/XAConnectionFactory</attribute> <attribute name="PingPeriod">0</attribute> </mbean>
4) Modify some of my local destinations to point at NullDestinationManager instead of DestinationManager.
<mbean code="org.jboss.mq.server.jmx.Topic" name="jboss.mq.destination:service=Topic,name=LogginTopic"> <depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends> <depends optional-attribute-name="SecurityManager">jboss.mq:service=SecurityManager</depends> <attribute name="JNDIName">topic/SomCDRLog</attribute> </mbean> <mbean code="org.jboss.mq.server.jmx.Queue" name="jboss.mq.destination:service=Queue,name=ApplicationQueue"> <depends optional-attribute-name="DestinationManager">jboss.mq:service=NullDestinationManager</depends> <!-- <depends optional-attribute-name="SecurityManager">jboss.mq:service=NullSecurityManager</depends> --> <attribute name="JNDIName">queue/SomExecutableQueue </attribute> </mbean>
Then, I'm getting errors starting jboss that say
javax.jms.InvalidDestinationException: The destination TOPIC.LogginTopic does not exist !
I don't know what's going wrong, any help you can give me is appreciated.
Thank you!