I was able to reproduce this - and I managed to get past the limit of 30
by doing all of the following:
add maxSessions and maxMessagesPerSessions on the MDBs:
@ActivationConfigProperty(propertyName = "maxSessions", propertyValue =
"100"),
@ActivationConfigProperty(propertyName = "maxMessagesPerSessions",
propertyValue = "100")
Set InstanceLimit on the MDB container in openejb.xml:
<Container id="My MDB Container " type="MESSAGE">
# The resource adapter delivers messages to the container
ResourceAdapter My JMS Resource Adapter
# Specifies the message listener interface handled by this container
MessageListenerInterface javax.jms.MessageListener
# Specifies the activation spec class
ActivationSpecClass org.apache.activemq.ra.ActiveMQActivationSpec
# Specifies the maximum number of bean instances that are
# allowed to exist for each MDB deployment.
InstanceLimit 100
</Container>
and add threadPoolSize (note lowercase t) on the Resource Adapter in
openejb.xml:
<Resource id="My JMS Resource Adapter" type="ActiveMQResourceAdapter">
# Broker configuration URI as defined by ActiveMQ
# see http://activemq.apache.org/broker-configuration-uri.html
BrokerXmlConfig broker:(tcp://localhost:61616)?useJmx=false
# Broker address
ServerUrl vm://localhost?async=true
# DataSource for persistence messages
DataSource My Unmanaged DataSource
threadPoolSize 100
</Resource>
Hope that's some help. I can post my test project that reproduced your
problem if its any help.
Jon
RakeshSU wrote:
I have a producer which produces (1 msg/sec Eg. MSG 0, MSG 1, and so on)
sending to a queue, picked by a MDB (WorkFlow), which puts this message to a
topic with 3 MDB subscribers (Processors) which take 40 secs to process a
message (based on the message only one processes and remaing 2 just return).
What I see is that everything stops after the WorkFlow sent out the 30th
message (30 secs) to the topic. It only resumes after 10 seconds when the
first message finished processing.
I have tried changing InstanceLimit, ThreadPoolSize, maxSessions,
maxMessagesPerSession but nothing seems to push it past the 30 mark.
Any ideas.