[jboss-user] [JBoss jBPM] - Lost messages with 150 concurrent requests for BPEL

meghanai_99 do-not-reply at jboss.com
Fri May 16 20:05:26 EDT 2008


Hello,

Today  I did some preliminary load testing on JBPM-BPEL on my dev machine. I used SoapUI to send 'n' number of concurrent requests. For requests upto 100, everything seemed ok. I have pointed my default DS to sql server database. As a result the internal messages from SoapHandler to StartListener go to my db where I can view them.

For small number after the load test completes, my queue is empty as expected. However when requests near 100 and above, there are some left over messages in the queue. First I got this error -

http://wiki.jboss.org/wiki/WhatDoesTheMessageNoManagedConnectionsAvailableMean

So I increased my connection pool size and also the waiting period for the threads. However even after doing this, I see left over messages in my queue. In my last run, I see 18 'connection timed out' errors from SoapUI out of 150 and 4 messages in the queue.

What do I do to improve this performance? Or I have to assume that this is a limitation? What happens to the messages left in the queue? 

btw, after turning on trace statement in my ds file, I get warning from JBoss that it is closing result set that JBPM didn't close. I am running BPEL 1.1 GA.

Here is the stack trace -

  | a0001 WARN  2008-05-16 16:44:28,393 [WrappedConnection] -- [] Closing a result s
  | et you left open! Please close it yourself.
  | java.lang.Throwable: STACKTRACE
  |         at org.jboss.resource.adapter.jdbc.WrappedStatement.registerResultSet(Wr
  | appedStatement.java:617)
  |         at org.jboss.resource.adapter.jdbc.WrappedStatement.getGeneratedKeys(Wra
  | ppedStatement.java:533)
  |         at sun.reflect.GeneratedMethodAccessor482.invoke(Unknown Source)
  |         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
  | sorImpl.java:25)
  |         at java.lang.reflect.Method.invoke(Method.java:585)
  |         at org.hibernate.util.GetGeneratedKeysHelper.getGeneratedKey(GetGenerate
  | dKeysHelper.java:69)
  |         at org.hibernate.id.IdentityGenerator$GetGeneratedKeysDelegate.executeAn
  | dExtract(IdentityGenerator.java:74)
  |         at org.hibernate.id.insert.AbstractReturningDelegate.performInsert(Abstr
  | actReturningDelegate.java:33)
  |         at org.hibernate.persister.entity.AbstractEntityPersister.insert(Abstrac
  | tEntityPersister.java:2093)
  |         at org.hibernate.persister.entity.AbstractEntityPersister.insert(Abstrac
  | tEntityPersister.java:2573)
  |         at org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentit
  | yInsertAction.java:47)
  |         at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:248)
  |         at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplic
  | ate(AbstractSaveEventListener.java:290)
  |         at org.hibernate.event.def.AbstractSaveEventListener.performSave(Abstrac
  | tSaveEventListener.java:180)
  |         at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId
  | (AbstractSaveEventListener.java:108)
  |         at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGene
  | ratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:186)
  |         at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrR
  | equestedId(DefaultSaveEventListener.java:33)
  |         at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTran
  | sient(DefaultSaveOrUpdateEventListener.java:175)
  |         at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(
  | DefaultSaveEventListener.java:27)
  |         at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpda
  | te(DefaultSaveOrUpdateEventListener.java:70)
  |         at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:535)
  |         at org.hibernate.impl.SessionImpl.save(SessionImpl.java:523)
  |         at org.hibernate.impl.SessionImpl.save(SessionImpl.java:519)
  |         at org.jbpm.logging.db.DbLoggingService.log(DbLoggingService.java:50)
  |         at org.jbpm.svc.save.SaveLogsOperation.save(SaveLogsOperation.java:47)
  |         at org.jbpm.svc.Services.save(Services.java:164)
  |         at org.jbpm.JbpmContext.save(JbpmContext.java:427)
  |         at org.jbpm.bpel.integration.jms.StartListener.deliverRequest(StartListe
  | ner.java:229)
  |         at org.jbpm.bpel.integration.jms.StartListener.onMessage(StartListener.j
  | ava:168)
  |         at org.jboss.mq.SpyMessageConsumer.run(SpyMessageConsumer.java:696)
  |         at java.lang.Thread.run(Thread.java:595)
  | 

Thank you,
Meghana

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4151565#4151565

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4151565



More information about the jboss-user mailing list