For resolving the openJMS alpha and JMeter compatibility error I downloaded alpha source and build it locally using maven. Debugging showed the error "Mismatched destination properties" coming from the OpenJMS alpha server is because the class org.exolab.jms.messagemgr.ConsumerManagerImpl.getDestination checks the incoming topic type to be persistent. if (existing.getPersistent() != destination.getPersistent()) { throw exception } Now these existing and incoming topics(existing and destination) are the objects of JMSTopic whose super class JmsDestination has the member variable _persistent defaulted to false. 1.) I changed this to true and recompiled and plugged the openjms-0.7.7-alpha-3.jar into setup. JMeter tests were able to publish and subscribe the messages but after publishing nearly 800 messages the OpenJMS stops responding. No error is in the JMeter or JMS logs. 2.) Just to be sure that I have not broken any logical flow, I reverted the above change and put the call for setting the Topic to persistent (topic.setPersistent(true)) in the consumer subscription request only (RemoteServerSession.createDurableConsumer()).This also had the same fate after nearly 1000 messages published and subscribed. 3.) Also just commenting the check for the persistent in the original exception location had the same results.
-----Original Message----- From: Adrian Co [mailto:[EMAIL PROTECTED] Sent: Tuesday, December 05, 2006 10:44 PM To: activemq-users@geronimo.apache.org Subject: Re: OpenJMS Alpha and Active MQ jmeter tests Can you file a jira for this? I wasn't aware of a restriction to use JNDI to lookup topics... Hemant Gaur wrote: > Hi, > I am trying to run the jmeter performance tests on the OpenJMS. Though I > am able to get the tests running and results for release version there > is an exception thrown in the duable/persistant subscriber for the > OpenJMS alpha. > Mismatched destination properties for destination with > name=TOOL.DEFAULT.TOPIC0 > at > org.exolab.jms.messagemgr.ConsumerManagerImpl.getDestination(ConsumerMan > agerImpl.java:772) > at > org.exolab.jms.messagemgr.ConsumerManagerImpl.createInactiveDurableConsu > mer(ConsumerManagerImpl.java:571) > at > org.exolab.jms.messagemgr.ConsumerManagerImpl.createDurableConsumer(Cons > umerManagerImpl.java:345) > at > org.exolab.jms.server.ServerSessionImpl.createDurableConsumer(ServerSess > ionImpl.java:343) > at > org.exolab.jms.server.net.RemoteServerSession.createDurableConsumer(Remo > teServerSession.java:245) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav > a:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor > Impl.java:25) > at java.lang.reflect.Method.invoke(Method.java:585) > at > org.exolab.jms.net.orb.DefaultORB$Handler.invoke(DefaultORB.java:553) > at org.exolab.jms.net.orb.DefaultORB$1.run(DefaultORB.java:511) > at > EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(Unknown > Source) > at java.lang.Thread.run(Thread.java:595) > > > ON searching i found the explaination for this (By Tim Anderson): > ======================================================== > The topic you are using doesn't have the same properties as > a destination with the same name, being managed by the server. > This will typically happen if you have used the > TopicSession.createTopic()method giving a name for a topic that is > persistent on the server. For persistent topics, you should look them up > using JNDI. > -Tim > ========================================================== > > As I dont build the JMeter or OpenJMS locally and hence have no control > over the source. I have this topic populated using the OpenJMS config > file using > > <AdministeredDestinations> > <AdministeredTopic name="TOOL.DEFAULT.TOPIC0"/> > </AdministeredDestinations> > > Can there be any settings which makes me work this with the alpha > version. Things are already working with the same test case using the > OpenJMS release version. > > > Relevant code from the openJMS ConsumerManagerImpl.getDestination() > ------------------------------------------------------------ > if(!destination.getClass().getName().equals(existing.getClass().getName( > ))) > throw new InvalidDestinationException("Mismatched > destination properties for destination with name=" + name); > if(existing.getPersistent() != destination.getPersistent()) > throw new InvalidDestinationException("Mismatched > destination properties for destination with name=" + name); > > ------------------------------------------------------------ > > Thanks, > Hemant Gaur > >