|
From: Hemant G. <hem...@re...> - 2006-12-13 11:48:41
|
I have been able to get this fixed in the Jmeter.=0AActually the calls made=
for =0Aconnection.setClientID(idGenerator.generateId());//not supported by=
OpenJMS=0Aare removed from the OpenJMS code path in the org.activemq.sampl=
er.Consumer=0AAnd added the UniqueID to the client name while creating the =
subscription.=0A<<consumer =3D ((TopicSession)session).createDurableSubscri=
ber(topic, getClass().getName());=0A>>consumer =3D ((TopicSession)session).=
createDurableSubscriber(topic, getClass().getName()+idGenerator.generateId(=
));=0A=0AEnsure that the consumer sampler is the first Member of the test T=
hreadGroup and the tests run fine.=0A=0AHowever on stressting the OpenJMS w=
ith more than one (2 Publishers, 2Subscribers, 2 topics, persistent, Durabl=
e, tcp) subscribers/Publishers there are SqlServer deadlock exceptions prin=
ted on the OpenJMS console.=0AOpenJMS selects the victim and reruns the tra=
nsactions but the consumers are badly affected from this and the messages t=
hroughput is drastacally decresed to 2-3 messages/Sec.=0A=0A17:16:37.440 ER=
ROR [Scheduler-Worker-6] - Error in SentMessageCache.process=0Aorg.exolab.j=
ms.persistence.PersistenceException:=0Ajava.sql.SQLException: [Microsoft][S=
QLServer 2000 Driver for JDBC][SQLServer]Tra=0Ansaction (Process ID 54) was=
deadlocked on {lock} resources with another process=0A and has been chosen=
as the deadlock victim. Rerun the transaction.=0A at com.microsoft.=
jdbc.base.BaseExceptions.createException(Unknown Source=0A)=0A at co=
m.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)=0A =
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken(Unknown=
=0A Source)=0A at com.microsoft.jdbc.sqlserver.tds.TDSRequest.proces=
sReplyToken(Unknown=0A Source)=0A at com.microsoft.jdbc.sqlserver.td=
s.TDSRPCRequest.processReplyToken(Unkn=0Aown Source)=0A at com.micro=
soft.jdbc.sqlserver.tds.TDSRequest.processReply(Unknown Sour=0Ace)=0A =
at com.microsoft.jdbc.sqlserver.tds.TDSCursorRequest.openCursor(Unknown=
=0ASource)=0A at com.microsoft.jdbc.sqlserver.SQLServerImplStatement=
.execute(Unknown S=0Aource)=0A at com.microsoft.jdbc.base.BaseStatem=
ent.commonExecute(Unknown Source)=0A at com.microsoft.jdbc.base.Base=
Statement.executeQueryInternal(Unknown So=0Aurce)=0A at com.microsof=
t.jdbc.base.BasePreparedStatement.executeQuery(Unknown So=0Aurce)=0A =
at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(Dele=
=0AgatingPreparedStatement.java:205)=0A at org.apache.commons.dbcp.D=
elegatingPreparedStatement.executeQuery(Dele=0AgatingPreparedStatement.java=
:205)=0A at org.exolab.jms.persistence.MessageHandles.removeMessageH=
andle(Message=0AHandles.java:352)=0A at org.exolab.jms.persistence.R=
DBMSAdapter.removeMessageHandle(RDBMSAdap=0Ater.java:495)=0A at org.=
exolab.jms.messagemgr.MessageHandleFactory.destroyPersistentHandl=0Ae(Messa=
geHandleFactory.java:361)=0A at org.exolab.jms.server.SentMessageCac=
he.process(SentMessageCache.java:=0A146)=0A at org.exolab.jms.server=
.JmsServerSession.onMessage(JmsServerSession.jav=0Aa:949)=0A at org.=
exolab.jms.messagemgr.TopicConsumerEndpoint.deliverMessages(Topic=0AConsume=
rEndpoint.java:193)=0A at org.exolab.jms.messagemgr.ConsumerEndpoint=
.run(ConsumerEndpoint.java:=0A425)=0A at org.exolab.core.threadPool.=
ThreadPoolWorker.runIt(ThreadPoolWorker.ja=0Ava:191)=0A at org.exola=
b.core.threadPool.ThreadPoolWorker.runWork(ThreadPoolWorker.=0Ajava:178)=0A=
at org.exolab.core.threadPool.ThreadPoolWorker.access$000(ThreadPoo=
lWork=0Aer.java:67)=0A at org.exolab.core.threadPool.ThreadPoolWorke=
r$1.run(ThreadPoolWorker.ja=0Ava:122)=0A at java.lang.Thread.run(Thr=
ead.java:595)=0A=0A=0ATim, Any thoughts on that. Is this the known issue wi=
th the 7.6.1 release version. What else can I try ?=0A=0AThanks,=0AHemant =
=0A=0A=0A=0AOn Wed, 13 Dec 2006 Hemant Gaur wrote :=0A>Looking into OpenJMS=
code it seems that this is not supported.=0A>The setClinetID call I can se=
e in the JMeter ConsumerSampler but I this is not supported in OpenJMS Rele=
ase version.=0A>So the consumer name(classs Name) is taken which conflicts.=
=0A>1.) connection.setClientID(idGenerator.generateId());=0A>The set Client=
ID is not supported in the openJMS.=0A>=0A>2.) consumer =3D ((TopicSession)=
session).createDurableSubscriber(topic, getClass().getName());=0A>=0A>I thi=
nk I need to do some changes in the JMEter to get this running.=0A>Will kee=
p you updated once I get this working.=0A>=0A>Regards,=0A>Hemant Gaur=0A>=
=0A>On Tue, 12 Dec 2006 Tim Anderson wrote :=0A> >Hemant Gaur wrote:=0A> >>=
=0A> >>Hi,=0A> >>For the JMeter tests on the OpenJMS release version , I tr=
ied to put the configuration for 5 topics, 5 Publishers , 5 subscribers.=0A=
> >>=0A> >>There was the error in the jmeter log as the OpenJMS did not all=
owed creating the consumer for the same name.=0A> >>=0A> >>2006/12/12 15:49=
:32 ERROR - org.activemq.sampler.Consumer: Error running consumer javax.jm=
s.JMSException: Failed to unsubscribe subscriber org.activemq.sampler.Consu=
mer since is still active=0A> >>at org.exolab.jms.server.JmsServerSession.u=
nsubscribe(JmsServerSession.java:881)=0A> >>at org.exolab.jms.server.JmsSer=
verSession.createSubscriber(JmsServerSession.java:758)=0A> >>at org.exolab.=
jms.server.mipc.IpcJmsSessionConnection.createSubscriber(IpcJmsSessionConne=
ction.java:588)=0A> >>at org.exolab.jms.server.mipc.IpcJmsSessionConnection=
.notify(IpcJmsSessionConnection.java:165)=0A> >>at org.exolab.jms.server.mi=
pc.IpcJmsReceiver.notify(IpcJmsReceiver.java:100)=0A> >>at org.exolab.jms.s=
erver.mipc.IpcServerChannel.run(IpcServerChannel.java:161)=0A> >>=0A> >>=0A=
> >>Are there anyworkarounds/configuration settings for this to be resolved=
. Publishers are working fine for the 5 topics.=0A> >>=0A> >In OpenJMS, sub=
scription names must be unique.You'll need to configure JMeter to use a dif=
ferent subscription name=0A> >per durable subscriber.=0A> >=0A> >-Tim=0A>--=
-----------------------------------------------------------------------=0A>=
Take Surveys. Earn Cash. Influence the Future of IT=0A>Join SourceForge.net=
's Techsay panel and you'll get the chance to share your=0A>opinions on IT =
& business topics through brief surveys - and earn cash=0A>http://www.techs=
ay.com/default.php?page=3Djoin.php&p=3Dsourceforge&CID=3DDEVDEV=0A>________=
_______________________________________=0A>openjms-user mailing list=0A>ope=
njm...@li...=0A>https://lists.sourceforge.net/lists/list=
info/openjms-user=0A |