I have been able to get this fixed in the Jmeter.
Actually the calls made for
connection.setClientID(idGenerator.generateId());//not supported by
OpenJMS
are removed from the OpenJMS code path in the
org.activemq.sampler.Consumer
And added the UniqueID to the client name while creating the
subscription.
<<consumer = ((TopicSession)session).createDurableSubscriber(topic,
getClass().getName());
>>consumer = ((TopicSession)session).createDurableSubscriber(topic,
getClass().getName()+idGenerator.generateId());
Ensure that the consumer sampler is the first Member of the test
ThreadGroup and the tests run fine.
However on stressting the OpenJMS with more than one
subscribers/Publishers there are SqlServer deadlock exceptions printed
on the OpenJMS console.
17:04:03.376 ERROR [Scheduler-Worker-3] - Error in
SentMessageCache.process
org.exolab.jms.persistence.PersistenceException:
ava.sql.SQLException: [Microsoft][SQLServer 2000 Driver for
JDBC][SQLServer]Tra
saction (Process ID 54) was deadlocked on {lock} resources with
another process
and has been chosen as the deadlock victim. Rerun the
transaction.
at
com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
OpenJMS selects the victim and reruns the transactions but the consumers
are badly affected from this and the messages throughput is drastacally
decresed to 2-3 messages/Sec.
Any one from the developer community wants to review and check in the
change ?
Regards,
Hemant Gaur
-----Original Message-----
From: Hemant Gaur [mailto:hgaur@interwoven.com]
Sent: Tuesday, December 12, 2006 6:49 PM
To: JMeter Users List
Subject: RE: Jmeter, how to add the consumers?
>From org.activemq.sampler.Consumer
In the subscribe( name) function
1.) connection.setClientID(idGenerator.generateId());
The set ClientID is not supported in the openJMS.
2.) consumer = ((TopicSession)session).createDurableSubscriber(topic,
getClass().getName());
Open JMS does not allows to create the durable subscrioption for the
same client name for the topics which is done in ActiveMQ tests.
http://openjms.sourceforge.net/xref/org/exolab/jms/server/JmsServerSessi
on.html
/***
* Unsubscribe a durable subscription. This will delete the state of
* the durable subscriber maintained by the server. A durable subscriber
* is uniquely identifiable and the same subscriber cannot be associated
* with more than topic.
*
* @param name the name used to uniquely identify
the
* subscription
* @throws JMSException if the subscription cannot be removed
* or any other problem.
Has anyone ever tried using the Jmeter tests with the openJMS for the
mutiple topics and consumers ?
Regards,
Hemant
-----Original Message-----
From: Hemant Gaur [mailto:hgaur@interwoven.com]
Sent: Tuesday, December 12, 2006 4:06 PM
To: JMeter Users List
Subject: Jmeter, how to add the consumers?
Hi,
For the JMeter tests on the OpenJMS release version , I tried to put the
configuration for 5 topics, 5 publishers, 5 consumers, persistent, non-
synchronous.
Basic 1 pub , I consumer, 1 topic configuration is working fine.
There was the error in the jmeter log as the OpenJMS did not allowed
creating the consumer for the same name.
2006/12/12 15:49:32 ERROR - org.activemq.sampler.Consumer: Error running
consumer javax.jms.JMSException: Failed to unsubscribe subscriber
org.activemq.sampler.Consumer since is still active
at
org.exolab.jms.server.JmsServerSession.unsubscribe(JmsServerSession.java
:881)
at
org.exolab.jms.server.JmsServerSession.createSubscriber(JmsServerSession
.java:758)
at
org.exolab.jms.server.mipc.IpcJmsSessionConnection.createSubscriber(IpcJ
msSessionConnection.java:588)
at
org.exolab.jms.server.mipc.IpcJmsSessionConnection.notify(IpcJmsSessionC
onnection.java:165)
at
org.exolab.jms.server.mipc.IpcJmsReceiver.notify(IpcJmsReceiver.java:100
)
at
org.exolab.jms.server.mipc.IpcServerChannel.run(IpcServerChannel.java:16
1)
Are there anyworkarounds/configuration settings for this to be resolved.
Publishers are working fine for the 5 topics.
Though I have added 5 Consumers in the consumer sampler, the DataBase
still shows only one after running the tests in the consumer table.
org.activemq.sampler.Consumer
Also I had to add all the topics manually into the openJMS config to get
things running.
<AdministeredDestinations>
<AdministeredTopic name="TOOL.DEFAULT.TOPIC0"/>
<AdministeredTopic name="TOOL.DEFAULT.TOPIC1"/>
<AdministeredTopic name="TOOL.DEFAULT.TOPIC2"/>
<AdministeredTopic name="TOOL.DEFAULT.TOPIC3"/>
<AdministeredTopic name="TOOL.DEFAULT.TOPIC4"/>
</AdministeredDestinations>
The messages are published to all the five topics.
My queries are :
How to get the five consumers ? Can we put the different names using
some configuration?
How do I verify that they are published from the 5 Publishers?
What does this configuration in general mean , all the five publisher
publishing to five topics and the five consumers subscribing to all of
them ?
Any inputs will be highly appretiated.
Thanking in anticipation.
JMeterLogs
2006/12/12 13:13:18 INFO - jmeter.JMeter: Version 2.1.20050419
2006/12/12 13:13:18 INFO - jmeter.JMeter: java.version=1.6.0-rc
2006/12/12 13:13:18 INFO - jmeter.JMeter: Copyright (c) 1998-2005 The
Apache Software Foundation
2006/12/12 13:13:20 ERROR - jmeter.gui.action.Help: Couldn't load help
file java.io.FileNotFoundException:
C:\ActiveMQ\activemq-jmeter-4.0-SNAPSHOT\printable_docs\usermanual\compo
nent_reference.html (The system cannot find the path specified)
2006/12/12 13:13:20 WARN - jmeter.util.JMeterUtils: ERROR! Resource
string not found: [swiftmq_server]
2006/12/12 13:13:20 WARN - jmeter.util.JMeterUtils: ERROR! Resource
string not found: [form_msg_send_type]
2006/12/12 13:13:20 WARN - jmeter.util.JMeterUtils: ERROR! Resource
string not found: [form_async_send]
2006/12/12 13:13:20 WARN - jmeter.util.JMeterUtils: ERROR! Resource
string not found: [form_non_async_send]
2006/12/12 13:13:20 WARN - jmeter.util.JMeterUtils: ERROR! Resource
string not found: [swiftmq_server]
2006/12/12 13:13:20 WARN - jmeter.util.JMeterUtils: ERROR! Resource
string not found: [form_msg_send_type]
2006/12/12 13:13:20 WARN - jmeter.util.JMeterUtils: ERROR! Resource
string not found: [form_async_send]
2006/12/12 13:13:20 WARN - jmeter.util.JMeterUtils: ERROR! Resource
string not found: [form_non_async_send]
2006/12/12 13:13:20 WARN - jmeter.util.JMeterUtils: ERROR! Resource
string not found: [form_msg_send_type]
2006/12/12 13:13:20 WARN - jmeter.util.JMeterUtils: ERROR! Resource
string not found: [form_async_send]
2006/12/12 13:13:20 WARN - jmeter.util.JMeterUtils: ERROR! Resource
string not found: [form_non_async_send]
2006/12/12 13:13:20 WARN - jmeter.util.JMeterUtils: ERROR! Resource
string not found: [form_msg_send_type]
2006/12/12 13:13:20 WARN - jmeter.util.JMeterUtils: ERROR! Resource
string not found: [form_async_send]
2006/12/12 13:13:20 WARN - jmeter.util.JMeterUtils: ERROR! Resource
string not found: [form_non_async_send]
2006/12/12 13:13:21 WARN - jmeter.testbeans.gui.TestBeanGUI: testing
class: org.apache.jmeter.config.CSVDataSet
2006/12/12 13:13:21 WARN - jmeter.testbeans.gui.TestBeanGUI: testing
class: org.apache.jmeter.protocol.http.sampler.AccessLogSampler
2006/12/12 13:13:21 INFO -
jmeter.protocol.http.sampler.AccessLogSamplerBeanInfo: Entered access
log sampler bean info
2006/12/12 13:13:21 INFO -
jmeter.protocol.http.sampler.AccessLogSamplerBeanInfo: found parsers:
[org.apache.jmeter.protocol.http.util.accesslog.TCLogParser]
2006/12/12 13:13:21 INFO -
jmeter.protocol.http.sampler.AccessLogSamplerBeanInfo: Got to end of
access log samper bean info init
2006/12/12 13:13:21 WARN - jmeter.testbeans.gui.TestBeanGUI: testing
class: org.apache.jmeter.protocol.jdbc.config.DataSourceElement
2006/12/12 13:13:21 WARN - jmeter.testbeans.gui.TestBeanGUI: testing
class: org.apache.jmeter.protocol.jdbc.sampler.JDBCSampler
2006/12/12 13:13:21 WARN - jmeter.testbeans.gui.TestBeanGUI: testing
class: org.apache.jmeter.timers.ConstantThroughputTimer
2006/12/12 13:13:21 WARN - jmeter.testbeans.gui.TestBeanGUI: testing
class: org.apache.jmeter.timers.SyncTimer
2006/12/12 13:13:21 INFO - jmeter.samplers.SampleResult: Note: Sample
TimeStamps are END times
2006/12/12 13:13:21 INFO - jmeter.samplers.SampleResult:
sampleresult.default.encoding is set to ISO-8859-1
2006/12/12 13:13:28 INFO - jmeter.services.FileServer: Setting basedir
to: null
2006/12/12 13:13:32 INFO - jmeter.gui.action.Load: Loading file:
C:\ActiveMQ\activemq-jmeter-4.0-SNAPSHOT\bin\Hemant\ALL555.jmx
2006/12/12 13:13:32 INFO - jmeter.services.FileServer: Setting basedir
to: C:\ActiveMQ\activemq-jmeter-4.0-SNAPSHOT\bin\Hemant\ALL555.jmx
2006/12/12 13:13:32 INFO - jmeter.save.SaveService: Using SaveService
properties file 1.5
2006/12/12 13:13:32 WARN - jmeter.save.SaveService: Could not set up
alias BeanShellSampler java.lang.ClassNotFoundException:
org.apache.jmeter.protocol.java.sampler.BeanShellSampler
2006/12/12 13:13:32 WARN - jmeter.save.SaveService: Could not set up
alias WebServiceSampler java.lang.ClassNotFoundException:
org.apache.jmeter.protocol.http.sampler.WebServiceSampler
2006/12/12 13:13:32 INFO - jmeter.save.SaveService: All converter
versions present and correct
2006/12/12 13:13:32 INFO - org.activemq.sampler.Producer: Protocol
Handler name=SamplerClientImpl
2006/12/12 13:13:32 INFO - org.activemq.sampler.Producer: Status
prefix=
2006/12/12 13:13:32 INFO - org.activemq.sampler.Producer: Status
suffix=
2006/12/12 13:13:32 INFO - org.activemq.sampler.Producer: Status
properties=
2006/12/12 13:13:32 INFO - org.activemq.sampler.SamplerClientImpl:
Using eolByte=0
2006/12/12 13:13:32 INFO - org.activemq.sampler.Consumer: Protocol
Handler name=SamplerClientImpl
2006/12/12 13:13:32 INFO - org.activemq.sampler.Consumer: Status
prefix=
2006/12/12 13:13:32 INFO - org.activemq.sampler.Consumer: Status
suffix=
2006/12/12 13:13:32 INFO - org.activemq.sampler.Consumer: Status
properties=
2006/12/12 13:13:32 INFO - org.activemq.sampler.SamplerClientImpl:
Using eolByte=0
2006/12/12 13:13:32 WARN - jmeter.util.JMeterUtils: ERROR! Resource
string not found: [form_msg_send_type]
2006/12/12 13:13:32 WARN - jmeter.util.JMeterUtils: ERROR! Resource
string not found: [form_async_send]
2006/12/12 13:13:32 WARN - jmeter.util.JMeterUtils: ERROR! Resource
string not found: [form_non_async_send]
2006/12/12 13:13:32 WARN - jmeter.util.JMeterUtils: ERROR! Resource
string not found: [form_msg_send_type]
2006/12/12 13:13:32 WARN - jmeter.util.JMeterUtils: ERROR! Resource
string not found: [form_async_send]
2006/12/12 13:13:32 WARN - jmeter.util.JMeterUtils: ERROR! Resource
string not found: [form_non_async_send]
2006/12/12 13:13:32 INFO - jmeter.services.FileServer: Setting basedir
to: C:\ActiveMQ\activemq-jmeter-4.0-SNAPSHOT\bin\Hemant\ALL555.jmx
2006/12/12 13:13:32 INFO - org.activemq.sampler.SamplerClientImpl:
Using eolByte=0
2006/12/12 13:13:32 INFO - org.activemq.sampler.SamplerClientImpl:
Using eolByte=0
2006/12/12 13:13:57 INFO - org.activemq.sampler.SamplerClientImpl:
Using eolByte=0
2006/12/12 13:13:57 INFO - org.activemq.sampler.SamplerClientImpl:
Using eolByte=0
2006/12/12 13:13:57 INFO - jmeter.engine.StandardJMeterEngine: Running
the test!
2006/12/12 13:13:57 INFO - jmeter.gui.util.JMeterMenuBar:
setRunning(true,local)
2006/12/12 13:13:57 INFO - jmeter.engine.StandardJMeterEngine: Starting
1 threads for group Thread Group. Ramp up = 1.
2006/12/12 13:13:57 INFO - jmeter.engine.StandardJMeterEngine: Test
will stop on error
2006/12/12 13:13:57 WARN - jmeter.threads.JMeterThread:
jmeterthread.startearlier=true (see jmeter.properties)
2006/12/12 13:13:57 INFO - org.activemq.sampler.SamplerClientImpl:
Using eolByte=0
2006/12/12 13:13:57 INFO - org.activemq.sampler.SamplerClientImpl:
Using eolByte=0
2006/12/12 13:13:57 INFO - jmeter.threads.JMeterThread: Thread Thread
Group 1-1 started
2006/12/12 13:13:57 WARN - jmeter.util.JMeterUtils: ERROR! Resource
string not found: [swiftmq_server]
2006/12/12 13:13:57 WARN - jmeter.util.JMeterUtils: ERROR! Resource
string not found: [webspheremq_server]
2006/12/12 13:13:58 ERROR - org.activemq.sampler.Consumer: Error running
consumer javax.jms.JMSException: Failed to unsubscribe subscriber
org.activemq.sampler.Consumer since is still active
at
org.exolab.jms.server.JmsServerSession.unsubscribe(JmsServerSession.java
:881)
at
org.exolab.jms.server.JmsServerSession.createSubscriber(JmsServerSession
.java:758)
at
org.exolab.jms.server.mipc.IpcJmsSessionConnection.createSubscriber(IpcJ
msSessionConnection.java:588)
at
org.exolab.jms.server.mipc.IpcJmsSessionConnection.notify(IpcJmsSessionC
onnection.java:165)
at
org.exolab.jms.server.mipc.IpcJmsReceiver.notify(IpcJmsReceiver.java:100
)
at
org.exolab.jms.server.mipc.IpcServerChannel.run(IpcServerChannel.java:16
1)
2006/12/12 13:13:58 INFO - jmeter.threads.JMeterThread: Thread Thread
Group 1-1 is done
2006/12/12 13:13:58 INFO - jmeter.engine.StandardJMeterEngine: Ending
thread 0
2006/12/12 13:13:58 INFO - jmeter.engine.StandardJMeterEngine: Stopping
test
2006/12/12 13:13:58 INFO - jmeter.gui.util.JMeterMenuBar:
setRunning(false,local)
2006/12/12 13:13:58 INFO - jmeter.engine.StandardJMeterEngine: Test has
ended
===========================
---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org
|